Запрос SPARQL с использованием графиков ABox и TBox

Я попытался выполнить следующий запрос SPARQL в Sesame:

SELECT ?s ?p 
FROM <http://namespace#ABox> 
FROM <http://namespace#TBox> 
WHERE { ?s ?p <http://namespace#Sensor> }

в соответствии с: запустить sparql-запрос к двум графикам?

следующие 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>

Я использовал параметр setIncludeInferred(true) в Java.

Появляется только следующее утверждение:

subject:   <http://namespace#TempSensor>  
predicate: <http://www.w3.org/2000/01/rdf-schema#subClassOf>

На самом деле я ожидаю получить Sensor2014 также в результате.

Я думаю, что проблема может быть в OWLSubClassOfAxiom.

Обновление:

Я пробовал следующие запросы:

Первый запрос:

SELECT ?s ?p  WHERE {?s ?p <http://namespace#Sensor>}

результат:

subject:   <http://namespace#Sensor2015>
predicate: <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

результат ожидаемый

Второй запрос:

SELECT ?s ?p FROM <http://namespace#TAbox>  WHERE {?s ?p <http://namespace#Sensor>}

Нет результатов

результат не ожидаемый

Теперь оба, ABox и 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>

Рассуждение поддерживается - доказано в первом запросе. Я пришел к выводу, что, попробовав запросы, как только используется подграф, рассуждение больше не работает.


person user3616092    schedule 28.05.2014    source источник
comment
FROM <namespace#ABox> FROM <namespace#TBox> выглядит очень подозрительно. Вы действительно используете относительные URI в качестве имен графиков? Я даже не уверен, что это законно. В любом случае, похоже, что это может привести к непредсказуемым результатам. Если это не ваш фактический код, предоставьте нам код, который мы можем использовать для воспроизведения проблемы.   -  person Joshua Taylor    schedule 28.05.2014
comment
Это была ошибка. Используются абсолютные URI. Теперь это исправлено.   -  person user3616092    schedule 28.05.2014


Ответы (1)


Ваше предложение SPARQL WHERE ищет все субъекты и все предикаты, которые имеют <http://namespace#Sensor> в качестве объекта. Глядя на ваши данные, только вторая тройка соответствует этому шаблону. В первой тройке <http://namespace#TempSensor> есть объект.

Вы не указали, использовали ли вы репозиторий с выводом или нет, поэтому, предполагая стандартный репозиторий без вывода в памяти или собственный репозиторий, результат, который у вас есть, выглядит для меня нормальным.

person ThomasFrancart    schedule 28.05.2014
comment
Оп сказал, что я использовал опцию setIncludeInferred(true) в Java. Понятно, что умозаключение - это намерение, есть оно или нет... - person Joshua Taylor; 28.05.2014
comment
Что ж, возможно, его просто нет, и это объясняет поведение. - person ThomasFrancart; 30.05.2014