Re: Upcoming wave of quad/namedgraph implementations ,was: Reification - whats best practice?

On 11/09/2004, at 12:10 AM, Richard Cyganiak wrote:
>
> Am 10.09.2004 um 13:32 schrieb Andrew Newman:
>> The main problem we've had with named graphs is that it can be a pain 
>> on a machine that has multiple names or names that change over time.  
>> If I create a models based on machine names called 
>> "http://192.168.10.1/foo" and then move to another network and 
>> suddenly it's "http://10.0.0.42/foo" then all my existing queries 
>> stop working.  I now prefer URNs for models not URIs and add a level 
>> of indirection between them (I think this has been mentioned before).
>
> The DNS is designed to solve exactly this problem. Using IPs in RDF 
> statements is asking for trouble, IMO. I don't think you have to go 
> all the way to URNs to avoid this.

That's not actually an issue.  Andrew was just illustrating his point 
with the use of IPs.  I don't believe I've ever seen a Kowari graph 
which used an IP in it's URI.

The problem encountered is more often seen when the files of a database 
are to be moved from one machine to another (eg. during an upgrade of 
hardware), or sometimes the files are stored on NFS and a faster 
machine might be used to access the data.  In these cases the machine 
name will change.

Locating the machine that a graph is stored on via its URI has a few 
benefits.  The principle advantage is that a graph on a remote server 
can be found with no other information.  Otherwise I need to somehow 
include the information that the graph named 
"http://somedomain.org/graphname" is to be found on server 
mycomputer.com.  How I define that information involves tradeoffs of 
its own.

Not including location information in the name also removes a guarantee 
of uniqueness of graph URIs.  What's to stop two separate servers from 
hosting graphs with the same name if the name does not identify the 
server?  This is not insurmountable, but it adds to the complexity of 
the system.

Andrew's level of indirection fixes the problem, but at a small cost of 
complexity.  Fortunately it's not likely that one needs to find 
thousands of graph locations in the course of a single query, so the 
cost is not too great.

Regards,
Paul Gearon

Software Engineer
Tucana Technologies
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 Sunday, 12 September 2004 13:53:42 UTC