# From Service Composition to Mashup Editor: A Multiperspective Taxonomy
## 5 Mashups Editors: An End-User Services Composition Environment
### MARMITE
#### 5.2.2 Natural Language Editor  
The introduction of the semantic Web paradigm in service-oriented architectures enables explicit representation and reasoning about services via a semantically rich description of their operations. Natural language composition focuses on the development of interactive service composition tools that use a textual user interface based on a natural language. For instance, Ref. [88] introduces an approach towards service selection and composition based upon the  
Figure 10: HousingMaps programmed in MARMITE.  
interpretation of user requests expressed through an informal human-computer interaction interface that employs a controlled (restricted) natural language.  
First introduced in [89] and then furthered in the SERVERY ([[http://projects.celtic-initiative.org/servery/](http://projects.celtic-initiative.org/servery/)]([http://projects.celtic-initiative.org/servery/](http://projects.celtic-initiative.org/servery/)), accessed on 27 March 2016) project, the natural language composer is used to create composite services based on the interpretation of a service request performed using a restricted natural language. This interpretation is obviously constrained by the number of service components that are annotated for natural language usage. An example of a sentence that can be interpreted is \"Send by SMS Paris weather translated in English\", which will result in the on-the-fly creation of a service that will sequence three basic services: the retrieval of the weather forecast from Paris, a translation of a given text in English, and, finally, SMS sending Figure 12. Four main steps are performed to make the system capable of interpreting such sentences and generating a service that can be executed:  
1. Based on the natural language annotation of services in the system, the parsing of sentences is generally recursive in order to analyze and then find a possible candidate among the list of existing annotated services;
2. The interpretation graph is constructed (in an intermediate formalism);
3. Based on the interpretation graph, the system generates the orchestration script in order to create a sequence of service calls, and the arguments are appropriately assigned;
4. The script is deployed into a given execution technology.  
Ubiquity  
Ubiquity is an add-on for Mozilla Firefox ([[https://wiki.mozilla.org/Labs/Ubiquity](https://wiki.mozilla.org/Labs/Ubiquity)]([https://wiki.mozilla.org/Labs/Ubiquity](https://wiki.mozilla.org/Labs/Ubiquity)), accessed on 06 October 2022) introduced by Mozilla labs [90]. It is an experimental interface based on a natural language input. It is a collection of quick and easy natural-language-derived commands that act as Mashups of Web services, thus allowing users to obtain information and relate it to current and other Web pages. Users' requests are based on restricted natural language commands that can be extended by the community (see  
Figure 11: Open Mashups Studio screenshot.  
Figure 13). Basically, Ubiquity commands are small chunks of JavaScript (as an intermediate scripting language) that can be interfaced with Web services.