The approach below is to replace the ParameterDefinition in the current specification with the =oslc:Property= value type. It seems to provide all of the concepts needed: "required-ness", default values, etc. Everything except the actual name of the parameter itself - and it seems that dcterms:title
could be used for this value. For this proposal, a new attribute oslc_auto:parameterName
is used. This will be a point for discussion.
To convert the sample below to XML, copy/paste it here: http://www.rdfabout.com/demo/validator/ and use Input Format of Turtle.
#Example Automation Plan and Automation Request with parameters @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix dcterms: <http://purl.org/dc/terms/>. @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix oslc: <http://open-services.net/ns/core#>. @prefix oslc_auto: <http://open-services.net/ns/auto#>. # Example of an automation plan with 2 parameters: required string and optional enumerated integer <http://example.org/autoPlans/plan1> dcterms:title "Automation Plan 1"; dcterms:identifier "1"; rdf:type oslc_auto:AutomationPlan; oslc_auto:parameterDefinition _:parm1; oslc_auto:parameterDefinition _:parm2. # Example of a required string parameter with a default value _:parm1 rdf:type oslc:Property; dcterms:title "String Parameter"; dcterms:description "This is a simple string parameter with a default value"; oslc:name "parameter"; oslc_auto:parameterName "StringParm1" oslc:occurs "http://open-services.net/ns/core#Exactly-one"; oslc:propertyDefinition oslc_auto:ParameterInstance; oslc:valueType "http://www.w3.org/2001/XMLSchema#string"; oslc:defaultValue "Hello World". # Example of an optional integer parameter with enumerated allowed values _:parm2 rdf:type oslc:Property; dcterms:title "Integer Enumeration Parameter"; dcterms:description "This is an integer enumeration with allowed values 1-4"; oslc_auto:parameterName "IntEnum1" oslc:name "parameter"; oslc:occurs "http://open-services.net/ns/core#Zero-or-one"; oslc:propertyDefinition oslc_auto:ParameterInstance; oslc:valueType "http://www.w3.org/2001/XMLSchema#integer"; oslc:allowedValues :_parm2AllowedValues; oslc:defaultValue "3"^^<http://www.w3.org/2001/XMLSchema#integer>. _:parm2AllowedValues oslc:allowedValue "1"^^<http://www.w3.org/2001/XMLSchema#integer>; oslc:allowedValue "2"^^<http://www.w3.org/2001/XMLSchema#integer>; oslc:allowedValue "3"^^<http://www.w3.org/2001/XMLSchema#integer>; oslc:allowedValue "4"^^<http://www.w3.org/2001/XMLSchema#integer>. #Example automation request using the above automation plan <http://example.org/autoPlans/request1> dcterms:title "Request to execute automation plan plan1 dcterms:identifier "14456" ^^<http://www.w3.org/2001/XMLSchema#integer>; rdf:type oslc_auto:AutomationRequest; oslc_auto:executesAutomationPlan <http://example.org/autoPlans/plan1>; oslc_auto:parameter _:reqParm1; oslc_auto:parameter _:reqParm2. _:reqParm1 rdf:type oslc_auto:ParameterInstance; foaf:name "StringParm1"; rdf:value "My value for the string"^^<http://www.w3.org/2001/XMLSchema#string>. _:reqParm2 rdf:type oslc_auto:ParameterInstance; foaf:name "IntEnum1"; rdf:value "1"^^<http://www.w3.org/2001/XMLSchema#integer>.