Re: Using cardinality restrictions

Is there any didactic book with kind of recipies for questions like this? And I don't mean a logic one but an OWL one.
Cheers
Hector g Ceballos 

Enviado desde mi oficina móvil BlackBerry® de Telcel

-----Original Message-----
From: Uli Sattler <sattler@cs.man.ac.uk>
Sender: public-owl-dev-request@w3.org
Date: Wed, 13 Jul 2011 14:46:13 
To: <Soeren.Kemmann@iese.fraunhofer.de>
Cc: <public-owl-dev@w3.org>
Subject: Re: Using cardinality restrictions


On 13 Jul 2011, at 14:28, <Soeren.Kemmann@iese.fraunhofer.de> wrote:

> Hi Uli, hi @all,
>
> Yes, that makes sense!
> I was trying to build a small example analog to the famous pizza  
> example.
> The difference is that I do not want to assign instances to the  
> partitions and use them, but I want to just define instances and  
> have the reasoner interfere to which class they belong to.
> I’m sorry … but I couldn’t achieve this yet. This is what I did:
> My Class Hierarchy:
> Thing
> - RefClass
> - TestValuePartition == (Part1 union Part2)
>                 - Part1
>                 - Part2
> Part1 and Part 2 are marked as disjoint.
> Furthermore, I defined that Part 1 has some references to RefClass  
> (hasRef some Class).
> Now, if I create two instances with asserted type  
> TestValuePartition, one that has a reference to an instance of  
> RefClass and the other having no instance.

again, be careful, 'the other having no *known* [reference to an]  
instance of RefClass.

> Due to the value partition I would have expected that instance 1 is  
> interfered to be of Part1

....and this works (as you say below)

> and instance 2 to be of Part2, but again only Part1 works!

same as before: instance 2 may or may not have a hasRef-successor, so  
we have not enough information to say whether instance 2 is an  
instance of Part1 or of Part2...

> Instance 2 stays as being a TestValuePartition instance (only). For  
> me the Value Partition is in this case not a value partition!?
> What am I missing?
>

I am afraid you are missing the open world assumption (and thus of  
possible, but neither necessarily true, nor necessarily false facts -  
e.g., instance 2 is possibly an instance of Part1, possibly an  
instance of Part2, thus not necessarily an instance of either)...check  
for 'closure axioms'! Cheers, Uli



> Thanks a lot!
>
> Cheers,
> Sören
>
>
>
> From: Uli Sattler [mailto:sattler@cs.man.ac.uk]
> Sent: Dienstag, 12. Juli 2011 17:35
> To: Kemmann, Soeren
> Cc: public-owl-dev@w3.org
> Subject: Re: Using cardinality restrictions
>
>
> On 12 Jul 2011, at 10:27, <Soeren.Kemmann@iese.fraunhofer.de> wrote:
>
>
> Hi there,
>
> I’m trying to model (with Protégé 3.4.6 with Pellet Reasoner … just  
> in case it matters) that a class A has two subclasses B and C, where  
> B and C are disjoint.
> The distinction I want to make is that every instance of A is either  
> of subclass B or of C dependent on the cardinality of a property p.
> The “test” is whether the instance has values assigned to property p  
> ( p min 1). This kind of works … the instances are interfered to be  
> of that type.
> But the other class does not work. If tried (p max 0), (p exactly  
> 0), (p exactly 0 RangeClass), but nothing works.
>
> I’m using OWL-DL and as far as I understood 0/1 cardinalities are ok  
> for OWL-DL, right?
>
>
> Hi Soeren,
>
> yes, they do - I guess you have, in your ontology, something like
>
> B SubClassOf C
> A SubClassOf C  %% these two axioms aren't really necessary if you  
> have the 2 below...
>
> A EquivalentClass C and (p min 1)
> B EquivalentClass C and (p max 0)
>
> ...and then when you have an instance of C with
>
> - 1 known p-successor, they are classified as being an instance of A
> - no known p-successor, they are ... only classified as being an  
> instance of C - and you wonder why...
>
> The reason is found in the word 'known' used above: your instance of  
> C has no *known* p-successor, but could have some, due to the open  
> world assumption!
>
> So, how to rescue this? For example, you could say explicitly how  
> many p-successors an individual has...in general, you need a  
> 'closure' statement that says that the *known* p-successors are all  
> p-successors.
>
> If I remember correctly, the famous Pizza tutorial explains this in  
> detail (see http://owl.cs.manchester.ac.uk/tutorials/protegeowltutorial/ 
>  )
>
> Cheers, Uli
>
>
> Thanks a lot!
> Cheers,
> Sören
>
>
> Dipl. Inf. Soeren Kemmann
> Fraunhofer IESE
> Fraunhofer-Platz 1, 67663 Kaiserslautern, Germany
> Tel.: +49 (0) 631 / 6800 - 2218
> Fax.: +49 (0) 631 / 6800 - 9 2218
> mailto:soeren.kemmann@iese.fraunhofer.de
>

Received on Saturday, 16 July 2011 20:15:26 UTC