sparql - 在 Protege 中使用 SPARQL 推断数据
问题描述
我试图让我的头脑围绕推断 RDF 数据。假设我有这些三元组(RDF Turtle),是我使用 Protege 创建的:
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
:hasSpouse rdf:type owl:ObjectProperty ,
owl:SymmetricProperty ;
rdfs:domain :People ;
rdfs:range :People .
:People rdf:type owl:Class .
:Jane_Doe rdf:type owl:NamedIndividual ,
:People .
:John_Doe rdf:type owl:NamedIndividual ,
:People ;
:hasSpouse :Jane_Doe .
Protege 中的推理器会很好地突出预期的推理,即:Jane_Doe :hasSpouse :John_Doe
.
我怎样才能看到 SPARQL 的推论?如果我在 Protege(SPARQL 选项卡)中运行此查询:
SELECT ?subject
WHERE {?subject hasSpouse ?object .}
它显示了断言的三元组,而不是推断的三元组。我了解如何手动操作,例如:
CONSTRUCT {?object ?prop ?subject }
WHERE { ?prop rdf:type owl:SymmetricProperty .
?subject ?prop ?object .}
我现在会看到我所期待的推断数据,但是 1) 这将失去点恕我直言(即;重新发明轮子) 2) 我不能在此选项卡中进行 2 个查询(构造,然后选择)。必须有一种方法可以自动执行此操作,就像推理者所做的那样。
我在 Stack Overflow 中读到一篇文章,说要在 Protege 中使用“Snap SPARQL”插件。我试过但简单的查询不起作用(如上面的第一个)。好像是另一种语言。它是如何工作的?
那么,我怎样才能通过 SPARQL 获得这些 owl 属性的好处呢?如何在 Protege 中拥有支持 OWL 的 SPARQL?我是不是走错路了?什么是正确的方法?
谢谢你的帮助。尼古拉斯
解决方案
推荐阅读
- django - Django:Login_required(重定向到自定义 login_url)不起作用
- c++ - 检查动态数组是否越界
- node.js - Node.js+AWS S3:上传新文件,如果不存在则创建一个新文件夹
- ruby-on-rails - 找不到没有 ID 的`
- raku - 解构对列表
- python - Pandas Dataframe:想要将多行组合成一个基于其他值的相似性
- javascript - To do app - 将项目添加到列表中。我在这里错过了什么......?
- java - 无法使用 Java 将文件上传到 FTP 服务器(227 进入被动模式)
- postgresql - 在 to_tsquery() 中使用运算符的效果
- git - 致命:启动 gitlab-runner 失败:访问被拒绝