Conceptual Model BasedSemantic Web Services
Muhammed J. Al-MuhammedDavid W. EmbleyStephen 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)
Appointment
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
Appointment
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
Domain Ontology
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
Distanceinternal representation: realtextual 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
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
Appointment
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
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
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
Appointment
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
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
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
Appointment
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
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
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
Appointment
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
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.
Date …NextWeek(d1: Date, d2: Date)returns (Boolean)context keywords/phrases: next week | week from now | …
Distanceinternal representation : realtextual representation: ((\d+(\.\d+)?)|(\.\d+))context keywords/phrases: miles | mile | kilometers | …LessThanOrEqual(d1: Distance, “20”)returns (Boolean)context keywords/phrases: within | not more than | | ……end
@create
initialize ready
@service-request-view complete
service-request-view, unsatisified-constraints = satisfy-contraints(service-request-view, service-request-constraints)
constraint satisfaction checked
service-request-view complete
missing information
service-request-view = get-from-system(service-request-view) if (still missing values) service-request-view = get-from-user(service-request-view)
no missing information
unique satisfaction found
schedule-appointment(...)report that the appointment is scheduled
unique satisfaction not found
report that the appointment cannot be scheduled negotiation complete
@negotiation required
service-request-view = negotiate(service-request-view, unsatisfied contraints)
no constraint satisfaction
negotiation required
multiple constraints satisfaction possibilities
unique constraint satisfaction
initial service-request-view ready
@process-ontology(domain-ontology)
service-request-view = create-service-request-view(domain-ontology)service-request-constraints = create-service-request-constraints(service-request-view)
@create
initialize ready
@service-request-view complete
service-request-view, unsatisified-constraints = satisfy-contraints(service-request-view, service-request-constraints)
constraint satisfaction checked
service-request-view complete
missing information
service-request-view = get-from-system(service-request-view) if (still missing values) service-request-view = get-from-user(service-request-view)
no missing information
unique satisfaction found
schedule-appointment(...)report that the appointment is scheduled
unique satisfaction not found
report that the appointment cannot be scheduled negotiation complete
@negotiation required
service-request-view = negotiate(service-request-view, unsatisfied contraints)
no constraint satisfaction
negotiation required
multiple constraints satisfaction possibilities
unique constraint satisfaction
initial service-request-view ready
@process-ontology(domain-ontology)
service-request-view = create-service-request-view(domain-ontology)service-request-constraints = create-service-request-constraints(service-request-view)
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
Appointment
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
Appointment
Place
Insurance
Person
Name
Pediatrician
Duration
Dermatologist
Address
Cost
Date
Time
has
is atis on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"->
Auto Service Provider Auto Mechanic
Medical Service Provider Doctor
DescriptionService
Service Provider
Service-Request View Creation
Service-Request View
is at
is on
has
is with
is for
is at
is at
has
->
acceptsDermatologist
Name
AppointmentDate
Person
Time
Address
Insurance
is at
is on
has
is with
is for
is at
is at
has
->
acceptsDermatologist
Name
AppointmentDate
Person
Time
Address
Insurance
Constraint Generation
Date …NextWeek(d1: Date, d2: Date)returns (Boolean)context keywords/phrases: next week | week from now | …
Distanceinternal representation : realtextual representation: ((\d+(\.\d+)?)|(\.\d+))context keywords/phrases: miles | mile | kilometers | …LessThanOrEqual(d1: Distance, “20”)returns (Boolean)context keywords/phrases: within | not more than | | ……end
From operations: From conceptual-modelconstraints:
Applicable Boolean predicates with(computed) term arguments
Predicates with bound andfree variables
is at
is on
has
is with
is for
is at
is at
has
->
acceptsDermatologist
Name
AppointmentDate
Person
Time
Address
Insurance
is at
is on
has
is with
is for
is at
is at
has
->
acceptsDermatologist
Name
AppointmentDate
Person
Time
Address
Insurance
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)
is at
is on
has
is with
is for
is at
is at
has
->
acceptsDermatologist
Name
AppointmentDate
Person
Time
Address
Insurance
is at
is on
has
is with
is for
is at
is at
has
->
acceptsDermatologist
Name
AppointmentDate
Person
Time
Address
Insurance
Information from System
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
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
Over the Instantiated Values
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 DialogUser: I want to see a dermatologist next week; any day would
be ok for me, at 4:00 p.m. The dermatologist must bewithin 20 miles from my home and must accept my IHCinsurance.
Sys: Name (of Person) for Appointment?User: Pat JonesSys: Address (of Person) for Appointment?User: 12 Maple, Springville, UtahSys: No solutions.
Can the constraint “within 20 miles” be relaxed to “within 22 miles”?User: yesSys: One Appointment found – is it OK?
Name (of Dermatologist): Tracy WilsonAddress (of Dermatologist): 10 Main, Alpine, UtahInsurance: IHCDate: next WednesdayTime: 16:00Name (of Person): Pat JonesAddress (of Person): 12 Maple, Springville, Utah
User: yes
is at
is on
has
is with
is for
is at
is at
has
->
acceptsDermatologist
Name
AppointmentDate
Person
Time
Address
Insurance
is at
is on
has
is with
is for
is at
is at
has
->
acceptsDermatologist
Name
AppointmentDate
Person
Time
Address
Insurance
Service-Request FinalizationInsert Appointment in Database
IHCDermatologist7
10 Main, Alpine, Utah12 Maple, Springville, Utah
Tracy WilsonPat Jones
next Wednesday
Appointment87021
16:00
Person76663
22 miles apart
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