zhengj2007 / bfo-export

Automatically exported from code.google.com/p/bfo
0 stars 0 forks source link

Provide help for translating property chains to BFO2 #157

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
We have many property chains, for example:

  * has_part o part_of -> overlaps

(note we need SWRL to properly define overlaps, but this property chain is good 
for some purposes).

How should these be translated to BFO2? Would the FOL group be able to help 
prove the correctness of the translation? I have some experience with the 
logical formalism but I personally find this quite hard.

For example, in this particular case I would assume:

  ObjectProperty: overlaps-continuant-at-some-times
  Characteristics: Symmetric

 ObjectProperty: overlaps-continuant-at-all-times
  SubPropertyOf: overlaps-continuant-at-some-times

 ObjectProperty: overlaps-continuant-at-all-times-for-which-partner-exists
  SubPropertyOf: overlaps-continuant-at-some-times

Existing relations would need to be added, creating a subproperty lattice.

E.g.

  AddAxiom: part-of-continuant-at-some-times SubPropertyOf overlaps-continuant-at-some-times
  AddAxiom: part-of-continuant-at-all-times SubPropertyOf overlaps-continuant-at-all-times
  AddAxiom: part-of-continuant-at-all-times-for-which-part-exists SubPropertyOf overlaps-continuant-at-all-times-for-which-partner-exists

  AddAxiom: has-continuant-part-at-some-times SubPropertyOf overlaps-continuant-at-some-times
  AddAxiom: has-continuant-part-at-all-times SubPropertyOf overlaps-continuant-at-all-times
  AddAxiom: has-continuant-part-at-all-times-for-which-whole-exists SubPropertyOf overlaps-continuant-at-all-times-for-which-partner-exists

Then for the property chains themselves, perhaps:

 * has-continuant-part-at-some-times o part-of-continuant-at-all-times -> overlaps-continuant-at-some-times
 * has-continuant-part-at-all-times o part-of-continuant-at-all-times -> overlaps-continuant-at-all-times
 * has-continuant-part-at-all-times-for-which-whole-exists o part-of-continuant-at-all-times -> overlaps-continuant-at-all-times-for-which-partner-exists

I just made this list quickly based on rough intuition. I don't have strong 
confidence that they are correct, and I'm certain they're not complete.

Is there a tool I could use to generate these axioms for any property chain 
(preferably with proofs that they are valid and that they are complete w.r.t 
what is possible in OWL)?

Is there any way we can know ahead of time if we are likely to start running 
into either OWL2 structural restrictions on axioms, or reasoner performance 
errors?

Original issue reported on code.google.com by cmung...@gmail.com on 9 Mar 2013 at 10:19

GoogleCodeExporter commented 9 years ago
         We have many property chains, for example:
          * has_part o part_of -> overlaps

             How should these be translated to BFO2? Would the FOL group be able to help prove the correctness of the translation? I have some experience with the logical formalism but I personally find this quite hard.

It is work. 

         For example, in this particular case I would assume:

           ObjectProperty: overlaps-continuant-at-some-times
           Characteristics: Symmetric

yes

          ObjectProperty: overlaps-continuant-at-all-times
           SubPropertyOf: overlaps-continuant-at-some-times

There is a general pattern that rel at all times -> rel at some times. So yes.

          ObjectProperty: overlaps-continuant-at-all-times-for-which-partner-exists
           SubPropertyOf: overlaps-continuant-at-some-times

Yes

         Existing relations would need to be added, creating a subproperty lattice.

         E.g.

           AddAxiom: part-of-continuant-at-some-times SubPropertyOf overlaps-continuant-at-some-times
           AddAxiom: part-of-continuant-at-all-times SubPropertyOf overlaps-continuant-at-all-times
           AddAxiom: part-of-continuant-at-all-times-for-which-part-exists SubPropertyOf overlaps-continuant-at-all-times-for-which-partner-exists

           AddAxiom: has-continuant-part-at-some-times SubPropertyOf overlaps-continuant-at-some-times
           AddAxiom: has-continuant-part-at-all-times SubPropertyOf overlaps-continuant-at-all-times
           AddAxiom: has-continuant-part-at-all-times-for-which-whole-exists SubPropertyOf overlaps-continuant-at-all-times-for-which-partner-exists

Withough checking details, generally yes. In the current BFO build some amount 
of this is done automatically, some manually, though in shorthand so it is 
quicker.

         Then for the property chains themselves, perhaps:

          * has-continuant-part-at-some-times o part-of-continuant-at-all-times -> overlaps-continuant-at-some-times
          * has-continuant-part-at-all-times o part-of-continuant-at-all-times -> overlaps-continuant-at-all-times
          * has-continuant-part-at-all-times-for-which-whole-exists o part-of-continuant-at-all-times -> overlaps-continuant-at-all-times-for-which-partner-exists

         I just made this list quickly based on rough intuition. I don't have strong confidence that they are correct, and I'm certain they're not complete.

In a similar vein, I'm not checking them carefully. But the intuition is 
correct.

         Is there a tool I could use to generate these axioms for any property chain (preferably with proofs that they are valid and that they are complete w.r.t what is possible in OWL)?

You are the best person to know this :)
Currently the lisp code does some of the generation, but doesn't do the proofs. 
I would hope that the proofs arise either from the FOL groups, or from 
consistency checking (of the FOL expression) for well chosen examples.

         Is there any way we can know ahead of time if we are likely to start running into either OWL2 structural restrictions on axioms, or reasoner performance errors?

You can either try to grok the global restrictions and keep them in mind as you 
write (hard - I can't) or you can check when it is reasoned. In practive the 
violations I've found are by the latter method. I note them in the lisp spec, 
marking them with ':cant "reason"' so they can be reviewed at a later time for 
documentation purposes or to see if we can get the desired entailments without 
hitting the restrictions. Below is a current grep for :cant in 
trunk/src/ontology/owl-group/specification

binary-relation-axioms.lisp:  (occurrent -> self :cant "Non-simple property or 
its inverse appears in the Self restriction")
binary-relation-axioms.lisp:  (< (occurrent ->  self :cant "Non-simple property 
or its inverse appears in the Self restriction"))
binary-relation-axioms.lisp:  (0d-t-region -> self :id 145 :cant "Non-simple 
property or its inverse appears in the Self restriction") 
binary-relation-axioms.lisp:  (o occupies st-projects-onto-t :id 168 :cant 
"conflicts with the self properties. Recast the self properties using new 
relations to get around this")
temporal-relation-axioms.lisp:  (s (o has-participant_st inheres-in_at :id 561 
:cant "There is a cyclic dependency involving property has-participant_st"))
temporal-relation-axioms.lisp:  (a (o bearer-of_at participates-in_at :id 562 
:cant "There is a cyclic dependency involving property has-participant_at"))
temporal-relation-axioms.lisp:  (< (a (o has-g-dep_at participates-in_at :id 
571 :cant "There is a cyclic dependency involving property 
has-participant_at")))
temporal-relation-axioms.lisp:  (< (s (o has-g-dep_st participates-in_at :id 
572 :cant "The given property hierarchy is not regular. There is a cyclic 
dependency involving property 'participates in at some time'")))  

Original comment by alanruttenberg@gmail.com on 12 Mar 2013 at 5:53