Marl Ontology Use Cases
Grupo de Sistemas Ingeligentes Marl Ontology

Marl Ontology Use Cases

07 February 2011

This version: http://purl.org/marl/use_cases/0.1/
Latest version: http://purl.org/marl/use_cases/
Editors: Adam Westerski
Authors: Adam Westerski
Contributors: See acknowledgements

Creative Commons License


Abstract

Marl is a standardised data schema (also referred as "ontology" or "vocabulary") designed to annotate and describe subjective opinions expressed on the web or in particular Information Systems. The following document contains examples of metadata annotations for a number of different use cases. For the description of ontology and instructions how to connect it with descriptions of other resources see Ontology Specification.


Table of Contents

  1. Introduction
    1. Opinions on the Web and the opinion mining process
    2. The Semantic Web
    3. What is Marl for?
  2. Use Cases
    1. Movie Opinions
    2. Movie Review Opinions
    3. Product Opinions
    4. Idea Management System Opinions

Appendixes

  1. Changelog
  2. Acknowledgements

1 Introduction

The following specification is a formal description of metadata schema proposal that can be applied to data representing subjective opinions published on the Web. The goal of the following section is to provide the basic knowledge to comprehend the technical part of the specification. As such it shall introduce both Semantic Web and general topic of opinion representation and sentiment analysis.

An important note is that Marl ontology presented here is not a complete model to address the problem of describing and linking opinions online and inside information systems. It marly defines concepts that are not described yet by the means of other ontologies and provides the data attributes that enable to connect opinions with contextual information already defined in metadata created with other ontologies. For detailed instructions and recommendations how to fully model opinions and the results of opinion mining process refer to analysis done by Gi2MO project.

1.1 Opinions on the Web and the opinion mining process

With the birth of Web 2.0 users started to provide their input and create content on mass scape about their subjective opinions related to various topics (e.g. opinions about movies). While this kind of content can be very beneficial for many different uses (e.g. market analysis or predictions) it's accurate analysis and interpretation has not been fully harnessed yet. Information left by the users is often very disorganized and many portals that enable user input leave the user added information unmoderated.

Opinion mining (often referred as sentiment analysis) is one of the attempts bring order to those vast amounts of user generated content. The domain focuses to analyse textual content using special language processing tools and as output provides a quantified judgement of the sentiments contained in the text (e.g. if the text expresses a positive or negative opinion).

Due to the complexity of the problem and attempts to provide efficient and fast tools the area can be devided into three main research directions:

  • document wide sentiment analysis
  • sentence sentiment analysis
  • feature-based sentiment analysis

In relation to the World Wide Web, there is a number of common uses of opinion formalisation and analysis. Firstly, it can be applied on top of search engines to find the desired content and next run it through opinion analysis software to obtain desired statistics (e.g. Swotti). Secondly, such algorithms can used within dedicated systems that use the Web to connect to particular communities and gather their opinions on very specific topics (e.g. Internet shops or review websites).

In relation to the dedicated systems (e.g. Enterprise Systems), there the community collaborative models that have proven successful in the open web are often transferred to large enterprise to enhance knowledge exchange and bring the employees together. The same opinion mining techniques can be applied in such cases to extact particular information and use it for internal statistics and to improve knowledge search across the enterprise (e.g. see use of opinion mining in Idea Management [link]).

1.2 The Semantic Web

The Semantic Web is a W3C initiative that aims to introduce rich metadata to the current Web and provide machine readable and processable data as a supplement to human-readable Web.

Semantic Web is a mature domain that has been in research phase for many years and with the increasing amount of commercial interest and emerging products is starting to gain appreciation and popularity as one of the rising trends for the future Internet.

One of the corner stones of the Semantic Web is research on interlinkable and interoperable data schemas for information published online. Those schemas are often refered to as ontologies or vocabularies. In order to facilitate the concept of ontologies that lead to a truly interoperable Web of Data, W3C has proposed a series of technologies such as RDF and OWL. Marl uses those technologies and the research that comes within to propose an ontology for the particular goal of describing opinions and linking them with contextual information (such as opinion topic, features described in the opinion etc.).

1.3 What is Marl for?

The goals of the Marl ontology to achieve as a data schema are:

  • enable to publish raw data about opinions and the sentiments expressed in them
  • deliver schema that will allow to compare opinions coming from different systems (polarity, topics, features)
  • interconnect opinions by linking them to contextual information expressed with concepts from other popular ontologies or specialised domain ontologies
For more information please refer to Marl usage study done as part of the research in the Gi2MO project.

2. Use Cases

The following use cases aim to show how Marl Ontology could be used in different environments (as in systems) and when applied to to opinions of various complexity and structure.

2.1 Movie Opinions

The examples below present different kinds of opinions about movies and ways of translating them into metadata. In the examples, we used literals to describe the topics of the opinion (describesObject, describesFeature). The ontology specification recommends usage of entity references however we attempt to be flexible in this area and show a more simple usage of literals as well (so "Avatar" could be replaced by "http://dbpedia.org/resource/Avatar_(2009_film)").

