EzWeb

RECommendations Ontology

A vocabulary to formalize preferences in the Semantic Web

Working Draft - 16 December 2009

This version:
http://ontologies.ezweb.morfeo-project.org/reco/spec-20091216
Latest version:
http://ontologies.ezweb.morfeo-project.org/reco/spec
Last Update:
Date: 16 December 2009
Editors:
Luis Polo (Fundación CTIC)
Ivan Mínguez (Fundación CTIC)
Emilio Rubiera (Fundación CTIC)
Contributors:
Diego Berrueta (Fundación CTIC)
Sergio Fernández (Fundación CTIC)
Acknowledgements:
See acknowledgements

Abstract

This document is the specification of a formal vocabulary for recommendations in the Semantic Web. The aim of this ontology is to provide the main design patterns to formalize preferences in the OWL-DL language, providing concepts and properties to represent different kind of preferences, user demands on marketplaces and utilities of resources. This ontology is designed as a generic model, thus its scope is not limited to the context of the EzWeb project. RECO vocabulary intends to be widely adopted by the Linked Data community as it provides the means to represent preference relations in combination with any RDFS/OWL vocabularies.

Status of this Document

This document has been reviewed by the involved partners in this workpackage and other interested parties and it contains the final design of RECO Ontology. This specification has been expressed in earlier versions and widely reviewed satisfying the needs of the project.

This document is generated by combining a machine-readable RECO Ontology Namespace expressed in RDF/XML with a specification template. This document may be updated from implementation experience, but no commitment is made by the authors regarding future updates.

Table of Contents

  1. Introduction
  2. Ontology at a glance
  3. Ontology overview
    1. Preferences
    2. Utility and Recommendations
    3. Demands
    4. Design patterns
      1. Simple and composite preferences
      2. Composite preference (AND)
      3. Composite preference (UNION)
      4. Datatype constraints on preferences
      5. "Who can exert a preference"
  4. Cross-reference for ontology classes and properties
  5. Ontology namespaces referenced in this specification

Appendices

  1. References

1. Introduction

This document presents an OWL ontology for representing preferences in the context of the Semantic Web. A preference will be defined in this ontology as a desire of a person about properties of objects, for instance, “John loves blue and sportive cars”. This information seems to be essential in order to allow the description of people interests and appealingness in RDF/OWL.

This ontology is under a normative namespace:

http://ontologies.ezweb.morfeo-project.org/reco/ns#

Using content negotiation and following the best practice recipes for publishing RDF vocabularies [RDF Recipes], the ontology can be accessed to a human-readable specification (this document) and to a RDF document with formal definition of the terms used.

This vocabulary and its specification corresponds to the Deliverable D2.1 of the EzWeb project.

2. Ontology at a glance

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

Classes: CompositePreference, Demand, Filter, ModalDescription, Operator, Pattern, Preference, Profile,

Properties: andComposition, asksFor, desireTowards, excludedPreference, filter, internallyRepresents, negativePreference, notDesireTowards, operator, positivePreference, refinedBy, requiredPreference, unionComposition, utilityValue,

3. Ontology overview

This section provides a general description of the ontology, explaining the main concepts such as preference or demand. Moreover, this section introduces the most basic design patterns for using the vocabulary of the ontology: simple and composite preferences and datatype constraints. RECO ontology is specially designed to be used by matchmaking and recommendation applications that are fueled by user desires and preferences.

The diagram below graphically shows in a global way the concepts and properties comprising RECO:

Overview-Diagram

3.1 Preferences

The central concept of the ontology is preference, which is defined as a desire of a rational agent about properties of objects. A preference might be interpreted as a set of matchmaking conditions in a particular set of resources or objects, where they should satisfy this conditions in order to be considered valid, suitable or even useful. Personalized recommendations must be generated using the proper preferences of users, matching their actual desires and interests.

Preferences may be identified both as blank nodes or named resources. In this specification we alternate examples using both options. Notice that blank nodes are interpreted using standard RDF semantics, conditioning the reusability of preferences outside the RDF graph where they are defined.

3.2 Utility and recommendations

Preferences can be ranked depending on the interest of users. For instance, if you consider the expression "I like grapes, but I would rather select pineapples", this means that you like both fruits but if you have to decide you would choose the last one. In our approach, instead of using fuzzy operators that bring us the modal semantics of preference, we decided to use a numerical value to determine the salience of the preference. Therefore the ranking of preferences is easily calculated taking into account their saliency, called in the ontology reco:utilityValue:

Diagram 3

