ontology aware software service agents: meeting ordinary user needs on the semantic web

25
Ontology Aware Software Service Agents: Meeting Ordinary User Needs on the Semantic Web Muhammed Al-Muhammed Supported in part by NSF

Upload: kenton

Post on 20-Jan-2016

25 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

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;

(5)

Task Recognition

(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))

(25)

Contributions

• Simplification of everyday task execution

• Domainindependent subprocesses

• Task ontology based system extension