Opinion text Opinion metadata Metadata graph
"I like this movie"
marl:extractedFrom: 
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Batman"
marl:polarityValue:
"0.2"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
"I like this movie but it was too long"
Opinion #1:
gi2mo.org/.../comment/054321/opinion/1/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Batman"
marl:polarityValue:
"0.2"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #2:
gi2mo.org/.../comment/054321/opinion/2/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Batman"
marl:describesFeature:
"length"
marl:polarityValue:
"-0.1"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion
"Awful directing, Cammeron is stupid. He just knows how to do good special effects."
Opinion #1:
gi2mo.org/.../comment/054321/opinion/1/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Avatar"
marl:polarityValue:
"-0.5"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/2/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/3/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/4/rdf
rdf:type:
http://purl.org/marl/ns#AggregatedOpinion
Opinion #2:
gi2mo.org/.../comment/054321/opinion/2/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Avatar"
marl:describesFeature:
"directing"
marl:polarityValue:
"-0.4"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #3:
gi2mo.org/.../comment/054321/opinion/3/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"James Cammeron"
marl:describesFeature:
"intellect"
marl:polarityValue:
"-0.6"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #4:
gi2mo.org/.../comment/054321/opinion/4/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Avatar"
marl:describesFeature:
"special effects"
marl:polarityValue:
"0.2"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion

2.2 Movie Reviews Opinions

The examples below present different kinds of opinions about movies and ways of translating them into metadata. In the examples, we used literals to describe the topics of the opinion (describesObject, describesFeature). The ontology specification recommends usage of entity references however we attempt to be flexible in this area and show a more simple usage of literals as well (so "Avatar" could be replaced by "http://dbpedia.org/resource/Avatar_(2009_film)").

In terms of modelling, the descriptions of movie reviews are very similar to movie opinions themselves, however the slight distinction that we show is that the object to which user is referring can very between the 'movie' (and its features/characteristics) or the 'movie review'. The examples below show how to combine those two situations using Marl.

Opinion text Opinion metadata Metadata graph
"The review is very good."
marl:extractedFrom: 
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Batman Movie Review"
marl:polarityValue:
"0.7"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
"The review is completely off, the acting was great!"
Opinion #1:
gi2mo.org/.../comment/054321/opinion/1/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Avatar Movie Review"
marl:polarityValue:
"-0.2"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #2:
gi2mo.org/.../comment/054321/opinion/2/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Avatar"
marl:describesFeature:
"acting"
marl:polarityValue:
"0.5"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
"I don't agree with the review, it is too simple yet far too long. Also the given rating is just silly."
Opinion #1:
gi2mo.org/.../comment/054321/opinion/1/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Avatar Movie Review"
marl:polarityValue:
"-0.3"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/2/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/3/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/4/rdf
rdf:type:
http://purl.org/marl/ns#AggregatedOpinion
Opinion #2:
gi2mo.org/.../comment/054321/opinion/2/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Avatar Movie Review"
marl:describesFeature:
"length"
marl:polarityValue:
"-0.4"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #3:
gi2mo.org/.../comment/054321/opinion/3/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Avatar Movie Review"
marl:describesFeature:
"complexity"
marl:polarityValue:
"-0.4"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #4:
gi2mo.org/.../comment/054321/opinion/4/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Avatar Movie Review"
marl:describesObjectPart:
"rating"
marl:polarityValue:
"-0.2"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion

2.3. Product Opinions

The examples below present different kinds of opinions about movies and ways of translating them into metadata. In the examples, we used literals to describe the topics of the opinion (describesObject, describesFeature). The ontology specification recommends usage of entity references however we attempt to be flexible in this area and show a more simple usage of literals as well (so "iPad" could be replaced by "http://dbpedia.org/resource/iPad" or locally established product dataset e.g. using GoodRelations "http://gi2mo.org/product/iPad").

On the modelling side products are not that distinctive from movies. However, in the following examples we aim to use dedicated ontologies to show the use of entities stead of literals to point to particular products. Furthermore, the express product characteristics SKOS taxonomy is established. For details see attached RDF/XML samples or view the metadata graphs.

Opinion text Opinion metadata Metadata graph
"The iPad has a very good performance and its apps a very useful (e.g. Angry birds are very cool). It is definitely a good gadget to buy."
Opinion #1:
gi2mo.org/.../comment/054321/opinion/1/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../product/iPad
marl:describesFeature:
http://gi2mo.org/.../feature/performance
marl:polarityValue:
"0.4"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #2:
gi2mo.org/.../comment/054321/opinion/2/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../product/iPad
marl:describesObjectPart:
http://gi2mo.org/.../component/application
marl:describesFeature:
http://gi2mo.org/.../feature/usability
marl:polarityValue:
"0.4"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #3:
gi2mo.org/.../comment/054321/opinion/3/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../product/Angry_Birds
marl:polarityValue:
"0.4"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #4:
gi2mo.org/.../comment/054321/opinion/4/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../product/iPad
marl:polarityValue:
"0.4"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/1/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/2/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/3/rdf
rdf:type:
http://purl.org/marl/ns#AggregatedOpinion
"This Dell M1130 ultraportable is a great piece of hardware but its missing a backlit keyboard, and the touchpad responsiveness in my unit is awful."

