Кажется, что есть ошибка в 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, а не двигатель запроса. Механизм запросов работает отлично.
Не отвечая на ваш вопрос, но вам понадобится '{select ** DISTINCT **? S {? S a: AClass} limit 2}' В настоящий момент внутренний выбор может возвратиться: a и: a. – AndyS
@ AndyS Извините, но если я добавлю ** DISTINCT **, это даст мне тот же результат. Это не имеет никакого другого эффекта. Я уже пробовал. – whitefang1993
@AndyS: Почему внутренний выбор возвращает дважды тот же URI? Должна ли быть только одна тройка (: a rdf: type: AClass) на графике? – AKSW