GCI in reasoning

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

GCI in reasoning

wirwe
Hi all,

I want to define several general class axioms of different forms:

1) prop1 some A SubClassOf B
2a) prop1 some A SubClassOf prop2 only B
2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3) some C)

After reasoning (using FaCT++), I want classes being subclass of the left
hand side now also appear as subclasses of the right hand side. This works
for form 1), but not for the forms 2a) and 2b). Are complex class
expressions not allowed in Proteges GCIs? Or is it a problem with FaCT++?



--
Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: GCI in reasoning

Igor Toujilov-2
Your question is not clear enough. When you say "This works for form 1", what is your criterion for "works"? I.e. how exactly you determine or what do you see that this works?

Cheers,
Igor


> Sent: Wednesday, May 20, 2020 at 10:02 AM
> From: "wirwe" <[hidden email]>
> To: [hidden email]
> Subject: [protege-user] GCI in reasoning
>
> Hi all,
>
> I want to define several general class axioms of different forms:
>
> 1) prop1 some A SubClassOf B
> 2a) prop1 some A SubClassOf prop2 only B
> 2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3) some C)
>
> After reasoning (using FaCT++), I want classes being subclass of the left
> hand side now also appear as subclasses of the right hand side. This works
> for form 1), but not for the forms 2a) and 2b). Are complex class
> expressions not allowed in Proteges GCIs? Or is it a problem with FaCT++?
>
>
>
> --
> Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: GCI in reasoning

Michael DeBellis-2
In reply to this post by wirwe
I agree with Igor.  If you can include your ontology in your message then it is much easier to debug your problem. Or if it is large or proprietary, perhaps you can extract the part of it that you think isn't working and send that. 

My best guess (which could easily be wrong) is that you may be running into the Open World Assumption (OWA). This is something that confuses a lot of new users. In virtually all programming and database languages the Closed World Assumption is used. If some information is not in the database the system assumes it is not there. This enables reasoning about defaults and negation as failure. I.e., if you don't find that P(a) is true you can assume it is false. Because OWL is designed to work with the Internet it uses the Open World Assumption. If a fact isn't in the model it is unknown, neither true nor false. This means that statements such as "Only" or "Not" often don't work the way you would assume they would. Here is a presentation on OWA from the University of Manchester. It is dated but the core concepts are still the same: http://www.cs.man.ac.uk/~drummond/presentations/OWA.pdf  

If that isn't clear or isn't your problem please send us an ontology that replicates the problem. 

Cheers,
Michael

On Wed, May 20, 2020 at 2:02 AM wirwe <[hidden email]> wrote:
Hi all,

I want to define several general class axioms of different forms:

1) prop1 some A SubClassOf B
2a) prop1 some A SubClassOf prop2 only B
2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3) some C)

After reasoning (using FaCT++), I want classes being subclass of the left
hand side now also appear as subclasses of the right hand side. This works
for form 1), but not for the forms 2a) and 2b). Are complex class
expressions not allowed in Proteges GCIs? Or is it a problem with FaCT++?



--
Sent from: http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: GCI in reasoning

wirwe
Thanks for your replies. To be more clear, I have tried as an example
adding the general class axioms

hasTopping some HotSpicedBeefTopping SubClassOf hasSpiciness some Hot
hasTopping some HotSpicedBeefTopping SubClassOf BeefPizza

(where BeefPizza is a new Pizza subclass) to the pizza ontology
(http://www.co-ode.org/ontologies/pizza/2.0.0). After reasoning, I
expect "SloppyGiuseppe" which fulfills the left side of the axiom to
show the right side of the axiom under "SubClass Of". I see that "Sloppy
Giuseppe" not lists "BeefPizza"  in the "SubClass Of" tab, but
"hasSpiciness some Hot" is not listed. This is exactly what I noticed in
my own ontology. So again my question: Does FaCT++ or Protege not
supported complex class expressions on the right side of general class
axioms or what happens here?

Thank you,
Maja


On 5/20/20 15:20, Michael DeBellis wrote:

> I agree with Igor.  If you can include your ontology in your message
> then it is much easier to debug your problem. Or if it is large or
> proprietary, perhaps you can extract the part of it that you think isn't
> working and send that. 
>
> My best guess (which could easily be wrong) is that you may be running
> into the Open World Assumption (OWA). This is something that confuses a
> lot of new users. In virtually all programming and database languages
> the Closed World Assumption is used. If some information is not in the
> database the system assumes it is not there. This enables reasoning
> about defaults and negation as failure. I.e., if you don't find that
> P(a) is true you can assume it is false. Because OWL is designed to work
> with the Internet it uses the Open World Assumption. If a fact isn't in
> the model it is unknown, neither true nor false. This means that
> statements such as "Only" or "Not" often don't work the way you would
> assume they would. Here is a presentation on OWA from the University of
> Manchester. It is dated but the core concepts are still the
> same: http://www.cs.man.ac.uk/~drummond/presentations/OWA.pdf  
>
> If that isn't clear or isn't your problem please send us an ontology
> that replicates the problem. 
>
> Cheers,
> Michael
>
> On Wed, May 20, 2020 at 2:02 AM wirwe <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     Hi all,
>
>     I want to define several general class axioms of different forms:
>
>     1) prop1 some A SubClassOf B
>     2a) prop1 some A SubClassOf prop2 only B
>     2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3) some C)
>
>     After reasoning (using FaCT++), I want classes being subclass of the
>     left
>     hand side now also appear as subclasses of the right hand side. This
>     works
>     for form 1), but not for the forms 2a) and 2b). Are complex class
>     expressions not allowed in Proteges GCIs? Or is it a problem with
>     FaCT++?
>
>
>
>     --
>     Sent from:
>     http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
>     _______________________________________________
>     protege-user mailing list
>     [hidden email] <mailto:[hidden email]>
>     https://mailman.stanford.edu/mailman/listinfo/protege-user
>
>
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>

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

