2011-10-27 10 views
5

Czytałem o SPARQL i RDF i proszę mnie poprawić, jeśli moje rozumowanie na temat tych technologii jest tutaj błędne.Czy mogę połączyć dane lokalne i zdalne w zapytaniu SPARQL?

Zakładając, że mamy lokalną bazę danych SPARQL o nazwie LOCAL .. i adres URL do zdalnego pliku RDF o nazwie URL_RDF. Czy mogę napisać skrypt, powiedzmy w PHP, który wykona zapytanie SPARQL w ten sposób?

Pseudo kod.

Innymi słowy mogę łączyć źródła w zapytaniu SPARQL w ten sposób (plik zdalny + lokalny db)?

Odpowiedz

5

Możesz to zrobić za pomocą funkcji federacyjnych w SPARQL 1.1. Są one opisane w http://www.w3.org/TR/sparql11-federated-query, ale daje szybki wrażenie, jak to wygląda, Twój przykład kwerenda byłoby coś jak to (wciąż w Pseudokod):

SELECT * WHERE { 
    # the local part of the query 
    ?s ?p ?id 

    SERVICE <http://url/to/remote/data> { 
    # The remote part of the query 
    ?x ?y ?id 
    } 
} 

Należy pamiętać, że adres URL będzie musiał wskazywać na Punkt końcowy SPARQL, tj. Serwer, który może odpowiadać na zapytania SPARQL, a nie tylko zdalny plik RDF.

+0

Dzięki Jan, Czy mogę w ogóle używać surowych plików rdf? czy zawsze potrzebuję punktu końcowego? nawet jeśli zapytanie odnosiłoby się tylko do URL_RDF. Co się stanie, jeśli ten plik URL_RDF będzie przechowywany lokalnie? Doceń swoją pomoc – AndroidGecko

+0

Nie możesz bezpośrednio wyszukiwać plików RDF, zawsze potrzebujesz oprogramowania interpretującego plik RDF i oceniającego zapytanie o te dane. Aby to zrobić, zwykle używasz "potrójnego sklepu". Wszystkie potrójne magazyny pozwalają na załadowanie plików RDF, dzięki czemu można je zapytać. Jeśli masz wiele plików danych, możesz po prostu załadować je wszystkie do jednego potrójnego sklepu, a następnie uruchomić swoje zapytania. Możesz też używać wielu potrójnych sklepów i wyszukiwać w nich za pomocą składni SERVICE opisanej powyżej. – Jan

Powiązane problemy