kapps_triplestore_interface.sparql_query#
- class kapps_triplestore_interface.sparql_query.SPARQLQueryType(*values)[source]#
Bases:
EnumEnum for different SPARQL query types.
- SELECT = 'SELECT'#
- SELECT_DISTINCT = 'SELECT DISTINCT'#
- SELECT_REDUCED = 'SELECT REDUCED'#
- CONSTRUCT = 'CONSTRUCT'#
- DESCRIBE = 'DESCRIBE'#
- ASK = 'ASK'#
- INSERT_DATA = 'INSERT DATA'#
- INSERT_EXISTS = 'INSERT EXISTS'#
- DELETE_DATA = 'DELETE DATA'#
- DELETE_INSERT = 'DELETE/INSERT'#
- class kapps_triplestore_interface.sparql_query.SPARQLQuery(named_graph: str | IRI | None = None, include_explicit: bool | None = True, include_implicit: bool | None = True)[source]#
Bases:
objectHelper for composing and validating SPARQL queries.
Builds SELECT/ASK and UPDATE blocks (INSERT/DELETE) with optional default named graph and control over explicit/implicit inference.
- classmethod select(variables: List[str], where_clauses: List[str], select_type: SPARQLQueryType | None = SPARQLQueryType.SELECT, **kwargs) SPARQLQuery[source]#
Create a new SPARQLQuery instance with a SELECT block. Refer to add_select_block for details.
- add_select_block(variables: List[str], where_clauses: List[str], select_type: SPARQLQueryType | None = SPARQLQueryType.SELECT) None[source]#
Add a SELECT block to the query.
- Parameters:
variables (List[str]) – Variable names to project (e.g., [“?s”, “?p”, “?o”]).
where_clauses (List[str]) – WHERE patterns/filters to include.
select_type (Optional[SPARQLQueryType]) – SELECT variant (e.g., DISTINCT). Defaults to SELECT.
- classmethod ask(where_clauses: List[str], **kwargs) SPARQLQuery[source]#
Create a new SPARQLQuery instance with a ASK block. Refer to add_ask_block for details.
- add_ask_block(where_clauses: List[str]) None[source]#
Add an ASK block to the query.
- Parameters:
where_clauses (List[str]) – WHERE patterns/filters to include.
- classmethod insert_data(triples: Set[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | List[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | Tuple[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]], **kwargs) SPARQLQuery[source]#
Create a new SPARQLQuery instance with an INSERT DATA block. Refer to add_insert_data_block for details.
- add_insert_data_block(triples: Set[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | List[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | Tuple[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]]) None[source]#
Add an INSERT DATA block comprised of triples.
- Parameters:
triples (TriplesLike) – Triples to insert.
- classmethod insert_exists(triples: Set[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | List[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | Tuple[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]], **kwargs) SPARQLQuery[source]#
Create a new SPARQLQuery instance with an INSERT … WHERE NOT EXISTS block. Refer to add_insert_exists_block for details.
- add_insert_exists_block(triples: Set[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | List[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | Tuple[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]]) None[source]#
Add an INSERT … WHERE NOT EXISTS block.
- Parameters:
triples (TriplesLike) – Triples to insert when they do not already exist.
- classmethod delete_data(triples: Set[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | List[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | Tuple[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]], **kwargs) SPARQLQuery[source]#
Create a new SPARQLQuery instance with a DELETE DATA block. Refer to add_delete_data_block for details.
- add_delete_data_block(triples: Set[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | List[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | Tuple[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]]) None[source]#
Add a DELETE DATA block comprised of triples.
- Parameters:
triples (TriplesLike) – Triples to delete.
- classmethod delete_insert_data(delete_triples: Set[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | List[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | Tuple[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]], insert_triples: Set[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | List[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | Tuple[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]], where_clauses: List[str], **kwargs) SPARQLQuery[source]#
Create a new SPARQLQuery instance with a DELETE DATA block. Refer to add_delete_insert_data_block for details.
- add_delete_insert_data_block(delete_triples: Set[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | List[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | Tuple[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]], insert_triples: Set[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | List[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]] | Tuple[Tuple[str | IRI | BNode, str | IRI, str | IRI | BNode | Any | Literal]], where_clauses: List[str]) None[source]#
Add a combined DELETE/INSERT block with WHERE.
- Parameters:
delete_triples (TriplesLike) – Triples to delete.
insert_triples (TriplesLike) – Triples to insert.
where_clauses (List[str]) – WHERE patterns selecting the triples to update.
- to_string(validate: bool | None = True) str[source]#
Compose the full SPARQL string and optionally validate it.
- Parameters:
validate (Optional[bool]) – If True, validate the query or update structure.
- Returns:
The composed query string.
- Return type:
- Raises:
InvalidQueryError – If validation of the composed query fails.