pizzaextended.ttl (118K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: GCI in reasoning

Michael DeBellis-2
I'm still not completely sure I follow what you expect to happen. When you talk of right hand side and left hand side it's not clear to me which sides you are referring to. I think of that as a way of describing SWRL rules but not class axioms. But I took your ontology and loaded it into Protege 5.5 and ran the Pellet reasoner and SloppyGiuseppe seemed correct to me. Please see the picture at the end of this message. 

The reasoner correctly classified it as a BeefPizza. The issue may be with Fact++. I haven't used that in a while and I seem to recall (but I could very easily be wrong) that it isn't being supported for the new versions of Protege.  I don't currently have it as a Plugin and when I do "File>Check for plugins" and click on the Fact++ plugin, rather than the typical text  that describes what a plugin does all I see is: "Problem obtaining details: http://factplusplus.googlecode.com/svn/trunk/version-info-p4.1.html". 

Another thing to try is to do "Reasoner>Configure" and make sure the appropriate boxes that do the reasoning you want are checked. By default several boxes are unchecked because for complex or large ontologies certain kinds of reasoning can take a long time. I usually check all the boxes to start and then if the reasoner is getting slow uncheck some that I don't need. I'm going to try loading Fact++ and see what happens. But I have a couple things I need to do first so I thought I would send this message first. 

Michael

image.png



On Tue, Jun 2, 2020 at 3:22 AM Maja Lenz <[hidden email]> wrote:
Thanks for your replies. To be more clear, I have tried as an example
adding the general class axioms

hasTopping some HotSpicedBeefTopping SubClassOf hasSpiciness some Hot
hasTopping some HotSpicedBeefTopping SubClassOf BeefPizza

(where BeefPizza is a new Pizza subclass) to the pizza ontology
(http://www.co-ode.org/ontologies/pizza/2.0.0). After reasoning, I
expect "SloppyGiuseppe" which fulfills the left side of the axiom to
show the right side of the axiom under "SubClass Of". I see that "Sloppy
Giuseppe" not lists "BeefPizza"  in the "SubClass Of" tab, but
"hasSpiciness some Hot" is not listed. This is exactly what I noticed in
my own ontology. So again my question: Does FaCT++ or Protege not
supported complex class expressions on the right side of general class
axioms or what happens here?

Thank you,
Maja


On 5/20/20 15:20, Michael DeBellis wrote:
> I agree with Igor.  If you can include your ontology in your message
> then it is much easier to debug your problem. Or if it is large or
> proprietary, perhaps you can extract the part of it that you think isn't
> working and send that. 
>
> My best guess (which could easily be wrong) is that you may be running
> into the Open World Assumption (OWA). This is something that confuses a
> lot of new users. In virtually all programming and database languages
> the Closed World Assumption is used. If some information is not in the
> database the system assumes it is not there. This enables reasoning
> about defaults and negation as failure. I.e., if you don't find that
> P(a) is true you can assume it is false. Because OWL is designed to work
> with the Internet it uses the Open World Assumption. If a fact isn't in
> the model it is unknown, neither true nor false. This means that
> statements such as "Only" or "Not" often don't work the way you would
> assume they would. Here is a presentation on OWA from the University of
> Manchester. It is dated but the core concepts are still the
> same: http://www.cs.man.ac.uk/~drummond/presentations/OWA.pdf  
>
> If that isn't clear or isn't your problem please send us an ontology
> that replicates the problem. 
>
> Cheers,
> Michael
>
> On Wed, May 20, 2020 at 2:02 AM wirwe <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     Hi all,
>
>     I want to define several general class axioms of different forms:
>
>     1) prop1 some A SubClassOf B
>     2a) prop1 some A SubClassOf prop2 only B
>     2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3) some C)
>
>     After reasoning (using FaCT++), I want classes being subclass of the
>     left
>     hand side now also appear as subclasses of the right hand side. This
>     works
>     for form 1), but not for the forms 2a) and 2b). Are complex class
>     expressions not allowed in Proteges GCIs? Or is it a problem with
>     FaCT++?
>
>
>
>     --
>     Sent from:
>     http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
>     _______________________________________________
>     protege-user mailing list
>     [hidden email] <mailto:[hidden email]>
>     https://mailman.stanford.edu/mailman/listinfo/protege-user
>
>
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: GCI in reasoning

Michael DeBellis-2
In reply to this post by wirwe
I think the problem may be with Fact++. I just did the normal routine to load a Plugin. I clicked on Fact++ from the available plugins on the "File>Check for plugins" menu and I got the normal "Plugin will be available the next time you start Protege" message. Then I quit Protege and restarted it and went to the Reasoner menu and Fact++ doesn't even show up for me. Are you sure you are using the most recent version of Protege? When you do "Help>About" in Protege it should say Version 5.5. I'm also running on Windows 10 Professional so perhaps if you are on Linux or a Mac that would explain why you still see the Fact++ reasoner as an option and I don't. But my advise is make sure you are using Protege 5.5 and then use either Pellet or Hermit. I prefer Pellet because it has better support for SWRL but I think Hermit should work for the Pizza tutorial and other uses as long as you aren't using SWRL. Hope that helps. 

