Advances in Engineering Software 38 (2007) 59–67 www.elsevier.com/locate/advengsoft
Ontology-based semantic matchmaking approach Gao Shu a
a,*
, Omer F. Rana b, Nick J. Avis b, Chen Dingfang
a
School of Computer Science, Wuhan University of Technology, Hubei 430063, China b School of Computer Science, Cardiff University, UK
Received 26 October 2005; received in revised form 14 March 2006; accepted 18 May 2006 Available online 22 August 2006
Abstract As a greater number of Web Services are made available, support for service discovery mechanisms become essential. Services can have quite different Quality of Service characteristics (such as their response time when given a particular set of data). A service requestor therefore requires more sophisticated approaches to find a service that meets a particular behavior, because supporting matching between a service request and properties is not straightforward. Matchmaking plays a vital role in this discovery process. We propose a novel matchmaking algorithm to effectively compute the semantic distance of concepts in an ontology. It is based on description logic formalization and reasoning, extends simple subsumption matching found in other approaches and allows match ranking. We have implemented the proposed approach and used the developed prototype in the context of service discovery in the visualization domain. 2006 Elsevier Ltd. All rights reserved. Keywords: Semantic Web; Ontology; Description logics; Matchmaking
1. Introduction The spread of Web Services as a means to support service provision reveals the need for sophisticated discovery mechanisms, such as matching service requestors with service providers, especially when services are undiscovered, new, and/or being updated often. A matchmaker plays a crucial role in this activity, and acts like a broker to assist in locating and connecting a service provider with a service requester. Generally speaking, matchmaking roughly can be divided into two categories: (1) syntactic matchmaking: which uses the structure or format of a task specification to match a requester with a provider to decide which service providers to recommend; (2) semantic matchmaking: which uses the meaning and information content of the request to match it with the meaning of the offered services. In case (2), service requesters and providers utilize an ontology
to discover similarities between two services, and determine a ‘‘semantic distance’’ between services. The motivation of this work is to investigate how Semantic and Web Services technologies can be used to make the match service advertisement with service request more effective. We pay more attention to the quality of matchmaking but do not ignore the efficiency. In particular our approach, based on ontologies and description logic (DL) formalization and reasoning, overcomes simple subsumption matching. The rest of the paper is structured as follows. Section 2 gives a brief survey of related work regarding existing matchmaking approach. Section 3 discusses the basic concept of Description Logics and the Web Ontology Language. The ontology-based semantic matchmaking algorithm is presented in Section 4. The last section draws the conclusions and future work. 2. Related work
*
Corresponding author. E-mail address:
[email protected] (G. Shu).
0965-9978/$ - see front matter 2006 Elsevier Ltd. All rights reserved. doi:10.1016/j.advengsoft.2006.05.004
The earliest matchmaker we are aware of is the ABSI (Agent-Based Software Interoperability) facilitator [1],
60
G. Shu et al. / Advances in Engineering Software 38 (2007) 59–67
which is based on the KQML (Knowledge Query and Manipulation Language) specification and uses the KIF (Knowledge Interchange Format) as the content language. The matching between the advertisement and request expressed in KIF involves a simple unification with the equality predicate. In [2], Sycara et al. defined a language called ‘‘Larks’’ for agent advertisements and requests, and presented a flexible and efficient matchmaking process. The Larks matchmaking process performs both syntactic and semantic matching. There are three types of matching in Larks: exact match (the most accurate type of match), plug-in match (a less accurate but most useful type of match), and relaxed match (the least accurate type of match). The matching process uses five different filters: context matching, profile comparison, similarity matching, signature matching and constraint matching. Different degrees of partial matching can result from utilizing different combinations of these filters. An agent-based system for information discovery and retrieval is InfoSleuth [3]. Its brokering function combines reasoning over both the syntax and semantics of agents in the domain. Agent capabilities and services are described using a common shared ontology of the attributes and the constraints which all agents can use to specify advertisements and requests to the broker. Matchmaking is then performed by a deductive database system, allowing rules to evaluate whether an expression of requirements matches a set of advertised capabilities. In [4], Tangmunarunkit et al. also proposed an ontology-based resource matching approach. They extend the InfoSleuth approach in several directions: first, they use RDF (Resource Description Framework), and secondly they focus on how ontologybased reasoning interacts with matchmaking rules. Meanwhile, they introduce background knowledge to the matchmaking process, allowing for a more flexible matchmaking procedure. In [5], Li and Horrocks introduce DAML + OIL based matchmaking, which uses a DL reasoner to compare ontology-based service descriptions. Service advertisements are expressed as class expressions. The elements of the class expressions are taken from a domain ontology and a specific service ontology. In [6–8], Colucci et al. describe a formalization of skill matching, and propose properties that should hold in a semantic-based skill matching approach. They also define an algorithm to rank matches between skills profile descriptions and present an ontology-based system which embeds a modified NeoClassic reasoner implementing the ranking algorithms. Most of the matchmaking work above (except [6–8]) are mainly to use subsumption reasoning on taxonomies of concepts to lead to the recognition of semantic matches. Compared with the Simona Colucci ’s work, our work has more generality, rather than domain-specific, and takes full advantage of the effort placed in structuring an ontology to more precisely compute the semantic distance between concepts.
3. Description logics and OWL 3.1. Description logics Description logics (DLs) are a family of knowledge representation formalisms. They are based on the notion of concepts and roles, and are mainly characterized by constructors that allow complex concepts and roles to be built from atomic ones [9]. The main benefit from these knowledge languages is that sound and complete algorithms for the subsumption and satisfiability problems can be defined. A DL reasoner solves the problems of equivalence, satisfiability and subsumption. The basic functionalities of the matchmaking service are shown in Table 1 [10]. 3.2. OWL Web Ontology Language and Prote´ge´ Ontologies play a key role in the Semantic Web. In this context, specification refers to an explicit representation by some syntactic means. In contrast to schema languages (like XML-Schema or DTDs) ontologies try to capture the semantics of a domain by deploying knowledge representation primitives, enabling a machine to (partially) understand the relationships between concepts in a domain. Additional knowledge can be captured by axioms or rules. The OWL Web Ontology Language is a language for defining and instantiating Web ontologies. OWL can be used to explicitly represent the meaning of terms in vocabularies and the relationships between those terms. Table 1 Basic terms in description logics DL expressiveness
DL syntax
Service description language
ALC, also called S when transitively closed primitive roles are included
A T ? (C D) (C D) R (C \ D) (C [ D) C "R Æ C $R Æ C
Concept Thing Nothing Subsumption Equivalence Properties Conjunction Disjunction Negation Universal role restriction Existential role restriction
N
6nR Æ T PnR Æ T =nR Æ T
Non-qualified cardinality
Q
6nR Æ C PnR Æ C =nR Æ C R
Qualified cardinality
Inverse roles
(R S) (R S) {o} $T Æ {o} D T $T Æ d "T Æ d
Subsumption of roles Equivalence of roles Nominals Value restrictions Datatype system Datatype property Existential datatype restriction Universal datatype restriction
I H O (D)
G. Shu et al. / Advances in Engineering Software 38 (2007) 59–67 Table 2 Prote´ge´ uses traditional description logic symbols to display OWL expressions OWL element
Symbol
Example expression in Prote´ge´
Owl: Owl: Owl: Owl: Owl: Owl: Owl: Owl: Owl:
" $ 3 P 6 = \ [ {. . .}
"has DatatypeSet Scalar $has Habitat University has-Gender 3 male has-Vector P 1 has-Tensor 6 5 has-Scalar = 1 Student \ Parent Male [ Female {Scalar vector tensor}
allValuesFrom someValuesFrom hasValue minCardinality maxCardinality cardinality intersectionOf unionOf oneOf
Compared with XML, XML-Schema, RDF, and RDFSchema, OWL provides additional vocabulary for describing properties and classes: these include among others, relations between classes (e.g. disjointness), cardinality (e.g. ‘‘exactly one’’), equality, richer typing of properties, characteristics of properties (e.g. symmetry), and enumerated classes [11]. OWL has three increasingly-expressive sub-languages: OWL Lite, OWL DL, and OWL Full. Among them, OWL DL supports those users who want the maximum expressiveness without losing computational completeness (all entailments are guaranteed to be computable) and decidability (all computations will finish in finite time) of reasoning systems. OWL DL includes all OWL language constructs with restrictions such as type separation. OWL DL was designed to support the existing description logic, and has desirable computational properties for reasoning systems which makes it easy to implement the matchmaking functionalities by using a DL reasoner to compute the semantic distance between concepts [11]. An OWL DL-based ontology can be developed using Prote´ge´-3.1 with an OWL plugin. Prote´ge´ is an open platform for ontology modeling and knowledge acquisition. The OWL plugin can be used to edit OWL ontologies, to access DL reasoners, and to acquire instances for semantic markup, in particular, to provide the way to represent and edit an OWL expression syntax based on standard DL symbols [12]. These symbols are shown in Table 2. We will use the above notation to express our design in subsequent sections of this paper. 4. Ontology-based semantic matchmaking approach Our semantic matching approach is based on OWL DL ontologies: advertisements and requests refer to OWL concepts and the associated semantics, or are expressed in DLbased expression. By using OWL, the matching process can perform inferences and calculation on the subsumption hierarchy leading to the recognition of semantic matches despite their syntactic differences and difference in modeling abstractions between advertisements and requests. The degree of match is determined by the semantic distance, rather than only a subsumption relation, between concepts in the taxonomy tree.
61
4.1. Basic assumption Reasoning and computing in OWL are based on what is known as the open world assumption. It means that we cannot assume something does not exist until it is explicitly stated that it does not exist. In other words, because something has not been stated to be true, it cannot be assumed to be false – it is assumed that ‘‘the knowledge just has not been added to the knowledge base’’. So any two classes (i.e. concepts) could be overlapped unless they have been stated to be disjoint. In addition, the classes in the ontology are divided into two categories: (i) primitive classes, which do not have any sets of necessary and sufficient condition, and (ii) defined classes, with at least one set of necessary and sufficient condition [14]. 4.2. Semantic distance of two concepts Let Ci (i = 1, 2, . . . , n) be any concept (the term ‘‘concept’’ is equivalent to the term ‘‘class’’ in this paper) in the ontology. Further, let D(Ci) be the domain of Ci. Let d : D(Ci) · D(Ci) ! R+ be function on the D(Ci) mapping to R+ (R+ denotes the set of the positive real number). If the properties (1) C1 = C2 ) d(C1, C2) = 0; (2) dðC1; C2Þ ¼ 1 () ðC1 \ C2Þ ? (? is described in Table 1); noting: however that (3) d(C1, C2) 5 d(C2,C1) if C1 5 C2 (Generally, the function d(C1, C2) is non-commutable.); are fulfilled, d(C1, C2) is called the semantic distance from C1 to C2. The semantic distance of two concepts is the sum of the subsumption distance (‘‘ds’’) and ‘‘definition’’ distance (‘‘dd’’), hence d(C1, C2) = ds(C1, C2) + dd(C1, C2). The ds is the distance between two concepts within a hierarchy, while the dd is the difference between the semantic description of two concepts, which is calculated by the algorithm described in Section 4.3. Ideally, the semantic distance should just equal to the definition distance. However, it is often difficult to give the semantic description of the concept, and even if it is given, it is often not complete. Therefore, the subsumption distance is introduced to make up the insufficiency of the definition distance. In most existing matchmaking approaches, no distinction is made between the semantic distance and the definition distance. To simplify the calculation process and differentiate between two primitive concepts – which have no semantic description, the ‘‘definition’’ distance of the two primitive concepts is regarded to be zero. At the same time, we also ignore the ‘‘definition’’ distance dd(C1, C2) if C2 is the subclass or offspring of C1, because C1 inherits all the properties of C2. Taking the ontology tree shown in Fig. 1 as an example: (1) d(A, A) = 0; (2) d(A, D) = ds(A, D) = 2, where dd(A, D) = 0 because D is the offspring of A;
62
G. Shu et al. / Advances in Engineering Software 38 (2007) 59–67
A
B
D
C
E
F
G
H
Fig. 1. An example of ontology tree.
(3) d(D, A) = ds(D, A) + dd(D, A) = 2 + dd(D, A), where the distance of hierarchy of concepts D and A is 2; (4) d(D, C) = ds(D, C) + dd(D, C) = 1 + dd(D, C), where the distance of hierarchy of concepts D and C is 1; (5) d(B, C) = ds(B, C) + dd(B, C) = dd(B, C), where ds(B, C) = 0 because B and C are at the same level. 4.3. Matching algorithm Our matchmaking algorithm aims to precisely compute the semantic distance of concepts in the ontology and express it using a score in order to improve the quality of
matchmaking. The following algorithm focuses on how the definition distance is calculated because it is easy to calculate the subsumption distance of two concepts. As previously mentioned, classes in the OWL ontology can be divided into two kinds: defined classes and primitive classes. The defined class is at least defined by a set of necessary and sufficient condition. In fact, the condition is the semantic description of the class. Hence, the definition distance of two classes is the difference between their semantic descriptions. Generally speaking, the semantic description consists of a set of direct superclasses and a set of restrictions which include allValuesFrom ("), someValuesFrom ($), hasValue (3), minCardinality (P), maxCardinality (6), cardinality (=) (as described in Table 2). A class C can be put in normal form consisting of a set of the direct superclasses of C and a set of restrictions, i.e. C = {superclasses} [ {restriction}, for short C = SS [ SR. (Here [ means union, while \ means intersection, SS is the short for the set of direct superclasses and SR is the set of restrictions.) For example, E2V2 = {EV} [ {has-Dimension = 2, has-Vector = 2}, which means EV is the direct superclass of E2V2 and E2V2 has two restrictions (has-Dimension = 2) and (hasVector = 2). The algorithm for calculating the definition distance is below [18]:
G. Shu et al. / Advances in Engineering Software 38 (2007) 59–67
4.4. Case study In this section, we will show an example of how to calculate the semantic distance of two concepts in an ontology by means of our algorithm. Fig. 2 shows a fragment of visualization ontology developed using Prote´ge´. The ontology is built using Brodlie’s E notation
63
[16,17] and is used in the project ‘‘Grid-Enabled Discovery of Visualization Service’’. It has four abstract classes representing the main concepts in the visualization domain: Data_Model, Visualization_Technique, Data_ Representation and Primitive_Set. The Data_Model is the key part, which describes the user’s data model, as shown in Fig. 2.
64
G. Shu et al. / Advances in Engineering Software 38 (2007) 59–67
has-Vector = 2}, SR2 = {has-Dimension = 2, has-Scalar = 1}, we proceed as follows:
Fig. 2. Visualization ontology fragment.
In the process of matchmaking, there is often a conflict between quality and efficiency. Our algorithm aims to get a good quality of match, i.e. precisely calculate the semantic distance between concepts, because it uses both the subsumption and the semantic description of concepts in their OWL ontology. However, efficiency is also achieved by pre-computing the semantic distance between the advertisements and the possible requests [15] to speed up matchmaking. Shown in Fig. 2, the semantic description of some concepts can be put in the normal form SS [ SR, as referred to in Section 4.3, as follows: (1) E2V2 = {EV} [ {has-Dimension = 2, has-Vector = 2}, where EV is the direct superclass of E2V2, and (‘‘has-Dimension = 2’’), (‘‘has-Vector = 2’’) are the two restrictions on E2V2; (2) ES2 = {ES} [ {has-Dimension = 2, has-Scalar = 1}, which means that ES is the direct superclass of ES2, and (‘‘has-Dimension = 2’’), (‘‘has-Scalar = 1’’) are the two restrictions of ES2; Similarly, (3) ES1 = {ES} [ {has-Dimension = 1, has-Scalar = 1}; (4) ES = {Continuous_Model} [ {"has-DatatypeSet Scalar}; (5) EV = {Continuous_Model} [ {"has-DatatypeSet Vector}; (6) EnS2 = {ES} [ {has-Dimension = 2, has-Scalar P 1}; (7) Continuous_Model = {Data_Model} [ {" hasStatespaceSet Continuous}; In order to get d(E2V2,ES2) using our algorithm described in Section 4.3, where C1 = E2V2, C2 = ES2, SS1 = {EV}, SS2 = {ES}, SR1 = {has-Dimension = 2,
• We first need to deal with the superclass in each instance i.e. computing TS = SS1 \ SS2 – in this case, TS = /; • As SS1 5 / and there is the class EV which is not SUP (where SUP is the class Data_Model) in SS1, and EV = {Continuous_Model} [ {" has-DatatypeSet Vector}, so we modify SS1 and SR1, i.e. SS1 = {Continuous_Model}, SR1 = {" has-DatatypeSet Vector} [{has-Dimension = 2, has-Vector = 2}. Similarly, SS2 = {Continuous_Model}, SR2 = {" has-DatatypeSet Scalar} [ {has-Dimension = 2, has-Scalar = 1}; • We then compute TS again. Now, TS = {Continuous_Model}. Therefore, SS1 = SS1-TS = / and SS2 = SS2-TS = /; • As SS1 and SS2 are /, we then deal with the set of their restrictions SR1 and SR2. For the property ‘‘" has-DatatypeSet Vector’’ in SR1, because there exists property ‘‘" has-DatatypeSet Scalar’’ 2 SR2, which corresponds to step 5 in our algorithm, so a recursion of the algorithm is called. At this time, C1 = Vector and C2 = Scalar. • Recurring the algorithm, we see that C1 and C2 i.e. concepts Vector and Scalar are disjoint, which can be got from the ontology. So dd(Vector, Scalar) = 1. Therefore, the algorithm stops and exits. At last, we get dd(E2V2,ES2) = 1. Similarly, we can calculate the semantic distance of ES1 and Continuous_Model, i.e. d(ES1,Continuous_Model). Obviously, ds(ES1,Continuous_Model) = 2 since their distance in the hierarchy tree is 2. Using the algorithm calculating_dd in Section 4.3, we can get dd(ES1, Continuous_Model) = 3 since ES1 has two restrictions more than ES, which are ‘‘has-Dimension = 1’’ and ‘‘has-Scalar = 1’’, and ES, which is the direct superclass of ES1, also has one restriction more than the Continuous_Model, which is ‘‘" has-DatatypeSet Scalar’’. So d(ES1,Continuous_Model) = 5. In the same way, we can compute the d(ES2,EnS2) = 1, and d(EnS2,ES2) = 0. EnS2 is more general than ES2 because other restrictions are the same except that the (has-Scalar = 1) for ES2 and (has-Scalar P 1) for EnS2. 4.5. Analysis and discussion In [13], Paolucci et al. proposed that the degree of match is determined by the minimal distance between concepts in the taxonomy tree, and differentiate between four degrees of matching: exact, plug-in, subsumes and fail. And in [5], Li and Horrocks extend the above four degrees: exact, plug-in, subsumes, intersection and disjoint. Both of these primarily consider the simple subsumption between the concepts in the ontology, and ignore the hierarchic difference between the concepts and their detailed semantic difference. Taking the ontology in Fig. 2 for example,
G. Shu et al. / Advances in Engineering Software 38 (2007) 59–67 Matching degree
ES2 and Continuous_Model
ES2and ES
ES2 and EnS2
Our approach
d(ES2,Continuous_Model)=5 d(Continuous_Model,ES2)=2
d(ES2,ES)=3 d(ES,ES2)=1
d(ES2 , EnS2)=1 d(EnS2 , ES2)=0
Approach in [5]
Subsume
Subsume
Intersection
Approach
65
Fig. 3. Comparison of our approach and the one in [5].
according to [5], the matching degree of Continuous_Model and ES2 is the same as that of ES and ES2 because both of them have a ‘‘subsumes’’ relation. However, we can see that ES is closer to ES2 than the Continuous_Model. Moreover, the match degree of concepts whose relation is the sibling is either intersection or disjoint – that is to say a more precise match degree between sibling concepts cannot be calculated. The approach in [6–8] is devised adapting the original CLASSIC structural algorithm for subsumption [14]. It is based on DL formalization and reasoning, and overcomes simple subsumption matching and allows match ranking and categorization. However, it does not take the inheritable and hierarchy relation between concepts into consideration. Also, it cannot calculate the match degree of the primitive classes in the ontology, referred to in Section 4.1, because it is based the CLASSIC system completely, in which each concept C has an equivalent normal form as Cnames \ C# \ Call, where Cnames is a conjunction of names, C# of number restrictions, and Call of universal role quantifications. The difference between our algorithm and such existing approaches is that our approach is more general, rather than domain-specific, and makes full use of the effort placed in structuring an ontology to more precisely compute the semantic distance of concepts. This allows us to deal with both the primitive and the defined classes mentioned in Section 4.1. A comparison between our approach and [5] is shown in Fig. 3. From Fig. 3, we can see that a more precise match degree can be achieved using our approach. For example, suppose we have three Web Services, where service 1 can deal with data model ES, service 2 can deal with EnS2, and service 3 can deal with a Continuous_Model, and a user’s data model is ES2. We can calculate d(ES,ES2) = 1, d(EnS2,ES2) = 0 and d(Continuous_Model,ES2) = 2. As the semantic distance from EnS2 to ES2 is 0, our approach can tell user that service 2 is the best choice. Obviously, the result is right because here n equals to or is greater than 1. If a service can deal with the data model EnS2 and a requestor is ES2, the service can provide what the requestor requests. On the other hand, another advantage of our algorithm is to differentiate between d(C1, C2) and d(C2,C1), which is very significant and is often ignored in the other approaches. For example, as mentioned above, the semantic distance d(EnS2,ES2) should be zero because the service, whose data model is EnS2, can also visualize the data model ES2. But if the data model of a service is ES2 and a requestor is EnS2, the service cannot visualize all
the data model which the requestor requests. Therefore, the semantic distance d(ES2,EnS2) should not be zero. According to approach [5], d(EnS2,ES2) = d(ES2,EnS2), but d(EnS2,ES2) = 0 and d(ES2,EnS2) = 1 in our algorithm, which gives a logical match result. In our ontology-based matchmaking algorithm, the advertisement and request can be expressed using terms in the ontology or may be a DL-based expression. As a response, the potential candidates are ranked according to their match ‘‘score’’. Better match is characterized by a match ‘‘score’’ nearer to 0. 4.6. Evaluation We have used a prototype implementation to carry out some experiments designed to test our algorithm’s performance. The prototype is in a visualization service discovery scenario. The advertisements are generated artificially by randomly creating a specification. For example, the data model and visualization technique which the advertisements provide are randomly chosen from a set of concepts in the visualization ontology. Our result shows that the time required to calculate the distance of an advertisement and a request is always less than 10 ms, regardless of the time to load an ontology. This would be fast enough for the matchmaking system to handle a high frequency of matching request. But classifying the advertisements in the TBox (Terminological Box) is quite time-consuming and the same as the loading time of the ontology, especially, with the increase of the number of advertisements, the efficiency of matchmaking will decrease. In our proofof-concept prototype, we use the idea of pre-computing in [15]. As the concern of the user is the matching time rather the time of publishing a Web Service. Therefore, we exploit this time to compute the semantic distance of an advertisement and a request. To pre-compute, the matchmaker maintains a taxonomy that represents the subsumption relationships between all the concepts in the ontology. Each concept in this taxonomy is annotated with a list score_advertisement that specify to what degree any request pointing to that concept would match the advertisement, and the list is in order. The list is a vector and its elements like hAdvX, Scorei, where the AdvX points to the advertisement and the Score denotes the distance value. The establishment of the list can be off-line, and it is stored in the database in MySQL. When a new Web Service is registered, we can pre-compute the distance of it and each concept in the taxonomy, and insert the result into a suitable position in the list. This can be undertaken in the
66
G. Shu et al. / Advances in Engineering Software 38 (2007) 59–67
Fig. 4. An example for the implementation of our matchmaking algorithm.
publish phase, and because it could be done off line. By doing so, what we need to do in the matchmaking phase is to look up the concept the request points to in the taxonomy and its list. The time required in the matchmaking phase will be in the order of (log N) because the data structure of the taxonomy is a tree and the list is in order. Fig. 4 shows the implementation of our matchmaking algorithm. In the prototype, we provide three options, which are ‘‘Choice of the Data Model’’, ‘‘Choice of the algorithm’’ and ‘‘Enter the Description of Data’’, to allow search for appropriate visualization algorithms. Fig. 4 shows the match results when the user chooses the first option and selects his data model ES2 from the data model tree. The ‘‘return matches’’ table lists the returned results. ‘‘ Service Name‘‘ in the table lists all services which can provide appropriate visualization algorithms, and ‘‘DataModel’’ describes data the services can deal with. ‘‘Match Score’’ tells the user the match degree of his request and the services, and we rate them and show the match indicator in order to give some suggestion to user. As shown in Fig. 4, if the requestor is ES2, we can precisely calculate the semantic distances between its request and all the advertisements, find 4 services which are not disjoint with the requestor and rate them. 5. Conclusion and further work An improvement to the quality of matchmaking is proposed – extending existing algorithms with a subsumption and semantic definition distance, which allows the algorithms to have the ability to precisely calculate a distance between concepts. The approach is based extends the simple subsumption idea, with a semantic description of these
concepts in their OWL ontology. The approach has been implemented in the prototype of visualization service discovery. The algorithm is intended to be a starting point for effectively improving the quality of matchmaking. Future works will include: (1) adding the function to deal with the complement relation, which means a complement class contains all of the individuals that are not contained in the class that it is the complement to, in the description of concept; (2) introducing the background knowledge as rules into the matchmaking process to enrich the description of concepts. References [1] Singh N. A Common Lisp API and Facilitator for ABSI: Version 2.0.3, Technical Report Logic-93-4, Logic Group, Computer Science Department, Stanford University, 1993. [2] Sycara Katia, Widoff Seth, Klusch Matthias, et al. Larks: dynamic matchmaking among heterogeneous software agents in cyberspace. Auton Agents Multi-Agent Syst 2002;5:173–203. [3] Nodine Bohrer M, Ngu AH. Semantic brokering over dynamic heterogenous data sources in infosleuth. In: Proceedings of the 15th international conference on data engineering, 1999. p. 358–65. [4] Tangmunarunkit Hongsuda, Decker Stefan, Kesselman Carl. Ontology-based resource matching in the grid – the grid meets the semantic web. In: Proceedings of SemPGRID’03, 2003. [5] Li Lei, Horrocks Ian. A software framework for matchmaking based on semantic web technology. In: Proceedings of the twelfth international world wide web conference (WWW 2003), 2003. [6] Colucci S, Di Noia T, Di Sciascio E, Donini FM, Mongiello M. Concept abduction and contraction in description logics. In: Proceedings of DL 2003. CEUR Electronic Workshop Proceedings. Available from: interrefhttp://ceur-ws.org/Vol-81/url
, 2003. [7] Colucci S, Di Noia T, Di Sciascio E, Donini FM, Mongiello M, Mottola M. A formal approach to ontology-based semantic match of
G. Shu et al. / Advances in Engineering Software 38 (2007) 59–67
[8]
[9]
[10]
[11] [12]
skills descriptions. J Universal Comput Sci 2003, Special issue on Skills Management. Colucci S, Di Noia T, Di Sciascio E, Donini FM, Mongiello M, Mottola M. Finding skills through ranked semantic match of descriptions. J Universal Comput Sci (JUCS) 2003, Issue on Proceedings of third international conference on knowledge management I-KNOW ’03. Horrocks I, Sattler U, Tobies S. Practical reasoning for expressive description logics. In: Ganzinger H, McAllester D, Voronkov A, editors. Proceedings of LPAR’99. LNAI, vol. 1705. Springer; 1999. p. 161–80. Gonzalez-Castillo Javier, Trastour David, Bartolini Claudio. Description logics for matchmaking of services, HP Labs Technical Report. OWL Web Ontology Language Overview. Available from:
. Knublauch Holger, Fergerson Ray W, Noy Natalya F, Musen Mark A. The Prote´ge´ OWL Plugin: An Open Development Environment for Semantic Web Applications. In: Third international semantic web conference – ISWC, 2004.
67
[13] Paolucci Massimo, Kawamura Takahiro, Sycara Katia, et al. Semantic matching of web services capabilities. In: Proceedings of international semantic web conference (ISWC 2002). [14] Borgida A, Patel-Schneider PF. A semantics and complete algorithm for subsumption in the CLASSIC description logic. JAIR 1994;1:277–308. [15] Srinivasan Naveen, Paolucci Massimo, Sycara Katia P. An efficient algorithm for OWL-S based semantic search in UDDI. SWSWPC, 2004. p. 96–110. [16] Brodlie KW. Visualization techniques. In: Brodlie KW, Carpenter LA, Earnshaw RA, Gallop JR, Hubbold RJ, Mumford AM, Osland CD, Quarendon P, editors. Scientific visualization – techniques and applications. Springer-Verlag; 1992. p. 37–86 [Chapter 3]. [17] Brodlie KW. A classification scheme for scientific visualization. In: Earnshaw RA, Watson D, editors. Animation and scientific visualization. Academic Press; 1993. p. 125–40. [18] Horridge Matthew, Knublauch Holger, Rector Alan, Stevens Robert, Wroe Chris. A Practical Guide to Building OWL Ontologies Using The Prote´ge´-OWL Plugin and CO-ODE Tools Edition 1.0. Available from: http://www.co-ode.org/resources/tutorials/ ProtegeOWLTutorial.pdf.