Complement Classes

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Complement Classes

Adonis Damian

Hi All,

I trying to figure out how complements and open world reasoning work.

Here is a simple example:

I have a

CalssA

                ClassAWithName – which should be the individuals of ClassA which have a property “name”

                ClassAWithoutName – which should be the complement of ClassAWithName – the individuals that don’t have a property “name”

 

How should I model ClassAWithName and ClassAWithoutName so individuals with property name will be inferred under ClassAWithName and individuals without property “name” will be inferred under ClassAWithoutName?

 

The problem that I see is that if for an individual i_1, the “name" property is not asserted then doesn’t mean the it doesn’t have the “name” property. Meaning that the inference engine doesn’t see that i_1 doesn’t has property name as provable false but only satisfiable false.

 

Thank you so much for your help,

Adonis


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Complement Classes

Leyla Jael García Castro
Hi Adonis, 

Open world reasoning is always hard to grasp for me so I am not completely sure about my answer.

I think in the case you present, ValuePartion patter would help (it is explained in the Pizza Tutorial). If you say 
Class1 --> Union of (Class1_WithName, Class1_NoName)
    Class1_WithName --> Disjoint with Class1_NoName
    Class1_NoName --> Disjoint with Class1_WithName
and you have and individual_1 with type Class1 and with a name, it will be asserted to be also Class1_WithName but not Class1_NoName.

I hope it helps.

LG


From: [hidden email]
To: [hidden email]
Date: Thu, 7 Jan 2010 16:02:32 -0800
Subject: [protege-owl] Complement Classes

Hi All,

I trying to figure out how complements and open world reasoning work.

Here is a simple example:

I have a

CalssA

                ClassAWithName – which should be the individuals of ClassA which have a property “name”

                ClassAWithoutName – which should be the complement of ClassAWithName – the individuals that don’t have a property “name”

 

How should I model ClassAWithName and ClassAWithoutName so individuals with property name will be inferred under ClassAWithName and individuals without property “name” will be inferred under ClassAWithoutName?

 

The problem that I see is that if for an individual i_1, the “name" property is not asserted then doesn’t mean the it doesn’t have the “name” property. Meaning that the inference engine doesn’t see that i_1 doesn’t has property name as provable false but only satisfiable false.

 

Thank you so much for your help,

Adonis



Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. Sign up now.
_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Complement Classes

Thomas Russ
In reply to this post by Adonis Damian

On Jan 7, 2010, at 4:02 PM, Adonis Damian wrote:

> Hi All,
>
> I trying to figure out how complements and open world reasoning work.
>
> Here is a simple example:
>
> I have a
>
> CalssA
>
>    ClassAWithName – which should be the individuals of ClassA which  
> have a property “name”
>
>    ClassAWithoutName – which should be the complement of  
> ClassAWithName – the individuals that don’t have a property “name”
>
>
>
> How should I model ClassAWithName and ClassAWithoutName so  
> individuals with property name will be inferred under  
> ClassAWithName and individuals without property “name” will be  
> inferred under ClassAWithoutName?
>
>
>
> The problem that I see is that if for an individual i_1, the “name"  
> property is not asserted then doesn’t mean the it doesn’t have the  
> “name” property. Meaning that the inference engine doesn’t see that  
> i_1 doesn’t has property name as provable false but only  
> satisfiable false.
>

You have grasped the situation correctly.

Open world reasoning will always have difficulty with negation (the  
absence of something) and also similarly with maximum cardinality and  
allValuesFrom restrictions.  This is precisely because there could  
always be some other property value that is not known that make it  
impossible to prove the complement (maximum, allValuesFrom).

So the reasoning you will get is generally asymmetric.

   Inference of ClassAWithName will succeed easily.

   Inference of ClassAWithoutName will not happen because of open  
world.  There aren't a lot of solutions, but what you essentially  
have to do is explicitly tell the system that the individual doesn't  
have a name.  Yes, that sort of defeats part of the purpose of  
inference, but you don't really have much of an option with open  
world semantics.  It must be possible to prove that the individual  
CANNOT have a name for it to be inferred as belonging to the  
complement class.


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Complement Classes

Thomas Russ
In reply to this post by Leyla Jael García Castro

On Jan 8, 2010, at 2:48 AM, Leyla Jael García Castro wrote:

> Hi Adonis,
>
> Open world reasoning is always hard to grasp for me so I am not  
> completely sure about my answer.
>
> I think in the case you present, ValuePartion patter would help (it  
> is explained in the Pizza Tutorial). If you say
> Class1 --> Union of (Class1_WithName, Class1_NoName)
>     Class1_WithName --> Disjoint with Class1_NoName
>     Class1_NoName --> Disjoint with Class1_WithName
> and you have and individual_1 with type Class1 and with a name, it  
> will be asserted to be also Class1_WithName but not Class1_NoName.
>
> I hope it helps.

This won't solve the original problem.

