Я использую virtuoso 7.2.1, и я пытаюсь запустить sparql-запрос между 3-мя графами.Использование sameAs в virtuoso sparql между несколькими графиками
G1 содержит:
@prefix : <http://test#> .
:bob :hasAddress :add1 .
G2 содержит:
@prefix : <http://test#> .
:bob :hasAddress :add2 .
и G3 содержит:
@prefix : <http://test#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
:add1 owl:sameAs :add2 .
SPARQL я пытаюсь запустить в виртуоз:
DEFINE input:same-as "yes"
Select *
from <http://G1>
from <http://G3>
Where{
<http://test#bob> <http://test#hasAddress> ?z .
}
результат:
<http://test#add1>
ожидаемый результат:
<http://test#add1>
<http://test#add2>
Примечание: Если я использую одного графа (G1, G2, G3 объединены в G графа) я получить ожидаемый результат. Почему это не работает с несколькими графиками. Спасибо.
----------------------------------- EDIT ---------- ----
Соответственно этот запрос:
DEFINE input:same-as "yes"
Select *
from <http://G2>
from <http://G3>
Where{
<http://test#bob> <http://test#hasAddress> ?z .
}
или этот запрос:
DEFINE input:same-as "yes"
Select ?z
from named <http://G2>
from named <http://G3>
Where{
graph ?g {<http://test#bob> <http://test#hasAddress> ?z .}
}
имеет только этот результат:
<http://test#add2>
Похоже, Графы в ЕКОМ DonT сливаются правильно? Или я чего-то не хватает. – Nosakos