200 likes | 440 Views
Semantic Web Services. Jun. 2003. Presentation: Y.G. Ha. Preface. 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
E N D
Semantic Web Services Jun. 2003. Presentation: Y.G. Ha
Preface • 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. 2001.
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-S • DAML: DARPA Agent Markup Language • DAML-S: DAML Services
Contents • Web ontology • Semantic Web services • Focused on DAML-S • The challenge
This paper Web Ontology Languages 1992 1998 1999 2000 2001 2002 2003 Combine vocabularies OIL Define vocabularies Revision XML RDF RDFS DAML (DAML+OIL) OWL Extend vocabularies DAML-ONT SGML OWL-S For Web services DAML-S Extend HTML tags for semantic description HTML SHOE
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)
A DAML Ontology Example <daml:DatatypeProperty rdf:ID="age"> <rdf:type rdf:resource="http://www.daml.org/2001/03/daml+oil#UniqueProperty"/> <rdfs:domain rdf:resource="#Person"/> <rdfs:range rdf:resource="http://www.w3.org/2000/10/XMLSchema#nonNegativeInteger"/> </daml:DatatypeProperty> … <daml:Class rdf:ID="Person"> <rdfs:subClassOf rdf:resource="#Animal"/> <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#hasFather"/> <daml:toClass rdf:resource="#Male"/> </daml:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <daml:Restriction> <daml:onProperty rdf:resource="#shoesize"/> <daml:minCardinality>1</daml:minCardinality> </daml:Restriction> </rdfs:subClassOf> </daml:Class> … <Male rdf:ID=“Cain"> <rdfs:label>Cain</rdfs:label> <rdfs:comment>Cain is a person.</rdfs:comment> <age><xsd:integer rdf:value="13"/></age> <shoesize><xsd:decimal rdf:value="9.5"/></shoesize> <hasFather rdf:resource=“#Adam”/> </Male> … </rdf:RDF> <rdf:RDF xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:daml="http://www.daml.org/2001/03/daml+oil#" xmlns:xsd ="http://www.w3.org/2000/10/XMLSchema#" > <daml:Ontology rdf:about=""> <daml:versionInfo>$Id: daml+oil-ex.daml,v 1.9 $</daml:versionInfo> <rdfs:comment> An example ontology, with data types taken from XML Schema </rdfs:comment> </daml:Ontology> <daml:Class rdf:ID="Animal"> <rdfs:label>Animal</rdfs:label> </daml:Class> <daml:Class rdf:ID="Male"> <rdfs:subClassOf rdf:resource="#Person"/> </daml:Class> <daml:Class rdf:ID="Female"> <rdfs:subClassOf rdf:resource="#Person"/> <daml:disjointWith rdf:resource="#Male"/> </daml:Class> ... <daml:DatatypeProperty rdf:ID="shoesize"> <rdf:type rdf:resource="http://www.daml.org/2001/03/daml+oil#UniqueProperty"/> <rdfs:domain rdf:resource="#Person"/> <rdfs:range rdf:resource="http://www.w3.org/2000/10/XMLSchema#decimal"/> </daml:DatatypeProperty>
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
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
A BookSelling Service daml:Class service:ServiceProfile profile:Profile profileHierarchy:Information_Service profileHierarchy:E_Commerce profileHierarchy:BookSelling profileHierarchy:AirlineTicketing congoProfile:Profile_Congo_BookBuying_Service
A BookSelling Service Profile <profile:input> <profile:ParameterDescription rdf:ID="BookTitle"> <profile:parameterName>bookTitle</profile:parameterName> <profile:restrictedTo rdf:resource="http://www.w3.org/2001/XMLSchema.xsd#string" /> <profile:refersTo rdf:resource="http://www.daml.org/services/daml-s/0.9/CongoProcess.daml#bookName" /> </profile:ParameterDescription> </profile:input> … <profile:output> <profile:ParameterDescription rdf:ID="EReceipt"> <profile:parameterName>EReceipt</profile:parameterName> <profile:restrictedTo rdf:resource="http://www.daml.org/services/daml-s/0.9/CongoProcess.daml#EReceipt" /> <profile:refersTo rdf:resource="http://www.daml.org/services/daml-s/0.9/CongoProcess.daml#congoBuyReceipt" /> </profile:ParameterDescription> </profile:output> … <profile:precondition> <profile:ParameterDescription rdf:ID="AcctExists"> <profile:parameterName>AcctExists</profile:parameterName> <profile:restrictedTo rdf:resource="http://www.daml.org/services/daml-s/0.9/CongoProcess.daml#AcctExists" /> <profile:refersTo rdf:resource="http://www.daml.org/services/daml-s/0.9/CongoProcess.daml#congoBuyAcctExistsPrecondition" /> </profile:ParameterDescription> </profile:precondition> … <profile:effect> <profile:ParameterDescription rdf:ID="BuyEffectType"> <profile:parameterName>BuyEffectType</profile:parameterName> <profile:restrictedTo rdf:resource="http://www.daml.org/services/daml-s/0.9/CongoProcess.daml#BuyEffectType" /> <profile:refersTo rdf:resource="http://www.daml.org/services/daml-s/0.9/CongoProcess.daml#congoBuyEffect" /> </profile:ParameterDescription> </profile:effect> </profileHierarchy:BookSelling> </rdf:RDF> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:daml="http://www.daml.org/2001/03/daml+oil#" xmlns:service="http://www.daml.org/services/daml-s/0.9/Service.daml#" xmlns:process="http://www.daml.org/services/daml-s/0.9/Process.daml#" xmlns:profile="http://www.daml.org/services/daml-s/0.9/Profile.daml#" xmlns:profileHierarchy="http://www.daml.org/services/daml-s/0.9/ProfileHierarchy.daml#" xmlns:xsd="http://www.w3.org/2001/XMLSchema.xsd#" xmlns:congoService="http://www.daml.org/services/daml-s/0.9/CongoService.daml#" xmlns:congoProcess="http://www.daml.org/services/daml-s/0.9/CongoProcess.daml#“ xmlns="http://www.daml.org/services/daml-s/0.9/CongoProfile.daml#"> <daml:Ontology rdf:about=""> <daml:versionInfo>$Id: CongoProfile.daml,v 1.21 $</daml:versionInfo> <rdfs:comment>DAML-S Coalition: CongoBuy Example for DAML-S release 0.9</rdfs:comment> </daml:Ontology> <profileHierarchy:BookSelling rdf:ID="Profile_Congo_BookBuying_Service"> <service:presentedBy rdf:resource="http://www.daml.org/services/daml-s/0.9/CongoService.daml#ExpressCongoBuyService" /> <profile:serviceName>Congo_BookBuying_Agent</profile:serviceName> <profile:textDescription>This agentified service provides the opportunity to browse a book selling site and buy books there</profile:textDescription> <profile:contactInformation> <profile:Actor rdf:ID="CongoBuy_contacts"> <profile:name>ExpressCongoBuy</profile:name> <profile:phone>412 268 8780</profile:phone> <profile:email>Bravo@Bravoair.com</profile:email> <profile:physicalAddress>somewhere 2, OnWeb, Montana 52321, USA</profile:physicalAddress> <profile:webURL>http://www.daml.org/services/daml-s/0.9/ExpressCongoBuy.html</profile:webURL> </profile:Actor> </profile:contactInformation> …
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
Semantic Web Service Framework Upper ontology like DAML-S Distributed KB of services Domain-specific ontologies Reason about Web services
Automatic Service Discovery • Locating Web services providing a particular service with requested properties • “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, …
Automatic Service Execution • Automatically invoking an identified Web service • “Buy me an airline ticket from www.acmetravel.com 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, …
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, …
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 rules • 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
DAML-Rules • 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 …
Automatic Service Discovery Automatic Service Execution Automatic Service Composition Agents Domain-specific Service Ontology DAML-S DAML-Rules Semantic Web Service Stack Wrapping Up DAML+OIL RDF + RDF Schema Semantic Web Stack XML + NS + XML Schema Unicode URI
References • DAML family • http://www.daml.org/2001/03/daml+oil-index.html • http://www.daml.org/services/ • http://www.daml.org/rules/ • Web ontology & semantic Web • http://www.w3.org/2001/sw/ • http://www.w3.org/2001/sw/WebOnt/ • Web services • http://www.w3.org/2002/ws/ • http://www.ebxml.org • http://www.uddi.org • RuleML initiative • http://www.ruleml.org