- 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