Logotipo proyecto mIO!

Who Am I! Vocabulary Specification

Description of Roles and Profiles for the Semantic Web

Treelogic | CTIC-CT

Last update:
8 November 2010
Creator:
Luis Polo (CTIC)
Iván Mínguez (CTIC)
Contributors:
Diego Berrueta (CTIC)
Pablo López (TreeLogic)
Alejandro Alvarez (TreeLogic)
Marcos Sacristán (TreeLogic)
Emilio Rubiera (CTIC)
versión RDF:
wai.owl


Table of Contents

  1. Introduction
  2. Social Roles
    1. Hierarchy of roles
    2. Requisites of roles
  3. Profiles
    1. Profiles, Contexts and Communities
  4. Ontology at a glance
  5. Definition of Classes and Properties
  6. References
    1. Bibliography
    2. Table with Prefixes and Ontologies

1. Introduction

WAI vocabulary aims to extend the FOAF specification through introducing the concepts of roles and profiles. In society, people are more than just persons, they can be musicians, presidents of government, firemen, football players or car drivers in a traffic jam. In addition, a person modulates her own desires and preferences (her personality) adequating them to the pertinent situation or context. For instance, John as a member of the Last.fm community expresses some musical interests which can be used to find like-minded people and to recommend some contents (artists, genres, albums, etc.). John's preferences watching TV may be completely different, and it is necessary to capture this complexity inherent to individuals and their involvement in society.

Rooting on modeling and philosophical approaches, WAI provides a flexible mechanism to refine a person's FOAF description in particular domain scenarios and applications. This mechanism is intended to shape people, specifying temporal and social features like their jobs, position in a company, tastes, security credentials, status in a given community and in general their participation in what is technicallly called, state of affairs.

WAI vocabulary is an OWL2 ontology [1] relying on the following pre-existent ontologies available on the Web:

2. Social Roles

Roles have been studied and analyzed for years in the context of data modeling and knowledge representation. The main important feature of roles, from the formal point of view, is that they are considered as properties, i.e., they can be predicated of different entities [6]. A lot has been discussed about the nature and features of roles: identity, temporality, acquisition of roles, relation between roles and people, etc. [7] provides an exhaustive analysis of all these questions and supplies a characterization of roles properties in which WAI relies.

With respect to the formalization of roles, there are two main positions. On the one hand, roles can be represented as unary predicates (or classes in a DL ontology). However, this approach conflicts with the dynamic and temporal properties of roles. On the other hand, a second alternative introduces roles as individuals in the ontology and relates roles and their players with a new property, called "plays" [8]. WAI follows this latter approach and provides a class wai:Role and the corresponding property wai:plays to link up individuals and roles. This strategy was also applied by the DOLCE ontology, but with a general knowledge representation purpose. WAI instead is a specifically dedicated vocabulary to represent people.

Figure 1 - Roles

Figure 1 - Playing a role

Figure 1 shows an example of role encoding: different people can play the same role and different roles can be played by a single person. This means that the indivisual "John" plays simultaneously "foot player" and "student". And it also means that the role "Student" is played by both "John" and "Peter".

WAI is a general framework designed to be extended by each party to fit their own scenario needs, although it is envisioned and encouraged that role classifications developed under WAI should be shared among different applications and organizations. However a classification of roles is out of the scope of this specification.

2.1. Hierarchy of Roles

Roles can be arranged in a hierarchy of entities in a similar way as ontology classes are organized via a subsumption relation. For instance, a traveler can be specialized into a plane passenger, which is also specialized into a plane passenger of British Airways Company. Nevertheless, roles are considered first-order individuals and therefore it is not possible to use OWL subclassification axioms. WAI introduces a primitive property wai:specializes able to capture these hierarchies of roles, so allowing more generic roles to be successively refined into more specific ones. As shown in Figure 2, the property wai:specializes captures the hierarchical relation between a "military man", a "marine" and a "marine captain".

Figure 2 - Hierarchy of roles

Figure 2 - Hierarchies and inheritance of roles

