使用ABox和TBox图的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/

我尝试在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/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>