- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Thu, 22 May 2003 16:17:53 -0400 (EDT)
- To: titi@cs-gw.utcluj.ro
- CC: www-ws@w3.org
<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