Grupo de Sistemas Ingeligentes

Onyx Ontology Specification

V1.5 - 14 January 2015

This version: http://gsi.dit.upm.es/ontologies/onyx/1.5 (RDF/XML, HTML)
Latest version: http://gsi.dit.upm.es/ontologies/onyx
Previous version: http://gsi.dit.upm.es/ontologies/onyx/1.4 (RDF/XML, HTML)
Editors: J. Fernando Sánchez-Rada
Authors: J. Fernando Sánchez-Rada
Contributors: See acknowledgements

Creative Commons License


Abstract

Onyx is a standardised data schema (also referred as "ontology" or "vocabulary") designed to annotate and describe the emotions expressed by user-generated content on the web or in particular Information Systems. The following document contains the description of the ontology and instructions on how to connect it with descriptions of other resources.


Table of Contents

  1. Introduction
    1. Opinions on the Web and the opinion mining process
    2. The Semantic Web
    3. What is Onyx for?
  2. Onyx ontology at a glance
  3. Onyx ontology overview
    1. Example
  4. Cross-reference for Onyx classes and properties Classes and Properties

Appendixes

  1. Changelog
  2. Acknowledgements

1 Introduction

The following specification is a formal description of metadata schema proposal that can be applied to emotions extracted from user-generated content 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.

Onyx aims to complement the Marl Ontology by providing a simple means to describe emotion analysis processes and results using semantic technologies.

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 disorganised 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 divided into three main research directions:

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 extract 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 inter-linkable and interoperable data schemas for information published online. Those schemas are often referred 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. Onyx 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 Onyx for?

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

2. Onyx ontology at a glance

An alphabetical index of Onyx terms, by class (concepts) and by property (relationships, attributes), are given below. All the terms are hyperlinked to their detailed description for quick reference.

3. Onyx ontology overview

The Onyx class diagram presented below shows connections between classes and properties used for describing opinions.

Class and Properties Diagram for the Onyx Ontology
Class and Properties Diagram for the Onyx Ontology (high resolution version: PNG)

3.1. Example

A very basic example below shows a single opinion annotated with Onyx metadata:

4. Cross-reference for Onyx classes and properties

Below see a comprehensive list of all Onyx classes, properties and their descriptions.

Classes and Properties (full detail)


Classes

Class: onyx:AggregatedEmotion

AggregatedEmotion - The same as Emotion, used to aggregate several emotions
Status: unknown
Properties include: aggregatesEmotion
Sub class of Emotion
OWL Class

