Instantiating a DAML-S Process

Hi,

I have a question regarding how to specify a DAML-S process.
In my understanding, DAML-S is based on DAML+OIL.
In the document titled "Annotated DAML+OIL (March 2001) Ontology
Markup", there is an example of defining a Person class.  Then, near the
end of the document, there are several example Persons instantiated.
The example Persons use the definition of a Person in DAML-S.
e.g. part of the definition is as follows:

<daml:Class rdf:ID="Person">
   <rdfs:subClassOf rdf:resource="#Animal"/>
...
</daml:Class>

An instantiation looks like this:
<Person rdf:ID="Ian">
  <shoesize>14</shoesize>
  <age>37</age>
  <shirtsize><xsd:string ref:value="12"/></shirtsize>
</Person>

However, a DAML-S process seems to work differently.  The definition,
defined in Process.daml, (and which looks almost exactly like the Person
definition) starts like this:

<rdfs:Class rdf:ID="Process">
  <rdfs:comment> A simple process class </rdfs:comment>
  <rdfs:subClassOf
rdf:resource="http://www.ai.sri.com/~daml/ontologies/services/1-0/Service#ServiceModel"/>

</rdfs:Class>


But then the example looks like this (CongoBuy):

<rdfs:Class rdf:ID="CongoBuy">
  <rdfs:subClassOf
rdf:resource="http://www.ai.sri.com/daml/ontologies/services/1-0/Process.daml#Process"/>

</rdfs:Class>
....

It looks as if CongoBuy is a kind of a Process.  I was expecting that it
would be an instantiation of a Process.  Is it just me, or is that
somewhat inconsistent?  What fundamental piece of DAML-S am I missing?

A second question:
In defining the CongoBuy process (as well as the other examples),  there
are several examples where there should be a sequence of action.  For
this purpose a unionOf construction is used.  For example:

<!--
SignInSequence is a sequence whose components are a simple process
SignIn
followed by a simple process LoadProfile
-->

<rdfs:Class rdf:ID="SignInSequence">
 <daml:subClassOf
rdf:resource="http://www.ai.sri.com/daml/ontologies/services/1-0/Process.daml#Sequence"/>

  <daml:subClassOf>
    <daml:Restriction>
      <daml:onProperty
rdf:resource="http://www.ai.sri.com/daml/ontologies/services/1-0/Process.daml#components"/>

      <daml:toClass>
       <daml:subClassOf>
        <daml:unionOf rdf:parseType="daml:collection">
          <rdfs:Class rdfs:about="#SignIn"/>
          <rdfs:Class rdfs:about="#LoadProfile"/>
        </daml:unionOf>
       </daml:subClassOf>
      </daml:toClass>
    </daml:Restriction>
  </daml:subClassOf>
</rdfs:Class>


In my understanding, a unionOf type is not an ordering, but a
possibility of choosing one type or another.  So in the example above,
every type in the sequence is either a SignIn type or a LoadProfile
type.  However, the sequence says nothing about the order of the types,
or how many types should be in it.  So, this seems to be only part of
the specification, or maybe not even the right way to specify such a
condition.  Is this true?

Thank you for considering my questions,

David Buttler

Received on Wednesday, 13 June 2001 17:22:29 UTC