• 沒有找到結果。

As we mentioned above, service matching is the process that takes user requirement as an input and returns all qualified results. Since there may be multiple results according to different matching degrees, a ranking algorithm, which can be helpful for user to choose among these results, is essential. In this section, we will review several service matching frameworks first. Each of them employs a service description language along with a matching algorithm to perform service matchmaking tasks. Different definitions of matching degree are given according to the relations between a service requirement and an advertisement. Then we review related works on service ranking, which gives priority to several matching results.

2.3.1 Service Matching

Sycara et al. [56] define an agent capability description language called LARKS (Language for Advertisement and Request for Knowledge Sharing), which can be used to specify an advertisement, request, and matching agent capabilities. They define three types of matching in LARKS: exact match, plug-in match, and relaxed match. In addition, five

dif-ferent filters in LARKS are provided to carry out the matching process including context matching, profile comparison, similarity matching, signature matching, and constraint matching. These filters spans form text matching to semantic matching. All filters are independent and each of them narrows the set of matched candidates and different degrees of partial matching can result form using different combinations of filters. They propose a well-formed framework for service matchmaking. However, in this framework, no rank-ing function is provided except for relaxed match, which is determined by a numerical semantic distance value.

Paolucci et al. [48] propose a service matchmaking approach based on DAML-S. They make use of Service Profile section of DAML-S to describe the input, output, precondition and effect (IOPE) of a service. Their matching algorithm consists of matching all the outputs of the request against the outputs of the advertisement; and matching all the inputs of the advertisement against the inputs of the request. They compare the outputs first and use input matching only when there is an equal degree of match between outputs.

They define four matching degrees as follows:

• Exact: For brevity, we use outR to represent one of request’s output and outA to represent one of advertisement’s output. There are two situations that the match will be labeled as EXACT. The first case is when outR and outA are equivalent, which is intuitive. The second case is when outR is a subclass of outA, then they still mark the result as EXACT.

• Plug-In: If outA subsumes outR, that is, outA is a set that includes outR.

• Subsume: If outR subsumes outA. This happens when the provider dose not completely fulfill the request.

• Fail: Failure occurs when no subsumption relation between outR and outA can be identified.

They also propose an architecture to apply their matching algorithm to incorporate with UDDI servers to equip UDDI registries with an additional semantic layer that per-forms a capability based matching.

Li et al. [37] design and implement a service matchmaking prototype system which combines a DAML-S based ontology and a Description Logics reasoner. They extend the matching degrees in [48] and propose a five-level matching degree:

• Exact: If advertisement A and request R are equivalent concepts, we call the match Exact; formally, A ≡ R.

• PlugIn: If request R is sub-concept of advertisement A, we call the match PlugIn;

formally, R v A.

• Subsume: If request R is super-concept of advertisement A, we call the match Subsume; formally, A v R.

• Intersection: If the intersection of advertisement A and request R is satisfiable, we call the match Intersection; formally, ¬(A u R v ⊥).

• Disjoint: Otherwise, we call the match Disjoint; that is, A u R v ⊥.

Paolucci and Li both think that PlugIn match is better than Subsume match be-cause, under PlugIn match, the output can be used to substitute what the requester expects; while, under Subsume match, the requirement of the requester can only be partially fulfilled. However, we have different consideration. PlugIn match may suffer from the problem that an advertisement is too generic: a service provider may define his advertisement as general as possible to maximize the likelihood of being matched. On the other hand, the Subsume match works under the assumption that a requester may define his requirement with a general sense and can be satisfied with a specified kind of matched services. We think such a viewpoint would be better in order to fulfill the user’s requirement. Therefore, in our approach we discard PlugIn match and reserve Subsume match.

2.3.2 Service Ranking

Stojanovic et al. [55] propose an approach to query results ranking in the Semantic Web.

The rationale behind their ranking scheme is to score services by counting available fillers of properties. The more available fillers of a certain property, the lower score it will obtain.

If two property are connected by a and-connector, the obtained score is the sum of these two properties’ scores. If two property are connected by an or-connector, the obtained score is the product of scores of these two properties. In short, they translate query results from a set of concept instances to a set of returned relation instances and compute the relevance value to rank query results.

Di Noia et al. [20] and [45] propose a logical approach based on ”CLASSIC Description Logics” to support supply-demand matching. In their approach, both supply and demand are described as a conjunction of concepts. Their approach provide three types of match:

• Exact match: all requested characteristics are available in the description exam-ined

• Potential match: some part of the request is not specified in the description examined

• Partial match: some part of the request is in conflict with the description exam-ined

For potential match and partial match, a rank function is devised respectively. The main idea behind their rank function is to compare concept names between supply and demand. The algorithm computes a distance between concepts. The distance starts with an initial value 0, which means best ranking. The value gains with the syntactical difference between concept names and can be used for a measurement of ranking.

Base on [20], Di Noia, et al. present an extended semantic-based matchmaking algo-rithm [19]. They adopt two non-standard inference services in DL, Concept Abduction and Concept Contraction. In Concept Contraction, the user’s requirement is divided into two parts, N G and ST . N G stands for the part which is negotiable; while ST represents for the part which should be strictly enforced. When potential match is un-reachable, the algorithm utilizes Concept Contraction, which relaxes the negotiable part of requirement, to gain satisfiable result. Then, Concept Abduction computes the part of advertisement which should be refined to make requirement and advertisement complete satisfiable with each other. By Concept Abduction and Concept Contraction, the service matching scheme becomes more flexible under reasonable computational complexity.