Fwd: Presentation syntax writer

From: Mark Burstein <burstein@bbn.com>
Date: Tue Mar 21 2006 - 14:20:15 EST

I copied this surface model from Evren's website pointer below.

>Date: Thu, 12 Jan 2006 01:13:29 -0500
>From: Evren Sirin <evren@cs.umd.edu>
>
>I got hold of the program that generates the presentation syntax output
>from RDF/XML and put it on the Web for everybody to use. The page to run
>the programs is here:
>http://www.mindswap.org/2004/owl-s/pres_syntax/
>
>If you click the example links on the page you can directly get the Congo
>and BravoAir process models translated to presentation syntax. The program
>only supports OWL-S 1.2 so it won't work for earlier versions. And it does
>not yet print the ResultVar's but I think it is complete for the rest of
>the constructs.
>
>BTW, the program reports a warning message about Congo 1.2 where
>rdf:ID="#LocateBook_aBook" should be changed to rdf:ID="LocateBook_aBook".
>Also there are some expressions that needs to be fixed, e.g. rdf:type is
>used in swrl:IndividualPropertyAtom but the correct way should be
>swrl:ClassAtom.
>
>Regards,
>Evren
>--
>[To unsubscribe to this list send an email to "majdart@bbn.com"
>with the following text in the BODY of the message "unsubscribe daml-process"]

