Reasoning/Inference question(s)

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

Reasoning/Inference question(s)

resus
This post was updated on .
Hi!

I have a problem understanding why a certain inference is not made by Pellet (or any other reasoner) when using the cardinality restriction "exactly". Coming up with an illustrative example is a little complicated so I attached my complete ontology under development.
Please have a look at the class "SingleActingVise" which is defined to be equivalent to:
ViseTypeFixture
 and (hasFixtureComponent exactly 1 LocatingViseJaw)
 and (hasFixtureComponent exactly 1 ClampingViseJaw)
 and (hasFixtureComponent only (ViseJaw or ViseBase))

and at the individual "FixtureTest_3" which is defined to be of type:
hasFixtureComponent value SomeViseBase
 and (hasFixtureComponent value SomeLocatingViseJaw)
 and (hasFixtureComponent value SomeClampingViseJaw)
 and hasFixtureComponent only ({SomeViseBase , SomeLocatingViseJaw , SomeClampingViseJaw})

Why is this not sufficient to infer that "FixtureTest_3" is of type "SingleActingVise" (which is what I would expect and want)? Same goes for the other two "FixtureTest_x" individuals. I tried to figure this out the whole day and cannot find an answer. Would someone enlighten me, please?!

Best, resus
FixtureDesignOntology.owl
Reply | Threaded
Open this post in threaded view
|

Re: Reasoning/Inference question(s)

samsontu
Do we know that SomeClampingViseJaw & SomeViseBase are not also individuals of the type LocatingViseJaw? Ditto for whether SomeViseBase & SomeViseBase can also also individuals of the type ClampingViseJaw.

Samson

On Aug 21, 2014, at 11:38 AM, resus <[hidden email]> wrote:

> Hi!
>
> I have a problem understanding why a certain inference is not made by Pellet
> (or any other reasoner) when using the cardinality restriction "exactly".
> Coming up with an illustrative example is a little complicated so I attached
> my complete ontology under development.
> Please have a look at the class "SingleActingVise" which is defined to be
> equivalent to:
> ViseTypeFixture
> and (hasFixtureComponent exactly 1 LocatingViseJaw)
> and (hasFixtureComponent exactly 1 ClampingViseJaw)
> and (hasFixtureComponent only (ViseJaw or ViseBase))
>
> and at the individual "FixtureTest_3" which is defined to be of type:
> hasFixtureComponent hasFixtureComponent value SomeViseBase
> and (hasFixtureComponent value SomeLocatingViseJaw)
> and (hasFixtureComponent value SomeClampingViseJaw)
> and hasFixtureComponent only ({SomeViseBase , SomeLocatingViseJaw ,
> SomeClampingViseJaw})
>
> Why is this not sufficient to infer that "FixtureTest_3" is of type
> "SingleActingVise" (which is what I would expect and want)? Same goes for
> the other two "FixtureTest_x" individuals. I tried to figure this out the
> whole day and cannot find an answer. Would someone enlighten me, please?!
>
> Best, resus
> FixtureDesignOntology.owl
> <http://protege-project.136.n4.nabble.com/file/n4661266/FixtureDesignOntology.owl>  
>
>
>
> --
> View this message in context: http://protege-project.136.n4.nabble.com/Reasoning-Inference-question-s-tp4661266.html
> Sent from the Protege User mailing list archive at Nabble.com.
> _______________________________________________
> 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: Reasoning/Inference question(s)

resus
This post was updated on .
Well, SomeClampingViseJaw is of type ClampingViseJaw which is a subclass of type Jaw. SomeViseBase is of type ViseBase which is a subclass of FixtureBody. Class Jaw and FixtureBody are disjoint. Same goes for SomeLocatingViseJaw. Thus, they cannot be the same. I thought that is sufficient.

And why is that even important? If I define that SomeClampingViseJaw is a ClampingJaw and SomeLocatingViseJaw is a LocatingJaw and a fixture individual needs to have exactly one of each (plus a base) to be a SingleActingVise, then to my understanding all necessary information is present? The fixture individual could also be of another type, there is no restriction on that.

