标签: owl-api

OWL API,Jena API,Protege API,使用哪一个

我正在尝试使用本体来实现基于eclipse的应用程序.(我的主题是语义标注).我需要向用户显示本体(作为树)并在本体类和某些模式之间建立链接.

因为我只有基本的编程技能,所以我现在有点不知所措,关于如何设计应用程序...... 1.问题:使用哪些API?我找到了OWL API和Jena API.在其中一篇文章中(是否有任何库可以轻松更改和更新OWL文件?)Michael说"OWLAPI超过Jena.Jena有OWL支持,但它不是 OWL 设计,这使得它使用起来有点麻烦."你怎么看?2.此外,还有ProtégéAPI.乍一看,它似乎更适合我,因为它已经提供了一些GUI工具等.但我有点困惑:当试图找到更多信息时,我发现这个http://protegewiki.stanford.edu/wiki/P4APIOverview.在那里它说"正在进行中",但该页面最后一次在2009年更改.如何理解这一点?有没有人与ProtégéAPI合作并可以分享他/她的经历?

非常感谢提前!

owl jena protege owl-api

22
推荐指数
1
解决办法
1万
查看次数

如何将.OWL文件导入Neo4J?

我一直在玩Neo4J,以了解使用相关数据是多么容易.到目前为止,我已经与Neo4J社区浏览器合作创建节点并在它们之间建立关系.

我开发了一个使用protege 链接的本体!现在,我有一个巨大的本体文件(.owl文件).我想将它上传到Neo4J来执行查询并找到节点之间的潜在关系.

如果我得到任何帮助,我会很高兴.

谢谢.

owl data-import neo4j owl-api

6
推荐指数
1
解决办法
4194
查看次数

UnloadableImportException:无法加载导入的本体

我在Protege 4.3.0中创建了一个本体,并存储在一个OWL文件中.为了使用OWL API加载此本体,我使用以下代码示例.

public class MySampleClass {
    private final OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
    private final OWLDataFactory df = manager.getOWLDataFactory();

    private final OWLReasonerFactory rf = new StructuralReasonerFactory();

    private final OWLOntology ontology;
    private final OWLOntologyID id;
    private final IRI iri;
    private final PrefixManager pm;

    private final OWLReasoner reasoner;

    /**
     * 
     * @param file
     */
    public MySampleClass(File file) {
        try {
            ontology = manager.loadOntologyFromOntologyDocument(file);
        } catch (OWLOntologyInputSourceException | OWLOntologyCreationException ex) {
            // throw custom exception
        }

        id = ontology.getOntologyID();
        iri = …
Run Code Online (Sandbox Code Playgroud)

java rdf owl protege owl-api

6
推荐指数
1
解决办法
526
查看次数

OWL api 查找类的属性

我有一个本体文件,我可以获取其中的所有类(我正在使用 OWL-API)。好吧,我应该检索我的文件 .owl 中存在的每个类、数据属性和对象属性,有什么方法可以使用 OWL-API 获取它们吗?

owl ontology owl-api

5
推荐指数
2
解决办法
2825
查看次数

使用OWL API,如何获取班级或个人名称

我可以获得 OWLClass 并访问信息。类和个人都带有前缀。
有什么方法可以去掉前缀吗?
例如:

OWLClass cls = factory.getOWLClass(":Person", pm);
for (OWLIndividual indiv : cls.getIndividuals(onto)) {
    System.out.println(indiv.toString());
}
Run Code Online (Sandbox Code Playgroud)

打印:
<http://www.co-ode.org/ontologies/ont.owl#Mon>
<http://www.co-ode.org/ontologies/ont.owl#Dad>

我想要的只是Mon Dad

更新:
谢谢伊格纳齐奥。
我发现关键是getIRI()方法。

for (OWLIndividual indiv : owlclass.getIndividuals(onto)) {
    System.out.println(indiv.asOWLNamedIndividual().getIRI().getFragment());
}

for (OWLClassExpression expre : owlclass.getSubClasses(onto)) {
    System.out.println(expre.asOWLClass().getIRI().getFragment());
}
Run Code Online (Sandbox Code Playgroud)

semantic-web owl owl-api

5
推荐指数
1
解决办法
3441
查看次数

OWLAPI:具有导入功能的负载本体如何工作?

我有本体论,其中有另一个本体论.我想知道如何OWLOntologyManagerloadOntologyFromOntologyDocument(OWLOntologyDocumentSource documentSource, OWLOntologyLoaderConfiguration config)内部工作原理.我已经使用OWLOntologyLoaderConfiguration类来处理Missing Imports(想知道在MissingImportListener类的帮助下哪个导入失败).

我能听到丢失的进口.但是,如果我的任何本体文件导入了WEB资源,则上面的方法从其位置获取它.有什么方法可以限制对WEB资源的调用,并要求加载我在系统中的副本吗?

例如,如果BBC的运动本体加载方法在内部加载本体:

  1. http://purl.org/NET/c4dm/event.owl
  2. FOAF(http://xmlns.com/foaf/0.1/)
  3. 时间(http://www.w3.org/2006/time)

就像在Protege中打开BBC的运动本体一样.

java owl ontology protege owl-api

5
推荐指数
1
解决办法
602
查看次数

OWL API V5从本地文件读取本体

在链接的当前文档示例中:https: //github.com/owlcs/owlapi/blob/version5/contract/src/test/java/org/semanticweb/owlapi/examples/Examples.java 没有示例如何从本地文件加载本体.只有一种方法可以从字符串加载它.

在过去,当我使用owl-api版本3时,以下代码完美地运行:

    OWLOntologyManager manager =OWLManager.createOWLOntologyManager();
    File file = new File (path);
    OWLOntology ont = manager.loadOntologyFromOntologyDocument(IRI.create(file));
Run Code Online (Sandbox Code Playgroud)

但是,在此版本中,前一代码的最后一行:

manager.loadOntologyFromOntologyDocument(IRI.create(file));
Run Code Online (Sandbox Code Playgroud)

返回此错误:

    Exception in thread "main" java.lang.NoSuchMethodError: 
    org.semanticweb.owlapi.util.SAXParsers.initParserWithOWLAPIStandards(Lorg/xml/sax/ext/DeclHandler;)Ljavax/xml/parsers/SAXParser; 
        at 
org.semanticweb.owlapi.rdf.rdfxml.parser.RDFParser.parse(RDFParser.java:148)
    at org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser.parse(RDFXMLParser.java:62)
    at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:173)
    at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:954)
    at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:918)
    at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:859)
    at glass.main.ontology_Test_main2.readOntology(ontology_Test_main2.java:49)
    at glass.main.ontology_Test_main2.main(ontology_Test_main2.java:38)
