On 27/08/15 16:11, Patrick Hoeffel wrote:
All,

I know this is not a new topic, so hopefully there is a reference to the 
de-facto standard answer on this (that I have not been able to find on my own 
so far).

When I have a Subject that I want to store additional information about, I can 
just add triples using the same Subject. Easy.

When I want to say things about a Statement (such as the date range within 
which the triple Statement is valid, or the strength or source of the 
relationship), the answer is more ambiguous. Reification is the standard 
answer, but it is also heavy. I've read about using Quads, Named Graphs, N-ary 
Relationships, etc.

What is the current state of the art or best practice in this regard?

No one size fits all. In particular it depends on whether you really want such qualifiers to be applicable to any triple level statement or only to particular cases, and whether your data follows particular patterns.

My personal heuristics are something like ...

If you have some graph of relationships where you might want to qualify relationships by strength or validity but where the entities have other unqualified attributes then I would go with an n-ary relation type approach [1].

If your data is more regular and can be thought of as similar to measurements, or observations or derivations therefrom then I would go with RDF Data Cube [2] which allows you include time ranges as one of the dimensions and strength as a qualifying attribute.

If your data comes in batches with different time validity for the batches then I'd consider named graphs (aka quads, same difference).

If your data is fundamentally arbitrary RDF statements and anything in there might be qualified and annotated with different values then I'd be inclined to use reification.

Dave


[1] http://www.w3.org/TR/swbp-n-aryRelations/

[2] http://www.w3.org/TR/vocab-data-cube/

Reply via email to