[#] [back to top]


Class: onyx:AggregatedEmotionSet

AggregatedEmotionSet - The same as the EmotionSet class but indicates that the properties of this class aggregate all the emotions detected in the "extractedFrom" source. If the aggregatesEmotionSet property is used this class could be created to aggregate only certain emotions.
Status: unknown
Properties include: aggregatesEmotionSet
Sub class of EmotionSet
OWL Class

[#] [back to top]


Class: onyx:Emotion

Emotion - Class that represents emotions in a generic way
Status: unknown
Properties include: algorithmConfidence hasEmotionIntensity
Used with: aggregatesEmotion hasEmotion
Has sub class AggregatedEmotion
OWL Class

[#] [back to top]


Class: onyx:EmotionAnalysis

EmotionAnalysis - The action of analysing the sentiment in an entity. It produces an onyx:emotion
Status: unknown
Properties include: source algorithm
Sub class of http://www.w3.org/ns/prov#:Activity
OWL Class

[#] [back to top]


Class: onyx:EmotionCategory

EmotionCategory - Class that represents an emotion category (anger, happiness, etc.)
Status: unknown
Properties include: modelName
Used with: hasEmotionCategory
OWL Class

[#] [back to top]


Class: onyx:EmotionModel

EmotionModel - Represents an Emotion Representation Model, grouping its categories, dimensions, properties...
Status: unknown
Properties include: hasDimension hasAppraisal
Used with: usesEmotionModel
OWL Class

[#] [back to top]


Class: onyx:EmotionSet

EmotionSet - Describes the concept of emotion expressed in a certain text.
Status: unknown
Properties include: extractedFrom hasEmotion emotionText domain
Used with: aggregatesEmotionSet hasEmotionSet
Sub class of http://www.w3.org/ns/prov#:Entity
Has sub class AggregatedEmotionSet
OWL Class

[#] [back to top]


Class: onyx:Media

MediaContext - Extends the NIF context to represent contexts with Multimedia. It is the equivalent of nif:String
Status: unknown
Sub class of http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#:Context
OWL Class

[#] [back to top]


Properties

Property: onyx:ActionTendency

ActionTendency - Action Tendency of the emotion: a desire to behave in select communicative or important actions that are connected to a particular feeling.
Status: unknown
Datatype Property

[#] [back to top]


Property: onyx:Appraisal

Appraisal - Parent for Appraisal properties.
Status: unknown
Datatype Property

[#] [back to top]


Property: onyx:Dimension

Dimension - Parent for Dimension properties.
Status: unknown
Datatype Property

[#] [back to top]


Property: onyx:aggregatesEmotion

aggregatesEmotion - Indicates that the AggregatedEmotion has been derived from other Emotions.
Status: unknown
Domain: AggregatedEmotion
Range: Emotion
Object Property

[#] [back to top]


Property: onyx:aggregatesEmotionSet

aggregatesEmotionSet - Indicates that the emotions associated to this entity are a calculation (eg. average) of the emotions in other EmotionSets.
Status: unknown
Domain: AggregatedEmotionSet
Range: EmotionSet
Object Property

[#] [back to top]


Property: onyx:algorithm

algorithm - The algorithm used in the Sentiment Analysis.
Status: unknown
Domain: EmotionAnalysis
Object Property

[#] [back to top]


Property: onyx:algorithmConfidence

algorithmConfidence - A numerical value that represents the accuracy of result as estimated by the algorithm itself (how much the emotion matches a gives object/product).
Status: unknown
Domain: Emotion
Range: xsd:float
Datatype Property

[#] [back to top]


Property: onyx:emotionText

emotionText - The exact text extract that expresses the emotion. This can be used when entity/text pointed by extractedFrom contains many emotions. For example extractedFrom can point to a comment that contains many emotions about a movie, each emotion should have a separate onyx:Emotion and optionally an emotionText property to indicate the specific text fragment of the comment.
Status: unknown
Domain: EmotionSet
Datatype Property

[#] [back to top]


Property: onyx:extractedFrom

extractedFrom - Indicates the text from which the emotion has been extracted.
Status: unknown
Domain: EmotionSet
Range: owl:Thing
Inverse property of the anonymous defined property with the label 'hasEmotionSet' (Object Property)
Object Property

[#] [back to top]


Property: onyx:hasActionTendency

hasActionTendency - Action tendency of the Emotion.
Status: unknown
Domain: onyx:EmotionModel
Range: ActionTendency
Object Property

[#] [back to top]


Property: onyx:hasAppraisal

hasAppraisal - Used to list the appraisals that a model defines
Status: unknown
Domain: EmotionModel
Range: Appraisal
Object Property

[#] [back to top]


Property: onyx:hasDimension

hasDimension - Used to define the Dimensions of an Emotion Model
Status: unknown
Domain: EmotionModel
Range: Dimension
Object Property

[#] [back to top]


Property: onyx:hasEmotion

hasEmotion - Used to express the individual emotions within an EmotionSet.
Status: unknown
Domain: EmotionSet
Range: Emotion
Object Property

[#] [back to top]


Property: onyx:hasEmotionCategory

hasEmotionCategory - Value that represents the type of emotion.
Status: unknown
Domain: onyx:Emotion or onyx:EmotionModel
Range: EmotionCategory
Object Property

[#] [back to top]


Property: onyx:hasEmotionIntensity

hasEmotionIntensity - Value that quantifies the intensity of the emotion.
Status: unknown
Domain: Emotion
Range: xsd:float
Datatype Property

[#] [back to top]


Property: onyx:hasEmotionSet

hasEmotionSet - Indicates that a certain text has a subjective set of emotions expressed in it.
Status: unknown
Domain: owl:Thing
Range: EmotionSet
Has inverse property extractedFrom
Object Property

[#] [back to top]


Property: onyx:modelName

modelName - Human readable name of the model
Status: unknown
Domain: EmotionCategory
Range: xsd:string
Datatype Property

[#] [back to top]


Property: onyx:source

source - Source from which the emotion was extracted (URL, Site, Entity...)
Status: unknown
Domain: EmotionAnalysis
Object Property

[#] [back to top]


Property: onyx:sourceText

sourceText - Optional value that contains the text from which the emotionText was taken.
Status: unknown
Datatype Property

[#] [back to top]


Property: onyx:usesEmotionModel

usesEmotionModel - Specifies the Emotion Model used. Mainly used to describe Emotion Analysis activities.
Status: unknown
Range: EmotionModel
Object Property

[#] [back to top]


A Changelog

2013-07-26

2013-07-26

2013-07-21

2013-07-17

2013-06-27

2013-05-10

B Acknowledgements

This documentation has been generated automatically from the most recent ontology specification in OWL using a python script called SpecGen. The style formatting has been inspired on FOAF specification.

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

This ontology has been modified and updated to be used in the EUROSENTIMENT Project