【问题标题】:get all classess, sub classess from owl in java从java中的owl获取所有类,子类
【发布时间】:2012-01-08 17:40:24
【问题描述】:

我有本体文件。猫头鹰 我需要从 owl 获取所有类和子类

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());
    }
}

谢谢

【问题讨论】:

  • 那么现在究竟是什么不起作用?它在我看来 OwlModel.getUserDefinedOWLNamedClasses() 返回所有用户定义的类。你到底想完成什么?

标签: java semantics rdf semantic-web ontology


【解决方案1】:

不确定这是否是您需要的,但是

OwlOntology.getClassesInSignature() 

返回用于在当前本体中构建公理的所有类的集合。

一旦你有了 OwlClass 你就可以使用它的子类

 OwlClass.getSubClasses(OWLOntology)

【讨论】:

    猜你喜欢
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    相关资源
    最近更新 更多