2010-06-11 3 views
0

Как я могу получить существующий класс из онтологии с OWL-API? Это фрагмент из моей онтологии:OWL: получить класс из существующей Антологии

<owl:Class rdf:ID="StringDocu"> 
    <owl:equivalentClass> 
    <owl:Restriction> 
     <owl:someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> 
     <owl:onProperty rdf:resource="#hasContent"/> 
    </owl:Restriction> 
    </owl:equivalentClass> 
    <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string" 
    >String Docu</rdfs:label> 
    <rdfs:subClassOf rdf:resource="#Docu"/> 
    <owl:disjointWith rdf:resource="#URIDocu"/> 
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string" 
    >This class concerns a docu with the content specified as common text.</rdfs:comment> 
</owl:Class> 

Я начинаю с этим кодом:

String ontologyUri = "http://mysite.com/my_ontology.owl"; 
OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); 
OWLOntology ontology = manager.createOntology(IRI.create(ontologyUri)); 
OWLDataFactory factory = manager.getOWLDataFactory(); 

и теперь я хочу, чтобы получить StringDocu класс. Как я могу это получить?

ответ

1

Я думаю, что это даст вам все классы, на которые ссылаются онтология загруженной:

String ontologyUri = "http://mysite.com/my_ontology.owl"; 
OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); 
OWLOntology ontology = manager.createOntology(IRI.create(ontologyUri)); 
Set <OWLClass> classes = ontology.getClassesInSignature(); 

После этого вы можете обработать/фильтр/найти все, что вам нужно на этом наборе OWLClass.

+0

Hi WongiSeng, это слишком сложно - все, что вам нужно, это дать вам все классы в онтологии как набор. Вы можете получить прямую ссылку на класс, зная его URI. –

2

Продолжая с кода, который вы указали в своем вопросе, вы можете получить прямую ссылку на класс следующим образом (я предполагаю, что ваш URI класса является «http://mysite.com/my_ontology.owl#StringDocu»):

OWLClass stringDocuClass = factory.getOWLClass(IRI.create("http://mysite.com/my_ontology.owl#StringDocu")) 

Это дает вам прямую ссылку на класс, который вы посещаете, и вы можете взять его оттуда.

Надеюсь, это поможет!

+0

это не что иное, как просто другой способ представить ири. этот класс не имеет отношения к онтологии, с тем же успехом вы можете использовать сам IRI или даже String. Чтобы получить классы _existing_ из онтологии, необходимо использовать методы «подписи» или аксиомы объявления – Sigrem