the markup of Web services in DAML Network Computing Lab

Document Sample
the markup of Web services in DAML Network Computing Lab Powered By Docstoc
					Semantic Web Services

         Jun. 2003.

   Presentation: Y.G. Ha

                           1 / 20
• The original paper “Semantic Web Services”
  – Proposes the markup of Web services in DAML
    which enables a wide variety of agent
    technologies for automated Web services
  – Written by Sheila A. McIlraith, Tran Cao Son
    and Honglei Zeng (Stanford Univ.)
  – Appeared in IEEE Intelligent Systems, Mar.

                                             2 / 20
         Preface (Cont’d)
• The original paper is out of date …
  – The markup is being standardized as
    DAML-S today (currently v0.9b)
  – Sheila McIlraith is one of the authors of
  – DAML: DARPA Agent Markup Language
  – DAML-S: DAML Services

                                           3 / 20
• Web ontology
• Semantic Web services
  – Focused on DAML-S
• The challenge

                          4 / 20
          Web Ontology Languages
   1992      1998             1999                 2000                                     2001         2002      2003

                                      Define vocabularies             OIL

                                                                Extend                DAML
                 XML               RDF               RDFS     vocabularies                                    OWL


                                                                                                      For Web    OWL-S


                          Extend HTML tags
                       for semantic description                                              This
          HTML                                         SHOE                                 paper
                                                                                                          5 / 20
                Web Ontology
• Ontology
   – A knowledge representation
      • Concepts
      • Relationships: is-a, is-part-of, …
   – Representation scheme
      • Frames, semantic network, logic programs, …
• Web ontology
   – Ontology of Web resources
      • Semantic markup to annotate Web resources
   – Web ontology languages
      • Classes = Concepts
      • Properties = Relations
      • RDF-based
          – DAML+OIL (DARPA)
          – OWL (W3C)

                                                      6 / 20
           A DAML Ontology Example
<rdf:RDF                                                               <daml:DatatypeProperty rdf:ID="age">
  xmlns:rdf =""               <rdf:type
  xmlns:rdfs=""                   rdf:resource=""/>
  xmlns:daml=""                     <rdfs:domain rdf:resource="#Person"/>
  xmlns:xsd =""                      <rdfs:range
>                                                                      rdf:resource=""
                                                                       /> </daml:DatatypeProperty>
<daml:Ontology rdf:about="">                                           …
 <daml:versionInfo>$Id: daml+oil-ex.daml,v 1.9 $</daml:versionInfo>    <daml:Class rdf:ID="Person">
 <rdfs:comment>                                                          <rdfs:subClassOf rdf:resource="#Animal"/>
  An example ontology, with data types taken from XML Schema
 </rdfs:comment>                                                        <rdfs:subClassOf>
</daml:Ontology>                                                         <daml:Restriction daml:cardinality="1">
                                                                           <daml:onProperty rdf:resource="#hasFather"/>
<daml:Class rdf:ID="Animal">                                               <daml:toClass rdf:resource="#Male"/>
 <rdfs:label>Animal</rdfs:label>                                         </daml:Restriction>
</daml:Class>                                                           </rdfs:subClassOf>

<daml:Class rdf:ID="Male">                                              <rdfs:subClassOf>
 <rdfs:subClassOf rdf:resource="#Person"/>                                <daml:Restriction>
</daml:Class>                                                              <daml:onProperty rdf:resource="#shoesize"/>
<daml:Class rdf:ID="Female">                                              </daml:Restriction>
  <rdfs:subClassOf rdf:resource="#Person"/>                             </rdfs:subClassOf>
  <daml:disjointWith rdf:resource="#Male"/>                            </daml:Class>
</daml:Class>                                                          …
...                                                                    <Male rdf:ID=“Cain">
<daml:DatatypeProperty rdf:ID="shoesize">                               <rdfs:label>Cain</rdfs:label>
  <rdf:type                                                             <rdfs:comment>Cain is a person.</rdfs:comment>
rdf:resource=""/>    <age><xsd:integer rdf:value="13"/></age>
  <rdfs:domain rdf:resource="#Person"/>                                 <shoesize><xsd:decimal rdf:value="9.5"/></shoesize>
  <rdfs:range                                                           <hasFather rdf:resource=“#Adam”/>
rdf:resource=""/>           </Male>
                                                                                                                              7 / 20
               Semantic Web
