Re: question: named vs. anonymous classes in creation of conditional outputs and effects

   <titi@cs-gw.utcluj.ro>
   Date: Wed, 21 May 2003 23:15:31 +0300 (EEST)

   >>   As far as  understand there are 2 ways to create conditional
   >>   outputs and effects: using anonymous subclasses (via the
   >>   use of DAML+OIL "Restriction")and using explicit naming of the
   >>   "ConditionalOutput" and "ConditionalEffect" subclasses, respectively.
   >>   Can anybody explain in some details which is the difference between
   >>   them? Which is the advantage of using one instead of the other?
   >>   When should we use one and when should we use the other?

   [Drew McD, i.e., me]
   > They have exactly the same meaning, except that named conditions can
   > be referred to elsewhere and anonymous conditions cannot.

   Consider a top level process which is a composite process, composed of a
   ...

[[ Deleted long example comparing named classes with anonymous classes
   referred to using the "ValueOf" notation. ]]

As I've warned elsewhere, you should use the ValueOf notation at your
own risk.  It was created for a specific narrow use in solving a
problem that appears to have no "legal" RDF/OWL solution.  It requires
a nonstandard processor to extract the meaning of an occurrence of
ValueOf/sameValues .  No such processor has actually been written, and
we'd probably find some unexpected ambiguities if we wrote one.

If that doesn't scare you off, then yes, there is a way to refer to
anonymous entities from somewhere else.  It's far safer to just give
them names.

   [me]
   > BookInCatalogue is a process (the process of looking for the book in

   <titi@cs-gw.utcluj.ro>
   If BookInCatalogue is a process shouldn't it be declared as a process
   in the CongoProcess file?(there is no declaration of BookInCatalogue
   in the http://www.daml.org/services/owl-s/0.9/CongoProcess.owl)

Okay, forget everything I said before.  Here's my new story:

BookInCatalogue is a class -- not declared anywhere.  It's intended to
mean the set of all books in the catalogue, but that doesn't make a
lot of sense; see below.  Think it for now as the set of all books.
Declaring

<owl:Class rdf:ID="BookInCatalogueP">
 <rdfs:subClassOf rdf:resource="&process;#Condition"/>
 <rdfs:subClassOf>
   <owl:Restriction owl:minCardinality="1">
     <owl:onProperty rdf:resource="#nameBookInCatalogue" />
   </owl:Restriction>
 </rdfs:subClassOf>
</owl:Class>

just says that BookInCatalogueP is a predicate on (i.e., set of) books
that have names.  Later statements divide the predicate into two
subpredicates, InCatalogueBook and NotInCatalogueBook.

Granted that the stuff about books with and without names seems, on
the whole, silly, I think titi's reading would be even sillier,
although I'm definitely open to persuasion.  (Perhaps some other
DAML-S team member can jump in and help out here.)  Titi originally
proposed

   To the DAML-S team:
   In the http://www.daml.org/services/owl-s/0.9/CongoProcess.owl, in the
   following property declaration:

   <rdf:Property rdf:ID="nameBookInCatalogue">
     <owl:domain rdf:resource="#BookInCatalogue" />
     <owl:range rdf:resource="http://www.w3.org/2000/10/XMLSchema#string" />
   </rdf:Property>

   the property domain shouldn't be "#BookInCatalogueP" instead
   "#BookInCatalogue"?

This would have BookInCatalogueP as a condition with a property
nameBookInCatalogue, such that BookInCatalogueP is a subclass of
objects (i.e., all BookInCatalogueP's) that have at least one
nameBookInCatalogue.  This reading is not inconsistent, but it leaves
one mystified as to what sorts of things BookInCatalogueP's are.

-- 
                                             -- Drew McDermott

Received on Thursday, 22 May 2003 16:18:01 UTC