Rdf Protege中的SPARQL查询结果无法识别可传递属性
我在这个问题上表达了几乎相同的要求: 我使用的是Protege 3.4.8。这是一个Owl-Lite项目。 我有一个可传递属性“contains”,它被定义为Node类型的对象属性 节点具有类型A、B和C的后代 我有一些个人通过包含以下内容的属性相互链接: A包含B包含C 运行以下SPARQL查询时:Rdf Protege中的SPARQL查询结果无法识别可传递属性,rdf,sparql,owl,protege,Rdf,Sparql,Owl,Protege,我在这个问题上表达了几乎相同的要求: 我使用的是Protege 3.4.8。这是一个Owl-Lite项目。 我有一个可传递属性“contains”,它被定义为Node类型的对象属性 节点具有类型A、B和C的后代 我有一些个人通过包含以下内容的属性相互链接: A包含B包含C 运行以下SPARQL查询时: SELECT ?A ?B WHERE { ?A :contains ?B } 我得到: A1 B1 B1 C1 由于contains的可传递性,我希望 A1 C1
SELECT ?A ?B
WHERE
{
?A :contains ?B
}
我得到:
A1 B1
B1 C1
由于contains的可传递性,我希望
A1 C1
也是。
我做错了什么?我链接到的问题的答案中包括了Jena,在Jena车型上这样做会有不同吗?好的
通过进一步搜索,我找到了此页面:
以下引用(可能)解释了我看到的行为背后的原因:
“出于我们的目的,SPARQL查询可以直接执行
通过Protege中的SPARQL查询面板或从JAVA
应用程序使用专门的Jena库方法。两者
这些方法能够处理关于显式对象和对象的查询
属性关系,但Jena库具有使用
因此,使用Jena库方法执行的查询可以返回
结果还考虑了传递关系和推断关系。”
嗯
通过进一步搜索,我找到了此页面:
以下引用(可能)解释了我看到的行为背后的原因:
“出于我们的目的,SPARQL查询可以直接执行
通过Protege中的SPARQL查询面板或从JAVA
应用程序使用专门的Jena库方法。两者
这些方法能够处理关于显式对象和对象的查询
属性关系,但Jena库具有使用
因此,使用Jena库方法执行的查询可以返回
结果还考虑了传递关系和推断关系。”
SPARQL是一种RDF查询语言,因此并非所有SPARQL引擎都应该实现OWL蕴涵(即,使用OWL语义来评估查询)。详情请参阅
不确定哪个实现实际上在幕后使用Protege…SPARQL是一种RDF查询语言,因此并非所有SPARQL引擎都应该实现OWL蕴涵(即,使用OWL语义来评估查询)。详情请参阅 不确定哪一个实现实际上是在幕后使用Protege