<?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">Ontology-based User-defined Rules and Context-aware Service Composition System</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Victoria</forename><surname>Beltran</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Dept of Telematics</orgName>
								<orgName type="institution">Universitat Politècnica de Catalonia/Fundació I2Cat</orgName>
								<address>
									<settlement>Barcelona</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Knarig</forename><surname>Arabshian</surname></persName>
							<affiliation key="aff1">
								<orgName type="institution">Alcatel-Lucent Bell Labs</orgName>
								<address>
									<settlement>New Jersey</settlement>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Henning</forename><surname>Schulzrinne</surname></persName>
							<affiliation key="aff2">
								<orgName type="department">Dept of Computer Science</orgName>
								<orgName type="institution">Columbia University</orgName>
								<address>
									<settlement>New York</settlement>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Ontology-based User-defined Rules and Context-aware Service Composition System</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">EABD51F2476A4EDCE162801DD84EE6F3</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T14:20+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>context-aware systems</term>
					<term>ontologies</term>
					<term>semantic web</term>
					<term>rule-based systems</term>
					<term>service discovery</term>
					<term>service composition</term>
					<term>web services</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The World Wide Web is becoming increasingly personalized as users provide more of their information on the Web. Thus, Web service functionality is becoming reliant on user profile information and context in order to provide user-specific data. In this paper, we discuss enhancements to SECE (Sense Everything, Control Everything), a platform for context-aware service composition based on user-defined rules. We have enhanced SECE to interpret ontology descriptions of services. With this enhancement, SECE can now create user-defined rules based on the ontology description of the service and interoperate within any service domain that has an ontology description. Additionally, it can use an ontology-based service discovery system like GloServ as its service discovery back-end in order to issue more complex queries for service discovery and composition. This paper discusses the design and implementation of these improvements.</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>In recent years, the World Wide Web has been advancing towards greater personalization. Services on the Web such as, social networking, e-commerce or search sites, store user information in order to profile the user and target specific products or ads of interest. Since web service functionality is increasingly relying on user information, a user's context is becoming more crucial towards creating a personalized set of services within the Web.</p><p>As these types of services proliferate, a framework is needed where multiple services can be discovered and composed for a particular user within a certain context. With this in mind, we have developed SECE (Sense Everything, Control Everything), a platform for context-aware service composition based on user-defined rules. The contributions to SECE are two-fold: a user-friendly rule language and the design and implementation of a context-aware service composition framework.</p><p>SECE differs from other rule-based systems in that it provides an interface for creating rules in natural English-like language commands. The main drawback of rule-based systems is that the rule languages involve complex formulaic or XML descriptions. Lay people are not as inclined to use these systems as the learning curve for these languages may be steep. Thus, we have defined a formal rule language which resembles English. With a simplified English-like interface to creating rules, users will be more prone to incorporate rule-based systems into their lives, making context-aware computing a seamless part of everyday life.</p><p>Additionally, SECE provides a platform for context-aware service composition for a number of services, such as, presence, telecommunication, sensors and location-aware services. Users can subscribe to various services by formulating simple rules that create a composition of services. The rules trigger event-based service discovery and composition depending on the user's context, such as her location, time, and communication requests. Traditional rule-based systems are mostly designed to handle a single service domain. SECE, on the other hand, interacts with a few service domains. For more information on the SECE architecture and rule language, we encourage the readers to refer to the following paper <ref type="bibr" target="#b0">[1]</ref>.</p><p>In this paper, we discuss enhancements to both aspects of SECE: its rule language and back-end architecture. Whereas previously SECE had a hard-coded rule language for a limited number of event-based service domains, we have now improved SECE to use the Web Ontology Language (OWL) description of a service domain to dynamically create a rule language for that service domain. Additionally, SECE's architectural platform has been modified to integrate with a back-end ontology-based global service discovery system, GloServ, to access any type of service domain within the GloServ directory <ref type="bibr" target="#b1">[2]</ref>  <ref type="bibr" target="#b2">[3]</ref>. GloServ classifies services in an ontology and provides ontology descriptions of different service domains. It also has an ontology-based query interface for service discovery and composition.</p><p>With these improvements, SECE can now be generalized to include all types of service domains, described in an ontology, as well as issue more complex ontology-based queries for service discovery and composition. Having the ability to adapt a rule language to new service domains makes SECE into a powerful front-end context-aware system. Additionally, by using GloServ as its back-end, SECE can now interoperate with any type of service that has an OWL description, broadening its scope drastically. We envision that SECE will enable services to seamlessly integrate into people's lives. A person can now create rules with ease and be notified of services at the right time and place. This will create a profound impact in how people interact with services. There will now be a closer connection between a person and services available, establishing a personalized network of services.</p><p>The organization of this paper is as follows: Section 2 describes current work in the field of context-aware computing and service composition; Section 3 gives an overview of the original SECE architecture and functionality; we discuss the enhancements to SECE and its implementation in Section 4; Section 5 discusses future work; finally, Section 6 summarizes the main contributions of this paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Related Work</head><p>Several solutions for user created services have been proposed; some of these solutions are compared to SECE in Figure <ref type="figure" target="#fig_0">1</ref>. The second column indicates the user language for defining events and conditions that trigger action scripts. The third column indicates the language for action scripts. The fourth column shows the kinds of communication services that the users can use. The following columns show the types of information handled by the systems. CPL <ref type="bibr" target="#b3">[4]</ref>, LESS <ref type="bibr" target="#b4">[5]</ref>, SPL <ref type="bibr" target="#b5">[6]</ref>, VisuCom <ref type="bibr" target="#b6">[7]</ref> and DiaSpec <ref type="bibr" target="#b7">[8]</ref> are attempts to allow end users to create services, but they are all limited to controlling call routing. Also, CPL and LESS use XML and, hence, even simple services require long programs. Moreover, XML-based languages are difficult to read and write for non-technical end-users. DiaSpec is very low level. Writing a specification in DiaSpec and then developing a service using the generated framework is definitely not suitable for non-technical end users. The authors of DiaSpec extended <ref type="bibr" target="#b8">[9]</ref> their initial work to support services beyond telephony, which include sensors and actuators. However, it is still only suitable for advanced developers. SPL is a scripting language which is suitable for end-users but only for telephony events. VisuCom has the same functionality as SPL, but allows users to create services visually via GUI components. CybreMinder <ref type="bibr" target="#b9">[10]</ref> is a context-aware tool which allows users to setup email, SMS, print out and on-screen reminders based not only on time but also location and presence status of other users. It uses local sensors to detect a user's location. It does not take any actions, but rather displays reminders to the end user. Also it is not as powerful as scripting-based systems due to its form-based nature. Task.fm <ref type="bibr" target="#b10">[11]</ref> is a similar SMS and email remainder system which uses natural language to describe time instants when email or SMS reminders will be sent. However, Task.fm only supports time-based rules and does not include information from sensors. This tool does not take actions other than reminding users via SMS, email or phone call.</p><p>Regarding composition of web services, SWORD <ref type="bibr" target="#b11">[12]</ref> was one of the first prototypes. However, this offers a quite limited composition that is not automatic and its scripting language is targeted at developers. Ezweb <ref type="bibr" target="#b12">[13]</ref> is a graphical tool by which users can connect web services manually. However, this does not provide automatic web service discovery or a language for composing services. Moreover, service composition is not context-aware and proactive. Yahoo Pipes <ref type="bibr" target="#b13">[14]</ref> is other graphical tool for web service composition. However, it presents the same limitations as Ezweb and its graphical interface is not really easy-to-use and intuitive, which makes it very difficult for non-technical users. We only found a prototype described in a research paper <ref type="bibr" target="#b14">[15]</ref> that offers event-based web service composition. This means that service composition is triggered by events, such as changes in the user's context, instead of end users. However, this work does not provide any language or tool for specifying the web service compositions and events that trigger them. The authors seem to implement low-level compositions that may be personalized according to user preferences. Thus, this does not offer end users control of service composition. Moreover, this prototype seems not to be available in the Internet.</p><p>To the best of our knowledge, there is no implemented platform for allowing end users to compose services of different kind based on events. The current solutions are not proactive because the end-user is who triggers the composite services or only provides template-based compositions (i.e., the user is not who defines the compositions). There is neither a platform for event-based web service discovery. The composition tools that take user context into account, only consider a limited set of context. The graphical interfaces of the studied tools are quite limited and not flexible for non-technical users. The scripting languages provided by some tools are neither suitable for non-technical users and only support a limited set of context information. Moreover, none of the studied tools proactively discover web services based on the user preferences.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">SECE</head><p>SECE is a rule-based context-aware system that connects services, that may have otherwise been disconnected, to create a personalized environment of services for a user. It has two fully-integrated components: user-defined rules in a natural English-like formal language and a supporting software architecture. Users are not required to continually interact with the system in order to query for or compose a set of services. They need to only define rules of what they want to accomplish and SECE does the rest by keeping track of the user's context, as well as information from external entities such as sensors, buddies, or social events in order to notify the user about a service. It accomplishes this by communicating with several third party applications and web services such as Google services (e.g., GMail, GContacts and GCalendar), Social Media services (e.g., Facebook or Twitter), VoIP proxy servers, presence servers, sensors and actuators. Figure <ref type="figure" target="#fig_1">2</ref> gives an overview of the overall SECE architecture and how it interacts with its environment. We will discuss these two components of SECE in this section. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">SECE Architecture</head><p>As Figure <ref type="figure" target="#fig_1">2</ref> depicts, SECE is a web service that interacts with other web services, namely Google Services and Social Media services such as Twitter, Flickr and Facebook. The rules that are running on SECE and the rule actions that will potentially be executed determine the services with which SECE needs to interact. Thus, based on the kinds of rule that the user wishes to create and the actions that she wishes to compose, the user will need to configure the proper third-party services in her SECE account. Section 3.2 explains the SECE rules and actions, and their required services in more detail.</p><p>We are developing two services that tightly collaborate with SECE: the presence server and the VoIP proxy server. The presence server is built on the Mobicents Presence Service <ref type="bibr" target="#b15">[16]</ref>, which is compliant with SIMPLE (SIP for Instant Messaging and Presence Leveraging Extensions) <ref type="bibr" target="#b16">[17]</ref>. It is responsible for collecting and aggregating context from different sources and sending it to SECE. It accomplishes this by receiving presence publications from context sources that contain the latest information about a user and, in turn, notifying SECE of the context changes. In the SECE framework, context sources include user devices' presence applications and gateways that control sensor networks, energy consumption and user location via RFID. To use the presence service, the end user needs to create an account from the SECE website in order to obtain the SECE presence server's access information. Thus, the user can configure the SIMPLEcompliant presence applications (e.g. SIP Communicator and Pidgin) that run on her mobile devices or desktop computers to use the SECE presence server. In the future, the presence server will interact with the home gateway for obtaining information from sensor networks and changing the state of actuators.</p><p>The VoIP proxy server is a SIP (Session Initiation Protocol) Express Router (SER) <ref type="bibr" target="#b17">[18]</ref> extended to interact with SECE for handling users' SIP communi-cations. This server and SECE implement an efficient binary protocol that lets SER inform SECE of a SIP event and lets SECE notify SER of the action to take for this event. Basically, SER informs SECE of users' incoming and outgoing calls and instant messages (IM). If an event of this kind matches a rule, the rule is triggered and, therefore, decides to either forward, reject, or modify the call by invoking an action. Then, SECE will let SER know about the action to take. As the presence service, the user needs to create a SER account through her SECE account for using the VoIP proxy service. The user also needs to set her SIP-compliant multimedia applications to use the SECE VoIP proxy server as outbound/inbound SIP proxy. A first prototype of SECE has already been developed as a web service and is being tested by members of the Internet Real Time (IRT) group at Columbia University. For a more detailed description of the SECE architecture, we refer the readers to the following paper <ref type="bibr" target="#b0">[1]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">SECE rules</head><p>The SECE language supports five types of rules: time, calendar, location, context and communication. As a formal language, it states the valid combinations of keywords and variables for each kind of event and provides a set of commands, such as "sms", "email", "tweet" or "call". SECE rules and actions interact with different third party services based on their subscribed events and functions. Thus, SECE users need to learn about the services needed by the rule types and actions that they wish to use and configure their SECE accounts for such services. SECE will provide online documentation that gives users information about each rule's and action's syntax and required services. This documentation will also contain example rules to help users build rules for specific events and goals, and get familiarized with SECE rules. Figure <ref type="figure">3</ref> summarizes the required and optional services for the SECE rules and some actions.</p><p>Any SECE rule has the structure "event { actions }". Event defines the conditions that need to be satisfied to execute the actions that are delimited by braces. The SECE language for describing events is a formal language similar to English that has been designed to be easy to use and remember by endusers. This language is generated by an ANTLR grammar <ref type="bibr" target="#b18">[19]</ref>. We use the Tcl language <ref type="bibr" target="#b19">[20]</ref> as the syntax for the rule actions. This choice is due to Tcl's extensibility that allows adding new commands to its core with relative ease. Tcl provides a command that receives the name, arguments and code of a new command as parameters, constructs the corresponding Tcl command and incorporates it into the Tcl interpreter. Below, we describe the types of SECE rules and their involved services. In order to clearly display the structure of the rule and action language, the variables that are set by the user are highlighted in bold and the language keywords are italicized.</p><p>Time rules: Below are two types of rules: single time events and recurrent time events. The former starts with the keyword on and the latter starts with the keyword every. Both are fully-compliant with the Internet Calendar (ICal) Fig. <ref type="figure">3</ref>. Third party services of SECE rules and some actions standard <ref type="bibr" target="#b20">[21]</ref>. The on, until, except and including keywords are always followed by a date expression that can have different formats (e.g., "December 31, 2011", "31st day of December, 2011" and "12/31/2011") or can be an entry in the user's GCalendar. In the first example below, the user defined an entry named "Anne's birthday" in her 2011 GCalendar. Calendar rules: These rules specify events that are defined in the user's GCalendar and always start with the keyword when. Thus, the user needs to configure his GCalendar in his SECE account before entering rules of this kind.</p><p>when 30 minutes before "weekly meeting" { email [event participants] "The weekly meeting will start in 30 minutes"; if {{ ! my location within 3 miles of campus } { email [status bob.email] "I'm away" "Please, head the conference room and prepare everything for the weekly meeting. Not sure if I will be on time."; } } Location rules: A location rule starts with the keyword me, if it is about the user that is entering the rule, or an identifier of one of his friends such as a nickname, email and SIP address. Five types of location information are supported: geospatial coordinates, civic information, well-known places, user-specified places and user locations. Different location-related operators can be used, such as near, within, in, outside of or moved. Below we show a location rule using the near operator. Within means that the user is within a radius of the reference point. Near means the same but the radius is a default distance that the user defines in his SECE account.Outside of and in means that the user is outside of and inside the reference point, which must be represented as a polygonal structure. We are working on a location database that allows users to predefine polygonal locations through a GMaps-based graphical interface. Moved means that the user moved the given distance from where he was located when the rule was entered or triggered for the last time. As it stands, SECE has no way of automatically discovering a new type of service, generating a rule language for it and incorporating it in its system. The set of services that are supported in SECE are hard-coded. Thus, we have enhanced SECE to support ontology-based user-defined rules for automatic service discovery. The simple but illustrative example below emails the user whenever a new restaurant that satisfies the given conditions is found.</p><p>Any japanese restaurant that is cheaper than 20$ and whose location contains Manhattan { email me "new restaurant found" "Details: [event description]"; } We have incorporated GloServ, an ontology-based service discovery system, within SECE's back-end architecture. GloServ provides an API whereby service ontology descriptions, for a number of domains, can be downloaded and queried for with an ontology query. GloServ uses the OWL DL ontology to describe its services. Thus, SECE can access these OWL specifications in order to dynamically define rules for the specific service domain. Users are made aware of these services by a front-end application to SECE that displays the discoverable services' descriptions. For each service domain, SECE will provide documentation on how to create rules. Currently, users will still need to learn how the rules are constructed, however, for the future, we plan on building a GUI that will use the ontology description to aid the user in constructing the rules. This section will describe the design and implementation of these enhancements.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">SECE Architecture</head><p>Design Figure <ref type="figure" target="#fig_2">4</ref> outlines the main interactions between SECE, GloServ, frontend applications and web services. We assume that end users are connected to front-end applications, which detatches users from SECE and offers more flexibility. Front-end applications retrieve user data from SECE and allow users to create their rules probably by means of more fancy graphical interfaces, suggestions and user preferences, for example. From the moment at which a web service rule is entered in SECE on, SECE will periodically communicate with GloServ for discovering the web services that match the rule. A GloServ request specifies the web service of interest as a SPARQL query <ref type="bibr" target="#b21">[22]</ref> and matched services' profiles, if any, are sent to SECE into a GloServ response. If a new web service matches a rule, SECE executes the rule's body. SECE has a layered architecture, as Figure <ref type="figure" target="#fig_3">5</ref> shows. For details of each of the components, we encourage the reader to refer to the original SECE paper <ref type="bibr" target="#b0">[1]</ref>. We will discuss the components that have been added to the enhanced SECE architecture in this section.</p><p>The new components that have been added to the SECE architecture are: 1)WBRL rule, which implements the web service rules; 2) Jena Ontology Model, which contains the necessary ontologies' schemes; 3) GloServ Context Mediator, which periodically pulls GloServ for checking out new web services of interest. . Implementation SECE stores the OWL specifications of web services in an ontology database that is built upon the Jena Framework <ref type="bibr" target="#b22">[23]</ref>. When a web service rule is entered into SECE, it has to go through the following steps: 1) parse the rule (i.e., syntactic checking); 2) verify that the described kind of web service exists (i.e., semantic checking); 3) subscribe to the described web service event; and 4) take the rule's actions whenever this event occurs. Figure <ref type="figure">6</ref> outlines the main interactions for creating a web service subscription.</p><p>The SECE core coordinates the software components in SECE. First, the SECE parser checks that the input rule is consistent with the SECE language, which is generated by an ANTLR grammar <ref type="bibr" target="#b18">[19]</ref>. As a result, the parser creates a WSRule object that encapsulates information about the rule, namely a web service event and the actions that will be taken if this event occurs. The web service event is defined by the service name and optionally a set of property constraints in the form of (propertyName, operator, value). If the rule parsing is successful, the SECE core verifies that the rule's web service description corresponds to a web service's ontology. To do it, this interacts with the SECE Ontology Model (i.e., SECEOntModel in Figure <ref type="figure">6</ref>). The SECE Ontology Model encapsulates the Jena database that contains the web services' ontologies and provides convenient functions for searching and retrieving information about them. A web service description is semantically correct if there exists a web service's ontology that describes a service that is named as the described web service and can be associated with the described properties and constraints. Thus, SECE will ask the SECE Ontology Model for the namespace URI of the web service and its properties. If this web service does not correspond to any ontology, the SECE ontology Model returns null values. This means that the rule's web service event is semantically incorrect, which results in aborting rule creation and warning the user. Otherwise, the rule's web service event is semantically correct and the SECE core proceeds to create the corresponding subscription (i.e., WSSubs in Figure <ref type="figure">6</ref>).</p><p>The SECE core then retrieves an event monitor from the Event Monitor Broker (OntEM and EMBroker in Figure <ref type="figure">6</ref>). An event monitor is the agent that watches a particular service and generates an event whenever a new instance of this service is discovered. The Event Monitor Broker maintains a list of the event monitors that are actually monitoring a web service. Thus, if an event monitor for the web service event already exists, the Event Monitor Broker returns it. Otherwise, the Event Monitor Broker creates a new one, appends it to the list of monitors and returns it. Then, the SECE core associates the event subscription with the event monitor and starts the subscription.</p><p>Starting and pausing an event subscription makes it subscribe and unsubscribe to the associated event monitor, respectively. When an event monitor receives a subscription request and there are no other subscribers, it creates the corresponding SPARQL query that describes the web service event. This also starts up a recursive timer to query the GloServ Context Mediator (i.e., GloServCM in Figure <ref type="figure">6</ref>) at fixed intervals with the SPARQL query. If this query results in any matched service, the event monitor creates an OntEvent object that describes the discovered service and notifies the subscriber of this event. Note that the outbound messages between GloServCM and GloServ are omitted in Figure <ref type="figure">6</ref> because of lack of space. When an event monitor is associated with more than one subscriber, the SPARQL query represents the least restrictive subscription. When a web service matches this subscription, the event monitor checks out whether the service matches any of the other subscriptions. Figure <ref type="figure">6</ref> only shows this check on the web service subscription wss through the matched-Serv method. Furthermore, the event monitor maintains a cache of discovered events. When a new subscription is created, this cache is checked out and the matching web services are notified.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">SECE Ontology-based Sublanguage</head><p>SECE provides a simple and generic ontology-based language for end-users to define web service rules. In line with SECE's philosophy, this language looks like natural English and is easy to learn. Its basic structure is "any service whose prop rel value" given that service is a web service class, prop is one of this service class' properties and rel and value represent a restriction on the property. Rel is a relational operator that depends on the property's type: contains and is for strings and =, &lt;, &gt;, ≤ and ≥ for numbers.</p><p>Multiple property constraints can be added by the and and or boolean operators as for example "any shopping offer whose type contains "ski boots" and whose price is cheaper than 150$". Equality on numeric properties can be expressed by the verb has followed by a number and the property name as in "any happy hour and inexpensive bar that has 20 free seats". Users can place property values before the class name when the property works as adjective. In the previous example, the bar class has the boolean properties happyHour and Fig. <ref type="figure">6</ref>. Sequence diagram from entering a web service rule to querying GloServ inexpensive. Boolean constraints can also be expressed by the operators that has (no) and that is (not) as in "any restaurant that has delivery", "any restaurant that is open 24 hours" and "any cultural exhibition that is free and is not crowded".</p><p>Boolean constraints can be applied to class properties or types, which depends on the ontology's structure and is transparent for end-users. An example of boolean property is the above-mentioned delivery property whose domain is the restaurant class. Boolean constraints on class types restrict inherited types as for example "any restaurant that is southamerican" subscribes to restaurants that are subclasses of the southamericanRestaurant class. Therefore, SECE compositions are static in the sense that, once a composition is created, it will not change. We are planning to incorporate dynamic compositions to SECE through automatic web service discovery and composition. Two new SECE actions will add this functionality: find and plan for discovery and composition, respectively. An example rule is shown below, in which the plan and find commands are pseudo-code because they have not been implemented yet. In this example, whenever a new flight is found, other web services are discovered (i.e., hostels, car rentals and restaurants) and composed (i.e., trip planning). Note that the plan action could invoke find to discovery web services that are necessary for the composition. As the discovered web services and the communication with them can be different each time the composition is executed, we say that this composition is dynamic.</p><p>Any domestic flight that is cheaper than 200$ and whose date is after June 1, 2011 { p=plan flight with hostel and car rental; r=find good restaurants according to $p; email me "new plan found" "Details: $p $r"; sms me "New Plan discovered. See email inbox for details!"; } With these two new actions, SECE could perform semantic web service discovery and composition that does not need user interaction to be executed; it is automatically triggered by events. In addition, this would also allow combining static and dynamic composition. For example, the rule above provides dynamic composition through the plan and find actions and static composition through the email and sms actions. As the Semantic Web is not widely adopted yet, hybrids platforms like SECE are necessary to offer users flexible and powerful composition tools. Table <ref type="table" target="#tab_3">1</ref> indicates the types of composition that SECE already supports (white column) and will support in the future (gray columns). Rows define the events that trigger the compositions and columns the types of web service communication in the compositions.  For dynamic compositions, SECE will interact with web services automatically, by retrieving their models and, according to their WSDL specifications, constructing HTTP requests.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusions</head><p>The Semantic Web is investing a great deal of effort in developing standards for providing automatic web service discovery and composition. Although many authors have been interested in this exciting topic in the last decade, complete solutions do not yet exist. Thus, there is a strong need for general-purpose platforms for automatic web service discovery and composition that also provide intuitive and user-friendly interfaces that do not require engineering or technical skills. Besides template-based composition, end users should be able to orchestrate service composition.</p><p>To face all these needs, we present a context-aware, event-based platform for service discovery and composition by integrating two existing solutions: SECE and GloServ. SECE is a user-centric, context-aware platform for service composition that provides a natural-English-like language for creating event-based rules. GloServ is a scalable network for web service discovery. We implemented the communication between GloServ and SECE. We extended SECE with an ontology database that stores the web services' schemes that come from GloServ. We also developed a SECE sublanguage to subscribe to web services, which allows subscribing to web service discovery events by creating rules in a userfriendly language that looks like natural English. This makes SECE suitable for non-technical users. SECE also allows creating service compositions that can be triggered by discovered web services and real-world events such as context changes, location, or time. Modeling SECE rules ontologically can provide front-ends with the means of understanding and learning new SECE rules automatically. Thus, the combination of SECE and GloServ paves the way for future extensions.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Comparison to related work</figDesc><graphic coords="3,152.06,367.33,311.25,109.40" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. SECE and its external components</figDesc><graphic coords="5,165.48,116.83,284.40,168.00" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. SECE, GloServ, front-end applications and web services</figDesc><graphic coords="9,203.88,450.95,207.60,98.10" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. SECE architecture</figDesc><graphic coords="10,230.33,162.91,154.70,130.20" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="12,152.06,116.83,311.24,305.56" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head></head><label></label><figDesc>These specify the action to execute when some context information changes, such as presence or sensor state. These rules always start with the keyword if. If the rule is about the user that is entering the rule, this keyword if followed by my. Otherwise, the if keyword is followed by the friend's identifier. Below, we show an example of a context rule about a friend.</figDesc><table><row><cell cols="2">Bob near "Columbia University" { if{ my status is idle } { call bob; } }</cell></row><row><cell cols="2">Context rules: at</cell></row><row><cell></cell><cell>[incoming time]";</cell></row><row><cell>}</cell><cell>}</cell></row><row><cell cols="2">4 Enhancing SECE Toward Ontology-based User-defined</cell></row><row><cell cols="2">Rules for Automatic Service Discovery</cell></row></table><note>if Bob's status is available { alarm me; } Communication rules: These specify the actions to execute in response to incoming, outgoing or missed communication requests. A request rule can start with the keyword incoming, outgoing or missed, followed by the type of event. The following rule is an example of incoming call handling. incoming call to me.phone.work { if { [ my location is not office] } { autoanswer audio no office.au; email me "[incoming caller] tried to reach you on your work phone</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>5</head><label></label><figDesc>Future Work: Event-Based Context-aware Web Service Composition SystemIntegrating web service rules into SECE brings out exciting possibilities in the Semantic Web. This permits end-users to define and personalize context-aware web service discovery, invocation and composition based on a variety of events. SECE provides a set of actions for users to build up compositions. Some actions interact with web services, such as tweet, publish and email ; other actions send protocol-specific requests, such as call (i.e., SIP INVITE); and others are supportive routines. The set of web services with which SECE communicate is static and the communication is hard-coded.</figDesc><table /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 1 .</head><label>1</label><figDesc>Types of SECE composition</figDesc><table /></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgments. Victoria Beltran was supported by the Spanish Government through the CICYT project TIC2009-11453 and the FPU grant AP2006-02846.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Bridging communications and the physical world: Sense everything, control everything</title>
		<author>
			<persName><forename type="first">O</forename><surname>Boyaci</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Beltran</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Schulzrinne</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings on the IEEE Globecom (UbiCoNet Workshop)</title>
				<meeting>on the IEEE Globecom (UbiCoNet Workshop)</meeting>
		<imprint>
			<date type="published" when="2010-12">December 2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">An ontology-based hierarchical peer-to-peer global service discovery system</title>
		<author>
			<persName><forename type="first">K</forename><surname>Arabshian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Schulzrinne</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Ubiquitous Computing and Intelligence</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page">133</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Service composition in an ontology-based global service discovery system</title>
		<author>
			<persName><forename type="first">K</forename><surname>Arabshian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Dickmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Schulzrinne</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007-09">September 2007</date>
			<pubPlace>New York, NY</pubPlace>
		</imprint>
		<respStmt>
			<orgName>Columbia University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">tech. rep.</note>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Programming Internet telephony services</title>
		<author>
			<persName><forename type="first">J</forename><surname>Rosenberg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Lennox</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Schulzrinne</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Internet Computing, IEEE</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="page" from="63" to="72" />
			<date type="published" when="1999-06">May/Jun 1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Programmable End System Services Using SIP</title>
		<author>
			<persName><forename type="first">Xiaotao</forename><surname>Wu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Henning</forename><surname>Schulzrinne</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Conference Record of the International Conference on Communications (ICC)</title>
				<imprint>
			<date type="published" when="2003-05">May 2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Language Technology for Internet-Telephony Service Creation</title>
		<author>
			<persName><forename type="first">L</forename><surname>Burgy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Consel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Latry</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Lawall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Palix</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Reveillere</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICC &apos;06. IEEE International Conference on</title>
				<imprint>
			<date type="published" when="2006-06">2006. June 2006</date>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="page" from="1795" to="1800" />
		</imprint>
	</monogr>
	<note>Communications</note>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Staging telephony service creation: a language approach</title>
		<author>
			<persName><forename type="first">F</forename><surname>Latry</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mercadal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Consel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IPTComm &apos;07: Proceedings of the 1st international conference on principles, systems and applications of IP telecommunications</title>
				<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="99" to="110" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A SIP-Based Programming Framework for Advanced Telephony Applications</title>
		<author>
			<persName><forename type="first">W</forename><surname>Jouve</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Palix</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Consel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Kadionik</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>IPTComm (H. Schulzrinne, R. State, and S. Niccolini</editor>
		<imprint>
			<biblScope unit="volume">5310</biblScope>
			<biblScope unit="page" from="1" to="20" />
			<date type="published" when="2008">2008</date>
			<publisher>Springer</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">A generative programming approach to developing pervasive computing systems</title>
		<author>
			<persName><forename type="first">D</forename><surname>Cassou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Bertran</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Loriant</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Consel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">GPCE &apos;09: Proceedings of the eighth international conference on Generative programming and component engineering</title>
				<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="137" to="146" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">CybreMinder: A Context-Aware System for Supporting Reminders</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">K</forename><surname>Dey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">D</forename><surname>Abowd</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">HUC &apos;00: Proceedings of the 2nd international symposium on Handheld and Ubiquitous Computing</title>
				<meeting><address><addrLine>London, UK</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2000">2000</date>
			<biblScope unit="page" from="172" to="186" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">task.fm Free SMS and Email Reminders</title>
		<ptr target="http://task.fm" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Sword: A developer toolkit for web service composition</title>
		<author>
			<persName><forename type="first">S</forename><surname>Ponnekanti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Fox</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the Eleventh International World Wide Web Conference</title>
				<meeting>of the Eleventh International World Wide Web Conference<address><addrLine>Honolulu, HI</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Enhancing user-service interaction through a global user-centric approach to SOA</title>
		<author>
			<persName><forename type="first">J</forename><surname>Soriano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Lizcano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hierro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Reyes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Schroth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Janner</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICNS 2008. Fourth International Conference on</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2008">2008. 2008</date>
			<biblScope unit="page" from="194" to="203" />
		</imprint>
	</monogr>
	<note>Networking and Services</note>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<ptr target="http://pipes.yahoo.com/pipes/" />
		<title level="m">Yahoo pipes</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Having Services &quot;YourWay!&quot;: Towards User-Centric Composition of Mobile Services</title>
		<author>
			<persName><forename type="first">R</forename><surname>Kazhamiakin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Bertoli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Paolucci</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Pistore</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Wagner</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Lecture Notes in Computer Science</title>
		<imprint>
			<biblScope unit="volume">5468</biblScope>
			<biblScope unit="page" from="94" to="106" />
			<date type="published" when="2009">2009. 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<ptr target="http://www.mobicents.org/" />
		<title level="m">Mobicents</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<ptr target="http://datatracker.ietf.org/wg/simple/charter/" />
		<title level="m">SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE)</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<ptr target="http://www.iptel.org/ser/" />
		<title level="m">About SIP Express Router</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">The Definitive ANTLR Reference: Building Domain-Specific Languages</title>
		<author>
			<persName><forename type="first">T</forename><surname>Parr</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007">2007</date>
			<publisher>Pragmatic Bookshelf</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">K</forename><surname>Ousterhout</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Jones</surname></persName>
		</author>
		<title level="m">Tcl and the Tk Toolkit</title>
				<meeting><address><addrLine>Upper Saddle River, NJ</addrLine></address></meeting>
		<imprint>
			<publisher>Addison-Wesley</publisher>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>2nd ed</note>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>
		<author>
			<persName><forename type="first">B</forename><surname>Desruisseaux</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">RFC 5545</title>
				<imprint>
			<date type="published" when="2009-09">Sept. 2009</date>
		</imprint>
	</monogr>
	<note>Proposed Standard. Updated by RFC 5546</note>
</biblStruct>

<biblStruct xml:id="b21">
	<monogr>
		<title level="m" type="main">SPARQL Query Language for RDF</title>
		<author>
			<persName><surname>W3c</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/rdf-sparql-query/" />
		<imprint>
			<date type="published" when="2008-01">January 2008</date>
		</imprint>
	</monogr>
	<note type="report_type">Website</note>
</biblStruct>

<biblStruct xml:id="b22">
	<monogr>
		<title level="m" type="main">Jena -A Semantic Web Framework for Java</title>
		<ptr target="http://jena.sourceforge.net/index.html" />
		<imprint/>
	</monogr>
	<note type="report_type">Website</note>
</biblStruct>

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