DAML-S
CompositeProcess
is composedOf
a bunch of ControlConstruct
s which can be things
like sequence
, if-then-else
,
fork
, while
, etc.CongoBuy
has two steps: locating the book and
then buying the book. While (for exposition) we assume that
the locate book is an atomic process (without components), the
buying of a book involves a sequence of subprocesses (other
atomic or composite processes) that correspond to specifying a
payment method, specifying the details of delivery (address,
wrapping type, etc.) and finalizing the buy process.<daml:Class rdf:ID="ExpandedCongoBuy"> <rdfs:subClassOf rdf:resource="&process;#CompositeProcess"/> <rdfs:subClassOf> <daml:Restriction> <daml:onProperty rdf:resource="&process;#composedOf"/> <daml:toClass> <daml:Class> <daml:intersectionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="process:Sequence"/> <daml:Restriction> <daml:onProperty rdf:resource="&process;#components"/> <daml:toClass> <daml:Class> <daml:listOfInstancesOf rdf:parseType="daml:collection"> <daml:Class rdf:about="#LocateBook"/> <daml:Class rdf:about="#CongoBuyBook"/> </daml:listOfInstancesOf> </daml:Class> </daml:toClass> </daml:Restriction> </daml:intersectionOf> </daml:Class> </daml:toClass> </daml:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#expCongoBuyBookName"/> </daml:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#expCongoBuyCreditCardNumber"/> </daml:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#expCongoBuyCreditCardType"/> </daml:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#expCongoBuyCreditCardExpirationDate"/> </daml:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#expCongoBuyDeliveryAddress"/> </daml:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#expCongoBuyPackagingSelection"/> </daml:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#expCongoBuyDeliveryTypeSelection"/> </daml:Restriction> </rdfs:subClassOf> </daml:Class>
19 of 26