Michael

On Tue, Jun 2, 2020 at 3:22 AM Maja Lenz <[hidden email]> wrote:
Thanks for your replies. To be more clear, I have tried as an example
adding the general class axioms

hasTopping some HotSpicedBeefTopping SubClassOf hasSpiciness some Hot
hasTopping some HotSpicedBeefTopping SubClassOf BeefPizza

(where BeefPizza is a new Pizza subclass) to the pizza ontology
(http://www.co-ode.org/ontologies/pizza/2.0.0). After reasoning, I
expect "SloppyGiuseppe" which fulfills the left side of the axiom to
show the right side of the axiom under "SubClass Of". I see that "Sloppy
Giuseppe" not lists "BeefPizza"  in the "SubClass Of" tab, but
"hasSpiciness some Hot" is not listed. This is exactly what I noticed in
my own ontology. So again my question: Does FaCT++ or Protege not
supported complex class expressions on the right side of general class
axioms or what happens here?

Thank you,
Maja


On 5/20/20 15:20, Michael DeBellis wrote:
> I agree with Igor.  If you can include your ontology in your message
> then it is much easier to debug your problem. Or if it is large or
> proprietary, perhaps you can extract the part of it that you think isn't
> working and send that. 
>
> My best guess (which could easily be wrong) is that you may be running
> into the Open World Assumption (OWA). This is something that confuses a
> lot of new users. In virtually all programming and database languages
> the Closed World Assumption is used. If some information is not in the
> database the system assumes it is not there. This enables reasoning
> about defaults and negation as failure. I.e., if you don't find that
> P(a) is true you can assume it is false. Because OWL is designed to work
> with the Internet it uses the Open World Assumption. If a fact isn't in
> the model it is unknown, neither true nor false. This means that
> statements such as "Only" or "Not" often don't work the way you would
> assume they would. Here is a presentation on OWA from the University of
> Manchester. It is dated but the core concepts are still the
> same: http://www.cs.man.ac.uk/~drummond/presentations/OWA.pdf  
>
> If that isn't clear or isn't your problem please send us an ontology
> that replicates the problem. 
>
> Cheers,
> Michael
>
> On Wed, May 20, 2020 at 2:02 AM wirwe <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     Hi all,
>
>     I want to define several general class axioms of different forms:
>
>     1) prop1 some A SubClassOf B
>     2a) prop1 some A SubClassOf prop2 only B
>     2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3) some C)
>
>     After reasoning (using FaCT++), I want classes being subclass of the
>     left
>     hand side now also appear as subclasses of the right hand side. This
>     works
>     for form 1), but not for the forms 2a) and 2b). Are complex class
>     expressions not allowed in Proteges GCIs? Or is it a problem with
>     FaCT++?
>
>
>
>     --
>     Sent from:
>     http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
>     _______________________________________________
>     protege-user mailing list
>     [hidden email] <mailto:[hidden email]>
>     https://mailman.stanford.edu/mailman/listinfo/protege-user
>
>
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: GCI in reasoning

wirwe
With left and right hand side I mean everything left and right of
SubClassOf respectively. BeefPizza appears, but "hasSpiciness some Hot"
does not appear. Why? This is exactly my problem. I want both to appear.

I checked, the "problem" occurs with all reasoners. I am running Protege
5.5.0. It might be that you cannot install FaCT++ because you do not
have the permission to write to the plugin directory, that happened to
me some time ago with another program. However, I am running
Linux/Ubuntu, so I don't know.

Cheers,
Maja

On 6/2/20 18:31, Michael DeBellis wrote:

