Keywords

1 Introduction

Tagging is the process of describing a resource by assigning textual keywords (tags) to it as a classification mechanism. The use of tags predates computers. In computer based systems, traditionally, tags were assigned by Web page developers and online databases publishers to help users find content. With the growth of social networking and multimedia sharing, user-contributed tags have gained wide popularity. Recently, tagging was employed to improve the performance of service discovery [1, 2]. There are two main challenges that have to be addressed when tags are used in Web service discovery: tag relevancy and tag sense disambiguation. First, to address the tag relevancy issue, we recommend the addition of three parameters to each tag: score, popularity, and occurrence. A score is assigned to each tag to denote the relevance of that tag from the user’s perspective. Popularity denotes the relevance of a given tag according to the user’s expertise (The user’s expertise is assessed based on a simple three question quiz.). More weight is given for the most experienced users’ tags. Occurrence is the number of times that a given tag was added to the same service. Second, to address the tag sense disambiguation, we use the WordNet dictionary to take into account the synonyms of the tags in the service search.

Our collaborative tagging Web Services Platform (WSTP) is unlike existing tagging systems (e.g., TitanFootnote 1, APIs.ioFootnote 2); since the Web services discovery is based on a search using tags. The WSTP returns the most relevant services according to the tags defined in the user’s request and the tags of the available services. The remainder of the paper is organized as follows. Section 2 presents the architecture of the platform. Section 3, explains the details of the planned platform demonstration. Section 4 provides concluding thoughts.

2 System Overview

In this section, we provide an overview of our recommended platform (Fig. 1) for tagging Web services called WSTP (Web Services Tagging Platform).

Fig. 1.
figure 1

WSTP Architecture

As illustrated in Fig. 1, users are empowered to perform two actions: assigning new tags to the available services and performing a tag-based search request. Each service has at least one tag which is by default the service name. The user-contributed tags are used to create linked services based on tag similarities and domains. Users can rely on service descriptions (if available) and/or or on their expertise in web services to tag services manually.

2.1 Web Services Tagging Process

Users can improve the tag-based service discovery mechanism by adding new tags to each web service that they have invoked. To avoid malicious tags, users are required to register in the system before actively taking part in the tagging and searching of Web services. Even though one can argue that there are no wrong tags, it is logical that some tags could be more relevant than others with respect to a given service. To address the tag relevance problem, users are requested to add a score value to each tag that they add (see Definition 1).

Definition 1

(Tag Definition): A tag denoted as Tag (S) is a couple of name and a score: Tag(S) = (nameTag, scoreTag) Where nameTag and scoreTag are respectively the name and the score of the tag where scoreTag ∈[0, 100].

2.2 Semantic Search of Linked Web Services

The semantic search process locates the most relevant services according to the user’s request by performing a similarity search function. This search function takes a set of tags and their scores relevance as input to calculate the similarity between tags and their scores (see below Definition 2). During the search by tag, sense disambiguation techniques based on the WordNetFootnote 3 lexical thesaurus are applied. In WordNet each term (tag) is a synset and it has a set of synonyms.

Definition 2

(Semantic Tag Similarity): The tag similarity denoted as SimTag (R, S), where R is a user request and S a service, is defined as follow:

$${{\text{Sim}}_{\text{Tag}} \left( {{\text{R}},{\text{ S}}} \right) \, = {\text{ Sim}}_{\text{score}} \left( {{\text{TagR}},{\text{ TagS}}} \right)*{\text{ W}}_{\text{score}} + {\text{ Sim}}_{\text{sem}} \left( {{\text{TagR}},{\text{ TagS}}} \right)*{\text{ W}}_{\text{sem}} \in \left[ {0,{ 1}} \right]} $$

Where Wscore and Wsem are weight set of the tag score and the semantic similarity, respectively, Wscore + Wsem = 1 and:

$$ {\text{Sim}}_{\text{score}} \left( {{\text{TagR}},{\text{ TagS}}} \right) \, = \,\frac{{\mathop \sum \nolimits |\hbox{min} \left( {Score (|TagR\mathop \cap \nolimits TagSi|} \right))|}}{\mathop \sum \nolimits Score(TagR)} $$

is the tag similarity between the user’s score request and services.

$$ {\text{Sim}}_{\text{sem}} \left( {{\text{TagR}},{\text{ TagS}}} \right) = \,\frac{|Tag(R)\mathop \cap \nolimits Tag(S)|}{|Tag\left( R \right)|} $$

is the semantic similarity between tags.

3 Demonstration

The WSTP system has been implemented in Java and it does interact with the MySQL database. The web pages are in JSPFootnote 4. We rely on WordNet version 2.1. WSTP contains a collectionFootnote 5 of 151 Web services from different categories including Stock, Tourism, Weather, Telecommunication, Economy and Finance. The demonstration of WSTP platform shows the following features of our platform:

(1) Searching Web services by name, categories, tags or by browsing the linked services graph; (2) Adding Web services and Tags. This functionality requires user authentication; and (3) Searching Web services by setting a tag list with scores; A Web services tag and search example is demonstrated in our video which is available at: http://www.lsis.org/sellamis/Projects.html#WSTP.

We considered a set of four services in the DEMO category as illustrated in Table 1:

Table 1. Example of web services

Consider a user request R = music:80 sound:50 social:30 image:40 picture:50.

The semantic search functionality compares the tags of R with the tags of services to find the most relevant services. Then, in the first iteration, we compared the occurrence of the tags and the name similarities based on the WordNet thesaurus. For each tag, we obtained a set of synonyms as described in Table 2. We retrieved the max (score) of each of the similar tags. All the tags that are synonyms were reduced to one tag with the most important, i.e. highest, score and we merged the rest of the tags. The result of this transformation is described in Table 3.

Table 2. Synonym results
Table 3. Web services similarities and ranking

Based on the synonym transformations, we applied a semantic tag similarity function (see Definition 2) and obtained the following services as described in Table 3.

4 Future Work

We plan to enhance the semantic services search by querying a LOD (Linked Open Data) like DBpediaFootnote 6 and interacting with Programmable WebFootnote 7 for retrieving information on Web APIs from the repository. With this enhancement we will be able to provide a platform for linked services based not only on tag similarities but also on mashups, or category links.