Frage

In Bezug auf meine früheren Post , jetzt, wenn ich Tests, progFields in unten:

System.Reflection.FieldInfo[] progFields = typeof(Program).GetFields();

gibt nichts zurück. Meine Ontologie über Programm ist wie folgt:

<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"/>
        <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#ResourceAuthor"/>
        <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#Note"/>
        <owl:disjointWith rdf:resource="http://www.owl-ontologies.com/Ontology1243411901.owl#ClassOfCourse"/>
        <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>
            <owl:Class rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Project"/>
        </owl:disjointWith>

und am Ende der Datei, es ist Sammlung definiert:

<owl:AllDifferent>
        <owl:distinctMembers rdf:parseType="Collection">
            <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Information_Technology"/>
            <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Software"/>
            <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Management"/>
            <Program rdf:about="http://www.owl-ontologies.com/Ontology1243411901.owl#Literature"/>
        </owl:distinctMembers>
    </owl:AllDifferent>

Die Ontologie wurde von Protege gemacht. Könnten Sie bitte in Situation helfen

War es hilfreich?

Lösung

Sie erhalten Null Felder, weil Ihre Programmklasse nicht ein aufgezählt OWL Klasse .

Root-Problem ist, dass Ihre Ontologie zum Ausdruck bringt, was Programm ist nicht, anstatt zu sagen, was es ist. Das ist nicht falsch, nur nicht das, was Sie wollen. Ich bin ein Mensch, kann ich herausfinden, was man wollte (nämlich, dass Sie 4 und nur 4 Programme und sie sind alle verschieden), aber Ihre Ontologie sagt nicht, dass . Was Ihre Ontologie sagt, ist wie folgt:

  • Es gibt Programme.
  • Wenn eine Person geschieht, um ein Programm, dann ist es sicherlich nicht Schüler, Lehrer, usw.
  • Programme haben immer atGrade Eigenschaft.
  • Wenn sie gerade sind entweder IT, SW, Mgmt oder Literatur, sie sind nicht das gleiche.

Aber man könnte viele andere Menschen haben, nicht nur die IT, SW, Mgmt und Literatur. Daher ist ROWLEX mit Recht nicht Program-Klasse als Enum-Klasse aus.

ROWLEX werden Ihnen statische Felder erzeugen, wenn Ihre Programmklasse eine echte Aufzählungs OWL Klasse .

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