> I think the problem may be with Fact++. I just did the normal routine to
> load a Plugin. I clicked on Fact++ from the available plugins on the
> "File>Check for plugins" menu and I got the normal "Plugin will be
> available the next time you start Protege" message. Then I quit Protege
> and restarted it and went to the Reasoner menu and Fact++ doesn't even
> show up for me. Are you sure you are using the most recent version of
> Protege? When you do "Help>About" in Protege it should say Version 5.5.
> I'm also running on Windows 10 Professional so perhaps if you are on
> Linux or a Mac that would explain why you still see the Fact++ reasoner
> as an option and I don't. But my advise is make sure you are using
> Protege 5.5 and then use either Pellet or Hermit. I prefer Pellet
> because it has better support for SWRL but I think Hermit should work
> for the Pizza tutorial and other uses as long as you aren't using SWRL.
> Hope that helps. 
>
> Michael
>
> On Tue, Jun 2, 2020 at 3:22 AM Maja Lenz <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     Thanks for your replies. To be more clear, I have tried as an example
>     adding the general class axioms
>
>     hasTopping some HotSpicedBeefTopping SubClassOf hasSpiciness some Hot
>     hasTopping some HotSpicedBeefTopping SubClassOf BeefPizza
>
>     (where BeefPizza is a new Pizza subclass) to the pizza ontology
>     (http://www.co-ode.org/ontologies/pizza/2.0.0). After reasoning, I
>     expect "SloppyGiuseppe" which fulfills the left side of the axiom to
>     show the right side of the axiom under "SubClass Of". I see that "Sloppy
>     Giuseppe" not lists "BeefPizza"  in the "SubClass Of" tab, but
>     "hasSpiciness some Hot" is not listed. This is exactly what I noticed in
>     my own ontology. So again my question: Does FaCT++ or Protege not
>     supported complex class expressions on the right side of general class
>     axioms or what happens here?
>
>     Thank you,
>     Maja
>
>
>     On 5/20/20 15:20, Michael DeBellis wrote:
>     > I agree with Igor.  If you can include your ontology in your message
>     > then it is much easier to debug your problem. Or if it is large or
>     > proprietary, perhaps you can extract the part of it that you think
>     isn't
>     > working and send that. 
>     >
>     > My best guess (which could easily be wrong) is that you may be running
>     > into the Open World Assumption (OWA). This is something that
>     confuses a
>     > lot of new users. In virtually all programming and database languages
>     > the Closed World Assumption is used. If some information is not in the
>     > database the system assumes it is not there. This enables reasoning
>     > about defaults and negation as failure. I.e., if you don't find that
>     > P(a) is true you can assume it is false. Because OWL is designed
>     to work
>     > with the Internet it uses the Open World Assumption. If a fact
>     isn't in
>     > the model it is unknown, neither true nor false. This means that
>     > statements such as "Only" or "Not" often don't work the way you would
>     > assume they would. Here is a presentation on OWA from the
>     University of
>     > Manchester. It is dated but the core concepts are still the
>     > same: http://www.cs.man.ac.uk/~drummond/presentations/OWA.pdf  
>     >
>     > If that isn't clear or isn't your problem please send us an ontology
>     > that replicates the problem. 
>     >
>     > Cheers,
>     > Michael
>     >
>     > On Wed, May 20, 2020 at 2:02 AM wirwe <[hidden email]
>     <mailto:[hidden email]>
>     > <mailto:[hidden email] <mailto:[hidden email]>>> wrote:
>     >
>     >     Hi all,
>     >
>     >     I want to define several general class axioms of different forms:
>     >
>     >     1) prop1 some A SubClassOf B
>     >     2a) prop1 some A SubClassOf prop2 only B
>     >     2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3)
>     some C)
>     >
>     >     After reasoning (using FaCT++), I want classes being subclass
>     of the
>     >     left
>     >     hand side now also appear as subclasses of the right hand
>     side. This
>     >     works
>     >     for form 1), but not for the forms 2a) and 2b). Are complex class
>     >     expressions not allowed in Proteges GCIs? Or is it a problem with
>     >     FaCT++?
>     >
>     >
>     >
>     >     --
>     >     Sent from:
>     >   
>      http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
>     >     _______________________________________________
>     >     protege-user mailing list
>     >     [hidden email]
>     <mailto:[hidden email]>
>     <mailto:[hidden email]
>     <mailto:[hidden email]>>
>     >     https://mailman.stanford.edu/mailman/listinfo/protege-user
>     >
>     >
>     > _______________________________________________
>     > protege-user mailing list
>     > [hidden email]
>     <mailto:[hidden email]>
>     > https://mailman.stanford.edu/mailman/listinfo/protege-user
>     >
>     _______________________________________________
>     protege-user mailing list
>     [hidden email] <mailto:[hidden email]>
>     https://mailman.stanford.edu/mailman/listinfo/protege-user
>
>
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: GCI in reasoning

samsontu
Hi,

