When a user inputs a keyword in Service Explorer, the Semantic Service Discovery function searches services semantically with keyword and its results are displayed. The results include 3 rd party web services and Samsung SDK Library APIs related to the given keyword.

Service discovery function provides two types of search. They are semantic service search and keyword-based service search. For keyword-based service search, a user can specify the search condition with seven prefix types in the figure below

Figure: Web Services search screen

A user can input keyword in Keyword text field.

When the mouse cursor is moved over the Keyword label or input field, help about the keyword input information (No. 1 ~ 8) is popped-up in Service Explorer. The help menu shows the one Semantic service search (No. 1) and seven keyword-based service search methods (No.2 ~ 8). Semantic service search doesn’t need any prefix.

Before performing Semantic service search with a keyword, a user can adjust levels of semantic search. The level of semantic search is a search option that signifies relevance score of the discovered services in the result table. The relevance score is computed basically by Apache Lucene’s scoring which combines Boolean model (BM) of Information Retrieval with Vector Space Model (VSM) of Information Retrieval. The selection of the first level (score: 0.1) will display the results which have scores over 0.1. In the second level, the results over 0.2 score will be shown in the result table. With the highest level, only services over score 0.5 are delivered as search result. The higher the level is, the less result is shown.

When a user inputs a keyword and presses Enter, the results are displayed in the result tables of Samsung API and External API, respectively.

A user can search services related a keyword given by himself even the keyword is not included in any information of the service. The results are searched and ranked by a semantic service search algorithm provided by Samsung.

Figure: Semantic service search screen

An example of semantic service search with a keyword map is as follows:

Input the map in the Keyword field, push the sliding bar to the leftmost, and press Enter.

As a search result, up to 10 tags expanded from a map are displayed in a Service Explorer area.

Also, the services related to a keyword map is displayed in tables of Samsung APIs and External APIs. The search results consists of brief service information columns such as API name, Module name, Interface name, information URL, Service provider, Service Category, and Score. The information columns can be sorted in ascending/descending order. The Score is the relevance score of the discovered services according to the given keyword. The results are ranked basically by Apache Lucene’s scoring which combines Boolean model (BM) of Information Retrieval with Vector Space Model (VSM) of Information Retrieval. After query expansion using domain ontologies, it performs multi-field matching by manipulating the expanded query, and service re-ranking based users’ usage history. If the URL is clicked, the contents of the related URL will be displayed on the internal/external web browser. The characters in black color on the search results refer to the service that provides the sample code snippet. The sample code snippet can be inserted into the editor via dragging & dropping.

The total number of results is 17 in case of External APIs.

Move the sliding bar to the center and press Enter in the keyword filed. It provides more filtered results than those of the previous search with the same keyword.

The total number of results is 7 in case of External APIs.

Move the sliding bar to the rightmost and press Enter in the keyword field. It provides the most filtered results than those of the previous search with the same keyword.

The total number of results is 1 in case of External APIs and 0 in Samsung APIs.

Tag Cloud

The expanded words from input keyword are displayed in Tag Cloud area as a result of semantic service search. In Tag Cloud area, words(tags) are represented in three different colors. The green-colored word means synonym of the input keyword, the purple-colored word represents hypernym of the input keyword, and the red-colored word indicates hyponym of the input keyword. They are modeled in the keyword ontology provided by Samsung. As shown in the figure below, clicking any word in a Tag Cloud can perform keyword-based service search with the clicked word.

Figure: Tag cloud result screen

An example of keyword-based service search by clicking a word in Tag Cloud is as follows:

Click a latitude which was expanded from a map.

Keyword-based service search for the clicked keyword latitude is carried out, and the result of keyword-based service search is shown.

When Back button is pressed, the result window goes back to the results of the previous semantic service search with a map.

If a user double clicks the mouse on a service in the search results, the web URL of the selected service in the internal web browser (the default web browser in Eclipse) pops up. It is also possible to open web URL of the service by double-clicking usage_url in Properties View.

A service API activated in black color on the search result table in Service Explorer has sample code snippet to invoke the API. If a user drags and drops the service API into the source code editor, the sample code snippet is automatically inserted. It is also available in the Matching View. A service API in gray color means that it has no sample code snippet.

Figure: Automatic sample code insertion screen

The following section shows an example.

Move the cursor to the position where the sample code snippet will be inserted.

Select a service API to be inserted and drag & drop it into the source code editor.