I would like to ask for your opinion on something.
I want to use a triplestore together with a DB, I would prefer MySQL. I do not want fancy things from it or that is very fast. The only thing I need is to store triple patterns and also their selectivity. Moreover, often I would like to store triple patterns together with filters. Then I would query for a triple pattern and the answer would be the selectivity number.
The way I imagine the DB table is:
I was thinking of using SDB from Jena. Would it be possible to support this kind of table? Once again, I want to keep the solution as simple as possible. For this specific part, I do not care about fast query execution, even though an index might be a good idea if the entries in the table are more in the future.
asked 24 Feb '13, 17:22
Jena SDB uses a schema to store RDF and is not extensible to other graph forms. It is not a general table layout.
As with any RDF system, what you might wish to do is to record your information in RDF (see n-ary predicates or reification to capture the additional information you want to add).
The other choice is a graph database that is not RDF specific e.g. Apache Giraph (large scale) or Neo4j (there are many of these to choose from).
answered 25 Feb '13, 03:33
If you want to keep it simple choose a simple triple store first. Have a look at ARC2, it's PHP package that comes with a MySQL triplestore and is really easy to set up (See 'a complete example' here).
All triplestores will only store the actual triples. That is: subject - predicate - object. And sometimes a forth column called Graph or Context. So, like Andy suggested, I think the easiest way to save your 'filter' and 'selectivity' data is to use reification, which means you create extra triples to describe what data comes with a certain triple.
answered 25 Feb '13, 04:28