W3C home > Mailing lists > Public > www-rdf-interest@w3.org > August 2004

Re: Reification - whats best practice?

From: Bob MacGregor <macgregor@isi.edu>
Date: Wed, 25 Aug 2004 22:47:13 -0700
Message-ID: <412D7961.4060204@isi.edu>
To: Sandro Hawke <sandro@w3.org>
CC: Leo Sauermann <leo@gnowsis.com>, "'RDF interesting groupe'" <www-rdf-interest@w3.org>
Sandro Hawke wrote:

>>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.
>>The DAWG committee is taking baby steps towards contexts by
>>including a SOURCE element in BRQL.  If you substitute the term
>>"context" for "source" in a BRQL query, then you have quads.  Some
>>of us are planning to "abuse" BRQL by treating the sources as if
>>they are contexts.  I would not be surprised if members of the DAWG
>>committee have that in mind (but I can't speak for them).
>>
>>At some point in the future, quad stores are likely to become
>>commonplace--there are a few already.
>>    
>>
>
>While I'm fond of quad stores (eg in cwm and SWI prolog) and
>agree they're generally the way to go -- how do you propose exchanging
>quad-store data?   My store knows that source x said {a b c}, but how
>do I publish that fact?
>  
>
Easy.  You create a context C containing all of the triples that "x 
said", and assert that
"x said C".  If x said only one statement, then there is one context per 
statement.  However,
in practice, the things that "x said", or "x authored", or whatever, 
tend to come in bunches,
so contexts win out over reified statements almost always.

This misunderstanding seems to be common.  It's rare that one statement 
captures what
you want to say, whether its a time-dependent statement or a 
probabillistic one, or whatever.
This is what is so awful about statement reification.  Its completely at 
the wrong end of the
granularity spectrum for most uses, but since it is part of RDF and 
contexts are not, the general
assumption is that contexts have to prove their worth, while reification 
doesn't.  In fact, a
rational assessment would take the opposite tack, since there are 
several major KR systems
that routinely use contexts (e.g., Cyc, Loom, EpiKit) and no systems 
that I know of with
any history behind them that use single-statement reification routinely 
(quoting isn't the same
thing).  The simple fact is, the original RDF committee blew it when 
they invented statement
reification -- there were no "use cases" around that justified such a 
decision.

Cheers, Bob

>It seems to me that some reificiation vocabulary is useful for this,
>although I'd recommend that stores de-reify when possible and store as
>quads, for the performance reasons you cite.    Of course a
>serialization with quoting (like N3's {...}) makes it a lot more
>readable.
>
>        -- sandro
>
>  
>
-- 

Bob MacGregor
Chief Scientist

	
	Siderean Software Inc
5155 Rosecrans Ave, #1078
Hawthorne, Ca 90250 
<http://maps.yahoo.com/py/maps.py?Pyt=Tmap&addr=5155+Rosecrans+Ave&csz=Hawthorne%2C+Ca+90250&country=us> 

bmacgregor@siderean.com <mailto:bmacgregor@siderean.com> 	
tel: 	+1-310-491-3424
fax: 	+1-310-491-3338

 

 

 
Received on Thursday, 26 August 2004 05:47:50 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 5 February 2014 07:14:57 UTC