In addition, the property reco:utilityValue is also used to represent the utility of a candidate, where we understand utility as a measurement of the user satisfaction about an object or resource. Basically, the utility is a function that maps resources from a set of candidates to real numbers considering the user preferences the candidates fulfill. The numerical value of the utility is represented using the property reco:utilityValue. Thefore, given two resources ex:A and ex:B, if the utility for a rational agent of ex:A is greater than the utility of ex:B: i.e., U(ex:A) > U(ex:B), then the agent prefers ex:A to ex:B.

ex:A   reco:utilityValue  "0.7"^^xsd:float .

ex:B   reco:utilityValue  "0.3"^^xsd:float .

This relation of "preference" is used to produce recommendations (i.e., to make decisions and selections over maketplaces of candidates) because it introduces a partial order between a set of candidates (i.e., a ranking of the marketplace resources). Therefore, this ordered list of candidates might be used by applications to generate personalized recommendations and suggestions to the user. In this sense, utilities (expressed with reco:utilityValue) may be used to rationalize the relators of the Preference Logic whether the following axioms of the Utility Principle hold:

In the Preference Logic, the relation of preference between two candidates of a marketplace is represented by means of the relator: relator, i.e., ex:A is preferred than ex:B. Moreover, the relator relator is used to represent the indifference of an agent between two candidates.

The scale to measure the utility is arbitraty. It depends on the requirements of particular applications of the vocabulary. Usually, utility values will be normalized within the range (0,1), although this is not mandatory nor normative.

3.3 Demands

A more complex case can be considered when preferences are grouped together. Combined in such a way, a group of preferences set up a demand. From the user's point of view, a demand is another kind of modal description representing the willingness of a user to "purchase" or acquire a commodity or a service. A demand is always evaluated in a particular marketplace of objects, where the set of preferences comprising a demand expresses a set of matchmaking conditions.

Furthermore, demands feature four different groups of preferences. Each type of preference plays a differente role in the interpretation of the demand on a particular marketplace of resources.

Following, there is an illustration of a demand using the ontology:

Diagram 4

3.4 Design patterns

This subsection presents the basic guidelines for representing preferences using the RECO vocabulary.

3.4.1 Simple and complex Preferences

A desired condition of a commodity in a preference is expressed by a statement of the form (preference, P, O) where:

  1. (preference, P, O) is an RDF triple.
  2. P is any property (from rdf:type to any other property) and O is any resource of an external vocabulary or ontology.
  3. P is any property of an external vocabulary or ontology and O is a reco:Pattern.
  4. P is the reco:filter property and O is an instance of the class reco:Filter that expresses a condition on a datatype property of an external vocabulary or ontology.

Sometimes preferences are more complex than a simple triple (preference, P, O). Consider for instance a preference like the following: "Crime films starred by people born in Spain". This preference has two conditions. The first one is very simple: "Crime films". It declares the film genre desired by the user. However, the second one requires a more complex analysis: "starred by people being born in Spain". A film is starred by actors and these actors (as any individual) have their own semantic description. This time the condition is not asking about a property of films, but about a property of the actors starring in a film (i.e. the Spanish nationality). Therefore, a film that satisfies the conditions of the preference has to be not only a crime film but the starring actors must be Spanish. We will consider this kind of preference as a complex preference.

We use the class reco:Pattern to represent a set of conditions about an individual, where this individual is not the proper preference. In our example, the pattern represents the condition that actors of the film has to be Spanish people.

ex:pref1 rdf:type reco:Preference ; 
      rdf:type dbpedia-owl:Film ; 
      skos:subject dbpedia:Category:Crime_films ; 
      p:starring ex:pattern1 . 

ex:pattern1 rdf:type reco:Pattern ; 
            p:born dbpedia:Spain . 

In addition to this last example, patterns can be part of another pattern as well. Patterns are sets of conditions about an individual that can be (re)used by another pattern to build a more complex condition on a preference. Consider for instance the following preference "Films starred by actors whose wives are also actors". In this preference, two patterns can be identified. The first one asks about actors starring in the film. And the second one expresses a condition about the spouses of these actors. The representation in our ontology is the following:

ex:pref2 rdf:type reco:Preference ; 
      rdf:type dbpedia-owl:Film ; 
      p:starring ex:pattern1 . 

ex:pattern1 rdf:type reco:Pattern ; 
             p:spouse ex:pattern2 . 

ex:pattern2 rdf:type reco:Pattern ; 
            rdf:type dbpedia-owl:Actor . 

Diagram 6

3.4.2 Composite preference (AND)

Sometimes it is also needed that an individual fulfills two or more different preferences. So we need to add a new class capable of describing this situation. A new class, called reco:CompositePreference, is created. This class allows us to group together a set of preferences aplied to a marketplace.

