Date post: | 20-Dec-2015 |
Category: |
Documents |
View: | 216 times |
Download: | 0 times |
Resolving Under Constrained andOver Constrained Systems of Conjunctive
Constraints for Service Requests
Muhammed J. Al-MuhammedDavid W. Embley
Brigham Young University
Supported by:
Outline of Presentation
The larger project Satisfying free-form service requests Resolving encountered difficulties
Focus on resolution for: Under constrained systems of constraints Over constrained systems of constraints
System demo Concluding remarks
Challenges for Web Services
Help users find and use services Reduce requirements for service specification
and resolution
I want to see a dermatologist between the 12th and 15th, at 1:00 PM or after. The dermatologist should be within 15 miles from my home and must accept my IHC insurance.
A Conceptual-Modeling Solution 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 Resolves issues (if necessary)
Doctor
Insurance
ServiceDescription
Appointment
Address
Person
Name
PediatricianDuration
Auto Mechanic
Dermatologist
Cost
Date
Time
has
is at
is on
has
provides
has
is with
is for
is at
is at
has
->
has
sells
acceptsMedical Service Provider
Insurance Salesperson
Auto Service Provider
Service Provider
Person Address
Doctor
Insurance
ServiceDescription
Appointment
Address
Person
Name
PediatricianDuration
Auto Mechanic
Dermatologist
Cost
Date
Time
has
is at
is on
has
provides
has
is with
is for
is at
is at
has
->
has
sells
acceptsMedical Service Provider
Insurance Salesperson
Auto Service Provider
Service Provider
Person Address
Domain Ontology
object set of interest
optionalmandatory
functional
Domain Ontology: Data Frames
Time…textual representation: ([2-9]|1[012]?)\s*:\s*([0-5]\d)\s*[AaPp]\s* \.?\s* [Mm]\s* \.?)TimeAtOrAfter(t1: Time, t2: Time) returns (Boolean)
contextual keywords/phrases: (at\s+)?Time\s+or\s+after|……
Address…DistanceBetweenAddresses(a1: Address, a2: Address) returns (Distance)…
Distance …
textual representation: ((\d+(\.\d+)?)|(\.\d+))…DistanceLessThanOrEqual(d1: Distance, d2: Distance) returns (Boolean)
contextual keywords/phrases: (within|not\s+more\s+than |<\s*=|…)\s+Distance…
Time…textual representation: ([2-9]|1[012]?)\s*:\s*([0-5]\d)\s*[AaPp]\s* \.?\s* [Mm]\s* \.?)TimeAtOrAfter(t1: Time, t2: Time) returns (Boolean)
contextual keywords/phrases: (at\s+)?Time\s+or\s+after|……
Address…DistanceBetweenAddresses(a1: Address, a2: Address) returns (Distance)…
Distance …
textual representation: ((\d+(\.\d+)?)|(\.\d+))…DistanceLessThanOrEqual(d1: Distance, d2: Distance) returns (Boolean)
contextual keywords/phrases: (within|not\s+more\s+than |<\s*=|…)\s+Distance…
Time…textual representation: ([2-9]|1[012]?)\s*:\s*([0-5]\d)\s*[AaPp]\s* \.?\s* [Mm]\s* \.?)TimeAtOrAfter(t1: Time, t2: Time) returns (Boolean)
contextual keywords/phrases: (at\s+)?Time\s+or\s+after|……
Address…DistanceBetweenAddresses(a1: Address, a2: Address) returns (Distance)…
Distance …
textual representation: ((\d+(\.\d+)?)|(\.\d+))…DistanceLessThanOrEqual(d1: Distance, d2: Distance) returns (Boolean)
contextual keywords/phrases: (within|not\s+more\s+than |<\s*=|…)\s+Distance…
Time…
textual representation: ([2-9]|1[012]?)\s*:\s*([0-5]\d)\s*[AaPp]\s* \.?\s* [Mm]\s* \.?) TimeAtOrAfter(t1: Time, t2: Time) returns (Boolean) contextual keywords/phrases: (at\s+)?Time\s+or\s+after|…
…Address
… DistanceBetweenAddresses(a1: Address, a2: Address) returns (Distance) …Distance
…textual representation: ((\d+(\.\d+)?)|(\.\d+))
…DistanceLessThanOrEqual(d1: Distance, d2: Distance) returns (Boolean)
contextual keywords/phrases: (within|not\s+more\s+than |<\s*=|…)\s+Distance…
Doctor
Insurance
ServiceDescription
Appointment
Address
Person
Name
PediatricianDuration
Auto Mechanic
Dermatologist
Cost
Date
Time
has
is at
is on
has
provides
has
is with
is for
is at
is at
has
->
has
sells
acceptsMedical Service Provider
Insurance Salesperson
Auto Service Provider
Service Provider
Person Address
Doctor
Insurance
ServiceDescription
Appointment
Address
Person
Name
PediatricianDuration
Auto Mechanic
Dermatologist
Cost
Date
Time
has
is at
is on
has
provides
has
is with
is for
is at
is at
has
->
has
sells
acceptsMedical Service Provider
Insurance Salesperson
Auto Service Provider
Service Provider
Person Address
I want to see a dermatologist between the 12th and 15th, at 1:00 PM or after. The dermatologist should be within 15 miles from my home and must accept my IHC insurance.
Appointment
context keywords/phrase: “appointment |want to see a |…”Time textual representation: “([2-9]|1[012]?)\s*:\s*([0-5]\d)\s*[AaPp]\s* \.?\s* [Mm]\s* \.?)” TimeAtOrAfter(t1: Time, t2: Time) returns (Boolean)
contextual keywords/phrases: (at\s+)?Time\s+or\s+after|…Date DateBetween(x1: Date, x2: Date, x3: Date) returns(Boolean) contextual keywords/phrases: between\s+the\s+Date\s+and\s+Date ….Distance textual representation: ((\d+(\.\d+)?)|(\.\d+)) context keywords/phrases: miles? | kilometers? | … DistanceLessThanOrEqual(d1: Distance, d2: Distance) returns (Boolean) contextual keywords/phrases: (within|…)\s+Distance|…
Example
Doctor
Insurance
ServiceDescription
Appointment
Address
Person
Name
PediatricianDuration
Auto Mechanic
Dermatologist
Cost
Date
Time
has
is at
is on
has
provides
has
is with
is for
is at
is at
has
->
has
sells
acceptsMedical Service Provider
Insurance Salesperson
Auto Service Provider
Service Provider
Person Address
Doctor
Insurance
ServiceDescription
Appointment
Address
Person
Name
PediatricianDuration
Auto Mechanic
Dermatologist
Cost
Date
Time
has
is at
is on
has
provides
has
is with
is for
is at
is at
has
->
has
sells
acceptsMedical Service Provider
Insurance Salesperson
Auto Service Provider
Service Provider
Person Address
I want to see a dermatologist between the 12th and 15th, at 1:00 PM or after. The dermatologist should be within 15 miles from my home and must accept my IHC insurance.
Appointment
context keywords/phrase: “appointment |want to see a |…”Time textual representation: “([2-9]|1[012]?)\s*:\s*([0-5]\d)\s*[AaPp]\s* \.?\s* [Mm]\s* \.?)” TimeAtOrAfter(t1: Time, t2: Time) returns (Boolean)
contextual keywords/phrases: (at\s+)?Time\s+or\s+after|…Date DateBetween(x1: Date, x2: Date, x3: Date) returns(Boolean) contextual keywords/phrases: between\s+the\s+Date\s+and\s+Date ….Distance textual representation: ((\d+(\.\d+)?)|(\.\d+)) context keywords/phrases: miles? | kilometers? | … DistanceLessThanOrEqual(d1: Distance, d2: Distance) returns (Boolean) contextual keywords/phrases: (within|…)\s+Distance|…
Part of this is about finding the right ontology.
Doctor
Insurance
ServiceDescription
Appointment
Address
Person
Name
PediatricianDuration
Auto Mechanic
Dermatologist
Cost
Date
Time
has
is at
is on
has
provides
has
is with
is for
is at
is at
has
->
has
sells
acceptsMedical Service Provider
Insurance Salesperson
Auto Service Provider
Service Provider
Person Address
Doctor
Insurance
ServiceDescription
Appointment
Address
Person
Name
PediatricianDuration
Auto Mechanic
Dermatologist
Cost
Date
Time
has
is at
is on
has
provides
has
is with
is for
is at
is at
has
->
has
sells
acceptsMedical Service Provider
Insurance Salesperson
Auto Service Provider
Service Provider
Person Address
Marked-Up Domain OntologyDistance
DistanceLessThanOrEqual(d1: Distance, “15”)
TimeAtOrAfter(t1: Time, “1:00 PM”)
DateBetween(x1: Date, “12th”, “15th”)
InsuranceEqual(i1: Insurance, “IHC”)
Doctor
Insurance
ServiceDescription
Appointment
Address
Person
Name
PediatricianDuration
Auto Mechanic
Dermatologist
Cost
Date
Time
has
is at
is on
has
provides
has
is with
is for
is at
is at
has
->
has
sells
acceptsMedical Service Provider
Insurance Salesperson
Auto Service Provider
Service Provider
Person Address
Doctor
Insurance
ServiceDescription
Appointment
Address
Person
Name
PediatricianDuration
Auto Mechanic
Dermatologist
Cost
Date
Time
has
is at
is on
has
provides
has
is with
is for
is at
is at
has
->
has
sells
acceptsMedical Service Provider
Insurance Salesperson
Auto Service Provider
Service Provider
Person Address
Relevant Object and Relationship Sets Identification
Dermatologist Insurance
Appointment
Address
Person
Name
Date
Time
is at
is on
has
is with
is for
is at
is at
has
->
accepts
Person Address
Dermatologist Insurance
Appointment
Address
Person
Name
Date
Time
is at
is on
has
is with
is for
is at
is at
has
->
accepts
Person Address
Relevant Object & Relationship Sets
Dermatologist(y) is at Address(z)
Appointment(x) is with Dermatologist(y)
Dermatologist Insurance
Appointment
Address
Person
Name
Date
Time
is at
is on
has
is with
is for
is at
is at
has
->
accepts
Person Address
Dermatologist Insurance
Appointment
Address
Person
Name
Date
Time
is at
is on
has
is with
is for
is at
is at
has
->
accepts
Person Address
Relevant OperationsTimeAtOrAfter(t1: Time, “1:00 PM”)
DateBetween(x1: Date, “12th”, “15th”)
InsuranceEqual(i1: Insurance, “IHC”)
DistanceLessThanOrEqual(d1: Distance, “15”)
Appointment(x0) is at Time(t1) /\ TimeAtOrAfter(t1, “1:00 PM”)
DateBetween(x1: Date, “12th”, “15th”)
InsuranceEqual(i1: Insurance, “IHC”)
DistanceLessThanOrEqual(d1: Distance, “15”)
Appointment(x0) is at Time(t1) /\ TimeAtOrAfter(t1, “1:00 PM”)
Appointment(x0) is at Date(x1) /\ DateBetween(x1, “12th”, “15th”)
Dermatologist(x1) accepts Insurance(i1) /\ InsuranceEqual(i1, “IHC”)
DistanceLessThanOrEqual(d1: Distance, “15”)
Appointment(x0) is at Time(t1) /\ TimeAtOrAfter(t1, “1:00 PM”)
Appointment(x0) is at Date(x1) /\ DateBetween(x1, “12th”, “15th”)
Dermatologist(x1) accepts Insurance(i1) /\ InsuranceEqual(i1, “IHC”)
DistanceLessThanOrEqual(d1: Distance, “15”)
Appointment(x0) is at Time(t1) /\ TimeAtOrAfter(t1, “1:00 PM”)
Appointment(x0) is at Date(x1) /\ DateBetween(x1, “12th”, “15th”)
Dermatologist(x1) accepts Insurance(i1) /\ InsuranceEqual(i1, “IHC”)
DistanceLessThanOrEqual(DistanceBetweenAddresses(a1, a2), “15”)
…Address … DistanceBetweenAddresses(a1: Address, a2:
Address) returns (Distance) …
Appointment(x0) is at Time(t1) /\ TimeAtOrAfter(t1, “1:00 PM”)
Appointment(x0) is at Date(x1) /\ DateBetween(x1, “12th”, “15th”)
Dermatologist(x1) accepts Insurance(i1) /\ InsuranceEqual(i1, “IHC”)
Dermatologist(x1) is at Address(a1) /\ Person(x2) is at Address(a2) /\
DistanceLessThanOrEqual(DistanceBetweenAddresses(a1, a2), “15”)
Generated Constraints
Appointment(x0) is with Dermatologist(x1) /\ Appointment(x0) is for Person(x2)/\ Dermatologist(x1) has Name(x3)/\ Person(x2) has Name(x4)/\ Appointment(x0) is on Date(x5) /\ DateBetween(x5, “12th”, “15th”)/\ Appointment(x0) is at Time(x6) /\ TimeAtOrAfter(x6, “1:00 PM)/\ Dermatologist(x1) is at Address(x7) /\ Person(x2) is at Address(x8)/\ DistanceLessThanOrEqual(DistanceBetweenAddresses(x7, x8), “15”) /\ Dermatologist(x1) accepts Insurance(x9) /\ InsuranceEqual(x9, “IHC”)
@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 Resolve difficulties Finalize service request
Information from System
Dermatologist Insurance
Appointment
Address
Person
Name
Date
Time
is at
is on
has
is with
is for
is at
is at
has
->
accepts
Person Address
Dermatologist Insurance
Appointment
Address
Person
Name
Date
Time
is at
is on
has
is with
is for
is at
is at
has
->
accepts
Person Address
Generated Database Query
{<x0, x1, x3, x5, x6, x7, x9> | Appointment(x0) is with Dermatologist(x1)
/\ Dermatologist(x1) has Name(x3)/\ Appointment(x0) is on Date(x5) /\ DateBetween(x5, “12th”, “15th”)/\ Appointment(x0) is at Time(x6) /\ TimeAtOrAfter(x6, “1:00 PM)/\ Dermatologist(x1) is at Address(x7) /\ Dermatologist(x1) accepts Insurance(x9) /\ InsuranceEqual(x9, “IHC”)
}
Information from User
Some variables cannot be instantiated from the database. Person(x2) Name(x4) Address(x8)
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 solution: return it as the result A few solutions: return all and ask the user
to select one Too many solutions (under constrained):
resolve No solutions (over constrained): resolve
Over the Instantiated Values
Under Constrained“I want a dodge, a 2000 or newer. The Mileage should be less
than 80,000 and the price should not exceed $15,000”
Solution Make Model Price Year Mileage
S1 Dodge Stratus 9,451.00 2004 35,808
S2 Dodge Stratus 14,995.00 2005 1,694
S3 Dodge Stratus 14,999.00 2005 27,543
S4 Dodge Stratus 2,555.00 1997 115,424
S5 Dodge Stratus 6,900.00 2001 70,000
…
…
S168 Dodge Stratus 9,975.00 2003 34,060
www.cars.com, November 2005
Over Constrained“I want a dodge, a 2000 or newer. The Mileage should be less
than 80,000 and the price should not exceed $4,000.”
Sorry No car matches your request.
www.cars.com, November 2005
Key Observations
Some (near) solutions are better than others. People specify constraints on some concepts in
a domain more often than on other concepts.
Fundamental Concepts:Reward, Penalty, and Expectation A reward is zero or a positive real number
given to a solution for satisfying a constraint. A penalty is a negative real number given to a
near solution for violating a constraint. An expectation for a concept is the probability
that a constraint for the concept will be specified.
Fundamental Concepts:Pareto Optimality
Based on dominance relations The reward for S1 is as high as the reward for S2 For at least one reward S1 has a higher reward
Dominated solutions are not Pareto optimal
Too Many Solutions:Reward-Based Ordering
Calculate rewards and combine them Order solutions, highest combined reward
first Select the top-m Pareto optimal solutions
Example
“I want a dodge a 2000 or newer. The mileage should be less than 80,000 and the price should not be more than $15,000.”
Solution Make Model Price Year Mileage---------------------------------------------------------------S1 Dodge Stratus 13,999 2005 15,775S2 Dodge Stratus 11,998 2004 23,404S3 Dodge Stratus 14,200 2005 16,008S4 Dodge Stratus 14,557 2005 16,954 S5 Dodge Stratus 10,590 2003 38,608
S1 betterThe sameS1 better
Too Many Solutions: Expectation-Based Constraint Elicitation
Associate expectations with domain concepts. Order the concepts in a domain based on their
expectations. e.g. make > price > model > …
Elicit additional constraints over unconstrained concepts. e.g. If no preferred make provided, ask for make; if
no price, ask for price; …
No Solution: Penalty-Based Ordering
Calculate penalties and combine them. Order close solutions, lowest combined
penalty first. Select the top-m Pareto optimal near
solutions. Ask if constraints can be relaxed, but only
ask about a few (so as not to be bothersome).
Example
Near Solution Insurance Distance Time Date
S1 IHC 16 1:00 PM the 19th
S2 IHC 18 1:10 PM the 19th
S3 IHC 4 12:40 PM the 19th
S4 IHC 6 12:50 PM the 19th
S5 IHC 20 3:00 PM the 19th
Near Solution
Insurance=“IHC”
Expectation: 0.4
Distance5
Expectation: 0.3
Time“1:00 PM”
Expectation: 0.8
Date=“the 20th”
Expectation: 0.9
expplty
S1 0.000 0.076 0.167 0.250 0.248
S2 0.000 0.090 0.160 0.250 0.252
S3 0.000 0.007 0.014 0.250 0.236
S4 0.000 0.007 0.007 0.250 0.233
S5 0.000 0.102 0.083 0.250 0.256
“I want to see a dermatologist on the 20th, 1:00 PM or after. The dermatologistshould be within 5 miles from my home and must accept my IHC insurance.”
Can this constraint “1:00 PM or after” be relaxed to “12:40 PM”?
Can this constraint “the 20th” be relaxed to “the 19th”?
12:40 PM the 19th
Performance Analysis(Correspondence to Human Expectations)
Tested appointment and car-purchase domains 16 human subjects
The best-5 near solutions from 19 appointments The best-5 solutions from 32 cars
Compared human selection with system selection
Performance Analysis(appointment domain)
0
0.20.4
0.60.8
11.2
1 3 5 7 9 11 13 15 17 19
The near solutions
% o
f su
bjec
ts w
ho c
hose
a n
ear
solu
tion
system
human
Performance Analysis(car-purchase domain)
0
0.2
0.4
0.6
0.8
1
1.2
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
The solutions
% o
f sub
ject
s w
ho c
hose
a s
olut
ion
System
Human
Concluding Remarks
Simplification of everyday service request specification Free-form service request Ontology-based recognition of constraints Constraint satisfaction
Resolution for under and over constrained requests Ordered expectations Ordered penalty/reward Pareto optimality Inter-observer agreement test: “Substantial Agreement”
Status of prototype implementation
www.deg.byu.edu