получить все classess, sub classess от совы в Java - PullRequest
3 голосов
/ 29 ноября 2011

У меня есть файл онтологии.Сова от того, что мне нужно, чтобы получить все классы, подклассы от Сова

File file = new File("myontology.owl");

OWLOntology myontology = manager.loadOntologyFromOntologyDocument(file);
System.out.println("Loaded ontology: " + myontology);

// We can always obtain the location where an ontology was loaded from
IRI documentIRI = manager.getOntologyDocumentIRI(myontology);

OWLDataFactory factory = manager.getOWLDataFactory();
OWLClass clsOwl = factory.getOWLClass(documentIRI);

тогда что мне написать?я проверил OWLAPI, но я очень новичок в семантике.Чтобы получить

как в следующем примере, используя owl2api, мне нужен код,

String uri = "http://protege.cim3.net/file/pub/ontologies/travel/travel.owl";

OWLModel owlModel = ProtegeOWL.createJenaOWLModelFromURI(uri);

Collection classes = owlModel.getUserDefinedOWLNamedClasses();
for (Iterator it = classes.iterator(); it.hasNext();) {

    OWLNamedClass cls = (OWLNamedClass) it.next();
    Collection instances = cls.getInstances(false);
    System.out.println("Class " + cls.getBrowserText() + " (" + instances.size() + ")");

    for (Iterator jt = instances.iterator(); jt.hasNext();) {
        OWLIndividual individual = (OWLIndividual) jt.next();
        System.out.println(" - " + individual.getBrowserText());
    }
}

спасибо

1 Ответ

2 голосов
/ 29 ноября 2011

Не уверен, что это то, что вам нужно, но

OwlOntology.getClassesInSignature() 

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

Также, когда у вас есть OwlClass, вы можете получить его подклассы, используя

 OwlClass.getSubClasses(OWLOntology)
...