Obter indivíduos de uma classe ontologia em .Net
Pergunta
No que diz respeito à minha post anterior , agora quando eu estou testando, progFields em abaixo:
System.Reflection.FieldInfo[] progFields = typeof(Program).GetFields();
retorna nada. Meu ontologia sobre o Programa é assim:
<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 no final do arquivo, é coleção é definida:
<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>
A ontologia foi feita por Protege. Você poderia por favor me ajude em situação
Solução
Você começa de zero campos porque sua classe Programa não é uma enumerado OWL classe .
problema de raiz é que seus expressa ontologia o programa não está, em vez de dizer o que é. Isso não é errado, não apenas o que você quer. Eu sou um ser humano, eu posso descobrir o que você queria (ou seja, que você tem 4 e apenas 4 programas e eles são todos diferentes), mas sua ontologia não diz que . Qual a sua ontologia diz é o seguinte:
- Existem programas.
- Se um indivíduo passa a ser um programa, então não é certamente estudante, professor, etc.
- Programas sempre tem atGrade propriedade.
- Se acontecer de ser de TI, SW, Mgmt, ou Literatura, eles não são os mesmos.
Mas você pode ter muitas outras pessoas, não apenas de TI, SW, Mgmt e Literatura. Daí ROWLEX justamente não expõe classe Programa como uma classe enum.
ROWLEX você vai gerar campos estáticos se tornar sua classe Programa um verdadeiro enumerado OWL classe .