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.
SPARQLPropertyPath
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.
Details and Options
- 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)
Examples
open all close allBasic Examples (1)
Needs["GraphStore`"]ex[s_] := URL["http://example.org/" <> s];familyGraph = RDFStore[{
RDFTriple[ex["scarlett"], ex["hasFather"], ex["john"]],
RDFTriple[ex["scarlett"], ex["hasMother"], ex["lily"]],
RDFTriple[ex["scarlett"], ex["hasHobby"], ex["swimming"]],
RDFTriple[ex["john"], ex["hasFather"], ex["james"]],
RDFTriple[ex["john"], ex["hasMother"], ex["nora"]],
RDFTriple[ex["john"], ex["hasHobby"], ex["volleyball"]],
RDFTriple[ex["lily"], ex["hasFather"], ex["alex"]],
RDFTriple[ex["lily"], ex["hasMother"], ex["stella"]]
}];Find the grandparents of Scarlett:
familyGraph//SPARQLSelect[
SPARQLPropertyPath[ex["scarlett"], {ex["hasFather"] | ex["hasMother"], ex["hasFather"] | ex["hasMother"]}, SPARQLVariable["grandParent"]]
]The same query using triple patterns and UNIONs:
familyGraph//SPARQLSelect[{
RDFTriple[ex["scarlett"], ex["hasFather"], SPARQLVariable["parent"]] | RDFTriple[ex["scarlett"], ex["hasMother"], SPARQLVariable["parent"]],
RDFTriple[SPARQLVariable["parent"], ex["hasFather"], SPARQLVariable["grandParent"]] | RDFTriple[SPARQLVariable["parent"], ex["hasMother"], SPARQLVariable["grandParent"]]
} -> "grandParent"]Scope (1)
Needs["GraphStore`"]Specify relationships between people and how the used properties are related:
rdfs[s_] := URL["http://www.w3.org/2000/01/rdf-schema#"];
ex[s_] := URL["http://example.org/" <> s];friendsGraph = RDFStore[{
(* vocabulary *)
RDFTriple[ex["hasGoodFriend"], rdfs["subPropertyOf"], ex["hasFriend"]],
(* data *)
RDFTriple[ex["bob"], ex["hasFriend"], ex["alice"]],
RDFTriple[ex["bob"], ex["hasGoodFriend"], ex["frank"]],
RDFTriple[ex["alice"], ex["hasFriend"], ex["carl"]]
}];Find all friends and good friends of Bob:
friendsGraph//SPARQLSelect[{
RDFTriple[ex["bob"], SPARQLVariable["friendProp"] , SPARQLVariable["friend"]],
SPARQLPropertyPath[SPARQLVariable["friendProp"], {rdfs["subPropertyOf"]...}, ex["hasFriend"]]
}]Related Guides
Text
Wolfram Research (2019), SPARQLPropertyPath, Wolfram Language function, https://reference.wolfram.com/language/GraphStore/ref/SPARQLPropertyPath.html.
CMS
Wolfram Language. 2019. "SPARQLPropertyPath." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/GraphStore/ref/SPARQLPropertyPath.html.
APA
Wolfram Language. (2019). SPARQLPropertyPath. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/GraphStore/ref/SPARQLPropertyPath.html
BibTeX
@misc{reference.wolfram_2026_sparqlpropertypath, author="Wolfram Research", title="{SPARQLPropertyPath}", year="2019", howpublished="\url{https://reference.wolfram.com/language/GraphStore/ref/SPARQLPropertyPath.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_sparqlpropertypath, organization={Wolfram Research}, title={SPARQLPropertyPath}, year={2019}, url={https://reference.wolfram.com/language/GraphStore/ref/SPARQLPropertyPath.html}, note=[Accessed: 12-June-2026]}