540 likes | 556 Views
Ontologies for the Semantic Web: Services and Events. Jerry R. Hobbs USC/ISI Marina del Rey, CA. Outline. Services: DAML-S (OWL-S) An Event Ontology for video data Time: DAML-Time Plans for a Space Ontology Ideas toward an Ontology of Information Structure
E N D
Ontologies for the Semantic Web:Services and Events Jerry R. Hobbs USC/ISI Marina del Rey, CA
Outline Services: DAML-S (OWL-S) An Event Ontology for video data Time: DAML-Time Plans for a Space Ontology Ideas toward an Ontology of Information Structure Progress toward an Ontology of Commonsense Psychology
DAML-S Acknowledgements Many slides stolen from David Martin, A few slides stolen from Terry Payne and Dieter Fensel
Motivating Tasks Automatic Web service discovery Find an airline site that accepts Diners Club Automatic Web service invocation Buy coach class United flight 347 for Sept 15 Automatic Web service composition Find the cheapest flight LAX to some Washington airport Sept 15 or 16 and buy a ticket; Rent a compact car for when I arrive; Reserve a room at the Arlington Hyatt. Automatic Web service “decomposition” Use Amazon.com to find reference Automatic Web service execution monitoring Has my credit card been charged yet? Has the ticket been mailed yet?
Intelligent Web Services Why Semantic Web Services? Thanks to Dieter Fensel (U. of Innsbruck)for use of this material Bringing the web to its full potential Web Services UDDI, WSDL, SOAP Dynamic WWW Semantic Web URI, HTML, HTTP RDF, RDF(S), OWL Static Shallow Deep
BBN: Mark Burstein CMU: Katia Sycara, Massimo Paolucci* ICSI: Srini Narayanan Maryland / College Park: Bijan Parsia Nokia: Ora Lassila Stanford KSL: Sheila McIlraith* SRI: David Martin* Southampton: Terry Payne* USC-ISI: Jerry Hobbs Yale: Drew McDermott DAML-S Web Services Coalition *Contributor to these slides
What is OWL-S? • Ontology Web Language for Services • An OWL ontology/language for (formally) describing properties and capabilities of Web services • An approach that draws on many sources • Description logic • AI planning • Workflow • Formal process modeling • Agents • Web services • http://www.daml.org/services/
DAML+OIL OWL(Ontology) RDFS (RDF Schema) RDF (Resource Description Framework) XML (Extensible Markup Language) Layered Approach to Language Development OWL-S: a major application of OWL Future versions will build upon emerging layers (e.g. DAML-Rules) OWL-S (Services) DAML-??? (Rules, FOL?)
Automation of service use by software agents Ideal: full-fledged use of services never before encountered: Discovery, selection, composition, invocation, monitoring, .. Useful in the “real world” Compatible with industry standards Incremental exploitation Enable reasoning/planning about services e.g., On-the-fly composition Integrated use with information resources Ease of use; powerful tools OWL-S Objectives
Upper Ontology of Services Ontology images compliments of Terry Payne, University of Southampton
High-level characterization/summary of a service Used for Populating service registries A service can have many profiles Automated service discovery Service selection (matchmaking) One can derive: Service advertisements Service requests Service Profile:“What does it do?”
Service Profile Non Functional Properties Functionality Description
Functional Specification of what the service provides in terms of parameters, subclassed as: preconditions inputs outputs effects Summarizes the top-level Process Service Profile: Functionality Description
Provides supporting information about the service. Service Profile: NonFunctional Properties
These include serviceName textDescription qualityRating serviceParameter serviceCategory contactInformation Service Profile: NonFunctional Properties
Class-hierarchical yellow pages Implicit capability characterization Arrangement of attributes on class hierarchy Can use multiple inheritance Relies primarily on “non-functional” properties Process summaries for planning purposes More explicit Inputs, outputs, preconditions, effects Less reliance on formal hierarchical organization Summarizes process model specs Relies primarily on functional description Service Profile: Styles of use
Exploiting Profile Hierarchies Tie in with UDDI, UNSPSC, …DL Basis for matchmakingMultiple profiles; multiple taxonomies
Process Interpretable description of service provider’s behavior Tells service user how and when to interact (read/write messages) & Process control Ontology of process state; supports status queries (stubbed out at present) Used for: Service invocation, planning/(de)composition, interoperation, monitoring All processes have Inputs, outputs, preconditions and effects Function/dataflow metaphor; action/process metaphor Composite processes Control flow Data flow Process Model:“How does it work?” Service Model“How does it work?”
Function/Dataflow Metaphor Input: Output: • customer name • origin • destination • weight • pickup date • ... • confirmation no. • ... Acme Book Truck Shipment Y truck available + valid credit card ? N • failure notification • …
Acme Book Truck Shipment AI-inspired Action/Process Metaphor Output: • confirmation no. • ... Input: • customer name • origin • destination • pickup date • ... • goods at location • if successful • credit card debited... Effect: Y truck available + valid credit card ? Preconditions: N • knowledge of • the input • ... • failure notification • … Output: <no effect> Effect:
Composite Process Output & Effects Input & Preconditions AcmeTruckShpng • confirmation no. • ... • customer name • location • car type • dates • credit card no. • ... www.acmecar.com book car service ? • failure notification • … ? • confirmation no. • ... • confirmation no. • dates • room type • credit card no. • ... www.acmehotel.com book hotel service • confirmation no. • ... ? • customer name • flight numbers • dates • credit card no. • ... www.acmeair.com book flight service ? • failure notification • … • failure notification • errror information • …
Atomic Process Example <!– Atomic Process Definition - GetDesiredFlightDetails --> <rdfs:Class rdf:ID="GetDesiredFlightDetails"> <rdfs:subClassOfrdf:resource="http://www.daml.org/Process#AtomicProcess" /> </rdfs:Class> <!– (sample) Inputs used by atomic processGetDesiredFlightDetails --> <rdf:Property rdf:ID="departureAirport_In"> <rdfs:subPropertyOfrdf:resource="http://www.daml.org/Process#input" /> <rdfs:domainrdf:resource="#GetDesiredFlightDetails" /> <rdfs:rangerdf:resource="http://www.daml.ri.cmu.edu/ont/ DAML-S/concepts.daml#Airport" /> </rdf:Property> <rdf:Property rdf:ID="outboundDate_In"> <rdfs:subPropertyOfrdf:resource="http://www.daml.org/Process#input" /> <rdfs:domainrdf:resource="#GetDesiredFlightDetails" /> <rdfs:rangerdf:resource="http://www.daml.ri.cmu.edu/ont/ DAML-S/concepts.daml#FlightDate" /> </rdf:Property> departureAirport_In Airport GetDesired Flight Details Flight Date outboundDate_In
Composite Process Example <rdfs:Class rdf:ID="BookFlight"> <rdfs:subClassOfrdf:resource="#CompositeProcess" /> <rdfs:subClassOfrdf:resource="http://www.daml.org/Process#Sequence" /> <daml:subClassOf> <daml:Restriction> <daml:onPropertyrdf:resource="http://www.daml.org/Process#components" /> <daml:toClass> <daml:subClassOf> <daml:unionOf rdf:parseType="daml:collection"> <rdfs:Classrdfs:about="#GetFlightDetails" /> <rdfs:Classrdfs:about="#GetContactDetails" /> <rdfs:Classrdfs:about="#ReserveFlight" /> <rdfs:Classrdfs:about="#ConfirmReservation" /> </daml:unionOf> </daml:subClassOf> </daml:toClass> </daml:Restriction> </daml:subClassOf> </rdfs:Class> Composite Process BookFlight Get Flight Details Get Contact Details Confirm Reservation Reserve Flight Sequence Sequence Sequence
Confirm Shipping Region truck available + valid credit card N Acme Truck Shipping Service Y expands Get Quote Get Shipping Dates Book Truck Shipment Simple and Composite Processes AcmeTruckShpng ExpandedAcmeTruckShpng
Service Grounding:“How to access it” • Implementation-specific • Message formatting, transport mechanisms, protocols, serializations of types • Service Model + Grounding give everything needed for using the service • Builds upon WSDL
OWL-S / WSDL Grounding • Web Services Description Language • Authored by IBM, Ariba, Microsoft • Focus of W3C Web Services Description WG • Commercial momentum • Specifies message syntax accepted/generated by communication ports • Bindings to popular message/transport standards (SOAP, HTTP, MIME) • Abstract “types”; extensibility elements • Complementary with OWL-S
OWL-S / WSDL Grounding OWL-S Resources/Concepts Process Model Inputs / Outputs Atomic Process Message Operation Binding to SOAP, HTTP, etc. WSDL
OWL-S / WSDL Grounding (cont’d) WSDLDocument <message …> <part …><message …> <part …> <operation …><binding …> daml-property inputX daml-property outputY owl-s-process AtomicProcess
DAML Coalition formed (February 2001) Release 0.5 (May 2001) Initial Profile & Process ontologies Release 0.6 (December 2001) Refinements to Profile & Process; Resources ontology Release 0.7 (October 2002) Initial DAML-S/WSDL Grounding; Profile, Process Model refinements; more complete examples Release 0.9 (May 2003) DAML-S OWL-S Grounding: greater generality, flexibility Initial work on expressing conditions, security More community support (contributions pages) Towards 1.0 Expressiveness issues; exceptions, lifecycle; process issues Path of Evolution
Event Ontology for Video Data (work with Ram Nevatia, USC) Some concepts Single-thread composite events Multi-thread composite events Granularity and primitive events The functionality of events An ontology of mobile objects
Motivation In a convenience store surveillance videotape, how do you tell the difference between a legitimate purchase a holdup shoplifting A language of describing the structure of event in video data for recognition and retrieval
Role of Ontology Fixes meaning of terms in common vocabulary Abstract Theory Common Vocabulary Application1 Application2 Mark-Up Language
How to Build an Ontology What types of objects are there? What are their attributes or properties? What relations can obtain between various types of objects? What possible changes are there in properties and relations? = Events
Reification of Events p(x) The state or event of p being true of or happening to x Various notation devices possible. If events are your main topic, your logic should have variables that can refer to them.
Some Terminology Properties, Attributes, Relationships An event is a change of state (e.g., location). change(p(x),q(x)), change(at(x,y),at(x,z)) An agent, state or event can cause a state or event. [change(p1(x),q1(x))] -cause-> [change(p2(y),q2(y))] An agent is an entity that can initiate a causal chain. a -cause-> [change(p(x),q(x))] An action is an event with an agent. a -cause-> [change(p(x),q(x))] John -cause-> change(at(H,A),at(H,W)) -cause-> change(intact(W),broken(W)) Agent Instrument Theme/Object
Some Terminology A process is a complex of tightly coupled events. An activity is a set of loosely coupled events and/or processes. {[change(p(x),q(x))], ....} An event is a limiting case of a process; a process is an event at a finer granularity. e1 e4 e3 e2 e5
Single-Thread Event Compositionfor Single Agents/Objects Sequence: open door; go thru; ... Iteration: walking: {move left leg; move right leg}* Alternation: take part; [toss into bin A | toss into bin B] Conditionals: take part; square? ==> toss into bin A round? ==> toss into bin B Hierarchical Composition Interruption and Resumption Similar to DAML-S Process Model
Multi-thread Events Each agent/objects executes its single-thread process. Sometimes agents/objects interact (physically). Some agents can observe other agents’/objects’ actions and events, and modify their behavior accordingly. Some agents can perform actions in order to be observed: communication. . . . . . . . . . .
Multi-thread Events:Example off & empty off & filled Blender: on blending turns on burner fills blender turns on blender Cook: Pot on Burner: off on boiling increasing temperature
Temporal Constraints Many processes have temporal constraints among component events. Topological relations: begin, inside, end, before, interval relations. part appears on conveyor belt; pick it up Duration: rhythm -- two agents keep iterations at same duration Clock and calendar: process begins at 9:00 am DAML-Time Ontology for relating events and describing their temporal properties
Granularity Coarse-grained view: PERSON CROWD Fine-grained view: person1 head person2 person3 person4 arm arm torso person5 person6 leg leg
Granularity COARSE: Complex object as single entity. FINE: Complex object as multiple independent, coordinated agents.
Granularity COARSE: Complex object as single entity. INTERMEDIATE: Complex object as single entity with parts FINE: Complex object as multiple independent, coordinated agents.
Primitive Actions Granularity-dependent, domain-dependent. Some primitive actions in visual applications: Cars: move w speed in direction, change People in indoor/outdoor surveillance: tens, not hundreds walk, look at objects, pick up and carry objects, hand objects to other persons, ... People in meetings: Gaze direction,body position, Hand gestures: deictic, iconic, “metaphorical”, ...