DAMLS Sematic Markup for Web Services Zhou Jiefeng
DAML-S: Sematic Markup for Web Services Zhou Jiefeng CS 595 Nov. 25 t
Outline • Introduction • Motivating task examples • Upper ontology for services • Language Specification
Introduction • Access Web resources by content rather than by keywords • Web resources ----services, not only the static information but allow one to effect some action or change in the real world • DAML (DARPA Agent Markup Language) --- A new generation of Web markup language
Introduction • Goal: enable user to locate, select, employ, compose, and monitor Webbased services automatically • Goal: establish a framework within which computer-interpretable description of the service are made and shared
Motivating task examples • Automatic Web service discovery • Automatic Web service invocastion • Automatic Web service composition and interoperation • Automatic Web service execution monitoring
Upper ontology for services • Three essential types of knowledge about a service 1. What does the service require of the user, or other agents, and provide for them? 2. How does it work? 3. How is it used?
Upper ontology for services
Language Specification Profile propertyies l l Service. Profile Service. Name, Text. Description, Contact. Information Actor Provider, Requestor Functionality Description Input, Output, Precondition, Effect,
Language Specification Profile properties l l l Parameter Description Profile Attributes Service. Parameter Quality. Rating Service. Category
Language Specification Modeling Services as Processes
Language Specification Modeling Services as Processes l The Process ---- describes a service in terms of its inputs, outputs, preconditions, effects, and maybe its component subprocesses, which enable planning, composition and agent/service interoperation l The Process control model---- allow agent to monitor the execution of a service request (proposed, not defined, yet)
Language Specification Modeling Services as Processes l Process <daml: Class rdf: ID="Process"> <rdfs: comment> The most general class of processes </rdfs: comment> <daml: disjoint. Union. Of rdf: parse. Type="daml: collection"> <daml: Class rdf: about="#Atomic. Process"/> <daml: Class rdf: about="#Simple. Process"/> <daml: Class rdf: about="#Composite. Process"/>
Language Specification Modeling Services as Processes l Process properties defination <rdf: Property rdf: ID="parameter"> <rdfs: domain rdf: resource="#Process"/> <rdfs: range rdf: resource=""http: //www. daml. org/2001/03/daml+ oil#Thing"/> </rdf: Property> <daml: Property rdf: ID="input"> <rdfs: sub. Property. Of rdf: resource="#parameter"/> <daml: range rdf: resource="http: //www. daml. org/2001/03/daml+ oil#Thing"/> </daml: Property>
Language Specification Modeling Services as Processes l Atomic. Process ---- directly invocable daml: Class rdf: ID="Atomic. Process"> <daml: sub. Class. Of rdf: resource="#Process"/> </daml: Class>
Language Specification Modeling Services as Processes l Simple. Process ---- not invocable and not associated with grounding, but as one step <daml: Class rdf: ID="Simple. Process"> <daml: sub. Class. Of rdf: resource="#Process"/> </daml: Class> <rdf: Property rdf: ID="realized. By"> <rdfs: domain rdf: resource="#Simple. Process"/> <rdfs: range rdf: resource="#Atomic. Process"/> <daml: inverse. Of rdf: resource="#realizes"/> </rdf: Property> <rdf: Property rdf: ID="expands. To"> <rdfs: domain rdf: resource="#Simple. Process"/> <rdfs: range rdf: resource="#Composite. Process"/> <daml: inverse. Of rdf: resource="#collapses. To"/> </rdf: Property>
Language Specification Modeling Services as Processes l Composite. Process ---- decomposable into other (noncomposite or composite) processes; their decomposition can be specified by using control constructs such as SEQUENCE and IF-THENELSE <daml: Class rdf: ID="Composite. Process"> <daml: intersection. Of rdf: parse. Type="daml: collection"> <daml: Class rdf: about="#Process"/> <daml: Restriction daml: cardinality="1"> <daml: on. Property rdf: resource="#composed. Of"/> </daml: Restriction> </daml: intersection. Of>
Language Specification Modeling Services as Processes l COMPOSITEPROCESS must have a composed. Of property using a CONTROLCONSTRUCT. <rdf: Property rdf: ID="composed. Of"> <rdfs: domain rdf: resource="#Composite. Process"/> <rdfs: range rdf: resource="#Control. Construct"/> </rdf: Property> <daml: Class
Language Specification Modeling Services as Processes l control construct ---- associated with components to indicate the ordering and conditional execution of the subprocesses (or control constructs) <rdf: Property rdf: ID="components"> <rdfs: comment> Holds the specific arrangement of subprocesses. </rdfs: comment> <rdfs: domain rdf: resource="#Control. Construct"/> </rdf: Property> <daml: Class rdf: ID="Process. Component"> <rdfs: comment> A Process. Component is either a Process or a Control. Construct. </rdfs: comment> <daml: union. Of rdf: parse. Type="daml: collection"> <daml: Class rdf: about="#Process"/> <daml: Class rdf: about="#Control. Construct"/> </daml: union. Of>
Language Specification Modeling Services as Processes l minimal set of control constructs ---- Sequence, Split + Join, Choice, Unordered, Condition, If-Then-Else, Iterate, Repeat-While, and Repeat-Until.
Language Specification Modeling Services as Processes Sequence: A list of Processes to be done in order. <daml: Class rdf: ID="Sequence"> <rdfs: sub. Class. Of rdf: resource="#Control. Construct"/> <rdfs: sub. Class. Of> <daml: Restriction> <daml: on. Property rdf: resource="#components"/> <daml: to. Class rdf: resource="#Process. Component. List"/> </daml: Restriction> </rdfs: sub. Class. Of> </daml: Class> l
Language Specification Modeling Services as Processes l Split : a bag of process components to be executed concurrently. <daml: Class rdf: ID="Split"> <rdfs: sub. Class. Of rdf: resource="#Control. Construct"/> <rdfs: sub. Class. Of> <daml: Restriction> <daml: on. Property rdf: resource="#components"/> <daml: to. Class rdf: resource="#Process. Component. Bag"/> </daml: Restriction> </rdfs: sub. Class. Of> </daml: Class> * No further specification about waiting or synchronization is made at this level.
Language Specification Modeling Services as Processes l Split+Join : Here the process consists of concurrent execution of a bunch of process components with barrier synchronization. * define processes that have partial synchronization
Language Specification Modeling Services as Processes l minimal set of control constructs ---- Sequence, Split + Join, Choice, Unordered, Condition, If-Then-Else, Iterate, Repeat-While, and Repeat-Until.
Language Specification Modeling Services as Processes l Unordered : Allows the process components (specified as a bag) to be executed in some unspecified order, or concurrently. 1. 2. 3. Let a, b, c, and d be atomic processes, and X, Y, and Z be composite processes: X = (Sequence a b) Y = (Sequence c d) Z = (Unordered A B) Z, then, translates to the following partial ordering: {(a; b), (c; d)} where '; ' means ``executes before'', and the possible execution sequences (total orders) include {(a; b; c; d), (a; c; b; d), (a; c; d; b), (c; d; a; b), (c; a; d; b), (c; a; b; d)}
Language Specification Modeling Services as Processes l Choice : CHOICE is a control construct with additional properties chosen and choose. From. These properties can be used both for process and execution control (e. g. , choose from choose. From and do chosen in sequence, or choose from choose. From and do chosen in parallel) as well for constructing new subclasses like ``choose at least n from m'', ``choose exactly n from m'', ``choose at most n from m'', and so on.
Language Specification Modeling Services as Processes l If-Then-Else : a control construct that has properties if. Condition, then and else holding different aspects of the IF-THEN-ELSE. Its semantics is intended as ``Test If-condition; if True do Then, if False do Else. '' <rdf: Property rdf: ID="if. Condition"> <rdfs: comment> The if condition of an if-then-else </rdfs: comment> <rdfs: domain rdf: resource="#If. Then-Else"/> <rdfs: range> rdf: resource ="#Condition" </rdfs: range> </rdf: Property> <rdf: Property rdf: ID="then"> <rdfs: domain rdf: resource="#If-Then-Else"/> <rdfs: range rdf: resource="#Process. Component"/> </rdf: Property> <rdf: Property rdf: ID="else"> <rdfs: domain rdf: resource="#If. Then-Else"/> <rdfs: range rdf: resource="#Process. Component"/> </rdf: Property>
Language Specification Modeling Services as Processes l Iterate : ITERATE is a control construct whose next. Process. Component property has the same value as the current process component. REPEAT is defined as a synonym of the ITERATE class. The repeat/iterate process makes no assumption about how many iterations are made or when to initiate, terminate, or resume. The initiation, termination or maintainance condition could be specified with a while. Condition or an until. Condition as below.
Language Specification Modeling Services as Processes l Specifying Data Flow; Parameter Bindings l Process Control Ontology l Time
Language Specification Grounding a Service to a Concrete Realization
Language Specification Resources ---- can, depending on resource type, be consumed, replenished, locked, and released. A resource token, or simply resource, is what is available to an activity.
Summary and Current Status l l Still developing, version 0. 9 until May 2003 Tools available: Web Service Composer WSDL 2 DAML-S Converter DL Mapping Tool
- Slides: 31