samsontu wrote
Do we know that SomeClampingViseJaw & SomeViseBase are not also individuals of the type LocatingViseJaw? Ditto for whether SomeViseBase & SomeViseBase can also also individuals of the type ClampingViseJaw.

Samson
Reply | Threaded
Open this post in threaded view
|

Re: Reasoning/Inference question(s)

resus
This post was updated on .
Alright, I see. Besides the disjoints mentioned before there remains the fact that ClampingViseJaw and LocatingViseJaw are not disjoint. As soon as I make them disjoint the inference is as expected. Now this turns into an even bigger modeling problem, as I need to model jaws that can be either locating or clamping jaws depending on their use-case (but not at the same time).

Still, the question from the previous post remains, meaning that I do not yet understand why:
If I define that SomeClampingViseJaw is a ClampingJaw and SomeLocatingViseJaw is a LocatingJaw and SomeViseBase is a ViseBase and FixtureTest_x has a realtion to each and onyl these individuals then it should be a SingleActingVise. The OWA is driving me crazy ^_^.
Reply | Threaded
Open this post in threaded view
|

Re: Reasoning/Inference question(s)

resus
New question:

I will stay in this thread as it is yet another inference understanding question.
Here are some DL queries and the instance results, the ontology is attached for you to follow. The ontology is created in Protege 4.3 and the reasoner used is Hermit 1.3.8.
 
Jaw that locates some (Workpiece that hasPrimLocEntity some (Surface that hasSurfaceShape value PlanarSurfaceShape) and hasSecLocEntity some (Surface that hasSurfaceShape value PlanarSurfaceShape))
-> returns FlexViseJaw_StR1, FlexViseJaw_StR2 (as expected)

Workpiece that hasPrimLocEntity some (Surface that hasSurfaceShape value PlanarSurfaceShape) and hasSecLocEntity some (Surface that hasSurfaceShape value PlanarSurfaceShape)
-> returns Workpiece_9001_0 (as expected, part of the query above)

Jaw that locates value Workpiece_9001_0
-> returns no result (NOT as expected).

Now, what am I missing? To me the last query should return the same results as the first. Again, I cannot figure out what is wrong. Any help is highly appreciated!

FixtureDesignOntology_v1.owl

resus

P.S.: Could someone try to use Pellet for the reasoning and tell me if it works. It freezes on my machine or stays in initialization state to be precise. As I need to add some SWRL rules later I would prefer to use Pellet.
Reply | Threaded
Open this post in threaded view
|

Re: Reasoning/Inference question(s)

Lorenz Buehmann
Hello Resus,

  the import fails, thus, everything fails.

Kind regards,
Lorenz

> New question:
>
> I will stay in this thread as it is yet another inference understanding
> question.
> Here are some DL queries and the instance results, the ontology is attached
> for you to follow. The ontology is created in Protege 4.3 and the reasoner
> used is Hermit 1.3.8.
>  
> Jaw that locates some (Workpiece that hasPrimLocEntity some (Surface that
> hasSurfaceShape value PlanarSurfaceShape) and hasSecLocEntity some (Surface
> that hasSurfaceShape value PlanarSurfaceShape))
> -> returns FlexViseJaw_StR1, FlexViseJaw_StR2 (as expected)
>
> Workpiece that hasPrimLocEntity some (Surface that hasSurfaceShape value
> PlanarSurfaceShape) and hasSecLocEntity some (Surface that hasSurfaceShape
> value PlanarSurfaceShape)
> -> returns Workpiece_9001_0 (as expected, part of the query above)
>
> Jaw that locates value Workpiece_9001_0
> -> returns no result (NOT as expected).
>
> Now, what am I missing? To me the last query should return the same results
> as the first. Again, I cannot figure out what is wrong. Any help is highly
> appreciated!
>
> FixtureDesignOntology_v1.owl
> <http://protege-project.136.n4.nabble.com/file/n4661305/FixtureDesignOntology_v1.owl>
>
> resus
>
> P.S.: Could someone try to use Pellet for the reasoning and tell me if it
> works. It freezes on my machine or stays in initialization state to be
> precise. As I need to add some SWRL rules later I would prefer to use
> Pellet.
>
>
>
>
> --
> View this message in context: http://protege-project.136.n4.nabble.com/Reasoning-Inference-question-s-tp4661266p4661305.html
> Sent from the Protege User mailing list archive at Nabble.com.
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
>
>
--
Lorenz Bühmann, MSc in Computer Science
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

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

