Internet DRAFT - draft-snell-social-urn
draft-snell-social-urn
Individual Submission J. Snell
Internet-Draft
Intended status: Informational July 23, 2014
Expires: January 24, 2015
The 'urn:social' Namespace
draft-snell-social-urn-01
Abstract
This document defines a Uniform Resource Name (URN) namespace
identifier for generating URN's suitable for use in a variety of
social constructs.
Status of This Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 24, 2015.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
Snell Expires January 24, 2015 [Page 1]
Internet-Draft Social URN July 2014
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. The 'social' URN Namespace . . . . . . . . . . . . . . . . . 3
2.1. urn:social:everyone . . . . . . . . . . . . . . . . . . . 4
2.2. urn:social:public . . . . . . . . . . . . . . . . . . . . 5
2.3. urn:social:private . . . . . . . . . . . . . . . . . . . 5
2.4. urn:social:direct . . . . . . . . . . . . . . . . . . . . 5
2.5. urn:social:extended:{distance} . . . . . . . . . . . . . 5
2.6. urn:social:common:{dimensions}:{confidence} . . . . . . . 5
2.7. urn:social:interested:{confidence} . . . . . . . . . . . 5
2.8. urn:social:self . . . . . . . . . . . . . . . . . . . . . 6
2.9. urn:social:role:{tokens} . . . . . . . . . . . . . . . . 6
2.10. urn:social:relation:{tokens}:{distance} . . . . . . . . . 6
2.11. Relationship Roles . . . . . . . . . . . . . . . . . . . 6
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
3.1. Namespace Definition Template . . . . . . . . . . . . . . 7
3.1.1. Namespace ID . . . . . . . . . . . . . . . . . . . . 7
3.1.2. Registration Information . . . . . . . . . . . . . . 7
3.1.3. Declared Registrant of the Namespace . . . . . . . . 7
3.1.4. Declaration of Syntatic Structure . . . . . . . . . . 8
3.1.5. Relevant Ancillary Documentation . . . . . . . . . . 8
3.1.6. Identifier Uniqueness Considerations . . . . . . . . 8
3.1.7. Identifier Persistence Considerations . . . . . . . . 8
3.1.8. Process of Identifier Assignment . . . . . . . . . . 8
3.1.9. Process for Identifier Resolution . . . . . . . . . . 8
3.1.10. Rules for Lexical Equivalence . . . . . . . . . . . . 8
3.1.11. Conformance with URN Syntax . . . . . . . . . . . . . 9
3.1.12. Validation Mechanism . . . . . . . . . . . . . . . . 9
3.1.13. Scope . . . . . . . . . . . . . . . . . . . . . . . . 9
4. Security Considerations . . . . . . . . . . . . . . . . . . . 9
5. Informative References . . . . . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction
In many systems, it is often desirable to express aspects of social
relationships, role and identities relative to a currently
authenticated individual. For example, a system may provide options
for listing status updates from "Your Friends", or allow sharing
links with "Joe's Network", and so on. While such concepts are
generally trivial to represent within the user interface, there has
not existed any means of representing relative social context in a
machine readable and processable manner. The "urn:social" Uniform
Resource Name (URN) namespace provides such a mechanism.
Note that this document is a work-in-progress draft specification
that does not yet represent a "standard". It is the intention of
Snell Expires January 24, 2015 [Page 2]
Internet-Draft Social URN July 2014
this specification to propose a few new ideas and openly solicit
feedback on their definition and use. While this document might
eventually evolve into an RFC the ideas described herein have not yet
been broadly implemented and have definitions that may evolve through
successive iterations of this draft.
2. The 'social' URN Namespace
This specification defines the 'social' URN namespace having the
following structure:
ABNF Grammar:
social-url = "urn:social:" social-nss
NZDIGIT = %x31-39
distance = ":" NZDIGIT
confidence = ":" 2DIGIT
roles = ":" (TOKEN *( ";" TOKEN ) )
dimensions = ":" (TOKEN *( ";" TOKEN ) )
social-nss = "self" /
"everyone" /
"private" /
"public" /
"direct" /
( "extended" [ distance ] ) /
( "common" [ dimensions ] [ confidence ] ) /
( "interested" [ confidence ] ) /
( "role" roles ) /
( "relation" roles [ distance ]) /
Within any given social networking system, there is an available
population of entities. The NSS terms represent specific subsets of
this population and are defined in terms of these subsets relative to
a fixed context. For example, if the fixed context is a person, the
"urn:social:direct" URN identifies the subset of the total population
that has direct social connections to that person within the social
graph, while the "urn:social:extended" URN identifies the subset that
has direct or indirect social connections.
The "extended" and "relation" NSS terms MAY include an additional
single-digit, non-zero "distance" specifier, the value of which
identifies a "degree of separation" from the context. For instance,
the URN "urn:social:extended:1" would identify members of the
context's extended network that are only 1 degree of separation from
the context (which is equivalent to the "urn:social:direct" URN).
The value "urn:social:extended:6" indicates six degrees of separation
from the context. If the distance is omitted from the NSS, no limit
to the distance is assumed.
Snell Expires January 24, 2015 [Page 3]
Internet-Draft Social URN July 2014
The "common" NSS value MAY include an additional segment consisting
of one or more semicolon ";" delimited TOKENs whose values identify
application and context specific dimensions (or attributes) an
application can use to determine commonality. For instance, the URN
"urn:social:common:gender;age" could be used to refer to a subset of
the total population that share both the same gender and approximate
age.
The "common" and "interested" NSS values MAY include a two-digit
"confidence factor" whose value specifies a confidence interval an
implementation can apply when determining which members of the total
population ought to be considered. The values range from 00-99,
corresponding to confidence intervals between 0% to 99%. If the
confidence factor is omitted from the NSS, a confidence interval of
100% is assumed.
The "role" NSS value MUST include one or more semicolon ";" delimited
TOKENs whose values identify specific named "roles" within the
population. For instance, the URN "urn:social:role:editor"
identifies all members of the relevant population who are assigned to
the "editor" role. The URN "urn:social:role:reader;writer" identifes
all members of the relevant population who are assigned to both the
"reader" and "writer" roles.
The "relation" NSS value limits results to the subset of the
population sharing one or more particular relationships with the
context. Relation URNs MAY contain one or more semicolon ";"
delimited TOKENs whose values identify specific named "relation
roles" (i.e. "father", "mother", "grandparents", "mentor",
"employer", etc). Each role is considered individually. That is,
for instance, the URN "urn:social:relation:mentor;sibling" would
identify all members of the relevant population who fulfill either
the "mentor" or "sibling" relationships relative to the context
resource. Relation URNs MAY include a single non-zero "distance"
specifier that identifies a "degree of separation" from the context.
The Social URN namespace is defined to be intentionally ambiguous and
highly dependent on context. The specific interpretation of each
NSS, including any distance or confidence specifiers, depend entirely
on how and where the NSS is being used.
2.1. urn:social:everyone
The "urn:social:everyone" URN identifies the subset of the total
population that is visible to the context.
Snell Expires January 24, 2015 [Page 4]
Internet-Draft Social URN July 2014
2.2. urn:social:public
The "urn:social:public" URN identifies the subset of the total
population that is both visible to the context and shares a publicly
known or visible relationship with the context.
2.3. urn:social:private
The "urn:social:private" URN identifies the subset of the total
population that is both visible to the context and shares a private
or publicly invisible relationship with the context.
2.4. urn:social:direct
The "urn:social:direct" URN identifies the subset of the total
population that is both visible to and directly connected to the
context.
2.5. urn:social:extended:{distance}
The "urn:social:extended" URN identifies the subset of the total
population that is visible to and connected either directly or
indirectly to the context.
2.6. urn:social:common:{dimensions}:{confidence}
The "urn:social:common:{dimensions}:{confidence} URN identifies the
subset of the total population that is both visible to the context
and is determined to share common attributes with the context.
Determination of "common attributes" is dependent entirely on the
application. For example, an application might choose to use shared
interests in a given topic as the "common attribute" binding a
particular grouping of members.
Examples:
urn:social:common:gender;age
urn:social:common:likes;65
urn:social:common:likes;gender
urn:social:common:employer
2.7. urn:social:interested:{confidence}
The "urn:social:interested" URN identifies the subset of the total
population that is both visible to the context and has an express
interest in the context. Examples of members of the "interested"
Snell Expires January 24, 2015 [Page 5]
Internet-Draft Social URN July 2014
subset are those who have elected to "follow" the activity of the
context resource.
2.8. urn:social:self
The "urn:social:self" URN identifies the context resource itself as a
member of the total population.
2.9. urn:social:role:{tokens}
The "urn:social:role:{tokens}" URN identifies the subset of the total
population that is both visible to the context and has been assigned
to each of the individual roles identified within by the URN.
The values of the role tokens are specific to the context in which
they are being used.
Examples:
urn:social:role:reader;writer
urn:social:role:administrator
urn:social:role:editor
urn:social:role:moderator
2.10. urn:social:relation:{tokens}:{distance}
The "urn:social:relation:{tokens}:{distance}" URN identifies the
subset of the total population that is both visible to the context
and fulfills at least one of the individual roles identified within
by the URN.
The values of the role tokens are specific to the context in which
they are being used.
Examples:
urn:social:relation:parent
urn:social:relation:sibling
urn:social:relation:mentor
urn:social:relation:colleague:2
2.11. Relationship Roles
This specification does not normatively define a set of common
"relationship role" tokens for use with the Relation URN. However,
it is RECOMMENDED that the following non-normative role tokens be
used by implementations when appropriate:
Snell Expires January 24, 2015 [Page 6]
Internet-Draft Social URN July 2014
+--------------+-------------+
| Token | Description |
+--------------+-------------+
| acquaintance | |
| friend | |
| close-friend | |
| collaborator | |
| colleaque | |
| coworker | |
| employer | |
| employee | |
| peer | |
| subordinate | |
| superior | |
| mentor | |
| mentee | |
| spouse | |
| partner | |
| family | |
| child | |
| parent | |
| sibling | |
+--------------+-------------+
3. IANA Considerations
This document defines a URN NID registration of "social", which is to
be added to the "Formal URN Namespaces" registry.
3.1. Namespace Definition Template
3.1.1. Namespace ID
The Namespace ID "social" has been assigned.
3.1.2. Registration Information
Version 1.0
Date: 2014-03-11
3.1.3. Declared Registrant of the Namespace
Individual: James M Snell (jasnell@gmail.com)
Snell Expires January 24, 2015 [Page 7]
Internet-Draft Social URN July 2014
3.1.4. Declaration of Syntatic Structure
URNs that use the "social" NID shall have the following structure:
urn:social:{NSS}
The Namespace Specific String (NSS) is a mandatory string of ASCII
characters that conform to the rules described in Section 2 of this
document.
3.1.5. Relevant Ancillary Documentation
None.
3.1.6. Identifier Uniqueness Considerations
None.
3.1.7. Identifier Persistence Considerations
Social URN's are immutable.
3.1.8. Process of Identifier Assignment
This document defines the full range of possible NSS constructions
with specific exception given to the dimension, role, confidence and
distance parameters that are accepted on some Social URN
constructions. Assignment for those fields is considered to be
completely open.
3.1.9. Process for Identifier Resolution
Social URNs are designed to be resolvable relative to some fixed
social context. Outside such a context, Social URNs retain meaning
relative to general abstract social roles and relationships. For
instance, the Social URN "urn:social:self" will always resolve to
identify the currently relevant social context, while the Social URN
"urn:social:role:reader" will always resolve to identify members of a
population who share the "reader" role.
3.1.10. Rules for Lexical Equivalence
No special considerations; the rules for lexical equivalence
specified in [RFC2141] apply.
Snell Expires January 24, 2015 [Page 8]
Internet-Draft Social URN July 2014
3.1.11. Conformance with URN Syntax
No special considerations.
3.1.12. Validation Mechanism
None.
3.1.13. Scope
The scope of a Social URN depends entirely on the context against
which it is being resolved.
4. Security Considerations
There are no additional security concerns introduced by this
document.
5. Informative References
[RFC2141] Moats, R., "URN Syntax", RFC 2141, May 1997.
[RFC5988] Nottingham, M., "Web Linking", RFC 5988, October 2010.
Author's Address
James M Snell
Email: jasnell@gmail.com
Snell Expires January 24, 2015 [Page 9]