- From: Nathan <nathan@webr3.org>
- Date: Fri, 17 Dec 2010 10:04:04 +0000
- To: Melvin Carvalho <melvincarvalho@gmail.com>
- CC: Semantic Web <semantic-web@w3.org>
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
>
> All is going well.
>
> Then Alice gets given a second dog.
>
> If we write:
>
> :Alice :owns a dbpedia:dog
> :Alice :owns a dbpedia:dog
>
> Since RDF is a set, the duplicate triple is disgarded. So Alice still
> is described as owning one dog.
>
> Is there a standard way to model Alice owning two dogs?
Yup, you just be more descriptive, the statements you've made above are
probably better said as:
:Alice a :DogOwner .
As you can see (and ask) there's no detail involved, you've simply
asserted that :Alice is in the class of all :DogOwner's - thus you just
need to be a little more descriptive.
:Alice :pet :Patch, :Spot .
:Spot a :Dog .
:Patch a Dog .
Or more refined:
:Alice :dog :Patch, :Spot .
#where the property :dog is like..
:dog rdfs:domain :Person ;
rdfs:range :Dog ;
rdfs:subPropertyOf :pet .
Or the other way around:
:Spot a :Dog, :owner :Alice .
:Patch a :Dog, :owner :Alice .
Now, we can't just simply count those values, since :Spot and :Patch
could be two names for the same dog, so you'd need to say that:
:Spot owl:differentFrom :Patch .
or
[ a owl:AllDifferent ; owl:members ( :Spot :Patch ) ] .
Then because we're dealing with open world semantics, we don't know that
:Alice only has exactly two dogs, so we could say something like:
:Alice a [
a owl:Restriction ;
owl:minCardinality 2 ;
owl:onProperty :dog .
] .
Which would be the class of anybody with 2 or more dogs, or use
owl:cardinality rather than minCardinality to say exactly 2 dogs.
However, the easiest way, is probably just to do the following, and then
you can assert that you know Alice has 2 dogs, given the information you
currently have:
:Alice :dog :Patch, :Spot .
:Spot owl:differentFrom :Patch .
Best, and hope that helps,
Nathan
Received on Friday, 17 December 2010 10:05:15 UTC