Re: The Two Dogs Problem

On Fri, 2010-12-17 at 09:55 +0100, Melvin Carvalho wrote: 
> Apologies if this has come up before.  I was wondering the best way to
> model the following:
> 
> Alice owns a dog.  We choose to model it as follows.
> 
> :Alice :owns a dbpedia:dog

That's an RDF statement, maybe you meant:

   :Alice :owns [a dbpedia:dog] .

I.e. there is something, which is a dog and which Alice owns.

> 
> All is going well.
> 
> Then Alice gets given a second dog.
> 
> If we write:
> 
> :Alice :owns a dbpedia:dog
> :Alice :owns a dbpedia:dog

   :Alice :owns [a dbpedia:dog] .
   :Alice :owns [a dbpedia:dog] .

is a reasonable graph, it is not lean since both those bNodes might
correspond to the same dog but it is a graph with 4 statements not a
graph with two statements.

To convey that those are definitely different dogs then you can add an
owl:differentFrom link:

   :Alice owns _:1 .
   _:1 a dbpedia:dog .
   :Alice owns _:2 .
   _:2 a dbpedia:dog .
   _:2 owl:differentFrom _:1 .

Dave

Received on Friday, 17 December 2010 09:30:40 UTC