One document matched: draft-snell-more-link-relations-03.xml


<?xml version="1.0"?> 
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
  <!ENTITY rfc5988 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5988.xml'>
]>
<?rfc toc="yes"?> 
<?rfc strict="yes"?> 
<?rfc symrefs="yes" ?> 
<?rfc sortrefs="yes"?> 
<?rfc compact="yes"?> 
<rfc category="info" ipr="trust200811" docName="draft-snell-more-link-relations-03"> 
  <front> 
    <title abbrev="More Link Relations"> 
      Additional Link Relations and the 'urn:social' Namespace
    </title> 
 
    <author initials="J.M." surname="Snell" fullname="James M Snell"> 
      <address> 
        <email>jasnell@gmail.com</email> 
      </address> 
    </author> 
    
    <date month="November" year="2013" /> 
 
    <area>Applications</area> 
    <keyword>I-D</keyword> 
    <keyword>http</keyword> 
    <keyword>link</keyword> 
    <keyword>rel</keyword>
 
    <abstract> 
      <t>
        This specification defines the 'social' URN namespace 
        and a handful of socially-related Link Relation types.
      </t> 
    </abstract> 
 
  </front> 
  
  <middle> 
    <section anchor="intro" title="Introduction"> 
 
      <t>
        This specification defines and adds the following additional 
        link relation types to the IANA Registry of Link Relations
        established by <xref target="RFC5988"/>: to, bto, cc, bcc, 
        from, bfrom, source, scope, generator, provider, location, alias 
        and mentioned-by. Further, this specification proposes a new 
        'social' URN namespace.
      </t>
      
      <t>
        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 
        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.
      </t>
      
    </section> 
    
    <section title="The 'social' URN Namespace">
      
      <t>
        This specification defines the 'social' URN namespace having the 
        following structure:
      </t>
      
      <figure><preamble>ABNF Grammar:</preamble><artwork><![CDATA[
  social-url = "urn:social:" social-nss
  NZDIGIT    = %x31-39
  distance   = ":" NZDIGIT
  confidence = ":" 2DIGIT
  roles      = ":" (TOKEN *( ";" TOKEN ) )
  dimensions = ":" (TOKEN *( ";" TOKEN ) )
  social-nss = "self" /
               "everyone" /
               "direct"   /
               ( "extended" [ distance ] ) /
               ( "peer" [ distance ] ) /
               ( "subordinate" [ distance ] ) /
               ( "superior" [ distance ] ) /
               ( "common" [ dimensions ] [ confidence ] ) /
               ( "interested" [ confidence ] ) /
               ( "role" roles )
      ]]></artwork></figure>
            
      <t>
        Within any given social networking system, there is an available
        population of entities. Each NSS term 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 is directly connected to the context person within 
        the social graph, while the "urn:social:extended" URN identifies the
        subset that is directly or indirectly connected to the context 
        person.
      </t>
      
      <t>
        The "extended", "peer", "subordinate", and "superior" NSS values
        MAY include an additional single digit non-zero "distance" specifier,
        whose value identifies a "degree of separation" from the link 
        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.
      </t>
      
      <t>
        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 shares both the same gender and approximate
        age. 
      </t>
      
      <t>
        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.
      </t>
      
      <t>
        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" rolel. The URN "urn:social:role:reader;writer" 
        identifes all members of the relevant population who are assigned
        to both the "reader" and "writer" roles.
      </t>
      
      <t>
        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.
      </t>
      
      <section title="urn:social:everyone">
        <t>
          The "urn:social:everyone" URN identifies the subset of the total
          population that is visible to the context.
        </t>
      </section>
      
      <section title="urn:social:direct">
        <t>
          The "urn:social:direct" URN identifies the subset of the total
          population that is both visible to and directly connected to 
          the context.
        </t>
      </section>
      
      <section title="urn:social:extended">
        <t>
          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.
        </t>
      </section>
      
      <section title="urn:social:peer">
        <t>
          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".
        </t>
        <t>
          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.
        </t>
      </section>
      
      <section title="urn:social:subordinate">
        <t>
          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.
        </t>
        <t>
          Subordinate 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. Subordinates might be directly or indirectly connected 
          to the target resource but are considered to share a lower hierarchical 
          position.
        </t>
      </section>
      
      <section title="urn:social:superior">
        <t>
          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.
        </t>
        <t>
          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.
        </t>
      </section>
      
      <section title="urn:social:common">
        <t>
          The "urn:social:common" 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.
        </t>
        <t>
          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.
        </t>
      </section>
      
      <section title="urn:social:interested">
        <t>
          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.
        </t>
      </section>
      
      <section title="urn:social:self">
        <t>
          The "urn:social:self" URN identifies the context resource 
          itself as a member of the total population.
        </t>
      </section>
      
      <section title="urn:social:role:{tokens}">
        <t>
          The "urn:social:role:{token}" URN identifies the subset of 
          the total population that is both visible to the contexst and
          has been assigned to each of the individual roles identified 
          within by the URN.
        </t>
        <t>
          The values of the role tokens are specific to the context
          in which they are being used.
        </t>
      </section>
      
    </section>
                              
    <section title="IANA Considerations"> 
      
      <t>
        The following Link Relations are added to the IANA Registry of 
        Link Relations.
      </t>
      
      <texttable>
        <ttcol>Name</ttcol>
        <ttcol>Description</ttcol>
        
        <c>to</c>
        <c>
          Refers to a resource that is considered to be part of the
          public primary audience of the link's context.
        </c>
        
        <c>bto</c>
        <c>
          Refers to a resource that is considered to be part of the
          private primary audience of the link's context.
        </c>
        
        <c>cc</c>
        <c>
          Refers to a resource that is considered to be part of the 
          public secondary audience of the link's context.
        </c>
        
        <c>bcc</c>
        <c>
          Refers to a resource that is considered to be part of the 
          private secondary audience of the link's context.
        </c>
        
        <c>from</c>
        <c>
          Refers to a resource that is publicly considered to be the originator
          of the link's context.
        </c>
        
        <c>bfrom</c>
        <c>
          Refers to a resource that is privately considered to be the orignator
          of the link's context.
        </c>
        
        <c>scope</c>
        <c>
          Refers to a resource that identifies the total population of entities
          to which the context is relevant. 
        </c>
        
        <c>source</c>
        <c>
          Refers to the original source of information contained by the 
          context resource.
        </c>
        
        <c>provider</c>
        <c>
          Refers to the resource that provided the context resource. 
          Typically, this would be used to identify the entity publishing
          the resource. 
        </c>
        
        <c>generator</c>
        <c>
          Refers to the resource that generated the context resource.
          Typically, this would be used to identify the software application
          that created the context resource.
        </c>
        
        <c>mentioned-by</c>
        <c>
          Refers to a resource that mentions the context resource in some 
          fashion. This, for example, would be used when an article mentions
          another article, or a social status update mentions a particular
          user, etc.
        </c>
        
        <c>location</c>
        <c>
          References a URI/IRI that represents a physical or logical location
          with which the context resource is associated.
        </c>
        
      </texttable>
                  
    </section> 
 
    <section title="Security Considerations"> 
    
      <t>There are no additional security concerns introduced by this
      document.</t>
    
    </section> 
  </middle> 
 
  <back>
    <references title="Informative References">
      &rfc5988;
    </references>
    
    <section title="Relationship of 'to', 'bto', 'cc', 'bcc', 'from', 'bfrom' and 'scope'">
      
      <t>
        The "scope" link relation is closely aligned with the so-called
        "audience targeting" link relations "to", "bto", "cc", "bcc", "from",
        and "bfrom" in that "scope" links identify the total population 
        from which the audience is drawn. 
      </t>
      
    </section>
    
    <section title="Examples">
    
      <figure><preamble>Using targeting link relations and the urn:social namespace:</preamble><artwork><![CDATA[
    POST /alerts HTTP/1.1
    Host: example.org
    Content-Type: text/plain
    Authorization: Basic {Base64 Credentials}
    Link: <urn:social:everyone>; rel="to"
    Link: <urn:social:extended:2>; rel="cc"
    Link: <urn:social:self>; rel="bfrom"
    Link: <http://example.net/my-social-net>; rel="scope"
  
    Test message
      ]]></artwork></figure>
      
      <figure><preamble>Using the targeting link relations with urn:social:role:</preamble><artwork><![CDATA[
    POST /alerts HTTP/1.1
    Host: example.org
    Content-Type: text/plain
    Authorization: Basic {Base64 Credentials}
    Link: <urn:social:role:moderator>; rel="to"
    Link: <urn:social:role:editor>; rel="cc"

    Test message   
      ]]></artwork></figure>
    
 
      <figure><preamble>Using publication link relations:</preamble><artwork><![CDATA[
    <html>
      <head>
        ...
        <link 
          rel="source" 
          href="http://example.net/post/1" />
        <link 
          rel="provider" 
          href="http://example.org" />
        <link 
          rel="generator" 
          href="http://example.com/software/app/1.1" />
        ...
      </head>
      <body>...</body>
    </html>
  

      ]]></artwork></figure>
    
      <figure><preamble>Using the location relation:</preamble><artwork><![CDATA[
    Link: <geo:37.786971,-122.399677>; rel="location"
      ]]></artwork></figure>
    
      <figure><preamble>Using the mentioned-by relation:</preamble><artwork><![CDATA[
    LINK /articles/1 HTTP/1.1
    Host: example.org
    Link: <articles/2>; rel="mentioned-by"
      ]]></artwork></figure>
 
    </section>
    
  </back>
  
</rfc> 
 

PAFTECH AB 2003-20262026-04-24 05:26:25