[Fwd: Time in DAML-S: another two possible additions to the Congo use case]

Feng -

So far I've only had time to glance at these proposed additions to the
Congo example.

I think they look like the right way to go, but I think we will also
need to go one step further. That is, for each subclass of
DeliveryDuration, we will need to restrict the values of the properties
minDeliveryDuration and maxDeliveryDuration, so as to indicate the
relevant intervals. Either hasValue or toValue restrictions will be
appropriate here (I forget which is best for this kind of case).

For instance, for FedEx2-3dayDuration, a restriction will say that "any
instance of this class will have an instance of the minDeliveryDuration
property with value 2" and similarly for maxDeliveryDuration having value 3.

Let me know if this needs further clarification.

Thanks very much,
David Martin

-------- Original Message --------
Subject: 	Time in DAML-S: another two possible additions to the Congo
use case
Date: 	Thu, 17 Jul 2003 00:59:43 -0700
From: 	Feng Pan <pan@ISI.EDU>
To: 	<martin@AI.SRI.COM>

	



Hi David,
Another two possible additions to the Congo use case are:
1) Add "process time", i.e. how long the book will be ready for delivery,
say 24 hours, which depends on whether the book ordered is available,
i.e. in stock. In this use case, the process time will be returned only
if the book ordered is in stock.
2) Add "delivery duration", i.e. how long the customer will receive
the book since it's shipped out, which depends on the delivery type
the customer selects. However, since an instance of "Condition"
is a logical formula that evaluates to true or false, "DeliveryType"
cannot be directly used as a condition to determine the delivery
duration. So one property and one condition are defined for each
delivery type. "DeliveryDuration" has two boundaries, one
"minDeliveryDuration" and one "maxDeliveryDuration". For example,
an ordinary mail takes 6 to 10 days. For FedEX one day delivery,
the min and max delivery duration are both 1 day.
The portion of code in OWL that can be added to CongoProcess.owl
is attached below. Please let me know if you have any suggestions
or comments on these two possible additions.
thanks,
Feng
<!DOCTYPE uridef[
...
<!ENTITY time "http://www.isi.edu/~pan/damltime/time-entry.owl
<http://www.isi.edu/%7Epan/damltime/time-entry.owl>">
...
]>
<!--
The "process time", i.e. how long the book will be ready for delivery,
say 24 hours, depends on whether the book ordered is available,
i.e. in stock. In this example, the process time will be returned only
if the book ordered is in stock.
-->
<rdf:Property rdf:ID="fullCongoBuyProcessTime">
<rdfs:subPropertyOf rdf:resource="&process;#output"/>
<rdfs:domain rdf:resource="#FullCongoBuy"/>
<rdfs:range>
<owl:Class>
<rdfs:subClassOf rdf:resource="&process;#ConditionalOutput"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&process;#coCondition"/>
<owl:allValuesFrom rdf:resource="#BookInStock"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&process;#coOutput"/>
<owl:allValuesFrom rdf:resource="#ProcessTime"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
</rdfs:range>
</rdf:Property>
<owl:Class rdf:ID="ProcessTime">
<rdfs:subClassOf rdf:resource="&time;#Interval"/>
</owl:Class>
<!--
The "delivery duration", i.e. how long the customer will receive
the book since it's shipped out, depends on the delivery type the
customer selects. However, since an instance of "Condition" is a
logical formula that evaluates to true or false, "DeliveryType"
cannot be directly used as a condition to determine the delivery
duration. So one property and one condition are defined for each
delivery type.
-->
<!-- "DeliveryDuration" has two boundaries, one "minDeliveryDuration"
and one "maxDeliveryDuration". For example, an ordinary mail takes
6 to 10 days. For FedEX one day delivery, the min and max delivery
duration are both 1 day. -->
<owl:Class rdf:ID="DeliveryDuration">
<rdfs:subClassOf>
<owl:Restriction owl:cardinality="1">
<owl:onProperty rdf:resource="#minDeliveryDuration"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction owl:cardinality="1">
<owl:onProperty rdf:resource="#maxDeliveryDuration"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<rdf:Property rdf:ID="minDeliveryDuration">
<rdfs:domain rdf:resource="#DeliveryDuration"/>
<rdfs:range rdf:resource="&time;#Interval"/>
</rdf:Property>
<rdf:Property rdf:ID="maxDeliveryDuration">
<rdfs:domain rdf:resource="#DeliveryDuration"/>
<rdfs:range rdf:resource="&time;#Interval"/>
</rdf:Property>
<owl:Class rdf:ID="FedExOneDayCondition">
<rdfs:subClassOf rdf:resource="&process;#Condition"/>
</owl:Class>
<owl:Class rdf:ID="FedEx2-3dayCondition">
<rdfs:subClassOf rdf:resource="&process;#Condition"/>
</owl:Class>
<owl:Class rdf:ID="UPSCondition">
<rdfs:subClassOf rdf:resource="&process;#Condition"/>
</owl:Class>
<owl:Class rdf:ID="OrdinaryMailCondition">
<rdfs:subClassOf rdf:resource="&process;#Condition"/>
</owl:Class>
<rdf:Property rdf:ID="deliverySelectFedExOneDay">
<rdfs:subPropertyOf rdf:resource="&process;#output"/>
<rdfs:domain rdf:resource="#SpecifyDeliveryDetails"/>
<rdfs:range>
<owl:Class>
<rdfs:subClassOf rdf:resource="&process;#ConditionalOutput"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&process;#coCondition"/>
<owl:allValuesFrom rdf:resource="#FedExOneDayCondition"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&process;#coOutput"/>
<owl:allValuesFrom rdf:resource="#FedExOneDayDuration"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
</rdfs:range>
</rdf:Property>
<owl:Class rdf:ID="FedExOneDayDuration">
<rdfs:subClassOf rdf:resource="#DeliveryDuration"/>
</owl:Class>
<rdf:Property rdf:ID="deliverySelectFedEx2-3day">
<rdfs:subPropertyOf rdf:resource="&process;#output"/>
<rdfs:domain rdf:resource="#SpecifyDeliveryDetails"/>
<rdfs:range>
<owl:Class>
<rdfs:subClassOf rdf:resource="&process;#ConditionalOutput"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&process;#coCondition"/>
<owl:allValuesFrom rdf:resource="#FedEx2-3dayCondition"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&process;#coOutput"/>
<owl:allValuesFrom rdf:resource="#FedEx2-3dayDuration"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
</rdfs:range>
</rdf:Property>
<owl:Class rdf:ID="FedEx2-3dayDuration">
<rdfs:subClassOf rdf:resource="#DeliveryDuration"/>
</owl:Class>
<rdf:Property rdf:ID="deliverySelectUPS">
<rdfs:subPropertyOf rdf:resource="&process;#output"/>
<rdfs:domain rdf:resource="#SpecifyDeliveryDetails"/>
<rdfs:range>
<owl:Class>
<rdfs:subClassOf rdf:resource="&process;#ConditionalOutput"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&process;#coCondition"/>
<owl:allValuesFrom rdf:resource="#UPSCondition"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&process;#coOutput"/>
<owl:allValuesFrom rdf:resource="#UPSDuration"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
</rdfs:range>
</rdf:Property>
<owl:Class rdf:ID="UPSDuration">
<rdfs:subClassOf rdf:resource="#DeliveryDuration"/>
</owl:Class>
<rdf:Property rdf:ID="deliverySelectOrdinaryMail">
<rdfs:subPropertyOf rdf:resource="&process;#output"/>
<rdfs:domain rdf:resource="#SpecifyDeliveryDetails"/>
<rdfs:range>
<owl:Class>
<rdfs:subClassOf rdf:resource="&process;#ConditionalOutput"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&process;#coCondition"/>
<owl:allValuesFrom rdf:resource="#OrdinaryMailCondition"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&process;#coOutput"/>
<owl:allValuesFrom rdf:resource="#OrdinaryMailDuration"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
</rdfs:range>
</rdf:Property>
<owl:Class rdf:ID="OrdinaryMailDuration">
<rdfs:subClassOf rdf:resource="#DeliveryDuration"/>
</owl:Class>

Received on Monday, 4 August 2003 01:35:56 UTC