Re: Reification - whats best practice?

Bob MacGregor wrote:
> Reification in RDF is basically a huge mistake. 

I disagree, see comments below.


> As you noted, storage space explodes. 

Only if implemented naively. Not much extra space is needed if 
reification is implemented by adding an identifier column to the 
statement table.


 > Furthermore,
> queries quickly become unreadable when using reification. 

This again is only true if your query language/engine does not directly 
support reification.

Example:

SELECT
   ?protein, ?location, ?date
WHERE
   [?protein rdf:type :Protein] AND
   ?s <- [?protein :encodedIn ?location] AND
   [?s :modified ?date]
USING
   'http://www.w3.org/1999/02/22-rdf-syntax-ns#' AS rdf,
   'urn:lsid:uniprot.org:ontology:'


> The right solution is to use contexts.  Contexts can be implemented 
> using quads instead of triples,
> or by using a scheme for encapsulating groups of statements, as is done 
> in the Triple system.

Contexts are an excellent idea, but for different use cases, in my 
opinion. It seems a bit problematic to go about creating lots of 
contexts for the sole purpose of describing individual statements.


> Meanwhile, representation of provenance data in RDF is 
> next-to-impossible from a practical standpoint.

Unfortunately you may be right here - few tools support reification 
well, at the moment.

Received on Wednesday, 25 August 2004 16:24:31 UTC