These hierarchies fulfill two complementary properties. On the one hand, wai:specializes is a transitive property. Therefore, if role A specializes role B and role B specializes C, then role A specializes role C. On the other hand, roles are inherited according to the established hierarchy. This means that, given two roles A, B and A specializes B, if a person plays role A, then it is the case that this person also plays role B. Figure 2 shows both inferences. Firstly, the transitiveness of wai:specializes allows inferring that a "marine captain" is as well a "military man". Secondly, the person "Wilson" as a "marine captain" is also deduced to be a "marine" and a "military man". The inference rule for role inheritance according to a hierarchy is encoded in the WAI ontology through the following OWL2 property chain:

(1) SubObjectPropertyOf( ObjectPropertyChain( wai:plays wai:specializes ) wai:plays )

2.2. Requisites of Roles

Sometimes a role requires that a person plays another role. Consider the following the sentences: "some employees of the company IBM can be project managers" or "a doctor must hold a medical degree". The former sentence states that a project manager at IBM must necessarily be an employee of the company. Otherwise, the person cannot play the rol "project manager". The latter sentence expresses that a person practicing medicine must have previously passed the final examinations of medical studies. To capture this kind of relations between roles, WAI features a specific property called wai:requires.

Figure 3 - Requisites of roles

Figure 3 - Requisites of the role "Doctor"

Regarding the example in Figure 3, a remark should be made with respect to role requirements. WAI, via wai:requires property, is suitable to express that the person "Smith" playing a particular role, e.g. "Doctor", also needs to play the role "medical graduate". However, WAI does not implement rules for roles requisites violation (these rules exceed the expressivity of OWL language), i.e., even if "Smith" is not declared to have medical studies, the RDF dataset will be conformant with the description of the role "Doctor". WAI can only be used to deduce that given the requirements of the role, the person fulfills them, so that the person actually plays the role. Again this inference is encoded in WAI by means of a property chain and is used to discover, as in Figure 3, new roles played by people.

(2) SubObjectPropertyOf( ObjectPropertyChain( wai:plays wai:requires ) wai:plays )

3. Profiles

Profiles are entities capturing the dynamic and temporal aspects of roles. For instance, the full meaning of the sentence "John was an undergraduated student from 1993 to 1997" cannot be represented by a simple relation between John and the role student by means of the property wai:specializes. A temporal location of "John-as-student" is needed. Profiles are introduced to cover this knowledge representation gap. Roles are not inherent to people, as they are not essential properties. As an example, Barack Obama is the president of the USA, but it would be also possible for him not to have stood for the national elections. Moreover, his term of office will finnish when the time comes, then he will stop playing the role of president. Profiles (wai:Profile in the ontology) are a mechanism allowing to refer to people when they are actually playing a particular role, i.e. "person-as-role". This approach is rooted on the so called qua-individuals theory [9].

A more intuitive explanation of the distinction between role and profile is their application to represent characters in the cinema and literature. Figure 5 is a good example of this question. James Bond is the well-known character created by Ian Fleming that has been the main character of countless movies of the last decades. James Bond as a fictional persona is a secret agent of the British Secret Intelligence Service, also known as MI6, and has his own personality and tastes (e.g. "vodka martinis, shaken, not stirred"). Many actors have played James Bond role in the cinema, from Sean Connery and Roger Moore to the the last one, David Craig. A profile is the combination of both the actor and the role played. It is a mechanism enabling, when watching a particular movie such as "Dr. No", to refer to Sean Connery playing the James Bond role, i.e., the profile "Sean Connery as James Bond":

profiles and roles

Figure 4 - Profile and Role distinction in James Bond 007 films

When a person is said to feature a given profile, WAI uses the property wai:profiles. Relations between profiles and roles are established by means of the property wai:personalizes, as profiles are refinement of roles. A profile is assumed to personalize the role because it represents the proper person, so wrapping the role in the identity of the player. Moreover, WAI captures a more deep relation between profiles and roles, allowing to infer from a person featuring a profile which is the role behind.

(3) SubObjectPropertyOf( ObjectPropertyChain( wai:profiles wai:personalizes ) wai:plays )

Profiles besides solve the classical puzzle of roles, also known as the counting problem which can be formulated as follows:

If a person has taken public competitive examinations more than once in the last 5 years, the most probable is that the final conclusion is untrue. A given person could take more than one examination, so she will be counted as candidate as many times as she takes the examinations. On the other hand, this does not mean that she is a different person, so that she must be counted more that once. The problem arises because there is usually no distinction between the proper person and the "person-as-candidate". Introducing profiles in our models enables to avoid the counting problem providing data consistency and coherence.

