使用ABox和TBox图的SPARQL查询
我尝试在Sesame中运行以下SPARQL查询:使用ABox和TBox图的SPARQL查询,sparql,sesame,Sparql,Sesame,我尝试在Sesame中运行以下SPARQL查询: SELECT ?s ?p FROM <http://namespace#ABox> FROM <http://namespace#TBox> WHERE { ?s ?p <http://namespace#Sensor> } subject: <http://namespace#Sensor2014> predicate: <http://www.w3.org/1999/02/
SELECT ?s ?p
FROM <http://namespace#ABox>
FROM <http://namespace#TBox>
WHERE { ?s ?p <http://namespace#Sensor> }
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
SELECT?s?p
从…起
从…起
哪里{?s?p}
根据:
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
以下rdf语句存储在Sesame中:
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
主题:
谓语:
对象:
背景:
主题:
谓语:
对象:
背景:
我在Java中使用了setIncludeInferred(true)选项
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
仅显示以下语句:
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
主题:
谓语:
事实上,我希望2014年也能因此而有所收获
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
我想问题可能出在猫头鹰组织
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
更新:
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
我尝试了以下查询:
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
第一个问题:
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
SELECT ?s ?p WHERE {?s ?p <http://namespace#Sensor>}
选择?s?p其中{s?p}
结果:
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
subject: <http://namespace#Sensor2015>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
主题:
谓语:
结果是预期的
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
第二个问题:
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
SELECT ?s ?p FROM <http://namespace#TAbox> WHERE {?s ?p <http://namespace#Sensor>}
从其中{s?p}选择?s?p
没有结果
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
结果不是预期的结果
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
现在ABox和TBox都在同一个子图中。
子图的内容:
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
subject: <http://namespace#Sensor2015>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace:TAbox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace:TAbox>
主题:
谓语:
对象:
背景:
主题:
谓语:
对象:
背景:
支持推理-在第一个查询中证明。
我通过尝试这些查询得出结论,即一旦使用了子图,推理就不再有效了。您的SPARQL WHERE子句将查找所有以
为对象的主语和谓词。查看数据时,只有第二个三元组与此模式匹配。第一个三元组有一个对象
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>
您尚未指定是否使用带推断的存储库,因此假设内存或本机存储库中存在标准的非推断,您的结果在我看来是正常的。
FROM
对我来说非常可疑。您是否实际使用相对URI作为图的名称?我甚至不确定这是否合法。无论如何,这似乎可能导致不可预测的结果。如果这不是您的实际代码,那么请提供我们可以用来重现问题的代码。这是一个错误。使用绝对URI。它现在被更正了。Op说“我在Java中使用了setIncludeInferred(true)选项”。很明显,推理就是意图,不管它是否存在……好吧,也许它只是不存在,这可以解释这种行为。
subject: <http://namespace#Sensor2014>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
object: <http://namespace#TempSensor>
context: <http://namespace#ABox>
subject: <http://namespace#TempSensor>
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>
object: <http://namespace#Sensor>
context: <http://namespace#TBox>