Individual Submission J.M. Snell Internet-Draft March 12, 2014 Intended status: Informational Expires: September 13, 2014 The 'urn:social' Namespace draft-snell-social-urn-00 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 September 13, 2014. 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. The 'social' URN Namespace . . . . . . . . . . . . . . . . . 3 Snell Expires September 13, 2014 [Page 1] Internet-Draft Social URN March 2014 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:peer:{distance} . . . . . . . . . . . . . . . 5 2.7. urn:social:subordinate:{distance} . . . . . . . . . . . . 5 2.8. urn:social:superior:{distance} . . . . . . . . . . . . . 6 2.9. urn:social:common:{dimensions}:{confidence} . . . . . . . 6 2.10. urn:social:interested:{confidence} . . . . . . . . . . . 6 2.11. urn:social:self . . . . . . . . . . . . . . . . . . . . . 6 2.12. urn:social:role:{tokens} . . . . . . . . . . . . . . . . 7 2.13. urn:social:familial:{tokens}:{distance} . . . . . . . . . 7 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 3.1. Namespace Definition Template . . . . . . . . . . . . . . 7 3.1.1. Namespace ID . . . . . . . . . . . . . . . . . . . . 7 3.1.2. Registration Information . . . . . . . . . . . . . . 8 3.1.3. Declared Registrant of the Namespace . . . . . . . . 8 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 . . . . . . . . . . . . 9 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 this specification to propose a few new ideas and openly solicit feedback on their definition and use. While this document might Snell Expires September 13, 2014 [Page 2] Internet-Draft Social URN March 2014 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 ] ) / ( "peer" [ distance ] ) / ( "subordinate" [ distance ] ) / ( "superior" [ distance ] ) / ( "common" [ dimensions ] [ confidence ] ) / ( "interested" [ confidence ] ) / ( "role" roles ) / ( "familial" 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", "peer", "subordinate", and "superior" 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" Snell Expires September 13, 2014 [Page 3] Internet-Draft Social URN March 2014 indicates six degrees of separation from the context. If the distance is omitted from the NSS, no limit to the distance is assumed. 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 "familial" NSS value limits results to the subset of the population sharing a direct familial relationship with the context. Familial URNs MAY contain one or more semicolon ";" delimited TOKENs whose values identify specific named "family roles" (i.e. "father", "mother", "grandparents", etc). Each role is considered individually. That is, for instance, the URN "urn:social:familiar:father;mother" identifies all members of the relevant population who fulfill either the father or mother familial roles relative to the context resource. Family 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 Snell Expires September 13, 2014 [Page 4] Internet-Draft Social URN March 2014 The "urn:social:everyone" URN identifies the subset of the total population that is visible to the context. 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:peer:{distance} The "urn:social:peer" URN identifies the subset of the total population that is both visible to the context and considered to be a "peer". Peer relationships exist only within populations in which there exists a hierarchical division of members in the population. An example of such a network would be a company or similarly structured organization. Peers might be directly or indirectly connected to the target resource but are considered to share the same hierarchical position. 2.7. urn:social:subordinate:{distance} The "urn:social:subordinate" URN identifies the subset of the total population that is both visible to the context and considered to be "subordinate" to the context. Subordinate relationships exist only within populations in which there exists a hierarchical division of members in the population. Snell Expires September 13, 2014 [Page 5] Internet-Draft Social URN March 2014 An example of such a network would be a company or similarly structured organization. Subordinates might be directly or indirectly connected to the target resource but are considered to share a lower hierarchical position. 2.8. urn:social:superior:{distance} The "urn:social:superior" URN identifies the subset of the total population that is both visible to the context and considered to be "superior" to the context. Superior relationships exist only within populations in which there exists a hierarchical division of members in the population. An example of such a network would be a company or similarly structured organization. Superiors might be directly or indirectly connected to the target resource but are considered to have a higher hierarchical position. 2.9. 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.10. 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" subset are those who have elected to "follow" the activity of the context resource. 2.11. urn:social:self Snell Expires September 13, 2014 [Page 6] Internet-Draft Social URN March 2014 The "urn:social:self" URN identifies the context resource itself as a member of the total population. 2.12. 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.13. urn:social:familial:{tokens}:{distance} The "urn:social:familial:{tokens}:{distance}" URN identifies the subset of the total population that is both visible to the context and has fulfills at least one of the individual familial 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:familial:father;mother urn:social:familial:siblings urn:social:familial 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. Snell Expires September 13, 2014 [Page 7] Internet-Draft Social URN March 2014 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) 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 Snell Expires September 13, 2014 [Page 8] Internet-Draft Social URN March 2014 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. 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 September 13, 2014 [Page 9]