1. FaCT++ installs and runs fine in my Protege 5.5 installation (Mac OS Catalina 10.15.5 on a 2013 MacBook Pro).
2. If I understand Maja correctly, what he/she brings up is a Protege display issue. The reasoner correctly uses General class axioms to conclude that SloppyGiuseppe is a subclass of (hasSpiciness some Hot), as demonstrated by running the query (hasSpiciness some Hot) in the DL Query Tab. However, Protege UI for SloppyGiuseppe does not display SloppyGiuseppe as a subclass of (hasSpiciness some Hot) in the class description view. In general, Protege’s class description view does not display all inferred superclass expressions (you can construct an infinite number of inferred class expressions superclasses like "X or X or Y”). 

As a heuristic, you shouldn’t use Protege UI to decide questions like “Does the reasoner work in situation X?”. UI display is necessarily incomplete. Use the DL Query Tab instead. 

BTW, the pizzaextended.ttl contains an inconsistent ontology. I removed the IceCream and CheesyVegetableTopping classes before running the DL query.

With best regards,
Samson


On Jun 2, 2020, at 11:05 AM, Maja Lenz <[hidden email]> wrote:

With left and right hand side I mean everything left and right of
SubClassOf respectively. BeefPizza appears, but "hasSpiciness some Hot"
does not appear. Why? This is exactly my problem. I want both to appear.

I checked, the "problem" occurs with all reasoners. I am running Protege
5.5.0. It might be that you cannot install FaCT++ because you do not
have the permission to write to the plugin directory, that happened to
me some time ago with another program. However, I am running
Linux/Ubuntu, so I don't know.

Cheers,
Maja

On 6/2/20 18:31, Michael DeBellis wrote:
I think the problem may be with Fact++. I just did the normal routine to
load a Plugin. I clicked on Fact++ from the available plugins on the
"File>Check for plugins" menu and I got the normal "Plugin will be
available the next time you start Protege" message. Then I quit Protege
and restarted it and went to the Reasoner menu and Fact++ doesn't even
show up for me. Are you sure you are using the most recent version of
Protege? When you do "Help>About" in Protege it should say Version 5.5.
I'm also running on Windows 10 Professional so perhaps if you are on
Linux or a Mac that would explain why you still see the Fact++ reasoner
as an option and I don't. But my advise is make sure you are using
Protege 5.5 and then use either Pellet or Hermit. I prefer Pellet
because it has better support for SWRL but I think Hermit should work
for the Pizza tutorial and other uses as long as you aren't using SWRL.
Hope that helps. 

Michael

On Tue, Jun 2, 2020 at 3:22 AM Maja Lenz <[hidden email]
<[hidden email]>> wrote:

   Thanks for your replies. To be more clear, I have tried as an example
   adding the general class axioms

   hasTopping some HotSpicedBeefTopping SubClassOf hasSpiciness some Hot
   hasTopping some HotSpicedBeefTopping SubClassOf BeefPizza

   (where BeefPizza is a new Pizza subclass) to the pizza ontology
   (http://www.co-ode.org/ontologies/pizza/2.0.0). After reasoning, I
   expect "SloppyGiuseppe" which fulfills the left side of the axiom to
   show the right side of the axiom under "SubClass Of". I see that "Sloppy
   Giuseppe" not lists "BeefPizza"  in the "SubClass Of" tab, but
   "hasSpiciness some Hot" is not listed. This is exactly what I noticed in
   my own ontology. So again my question: Does FaCT++ or Protege not
   supported complex class expressions on the right side of general class
   axioms or what happens here?

   Thank you,
   Maja


   On 5/20/20 15:20, Michael DeBellis wrote:
I agree with Igor.  If you can include your ontology in your message
then it is much easier to debug your problem. Or if it is large or
proprietary, perhaps you can extract the part of it that you think
   isn't
working and send that. 

My best guess (which could easily be wrong) is that you may be running
into the Open World Assumption (OWA). This is something that
   confuses a
lot of new users. In virtually all programming and database languages
the Closed World Assumption is used. If some information is not in the
database the system assumes it is not there. This enables reasoning
about defaults and negation as failure. I.e., if you don't find that
P(a) is true you can assume it is false. Because OWL is designed
   to work
with the Internet it uses the Open World Assumption. If a fact
   isn't in
the model it is unknown, neither true nor false. This means that
statements such as "Only" or "Not" often don't work the way you would
assume they would. Here is a presentation on OWA from the
   University of
Manchester. It is dated but the core concepts are still the
same: http://www.cs.man.ac.uk/~drummond/presentations/OWA.pdf  

If that isn't clear or isn't your problem please send us an ontology
that replicates the problem. 

Cheers,
Michael

On Wed, May 20, 2020 at 2:02 AM wirwe <[hidden email]
   <[hidden email]>
<[hidden email] <[hidden email]>>> wrote:

     Hi all,

     I want to define several general class axioms of different forms:

     1) prop1 some A SubClassOf B
     2a) prop1 some A SubClassOf prop2 only B
     2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3)
   some C)

     After reasoning (using FaCT++), I want classes being subclass
   of the
     left
     hand side now also appear as subclasses of the right hand
   side. This
     works
     for form 1), but not for the forms 2a) and 2b). Are complex class
     expressions not allowed in Proteges GCIs? Or is it a problem with
     FaCT++?



     --
     Sent from:
   
    http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
     _______________________________________________
     protege-user mailing list
     [hidden email]
   <[hidden email]>
   <[hidden email]
   <[hidden email]>>
     https://mailman.stanford.edu/mailman/listinfo/protege-user


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

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


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

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


_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: GCI in reasoning

wirwe
Hi Samson,

that was exactly what I meant. Thank you very much, I wasn't aware of
the DL Query tab and the incomplete display capability explains a lot.

PS: I am a "she". ;)

Best regards,
Maja


On 6/2/20 21:24, Samson Tu wrote:

