\documentclass[11pt,a4paper]{article}
\usepackage[pdftex]{graphicx}
\usepackage[english]{babel}
\usepackage[cm]{fullpage}
\usepackage{url}

\pagestyle{plain}


\title{Het Semantic Web met OWL-DL}
\author{Andreas van Cranenburgh\footnote{0440949, \texttt{andreas@unstable.nl}}, Joris de Groot\footnote{0518808, \texttt{jgroot@science.uva.nl}}}

\begin{document}
\maketitle

\abstract{}
\section{Opdracht 1A}

Studenten en docenten worden correct geclassificieerd, respectievelijk omdat ze
een vak volgen en geven.

Verder moet het VWO dimploma behaald zijn om te kunnen studeren, en wordt
beredeneerd of de propedeuse of bachelor al behaald is.

Dit laatste gebeurt met een cardinaliteitsrestrictie. Om die werkend te krijgen
moesten alle individuals als verschillend gedefinieerd worden. Dit is zo
gedaan:

\begin{quote}
\begin{verbatim}
grep Individual semweb.owl | sort | uniq
\end{verbatim}
\end{quote}

En vervolgens is het resultaat in de ontologie geplakt met
<differentindividuals> eromheen. Het gevolg daarvan was dat Pellet het niet
meer deed, maar Fact++ gelukkig wel.

Wat nog niet gelukt is is het controleren op ingangseisen. Eigenlijk wil je
daar gewoon zeggen:

\begin{quote}
\begin{verbatim}
@x @y: (x volgt y -> @z ingangseis(y, z) -> behaald(x, z))
\end{verbatim}
\end{quote}

Maar die variabelen zijn niet beschikbaar in OWL-DL. Ook het weergeven van tijd
zou de ontologie veel ingewikkelder maken, dus studievertraging verbieden gaat
nog niet.

Aanvankelijk hebben we de namen van de vakken met een Python-script (zie
'owl.py') in de ontologie kunnen zetten. Verdere informatie bleek helaas met
de hand ingevoerd te moeten worden.


\section{Opdracht 1B}
\subsection{Potluck}

Het samenvoegen van onze ontologie met andere data werkte aanvankelijk helemaal niet. Onze ontologie bleek te ingewikkeld of te groot te zijn, hij werd niet geparseerd.

Uiteindelijk hebben we een eerdere versie van onze ontologie weten te vinden, die wel geparseerd werd. Deze hebben we samengevoegd met een andere ontologie, alsook met een Excel sheet met wat andere informatie. De URLs waren als volgt:

\begin{itemize}
\item \url{http://unstable.nl/semweb.rdf}
\item \url{http://student.science.uva.nl/~jgroot/Opdracht6v3.rdf}
\item \url{http://student.science.uva.nl/~jgroot/info.xls}
\end{itemize}

Toen konden er wat velden samenworden gevoegd, maar het bleek dat sommige velden gewoon "name" heten, terwijl er wel verschillende waarden in stonden (bijvoorbeeld vak en docent). Iets dat wel succesvol was, was het maken van een kaartje. Door het veld 'universitair adres', uit het excel sheet, te gebruiken, kan Potluck wonderbaarlijk genoeg automatisch een kaartje produceren. Zie hiervoor het bijgevoegde bestand 'semweb.png'.

\includegraphics[scale=0.4]{semweb}

\subsection{Open World assumption}

Een grote hindernis bij het maken van de ontologie bleek de 'open world assumption' te zijn. Dat wil zeggen, de status van dingen die niet beschreven zijn is volledig onzeker. Een voorbeeld is de eigenschap 'behaald', van studenten op vakken. Na het toevoegen van wat vakken die behaald zijn, zou je er gemakshalve vanuit kunnen gaan dat dan duidelijk is gemaakt dat de rest (complement) dus niet behaald is, echter, dat kan helemaal niet worden afgeleid. Gevolg is dat wel erg veel data moet worden toegevoegd. Ook moeten alle classen en individuen als verschillend worden gedifinieerd.

\subsection{Beperkingen description logic}

Veel dingen die je gewend bent te kunnen beweren kunnen niet zomaar in logica worden beweerd. Erger nog, in de speciaal beperkte 'Description Logic' kan nog minder gezegd worden. Aan de andere kant, de zin van zo'n beperking is natuurlijk dat er altijd met zekerheid afleidingen kunnen worden gedaan.

Zo was het onze intuitie om ingangseisen als 'object property' op te geven. Echter, zo kan er niet mee geredeneerd worden. Wat wel kan is voor elke ingangseis een klasse maken. Als 'necessary condition' kan je dan opgeven dat bepaalde vakken behaald moeten zijn, waarbij behaald een property is van een persoon naar een vak. Het idee van een 'necessary condition' heet in Protege "equivalent classes".

\subsection{Qualitative reasoning}

OWL is niet goed in rekenen. Dit is een hindernis als er eisen moeten worden gedifinieerd over een minimum aan studiepunten, of het hebben behaald van een propedeuse. Dit hebben we opgelost met cardinality constraints, niet over studiepunten, maar over het aantal vakken uit een klasse (zoals het eerste jaar).

\end{document}
