Frage

Ich habe einige Eulen Klassen, die Instanzen haben. Diese Klassen haben auch Eigenschaften, den Wert für jede Instanz hat. Ich habe meine Ontologie von Protege3.4 gemacht und machte c # -Bibliothek von Rowlex von ihnen.
Zum Beispiel der Klasse ‚Programm‘, hat eine Instanz von ‚Software‘ und 'atGrade Eigentum. Eigenschaftswert für diese Instanz ist ‚PHD‘ (atGrade ist eine Objekteigenschaft, die Domäne Grade-Klasse abbildet). Dies ist die OWL:

<owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Program">
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Student"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Teacher"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Rank"/>
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty>
                <owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#atGrade"/>
            </owl:onProperty>
            <owl:allValuesFrom rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Grade"/>
        </owl:Restriction>
    </rdfs:subClassOf>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Course"/>
    <owl:disjointWith>
        <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#LearningResource"/>
    </owl:disjointWith>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Note"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#ClassOfCourse"/>
    <owl:equivalentClass>
        <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
                <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Management">
                    <atGrade rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#PHD"/>
                </Program>
                <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Literature">
                    <atGrade rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#PHD"/>
                </Program>
                <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Software">
                    <atGrade rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#MasterOfResearch"/>
                </Program>
                <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Information_Technology">
                    <atGrade rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#MasterOfScience"/>
                </Program>
            </owl:oneOf>
        </owl:Class>
    </owl:equivalentClass>
    <owl:disjointWith>
        <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Project"/>
    </owl:disjointWith>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Grade"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#ResourceType"/>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Language"/>
    <rdfs:comment xml:lang="en">Study branch in which the members are working (e.g. MBA)</rdfs:comment>
    <owl:disjointWith>
        <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Discussion"/>
    </owl:disjointWith>
    <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Question"/>
</owl:Class>

Die atGrade Eigenschaft wird auch in der Ontologie definiert:

<owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#atGrade">
    <rdfs:range rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Grade"/>
    <rdfs:domain>
        <owl:Class>
            <owl:unionOf rdf:parseType="Collection">
                <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Program"/>
                <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Teacher"/>
                <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Project"/>
                <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Course"/>
                <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Student"/>
            </owl:unionOf>
        </owl:Class>
    </rdfs:domain>
</owl:ObjectProperty>

Wenn ich jetzt eine der Instanzen in c # machen, zum Beispiel:

Program prog = new Program("http://www.owl-ontologies.com/Ontology1243411901.owl#Management", new RdfDocument());

die atGrade Eigenschaft null zurück. Ich habe die folgenden, aber das Problem nicht lösen:
-made eine vollständige Klasse (neues Programm _ (...))
-entered eine vorhandene RDF-Datei:. neues Programm (uri, neuer RdfDocument (uri))
deletierten die 'rdfs: subClassOf'. Tag von Ontologie
Irgendwelche Ideen, wie kann dieses Problem lösen?
Vielleicht sollte ich die Instanzen von der Ontologie löschen und sie in einem RDF einfügen, dann abrufen sie von dort?

War es hilfreich?

Lösung

Sie verschreiben in Ihrer Ontologie dass das, was Individuen zu Ihrer Programmklasse entsprechen. Ein Individuum ist „Programm“, wenn seine URI eines Ihrer aufgezählten und es hat eine entsprechende atGrade Eigenschaft.

Wenn Sie Ihre RdfDocument erstellen und eine neue Programm-Instanz erstellen, alles, was Sie sich erhalten ist ein Tripel wie „myUri typeof-Programm“. ROWLEX werden nicht die Standardeinstellungen ausfüllen und fügen Sie die zusätzliche atGrade Eigenschaft als Sie erwarten. Deshalb sollten Sie null erhalten, wenn Sie die Eigenschaft abzurufen. Sie müssen die atGrade Eigenschaft auf den Personen hinzuzufügen, sonst ist es nicht einmal eine gültige Programm-Instanz ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top