SPARQL query templates for GDS RDF graphs.
Pre-built queries for common analyses: dependency paths, reachability,
loop detection, parameter impact, block grouping, and entity update maps.
SPARQLTemplate
dataclass
A named, parameterized SPARQL query template.
Source code in packages/gds-interchange/gds_interchange/owl/sparql.py
| @dataclass(frozen=True)
class SPARQLTemplate:
"""A named, parameterized SPARQL query template."""
name: str
description: str
query: str
|
run_query(graph, template_name, **params)
Run a registered SPARQL template against a graph.
Parameters can be substituted into the query using Python string
formatting ({param_name} placeholders).
Returns a list of dicts, one per result row, with variable names as keys.
Source code in packages/gds-interchange/gds_interchange/owl/sparql.py
| def run_query(
graph: Graph,
template_name: str,
**params: str,
) -> list[dict[str, Any]]:
"""Run a registered SPARQL template against a graph.
Parameters can be substituted into the query using Python string
formatting ({param_name} placeholders).
Returns a list of dicts, one per result row, with variable names as keys.
"""
if template_name not in TEMPLATES:
raise KeyError(
f"Unknown template '{template_name}'. Available: {sorted(TEMPLATES.keys())}"
)
template = TEMPLATES[template_name]
query = template.query.format(**params) if params else template.query
results = graph.query(query)
return [{str(var): row[i] for i, var in enumerate(results.vars)} for row in results]
|