我正在研究一个使用RDF数据的项目,我正在考虑实现一个数据清理方法,该方法将针对RDF三元组数据集和基于自定义本体的特定模式的三元组标记。
例如,我想强制该类http://myontology/A
必须使用谓词http://myontology/B
来表示http://myontology/denotes
。任何不A
类denote
实例的类B
的实例都应该被标记。
我想知道如果我为Reasoner设计了一个自定义公理,那么来自OWLReasoner
的{{1}}等工具是否有能力完成这样的事情。我在这里查看了文档:http://owlcs.github.io/owlapi/apidocs_4/org/semanticweb/owlapi/reasoner/OWLReasoner.html
在我看来,推理器提供的方法可能不符合我想要使用它们的目的,但我想知道是否有人有{J}用于此目的的经验,或者知道另一种可以做到这一点的工具。
答案 0 :(得分:1)
一般来说,OWL推理不太适合查找输入中缺少的信息并将其标记出来:例如,如果您创建一个类,该类断言A的实例只有一个表示与B实例的关系在开放世界的假设下,推理者只会假设缺少的陈述不可用,而不是你违反了。
有可能检测到不正确的表示用法 - 如果不是与B的实例相关,则该关系是与B不相交的类的实例。但这似乎是一个与你不同的用例。后。
您可以使用OWL API实现代码来执行此检查,但它可能无法从推理能力中受益,并且鉴于您在RDF级别工作,我认为像Apache Jena这样的API可能实际上对你来说效果更好(例如,如果您的输入文件不符合OWL,则无需担心。)