Run Code Online (Sandbox Code Playgroud)

请注意附件,一个小测试java项目,链接:

dropbox.com/s/3787a3gsk2bwc26/test.tar.gz?dl=0

请问我做错了什么,我确定这个代码

请您提供正确的方法,并将其添加到链接https://github.com/owlcs/owlapi/blob/version5/contract/src/test/java/org/semanticweb/中的教程示例中owlapi /示例/ Examples.java

非常感谢你花时间陪伴.真诚的问候

owl-api

5
推荐指数
2
解决办法
1630
查看次数

OWL双关语是否在语义上对待与SAME同名的班级和个人?

根据OWL DL的原始OWL定义,我们不能给一个类和一个人赋予相同的名称(这是OWL DL和OWL Full之间的明显区别)."Punning"在OWL 2引入并删除了此限制.所以我可以为一个类和一个人(以及一个属性)赋予相同的名称.

OWL是否在语义上将它们视为相同或不同?(两者都有相同的名称,因此它们在语法上是相同的.)这些实体(具有相同的IRI)是同一个吗?[与OWL一样,一切都只与IRI有关]

owl ontology protege owl-api semantics

4
推荐指数
1
解决办法
579
查看次数

无法在OWLAPI中获取OWLClass的注释

我使用OWLAPI 4.0.1作为IntelliJ中Maven的全局库.我在网上看到很多关于如何获取类注释的例子(例如这个相关问题中的注释),但IntelliJ告诉我没有这样的getAnnotations()方法.其他API代码工作正常,我能够在本体中找到类和属性.OWLAPI有变化,还是我遗失了什么?

java owl owl-api

3
推荐指数
1
解决办法
720
查看次数

使用OWLAPi和JFact推理器获取特定类的所有个体

有没有办法让使用推理器的特定班级的所有人?推理因为我想获得该类的所有推断和认定的个体.我正在使用JFact推理器,我正在尝试循环和if语句.我想找到班级的人,例如"人".但我无法看到这些人.有关下面的代码的任何想法或有任何方法为此目的?

for (OWLClass c : myPizza.getClassesInSignature()) {
        NodeSet<OWLNamedIndividual> instances = reasoner.getInstances(c, true);
        System.out.println(c.getIRI().getFragment());
        if (c.getIRI().getFragment().equals("Person")){

            for (OWLNamedIndividual i : instances.getFlattened()) {
                System.out.println(i.getIRI().getFragment()); 

        }
    }
        else {
            continue;
        }
        break;

    }
Run Code Online (Sandbox Code Playgroud)

谢谢

java owl-api

3
推荐指数
1
解决办法
2499
查看次数

标签 统计

owl-api ×10

owl ×8

java ×4

protege ×4

ontology ×3

data-import ×1

jena ×1

neo4j ×1

rdf ×1

semantic-web ×1

semantics ×1