- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Tue, 27 Nov 2001 18:04:03 -0500 (EST)
- To: www-ws@w3c.org
[Ian Dickinson] A Jena user asked a question about Jena support for DAML-S, and pointed me at the latest version of the specs on http://www.daml.ri.cmu.edu/ont/DAML-S/Release0.6/. Since I wasn't familiar with the details of DAML-S, I've spent a little time trying to get up to speed. I'm sure I'll have a number of questions, but one leaps right out at me from reading the Congo and Bravo Air examples. In essence it is this: where's the data? To be more precise, I notice that all of the definitions are for DAML classes and properties. Nowhere are instances defined, or actual RDF triples giving the properties of the instances. So when congo.daml says: <daml:Class rdf:ID="CongoBuy"> <rdfs:subClassOf rdf:resource="&process;#AtomicProcess"/> </daml:Class> this tells me that there is a DAML class CongoBuy, all instances of which are also instances of AtomicProcesses, but it doesn't tell me that there is an individual CongoBuy service that I can interact with. DAML-S is describing process classes. The individual elements of the class are the actual actions involved. Suppose I described buying a Coke as a DAML-S CompositeProcess, with two 'components', PutInNickel and TakeOutCoke (if you find a machine that behaves like this, let me know). What I mean is that any instance of BuyACoke consists of two parts, each of which is an intance of PutInNickel and TakeOutCoke. But you won't see any actual instances until you get down to particular stories, i.e., particular occasions when someone put in a nickel and got out a Coke. It's a bit like programming-language semantics, where one might define ";" by saying "An event is of type "s1;s2" if and only if it consists of two consecutive events, the first of type s1 and the second of type s2." That answers part of the "where's the data" question. The other is, how (or where) are actual services described. This is more a job for the Service and Profile parts of DAML-S. Here are the basic declarations: <rdfs:Class rdf:ID="Service"> <rdfs:label>Service</rdfs:label> <rdfs:comment>Top Level Service</rdfs:comment> </rdfs:Class> <rdfs:Class rdf:ID="ServiceProvider"> <rdfs:label>ServiceProvider</rdfs:label> <rdfs:subClassOf rdf:resource="#Actor" /> <rdfs:comment> ServiceProvider provides general contract details such as address, fax etc. </rdfs:comment> </rdfs:Class> You would instantiate a particular Service by writing <daml-s:Service ID="CokesForNickels"/> A Service is an entity accessible through the internet (by ways specified in its grounding). A ServiceProvider is a legal agent (perhaps "Cheap Drinks R Us") that undertakes to keep one or more Services going. If I've made an ontological error, and I probably have, I'm sure someone else in the DAML-S group will correct me. -- Drew McDermott
Received on Tuesday, 27 November 2001 18:04:08 UTC