W3C home > Mailing lists > Public > www-ws@w3.org > November 2003

Re: Attempt to use Owl rule language to express preconditions in Congo

From: Drew McDermott <drew.mcdermott@yale.edu>
Date: Fri, 7 Nov 2003 13:56:10 -0500 (EST)
Message-Id: <200311071856.hA7IuAu17987@pantheon-po04.its.yale.edu>
To: www-ws@w3.org


   [Monika Solanki]
   2. Formula is made up of predicates, so we define
   <process:Formula>
       <process:predicate rdf:parseType="Collection">

Bad terminology.  People often speak of atomic formulas as
"predicates," which yields a lot of confusion.

There are two alternatives I would recommend: either replace Formula
with any connective, or require Formula to always label the topmost
element, with an implicit conjunction inside.  The second is
essentially what you're proposing, so I'd just change 'predicate' to
'conjuncts.' 

   ...

   3. Then we define propertyPredicate etc from ORL. Definition of variable 
   5. This Formula can then be used whever we want to define "Condition", 
   ofcourse with appropriate relationship between the two defined in the 
   process Ontology i.e

   Condition is of rdf:type Formula

Right.

   So, if we just want to express the predicate  accountExists(acctID, 
   password) we write

Here's how I would change it:

   <process:Formula>
       <process:conjuncts rdf:parseType="Collection">
           <owl:individualPropertyAtom>
                   <owl:propertyPredicate 
                              rdf:resource="&congoUserProfile;accountExists/>
                   <owl:argument1 rdf:about="#AcctID" />
                   <owl:argument2 rdf:about="#Password" />
           </owl:individualPropertyAtom>   
           <owl:individualPropertyAtom>
                   <owl:propertyPredicate 
                               rdf:resource="&congoUserProfile;creditExists/>
                   <owl:argument1 rdf:about="#AcctID" />
                   <owl:argument2 rdf:about="#CreditCardNumber" />
           </owl:individualPropertyAtom>   
       </process:conjuncts>
   </process:Formula>

If you want an OR here instead (which makes no sense, but is
syntactically illustrative), you write:

   <process:Formula>
       <process:conjuncts rdf:parseType="Collection">
           <process:Or>
              <process:disjuncts rdf:parseType="Collection"
                  <owl:individualPropertyAtom>
                          <owl:propertyPredicate 
                                     rdf:resource="&congoUserProfile;accountExists/>
                          <owl:argument1 rdf:about="#AcctID" />
                          <owl:argument2 rdf:about="#Password" />
                  </owl:individualPropertyAtom>   
                  <owl:individualPropertyAtom>
                          <owl:propertyPredicate 
                                      rdf:resource="&congoUserProfile;creditExists/>
                          <owl:argument1 rdf:about="#AcctID" />
                          <owl:argument2 rdf:about="#CreditCardNumber" />
                  </owl:individualPropertyAtom>   
              </process:disjuncts>
           </process:Or>
       </process:conjuncts>
   </process:Formula>



-- 
                                             -- Drew McDermott
                                                Yale University CS Dept.
Received on Friday, 7 November 2003 13:56:11 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:44 GMT