with_namespaces
   (uri"http://www.daml.org/services/owl-s/1.2/CongoProcess.owl#",
    profileHierarchy:
"http://www.daml.org/services/owl-s/1.2/ProfileHierarchy.owl#",
    xsd: "http://www.w3.org/2001/XMLSchema#",
    owl-s: "http://www.daml.org/services/owl-s/1.2/",
    rdfs: "http://www.w3.org/2000/01/rdf-schema#",
    time-entry: "http://www.isi.edu/~pan/damltime/time-entry.owl#",
    rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    owl: "http://www.w3.org/2002/07/owl#")
{

    define atomic process LoadUserProfile()

    define atomic process FinalizeBuy()

    define atomic process PutInCart(
       inputs: (PutInCartBookISBN - profileHierarchy:ISBN))

    define atomic process SignIn(
       inputs: (SignInInfo - SignInData))

    define atomic process SpecifyPaymentMethod(
       inputs: (SpecifyPaymentMethodCreditCardExpirationDate -
time-entry:Instant
                SpecifyPaymentMethodCreditCardType - CreditCardType
                SpecifyPaymentMethodCreditCardNumber - xsd:decimal))

    define atomic process ExpressCongoBuy(
       inputs: (ExpressCongoBuySignInInfo - SignInData
                ExpressCongoBuyBookISBN - profileHierarchy:ISBN
                ExpressCongoBuyCreditCardNumber - xsd:decimal
                ExpressCongoBuyCreditCardExpirationDate - xsd:gYearMonth
                ExpressCongoBuyCreditCardType - CreditCardType),
       locals: (ExpressCongoBuyAcctID - AcctID
                ExpressCongoBuyCreditCard - CreditCard),
       outputs: (ExpressCongoBuyOutput - ExpressCongoBuyOutputType),
       precondition: (hasAcctID(ExpressCongoBuySignInInfo,
ExpressCongoBuyAcctID),
       precondition: (cardNumber(ExpressCongoBuyCreditCard,
ExpressCongoBuyCreditCardNumber) &
                      validity(ExpressCongoBuyCreditCard, Valid),
       result: (<< Anonymous Class >>(ExpressCongoBuyBookISBN)
                |->
                (ExpressCongoBuyOutput = NotifyBookOutOfStock)),
       result: (forall (ExpressCongoBuyBook - profileHierarchy:Book
                        ExpressCongoBuyShipment - Shipment)
                profileHierarchy:hasISBN(ExpressCongoBuyBook,
ExpressCongoBuyBookISBN) &
                InStockBook(ExpressCongoBuyBook)
                |->
                Shipment(ExpressCongoBuyShipment) &
                shippedTo(ExpressCongoBuyShipment, ExpressCongoBuyAcctID) &
                shippedBook(ExpressCongoBuyShipment, ExpressCongoBuyBook)))

    define atomic process CreateAcct(
       inputs: (CreateAcctInfo - AcctInfo),
       outputs: (CreateAcctOutput - AcctID))

    define atomic process LocateBook(
       inputs: (LocateBookBookName - xsd:string),
       outputs: (LocateBookOutput - LocateBookOutputType),
       result: (profileHierarchy:title(LocateBook_aBook, LocateBookBookName) &
                OutOfStockBook(LocateBook_aBook)
                |->
                (LocateBookOutput = NotifyBookOutOfStock)),
       result: (forall (LocatedBook - profileHierarchy:Book)
                profileHierarchy:title(LocatedBook, LocateBookBookName) &
                InStockBook(LocatedBook)
                |->
                profileHierarchy:ISBN(LocateBookOutput)))

    define atomic process SpecifyDeliveryDetails(
       inputs: (DeliveryAddress - xsd:string
                PackagingSelection - PackagingType
                DeliveryTypeSelection - DeliveryType))

    define composite process SignInAlternatives(
       inputs: (SignInAlternativesCreateAcctInfo - AcctInfo
                SignInAlternativesSignInData - SignInData),
       outputs: (SignInAlternativesAcctID - AcctID),
       result: (NonExistingAcct(SignInAlternativesSignInData)
                |->
                output(SignInAlternativesAcctID <=
CreateAcctSequencePerform.CreateAcctSequenceCreateAcctOutput)),
       result: (hasAcctID(SignInAlternativesSignInData,
SignInAlternativesAcctID)
                |->
                output(SignInAlternativesAcctID <=
SignInSequencePerform.SignInSequenceAcctID)))
    {
       CreateAcctSequencePerform :: perform
CreateAcctSequence(CreateAcctSequenceCreateAcctInfo <=
SignInAlternativesCreateAcctInfo);?
       SignInSequencePerform :: perform
SignInSequence(SignInSequenceSignInInfo <= SignInAlternativesSignInData)
    }

    define composite process CreateAcctSequence(
       inputs: (CreateAcctSequenceCreateAcctInfo - AcctInfo),
       outputs: (CreateAcctSequenceCreateAcctOutput - AcctID),
       result: (output(CreateAcctSequenceCreateAcctOutput <=
CreateAcctPerform.CreateAcctOutput)))
    {
       CreateAcctPerform :: perform CreateAcct(CreateAcctInfo <=
CreateAcctSequenceCreateAcctInfo);
       LoadUserProfilePerform1 :: perform LoadUserProfile()
    }

    define composite process SignInSequence(
       inputs: (SignInSequenceSignInInfo - SignInData),
       outputs: (SignInSequenceAcctID - AcctID))
    {
       SignInPerform :: perform SignIn(SignInInfo <= SignInSequenceSignInInfo);
       LoadUserProfilePerform :: perform LoadUserProfile()
    }

    define composite process FullCongoBuy(
       inputs: (FullCongoBuySignInData - SignInData
                FullCongoBuyDeliveryTypeSelection - DeliveryType
                FullCongoBuyCreditCardNumber - xsd:decimal
                FullCongoBuyPackagingSelection - xsd:string
                FullCongoBuyCreateAcctInfo - AcctInfo
                FullCongoBuyBookName - xsd:string
                FullCongoBuyCreditCardExpirationDate - xsd:gYearMonth
                FullCongoBuyCreditCardType - CreditCardType
                FullCongoBuyDeliveryAddress - xsd:string),
       outputs: (FullCongoBuyOutput -
owl-s:CongoProcess.owlFullCongoBuyOutputType
                 FullCongoBuyCreateAcctOutput - AcctID),
       result: (profileHierarchy:title(aBook, FullCongoBuyBookName) &
                OutOfStockBook(aBook)
                |->
                output(FullCongoBuyOutput <=
LocateBookPerform.LocateBookOutput)),
       result: (forall (FullCongoBuyShipment - Shipment)
                profileHierarchy:title(aBook, FullCongoBuyBookName) &
                InStockBook(aBook)
                |->
                output(FullCongoBuyCreateAcctOutput <=
CongoBuyBookPerform.CongoBuyBookCreateAcctOutput) &
                Shipment(FullCongoBuyShipment)))
    {
       LocateBookPerform :: perform LocateBook(LocateBookBookName <=
FullCongoBuyBookName);
       if( profileHierarchy:title(aBook, FullCongoBuyBookName) &
           InStockBook(aBook) )
       then
       {
          CongoBuyBookPerform :: perform
CongoBuyBook(CongoBuyBookSignInData <= FullCongoBuySignInData,
                                                      CongoBuyBookPackagingSelection
<= FullCongoBuyPackagingSelection,
                                                      CongoBuyBookDeliveryTypeSelection
<= FullCongoBuyDeliveryTypeSelection,
                                                      CongoBuyBookCreditCardNumber
<= FullCongoBuyCreditCardNumber,
                                                      CongoBuyBookISBN <=
LocateBookPerform.LocateBookOutput,
                                                      CongoBuyBookCreditCardExpirationDate
<= FullCongoBuyCreditCardExpirationDate,
                                                      CongoBuyBookCreditCardType
<= FullCongoBuyCreditCardType,
                                                      CongoBuyBookDeliveryAddress
<= FullCongoBuyDeliveryAddress,
                                                      CongoBuyBookCreateAcctInfo
<= FullCongoBuyCreateAcctInfo)
       }
    }

    define composite process CongoBuyBook(
       inputs: (CongoBuyBookDeliveryTypeSelection - DeliveryType
                CongoBuyBookDeliveryAddress - xsd:string
                CongoBuyBookPackagingSelection - PackagingType
                CongoBuyBookCreditCardExpirationDate - time-entry:Instant
                CongoBuyBookCreateAcctInfo - AcctInfo
                CongoBuyBookISBN - profileHierarchy:ISBN
                CongoBuyBookCreditCardNumber - xsd:string
                CongoBuyBookSignInData - SignInData
                CongoBuyBookCreditCardType - CreditCardType),
       outputs: (CongoBuyBookCreateAcctOutput - AcctID),
       result: (output(CongoBuyBookCreateAcctOutput <=
BuySequencePerform.BuySequenceAcctID)))
    {
       BuySequencePerform :: perform
BuySequence(BuySequenceCreditCardExpirationDate <=
CongoBuyBookCreditCardExpirationDate,
                                                 BuySequenceCreateAcctInfo
<= CongoBuyBookCreateAcctInfo,
                                                 BuySequenceSignInData <=
CongoBuyBookSignInData,
                                                 BuySequenceCreditCardNumber
<= CongoBuyBookCreditCardNumber,
                                                 BuySequenceCreditCardType
<= CongoBuyBookCreditCardType,
                                                 BuySequenceBookISBN <=
CongoBuyBookISBN);
       SpecifyDeliveryDetailsPerform :: perform
SpecifyDeliveryDetails(PackagingSelection <= CongoBuyBookPackagingSelection,
                                                                       DeliveryTypeSelection
<= CongoBuyBookDeliveryTypeSelection,
                                                                       DeliveryAddress
<= CongoBuyBookDeliveryAddress);
       FinalizeBuyPerform :: perform FinalizeBuy()
    }

    define composite process BuySequence(
       inputs: (BuySequenceCreditCardNumber - xsd:decimal
                BuySequenceCreditCardExpirationDate - time-entry:Instant
                BuySequenceSignInData - SignInData
                BuySequenceCreateAcctInfo - AcctInfo
                BuySequenceBookISBN - profileHierarchy:ISBN
                BuySequenceCreditCardType - CreditCardType),
       outputs: (BuySequenceAcctID - AcctID),
       result: (output(BuySequenceAcctID <=
SignInAlternativesPerform.SignInAlternativesAcctID)))
    {
       PutInCartPerform :: perform PutInCart(PutInCartBookISBN <=
BuySequenceBookISBN);
       SignInAlternativesPerform :: perform
SignInAlternatives(SignInAlternativesSignInData <= BuySequenceSignInData,
                                                               SignInAlternativesCreateAcctInfo
<= BuySequenceCreateAcctInfo);
       SpecifyPaymentMethodPerform :: perform
SpecifyPaymentMethod(SpecifyPaymentMethodCreditCardExpirationDate <=
BuySequenceCreditCardExpirationDate,
                                                                   SpecifyPaymentMethodCreditCardType
<= BuySequenceCreditCardType,
                                                                   SpecifyPaymentMethodCreditCardNumber
<= BuySequenceCreditCardNumber)
    }

}

--
[To unsubscribe to this list send an email to "majdart@bbn.com"
with the following text in the BODY of the message "unsubscribe daml-process"]
Received on Tue Mar 21 14:20:25 2006

This archive was generated by hypermail 2.1.8 : Tue Mar 21 2006 - 14:20:26 EST