Opinion #1:
gi2mo.org/.../comment/054321/opinion/1/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../product/M1330
marl:describesObjectPart:
http://gi2mo.org/.../laptop/hardware
marl:polarityValue:
"0.3"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #2:
gi2mo.org/.../comment/054321/opinion/2/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../product/M1330
marl:describesObjectPart:
http://gi2mo.org/.../laptop/ hardware/keyboard
marl:describesFeature:
http://gi2mo.org/.../laptop/ hardware/keyboard/backlit
marl:polarityValue:
"-0.2"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #3:
gi2mo.org/.../comment/054321/opinion/3/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../product/M1330
marl:describesObjectPart:
http://gi2mo.org/.../laptop/ hardware/touchpad
marl:describesFeature:
http://gi2mo.org/.../laptop/ hardware/keyboard/touchpad/responsiveness
marl:polarityValue:
"-0.4"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion

2.4 Idea Management System Opinions

Opinions posted in Idea Management systems are a mix of all three cases above. Users of those systems comment directly on a particular idea or on the product that the idea is connected to (just like with movie reviews). In addition, the comments often just reformulate the original idea and express sentiments in between so they can be used both to rank the idea but also as supplementary information. In the examples we show the use of both literals as well as dedicated ontologies to describe origin of idea opinions (inside Idea Management Systems) or the topic of opinions (like with product opinions).

Opinion text Opinion metadata Metadata graph
"I agree with this comment, but would also just like to see a wider variety of syrups. Period. I would personally love to see Amaretto and Irish Cream. The current syrups are kinda getting old..."
Opinion #1:
gi2mo.org/.../comment/054321/opinion/1/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../comment/012345/rdf
marl:polarityValue:
"0.5"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #2:
gi2mo.org/.../comment/054321/opinion/2/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../product/coffee
marl:describesObjectPart:
http://gi2mo.org/.../coffee/syrup
marl:describesFeature:
http://gi2mo.org/.../feature/variety
marl:polarityValue:
"0.6"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #3:
gi2mo.org/.../comment/054321/opinion/3/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Amaretto"
marl:polarityValue:
"0.8"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #4:
gi2mo.org/.../comment/054321/opinion/4/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
"Irish Cream"
marl:polarityValue:
"0.8"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #5:
gi2mo.org/.../comment/054321/opinion/5/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../idea/0321/rdf
marl:polarityValue:
"0.7"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/1/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/2/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/3/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/4/rdf
rdf:type:
http://purl.org/marl/ns#AggregatedOpinion
"I think this idea is good but undoable, E9300 laptop is already too heavy."

Opinion #1:
gi2mo.org/.../comment/054321/opinion/1/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../product/E9300/rdf
marl:describesFeature:
http://gi2mo.org/.../laptop/feature/weight
marl:polarityValue:
"-0.2"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #2:
gi2mo.org/.../comment/054321/opinion/2/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../idea/0321/rdf
marl:describesFeature:
http://gi2mo.org/.../idea/metric/feasibility
marl:polarityValue:
"-0.5"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #3:
gi2mo.org/.../comment/054321/opinion/3/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../idea/0321/rdf
marl:polarityValue:
"0.3"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Positive
rdf:type:
http://purl.org/marl/ns#Opinion
Opinion #4:
gi2mo.org/.../comment/054321/opinion/4/rdf
marl:extractedFrom:
http://gi2mo.org/.../comment/054321/rdf
marl:describesObject:
http://gi2mo.org/.../idea/0321/rdf
marl:polarityValue:
"-0.2"
marl:minPolarityValue:
"-1"
marl:maxPolarityValue:
"1"
marl:hasPolarity:
http://purl.org/marl/ns#Negative
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/1/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/2/rdf
marl:aggregatesOpinion
http://gi2mo.org/.../opinion/3/rdf
rdf:type:
http://purl.org/marl/ns#AggregatedOpinion

The examples presented here have been composed manually and deliberately made complex to show different uses of Marl. In reality, with the contemporary algorithms and solutions such accuracy with determining sentiments, features and objects might be hard to achieve - for more simple yet realistic samples on expressing Idea Management Opinions please see a RDF/XML data export for opinions taken from a simple Idea Management System instance installed for ETSIT school of Universidad Politecnica de Madrid. Furthermore, we recommend reading Marl Query Experiments document for hints and examples how to use the linked opinion data for Idea Management Systems.

A Changelog

  • First version of the document

B Acknowledgements

The style formatting of the following document has been inspired on FOAF specification.

Special thanks for support with Marl ontology creation and research to: Prof. Carlos A. Iglesias and members of the GSI Group of DIT department of Universidad Politécnica de Madrid.