> Hi,
>
> 1. FaCT++ installs and runs fine in my Protege 5.5 installation (Mac OS
> Catalina 10.15.5 on a 2013 MacBook Pro).
> 2. If I understand Maja correctly, what he/she brings up is a Protege
> display issue. The reasoner correctly uses General class axioms to
> conclude that SloppyGiuseppe is a subclass of (hasSpiciness some Hot),
> as demonstrated by running the query (hasSpiciness some Hot) in the DL
> Query Tab. However, Protege UI for SloppyGiuseppe does not display
> SloppyGiuseppe as a subclass of (hasSpiciness some Hot) in the class
> description view. In general, Protege’s class description view does not
> display all inferred superclass expressions (you can construct an
> infinite number of inferred class expressions superclasses like "X or X
> or Y”). 
>
> As a heuristic, you shouldn’t use Protege UI to decide questions like
> “Does the reasoner work in situation X?”. UI display is necessarily
> incomplete. Use the DL Query Tab instead. 
>
> BTW, the pizzaextended.ttl contains an inconsistent ontology. I removed
> the IceCream and CheesyVegetableTopping classes before running the DL query.
>
> /With best regards,/
> /Samson/
> /
> /
>
>> On Jun 2, 2020, at 11:05 AM, Maja Lenz <[hidden email]
>> <mailto:[hidden email]>> wrote:
>>
>> With left and right hand side I mean everything left and right of
>> SubClassOf respectively. BeefPizza appears, but "hasSpiciness some Hot"
>> does not appear. Why? This is exactly my problem. I want both to appear.
>>
>> I checked, the "problem" occurs with all reasoners. I am running Protege
>> 5.5.0. It might be that you cannot install FaCT++ because you do not
>> have the permission to write to the plugin directory, that happened to
>> me some time ago with another program. However, I am running
>> Linux/Ubuntu, so I don't know.
>>
>> Cheers,
>> Maja
>>
>> On 6/2/20 18:31, Michael DeBellis wrote:
>>> I think the problem may be with Fact++. I just did the normal routine to
>>> load a Plugin. I clicked on Fact++ from the available plugins on the
>>> "File>Check for plugins" menu and I got the normal "Plugin will be
>>> available the next time you start Protege" message. Then I quit Protege
>>> and restarted it and went to the Reasoner menu and Fact++ doesn't even
>>> show up for me. Are you sure you are using the most recent version of
>>> Protege? When you do "Help>About" in Protege it should say Version 5.5.
>>> I'm also running on Windows 10 Professional so perhaps if you are on
>>> Linux or a Mac that would explain why you still see the Fact++ reasoner
>>> as an option and I don't. But my advise is make sure you are using
>>> Protege 5.5 and then use either Pellet or Hermit. I prefer Pellet
>>> because it has better support for SWRL but I think Hermit should work
>>> for the Pizza tutorial and other uses as long as you aren't using SWRL.
>>> Hope that helps. 
>>>
>>> Michael
>>>
>>> On Tue, Jun 2, 2020 at 3:22 AM Maja Lenz <[hidden email]
>>> <mailto:[hidden email]>
>>> <mailto:[hidden email]>> wrote:
>>>
>>>    Thanks for your replies. To be more clear, I have tried as an example
>>>    adding the general class axioms
>>>
>>>    hasTopping some HotSpicedBeefTopping SubClassOf hasSpiciness some Hot
>>>    hasTopping some HotSpicedBeefTopping SubClassOf BeefPizza
>>>
>>>    (where BeefPizza is a new Pizza subclass) to the pizza ontology
>>>    (http://www.co-ode.org/ontologies/pizza/2.0.0). After reasoning, I
>>>    expect "SloppyGiuseppe" which fulfills the left side of the axiom to
>>>    show the right side of the axiom under "SubClass Of". I see that
>>> "Sloppy
>>>    Giuseppe" not lists "BeefPizza"  in the "SubClass Of" tab, but
>>>    "hasSpiciness some Hot" is not listed. This is exactly what I
>>> noticed in
>>>    my own ontology. So again my question: Does FaCT++ or Protege not
>>>    supported complex class expressions on the right side of general class
>>>    axioms or what happens here?
>>>
>>>    Thank you,
>>>    Maja
>>>
>>>
>>>    On 5/20/20 15:20, Michael DeBellis wrote:
>>>> I agree with Igor.  If you can include your ontology in your message
>>>> then it is much easier to debug your problem. Or if it is large or
>>>> proprietary, perhaps you can extract the part of it that you think
>>>    isn't
>>>> working and send that. 
>>>>
>>>> My best guess (which could easily be wrong) is that you may be running
>>>> into the Open World Assumption (OWA). This is something that
>>>    confuses a
>>>> lot of new users. In virtually all programming and database languages
>>>> the Closed World Assumption is used. If some information is not in the
>>>> database the system assumes it is not there. This enables reasoning
>>>> about defaults and negation as failure. I.e., if you don't find that
>>>> P(a) is true you can assume it is false. Because OWL is designed
>>>    to work
>>>> with the Internet it uses the Open World Assumption. If a fact
>>>    isn't in
>>>> the model it is unknown, neither true nor false. This means that
>>>> statements such as "Only" or "Not" often don't work the way you would
>>>> assume they would. Here is a presentation on OWA from the
>>>    University of
>>>> Manchester. It is dated but the core concepts are still the
>>>> same: http://www.cs.man.ac.uk/~drummond/presentations/OWA.pdf  
>>>>
>>>> If that isn't clear or isn't your problem please send us an ontology
>>>> that replicates the problem. 
>>>>
>>>> Cheers,
>>>> Michael
>>>>
>>>> On Wed, May 20, 2020 at 2:02 AM wirwe <[hidden email]
>>>> <mailto:[hidden email]>
>>>    <mailto:[hidden email]>
>>>> <mailto:[hidden email] <mailto:[hidden email]>>> wrote:
>>>>
>>>>      Hi all,
>>>>
>>>>      I want to define several general class axioms of different forms:
>>>>
>>>>      1) prop1 some A SubClassOf B
>>>>      2a) prop1 some A SubClassOf prop2 only B
>>>>      2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3)
>>>    some C)
>>>>
>>>>      After reasoning (using FaCT++), I want classes being subclass
>>>    of the
>>>>      left
>>>>      hand side now also appear as subclasses of the right hand
>>>    side. This
>>>>      works
>>>>      for form 1), but not for the forms 2a) and 2b). Are complex class
>>>>      expressions not allowed in Proteges GCIs? Or is it a problem with
>>>>      FaCT++?
>>>>
>>>>
>>>>
>>>>      --
>>>>      Sent from:
>>>>    
>>>     http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
>>>>      _______________________________________________
>>>>      protege-user mailing list
>>>>      [hidden email]
>>>> <mailto:[hidden email]>
>>>    <mailto:[hidden email]>
>>>    <mailto:[hidden email]
>>>    <mailto:[hidden email]>>
>>>>      https://mailman.stanford.edu/mailman/listinfo/protege-user
>>>>
>>>>
>>>> _______________________________________________
>>>> protege-user mailing list
>>>> [hidden email] <mailto:[hidden email]>
>>>    <mailto:[hidden email]>
>>>> https://mailman.stanford.edu/mailman/listinfo/protege-user
>>>>
>>>    _______________________________________________
>>>    protege-user mailing list
>>>    [hidden email]
>>> <mailto:[hidden email]> <mailto:[hidden email]>
>>>    https://mailman.stanford.edu/mailman/listinfo/protege-user
>>>
>>>
>>> _______________________________________________
>>> protege-user mailing list
>>> [hidden email] <mailto:[hidden email]>
>>> https://mailman.stanford.edu/mailman/listinfo/protege-user
>>>
>> _______________________________________________
>> protege-user mailing list
>> [hidden email] <mailto:[hidden email]>
>> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
>
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: GCI in reasoning

