Re: Placing a comment on a relationship?!

Michael Brian Orr wrote:
<snip/>

> I've used the "composed relationship that indirects via an intervening 
> node" approach with excellent results in building a specialized class 
> library over an RDF library (C# and Drive in my case; I'm sure similar 
> results would obtain with Java). 
> 
> The result is a very lightweight reification-like construct for instances 
> of relationships, where each instance gets an rdf:ID, and the encapsulating 
> library class shares interfaces with the library classes for both nodes (eg 
> set/get properties) and edges (eg subject/object node). 
> 
> This approach might be much less appealing if one were approaching the graph 
> from a tools environment rather than code, but for the class library 
> situation, it seems to be a great answer. 

The advantage of "code" is that your data structures can be quite flexible, as 
demonstrated.  However, representation on disk becomes difficult.  You can try 
introducing pointers to statement locations in a file, but these locations 
tend to change as data is inserted and removed.

Most systems tend to add some kind of data to the statement, and then refer to 
that data by value, rather that the statement by location.  For instance, some 
database implementations have a primary key on the table containing 
statements.  This extra data is very reification-like, which in itself causes 
controversy.  :-)

Of course, people often start seeing that extra data and start thinking that 
non-reification data can be stored there instead, such as model IDs.

Anyway, my point is that this solution only seems to be useful for "in-memory" 
code, rather than the general case.  By not having an efficient representation 
on disk the solution loses scalability.  As a concession, I do grant that 
in-memory data stores have important applications.

-- 
Regards,
Paul Gearon

Software Engineer                Telephone:   +61 7 3876 2188
Tucana Technologies              Fax:         +61 7 3876 4899
                                  http://www.tucanatech.com

Catapultam habeo. Nisi pecuniam omnem mihi dabis, ad caput tuum saxum
immane mittam.
(Translation from latin: "I have a catapult. Give me all the money,
or I will fling an enormous rock at your head.")

Received on Friday, 21 May 2004 01:08:04 UTC