Запрос двух RDF-графиков в SPARQL - PullRequest
0 голосов
/ 25 июня 2018

У меня есть две базы знаний RDF

KB1 (path/to/file1.rdf), в состав которых входят две следующие тройки

a b c
a f e

и KB2 (path/to/file2.rdf) со следующей тройкой:

c t p

Я хочу, чтобы все пути включали такие, как ?a ?b ?c & ?c ?t ?p, так как c является обычным.

Как это сделать в SPARQL?

1 Ответ

0 голосов
/ 25 июня 2018

В случае двух КБ это то, что мы называем «Федеративный запрос». Вот пример:

SELECT * WHERE {
  SERVICE URI_for_path/to/file1.rdf { 
    ?a ?b ?c .  
    OPTIONAL { 
      SERVICE URI_for_path/to/file2.rdf { 
        ?c ?t ?p . } }
  }    
}

Вы получите ?t ?p, только если, кстати, оно существует.

Самый простой способ - загрузить оба файла в одном КБ и, следовательно, получить простой запрос:

SELECT * WHERE {
    ?a ?b ?c .  
    ?c ?t ?p .   
}
...