Ottenere gli individui di una classe dell'ontologia in .Net
Domanda
Per quanto riguarda la mia precedente post , Ora, quando sto testando, progFields in seguito:
System.Reflection.FieldInfo[] progFields = typeof(Program).GetFields();
restituisce nulla. La mia ontologia sul programma è simile a questo:
<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>
e alla fine del file, la sua collezione è definito:
<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>
L'ontologia è stata fatta da Protege. La prego di aiutare in situazione
Soluzione
Si arriva a zero campi, perché la classe non è un programma enumerato classe OWL .
problema è che il Root ontologia esprime ciò che programma non è, invece di dire quello che è. Questo non è sbagliato, non solo quello che si vuole. Io sono un essere umano, riesco a capire quello che voleva (vale a dire che si hanno 4 e solo 4 programmi e sono tutti diversi), ma il tuo ontologia non dice che . Che cosa il vostro ontologia dice è la seguente:
- Non ci sono programmi.
- Se un individuo sembra essere un programma, allora è sicuramente non studente, insegnante, ecc
- I programmi hanno sempre proprietà atGrade.
- Se capita di essere o IT, SW, Mgmt, o la letteratura, non sono la stessa cosa.
Ma si potrebbe avere molti altri individui, non solo IT, SW, Mgmt, e letteratura. Quindi ROWLEX giustamente non espone classe programma come classe enum.
ROWLEX genererà si campi statici se rendere la vostra classe programma un vero enumerato classe OWL .