Title: A Semantic Matchmaker for RDF/OWL-based Service Repositories
1A Semantic Matchmaker for RDF/OWL-based Service
Repositories
Building a Tool for OWL-S Service Discovery and
Composition
- Mirza Said
- National Institute of Advanced Industrial Science
and Technology (AIST) - Grid Technology Research Center
- Japan
2Outline
- Introduction
- OWL-S
- Semantic service matchmaking and main issues
- Proposed matchmaking system
- Summary and future work
3Background
- Many Web services are available in the Web
- The number is rapidly increasing
- Google, Yahoo, Amazon, B2B, and etc.
- Main issue automatic and accurate discovery of
target web services - Semantic Interoperability is a major hurdle for
Locating Services - Different terms are used for advertisements and
requests - OWL-S An ontology of service concepts for
describing the properties and capabilities of Web
services in a machine interpretable form
4OWL-S The Upper Ontology
- Consists of four main classes
- ServiceProfile for advertising and discovering
services - What organization provides the service (e.g.,
contact information) - What function the service computes (e.g., inputs
and outputs) - What characteristics the service has (e.g.,
service category)
- ProcessModel a detailed description of a
service's operation - ServiceGrounding the details of how to access
the service - Service binds three classes via three object
properties
5An OWL-S Service A Car Selling Service
- hasInput Familycar Year
- hasOutput Price
- serviceProduct Used-vehicle
- textDescription used car shop in Tokyo
Year
Price
UNSPC ontology
hasOutput
hasInput
Car-shop
serviceProduct
hasInput
textDescription
A used cars shop locating in Tokyo
6OWL-S Service Matchmaking
service repository matchmaker
provider
requester
- A provider describes advertised services using an
OWL-S compliant ontology - A requester queries the repository using the same
ontology - Repository matches the request and advertisements
and returns matched advertisements in relevance
order
7Basic Principle of Matching (Paolucci et al.
ISWC02)
FLEXIBLE MATCH by defining degree of match
between two classes/concepts
- An advertisement matches a request when
- all request outputs are matched by advertisement
outputs and - all advertisement inputs are matched by request
inputs - Guarantees that the matched service provides all
outputs requested by the requester, and that the
requester provides all input required for correct
operation to the matched service
8Degree of Match
advertisement
hasInput Familycar year hasOutput
price serviceProduct used-vehicle textDescription
used car shop in Tokyo
request
hasInput sedan year hasOutput price
service repository matchmaker
query
register
provider
requester
inR a request input inA an advertisement input
degreeOfMatch(inA, inR) ? Paolucci et.al.
ISWC02 if inRinA then Exact if inA
immediateSubclassOf inR then Exact if inA
subclassOf inR then Plug-in if inR subclassOf
inA then Subsume otherwise Fail
Exact gt Plug-in gt Subsume gt Fail
9Main Issues
- Using ontology as a service request
- Difficult to compose
- The repository usually only support simple
queries - Each matchmaking system uses a different matching
engine - Need a proprietary query engine
- Tighly-couple architecture
10Goal
Using SPARQL as the query language!!
- Propose a matchmaking mechanism that
- Enables complex service matching
- e.g, optional pattern matching
- Has a loosely-couple architecture
- Matchmaker can switch from one RDF repository to
another or send a simultaneous query to multiple
repositories - allows to use existing standard matching
engines - Not build and using another proprietary matching
engine
?SPARQL pattern matching
?Repository SPARQL query engine
?Many free SPARQL query engines are available
11SPARQL Entailments Matching
Query pattern
profilehasInput
rdftype
?profile
?in
autoSedan
RDF Graph
profilehasInput
rdftype
autoin
autop
autoHatchback
- SPARQL does not interpret RDF schema information
or entailments - (treats RDF graph purely as data)
12Basic Architecture
register
query rewriting
client interface
service requester
SPARQL query engine
OWL-S/RDF data repository
SPARQL interface
result ordering
Matchmaker
RDF Repository System
- Requester sends a SPARQL query to Matchmaker
- Matchmaker rewrites the query and sends it to an
OWL-S service (RDF) repository - Matchmaker orders the results based on the degree
of match between classes
13Why Rewriting?
Rewrite the query s.t. the results will contain
the necessary info.
SPARQL query
register
query
query
query rewriting
rewritten query
client interface
service requester
SPARQL query engine
OWL-S/RDF data repository
SPARQL interface
unordered results ordering info.
result ordering
ordered results
ordered results
Matchmaker
RDF Repository System
Need to order results based on class subsumption
but they do not contain the information necessary
for result ordering
Results are unordered
14Why Rewriting?Lack of Class Subsumption Info.
Query pattern
profilehasInput
rdftype
?profile
?in
autoSedan
Inferred graph (iGraph)
profilehasInput
rdftype
autop
autoin
autoHatchback
rdftype
rdftype
autoSedan
Query solution
No class subsumption info. Hatchback is an imm.
subclass of Sedan (prevent Exact Plug-in match
calc.)
?profile ?in
autop autoin
15Why Rewriting?Cannot Match Superclass Instances
Query pattern
profilehasInput
rdftype
?profile
?in
autoFamilycar
Inferred graph (iGraph)
profilehasInput
rdftype
autoin
autop
autoCar
rdftype
autoAutomobile
Cannot match superclass instances (prevent
Subsume match calculation)
Query solution not exist
16Why Rewriting?Lack of property inclusiveness
info.
Query pattern
profilehasInput
rdftype
?profile
?in
autoCar
Inferred graph (iGraph)
profilehasInput
rdftype
autop
autoin1
autoCar
rdftype
profilehasInput
autoyear
autoin2
Query solution
Do not know whether autop has only one input or
more (prevent Fail match calculation)
?profile ?in
autop autoin1
17Query Rewriting Basic Principle
- Rewrite the requester query such that the
matching results will include the lacking
information - Class subsumption
- Superclass instances
- Property inclusiveness
18Query Rewriting The Rules
Type-matching pattern
- Rewrite each type-matching pattern
A graph pattern that matches k values of property
p while restricting values to those from
specific classes
19(No Transcript)
20SELECT ?s WHERE ?s presents ?o. ?o hasInput ?in1,
?in2. ?in1 a Familycar. ?in2 a Toyota.
Check whether hasInput is inclusiveness. i.e.,
whether it has only two values whose types are
the superclass/subclass of Familycar and Toyota
Get the immediate superclasses and subclasses of
Familycar and Toyota (rs rdfssubclassOf)
Get superclasses and subclasses of Familycar and
Toyota and binding them to variables (rs
rdfssubclassOf)
Get hasInput instances whose values are from the
superclasses and subclasses of Familycar and
Toyota
21Extracting Info. from Binding Variables
22Service Ordering
- Service functions (service inputs outputs)
- Service characteristics (service category,
products and etc.)
23Service Ordering (Service Function)
- Given a requester query q
- ?o hasInput ?in1 , , ?inm .
- ?in1 rdftype cin1. ?inm rdftype cinm.
- A matched service instance s
- p hasInput pin1 , , pinm .
- pin1 rdftype sin1. pinm rdftype sinm.
- Degree of match for service inputs
- din(q, s) DIN(cin1, sin1) DIN(cinm, sinm)
- Note if hasInput of s in non-inclusive then Fail
- Degree of match for service outputs
- dout(q, s)DOUT(cout1, sout1) DOUT(coutn,
soutn)
24Degree of Match Calculation
DOUT(outR, outA) if outRoutA return Exact if
outR immSubclassOf outA return Exact if outR
subclassOf outA return Plug-in otherwise
return Subsume
- DIN(inR, inA)
- if inRinA return Exact
- if inR immSuperclassOf inA
- return Exact
- if inR superclassOf inA
- return Plug-in
- otherwise return Subsume
25Service Ordering (Service Characteristics)
- Given a requester query q, where p specifies a
service characteristic - ?o p ?var1 , , ?varm .
- ?var1 rdftype c1. ?varm rdftype cm.
- A matched service instance s
- psc p pc1 , , pcm .
- pc1 rdftype sc1. pcm rdftype scm.
- Degree of match for a service characteristic
- dp(q, s) DOUT(c1, sc1) DOUT(cm, scm)
- Degree of match for m properties
26Overall Scoring
- The overall scoring
- d(q, s)ax df(q, s) (1-a) x dc(q, s) ,
- where 0a1
- When df(q, s) fails d(q, s) also fails
- Can be used to order general SPARQL query results
by setting a0
27Discussion and Conclusions
- Research achievements
- Using SPARQL as the query language for service
requester - Loosely-coupled architecture of the matchmaking
system - Lighweight matchmaker
- Complex service matching requests
- Major current challenge
- How to rewrite the requester query such that the
matching results will contain the information
necessary for result ordering
28Discussion and Conclusions
- Future work
- Query rewriting rules for queries with SPARQL
UNION connecting type-matching patterns - Degree of match based on the relationship among
classes and their property classes (e.g., c2 is a
property of c1) - Query rewriting rules for extracting the
information