• Today’s Web
  –   HTML-based
  –   Tags for presentation layout
  –   For human interpretation
  –   Search HTML pages for a given keyword according to
      presentation layout
• Semantic Web
  –   Ontology-based
  –   Annotate Web documents based on Web ontologies
  –   Agent understandable semantics
  –   Using AI technology: reasoning about Web ontologies

                                                        8 / 20
        Web Service Ontology
•   Ontology of Web services
    – Define markup for describing Web services
    – Is a Web ontology
•   Domain-independent ontology (upper ontology)
    – DAML-S
        • Markup for service profile: What the service does (IOPEs)
        • Markup for service modeling: How it works (process, param., sequence, …)
        • Markup for service grounding: How to access it (protocol, messages, …)
•   Domain-specific ontology
    – Based on upper ontology
    – Domain-dependent knowledge on services
    – Service class “BookSelling”
        • Subclass of “E_Commerce” which is subclass of “Profile” in DAML-S
        • Its detailed profile properties, process modeling and grounding information
          is also described in DAML-S markup

                                                                                 9 / 20
              A BookSelling Service



profileHierarchy:Information_Service                profileHierarchy:E_Commerce

                             profileHierarchy:BookSelling           profileHierarchy:AirlineTicketing


                                                                                         10 / 20
      A BookSelling Service Profile
<rdf:RDF xmlns:rdf=""                   <profile:ParameterDescription rdf:ID="BookTitle">
  xmlns:rdfs=""                               <profile:parameterName>bookTitle</profile:parameterName>
  xmlns:daml=""                               <profile:restrictedTo rdf:resource="" />
  xmlns:service=""            <profile:refersTo rdf:resource="
  xmlns:process=""         s/0.9/CongoProcess.daml#bookName" />
  xmlns:profile=""            </profile:ParameterDescription>
  xmlns:profileHierarchy="                     </profile:input>
s/0.9/ProfileHierarchy.daml#"                                                   …
  xmlns:xsd=""                              <profile:output>
  xmlns:congoService="                           <profile:ParameterDescription rdf:ID="EReceipt">
s/0.9/CongoService.daml#"                                                          <profile:parameterName>EReceipt</profile:parameterName>
  xmlns:congoProcess="                           <profile:restrictedTo rdf:resource="
s/0.9/CongoProcess.daml#“                                                       s/0.9/CongoProcess.daml#EReceipt" />
  xmlns="">              <profile:refersTo rdf:resource="
                                                                                s/0.9/CongoProcess.daml#congoBuyReceipt" />
<daml:Ontology rdf:about="">                                                       </profile:ParameterDescription>
 <daml:versionInfo>$Id: CongoProfile.daml,v 1.21 $</daml:versionInfo>            </profile:output>
 <rdfs:comment>DAML-S Coalition: CongoBuy Example for DAML-S release            …
0.9</rdfs:comment>                                                               <profile:precondition>
</daml:Ontology>                                                                   <profile:ParameterDescription rdf:ID="AcctExists">
<profileHierarchy:BookSelling rdf:ID="Profile_Congo_BookBuying_Service">           <profile:restrictedTo rdf:resource="
 <service:presentedBy rdf:resource="          s/0.9/CongoProcess.daml#AcctExists" />
s/0.9/CongoService.daml#ExpressCongoBuyService" />                                 <profile:refersTo rdf:resource="
 <profile:serviceName>Congo_BookBuying_Agent</profile:serviceName>              s/0.9/CongoProcess.daml#congoBuyAcctExistsPrecondition" />
 <profile:textDescription>This agentified service provides the opportunity to      </profile:ParameterDescription>
browse a book selling site and buy books there</profile:textDescription>         </profile:precondition>
 <profile:contactInformation>                                                   …
   <profile:Actor rdf:ID="CongoBuy_contacts">                                    <profile:effect>
    <profile:name>ExpressCongoBuy</profile:name>                                    <profile:ParameterDescription rdf:ID="BuyEffectType">
    <profile:phone>412 268 8780</profile:phone>                                     <profile:parameterName>BuyEffectType</profile:parameterName>
    <profile:email></profile:email>                               <profile:restrictedTo rdf:resource="
    <profile:physicalAddress>somewhere 2, OnWeb, Montana 52321,                 s/0.9/CongoProcess.daml#BuyEffectType" />
USA</profile:physicalAddress>                                                       <profile:refersTo rdf:resource="
    <profile:webURL>                          s/0.9/CongoProcess.daml#congoBuyEffect" />