It can be argued that profiles introduce a multiplication of identities for the user as well as an increase of resources to describe a particular individual. Nevertheless, all the profiles gather together at the proper person, i.e., a foaf:Person . The multiplication of identities is only apparent. Moreover, in the Semantic Web everything could be a resource identified by a IRI. So from this perspective, if needed from the modeling point of view, our ontological distinctions do not violate any Linked Data principle, but contributes to the data description enrichment.

3.1. Profiles, Contexts and Communities

Profiles are also useful to represent users in different contexts, where context is widely interpreted. Different scientific disciplines have studied the concept of context: from linguistics, recommendation systems, usability or multi agents theory. WAI takes advantage of the idea of context to provide some conceptual coordinates in order to "contextualize" both roles and profiles, but no more assumptions are made about its interpretation. A natural extension of the idea of context is made by means of temporal and geographical locations. This is a typical scenario for personalized applications, for instance in the field of ambient intelligence or mobility, which seek to adequate their behaviour considering several relevant aspects of the user.

In addition, social communities and on-line services can be considered as contexts for profiles. On the one hand, communities are connected groups of people which are usually materialized in the Web as generic social networks like Facebook or LinkedIn, but also as dedicated on-line communities arisen from specific web sites: Last.fm for music contents, Anobii for books or FilmAffinity for movies are good examples for this case. In conjunction with FOAF, social communities representation could benefit from WAI profiles management. WAI also introduces a rule to deduce person participation in a given community from her profile definition. This ensures that a compliant FOAF description of the person could be obtained from a WAI relation between a person and her profiles.

(4) SubObjectPropertyOf( ObjectPropertyChain( wai:profiles wai:participates ) foaf:member )

On the other hand, profiles are a powerful modeling tool enabling to describe users and their preferences when accessing a particular service. This is very important in e-commerce scenarios where people usually expresses different behaviours when purchasing items. It is not very common that the same user searchs for the same commodities in Amazon store and in eBay site. Profiles help us to organize preferences providing different views of the same user, i.e. represeting people from different perspectives.

Figure 4 - contexts and communities

Figure 5 - A person playing a role in a social communitiy at a given context

It is important to remark at this point that WAI profiles do not necessarily need to refer to a role. When contexts and communities are used to fix the interpretation coordinates of the profile, roles may be implicit. In this case, a profile is considered a "person-at-context" or a "person-in-community", rather than "person-as-role". Nevertheless, none of the three are exclusive, but complementary. Illustration 5 shows a WAI example where the person "John" is the guide of a group of tourists in the given geographical context of Barcelona city.


4. Ontology at a glance

Classes: Context, Profile, Role,

Properties: atContext, isActive, participates, personalizes, plays, profiles, requires, specializes,

5. Definition of Classes and Properties

Class: wai:Context

URI: http://purl.org/wai#Context

Context - Contexts are similar to situations or state of affairs providing interpretation coordinates for profiles. In the most simple case, these coordinates are just geographical/spatial or temporal coordinates. WAI does not impose a fixed definition of context. It is deliberately wide in order to enable third-parties the adequation of the meaning of context according to their modeling needs and requirements.

in-range-of:
wai:atContext

[back to top]

Class: wai:Profile

URI: http://purl.org/wai#Profile

Profile - A profile represents a particular person playing a given role. In the literature it is also known as a "qua-individual". WAI extends the meaning of profile to capture "person-as-role", "person-at-context" and "person-in-community".

in-domain-of:
wai:atContext
wai:personalizes
wai:participates
wai:isActive
in-range-of:
wai:profiles

[back to top]

Class: wai:Role

URI: http://purl.org/wai#Role

Role - A property that can be predicated of a person. In WAI ontology, roles are reified as first order individuals and relations between roles and players are expressed by means of the wai:plays property. WAI does not impose any subclassification of roles. The concept is open to be refined according to domain or application requirements.

in-domain-of:
wai:specializes
wai:requires
in-range-of:
wai:specializes
wai:requires
wai:plays
wai:personalizes

[back to top]

Property: wai:atContext