If we want to express an individual to fulfill all the preferences included in a composite preference, the property reco:andComposition must be used, as the following example shows: "Crime films directed by Quentin Tarantino shorter than 120 minutes"

ex:pref3 rdf:type reco:CompositePreference ; 
    reco:andComposition ex:pref1 ; 
    reco:andComposition ex:pref2 . 

ex:pref1 rdf:type reco:Preference ; 
    rdf:type dbpedia-owl:Film ; 
    p:director dbpedia:Quentin_Tarantino ; 
    skos:subject dbpedia:Category:Gangster_films . 

ex:pref2 rdf:type reco:Preference ; 
    dbpedia-owl:Film#runtime         "120"^^xsd:integer ; 
    reco:filter op:numeric-less-than . 

Notice that it is possible to represent these preferences without using the AND composite patterns. It would be simplified just considering all the matchmaking conditions as part of the same preference. The introduction of the AND composite pattern might seem redundant, although it is justified at least by two reasons:

3.4.3 Composite preference (UNION)

Using the AND pattern, a candidate to achieve the composite preference must always fulfill the preferences it is comprised by. However, sometimes this is very restrictive and a candidate might fulfill just some of the simple preferences but still achieving the composite one. For these cases, a new pattern for composite preferences, featuring the property reco:unionComposition, is used to bring together all the preferences in a disjunction.

An example of that is showed here: "Crime films directed by Quentin Tarantino or by Brian de Palma".

ex:pref3 rdf:type reco:CompositePreference ; 
    reco:unionComposition ex:pref1 ; 
    reco:unionComposition ex:pref2 . 

ex:pref1 rdf:type reco:Preference ; 
    rdf:type dbpedia-owl:Film ; 
    p:director dbpedia:Quentin_Tarantino ; 
    skos:subject dbpedia:Category:Gangster_films . 

ex:pref2 rdf:type reco:Preference ; 
    rdf:type dbpedia-owl:Film ; 
    p:director dbpedia:Brian_De_Palma ; 
    skos:subject dbpedia:Category:Gangster_films . 

This preference might also be expressed by means of a combination of AND and UNION composite pattern. The following expression is equivalent to the last one but it demands a recursive interpretation of the composition of preferences:

ex:pref3 rdf:type reco:CompositePreference ; 
    reco:andComposition ex:pref1 
    reco:andComposition ex:pref2 

ex:pref1 rdf:type reco:Preference ; 
    rdf:type dbpedia-owl:Film ; 
    skos:subject dbpedia:Category:Gangster_films . 

ex:pref2 rdf:type reco:CompositePreference ; 
    reco:unionComposition ex:pref4 ; 
    reco:unionComposition ex:pref5 . 

ex:pref4 rdf:type reco:Preference ; 
    p:director dbpedia:Brian_De_Palma . 

ex:pref5 rdf:type reco:Preference ; 
    p:director dbpedia:Quentin_Tarantino . 

3.4.4 Datatype constraints on preferences

Conditions about datatype properties have a particular status in our approach. A statement of the form (s,p,l) in RDF, where l is a literal, only captures the fact that l is the fixed value for the property p when applied to s. But when we are talking about preferences, we need more expressivity. Constraints on literals need to be added to our ontology to be able to express conditions such as "Films shooted before 1970".

Therefore a mechanism to represent constraints on values of datatype properties has been defined, allowed to be used both in reco:Preference and in reco:Pattern assertions. The mechanism is comprised by:

The aforementioned example is formalized as follows:

 ex:pref1 rdf:type reco:Preference ; 
       rdf:type dbpedia-owl:Film ; 
       reco:filter ex:filter1 . 

ex:filter1 rdf:type reco:Filter ; 
           dbpedia-owl:releaseDate "1970-01-01"^^xsd:date ; 
           reco:operator reco:lesserThan . 

3.4.5 "Who can exert a preference"

In the literature of preferences, many entities may exert modal attitudes such as preferences, but also desires, beliefs, inclinations, etc. This ontology is designed to be used in combination with the widely-adopted FOAF vocabulary. In particular, the following entities have been considered:

  1. An individual agent, embodied by the class foaf:Agent, not restrited to a person but also to non-human beings, such as applications or software agents.
  2. A collective, embodied by the class foaf:Group. This allows to express preferences and appealingnesses of a group of people like: "In Spain, sociological inquiries reflect that teenagers prefer videogames to sport activities".
  3. A user profile, embodied by the class reco:Profile. Profiles contextualize sets of preferences of individual agents, allowing a user to hold several profiles. By means of profiles, users might exert contradictory preferences depending on the context of the user and the profile that applies to this context. For instance, "Joe prefers to watch TV entertainment shows at home, but Joe prefers to watch movies when he is at his girlfriend's".

