Closed hartig closed 8 years ago
Is this to reconcile Sesame, Jena and any other API?
Exactly. This PR is to separate out everything that is generic and API independent. This separation is meant to avoid code duplication in the API dependent code paths. For instance, note that the new class TriplePatternElementParserForJena
contains nothing but Jena-specific code; for the Blazegraph backend I will have a similar class that--instead of extending TriplePatternElementParser<RDFNode,String>
(as done by TriplePatternElementParserForJena
)--extends TriplePatternElementParser<BigdataValue,String>
(where BigdataValue
is a Blazegraph-specific extension of the Sesame interface Value
, which resembles RDFNode
in Jena).
This PR introduces a generic, API-independent interface to represent elements of triple patterns, and refactors the existing code base to use this interface (which is called
TriplePatternElement
). This refactoring is another step towards making an implementation of additional backends more easy; in particular, it helps to avoid code duplication for such implementations.