SPARQLPropertyPath[start, {p1,p2,}, end]

is a pattern object that represents a path in a RDF graph that starts at subject start, visits edges with predicates pi and ends at object end.


  • Each pi can be a predicate URL or a pattern.
  • The arguments start and end can be a URL or a SPARQLVariable and end can also be a literal like a number or string.
  • SPARQLPropertyPath[start,{p1,p2,},end] matches a path {RDFTriple[a,f1,b],RDFTriple[b,f2,c],,RDFTriple[y,f2,z]} if MatchQ[{f1,f2,},{p1,p2,}] returns True and start is either a SPARQLVariable or a and end is either a SPARQLVariable or z.
  • The pi can be any combination of the following forms:
  • URL[]a predicate path
    SPARQLInverseProperty[]an inverse path
    Sequence[]a sequence path
    Alternatives[] (|)an alternative path
    RepeatedNull[] (...)a zero or more path
    Repeated[] (..)a one or more path
    Repeated[,{0,1}]a zero or one path
    Except[]a negated property set (only for predicates, inverse predicates and alternatives thereof)


open allclose all

Basic Examples  (1)

Specify family relations:

Find the grandparents of Scarlett:

The same query using triple patterns and UNIONs:

Scope  (1)

Specify relationships between people and how the used properties are related:

Find all friends and good friends of Bob: