Hi,

Would it be possible to add a QueryExecutionFactory (QEF) *interface* to Jena? The com.hp.hpl.jena.query.QueryExecutionFacotry has lots of static factory methods, but I guess it would be very useful if Jena itself provided such an interface (either different package, different name or both) because then implementations based on Jena could rely on such interface (see below and [1]) in a (quasi) standard way, and other projects could provide fancy implementations.

public interface QueryExecutionFactory
extends QueryExecutionFactoryString, QueryExecutionFactoryQuery
{ /** * Some Id identifying the SPARQL service, such as a name given to a jena Model or the URL of a remote service */ String getId(); /** * Some string identifying the state of this execution factory, such as the selected graphs, or for query federation the configured endpoints and their respective graphs. * Used for caching */
String getState();
}


The reason I ask this, is because I created [2], which uses this architecture to transparently add delay, caching and pagination to a QEF - i.e. you could just pose a usual SPARQL query to DBpedia, and [2] will take care of retrieving the *complete* result, thereby caching each page so that one can resume pagination from cache should something go wrong.

But for example, someone might provide a parallel pagination component, or some query federation system, such as FedX could be wrapped with such interface as well, and application developers would not have to rely on a specific implementation.

Cheers,
Claus

[1] https://github.com/AKSW/jena-sparql-api/blob/master/jena-sparql-api-core/src/main/java/org/aksw/jena_sparql_api/core/QueryExecutionFactory.java
[2] https://github.com/AKSW/jena-sparql-api

--
Dipl. Inf. Claus Stadler
Department of Computer Science, University of Leipzig
Research Group: http://aksw.org/
Workpage & WebID: http://aksw.org/ClausStadler
Phone: +49 341 97-32260

Reply via email to