However, it is envisioned that other kind of entities might as well exert preferences. In this case, we strongly recommend to not use the already defined property of the ontology: reco:desireTowards, as DL rules might lead into undesirable conclusions. An ad-hoc property can be created for this purpose.

4. Cross-reference for RECO classes and properties

Class: reco:CompositePreference

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#CompositePreference

Composite preference - A complex representation of a preference to express the union or the intersection of two or more preferences using AND and OR operators. A composite preference uses one and only one operator. Both operators are incompatible.

sub-class-of:
reco:Preference
in-domain-of:
reco:andComposition
reco:unionComposition

[back to top]

Class: reco:Demand

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#Demand

Demand - The willingness to achieve a commodity or a service with certain properties. Basically a demand is a set of preferences: mandatory, positive, negative or excluding.

sub-class-of:
reco:ModalDescription
in-domain-of:
reco:requiredPreference
reco:positivePreference
reco:excludedPreference
reco:negativePreference
in-range-of:
reco:asksFor

[back to top]

Class: reco:Filter

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#Filter

Filter - A preferred condition on a datatype property.

in-domain-of:
reco:operator
in-range-of:
reco:filter

[back to top]

Class: reco:ModalDescription

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#ModalDescription

Modal Description - A modal description consists in the specification of a modal target: desire, right, power, duty, etc. From the formal semantic viewpoint, a modal description is the reification of a relation involving a modal logic operator.

in-domain-of:
reco:refinedBy
in-range-of:
reco:refinedBy
reco:internallyRepresents

[back to top]

Class: reco:Operator

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#Operator

Operator - Elements that define operations on literals in a filter: string comparisons, numerical ranges, etc. Operators are equivalent to their corresponding SPARQL built-ins.

in-range-of:
reco:operator

[back to top]

Class: reco:Pattern

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#Pattern

Pattern - An individual that satisfies some preferred conditions. These individuals can be interpreted as variables in matchmaking applications.

in-domain-of:
reco:filter

[back to top]

Class: reco:Preference

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#Preference

Preference - A desired property of a commodity or a service.

sub-class-of:
reco:ModalDescription
in-domain-of:
reco:filter
in-range-of:
reco:requiredPreference
reco:positivePreference
reco:excludedPreference
reco:negativePreference
reco:desireTowards
reco:notDesireTowards
reco:andComposition
reco:unionComposition

[back to top]

Class: reco:Profile

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#Profile

Profile - The user profile of an agent. An agent might have more than one profile: user profiles vary according to their contexts and situations.

in-domain-of:
reco:asksFor
reco:desireTowards
reco:internallyRepresents

[back to top]

Property: reco:andComposition

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#andComposition

AND Composition - A property which matches each composite-preference with the set of preferences composing it. Being an and-Composition, all the preferences have to be realised.

OWL Type:
ObjectProperty
Domain:
reco:CompositePreference
Range:
reco:Preference

[back to top]

Property: reco:asksFor

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#asksFor

Asks For - The relationship between a user profile, agent or a group of agents and their demands, which can be mandatory, positive, negative or exclusive.

OWL Type:
ObjectProperty
sub-property-of:
reco:internallyRepresents
Domain:
foaf:Agent
foaf:Group
reco:Profile
Range:
reco:Demand

[back to top]

Property: reco:desireTowards

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#desireTowards

Desire Towards - A modal relation expressing that a user has a strong preference towards something.

OWL Type:
ObjectProperty
sub-property-of:
reco:internallyRepresents
Domain:
foaf:Agent
foaf:Group
reco:Profile
Range:
reco:Preference

[back to top]

Property: reco:excludedPreference

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#excludedPreference

Excluded Preference - This property relates a demand with a particular condition P. Individuals that fulfill this condition P are excluded from the set of valid candidates for this demand.

OWL Type:
ObjectProperty
sub-property-of:
reco:refinedBy
Domain:
reco:Demand
Range:
reco:Preference

[back to top]

Property: reco:filter

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#filter

Filter - A property which develops the pattern restraining the value of a datatype property.

OWL Type:
ObjectProperty
Domain:
reco:Preference
reco:Pattern
Range:
reco:Filter

[back to top]

Property: reco:internallyRepresents

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#internallyRepresents

Internally Represents - A user internally represents (in her mind) a modal description: a desire, a plan, a duty, etc.