URI: http://purl.org/wai#atContext

at context - This property enables to relate a profile with a given context (geographical, temporal, spatial, social, etc.).

OWL Type:
ObjectProperty
Domain:
wai:Profile
Range:
wai:Context

[back to top]

Property: wai:isActive

URI: http://purl.org/wai#isActive

is active - This property allows to specify which is the user profile that is active, given a interaction between two applications.

OWL Type:
DatatypeProperty
Domain:
wai:Profile
Range:
xsd:boolean

[back to top]

Property: wai:participates

URI: http://purl.org/wai#participates

participates - This property encodes the participation relation between profiles and the communities they are member of.

OWL Type:
ObjectProperty
Domain:
wai:Profile
Range:
foaf:Group

[back to top]

Property: wai:personalizes

URI: http://purl.org/wai#personalizes

personalizes - A role is personalized by means of a profile, which wrap the role in the identity of the person behind the profile.

OWL Type:
ObjectProperty
Domain:
wai:Profile
Range:
wai:Role

[back to top]

Property: wai:plays

URI: http://purl.org/wai#plays

plays - This property relates roles and their players, who can be any foaf:Agent (a person, a group, etc.)

OWL Type:
ObjectProperty
Domain:
foaf:Agent
Range:
wai:Role

[back to top]

Property: wai:profiles

URI: http://purl.org/wai#profiles

profiles - This property relates people and the featured profiles.

OWL Type:
ObjectProperty
Domain:
foaf:Agent
Range:
wai:Profile

[back to top]

Property: wai:requires

URI: http://purl.org/wai#requires

requires - This property relates roles and their requisites, i.e. other roles.

OWL Type:
ObjectProperty
Domain:
wai:Role
Range:
wai:Role

[back to top]

Property: wai:specializes

URI: http://purl.org/wai#specializes

specializes - This property allows to express hierarchies of roles, through of role specialization: if role A specializes role B, and B specializes C, then role A specializes role C.

OWL Type:
ObjectProperty
Domain:
wai:Role
Range:
wai:Role

[back to top]

6. References

6.1. Bibliography

[1] B. Motik, P. Patel-Schneider, B. Parsia, eds. OWL 2 Web Ontology Language: Structural Specification and Functional-Style Syntax. W3C Recommendation, 27 October 2009. http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/

[2] D. Brickley, L. Miller. FOAF Vocabulary Specification. 2010. http://xmlns.com/foaf/spec/

[3] L. Polo, I. Minguez, E. Rubiera. RECO: A vocabulary to formalize preferences in the Semantic Web. 2009. http://ontologies.ezweb.morfeo-project.org/reco/spec

[4] Laboratory for Applied Ontology. DOLCE Ontology (DLP library). 2005. http://www.loa-cnr.it/DOLCE.html

[5] U. Bojars, J. G. Breslin. SIOC: Semantically-Interlinked Online Communities. 2010. http://rdfs.org/sioc/spec/

[6] J.F. Sowa. Knowledge Representation: Logical, Philosophical, and Computational Foundations. MIT Press, 2000.

[7] F. Steimann. "On the representation of roles in object-oriented and conceptual modelling". Data & Knowledge Engineering, 3(1):83–106, 2000.

[8] C. Masolo, L. Vieu, E. Bottazzi, C. Catenacci, R. Ferrario, A. Gangemi, and N. Guarino. "Social roles and their descriptions". Procs. of KR, 4:199–209, 2004.

[9] Masolo, C.; Guizzardi, G.; Vieu, L.; Botazzi, E.; Ferrario, R. "Relational Roles and Qua-Individuals". AAAI Fall Symposium on Roles, an Interdisciplinary Perspective, Virginia, USA, 2005.

6. Table with Prefixes and Ontologies

These are the namespaces and ontologies referenced in the ontology

Prefix XML Namespace Specification
dc http://purl.org/dc/elements/1.1/ The Dublin Core Metadata Element Set
foaf http://xmlns.com/foaf/0.1/ Friend of a Friend (FOAF) Vocabulary
ex htp://www.example.org Examples
dbpedia http://dbpedia.org/ontology/ Dbpedia Ontology
xsd http://www.w3.org/2001/XMLSchema# XML Schema (Datatypes)