Reply | Threaded
Open this post in threaded view
|

Re: Reasoning/Inference question(s)

Lorenz Buehmann
In reply to this post by resus
Hello Resus,

I removed the import for testing.

Without the import, what do you expect to be returned for the third
query? There is no instances of class "Jaw" that has any property
assertion using the "locates" property. So I'm wondering what do you
think will be returned and why.

Kind regards,
Lorenz

> New question:
>
> I will stay in this thread as it is yet another inference understanding
> question.
> Here are some DL queries and the instance results, the ontology is attached
> for you to follow. The ontology is created in Protege 4.3 and the reasoner
> used is Hermit 1.3.8.
>  
> Jaw that locates some (Workpiece that hasPrimLocEntity some (Surface that
> hasSurfaceShape value PlanarSurfaceShape) and hasSecLocEntity some (Surface
> that hasSurfaceShape value PlanarSurfaceShape))
> -> returns FlexViseJaw_StR1, FlexViseJaw_StR2 (as expected)
>
> Workpiece that hasPrimLocEntity some (Surface that hasSurfaceShape value
> PlanarSurfaceShape) and hasSecLocEntity some (Surface that hasSurfaceShape
> value PlanarSurfaceShape)
> -> returns Workpiece_9001_0 (as expected, part of the query above)
>
> Jaw that locates value Workpiece_9001_0
> -> returns no result (NOT as expected).
>
> Now, what am I missing? To me the last query should return the same results
> as the first. Again, I cannot figure out what is wrong. Any help is highly
> appreciated!
>
> FixtureDesignOntology_v1.owl
> <http://protege-project.136.n4.nabble.com/file/n4661305/FixtureDesignOntology_v1.owl>
>
> resus
>
> P.S.: Could someone try to use Pellet for the reasoning and tell me if it
> works. It freezes on my machine or stays in initialization state to be
> precise. As I need to add some SWRL rules later I would prefer to use
> Pellet.
>
>
>
>
> --
> View this message in context: http://protege-project.136.n4.nabble.com/Reasoning-Inference-question-s-tp4661266p4661305.html
> Sent from the Protege User mailing list archive at Nabble.com.
> _______________________________________________
> protege-user mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
>
>
--
Lorenz Bühmann, MSc in Computer Science
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

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

Reply | Threaded
Open this post in threaded view
|

Re: Reasoning/Inference question(s)

resus
Hi!

Lorenz Bühmann wrote
I removed the import for testing.
Ah, sorry, please find the imported owl file attached.

Lorenz Bühmann wrote
Without the import, what do you expect to be returned for the third
query? There is no instances of class "Jaw" that has any property
assertion using the "locates" property. So I'm wondering what do you
think will be returned and why.
As said in my pevious post, I would expect the same result as to the first query, namely FlexViseJaw_StR1, FlexViseJaw_StR2. These are instances of FlexViseJaw which is a subclass of Jaw. They are also of type StR_ViseJaw and, looking at the Subclass definition of that class, of type:
ViseJaw
 and (locates some
    (Workpiece
     and (hasPrimLocEntity some Surface)
     and (hasSecLocEntity some Surface)
     and (hasPrimLocEntity only
        (Surface
         and (hasSurfaceShape value PlanarSurfaceShape)))
     and (hasSecLocEntity only
        (Surface
         and (hasSurfaceShape value PlanarSurfaceShape)))))