This formulation still won't infer membership in Class1_NoName.  It  
will just keep the individual as being of type Class1 and not  
deciding which of the two subclasses it belongs to.  In effect it  
won't be known which subclass it belongs to, even though the  
partition says it must belong to one of them.  But you can't force a  
decision as to which because of the rules of open world reasoning.

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Complement Classes

Leyla Jael García Castro
Hi Thomas, 

Thanks a lot for your explanation, this one and the one you replied to Adonis. Open world is always tricky for me but these discussions are so useful.

Best, 

Leyla

> From: [hidden email]
> Date: Fri, 8 Jan 2010 09:09:27 -0800
> To: [hidden email]
> Subject: Re: [protege-owl] Complement Classes
>
>
> On Jan 8, 2010, at 2:48 AM, Leyla Jael García Castro wrote:
>
> > Hi Adonis,
> >
> > Open world reasoning is always hard to grasp for me so I am not
> > completely sure about my answer.
> >
> > I think in the case you present, ValuePartion patter would help (it
> > is explained in the Pizza Tutorial). If you say
> > Class1 --> Union of (Class1_WithName, Class1_NoName)
> > Class1_WithName --> Disjoint with Class1_NoName
> > Class1_NoName --> Disjoint with Class1_WithName
> > and you have and individual_1 with type Class1 and with a name, it
> > will be asserted to be also Class1_WithName but not Class1_NoName.
> >
> > I hope it helps.
>
> This won't solve the original problem.
>
> This formulation still won't infer membership in Class1_NoName. It
> will just keep the individual as being of type Class1 and not
> deciding which of the two subclasses it belongs to. In effect it
> won't be known which subclass it belongs to, even though the
> partition says it must belong to one of them. But you can't force a
> decision as to which because of the rules of open world reasoning.
>
> _______________________________________________
> protege-owl mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03


Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. Sign up now.
_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Complement Classes

Adonis Damian
In reply to this post by Leyla Jael García Castro

Hi Leyla,

Your solution works for half of the situations. Only the individuals that have name will be categorized as Class1_WithName but the individuals without name won’t be categorized as Class1_NoName. The reason is that the inference engine has a model that says the an individual without name may have a name, because is not asserted or can’t infer that it doesn’t have name.

So again, how do I need to model these classes so individuals with name will be categorized as Calss1_WithName and individual without name will be categorized as Class1_NoName.

 

Thank you,

Adonis

 

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Leyla Jael García Castro
Sent: Friday, January 08, 2010 2:49 AM
To: protege owl
Subject: Re: [protege-owl] Complement Classes

 

Hi Adonis, 

 

Open world reasoning is always hard to grasp for me so I am not completely sure about my answer.

 

I think in the case you present, ValuePartion patter would help (it is explained in the Pizza Tutorial). If you say 

Class1 --> Union of (Class1_WithName, Class1_NoName)

    Class1_WithName --> Disjoint with Class1_NoName

    Class1_NoName --> Disjoint with Class1_WithName

and you have and individual_1 with type Class1 and with a name, it will be asserted to be also Class1_WithName but not Class1_NoName.

 

I hope it helps.

 

LG

 


From: [hidden email]
To: [hidden email]
Date: Thu, 7 Jan 2010 16:02:32 -0800
Subject: [protege-owl] Complement Classes

Hi All,

I trying to figure out how complements and open world reasoning work.

Here is a simple example:

I have a

CalssA

                ClassAWithName – which should be the individuals of ClassA which have a property “name”

                ClassAWithoutName – which should be the complement of ClassAWithName – the individuals that don’t have a property “name”

 

How should I model ClassAWithName and ClassAWithoutName so individuals with property name will be inferred under ClassAWithName and individuals without property “name” will be inferred under ClassAWithoutName?

 

The problem that I see is that if for an individual i_1, the “name" property is not asserted then doesn’t mean the it doesn’t have the “name” property. Meaning that the inference engine doesn’t see that i_1 doesn’t has property name as provable false but only satisfiable false.

 

Thank you so much for your help,

Adonis

 


Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. Sign up now.


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Complement Classes

Thomas Russ

On Jan 8, 2010, at 3:36 PM, Adonis Damian wrote:

> Hi Leyla,
>
> Your solution works for half of the situations. Only the  
> individuals that have name will be categorized as Class1_WithName  
> but the individuals without name won’t be categorized as  
> Class1_NoName. The reason is that the inference engine has a model  
> that says the an individual without name may have a name, because  
> is not asserted or can’t infer that it doesn’t have name.
>
> So again, how do I need to model these classes so individuals with  
> name will be categorized as Calss1_WithName and individual without  
> name will be categorized as Class1_NoName.
>
You have to tell OWL that those individuals without a name don't have  
a name.

Essentially what you have to do is something like

   instanceX rdf:type [hasName atmost 0]

In other words, you have to make them belong to a class that says  
they don't have a name.  You don't have any other options in an open-
world situation.


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03