2010-06-11 7 views
0

Comment puis-je obtenir une classe existante à partir d'une ontologie avec l'API OWL? Ceci est un fragment de mon ontologie:OWL: obtention d'une classe à partir d'une antologie existante

<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> 

Je commence par ce code:

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

et maintenant je veux récupérer la classe StringDocu. Comment puis-je l'obtenir?

Répondre

1

Je pense que cela vous donnera toutes les classes référencées dans l'ontologie que vous avez chargé:

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

Ensuite, vous pouvez traiter/filtre/trouver tout ce dont vous avez besoin sur cet ensemble de OWLClass. Suite au code que vous avez montré dans votre question, vous pouvez obtenir une référence directe à la classe comme suit (je suppose que votre URI de classe est "http://mysite.com/my_ontology.owl#StringDocu"):

+0

Salut WongiSeng, c'est beaucoup trop complexe - tout ce que je ferai, c'est de vous donner toutes les classes de l'ontologie en tant qu'ensemble. Vous pouvez obtenir une référence directe à la classe en connaissant son URI. –

2

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

Cela vous donne une référence directe à la classe que vous recherchez et vous pouvez le prendre à partir de là.

Espérons que cela aide!

+0

ce n'est rien mais juste une autre façon de représenter un iri. cette classe n'a aucun lien avec l'ontologie, avec le même succès, vous pouvez utiliser l'IRI lui-même ou même String. Pour extraire une classe _existing_ de l'ontologie, il faut utiliser des méthodes 'signature' ou des axiomes de déclaration – Sigrem