owl 相关问题

Web本体语言(OWL)是用于创建本体的词汇表,即类的定义,属性以及它们之间的关系。请不要使用此标签代替'owl-carousel'!

读取OWL/XML的问题

我在使用 Jena 从 Java 读取 OWL/XML 文件时遇到问题。 我读取 RDF/XML 文件没有问题,但每当我从 Protege 创建 OWL/XML 文件并尝试读取它时,Java 都会给出此错误...

回答 4 投票 0

在 R 中加载本体

我想使用 bert 映射算法查找特定本体中存在列表中的哪些值。 第一步是加载本体以便在流程中使用它。 因为我是新手...

回答 1 投票 0

使用 OWL 推理

OWL 中的推理仅用于构建和维护本体,还是也可以在插入本体的系统中使用?如果是第二种情况,可以...

回答 1 投票 0

owl n元关系的独特性

我通过将关系表示为具有 n 对象属性的类,在 owl 本体中定义了 n 元关系,即给定 3 元关系 r,我有 3 个对象属性 r。 有人可以吗

回答 1 投票 0

第二个函数不会等待 JS 中的第一个函数完成

我正在使用名为 OWL 的 JS 框架,我有库,当您单击按钮时,它会调用函数,在数据库中上传文件,然后更新 useState 以重新渲染模板。 我的主要功能是...

回答 1 投票 0

在 OWL 中使用 inverseOf 和 propertyChainAxiom ([inverseOf <property>]) 有区别吗?

以下语句为例: @基地。 @前缀猫头鹰:。 猫头鹰:ObjectProperty 。 以以下语句为例: @base <http://ex.org/> . @prefix owl: <http://www.w3.org/2002/07/owl#> . <hasPart> a owl:ObjectProperty . <compatibleWith> a owl:ObjectProperty . <main> owl:differentFrom <part> . <main> <hasPart> <part> . 我可以通过添加这两个语句之一来推断 <part> 是 compatibleWith <main> <compatibleWith> owl:propertyChainAxiom( [owl:inverseOf <hasPart>] ) . 或 <compatibleWith> owl:inverseOf <hasPart> . 在我看来,这两种说法对于人类来说在语义上是否有所不同,因为兼容性并不是真正拥有一部分的反面。 第一个宁愿声明如果存在 hasPart 关系,则另一个方向上也存在 CompatibleWith 关系。 但是,我想知道对于 OWL 推理机来说,除了添加空白节点和 propertyChainAxiom 语句之外,这两个语句是否基本上等效。 还有其他的想法我可以(也许不想)用一种说法来推理,但不能用另一种说法来推理吗? 例如,差异变得明显: <compatibleWith> a owl:SymmetricProperty . 已添加。 使用 <compatibleWith> a owl:SymmetricProperty . <compatibleWith> owl:inverseOf <hasPart> . 这里也给出了相反的原因: <part> <hasPart> <main> . 如果某些部分不同,跟进<hasPart> a owl:InverseFunctionalProperty甚至可能会导致错误。 <compatibleWith> a owl:SymmetricProperty . <compatibleWith> owl:propertyChainAxiom( [owl:inverseOf <hasPart>] ) . 并不认为<part> <hasPart> <main> .在这里产生了至关重要的影响。

回答 1 投票 0

如何在OWL中建模独家或?

