2013-08-13 11 views
8

Co oznacza ";" operator w klauzuli WHERE oznacza w SPARQL?Znaczenie operatora SPARQL ";"

Na przykład:

SELECT ?x ?y 
WHERE { ?z foaf:name ?x ; :surname ?y } 

Co się; operator oznacza tutaj? To jak logiczne i oznacza, że ​​ta część

Z FOAF:

idzie przed: nazwiskiem ponownie?

Odpowiedz

21

To nie jest operator SPARQL, ale raczej część składni potrójnych wzorców w SPARQL. Pełna specyfikacja znajduje się w sekcji 4.2 Syntax for Triples ze specyfikacji SPARQL. Podsekcja 4.2.1 Listy Predicate-Object opisuje ; notacji:

Triple wzory z wspólnym tematem może być napisany tak, że przedmiot jest napisane tylko raz i jest używany przez więcej niż jednego wzoru przez potrójną zatrudniające ";" notacja.

?x foaf:name ?name ; 
    foaf:mbox ?mbox . 

To jest tak samo jak pisanie potrójne wzory:

?x foaf:name ?name . 
?x foaf:mbox ?mbox . 

Możesz być także zainteresowany w podrozdziale 4.2.2 Listy obiektu:

If potrójnych wzorów udostępniać zarówno podmiot, jak i predykat, obiekty mogą być oddzielone od "," obiektami .

?x foaf:nick "Alice" , "Alice_" . 

jest taka sama, jak pisanie potrójne wzorów:

?x foaf:nick "Alice" . 
?x foaf:nick "Alice_" . 

listę obiektów mogą być połączone z listami orzecznikowe obiektów:

?x foaf:name ?name ; foaf:nick "Alice" , "Alice_" . 

odpowiada:

?x foaf:name ?name . 
?x foaf:nick "Alice" . 
?x foaf:nick "Alice_" . 

Ta sama składnia jest używana w serializacjach RDF dla Turtle i N3. Zobacz 2.3 Abbreviating groups of triples dla żółwia, który mówi

The, symbol mogą być wykorzystane, aby powtórzyć podmiot i orzecznik z trójek, które różnią się tylko w obiekcie RDF perspektywie. ... The; symbol może być użyty do powtórzenia tematu trójki, które różnią się tylko warunkami predykatu i obiektu RDF.

i N3, zobacz sekcję Semantics, który mówi:

Na listach własności, średnik; jest skrótem do powtarzania tematu. Na listach obiektów jest skrótem do powtarzania czasownika.