With
metaphactory users can express custom service requests as part of SPARQL queries. Custom services are integrated as data sources and hybrid SPARQL queries are optimized to be executed efficiently. Ephedra defines a common implementation interface, in which interactions with external services are encapsulated in an RDF4J SAIL module. In this way, a custom compute service, for example, can be registered in the repository manager as yet another SPARQL repository and referenced inside SERVICE clauses in SPARQL queries. SPARQL graph patterns specified inside such SERVICE clauses are parsed to extract input parameters for a service call, as well as the variables to bind the results returned by the service.
The Ephedra SPARQL query execution strategy sends the sub-clauses of a query to corresponding data sources, gathers partial results, combines them using union and join operations, and produces result sets.