If you look at my previous post and check the queries, to me they build a "chain". Thus,  why can I not exchange the expression "some Workpiece that hasPrimLocEntity some (Surface that hasSurfaceShape value PlanarSurfaceShape) and hasSecLocEntity some (Surface that hasSurfaceShape value PlanarSurfaceShape)", which returns {Workpiece_9001_0}, for "value Workpiece_9001_0".
It may well be that I (once again ^_^) lack some basic ontology/OWA understanding here.

Best, resus

FixtureComponentOntology_v1.owl
Reply | Threaded
Open this post in threaded view
|

Re: Reasoning/Inference question(s)

resus
In reply to my previous post, I may just basically misunderstand the capabilities of OWL reasoning.
I guess I need to make the information about if a (any kind of) Jaw instance can locate a specific Workpiece instance explicitly available. Is that correct, or is their a way to infer that implicitly in a way as described in my queries above?

What I can do, for example, is to use SWRL to state that all Jaw instances that meet a query statement locate all Workpiece instances that meet a query statement. This explicitly adds, for example, that FlexViseJaw_StR1 "locates Workpiece 9001_0". The query for a Jaw that locates vlaue Worpiece_9001_0 then obviously returns FlexViseJaw_StR1 as result. Still, out of curiosity, is their also a way to do this without SWRL, i.e. with pure OWL?

As always your answers are highly appreciated, resus
Reply | Threaded
Open this post in threaded view
|

Re: Reasoning/Inference question(s)

samsontu
Hi,

It seems to me that

(1) Individuals A, B of Jaw locates some Foo
(2) Foo1 an individual of type Foo 

does not imply that

(3) These Individuals A, B locates value Foo1

A, B may locates some other Foo individuals.

If you want A, B to locates the specific individual Foo1, you need make such explicit assertions, unless Foo1 is the only individual of type Foo.

With best regards,
Samson



On Aug 25, 2014, at 4:48 AM, resus <[hidden email]> wrote:

In reply to my previous post, I may just basically misunderstand the
capabilities of OWL reasoning.
I guess I need to make the information about if a (any kind of) Jaw instance
can locate a specific Workpiece instance explicitly available. Is that
correct, or is their a way to infer that implicitly in a way as described in
my queries above?

What I can do, for example, is to use SWRL to state that all Jaw instances
that meet a query statement locate all Workpiece instances that meet a query
statement. This explicitly adds, for example, that FlexViseJaw_StR1 "locates
Workpiece 9001_0". The query for a Jaw that locates vlaue Worpiece_9001_0
then obviously returns FlexViseJaw_StR1 as result. Still, out of curiosity,
is their also a way to do this without SWRL, i.e. with pure OWL?

As always your answers are highly appreciated, resus



--
View this message in context: http://protege-project.136.n4.nabble.com/Reasoning-Inference-question-s-tp4661266p4661313.html
Sent from the Protege User mailing list archive at Nabble.com.
_______________________________________________
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: Reasoning/Inference question(s)

resus
samsontu wrote
It seems to me that

(1) Individuals A, B of Jaw locates some Foo
(2) Foo1 an individual of type Foo

does not imply that

(3) These Individuals A, B locates value Foo1

A, B may locates some other Foo individuals.

If you want A, B to locates the specific individual Foo1, you need make such explicit assertions, unless Foo1 is the only individual of type Foo.
There are several individuals of the Workpiece class (which you named Foo) and yes, Individuals A,B may locate several of them. If they locate a specific Workpiece instance is what I want to infer via a query. That would not exclude that the y also locate other Workpieces. So in your notation, I wonder why (1) and (2) does not imply (3). I mean, I am not looking for individuals that only locate Foo1. Well, at the moment the SWRL rules do what I need. But thaks to everyone for ncreasing my ontological understanding with their answers!