Wednesday, February 10, 2010

OWL Multiple Domains

Heute morgen habe ich in der Stadtbibliothek gemerkt, dass ich die Ontology für unser Projekt fehlerhaft entworfen habe. Ich wusste von anfang an, dass eine DatatypeProperty für mehreren Klassen definiert werden kann. Zum Beispiel, hatName kann für Person, Vorlesung, Modul und Studiengang definiert werden. Dafür habe ich zuerst das folgende Element definiert:

    <owl:DatatypeProperty rdf:about="#hatName">
        <rdfs:domain rdf:resource="#Person"/>
        <rdfs:domain rdf:resource="#Studiengang"/>
        <rdfs:domain rdf:resource="#Modul"/>
        <rdfs:domain rdf:resource="#Vorlesung"/>
        <rdfs:range rdf:resource="&xsd;string"/>
    </owl:DatatypeProperty>

Aber das führt dazu, dass eine Instanz, die diese Property “hatName” hat, gleichzeitig ein Typ von Person, Studiengang, Modul und Vorlesung ist. Deshalb hat die folgende SPARQL Abfrage alle Intanzen von Personen, Studiengängen, Modulen und Vorlesungen zurückgeliefert;

{ ?x rdf:type hdm:Vorlesung }

Richtige DatatypeProterty soll eigentlich folgendermaßen aussehen, wenn man die richtige Inferenz ziehen will:

    <owl:DatatypeProperty rdf:about="#hatName">
       <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="#Studiengang"/>
                    <rdf:Description rdf:about="#Vorlesung"/>
                    <rdf:Description rdf:about="#Modul"/>
                    <rdf:Description rdf:about="#Person"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range rdf:resource="&xsd;string"/>
    </owl:DatatypeProperty>

Quintessenz: rdfs:domain und rdfs:range Elemente werden für Typ-Inferenz verwendet. Mehr zum Thema ->

Wednesday, February 3, 2010

Project Management

EMMISM


Wir haben es zusammen geschafft!
Velina, Eva, Mareike, Sylvio, Stefan und ich!
Eine Revolution in der Medizin-Branche!
Ein Projekt mit ca. 600K € Budget!
Tolles Team!