s/0.9/ExpressCongoBuy.html</profile:webURL>                                         </profile:ParameterDescription>
   </profile:Actor>                                                                </profile:effect>
 </profile:contactInformation>                                                   </profileHierarchy:BookSelling>                                   11 / 20
     Semantic Web Service
• Today’s Web service
  – Communication-level description of how it is being sent
    (messages and protocols using XML)
  – Focused on improving service discovery and execution
  – Standards like UDDI, SOAP, WSDL and ebXML
  – Microsoft .NET, SUN ONE, …
• Semantic Web service
  – Semantic-level description of what is being sent based
    on Web service ontology: richer level of description
  – More sophisticated interactions and reasoning at the
    agent or application level
  – Automated Web services including automatic service
    composition and interoperation

                                                       12 / 20
Semantic Web Service

                Upper ontology
                 like DAML-S

                                       Distributed KB
                                        of services


                        Reason about
                        Web services

                                   13 / 20
Automatic Service Discovery
•   Locating Web services providing a particular service with requested
     – “Find a service that sells airline tickets between San Francisco and
       Toronto and that accepts payment by Diner’s Club credit card”
•   Today’s Web service
     – The user must perform this task by using search engine and navigating
       discovered sites
•   Semantic Web service
     – Necessary information is specified as semantic markup
     – An agent or ontology-enabled search engine does the task
•   DAML-S markup for service discovery
     – profile:serviceName, profile:textDescription, profile:serviceCategory,
       profile:webURL, profile:physicalAddress, profile:input, profile:output,
       profile:precondition, profile:effect, …

                                                                          14 / 20
Automatic Service Execution
• Automatically invoking an identified Web service
   – “Buy me an airline ticket from on UAL
     Flight 1234 from San Francisco to Toronto on 3 March”
• Today’s Web service
   – The user must go to the Web site, fill out a form and click a
     button to execute the service
   – Or might send an http request directly to the service URL with
     the appropriate parameters encoded
• Semantic Web service
   – The markup tells the agent what input is necessary, what
     information will be returned, and how to execute
• DAML-S markup for service execution
   – process:input, process:output, process:precondition,
     process:effect, process:Iterate, process:Sequence, process:If-
     Then-Else, …

                                                                15 / 20
Automatic Service Composition
•   Automatic selection, composition, and interoperation of appropriate Web
    services to perform a task
•   Given a high-level description of the task’s objective
     –   “Make the travel arrangements for my IJCAI 2001 conference trip”
•   Today’s Web service
     –   The user must select the Web services, manually specify the composition, and
         provide the input at choice points
•   Semantic Web service
     –   The information necessary to select, compose and respond to services is
         encoded at the service Web sites as semantic markup
     –   An agent manipulates this markup together with a specification of the task’s
         objectives and user’s preferences, to achieve the task automatically
•   DAML-S markup for service composition
     –   process:AtomicProcess, process:SimpleProcess, process:CompositeProcess,
         process:input, process:output, process:precondition, process:effect,
         process:whileProcess, process:Sequence, process:Parallel, process:If-Then-
         Else, …

                                                                                    16 / 20
    Ontology Is Not Enough
• How to represent constraints or preferences
   – Constraints are in forms of rules
   – Such as “Teenager(?X)  AgeOf(?X) ≥ 10 ∧ AgeOf(?X)
     < 20”
• DAML(OWL) is based on DL(Description Logic)
   – DL is suitable to represent network of concepts but not
• Need rules layer on top of ontology
   – Rules provide more compelling syntax and further
     expressive power for non-classification oriented
     information (eg. service process modeling)
   – Tradeoff: expressive power vs. tractability

                                                         17 / 20
• Markup for rules
  – Based on DAML
  – Formerly known as DAML-L
  – Based on another logic system
    • HL (Horn Logic)
  – Current status
    • RuleML as point of departure?
    • Still on discussion …

                                      18 / 20
               Wrapping Up
          Automatic Service   Automatic Service   Automatic Service
              Discovery           Execution         Composition


                   Domain-specific Service Ontology

               DAML-S                    DAML-Rules
                RDF + RDF Schema                                  Semantic     Stack
          XML + NS + XML Schema

Unicode                                  URI
                                                                       19 / 20
• DAML family
• Web ontology & semantic Web
• Web services
• RuleML initiative

                                                       20 / 20

Shared By: