Pfade haben die Form {Subjekt} Prädikat {Objekt}, z.B.
Man mache sich klar, ob es sich jeweils um Variablen, URIs oder Literale handelt.
Wenn nun das Objekt einer Beziehung wieder Subjekt einer anderen ist, kann man beides zusammenschreiben:
Man darf auch Knoten leer lassen; das führt dann zu anonymen Variablen:
Für bestimmte, besonders häufig auftretende Fälle kann man sich unnötige Schreibarbeit ersparen.
Hat man fast identische Aussagen, die sich nur im Subjekt oder Objekt unterscheiden, kann man diese in einen Pfad zusammenfassen:
Will man verschiedene Aussagen über das gleiche Subjekt machen, benutzt man statt Komma ein Semikolon und lässt das Subjekt in der folgenden Aussage weg:
{A} | pred {B}; |
pred2 {C}; | |
pred3 {D} |
{A} pred {} | pred1 {B}; |
pred2 {C} pred3 {D}; |
Bei den bisherigen Pfaden gibt RQL nur Daten zurück, auf die alle genannten Bedingungen zutreffen. Häufig kommt es aber vor, dass bestimmte Teile optional sind, z.B. email-Adressen. Solche optionalen Pfade umschließt man dann mit eckigen Klammern, das bedeuted für RQL dann, dass er auch Daten zurückgeben darf, auf die diese Beschreibungen nicht zutreffen. In solch einem Fall wird den entsprechenden Variablen der Wert null zugewiesen.
Bespiel:
{Person} | person:name {Name}; |
person:alter {Alter}; | |
[person:email {Email}] |
{Person} | person:name {Name}; |
person:alter {Alter}; | |
[{Person} | person:email {Email}] |
{Dokument} | dc:title {Titel}; | |
[dc:author {Author} | person:name {Name}; | |
[person:email {Email}]] |
Im letzten Beispiel ist der Author optional, dabei verschachtelt sogar noch einmal die email-Adresse