Tag: owl

添加更复杂的子类公理

我偶然发现了另一个问题…… 我想实现与此类似的东西: 我想使用RDFList这样做,将必要的属性添加到列表中,然后调用方法createUnionClass(或createIntersectionClass)并将它们组合在一起。 然后,将使用addSuperClass()将此方法的结果添加到特定的ontClass中。 这是错的吗? 我从一些非常简单的东西开始,比如: RDFList rdfList = ontModel.createList(); rdfList.addProperty(ExampleResource1); rdfList.addProperty(ExampleResource2); UnionClass uc = ontModel.createUnionClass(null, rdfList); ExampleClass.addSuperClass(uc); 但结果不是subClassOf之前所说的两者的联合,而只是subClassOf为零。 任何帮助,将不胜感激。

将猫头鹰映射到neo4j(java示例)

我想将本体从OWL映射到Neo4j数据库。 我在这里找到了一些例子。 如果我理解得很好,我需要创建包含OWL API库的Java程序。 我不需要任何推理引擎(根据这个: 从OWL本体映射到Neo4j图数据库 )。 我在Eclipse中创建了项目添加OWL API(和oboformat)库并粘贴代码 private void importOntology(OWLOntology ontology) throws Exception { OWLReasoner reasoner = new Reasoner(ontology); if (!reasoner.isConsistent()) { logger.error(“Ontology is inconsistent”); // Throw your exception of choice here throw new Exception(“Ontology is inconsistent”); } Transaction tx = db.beginTx(); try { … } } 我有一个错误:新推理(本体); – 没有类推理器,我不明白我是否需要使用像Hermit或Pellet这样的推理器推理引擎? 我在行Transaction tx = […]

使用Java中的owlapi 3将manchester语法中的String转换为OWLAxiom对象

我正在用Java编写一个利用OWL API 3.1.0版的程序。 我有一个使用曼彻斯特OWL语法表示公理的String ,我想在OWLAxiom对象中转换此字符串,因为我需要使用addAxiom(OWLOntology owl, OWLAxiom axiom)方法将生成的公理添加到本体中(它是OWLOntologyManager一种方法。 我怎样才能做到这一点?

读取OWL / XML的问题

我使用Jena从Java读取OWL / XML文件时遇到问题。 我在读取RDF / XML文件时没有问题,但每当我从Protege创建一个OWL / XML文件并尝试读取它时,Java都会给出以下错误:WARN [main](RDFDefaultErrorHandler.java:36)线程“main”中的exceptioncom.hp.hpl.jena.rdf.arp.impl.XMLHandler.endElement(XMLHandler.java:143)中的java.lang.NullPointerException 我用来检索RDF / XML的代码如下: OntModel ontModel = ModelFactory.createOntologyModel(); InputStream in = FileManager.get().open(inputFileName); if (in == null) { throw new IllegalArgumentException( “File: ” + inputFileName + ” not found”); } ontModel.read(in, “”); 此代码完美地适用于RDF / XML。 但是,我无法读取OWL / XML。 我看着互联网,我找不到任何东西。 如果有人给我指路,我真的很感激。 非常感谢

将owl文件映射到neo4j – getOrCreateNodeWithUniqueFactory方法

我尝试将一个本体(* .owl文件)移动到neo4j来neo4j进行查询。 我在这里找到了一些有用的信息,但我面临的问题是: Node thingNode = getOrCreateNodeWithUniqueFactory(“owl:Thing”); 我不知道“ getOrCreateNodeWithUniqueFactory ”属于哪个类。 这可以在某些库中使用,还是应该由我自己实现? 我在这里想念的是什么?

使用OWL API 4.0检索具有相同对象属性的OWL个体

我在Eclipse 4中使用OWL Api 4.0,在Protege 4中使用简单的本体。我有两个类“Ward”和“Gaurdian”。 这些类的个体通过对象属性isWardOf相关联。 我如何检索与类Gaurdian相关的Ward类的个体。 考虑下图: – 我想要检索Peter和Allice相关的事实或兄弟姐妹,因为他们都与杰克有关。 关于如何使用OWL API 4.0实现此目的的任何粗略线索。 我的完整猫头鹰文件贴有: – <!DOCTYPE Ontology [ ]> >

SPARQL:返回由指定或等效类完成的所有交叉点

如果我将ABC和CDE类定义为A,B,C,D,E类的交叉点,如下所示: 如何查询SPARQL中给定输入类集满足其限制的所有交集类? 例如,如果我将A,B,C,D,E,F,G输入此查询,我希望能够回来 ABC A B C CDE C D E 另外两个皱纹:如果我查询A,Z,C,其中Z是B的等价类,那么这应该匹配并理想地返回 ABC A Z C 其次,结果应该只返回最大匹配; 因此,如果存在ABCD类并且我在A,B,C,D之间进行查询,则它将返回ABCD而不是ABC。 提前致谢! 更新: 为了澄清,除非所有组成类都在提供的输入列表中,否则我不希望与交集类匹配。 例如,如果我向查询提供A,B,我不想让ABC回来。 如果我提供A,B,C,D,我确实希望得到ABC。 我的用例是这样的:我有一组数据点,在每个数据点中我都识别出一些任意的基本概念A,B,C,D等等,每个都具有不同的可能性。 我想问一下本体“这个列表包含哪些更高级别的概念(即交叉点)?” 目前,我的查询看起来像这样(考虑到我在上面概述的本体中的限制和onProperty): SELECT DISTINCT ?intclass ?inputclasses WHERE { ?intclass owl:equivalentClass / owl:intersectionOf / rdf:rest*/rdf:first / owl:someValuesFrom ?inputclasses } ORDER BY ?intclass BINDINGS ?inputclasses { (:A) (:B) (:C) (:D) } 不幸的是,这回馈了我的本体中包含任何输入类的每个交集。 我认为这是因为rest […]

检索OWL交集类隐含的超类

OWL本体可以具有类A,B和C以及公理(在DL表示法中): A⊑(B⊓C) 或者近似曼彻斯特OWL语法: subClassOf (B 和 C) 从逻辑上讲,A是B的子类,A是C的子类,但是三元组 A rdfs:subClassOf B A rdfs:subClassOf C 不一定存在于OWL本体的RDF序列化中。 例如,考虑Protégé中这个非常简单的本体及其在RDF / XML和Turtle中的RDF序列化: @prefix : . @prefix rdfs: . @prefix owl: . @prefix xsd: . @prefix rdf: . a owl:Ontology . :B a owl:Class . :C a owl:Class . :A a owl:Class ; rdfs:subClassOf [ a owl:Class ; owl:intersectionOf ( […]

如何在JENA中添加合格的基数

如何在Jena中添加合格的基数限制? 我不能使用createCardinalityQRestriction因为OntModelSpec是第一个版本的OWL,而不是OWL2。 在ModelFactory的createOntologyModel中,有没有办法创建OWL2本体? 我需要一个类表达式 JeVysledkom 正好 1 Kolik_Fazovy 我试过使用这段代码: OntModel ontModel = ModelFactory.createOntologyModel(); OntClass ret = ontModel.createCardinalityQRestriction(null, ontProperty, cardinality, ontClass2 ); ontClass.addSuperClass(ret); 但我得到这个例外: com.hp.hpl.jena.ontology.ProfileException:尝试使用当前语言配置文件不支持的语言构造CARDINALITY_Q:OWL Full

Fuseki如何添加Pellet推理器

我想用我的Fuseki 2.3.1使用颗粒推理器 第一:我在我的config.ttl中添加了Pellet推理器,如下所示: ja:reasoner [ ja:reasonerClass “org.mindswap.pellet.jena.PelletReasonerFactory”;] 所以现在我必须将Pelletjar加入fuseki 这个页面解释了如何将jar(不是特定的pellete)添加到fuseki https://jena.apache.org/documentation/permissions/example.html 所以我很喜欢这条线 exec $ JAVA $ JVM_ARGS -jar“$ JAR”“$ @” 我没有注意到这一行 java $ JVM_ARGS -cp“$ JAR:$ APPJAR”org.apache.jena.fuseki.cmd.FusekiCmd“$ @” 并取消注释以APPJAR=开头的行 现在我仍然需要知道并下载 Pellete的jar子,我发现这个链接https://datababel.wordpress.com/2013/06/26/fuseki-using-pellet-inference/说哪个是jar子, 我从maven下载了最新的可用版本,它们是: 粒料耶拿ignazio1977-2.4.0-ignazio1977.jar 粒料规则2.3.6-ansell.jar 粒料-EL-2.3.6-ansell.jar 颗粒状的数据类型-2.3.6-ansell.jar 丸芯-ignazio1977-2.4.0-ignazio1977.jar aterm的Java-1.8.2-p1.jar 公地collections4-4.1-javadoc.jar 公地collections4-4.1.jar 我将它们添加到fuseki-server脚本中,如下所示: APPJAR=pellet-jena-ignazio1977-2.4.0-ignazio1977.jar:pellet-rules-2.3.6-ansell.jar:pellet-el-2.3.6-ansell.jar:pellet-datatypes-2.3.6-ansell.jar:pellet-core-ignazio1977-2.4.0-ignazio1977.jar:aterm-java-1.8.2-p1.jar:commons-collections4-4.1-javadoc.jar:commons-collections4-4.1.jar (它们位于fuseki的主目录中) 我运行./fuseki-server,我收到此错误 [2016-03-30 16:49:06] Server INFO Fuseki 2.3.1 2015-12-08T09:24:07+0000 [2016-03-30 16:49:07] Config INFO FUSEKI_HOME=/usr/local/apache-jena-fuseki-2.3.1 […]