- From: Paul Gearon <pag@tucanatech.com>
- Date: Fri, 21 May 2004 14:49:18 +1000
- To: www-rdf-interest@w3.org
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