<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">SEMI-AUTOMATIC WEB SERVICE GENERATION AND CLASSIFICATION</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Miguel</forename><forename type="middle">Angel</forename><surname>Corella</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Escuela Politécnica Superior</orgName>
								<orgName type="institution">Universidad Autónoma de Madrid</orgName>
								<address>
									<addrLine>Campus de Cantoblanco</addrLine>
									<postCode>28049</postCode>
									<settlement>Madrid</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">José</forename><forename type="middle">María</forename><surname>Fuentes</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Escuela Politécnica Superior</orgName>
								<orgName type="institution">Universidad Autónoma de Madrid</orgName>
								<address>
									<addrLine>Campus de Cantoblanco</addrLine>
									<postCode>28049</postCode>
									<settlement>Madrid</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Pablo</forename><surname>Castells</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Escuela Politécnica Superior</orgName>
								<orgName type="institution">Universidad Autónoma de Madrid</orgName>
								<address>
									<addrLine>Campus de Cantoblanco</addrLine>
									<postCode>28049</postCode>
									<settlement>Madrid</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">SEMI-AUTOMATIC WEB SERVICE GENERATION AND CLASSIFICATION</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">B10DC74B0C268E6F65EE0E841A6F2DEC</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T04:42+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>semantic web services</term>
					<term>web service generation</term>
					<term>web service classification</term>
					<term>web service ontologies</term>
					<term>reasoning</term>
					<term>WSDL</term>
					<term>OWL</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The convergence of semantic web techniques with web service technologies has enabled the emergence of so-called semantic web services. This new kind of services enacts the automatic manipulation of services by software programs, to perform tasks such as automatic service location, composition, and invocation. In this paper, we propose methods and techniques that enable the semi-automatic generation, deployment, semantic annotation and classification of web services.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">INTRODUCTION</head><p>Since the emergence of the semantic web <ref type="bibr" target="#b1">(Berners-Lee et al., 2001)</ref>, many research efforts have been aiming to use semantics to endow web services with a much higher potential for automation. These efforts have resulted in a new research trend called semantic web services <ref type="bibr" target="#b9">(Terziyan et al., 2003)</ref>. The basis of this trend is to attach some semantic information to current WSDL-based web service descriptions <ref type="bibr" target="#b2">(Christensen et al., 2001)</ref> in order to enable their analysis and manipulation by software programs. This manipulation would be useful to enact powerful capabilities such as automatic location, selection, invocation or composition of web services.</p><p>Nevertheless, semantic web services are facing today some problems and limitations that restrain their advancement and evolution. From our point of view there are two main problems to be solved:</p><p>• There is no consensus on which language has to be used when describing the semantic information about web services, although there are two main proposals that are gaining momentum at the present time, OWL-S <ref type="bibr" target="#b5">(Martin et al., 2004)</ref> and WSMO <ref type="bibr" target="#b8">(Roman et al., 2005)</ref>.</p><p>• There is a lack of automatisms to help web service developers in the creation of services, the annotation of their semantic information or any other task related to the web service life cycle.</p><p>The research presented here is set forth to help overcome these problems. More specifically, our work proposes:</p><p>• A realistic approach to the semantic information that can be obtained and used from a web service.</p><p>• A set of automatisms that will allow web service developers to perform some tasks related to web services. More precisely: creation, deployment, testing, semantic annotation, and classification.</p><p>The solutions developed in this work have been implemented and integrated in a web platform called Federica. Besides describing this platform in some detail, the focus of this paper will be to explain our research ideas and discuss the results achieved so far.</p><p>The rest of the paper is structured as follows. Section 2 shows all the details of our work towards the semi-automatic generation of web services. Next we explain our approach to the semi-automatic classification of web services. Finally, on Section 4, we provide some conclusions, as well as the next foreseen steps.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">WEB SERVICE GENERATION</head><p>The critical mass of available web services, let alone semantic ones, is still quite limited today. This is an important practical barrier for the advancement of research and innovation in this field, which is difficult to achieve without a sufficient testbed to try and evaluate the innovations. Artificial examples (i.e. built by the innovators themselves) hardly provide an objective basis for measuring the usefulness and performance of new proposals, not to mention the considerable cost implied in building the testbed, just for experimentation purposes.</p><p>The semi-automatic generation of web services, from such a widespread commodity as are web applications, can help with this necessity, and is an interesting research problem by itself. Of course, the expected quality of automatically generated services should not be the same as that of manually defined ones, but we aim at achieving a sufficient quality for the services to be useful for a variety of purposes, where of course, if needed, the generated web services can be completed or refined by a programmer. Moreover, such a facility as we are proposing here can be helpful in the transition from the current World Wide Web of applications to a (Semantic) Web of services.</p><p>The idea of the automatic generation of web services from web applications has already been addressed in former research works. Because of its relevance for our research, it is worth citing the work developed by <ref type="bibr" target="#b7">Pham (2004)</ref>, which already proposes the creation of web services from web applications. In Pham's proposal, web services are used only as gateways to web applications, so that any program can invoke programmatically the functionalities provided by web applications. When the generated web services are called, they translate their input parameters to HTTP parameters, send them to the application server, and wait for the response. Our work takes a step further from this, by recognizing or generating data types, finding associations of types with ontology concepts, if any, and automatically classifying the generated services. Overall, our research aims to push forward the goals undertaken by Pham et al towards the generation of semantically-enhanced web service descriptions.</p><p>It is also interesting to cite the early work by Sahuguet et al (1999) in a similar direction. Although this work does not use an explicit notion of web service, since web service standards had not yet seen the light by that time, their approach is very similar to the one proposed by Pham. The main differences can be attributed to the status of the technology at the time of publication -while Pham uses web service languages and tools to build a gateway to web applications, Sahuguet et al. use non-standard descriptions (manually generated) and generate Java applications as a gateway to the functionality.</p><p>The process flow of our approach to the generation of web services is shown in Figure <ref type="figure">1</ref>. The input to the automatic generation system is the entry web page of an application. The page is parsed ("HTML parser" box in the figure) into a easier to process in-memory data structure, which is analyzed in order to produce a WSDL description (WSDL Generator module) for the service to be generated, plus some additional semantic descriptions (Semantics Generator module). An implementation of the WSDL service is automatically generated (Service Implementor module) and deployed into a web service support platform (Axis and Tomcat have been used). Once the service is deployed, it can be invoked from any web service client that adheres to the generated WSDL description. One such client is automatically generated for testing purposes. Calls to the generated web service (SOAP requests) are automatically deferred to the original web application (HTTP request) by the generated service implementation. The result (a web page source code) is returned to the service client (SOAP response).</p><p>The steps enumerated above will be explained in more detail in each of the following subsections. More precisely, in section 2.1, we explain how WSDL descriptions are extracted from the web interface of applications. In section 2.2, the linkage of web services with web application functionality, and the deployment of the service, are described. Then, in section 2.3, we show how the execution of the generated web services is managed. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Extracting web service descriptions</head><p>For the automatic analysis and description of the functionality provided by a web application, the system we propose takes as input a) the URL of the web page which gives access to the application, and b) a name to identify the service to be generated. Our approach for the generation of WSDL descriptions is based on the inspection of the source code of the entry web page to the application, more specifically the HTML forms, as the basic UI construct for web applications. Of course web application UIs are being implemented today using other client-side technologies (JavaScript, Flash, etc.) beyond plain HTML, but as a first approach to the problem, we have circumscribed it to HTML forms.</p><p>In addition to the UI elements to interact with the application, the source code of a web page through which a web application is accessed includes all kinds of additional content, just as any other web page does: purely informative contents (titles, instructions, logos, advertisements, etc.), navigation elements (hyperlinks), plus page style and layout details. Although all these elements surrounding UI controls could be exploited to find cues which help in the analysis of forms, in our current approach we only inspect the UI elements themselves.</p><p>From the analysis of the web UI, our system determines the operations of the web service to be generated, their inputs, and the type of these, and this information is retained in a WSDL description. The generation procedure works through the following steps:</p><p>1. A service with a unique wsdl:portType is defined for the whole application. 2. The application page source is read from its URL, and the HTML forms that the page contains are extracted using an HTML parser. 3. A wsdl:operation is created for each of the forms found in the page.</p><p>4. An output message and an input message are defined for each wsdl:operation. 5. The "input", "select" and "textarea" HTLM components are identified as inputs for the service (that is to say, as wsdl:part elements in the "in" wsdl:message) for each of the forms. 6. Depending on the HTML control type and attributes, a different data type is assigned to each service input, a new XML schema type being defined in some cases. Table <ref type="table" target="#tab_1">1</ref> shows the correspondence between UI controls and service message part data type. 7. The wsdl:output message will contain only one wsdl:part of xsd:string type which, once the service is invoked, will return the source code for the web page that is returned from the web application form. Figure <ref type="figure" target="#fig_1">2</ref> shows an example of the generated WSDL description for the Google home page.</p><p>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt; … &lt;wsdl:types&gt; … &lt;simpleType name="hlEnumeration"&gt; &lt;restriction base="xsd:string"&gt; &lt;enumeration value="es" /&gt; &lt;/restriction&gt; &lt;/simpleType&gt; … &lt;simpleType name="btnGEnumeration"&gt; &lt;restriction base="xsd:string"&gt; &lt;enumeration value="Búsqueda en Google" /&gt; &lt;enumeration value="" /&gt; &lt;/restriction&gt; &lt;/simpleType&gt; … &lt;simpleType name="metaEnumeration"&gt; &lt;restriction base="xsd:string"&gt; &lt;enumeration value="" /&gt; &lt;enumeration value="cr=countryES" /&gt; &lt;enumeration value="lr=lang_es" /&gt; &lt;/restriction&gt; &lt;/simpleType&gt; &lt;/schema&gt; &lt;/wsdl:types&gt; &lt;wsdl:message name="fRequest"&gt; &lt;wsdl:part name="hl" type="tns1:hlEnumeration" /&gt; &lt;wsdl:part name="ie" type="tns1:ieEnumeration" /&gt; &lt;wsdl:part name="q" type="xsd:string" /&gt; &lt;wsdl:part name="btnG" type="tns1:btnGEnumeration" /&gt; &lt;wsdl:part name="btnI" type="tns1:btnIEnumeration" /&gt; &lt;wsdl:part name="meta" type="tns1:metaEnumeration" /&gt; &lt;wsdl:portType name="GoogleSearchIF"&gt; &lt;wsdl:operation name="f" parameterOrder="hl ie q btnG btnI meta "&gt; &lt;wsdl:input name="fRequest" message="impl:fRequest" /&gt; &lt;wsdl:output name="fResponse" message="impl:fResponse" /&gt; &lt;/wsdl:operation&gt; &lt;/wsdl:portType&gt; &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt; … &lt;wsdl:types&gt; … &lt;simpleType name="hlEnumeration"&gt; &lt;restriction base="xsd:string"&gt; &lt;enumeration value="es" /&gt; &lt;/restriction&gt; &lt;/simpleType&gt; … &lt;simpleType name="btnGEnumeration"&gt; &lt;restriction base="xsd:string"&gt; &lt;enumeration value="Búsqueda en Google" /&gt; &lt;enumeration value="" /&gt; &lt;/restriction&gt; &lt;/simpleType&gt; … &lt;simpleType name="metaEnumeration"&gt; &lt;restriction base="xsd:string"&gt; &lt;enumeration value="" /&gt; &lt;enumeration value="cr=countryES" /&gt; &lt;enumeration value="lr=lang_es" /&gt; &lt;/restriction&gt; &lt;/simpleType&gt; &lt;/schema&gt; &lt;/wsdl:types&gt; &lt;wsdl:message name="fRequest"&gt; &lt;wsdl:part name="hl" type="tns1:hlEnumeration" /&gt; &lt;wsdl:part name="ie" type="tns1:ieEnumeration" /&gt; &lt;wsdl:part name="q" type="xsd:string" /&gt; &lt;wsdl:part name="btnG" type="tns1:btnGEnumeration" /&gt; &lt;wsdl:part name="btnI" type="tns1:btnIEnumeration" /&gt; &lt;wsdl:part name="meta" type="tns1:metaEnumeration" /&gt; &lt;wsdl:portType name="GoogleSearchIF"&gt; &lt;wsdl:operation name="f" parameterOrder="hl ie q btnG btnI meta "&gt; &lt;wsdl:input name="fRequest" message="impl:fRequest" /&gt; &lt;wsdl:output name="fResponse" message="impl:fResponse" /&gt; &lt;/wsdl:operation&gt; &lt;/wsdl:portType&gt; … &lt;/definitions&gt; </p><formula xml:id="formula_0">… &lt;/definitions&gt;</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Linking web services to web applications</head><p>Once an WSDL is generated, our system provides an automatic implementation of the service, consisting of an application wrapper from which calls to the service are transferred as requests to the initial web application. To achieve this, a link engine has been implemented using Axis for sending and receiving SOAP messages <ref type="bibr" target="#b4">(Gudgin et al., 2003)</ref> in the communication with web services.</p><p>Using the Axis WSDL2Java tool, a set of empty Java classes is generated from a WSDL description, which once implemented will define the desired web service functionality. Service deployment is also done with Axis, the engine of which processes the SOAP messages received by the service.</p><p>The result of this process is a fully functional web service, whose operations carry out the same tasks as those the web application provides.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">Execution of generated web services</head><p>In order to try the generated services, our environment provides the automatic generation of a client and a web interface to invoke the generated services. This facility is an invaluable tool for development and testing. Furthermore, we plan to integrate this capability with a sophisticated editor with which developers can refine the service response description, and make it more precise, e.g. as an XML Schema data type, rather than a plain web page fragment source. Furthermore, this option opens further possibilities to augment descriptions with richer semantics, in the spirit of the Semantic Web Services vision. These would also be useful, in particular, for the automatic classification of the service, which is addressed in the next section. We have started the development of this edition tools, but, at the present time they are not yet integrated with the rest of the platform.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">WEB SERVICE CLASSIFICATION</head><p>With the techniques described in previous sections, we have the capacity to generate functional web services almost automatically and have them deployed (and stored) in a repository. Nevertheless, those services are stored in a chaotic way, without any type of structure. This lack of structure in the service storage can be seen as a problem because tasks such as, for instance, searching for a concrete service, gain much complexity. In addition, if we analyze the current situation of web services we see that classification is already an important concern by itself.</p><p>Nowadays, UDDI (OASIS UDDI, 2004) is the most accepted and used protocol for publishing, searching, and finding services over the web. These actions are usually performed using UDDI registries, which can be seen as service repositories easily accessed through a URL. In these registries, the published services are classified using some kind of taxonomy (i.e. UNSPSC, NAICS, etc.). Nevertheless, this classification is performed manually by the human publisher of the service. Due to the huge quantity of service classes in taxonomies as the ones mentioned above, the classification process could be very complex and tedious.</p><p>What we are proposing here is to use a software agent to help service publishers in the classification task. In order to meet this goal, in the context and spirit of the generation process described in previous sections, our basic starting point for any automated processing of the generated services are WSDL descriptions. Nevertheless, the information contained in a WSDL description is not sufficient to perform any type of classification. So, we need more information about services, their parameters, their operations, etc.</p><p>In conclusion, we need a higher level description of the service including some semantic information that enables a software agent to help publishers in the classification task.</p><p>In addition, as we are trying to classify web services in a taxonomy, we will need, of course, to define that taxonomy. For this purpose, our system can use any available taxonomy, such as the standards currently recommended by UDDI registries, e.g. UNSPSC or NAICS. Now starting from a taxonomy and a means to represent the semantic information of a web service, the classification process is based on comparing the new generated web services with some services previously classified in the taxonomy. From this comparison, we obtain a similarity measure representing the probability that a service should be placed under a certain classification category in the taxonomy. The definition of similarity measures between taxonomy concepts has been already addressed, for example, by <ref type="bibr" target="#b1">Bernstein et al. (2005)</ref>.</p><p>All the details about each issue taking place in the classification process can be found in the following subsections. More precisely, in section 3.1, all the information about the representation of web service semantics can be found. Next, in section 3.2, we will explain some details related to the taxonomy we are going to use and the previously classified services we will use for comparisons. Finally, in section 3.3, we will show the complete process we will apply to obtain the similarity measure between services and taxonomy classes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Semantic annotation of web services</head><p>Our first step towards the achievement of the classification mechanism is to obtain, define and represent all the extra needed semantic information for a service. As it has been already said, there are mainly, at the present time, two initiatives on semantic description languages for web services: OWL-S and WSMO. Both of these languages provide a highly generic way to describe semantic information about a web service. Because of this, they are considerably complex and difficult to use, even for very simple services. Therefore, we have decided to define a simpler ontology that fits better with our purposes. We do not discard using one of these initiatives in the future, as we gain more generality in our own service descriptions.</p><p>We have chosen OWL <ref type="bibr" target="#b6">(McGuiness et al., 2004)</ref>, widely accepted in the semantic web community, as the ontology-definition language for our service ontology. With this language, we have developed a simple ontology containing all the concepts (classes) and relations (properties) that are described in WSDL service descriptions. The ontology is shown in Figure <ref type="figure" target="#fig_3">3</ref>. In the current status of our research, the ontology does not include much semantics about the different service concepts, but we expect to extend it with new information as soon as it can be automatically or semiautomatically retrieved.</p><p>Using the aforementioned ontology we have an OWL representation of the service in terms of the information described in WSDL. The "extra semantics" in this description with respect to plain WSDL is held:</p><p>• In the "serviceType" property of the "WebService" class. This allows linking the description of the service to a type of service defined in other ontologies (or taxonomies), i.e. the one explained on the section 3.2. • In the "parameterType" property of the "Parameter" class. This allows linking the description of a data type to a type defined in other data type ontologies. With this ontology we add to WSDL the possibility of representing the classification of a web service and a higher-level description of data types. Regarding the latter, and in order to enrich service parameter descriptions, we have defined a data type ontology to which parameter data types will be mapped. This mapping means that the range of the "parameterType" property of the web service ontology described above is conformed by the classes of the data type ontology, the main elements of which are shown in Figure <ref type="figure">4</ref>.</p><p>As can be seen, the ontology defines three kinds of data types:</p><p>• Simple data types: This is an ontological representation of XML Schema data types. The subclasses represent the different kind of data types that can be used in XML Schema (although the classes represented each data type have not been shown in the figure).</p><p>• Complex data types: This is an ontological representation of XML Schema complex types, i.e. structures, which could appear in a WSDL. Obviously, as we do not know, a priori, which structures will be in the analyzed WSDL descriptions, this class is initially empty.</p><p>• Enumerated data types: Despite these data types could be seen as restricted simple types, we have decided to place them under a separate class. This decision is based on the fact that, due to the basis of the generated web services (this is, web applications), the appearance of enumerated data types is very common (i.e. every combo box of an HTML form). Thus, with this ontology we have an OWL representation of the different data types used by a service. These representations are very useful when trying to classify a service, as they can be used as source for a data type similarity comparison between two services.</p><p>Then, with the union of both ontologies we have all the service information needed represented in an ontological way and the possibility of using software agents (i.e. based on OWL reasoners) to perform the classification of the service.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Classification procedure</head><p>Given a set of classified WSDL descriptions under some classification taxonomy, and a newly generated web service description, based on the service ontology and techniques described in previous sections, in order to deploy the new service, and make it available in a service registry, an appropriate classification category should be assigned to the new service, e.g. for easy retrieval.</p><p>As it has been already said, we use the classification standards used by UDDI registries (such as UNSPSC or NAICS) as the taxonomy where our web services will be classified, but our techniques are independent from the standard used. To facilitate our development, and in anticipation of future semantic-web-oriented extensions of our work, we are using an OWL representation of the taxonomy. This has the advantage that the same tools, e.g. OWL reasoners, can be used to process service descriptions and classification hierarchies in a uniform way (e.g. for the computation of similarity measures between services and categories, reasoning about class hierarchies, etc.).</p><p>We have developed a heuristic for automated service classification, based on the comparison of an unclassified service with available classified services, whereby a measure of the likelihood that the service can be correctly classified under some category is computed. This problem is related but different from the ones addressed by other service comparison techniques found in the literature <ref type="bibr" target="#b1">(Bernstein et al., 2005;</ref><ref type="bibr" target="#b5">Sirin et al., 2004;</ref><ref type="bibr" target="#b0">Bansal and Vidal, 2003;</ref><ref type="bibr" target="#b3">Field and Hoffner, 2003)</ref>. In particular, in our approach, the fact that two services are found similar does not mean they are interchangeable for e.g. automatic service selection, composition, or invocation. Instead, the similarity measures provide a ranking of candidate classifications for a new service, which can be of great help for a human service administrator that is facing classification taxonomies with thousands of categories.</p><p>Our heuristic works as follows. Let S be the set of all web services, and let C be a classification taxonomy. Since C is used to classify the services in S, we may define C as a subset of the parts of S, P(S), i.e. each c∈C is a labelled set of services c ⊂ S (note that it is possible that c = ∅). Given a new service s∈S, we want to find the category c∈C that maximizes its similarity with s. We measure the similarity between s and c is by the following formula: ∑ ∏ s which can be created or completed with little effort. Some current gaps, that are requiring an effort from our part in compensation, include the construction of a large-enough repository of manually classified WSDL service descriptions (say, by the hundreds), to serve as testbed for our techniques, and some current limitations of available semantic web tools, such as the OWL reasoners. It is to be expected that our workarounds can be removed as these tools keep reaching maturity.</p><p>Rather than aiming at, or starting from, a maximum semantic web service representation expressiveness, as in OWL-S and WSMO, we have approached our research objectives in a bottom-up approach, starting from consolidated, ready-to-use technology, such as WSDL and OWL, already being adopted by industry as of today. From this standpoint, our long-term goals are the same as those of OWL-S and WSMO, namely to bridge the gap between current web service technology, and the vision of Semantic Web Services.</p><p>Our next steps in this direction include: growing the collection of services generated by our platform, stored in our repository; extend the semantic information represented in our service ontology, that can be obtained in an automated way; complete the development of the edition/administration tools to customize and improve the quality of the generated services; further testing, evaluation, and tuning of the automatic web service classification techniques.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>5.</head></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>value=es&gt; &lt;input type=hidden name=ie value="ISO-8859-1"&gt; &lt;input maxLength=256 size=55 name=q value=""&gt;&lt;br&gt; &lt;input type=submit value="Búsqueda en Google" name=btnG&gt; &lt;input type=submit value="Voy a Tener Suerte" name=btnI&gt; &lt;/td&gt; ... &lt;/tr&gt; &lt;tr&gt; &lt;td colspan=3 align=center&gt; &lt;font size=-1&gt;Búsqueda: &lt;input id=all type=radio name=meta value="" checked&gt; ... &lt;input id=lgr type=radio name=meta value="lr=lang_es" &gt; ... &lt;input id=cty type=radio name=meta value="cr=countryES" &gt; ...</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 .</head><label>2</label><figDesc>Figure 2. Generated WSDL for Google home page</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 2 .</head><label>2</label><figDesc>Figure 2. Web service ontology</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 3 .</head><label>3</label><figDesc>Figure 3. Data type ontology (main classes)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>Overview of the web service generation and deployment process in Federica</figDesc><table><row><cell></cell><cell></cell><cell></cell><cell>Federica</cell><cell></cell><cell></cell><cell></cell></row><row><cell>Web Server Web App</cell><cell>HTML</cell><cell></cell><cell>HTML Parser</cell><cell>Page Description</cell><cell cols="2">Semantic Generator</cell><cell>Semantic</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell cols="2">Descriptions</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell>WSDL</cell><cell></cell><cell>Service</cell></row><row><cell>Web Service Client</cell><cell>HTML</cell><cell>HTTP Request</cell><cell cols="2">Tomcat Server Generator</cell><cell>WSDL</cell><cell>Axis Server Implementor</cell><cell>Deploy Service</cell></row><row><cell></cell><cell></cell><cell></cell><cell>Deployed</cell><cell>Deployed</cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell></cell><cell>Service</cell><cell>Service</cell><cell></cell><cell></cell></row><row><cell></cell><cell cols="2">SOAP Request</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell cols="2">SOAP Response</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>Figure 1.</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1 .</head><label>1</label><figDesc>Mapping between HTML components and XML Schema data types</figDesc><table><row><cell>HTML control</cell><cell>XML Schema</cell></row><row><cell></cell><cell>data type</cell></row><row><cell>text</cell><cell></cell></row><row><cell>password</cell><cell>xsd:string</cell></row><row><cell>textarea</cell><cell></cell></row><row><cell>submit</cell><cell></cell></row><row><cell>radio</cell><cell></cell></row><row><cell>checkbox</cell><cell></cell></row><row><cell>hidden</cell><cell>xsd:string,</cell></row><row><cell>select (simple selection)</cell><cell>enumeration</cell></row><row><cell>inputs (same name)</cell><cell></cell></row><row><cell>inputs (with value and</cell><cell></cell></row><row><cell>readOnly attributes)</cell><cell></cell></row><row><cell>select (multiple selection)</cell><cell>xsd:string array, enumeration</cell></row></table></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>ACKNOWLEDGEMENTS</head><p>We would like to thank Ruben Lara for his thorough revision, comments, and suggestions on the early drafts of this paper, which greatly helped to improve our work.</p></div>
			</div>

			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>whereby the similarity between a service and a category is computed in terms of the similarity between the service and the services classified under that category. We have chosen the above formula because it meets the following desired properties:</p><p>• sim(s,c) ∈ [0,1] provided that sim(s,s') ∈ [0,1] ∀s'∈c • sim(s,c) ≥ sim(s,s') ∀s'∈ c (in particular this means that sim(s,c) = 1 if sim(s,s') = 1 for some s').</p><p>• sim(s,c) increases monotonically with respect to sim(s,s') ∀s'∈c, • Since ∀s'∈c, sim(s,c) = sim(s,s') + (1 -sim(s,s')) sim(s, c -{s}), sim(s,c) can be computed efficiently (i.e. with linear Θ(|c|) complexity). Now, the similarity between two services is measured in terms of the similarity of their operations and parameters. If we denote by P s the set of the parameters of service s, and by OP s the set of its operations, the similarity of two services is defined as: Developing a measure for comparing service operations is still work in progress in our research as of this writing, so in the meantime we are working with ( , )   </p><p>The similarity between two parameter sets P and P' is computed as the average of the best possible pairwise similarities obtained by an optimal pairing of the elements from the two sets. This can be formalized as follows. We define top(P,P') as the pair (p,p') ∈ P × P' that maximizes sim(p,p'). Then let P 1 = P, P 1 ' = P', P k = P k-1 -{p k-1 } and P k ' = P' k-1 -{p' k-1 }, where (p k-1 ,p' k-1 ) = top(P k-1 ,P' k-1 ). With these definitions, the similarity between two parameter sets is given by: ( </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>∑</head><p>In our current model, the similarity between two parameters is defined as the similarity between their respective types. Let T denote the set of all types (i.e. the set of domain ontology classes). We define the similarity between two types t∈T, t'∈T as: </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>EnumeratedDataType</head><p>where h(t, t') denotes the distance between t and t' in the type hierarchy (e.g. the distance between a type and its immediate supertype is 1).</p><p>With this process, we can have finally a vector of similarity measures between a new analyzed service and all the taxonomy classes. Then it is time for service publishers to decide on which class (from a ranked list) the service best fits.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">CONCLUSIONS AND FURTHER WORK</head><p>Our work shows that automatic web service generation is feasible. In fact, we have implemented all the ideas shown in this document and have developed a first version of the Federica platform (accessible at http://rhadamanthis.ii.uam.es:8080/federica). In that platform it can be seen that tasks such as generation and deployment of web services are done automatically. It also includes the tools needed for web service execution and testing. Nevertheless, the edition tools that have been discussed in section 2 are not yet integrated with the rest of the platform.</p><p>Our work on semi-automatic classification has some commonalities with the research on web services matchmaking <ref type="bibr" target="#b5">(Sirin et al., 2004;</ref><ref type="bibr" target="#b0">Bansal and Vidal, 2003;</ref><ref type="bibr" target="#b3">Field and Hoffner, 2003)</ref>. The approaches in those proposals are based on the matching between IOPEs (input, output, precondition and effects). As available datasets providing such descriptions are scarce today, at present we restrict our matching methods to service inputs and outputs. Of course, as both semantic web services technology and our research evolve, we could extend and improve our classification techniques by exploiting these new semantic features. We expect this to be an important direction of progress for our work, since the richer the description of services, the more advanced automation techniques can be devised.</p><p>Meanwhile, the goal of this paper is to show it is possible to develop automated assistance capabilities for service generation and classification, using only syntactic descriptions (WSDL), service taxonomies, and data type ontologies (in OWL), which are already in use in the current state of semantic web and web service technology development and adoption, or</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Matchmaking of web services based on the DAML-S service model</title>
		<author>
			<persName><forename type="first">S</forename><surname>Bansal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Vidal</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Autonomous Agents &amp; Multiagent Systems</title>
				<meeting><address><addrLine>AAMAS</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">2003. 2003. 2003</date>
			<biblScope unit="page" from="926" to="927" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">The semantic web</title>
		<author>
			<persName><forename type="first">T</forename><surname>Berners-Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hendler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Lassila</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bernstein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Kaufmann</surname></persName>
		</author>
		<author>
			<persName><surname>Bürku</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">How similar is it? Towards personalized similarity measures in ontologies</title>
				<meeting><address><addrLine>Wirstchaftsinformatic</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2001">2001. 2005. 2005</date>
			<biblScope unit="page" from="1347" to="1366" />
		</imprint>
	</monogr>
	<note>Scientific America</note>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">E</forename><surname>Christensen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Curbera</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Meredith</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Weerawarana</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/wsdl" />
		<title level="m">Web Service Description Language (WSDL)</title>
				<imprint>
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Web services and matchmaking</title>
		<author>
			<persName><forename type="first">S</forename><surname>Field</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Hoffner</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Int. J. Networking and Virtual Organisations</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="16" to="32" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><surname>Gudgin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hadley</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Mendelsohn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J-J</forename><surname>Moreau</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">F</forename><surname>Nielsen</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/soap/" />
		<title level="m">SOAP Version 1.2 -Part 1: Messaging framework</title>
				<imprint>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Martin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Burstein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hobbs</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Lassila</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Mcdermott</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Mcilraith</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Narayanan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Paolucci</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Parsia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Payne</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Sirin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Srinivasan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Scycara</surname></persName>
		</author>
		<ptr target="http://www.daml.org/services/owl-s/" />
		<title level="m">OWL-S: Semantic markup for web services</title>
				<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">L</forename><surname>Mcguiness</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Van Harmelen</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/owl-features/" />
		<title level="m">OWL: Web Ontology Language overview</title>
				<imprint>
			<date type="published" when="2004">2004. 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">B2B with Toshiba Web Service Gateway</title>
		<author>
			<persName><surname>Pham</surname></persName>
			<affiliation>
				<orgName type="collaboration">OASIS UDDI</orgName>
			</affiliation>
		</author>
		<ptr target="http://www.uddi.org/" />
	</analytic>
	<monogr>
		<title level="m">Proc. Recherche Informatique Vietnam &amp; Francophonie 2004 (RIVF</title>
				<meeting>Recherche Informatique Vietnam &amp; Francophonie 2004 (RIVF</meeting>
		<imprint>
			<date type="published" when="2004">2004. 2004. 2004</date>
			<biblScope unit="page" from="137" to="142" />
		</imprint>
	</monogr>
	<note>UDDI: The UDDI technical white paper</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Filtering and selecting semantic web services with interactive composition techniques</title>
		<author>
			<persName><forename type="first">D</forename><surname>Roman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Lausen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Keller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>De Brujin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bussler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Domingue</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Fensel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hepp</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Kifer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>König-Ries</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kopecky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lara</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Oren</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Polleres</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Scicluna</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Stollberg</surname></persName>
		</author>
		<author>
			<persName><surname>Sahuguet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">;</forename><surname>Sisrin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hendler</surname></persName>
		</author>
		<ptr target="http://www.wsmo.org/" />
	</analytic>
	<monogr>
		<title level="m">Web Service Modeling Ontology (WSMO)</title>
				<imprint>
			<date type="published" when="1999">2005. 1999. 1999. 2004</date>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="page" from="42" to="49" />
		</imprint>
	</monogr>
	<note>WysiWyg web wrapper factory</note>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Semantic web enabled web services: State-of-the-art and industrial challenges</title>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">Y</forename><surname>Terziyan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Kononenko</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. International Conference on Web Services 2003</title>
				<meeting>International Conference on Web Services 2003<address><addrLine>ICWS</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">2003. 2003</date>
			<biblScope unit="page" from="183" to="197" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
