ontology aware software service agents: meeting ordinary user needs on the semantic web
DESCRIPTION
Ontology Aware Software Service Agents: Meeting Ordinary User Needs on the Semantic Web. Muhammed Al-Muhammed. Supported in part by NSF. The Challenge. Reduce information overload Find and use services. - PowerPoint PPT PresentationTRANSCRIPT
Ontology Aware Software Service Agents: Meeting Ordinary User
Needs on the Semantic Web
Muhammed Al-Muhammed
Supported in part by NSF
(2)
The Challenge
• Reduce information overload
• Find and use services
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 insurance.
(3)
Approach
• Task ontology– Domain ontology
– Process ontology
• Characteristics– Task specification: Free-form text
– Request recognition: find best task ontology
– Task execution• Specialize task ontology processes
• Execute generated code
(4)
Domain Ontology
Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->
TimeTextual representation: “[d][d]?\s*([:]\s* [d][d]?)?\s* ([A|a|P|p]\s* [.]?\s* [M|m]\s* [.]?)”…end;
(6)
Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->
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
insurance.
(7)
Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->
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
insurance.
(8)
Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->
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
insurance.
(9)
Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->
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
insurance.
(10)
Process Ontology
ready to schedule
task-view = null
report that the appointment cannot be scheduled
task-view != null
schedule-appointment(task-view.Person.Name,task-view.Service Provider.Name, task-view.Date, task-view.Time, task-view.Address);report that the appointment is scheduled;
initial-task-view ready
no missing information missing information
task-view = get-from-system(task-view); if (still missing values) task-view = ger-from-user(task-view);
@process ontology(domain ontology)
task-view = create-task-view(domain ontology);task-constraints = create-task-constraints(task-view);
ready@create
initialize
.
.
.
ready to schedule
task-view = null
report that the appointment cannot be scheduled
task-view != null
schedule-appointment(task-view.Person.Name,task-view.Service Provider.Name, task-view.Date, task-view.Time, task-view.Address);report that the appointment is scheduled;
initial-task-view ready
no missing information missing information
task-view = get-from-system(task-view); if (still missing values) task-view = ger-from-user(task-view);
@process ontology(domain ontology)
task-view = create-task-view(domain ontology);task-constraints = create-task-constraints(task-view);
ready@create
initialize
.
.
.
(11)
Task Execution
• Domainindependent subprocesses– Coded once
– Specialized for a domain
• A domaindependent subprocess– Domain execution
– Automatically generated
(12)
Domainindependent subprocesses
Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->Appointment
Place
Insurance
Service Provider
Person
NameDoctor
Pediatrician
Service Description
Duration
Medical Service Provider
Auto Service Provider Auto Mechanic
Dermatologist
Address
Cost
Date
Time
has
is at
is on
has
provides
has
accepts
hashas
"IHC"
is with
is for
is at
is at
has
"DMBA"
is at
->
Task View Creation
(13)
Domainindependent subprocesses
Task View Creation
Appointment
Place
Dermatologist
Person
Name
Address
Date
Time
is at
is on
has
hasis with
is for
is at
is at
has
is at
->Appointment
Place
Dermatologist
Person
Name
Address
Date
Time
is at
is on
has
hasis with
is for
is at
is at
has
is at
->
(14)
Domainindependent subprocesses
Task Constraints Creation
Appointment
Place
Dermatologist
Person
Name
Address
Date
Time
is at
is on
has
hasis with
is for
is at
is at
has
is at
->Appointment
Place
Dermatologist
Person
Name
Address
Date
Time
is at
is on
has
hasis with
is for
is at
is at
has
is at
->
Date …NextWeek(d1: Date, d2: Date)returns (Boolean{T,F})context keywords/phrases: next week | week from now | …
Distanceinternal representation : real;input (s: String)context keywords/phrases: miles | mile | mi | kilometers | kilometer | meters | meter | centimeter | … Within(d1: Distance, “20”)returns (Boolean {T or F})context keywords/phrases: within | not more than | | …return (d1d2)…end;
(15)
Domainindependent subprocesses
Task Constraints Creation
Taskimposed constraints:
NextWeek(d1: Date, d2: Date)
Person(x) is at Address(a1) and Dermatologist(y) is at Address(a2) and
Within(DistanceBetween(a1, a2), “20”)
i2 (Dermatologist(y) accepts Insurance(i2 ) and Equal(“IHC”, i2))
(16)
Domainindependent subprocessesObtaining Information
from the System
Task imposed constraints: NextWeek(d1: Date, d2: Date) Person(x) is at Address(a1) and Dermatologist(y) is at Address(a2) and Within(DistanceBetween(a1, a2), “20”) i2 (Dermatologist(y) accepts Insurance(i2 ) and Equal(i1, i2))
Appointment ->
Insurance
Time “4:00”
Date
Person
Address
Name
Dermatologist
(17)
Domainindependent subprocessesObtaining Information
from the System
Task imposed constraints: NextWeek(d1: Date, d2: Date) Person(x) is at Address(a1) and Dermatologist(y) is at Address(a2) and Within(DistanceBetween(a1, a2), “20”) i2 (Dermatologist(y) accepts Insurance(i2 ) and Equal(i1, i2))
Appointment ->
Dermatologist Dermatologist0 Dermatologist1
Insurance “IHC” “DMBA”
Time “4:00”
Date “5 Jan 05” “6 Jan 05”
Person
Address “Orem 600 State St.” “Lindon 12 Main St.”
Name “Dr. Carter” “Dr. Larry”
(18)
Domainindependent subprocessesObtaining Information
from a User
Task imposed constraints: NextWeek(d1: Date, d2: Date) Person(x) is at Address(a1) and Dermatologist(y) is at Address(a2) and Within(DistanceBetween(a1, a2), “20”) i2 (Dermatologist(y) accepts Insurance(i2 ) and Equal(i1, i2))
Appointment ->
Dermatologist Dermatologist0 Dermatologist1
Insurance “IHC” “DMBA”
Time “4:00”
Date “5 Jan 05” “6 Jan 05”
Person
Address “Orem 600 State St.” “Lindon 12 Main St.”
Name “Dr. Carter” “Dr. Larry”
(19)
Domainindependent subprocessesObtaining Information
from a User
Task imposed constraints: NextWeek(d1: Date, d2: Date) Person(x) is at Address(a1) and Dermatologist(y) is at Address(a2) and Within(DistanceBetween(a1, a2), “20”) i2 (Dermatologist(y) accepts Insurance(i2 ) and Equal(“IHC”, i2))
Appointment ->
Dermatologist Dermatologist0 Dermatologist1
Insurance “IHC” “DMBA”
Time “4:00”
Date “5 Jan 05” “6 Jan 05”
Person Person100
Address “Orem 600 State St.” “Lindon 12 Main St.” “Provo 300 State St.”
Name “Dr. Carter” “Dr. Larry” “Lynn Jones”
(20)
Domainindependent subprocesses
Constraint Satisfaction
Task imposed constraints: NextWeek(d1: Date, d2: Date) Person(x) is at Address(a1) and Dermatologist(y) is at Address(a2) and Within(DistanceBetween(a1, a2), “20”) i2 (Dermatologist(y) accepts Insurance(i2 ) and Equal(“IHC”, i2))
Appointment ->
Dermatologist Dermatologist0 Dermatologist1
Insurance “IHC” “DMBA”
Time “4:00”
Date “5 Jan 05” “6 Jan 05”
Person Person100
Address “Orem 600 State St.” “Lindon 12 Main St.” “Provo 300 State St.”
Name “Dr. Carter” “Dr. Larry” “Lynn Jones”
(21)
Domainindependent subprocesses
Constraint Satisfaction
Person(Person100) is at Address(“Provo 300 State St.”) and Dermatologist(Dermatologist0) is at Address(“Orem 600 State St.”) and Within(DistanceBetween(“Provo 300 State St.”, “Orem 600 State St.”), “20”) (Dermatologist(Dermatologist0) accepts Insurance(“IHC” ) and Equal(“IHC”,“IHC”) or Dermatologist(Dermatologist0) accepts Insurance(“DMBA”) and Equal(“IHC”,“DMBA”))
Person(Person100) is at Address(“Provo 300 State St.”) and Dermatologist(Dermatologist1) is at Address(“Linden 12 Main St.”) and Within(DistanceBetween(“Provo 300 State St.”, “Lindon 12 Main St.”), “20”) (Dermatologist(Dermatologist1) accepts Insurance(“DMBA”) and Equal(“IHC”,“DMBA”))
(22)
Domainindependent subprocesses
Constraint Satisfaction
Appointment7
Dermatologist0
“4:00” “5 Jan 05”
Person100
“Orem 600 State St.” “Provo 300 State St.”
“Dr. Carter” “Lynn Jones”
“IHC” “DMBA”
Task imposed constraints: Person(Person100) is at Address((“Provo 300 State St.”) and Dermatologist(Dermatologist0) is at Address(“Orem 600 State St.”) and Within(DistanceBetween(“Provo 300 State St.”, “Orem 600 State St.”), “22”)
(23)
Domainindependent subprocesses
Negotiation
Appointment7
Dermatologist0
“4:00” “5 Jan 05”
Person100
“Orem 600 State St.” “Provo 300 State St.”
“Dr. Carter” “Lynn Jones”
“IHC” “DMBA”
Task imposed constraints: Person(Person100) is at Address((“Provo 300 State St.”) and Dermatologist(Dermatologist0) is at Address(“Orem 600 State St.”) and Within(DistanceBetween(“Provo 300 State St.”, “Orem 600 State St.”), “22”)
(24)
DomainDependent Subprocess
"Dr. Carter" "Lynn Jones"
Dermatologist0 "IHC" "DMBA"
Appointment7 "4:00""5 Jan 05"
Person100
"Orem 600 State St." "Provo 300 State St."
"Dr. Carter" "Lynn Jones"
Dermatologist0 "IHC" "DMBA"
Appointment7 "4:00""5 Jan 05"
Person100
"Orem 600 State St." "Provo 300 State St."
Date(“28 Dec 04”) and NextWeek(“28 Dec 04”, “5 Jan 05”)Person(Person100) is at Address(“Provo 300 State St.”) and Dermatologist(Dermatologist0) is at Address(“Orem 600 State St.”) and Within(DistanceBetween(“Provo 300 State St.”, “Orem 600 State St.”), “22”) i2 (Dermatologist(Dermatologist0) accepts Insurance(i2) and Equal(“IHC”, i2))