I'm starting to work with the Jena Engine and I think I got a grasp of what semantics are. However I'm having a hard time understanding the different ways to represent a bunch of triples in Jena and ARQ:
- The first thing you stumble upon when starting is
Model
and the documentation says its Jenas name for RDF graphs. - However there is also
Graph
which seemed to be the necessary tool when I want to query a union of models, however it does not seem to share a common interface withModel
, although one can get theGraph
out of aModel
- Then there is
DataSet
in ARQ, which also seems to be a collection of triples of some sort.
Sure, afer some looking around in the API, I found ways to somehow convert from one into another. However I suspect there is more to it than 3 different interfaces for the same thing.
So, question is: What are the key design differences between these three? When should I use which one ? Especially: When I want to hold individual bunches of triples but query them as one big bunch (union), which of these datastructures should I use (and why)?
Also, do I "loose" anything when "converting" from one into another (e.g. does model.getGraph()
contain less information in some way than model
)?