280 likes | 294 Views
A solution to help users find and use services while reducing requirements for service specification.
E N D
Conceptual Model BasedSemantic Web Services Muhammed J. Al-Muhammed David W. Embley Stephen W. Liddle Brigham Young University Sponsored in part by NSF (#0083127) & the Kevin and Debra Rollins Center for eBusiness (#05046)
A Challenge for Semantic Web Services • Help users find and use services • Reduce requirements for service specification I want to see a dermatologist next week; any day would be ok for me, at 4:00 p.m. The dermatologist must be within 20 miles from my home and must accept my IHC insurance.
A Conceptual-Modeling Resolution • Domain ontology • Has a single object set of interest (e.g. Appointment) • Establishes requirements for insertion of a single object into the object set of interest (e.g. requirements for making an appointment) • Has extensional recognizers (i.e. can match request to requirements) • Process ontology • Recognizes constraints • Obtains information (from DB and from user) • Satisfies constraints • Negotiates (if necessary)
Extensional Semantics included in the Domain Ontology • Augmented with data frames • A data frame specifies semantics for a concept • Its internal and external representation • Its contextual keywords or phrases • Operations along with contextual keywords or phrases
Data Frames Time … textual representation: “([2-9]|1[012]?)\s*:\s*([0-5]\d)\s*[AaPp]\s*\.?\s*[Mm]\s*\.?)” … end Distance internal representation: real textual representation: ((\d+(\.\d+)?)|(\.\d+)) context keywords/phrases: miles | mile | kilometers | … LessThanOrEqual(d1: Distance, d2: Distance) returns (Boolean) contextual keywords/phrases: within | not more than | | … … end
Domain Ontology Recognition • Objective: determine which domain ontology to use • Input: service request, domain ontologies • Output: a marked domain ontology
Appointment … context keywords/phrase: “appointment |want to see a |…” Dermatologist … context keywords/phrases: “([D|d]ermatologist) | …” I want to see a dermatologist next week; any day would be ok for me, at 4:00 p.m. The dermatologist must be within 20 miles from my home and must accept my IHC insurance.
Appointment … context keywords/phrase: “appointment |want to see a |…” Dermatologist … context keywords/phrases: “([D|d]ermatologist) | …” I want to see a dermatologist next week; any day would be ok for me, at 4:00 p.m. The dermatologist must be within 20 miles from my home and must accept my IHC insurance.
Appointment … context keywords/phrase: “appointment |want to see a |…” Dermatologist … context keywords/phrases: “([D|d]ermatologist) | …” I want to see adermatologist next week; any day would be ok for me, at 4:00 p.m. The dermatologist must be within 20 miles from my home and must accept my IHC insurance.
Appointment … context keywords/phrase: “appointment |want to see a |…” Dermatologist … context keywords/phrases: “([D|d]ermatologist) | …” I want to see adermatologistnext week; any day would be ok for me, at 4:00p.m. The dermatologist must be within 20 miles from my home and must accept my IHC insurance.
Date … NextWeek(d1: Date, d2: Date) returns (Boolean) context keywords/phrases: next week | week from now | … Distance internal representation : real textual representation: ((\d+(\.\d+)?)|(\.\d+)) context keywords/phrases: miles | mile | kilometers | … LessThanOrEqual(d1: Distance, “20”) returns (Boolean) context keywords/phrases: within | not more than | | … … end Appointment … context keywords/phrase: “appointment |want to see a |…” Dermatologist … context keywords/phrases: “([D|d]ermatologist) | …” I want to see adermatologistnext week; any day would be ok for me, at 4:00 p.m. The dermatologist must be within 20 miles from my home and must accept my IHC insurance.
Process Ontology • Create service-request view • Generate constraints • Obtain information • From system • From user • Satisfy constraints • Negotiate • Finalize service request
Domain Independence of Process Ontology • Domain-independent subprocesses • Coded once • Specialized for a domain • A domain-dependent subprocess • Fully determined (given the service request and domain ontology) • Automatically generated
Service-Request View Creation
Constraint Generation From conceptual-model constraints: From operations: Date … NextWeek(d1: Date, d2: Date) returns (Boolean) context keywords/phrases: next week | week from now | … Distance internal representation : real textual representation: ((\d+(\.\d+)?)|(\.\d+)) context keywords/phrases: miles | mile | kilometers | … LessThanOrEqual(d1: Distance, “20”) returns (Boolean) context keywords/phrases: within | not more than | | … … end Predicates with bound and free variables Applicable Boolean predicates with (computed) term arguments
Generated Constraints • Appointment(x0) is with Dermatologist(x1) Appointment(x0) is for Person(x2) • Appointment(x0) is on Date(x3) Appointment(x0) is at Time(16:00) • Dermatologist(x1) has Name(x4) Dermatologist(x1) is at Address(x5) • Dermatologist(x1) accepts Insurance(“IHC”) Person(x2) has Name(x6) • Person(x2) is at Address(x7) NextWeek(today, x3) • LessThanOrEqual(DistanceBetween(x5, x7), 20)
Generated Database Query • {<x1, x3, x4, x5> | • available appointment is with Dermatologist(x1) on Date(x3) at Time(16:00) • Dermatologist(x1) has Name(x4) Dermatologist(x1) is at Address(x5) • Dermatologist(x1) accepts Insurance(“IHC”) NextWeek(today, x3)}
Information from User • Some variables cannot be instantiated from the database. • Person(x2) • Person(x2) has Name(x6) • Person(x2) is at Address(x7) • Non-lexical values can be instantiated without particular values. • The system asks for values for lexical values. • Name (of Person) for Appointment? • Address (of Person) for Appointment?
Constraint Satisfaction Over the Instantiated Values • Exactly one: return it as the result • A few: return all and ask the user to select one • Too many: negotiate • return the best-m • ask the user to select one • if none satisfactory, the user should resubmit a new, altered query • None: negotiate • return the best-m • ask the user to select one
Negotiation • Basis for negotiation • Ordered expectations • Ordered penalty/reward • Dominated (near) solutions (Pareto optimality) • Guided user interaction
Negotiation (Too Many Solutions) • Ordered Expectations • Time > Date > Name (of Person) > Name (of Dermatologist) > Insurance > … • If no preferred time provided, ask for Time; if no Date, ask for Date; … • Ordered reward • Calculate reward • Order solutions, highest reward first • Dominated solutions • As good or better, for all inequalities, and as good, for equalities: e.g. 5 miles away is better than 15 miles away • Discard dominated solutions from reward ordering • Return the best-m for consideration
Negotiation (No Solution) • Ordered Expectations • LessThanOrEqual(DistanceBetween) < Insurance < … • First, if LessThanOrEqual(DistanceBetween) constrained, suggest relaxing; then if Insurance constrained, suggest relaxing; then … • Ordered penalty • Calculate penalty • Order near solutions, lowest penalty first • Dominated near solutions • Discard dominated near solutions from penalty ordering • Return the best-m for consideration
Example – Possible Dialog User: I want to see a dermatologist next week; any day would be ok for me, at 4:00 p.m. The dermatologist must be within 20 miles from my home and must accept my IHC insurance. Sys: Name (of Person) for Appointment? User: Pat Jones Sys: Address (of Person) for Appointment? User: 12 Maple, Springville, Utah Sys: No solutions. Can the constraint “within 20 miles” be relaxed to “within 22 miles”? User: yes Sys: One Appointment found – is it OK? Name (of Dermatologist): Tracy Wilson Address (of Dermatologist): 10 Main, Alpine, Utah Insurance: IHC Date: next Wednesday Time: 16:00 Name (of Person): Pat Jones Address (of Person): 12 Maple, Springville, Utah User: yes
Service-Request Finalization Insert Appointment in Database Dermatologist7 IHC Tracy Wilson 22 miles apart Pat Jones 10 Main, Alpine, Utah 12 Maple, Springville, Utah Appointment87021 next Wednesday 16:00 Person76663
Concluding Comments • Simplification of everyday service request specification • Conceptual model based resolution – service domain ontology • Insertion of one primary object • Plus dependent objects • Domain independent processing – service process ontology • Service-request view • Constraint generation • Constraint satisfaction (after obtaining information from database & user) • Negotiation • Status of prototype implementation www.deg.byu.edu