RDF Query languages
This directory contains the implementation for standard RDF query languages: SPARQL en SeRQL.
Prolog files
jena_properties.pl | ||
---|---|---|
rdf_html.pl -- Write query-results as HTML table. | ||
write_graph/4 | Write an RDF result-graph as an HTML table, where resources are links to the ClioPatria local view. | |
write_table/4 | Write a result-table in human-readable HTML format. | |
rdf_io.pl | ||
get_triples/3 | Read triples according to the option data_format. | |
get_triples/4 | Hook to read triples into a list of rdf(S,P,O) for a given Format. | |
write_graph/2 | Write a graph, represented as a list of rdf(S,P,O) triples. | |
write_graph/4 | Hook for write_graph/2. | |
write_table/2 | Write a result-table in the specified format. | |
write_table/4 | Hook for write_table/2. | |
rdf_turtle_io.pl -- Write query-result graphs as Turtle | ||
write_graph/4 | Write an RDF result-graph as an HTML table, where resources are links to the ClioPatria local view. | |
rdfql_runtime.pl -- SPARQL/SeRQL runtime support predicates | ||
rdfql_bind_null/1 | True if all elements in List unify with $null$ . | |
rdfql_carthesian/1 | Bags is a list of independent goals. | |
rdfql_cond_bind_null/1 | Bind variables in List to our NULL-representation, which is $null$ . | |
rdfql_triple_in/2 | True when Triple is an rdf(S,P,O) element in Triples that does not contain NULL. | |
rdfql_util.pl | ||
entailment_module/2 | Find the Prolog module implementing the entailment rules for a semantic web language. | |
select_results/6 | Calls select_results/8 using Group=[] and Having=true. | |
select_results/9 | Select results for the template Result on backtracking over Goal. | |
sort_key/2 | Determine the sort-key from a result according to the SPARQL standard:. | |
serql.pl | ||
serql_compile/3 | Compile a SeRQL query, returning the result in Compiled. | |
serql_query/3 | Where Query is either a SeRQL query text or a parsed query. | |
serql_run/2 | ||
serql_runtime.pl | ||
serql_compare/3 | Handle numerical and textual comparison of literals. | |
serql_member_statement/2 | Get the individual triples from the original reply. | |
serql_xml_result.pl | ||
xml_read_result_table/3 | Read an XML document from In and return the rows and variable names in there. | |
xml_to_result_table/3 | Convert a parsed XML document into a list of rows and a column name (variable name) term of the format names(Col1, Col2, ...) . | |
sparql.pl | ||
select_results/3 | Apply ordering and limits on result-set. | |
sparql_compile/3 | Performs the compilation pass of solving a SPARQL query. | |
sparql_query/3 | Where Query is either a SPARQL query text or a parsed query. | |
sparql_run/2 | Runs a compiled SPARQL query, returning the result incrementally on backtracking. | |
sparql_csv_result.pl -- Write SPARQL results as CSV | ||
sparql_write_csv_result/3 | Emit results from a SPARQL SELECT query as CSV. | |
sparql_grammar.pl -- SPARQL Parser | ||
sparql_parse/3 | Parse the SPARQL statement Input into a Prolog representation. | |
sparql_json_result.pl -- Write SPARQL results as JSON | ||
sparql_write_json_result/3 | Emit results from a SPARQL query as JSON. | |
sparql_runtime.pl -- SPARQL runtime support | ||
sparql_eval/2 | Evaluate a SPARQL expression. | |
sparql_eval_raw/2 | Same as sparql_eval/2, but return the raw result. | |
sparql_find/5 | Implement *(PropertyPath). | |
sparql_group/1 | Same as call. | |
sparql_group/3 | Execute a group that contains non-steadfast variables, which asks for delayed unification of the output arguments. | |
sparql_minus/2 | Realise SPARQL MINUS . | |
sparql_reset_bnodes/0 | Reset the database for the BNODE(str) function. | |
sparql_service/5 | Execute a remote SPARQL SERVICE request. | |
sparql_simplify/2 | Simplify goals to the SPARQL runtime functions before they are handed to the general optimizer and runtime evaluation. | |
sparql_subquery/3 | Execute a SPARQL subquery. | |
sparql_true/1 | Generated from FILTER Term, where Term must be converted to a boolean as 'Effective Boolean Value'. | |
sparql_update/1 | Handle SPARQL update requests. | |
sparql_xml_result.pl | ||
sparql_write_xml_result/3 | Write SPARQL XML result data. | |
text_properties.pl | ||
functional_property/2 | These functional properties deal with text matching. |
SPARQL TODO List
- Complete SORT BY:
- Compare order in test-cases
- Value-specific comparison
- Compare expression results (e.g., ASC(?a+?b))
- Implement value based semantics in xsd:dateTime
- { ?x ?y 1 } cannot be mapped to
rdf(X, Y, literal(type(xsd:integer, '1')))
because it must match :a :b "01"^^xsd:integer. - Does SPARQL define a total ordering of literals? If so, we may use this for the literal AVL-tree and speedup some of these queries a lot.