Yevgeny Kazakov
In reply to this post by wirwe
Dear Mia,

Protege asks FaCT++ only about inferred *atomic* subsumptions (in your example: if SloppyGiuseppe is a subclass of BeefPizza). Why? Because there can be infinitely-many complex class expressions that are super-classes of some class.

Sometimes Protege also displays inferred complex classes under "SubClass Of (Anonymous Ancestor)". This happens, e.g., when a class A has a super-class B (both atomic, obtained from the reasoner) and there is an axiom "B subClass C" or "B is equivalent to C", where C is a complex class. In this case, C will be also displayed as a super-class of A. 

E.g., if you look in the pizza ontology for super-classes of "American" you will see, e.g., the complex class "Pizza and (hasTopping min 3 owl:Thing)" It is there because it is a definition of "InterestingPizza", which is obtained in the super-class.

For your first axiom, there is no *atomic* class that is stated to be equivalent or sub-class of "hasSpiciness some Hot", therefore you do not see this inference. If you want to see inference for some complex classes, you can introduce new atomic classes that define them. For example:

HasSpicinessSomeHot = hasSpiciness some Hot

Then you obtain your inference because Protege will ask FaCT++ (or any other reasoner) if Sloppy
Giuseppe is a subclass of HasSpicinessSomeHot.

Best regards,

Yevgeny

On Tue, Jun 2, 2020 at 12:22 PM Maja Lenz <[hidden email]> wrote:
Thanks for your replies. To be more clear, I have tried as an example
adding the general class axioms

hasTopping some HotSpicedBeefTopping SubClassOf hasSpiciness some Hot
hasTopping some HotSpicedBeefTopping SubClassOf BeefPizza

(where BeefPizza is a new Pizza subclass) to the pizza ontology
(http://www.co-ode.org/ontologies/pizza/2.0.0). After reasoning, I
expect "SloppyGiuseppe" which fulfills the left side of the axiom to
show the right side of the axiom under "SubClass Of". I see that "Sloppy
Giuseppe" not lists "BeefPizza"  in the "SubClass Of" tab, but
"hasSpiciness some Hot" is not listed. This is exactly what I noticed in
my own ontology. So again my question: Does FaCT++ or Protege not
supported complex class expressions on the right side of general class
axioms or what happens here?

Thank you,
Maja


On 5/20/20 15:20, Michael DeBellis wrote:
> I agree with Igor.  If you can include your ontology in your message
> then it is much easier to debug your problem. Or if it is large or
> proprietary, perhaps you can extract the part of it that you think isn't
> working and send that. 
>
> My best guess (which could easily be wrong) is that you may be running
> into the Open World Assumption (OWA). This is something that confuses a
> lot of new users. In virtually all programming and database languages
> the Closed World Assumption is used. If some information is not in the
> database the system assumes it is not there. This enables reasoning
> about defaults and negation as failure. I.e., if you don't find that
> P(a) is true you can assume it is false. Because OWL is designed to work
> with the Internet it uses the Open World Assumption. If a fact isn't in
> the model it is unknown, neither true nor false. This means that
> statements such as "Only" or "Not" often don't work the way you would
> assume they would. Here is a presentation on OWA from the University of
> Manchester. It is dated but the core concepts are still the
> same: http://www.cs.man.ac.uk/~drummond/presentations/OWA.pdf  
>
> If that isn't clear or isn't your problem please send us an ontology
> that replicates the problem. 
>
> Cheers,
> Michael
>
> On Wed, May 20, 2020 at 2:02 AM wirwe <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     Hi all,
>
>     I want to define several general class axioms of different forms:
>
>     1) prop1 some A SubClassOf B
>     2a) prop1 some A SubClassOf prop2 only B
>     2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3) some C)
>
>     After reasoning (using FaCT++), I want classes being subclass of the
>     left
>     hand side now also appear as subclasses of the right hand side. This
>     works
>     for form 1), but not for the forms 2a) and 2b). Are complex class
>     expressions not allowed in Proteges GCIs? Or is it a problem with
>     FaCT++?
>
>
>
>     --
>     Sent from:
>     http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
>     _______________________________________________
>     protege-user mailing list
>     [hidden email] <mailto:[hidden email]>
>     https://mailman.stanford.edu/mailman/listinfo/protege-user
>
>
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user

_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user
Reply | Threaded
Open this post in threaded view
|

Re: GCI in reasoning

wirwe
Thank you for clarifying this, Yevgeny.

Best,
Maja

On 6/4/20 22:09, Yevgeny Kazakov wrote:

> Dear Mia,
>
> Protege asks FaCT++ only about inferred *atomic* subsumptions (in your
> example: if SloppyGiuseppe is a subclass of BeefPizza). Why?
> Because there can be infinitely-many complex class expressions that are
> super-classes of some class.
>
> Sometimes Protege also displays inferred complex classes under "SubClass
> Of (Anonymous Ancestor)". This happens, e.g., when a class A has a
> super-class B (both atomic, obtained from the reasoner) and there is an
> axiom "B subClass C" or "B is equivalent to C", where C is a complex
> class. In this case, C will be also displayed as a super-class of A. 
>
> E.g., if you look in the pizza ontology for super-classes of "American"
> you will see, e.g., the complex class "Pizza and (hasTopping min 3
> owl:Thing)" It is there because it is a definition of
> "InterestingPizza", which is obtained in the super-class.
>
> For your first axiom, there is no *atomic* class that is stated to be
> equivalent or sub-class of "hasSpiciness some Hot", therefore you do not
> see this inference. If you want to see inference for some complex
> classes, you can introduce new atomic classes that define them. For example:
>
> HasSpicinessSomeHot = hasSpiciness some Hot
>
> Then you obtain your inference because Protege will ask FaCT++ (or any
> other reasoner) if Sloppy
> Giuseppe is a subclass of HasSpicinessSomeHot.
>
> Best regards,
>
> Yevgeny
>
> On Tue, Jun 2, 2020 at 12:22 PM Maja Lenz <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>     Thanks for your replies. To be more clear, I have tried as an example
>     adding the general class axioms
>
>     hasTopping some HotSpicedBeefTopping SubClassOf hasSpiciness some Hot
>     hasTopping some HotSpicedBeefTopping SubClassOf BeefPizza
>
>     (where BeefPizza is a new Pizza subclass) to the pizza ontology
>     (http://www.co-ode.org/ontologies/pizza/2.0.0). After reasoning, I
>     expect "SloppyGiuseppe" which fulfills the left side of the axiom to
>     show the right side of the axiom under "SubClass Of". I see that "Sloppy
>     Giuseppe" not lists "BeefPizza"  in the "SubClass Of" tab, but
>     "hasSpiciness some Hot" is not listed. This is exactly what I noticed in
>     my own ontology. So again my question: Does FaCT++ or Protege not
>     supported complex class expressions on the right side of general class
>     axioms or what happens here?
>
>     Thank you,
>     Maja
>
>
>     On 5/20/20 15:20, Michael DeBellis wrote:
>     > I agree with Igor.  If you can include your ontology in your message
>     > then it is much easier to debug your problem. Or if it is large or
>     > proprietary, perhaps you can extract the part of it that you think
>     isn't
>     > working and send that. 
>     >
>     > My best guess (which could easily be wrong) is that you may be running
>     > into the Open World Assumption (OWA). This is something that
>     confuses a
>     > lot of new users. In virtually all programming and database languages
>     > the Closed World Assumption is used. If some information is not in the
>     > database the system assumes it is not there. This enables reasoning
>     > about defaults and negation as failure. I.e., if you don't find that
>     > P(a) is true you can assume it is false. Because OWL is designed
>     to work
>     > with the Internet it uses the Open World Assumption. If a fact
>     isn't in
>     > the model it is unknown, neither true nor false. This means that
>     > statements such as "Only" or "Not" often don't work the way you would
>     > assume they would. Here is a presentation on OWA from the
>     University of
>     > Manchester. It is dated but the core concepts are still the
>     > same: http://www.cs.man.ac.uk/~drummond/presentations/OWA.pdf  
>     >
>     > If that isn't clear or isn't your problem please send us an ontology
>     > that replicates the problem. 
>     >
>     > Cheers,
>     > Michael
>     >
>     > On Wed, May 20, 2020 at 2:02 AM wirwe <[hidden email]
>     <mailto:[hidden email]>
>     > <mailto:[hidden email] <mailto:[hidden email]>>> wrote:
>     >
>     >     Hi all,
>     >
>     >     I want to define several general class axioms of different forms:
>     >
>     >     1) prop1 some A SubClassOf B
>     >     2a) prop1 some A SubClassOf prop2 only B
>     >     2b) prop1 some A SubClassOf prop2 only (B and inverse(prop3)
>     some C)
>     >
>     >     After reasoning (using FaCT++), I want classes being subclass
>     of the
>     >     left
>     >     hand side now also appear as subclasses of the right hand
>     side. This
>     >     works
>     >     for form 1), but not for the forms 2a) and 2b). Are complex class
>     >     expressions not allowed in Proteges GCIs? Or is it a problem with
>     >     FaCT++?
>     >
>     >
>     >
>     >     --
>     >     Sent from:
>     >   
>      http://protege-project.136.n4.nabble.com/Protege-User-f4659818.html
>     >     _______________________________________________
>     >     protege-user mailing list
>     >     [hidden email]
>     <mailto:[hidden email]>
>     <mailto:[hidden email]
>     <mailto:[hidden email]>>
>     >     https://mailman.stanford.edu/mailman/listinfo/protege-user
>     >
>     >
>     > _______________________________________________
>     > protege-user mailing list
>     > [hidden email]
>     <mailto:[hidden email]>
>     > https://mailman.stanford.edu/mailman/listinfo/protege-user
>     >
>     _______________________________________________
>     protege-user mailing list
>     [hidden email] <mailto:[hidden email]>
>     https://mailman.stanford.edu/mailman/listinfo/protege-user
>
>
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
_______________________________________________
protege-user mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-user