I OWL 我想对某个类仅允许一个或另一个子类的情况进行建模。我想建立一个限制模型,允许属性仅像 (A XOR B) OR (some

回答 1 投票 0

在OWL中定义类时,如何约束一个对象属性必须与另一个对象属性引用同一个体?

我正在学习 OWL 2 Web 本体语言入门,并希望在使用的“家族”示例本体的上下文中添加我自己的类。所以我添加了一个新的城市类以及一个新的o...

回答 1 投票 0

如何构造一个“Nobody”的 OWL 属性?

我正在尝试创建一个 OWL 本体,其中包含一个 ClaimBy 属性,该属性可以是个人、组织或类似的“代理”(本质上是 foaf:Agent),也可以是无主的(owl:Th...

回答 1 投票 0

耶拿有没有办法看到OntClass来自导入的本体?

我有一个导入 bfo 的本体。在我的测试用例中,我只有一个类,它是实体的子类: 我有一个导入bfo的本体。在我的测试用例中,我只有一个类,它是 entity: 的子类 <rdf:RDF xmlns="http://my.ontology/ontologyTest#" xml:base="http://my.ontology/ontologyTest" xmlns:da="http://my.ontology/ontologyTest#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:obo="http://purl.obolibrary.org/obo/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:terms="http://purl.org/dc/terms/"> <owl:Ontology rdf:about="http://my.ontology/ontologyTest"> <owl:imports rdf:resource="http://purl.obolibrary.org/obo/bfo/2019-08-26/bfo.owl"/> </owl:Ontology> <owl:Class rdf:about="http://my.ontology/ontologyTest#Event"> <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/BFO_0000001"/> </owl:Class> </rdf:RDF> 当我打开本体时,我正在做: OntModel model = createModel("OWL_MEM"); FileManager.get().readModel(model, uri.toString()); Model _model = model.getRawModel(); model = new OntModelImpl(OntModelSpec.OWL_MEM, _model); ExtendedIterator classes = model.listClasses(); while (classes.hasNext()) { OntClass theOwlClass = (OntClass) classes.next(); if (thisClass.getNameSpace() == null && thisClass.getLocalName() == null) { continue; } ... } 我从我的本体中获取所有类(这里是Event),也从导入的本体中获取。 Jena 有没有办法知道 OntClass 是来自导入的本体并且未在我当前的本体中声明? 正如 UninformedUser 的评论中所说,感谢他,您可以执行以下操作: 列出所有导入本体的URI model.listImportedOntologyURIs() 列出导入本体的所有类model.getImportedModel(uri).listClasses() 在模型的所有类上创建一个迭代器,删除所有导入的类model.listClasses().filterDrop(importedClasses::contains) 因此,要打印模型的所有类而无需导入类: import java.util.HashSet; import java.util.Set; import org.apache.jena.ontology.OntClass; import org.apache.jena.ontology.OntModel; import org.apache.jena.ontology.OntModelSpec; import org.apache.jena.rdf.model.ModelFactory; import org.apache.jena.util.iterator.ExtendedIterator; OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM); model.read("file:///Users/von/tools/data.owl", "RDF/XML"); Set<OntClass> importedClasses = new HashSet<>(); for (String uri : model.listImportedOntologyURIs()) { importedClasses.addAll(model.getImportedModel(uri).listClasses().toSet()); } ExtendedIterator<OntClass> it = model.listClasses().filterDrop(importedClasses::contains); while (it.hasNext()) { OntClass cls = it.next(); System.out.println(cls); }

回答 1 投票 0

如何从原始数据(CSV)创建本体?

我正在使用具有相关类、对象属性等的 OWL 本体对大学数据进行建模。我将大学数据放在一个简单的文本文件(例如 CSV)中。我想使用...创建本体

回答 2 投票 0

您可以使用 OWL 2 函数式语法根据另一个人的属性来断言对象属性吗?

假设我们有以下声明: 声明(ObjectProperty(:喜欢)) 声明(NamedIndividual(:John)) 声明(NamedIndividual(:George)) 声明(NamedIndividual(:钓鱼...

回答 1 投票 0

扩展 OWL 类并检查不一致之处

我想在我自己的本体(使用命名空间 http://example.org/test.owl 定义)中扩展 SOMA 中定义的 Hand 类 我想在我自己的本体中扩展SOMA中定义的Hand类,并用命名空间定义http://example.org/test.owl <owl:Class rdf:about="http://www.ease-crc.org/ont/SOMA.owl#Hand"> <rdfs:subClassOf rdf:resource="http://www.ease-crc.org/ont/SOMA.owl#PrehensileEffector"/> <rdfs:comment>A prehensile effector including palm, fingers, and thumb.</rdfs:comment> <rdfs:isDefinedBy rdf:resource="http://www.ease-crc.org/ont/SOMA-OBJ.owl"/> </owl:Class> 看起来像这样 <rdf:Description rdf:about="http://www.ease-crc.org/ont/SOMA.owl#Hand"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#isRegionFor"/> <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality> <owl:allValuesFrom rdf:resource="http://example.org/test.owl#Span"/> </owl:Restriction> </rdfs:subClassOf> </rdf:Description> 首先,这是否正确定义了 Hand 的每个实例都必须通过 Span 属性与 isRegionFor 至少有一个关联? 现在为了测试它,我创建了一个 Hand 实例(具有 SOMA 命名空间),与 Span 没有任何关联,并运行 Pellet 推理机,但推理机没有抱怨。这与 Hand 的命名空间(因为我已经在本体中用新的命名空间扩展了它)或 Pellet 的某些配置有关吗? OWL 遵循“开放世界假设”——为了报告不一致,仅仅图表“缺失”事实是不够的——你必须明确地反驳它们;换句话说,删除三元组永远不会产生矛盾。你的本体论告诉推理者,一个 Hand 与至少一个 Span 存在关系,并且不存在与此相矛盾的三元组。使用 OWL 没有令人满意的方法来做到这一点 - 您可以删除本体中的 rdfs:subClassOf,然后与推理器检查 Hand 的每个成员也是您的 owl:Restriction 的成员。但是,这不需要“直接”证明,因为您可以明确断言此成员资格,即“恶意”图可能暗示特定的 Hand 与某些 Span 相关联,但它没有义务识别该成员资格明确特定的个人。OWL 不是适合这项工作的工具,如果您想验证图表 – SHACL 更好。

回答 1 投票 0

Odoo16 - Owl farmework - 使用 userService("orm") 时出错

使用 userService("orm") 时出错 - odoo16 我的任务是创建一个新页面,这就是我的做法。 root/controller => 创建一个渲染根模板的控制器 维...

回答 1 投票 0

OWL 到 JSON 转换器

我需要将此 OWL 本体文件转换为 JSON,以便将其集成到 HTML5 网页中进行可视化: 这是有问题的 OWL 本体文件

回答 3 投票 0

如何在本体中进行存在量化推理?

我正在尝试计算本体中的存在量化推论,如下所示。给定本体: 政治家(阿尔伯特) 政治家(鲍勃) 相关(阿尔伯特,鲍勃) 我想哈...

回答 1 投票 0

OWL 类中的不一致

我是语义技术的新手。我创建了一些 OWL 类并运行颗粒推理器来检查类中的不一致之处。这是我迄今为止创建的内容的片段: 我是语义技术的新手。我创建了一些 OWL 类并运行颗粒推理器来检查类中的不一致之处。这是我迄今为止创建的片段: <owl:NamedIndividual rdf:about="&object_test;obj_5678"> <rdf:type rdf:resource="&object_test;WorkPiece"/> <xyz:widthOfObject rdf:datatype="&xsd;float">0.1</xyz:widthOfObject> <!--X--> <xyz:depthOfObject rdf:datatype="&xsd;float">0.1</xyz:depthOfObject> <!--Y--> <xyz:heightOfObject rdf:datatype="&xsd;float">0.2</xyz:heightOfObject> <!--Z--> </owl:NamedIndividual> <owl:NamedIndividual rdf:about="&xyz;PQR_WorkPiece_5678"> <rdf:type rdf:resource="&xyz;PQR"/> <xyz:eventOccursAt rdf:resource="&object_test;Transform_5678"/> <xyz:startTime rdf:resource="&object_test;timepoint_0"/> <xyz:objectActedOn rdf:resource="&object_test;obj_5678"/> </owl:NamedIndividual> <owl:NamedIndividual rdf:about="&object_test;Transform_5678"> <rdf:type rdf:resource="&xyz_paramserver;Transform"/> <xyz:quaternion rdf:datatype="&xsd;string">0.0 0.0 1.0 0.0</xyz:quaternion> <xyz:translation rdf:datatype="&xsd;string">0.5 0.1 0.5</xyz:translation> </owl:NamedIndividual> 当我运行颗粒推理机时 sync_reasoner_pellet(infer_property_values = True, infer_data_property_values = True, debug=2) 存在关于类不一致的错误,以下是解释 This is the output of `pellet explain`: Axiom: Thing subClassOf Nothing Explanation(s): 1) Region subClassOf Abstract hasParticipant range Object hasRegionDataValue domain Region objectActedOn subPropertyOf preActor SemanticMapPerception_WorkPiece_1234 objectActedOn obj_1234 obj_1234 depthOfObject 0.02f depthOfObject subPropertyOf hasDepth actor subPropertyOf hasParticipant Abstract disjointWith Object hasShapeParameter subPropertyOf hasRegionDataValue preActor subPropertyOf actor hasDepth subPropertyOf hasShapeParameter 我不知道如何阅读这个输出。这是什么矛盾? 这是指逻辑上的不一致,例如说一个形状既是正方形又是圆形,这是不可能的。你的本体中正在发生类似的事情。 对不一致的解释由一组最小的公理和断言组成,所有这些公理和断言都必须成立才能使本体不一致。因为它是公理和断言的最小集合,如果您可以从本体中删除这些公理或断言中的任何 1 个,则本体将是一致的(假设您只有 1 个对不一致的解释 - 可能有多个不一致的解释)。 根据您提供的内容,您正在根据现有本体创建一些个体。但是,解释中未提及您提供的个人。因此,它们不是不一致的原因(再次假设您只得到上面的 1 个解释)。 为了更清楚起见,在解释中,我指出了公理和断言: Region subClassOf Abstract --> axiom hasParticipant range Object --> axiom hasRegionDataValue domain Region --> axiom objectActedOn subPropertyOf preActor --> axiom SemanticMapPerception_WorkPiece_1234 objectActedOn obj_1234 --> assertion obj_1234 depthOfObject 0.02f --> assertion depthOfObject subPropertyOf hasDepth --> axiom actor subPropertyOf hasParticipant --> axiom Abstract disjointWith Object --> axiom hasShapeParameter subPropertyOf hasRegionDataValue --> axiom preActor subPropertyOf actor --> hasDepth subPropertyOf hasShapeParameter --> axiom 为了解决这个问题,我建议: 根据解释,有问题的人似乎是obj_1234或SemanticMapPerception_WorkPiece_1234。我建议至少暂时删除这些内容,然后重新运行推理机。如果这是唯一的解释,那么你的本体论现在应该是一致的。这意味着您对这些人做出的断言是不正确的。希望您能找到有关如何使用本体的文档,或者您可以联系本体的创建者。 如果您有多个解释,请尝试删除所有断言(至少是暂时的),然后重新运行推理器。如果本体仍然不一致,则意味着本体的公理存在问题,您需要与本体的创建者一起解决这个问题。

回答 1 投票 0

如何将大本体从 Turtle (.ttl) 格式转换为 OWL/XML (.owl) 格式?

我在这里使用来自 GitHub 的本体: https://raw.githubusercontent.com/oeg-upm/gtfs-bench/master/ontology/gtfs.ttl 本体以 Turtle 格式提供,但我需要将其转换为 OWL/XML

回答 1 投票 0

何时使用 rdf:Type 与 rdfs:subClassOf

我对本体论和OWL相当熟悉并且一直在使用它们。但我始终没有一个想法,当我试图找到一个好的答案时,总是会出现矛盾。也就是说,什么时候使用...

回答 1 投票 0

OWL 限制:重复变量

我读了这段文字: “在 OWL 中,禁止在类公理中重复出现变量(例如,不能公理化所有给自己刮胡子的理发师的类......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.