OWL Type:
ObjectProperty
Domain:
foaf:Agent
foaf:Group
reco:Profile
Range:
reco:ModalDescription

[back to top]

Property: reco:negativePreference

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#negativePreference

Negative Optional Preference - This property relates a demand with a particular condition P. Individuals that fulfill this condition P decline their utility value.

OWL Type:
ObjectProperty
sub-property-of:
reco:refinedBy
Domain:
reco:Demand
Range:
reco:Preference

[back to top]

Property: reco:notDesireTowards

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#notDesireTowards

Not Desire Towards - A modal relation expressing the absence of a preference towards something.

OWL Type:
ObjectProperty
sub-property-of:
reco:internallyRepresents
Domain:
foaf:Agent
foaf:Group
Range:
reco:Preference

[back to top]

Property: reco:operator

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#operator

Operator - A property which matches a pattern to the operator restraining the value of a datatype property.

OWL Type:
ObjectProperty
Domain:
reco:Filter
Range:
reco:Operator

[back to top]

Property: reco:positivePreference

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#positivePreference

Positive Optional Preference - This property relates a demand to a preference P in an optional way. Individuals that fulfill the condition P increase their utility value.

OWL Type:
ObjectProperty
sub-property-of:
reco:refinedBy
Domain:
reco:Demand
Range:
reco:Preference

[back to top]

Property: reco:refinedBy

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#refinedBy

Refined By - A modal description can be refined by adding new components.

OWL Type:
ObjectProperty
Domain:
reco:ModalDescription
Range:
reco:ModalDescription

[back to top]

Property: reco:requiredPreference

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#requiredPreference

Required Preference - This property relates a demand with a preference P in a mandatory way. Individuals that fulfill the condition P are considered valid candidateds for this demand.

OWL Type:
ObjectProperty
sub-property-of:
reco:refinedBy
Domain:
reco:Demand
Range:
reco:Preference

[back to top]

Property: reco:unionComposition

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#unionComposition

UNION Composition - A property which matches each composite-preference with the set of preferences composing it. Being a union-Composition, at least one of the preferences has to be realised.

OWL Type:
ObjectProperty
Domain:
reco:CompositePreference
Range:
reco:Preference

[back to top]

Property: reco:utilityValue

URI: http://ontologies.ezweb.morfeo-project.org/reco/ns#utilityValue

Utility Value - This property represents the utility value of a commodity or a service according to the preferences of the user.

OWL Type:
DatatypeProperty
Range:
xsd:float

[back to top]

5. Ontology namespaces referenced in this specification

Prefix XML Namespace Specification
dbp http://dbpedia.org/ontology/ The DBpedia Ontology: classes
dbpp http://dbpedia.org/property/ The DBpedia Ontology: properties
foaf http://xmlns.com/foaf/0.1/ Friend of a Friend (FOAF) Vocabulary
reco http://ontologies.ezweb.morfeo-project.org/reco/ns# RECommendations Ontology
skos http://www.w3.org/2004/02/skos/core# SKOS Core Vocabulary

A. References

FOAF
FOAF Vocabulary, http://xmlns.com/foaf/spec/ .
IETF RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997.
OWL Guide
OWL Web Ontology Language Guide, Michael K. Smith, Chris Welty, and Deborah L. McGuinness, Editors, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-owl-guide-20040210/ . Latest version available at http://www.w3.org/TR/owl-guide/ .
OWL Reference
OWL Web Ontology Language Reference, Mike Dean and Guus Schreiber, Editors. W3C Recommendation, 10 February 2004,
Latest version available at http://www.w3.org/TR/owl-ref/.
RDF Syntax
RDF/XML Syntax Specification (Revised), Dave Beckett, Editor, W3C Recommendation, 10 February 2004, http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ . Latest version available at http://www.w3.org/TR/rdf-syntax-grammar/ .
RDF Recipes
Best Practice Recipes for Publishing RDF Vocabularies, D. Berrueta, J. Phipps, World Wide Web Consortium, W3C Working Group Note 28 August 2008.
Available at http://www.w3.org/TR/2008/NOTE-swbp-vocab-pub-20080828/
Preference Logic
The Stanford Encyclopedia of Philosophy, Edward N. Zalta,The Metaphysics Research Lab, Center for the Study of Language and Information, Stanford University, Stanford, CA 94305-4115, ISSN: 1095-5054.
Available at http://plato.stanford.edu/

B. Changes in this version (Non-Normative)

C. Acknowledgements (Non-Normative)

This document was produced with the participation of the EzWeb project consortium (by alphabetic order):

This specification has been generated using SpecGen.