If-Then-Else conditions in OWL-S

Hi all,
I'm trying to carry out an exercise regarding preconditions and effects in
OWL-S.  I saw a message posted by Drew McDermott regarding preconditions and
effects at the SWS mailing list (
<BLOCKED::http://lists.w3.org/Archives/Public/public-sws-ig/2004Mar/0003.htm
l> http://lists.w3.org/Archives/Public/public-sws-ig/2004Mar/0003.html) and
I'm trying to translate what was actually proposed in that message to an
RDF.  I have an outline below but I don't know if it's correct and I
wondered if someone might have an idea about it:
 
1     <process:AtomicProcess rdf:ID="ValidateCC">

2           <process:hasInput rdf:resource="#CreditCard"/>

3           <process:hasOutput rdf:resource="#validationResult"/>

4     </process:AtomicProcess>

5

6     <process:AtomicProcess rdf:ID="Process_A"/>

7

8     <process:AtomicProcess rdf:ID="Process_B"/>

9

10    <owl:Class rdf:ID="CreditCard"/>

11

12    <owl:Class rdf:ID="ValidCC">

13          <owl:oneOf rdf:parsetype="Collection"/>

14                <owl:Class rdf:ID="valid"/>

15                <owl:Class rdf:ID="invalid"/>

16                <owl:Class rdf:ID="notSet"/>

17          </owl:oneOf>

18    </owl:Class>

19

20    <ValidCC rdf:ID="validationResult">

21          <rdf:value rdf:resource="#notSet"/>

22    </ValidCC>

23

24    <process:Condition rdf:ID="validConditon">

25          <Atomic-Formula>

26                <rdf:predicate rdf:resource="&math;#equalTo"/>

27                <ParameterInst psParam="validationResult" 

28                                        i-or-o="&owl-s;#in" 

29                                        psStep="inputValidCC_stepTrue"/>

30                <rdf:subject rdf:resource="#validationResult"/>

31                <rdf:object rdf:resource="#valid"/>

32          </Atomic-Formula>

33    </process:Condition>

34

35    <process:Condition rdf:ID="invalidCondition">

36          <Atomic-Formula>

37                <rdf:predicate rdf:resource="&math;#equalTo"/>

38                <ParameterIns psParam="validationResult" 

39                                     i-or-o="&owl-s;#in" 

40                                     psStep="inputValidCC_stepFalse"/>

41                <rdf:subject rdf:resource="#validationResult"/>

42                <rdf:object rdf:resource="#invalid"/>

43          </Atomic-Formula>

44    </process:Condition>

45    <TagBind>

46          <TagBound>

47                <tagName xsd:datatype="#CreditCard">inputCC_step</tagName>

48                <tagName
xsd:datatype="#ValidCC">outputValidCC_step</tagName>

49                <tagName
xsd:datatype="#ValidCC">inputValidCC_stepTrue</tagName>

50                <tagName
xsd:datatype="#ValidCC">inputValidCC_stepFalse</tagName>

51          </TagBound>

52          <process>

53                <process:Sequence>

54                      <process:components rdf:parsetype="Collection">

55                            <Call>

56                                  <tag
xsd:datatype="#CreditCard">inputCC_step</tag>

57                                  <callee rdf:resource="#ValidateCC"/>

58                                  <tag
xsd:datatype="#ValidCC">outputValidCC_step</tag>

59                                  <process:ConditionalOutput>

60                                        <tag xsd:datatype="#ValidCC">

61                                              inputValidCC_stepTrue

62                                        </tag>

63                                        <process:coCondition
rdf:resource="#validCondition">

64                                        <process:ceEffect
rdf:resource="#valid"/>

65                                  </process:ConditionalOutput>

66                                  <process:ConditionalOutput>

67                                        <tag xsd:datatype="#ValidCC">

68                                              inputValidCC_stepFalse

69                                        </tag>

70                                        <process:coCondition 

71
rdf:resource="#invalidCondition">

72                                        <process:ceEffect
rdf:resource="#invalid"/>

73                                  </process:ConditionalOutput>

74                            </Call>

75                      </process:components>

76                      <flow>

77                            <DataFlow>

78                                  <source>

79                                        <ParameterInst
psParam="validationResult" 

80
i-or-o="&owl-s;#out" 

81
psStep="outputValidCC_step"/>

82                                  </source>

83                                  <destination>

84                                        <ParameterInst
psParam="validationResult" 

85
i-or-o="&owl-s;#in" 

86
psStep="inputValidCC_stepTrue"/>

87                                        <ParameterInst
psParam="validationResult" 

88
i-or-o="&owl-s;#in" 

89
psStep="inputValidCC_stepFalse"/>

90                                  </destination>

91                            </DataFlow>

92                      </flow>                                   

93                </process:Sequence>

94                <process:If-Then_Else>

95                      <process:ifCondition
rdf:resource="#validCondition"/>

96                      <process:then>

97                            <process:Sequence>

98                                  <process:components
rdf:parsetype="Collection">

99                                        <Call>

100                                             <callee
rdf:resource="#Process_A"/>

101                                       </Call>

102                                 </process:components>

103                           </process:Sequence>

104                     </process:then>

105                     <process:else>

106                           <process:Sequence>

107                                 <process:components
rdf:parsetype="Collection">

108                                       <Call>

109                                             <callee
rdf:resource="#Process_B"/>

110                                       </Call>

111                                 </process:components>

112                           </process:Sequence>

113                     </process:else>

114         </process>

115   </TagBind>

 

Thanks for any help

James

Received on Tuesday, 30 March 2004 16:35:50 UTC