2015-09-02 4 views
3

Кажется, что есть ошибка в Sesame 2.8.4. Sesame 2.8.4 исправление ошибки в подзапросе?

Если у меня есть следующий набор данных:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. 
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>. 
@prefix : <http://example.org/>. 

:a rdf:type :AClass . 
:a :hasName "a"^^xsd:string . 
:a :hasProperty :xa . 
:a :hasProperty :ya . 
:a :hasProperty :za . 

:b rdf:type :AClass . 
:b :hasName "b"^^xsd:string . 
:b :hasProperty :xb . 
:b :hasProperty :yb . 

:c rdf:type :AClass . 
:c :hasName "c"^^xsd:string . 
:c :hasProperty :xc . 

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

prefix : <http://example.org/> 
select ?s ?p ?o { 
#-- first, select two instance of :AClass 
{ select ?s { ?s a :AClass } limit 2 } 

#-- then, select all the triples of 
#-- which they are subjects 
?s ?p ?o 
} 

В результате я получаю назад это:

-------------------------------------------------------------------- 
| s | p             | o  | 
==================================================================== 
| :a | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | :AClass | 
| :a | :hasName           | "a"  | 
-------------------------------------------------------------------- 

Вместо этого это правильный результат:

-------------------------------------------------------------------- 
| s | p             | o  | 
==================================================================== 
| :a | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | :AClass | 
| :a | :hasName           | "a"  | 
| :a | :hasProperty          | :xa  | 
| :a | :hasProperty          | :ya  | 
| :a | :hasProperty          | :za  | 
| :b | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | :AClass | 
| :b | :hasName           | "b"  | 
| :b | :hasProperty          | :xb  | 
| :b | :hasProperty          | :yb  | 
-------------------------------------------------------------------- 

Кто-нибудь знает об этой ошибке? Кто-нибудь сталкивался с той же проблемой? Или есть другая версия Sesame с исправленной ошибкой?

Следующая строка была добавлена ​​после того, как ответили на мой вопрос:

Чтобы избежать путаницы: Это ошибка в Workbench, а не двигатель запроса. Механизм запросов работает отлично.

+2

Не отвечая на ваш вопрос, но вам понадобится '{select ** DISTINCT **? S {? S a: AClass} limit 2}' В настоящий момент внутренний выбор может возвратиться: a и: a. – AndyS

+0

@ AndyS Извините, но если я добавлю ** DISTINCT **, это даст мне тот же результат. Это не имеет никакого другого эффекта. Я уже пробовал. – whitefang1993

+0

@AndyS: Почему внутренний выбор возвращает дважды тот же URI? Должна ли быть только одна тройка (: a rdf: type: AClass) на графике? – AKSW

ответ

2

Проблема, которую вы видите, не является ошибкой в ​​механизме запросов, а является ошибкой в ​​клиентском приложении Workbench (что также объясняет, почему я не смог воспроизвести ее раньше, поскольку я использовал клиент командной строки). По некоторым причинам Верстак неправильно делает результат, показывая только две строки (несмотря говоря, в заголовке, что есть 9 результатов, которые будут показаны):

Проблема связана с функциональностью результата поискового вызова в инструментальных средствах , потому что когда вы меняете, что установка его вдруг действительно показывает полный результат:

Этот вопрос в настоящее время регистрируется как ошибка в системе отслеживания проблем Сезам в: SES-2307.