• No se han encontrado resultados

An attribute is a distinct, measurable, physical or abstract named property belonging to an entity in a given application domain and whose value can be used to identify that entity (not necessarily uniquely) within that application domain [73, 63]. Here, the term “identify” is used with its literal meaning. This term will be defined more precisely in later sections.

According to this definition, each attribute of an entity has a name and a value. The name of the attribute (or simply the attribute) alone cannot identify an entity, the attribute together with its value need to be used to identify an entity (not necessarily uniquely). In any appli- cation domain, the value of an attribute is provided either by each entity or is provided by a third party on the entity’s behalf. It is assumed that Age is an attribute in an application domain and its value, say for example, 30, can be used to identify a set of entities using the query: “Identify those in the application domain whose Age is 30”. This will return a set of entities which may be empty if there is no entity whose age is 30 or may contain just one element if there is only one entity with age 30 or more than one element in case there are more than one entities in the application domain whose age are 30. Similarly, a postcode is an attribute whose value can be used to identify a set of entities who live within the same postcode area.

Another important aspect of an attribute in an application domain is its data type which defines the values the attribute can take. For example, in some application domains, the data type of the attribute Age could be String, whereas in other application domains the date type could be Integer. The data type of an attribute, hence, depends on the specific application

3.2. Entity, Identity, Identity Management and Other Related Terminologies 40

domain. For brevity, data types of attributes will not be considered in this thesis. Instead, the focus will be on the attribute (in other words, the attribute name) and its value.

The value of an attribute may or may not identify an entity uniquely. In common terminolo- gies, such values are also known as Data regarding an entity and Personal Data when the involved entity is a Person. In the mathematical model derived in [68], attribute values are regarded as Data as well. However, since each datum can be associated with at least with one entity and can be used to identify entities (not necessarily uniquely), it is semantically more meaningful to consider data as attributes. For example, reputation data on eBay or Amazon, a blog entry and comments on a blogging site, photos and statuses on social networking sites can be used to identify at least one entity. The query “who has positive feedback of at least 95% on ebay” would identify a group of entities with positive feedback of 95% or more and is much like the query “who lives at the postcode of ‘G3 7AH’ in the UK” identifying the group of people living in that particular postcode area.

The notation Ad will be used to denote the set of attributes in domain d. Similarly, the

notation AVdwill denote the set of attribute values for attributes defined in Adand provided

by the entities (or by third parties on behalf of the entities) in domain d.

Returning to the example, it is assumed that the domain BLOG has three different attributes: username, age of the respective entity and the postcode of residence. For the entity JOHN , the values of these attributes are john, 32 and G3 respectively, while for RAHIM , the values are rahim, 21 and G3 respectively. Therefore:

ABLOG = {username, age, postcode}

AVBLOG = {john, rahim, 21 , 32 , G3 }

Note that the set of attributes in different domains may overlap since the same attributes may exist in different domains. Therefore, for two different domains d1 and d2, there is no

requirement that Ad1 ∩ Ad2 = ∅.

Now, different functions will be introduced to relate attributes and entities to their values in an application domain.

Definition 2 The partial function atEntityToValued : Ad×Ed → AVd returns the corre-

sponding value of an attribute for a specific entity in domaind.

The reason atEntityToValuedis defined as the partial function is that not all entities might have a value for a respective attribute. Therefore, the function is only defined for the entities that have a value for those attributes.

This function can be used to define another function atToValueSetd : Ad → P(AVd) that,

3.2. Entity, Identity, Identity Management and Other Related Terminologies 41

any attribute a ∈ Ad:

atToValueSetd(a)

def

= {atEntityToValued(a, e) | e ∈ Ed& atEntityToValued(a, e) is defined }

(3.1) Equation 3.1 in turn can be extended to define a function atSetToValSetd : P(Ad) →

P(AVd) that retrieves the set of values for a set of attributes in domain d in the following

way, for any set of attributes Bd∈ P(Ad):

atSetToValSetd(Bd)

def

= [

b∈Bd

atToValueSetd(b) (3.2)

According to the example:

atEntityToValueBLOG((username, RAHIM )) = rahim atEntityToValueBLOG((age, RAHIM )) = 32 atEntityToValueBLOG((postcode, RAHIM )) = G3 atEntityToValueBLOG((username, J OHN )) = john

atEntityToValueBLOG((age, J OHN )) = 21 atEntityToValueBLOG((postcode, J OHN )) = G3

atToValueSetBLOG(username)

= atEntitToValueBLOG(username, JOHN ) ∪ atEntityToValueBLOG(username, RAHIM )

= {john} ∪ {rahim} = {john, rahim}

atToValueSetBLOG(age)

= atEntityToValueBLOG(age, JOHN ) ∪ atEntityToValueBLOG(age, RAHIM ) = {21 , 32 }

atToValueSetBLOG(postcode)

= atEntityToValueBLOG(postcode, JOHN ) ∪ atEntityToValueBLOG(postcode, RAHIM ) = {G3 }

3.2. Entity, Identity, Identity Management and Other Related Terminologies 42

atSetToValSetBLOG({username, postcode})

= atToValueSetBLOG(username) ∪ atToValueSetBLOG(postcode)

= atEntityToValueBLOG(username, JOHN ) ∪ atEntityToValueBLOG(username, RAHIM ) ∪ atEntityToValueBLOG(postcode, JOHN ) ∪ atEntityToValueBLOG(postcode, RAHIM ) = {john, rahim, G3 }

Next, functions that map attributes and values to the corresponding entities are defined.

Definition 3 The function atValueToEntitySetd : Ad×AVd → P(Ed) maps each attribute

and attribute value pair to the set of Entities which have that respective value for the attribute in domaind. Formally, for any a ∈ Adandv ∈ AVd:

atValueToEntitySetd(a, v) = {e ∈ Ed| atEntityToValued(a, e) = v}

This function can be used to define another function atValueSetToEntitySetd: P(Ad×AVd)

→ P(Ed) that retrieves the common set of entities for a set of attributes and values in domain

d. That is, for any Bd ∈ P(Ad×AVd):

atValueSetToEntitySetd(Bd)

def

= \

b∈Bd

atValueToEntitySetd(b) (3.3)

Returning to the example:

atValueToEntitySetBLOG((username, rahim)) = {RAHIM } atValueToEntitySetBLOG((age, 32)) = {J OHN }

atValueToEntitySetBLOG((postcode, G3)) = {J OHN, RAHIM }

Now, using (3.3):

atValueSetToEntitySetBLOG({(username, rahim), (postcode, G3)}) = atValueToEntitySetBLOG((username, rahim)) ∩

atValueToEntitySetBLOG((postcode, G3)) = {RAHIM } ∩ {J OHN, RAHIM }

3.2. Entity, Identity, Identity Management and Other Related Terminologies 43

3.2.4

Identifiers, Partial Identifiers, Null Identifiers and Creden-