我可以使用 OWL API 来加强特定的主谓宾关系吗?
Can I use OWL API to enforce specific subject-predicate-object relationships?
我正在开发一个使用 RDF 数据的项目,我正在考虑实施一种数据清理方法,该方法将 运行 针对 RDF 三元组数据集并标记不匹配特定模式的三元组,基于自定义 ontology。
例如,我想强制 class http://myontology/A
必须使用谓词 http://myontology/denotes
表示 http://myontology/B
。 Class A
的任何实例,如果 denote
不是 Class B
的实例,则应进行标记。
我想知道如果我为 Reasoner 设计一个自定义公理,OWL-API
中的 OWLReasoner
这样的工具是否有能力完成这样的事情。我在这里查看了文档:http://owlcs.github.io/owlapi/apidocs_4/org/semanticweb/owlapi/reasoner/OWLReasoner.html
在我看来,Reasoner 可用的方法可能无法达到我想要使用它们的目的,但我想知道是否有人有过使用 OWL-API
的经验,或者知道可以解决问题的另一种工具。
一般来说,OWL 推理不太适合查找输入中缺失的信息并将其标记出来:例如,如果您创建一个 class 断言 A 的实例恰好有一个表示与 B 的实例的关系,并且有一个 A 的实例没有,在开放世界假设下,推理者将只假设缺少的语句不可用,而不是你违反了。
有可能检测到不正确的表示使用 - 如果不是与 B 的实例相关,而是与 class 与 B 不相交的实例的关系。但这似乎是一个不同的用例比你要的那个。
您可以使用 OWL API 实现代码来执行此检查,但它可能不会受益于推理能力,并且假设您在 RDF 级别工作我认为像 Apache Jena 这样的 API 实际上可能更适合您(例如,如果您的输入文件不符合 OWL,则您无需担心)。
我正在开发一个使用 RDF 数据的项目,我正在考虑实施一种数据清理方法,该方法将 运行 针对 RDF 三元组数据集并标记不匹配特定模式的三元组,基于自定义 ontology。
例如,我想强制 class http://myontology/A
必须使用谓词 http://myontology/denotes
表示 http://myontology/B
。 Class A
的任何实例,如果 denote
不是 Class B
的实例,则应进行标记。
我想知道如果我为 Reasoner 设计一个自定义公理,OWL-API
中的 OWLReasoner
这样的工具是否有能力完成这样的事情。我在这里查看了文档:http://owlcs.github.io/owlapi/apidocs_4/org/semanticweb/owlapi/reasoner/OWLReasoner.html
在我看来,Reasoner 可用的方法可能无法达到我想要使用它们的目的,但我想知道是否有人有过使用 OWL-API
的经验,或者知道可以解决问题的另一种工具。
一般来说,OWL 推理不太适合查找输入中缺失的信息并将其标记出来:例如,如果您创建一个 class 断言 A 的实例恰好有一个表示与 B 的实例的关系,并且有一个 A 的实例没有,在开放世界假设下,推理者将只假设缺少的语句不可用,而不是你违反了。
有可能检测到不正确的表示使用 - 如果不是与 B 的实例相关,而是与 class 与 B 不相交的实例的关系。但这似乎是一个不同的用例比你要的那个。
您可以使用 OWL API 实现代码来执行此检查,但它可能不会受益于推理能力,并且假设您在 RDF 级别工作我认为像 Apache Jena 这样的 API 实际上可能更适合您(例如,如果您的输入文件不符合 OWL,则您无需担心)。