This specification details a model for representing social networking populations and connections.

Introduction

TBD

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [[!RFC2119]].

Classes

Class Description Example
Connection URI: http://ns.jasnell.me/social#Connection
Microformats Class: h-connection
Notes:

A Connection describes a relationship between two Individuals. The Connection class is essentially just a form of reified statement.

Properties: a | relationship | b
Population URI: http://ns.jasnell.me/social#Population
Microformats Class: h-population
Notes:

A Population describes a set of Individuals that are visible to a Context resource. The Population class is abstract and is not intended to be directly used by implementations.

Properties: distance
CompoundPopulation URI: http://ns.jasnell.me/social#CompoundPopulation
Microformats Class: h-compound-population
Notes: A CompoundPopulation is a population composed of multiple sub-Populations. The CompoundPopulation class is abstract and is not intended to be directly used by implementations.
Subclass Of: Population | rdf:Bag
Properties:

Inherits all properties of Population.

Everyone URI: http://ns.jasnell.me/social#Everyone
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": "s:Everyone"
}
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": {
    "@type": "s:Everyone",
    "s:distance": 10
  }
}
Microformats Class: h-population-everyone
Notes: Represents the subset of a total population that is visible to the context.
Subclass Of: Population
Properties:

havingRelationship | havingRole

Inherits all properties of Population.

Public URI: http://ns.jasnell.me/social#Public
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": "s:Public"
}
Microformats Class: h-population-public
Notes: Represents the subset of a total population that is both visible to the context and shares a publicly known or visible relationship with the context.
Subclass Of: Population
Properties:

Inherits all properties of Population.

Private URI: http://ns.jasnell.me/social#Private
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": "s:Private"
}
Microformats Class: h-population-private
Notes: Represents the subset of a total population that is both visible to the context and shares a private or publicly invisible relationship with the context.
Subclass Of: Population
Properties:

Inherits all properties of Population.

Direct URI: http://ns.jasnell.me/social#Direct
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": "s:Direct"
}
Microformats Class: h-population-direct
Notes: Represents the subset of a total population that is both visible to the context and directly connected to the context. The Direct class is equivalent to Everyone with a distance equal to 1.
Subclass Of: Population
Properties:

Inherits all properties of Population.

Common URI: http://ns.jasnell.me/social#Common
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": {
    "@type": "s:Direct",
    "s:havingDimension": "http://example.org/some/common/characteristic",
    "s:confidence": 75
  }
}
Microformats Class: h-population-common
Notes: Represents the subset of a total population that is both visible to the context and is determined to share common attributes with the context. The havingDimension property identifies one or more dimensions on which the commonality is determined. The confidence property specifies a degree of confidence, expressed as an integer value between 0-100.
Subclass Of: Population
Properties:

confidence | havingDimension

Inherits all properties of Population.

Interested URI: http://ns.jasnell.me/social#Interested
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": "s:Interested"
}
Microformats Class: h-population-interested
Notes: Represents the subset of a total population that is both visible to the context and has an express interest in the context.
Subclass Of: Population
Properties:

confidence

Inherits all properties of Population.

Self URI: http://ns.jasnell.me/social#Self
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": "s:Self"
}
Microformats Class: h-population-self
Notes: Represents the context resource itself as a member of the total population
Subclass Of: Population
Properties:

Inherits all properties of Population.

All URI: http://ns.jasnell.me/social#All
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": {
    "@type": "s:All",
    "s:member": [
      "s:Interested",
      {
        "@type": "s:Everyone",
        "s:havingRole": "http://example.org/Moderator"
      }
    ]
  }
}
Microformats Class: h-population-all
Notes: Represents the subset represented by the intersection of multiple subsets (that is, members must belong to all specified subsets.
Subclass Of: CompoundPopulation
Properties:

Inherits all properties of CompoundPopulation.

Any URI: http://ns.jasnell.me/social#Any
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": {
    "@type": "s:Any",
    "s:member": [
      "s:Interested",
      {
        "@type": "s:Everyone",
        "s:havingRole": "http://example.org/Moderator"
      }
    ]
  }
}
Microformats Class: h-population-any
Notes: Represents the subset represented by the union of multiple subsets (that is, members must belong to any of the specified subsets.
Subclass Of: CompoundPopulation
Properties:

Inherits all properties of CompoundPopulation.

None URI: http://ns.jasnell.me/social#None
{
  "@context": [
    "http://www.w3.org/ns/activitystreams#",
    "http://ns.jasnell.me/social"
  ],
  "@type": "Post",
  "actor": "acct:sally@example.org",
  "object": "http://example.org",
  "to": {
    "@type": "s:None",
    "s:member": [
      "s:Interested",
      {
        "@type": "s:Everyone",
        "s:havingRole": "http://example.org/Moderator"
      }
    ]
  }
}
Microformats Class: h-population-none
Notes: Represents the subset represented by the complement of multiple subsets (that is, members must not belong to any of the specified subsets.
Subclass Of: CompoundPopulation
Properties:

Inherits all properties of CompoundPopulation.

Properties

Term Description
a URI: http://ns.jasnell.me/social#a
Microformats Class: p-a
Notes: Within a Connection statement, specifies the subject. That is, in the statement, "John is friends with Sally", a is "John".
Domain: Connection
Range: xsd:any
Functional: True
b URI: http://ns.jasnell.me/social#b
Microformats Class: p-b
Notes: Within a Connection statement, specifies the object. That is, in the statement, "John is friends with Sally", b is "Sally".
Domain: Connection
Range: xsd:any
Functional: True
relationship URI: http://ns.jasnell.me/social#relationship
Microformats Class: p-relationship
Notes: Within a Connection statement, specifies the predicate. That is, in the statement, "John is friends with Sally", relationship is "is friends".
Domain: Connection
Range: xsd:any
Functional: True
confidence URI: http://ns.jasnell.me/social#confidence
Microformats Class: p-confidence
Notes: Specifies the level of confidence as an integer value in range 0-100.
Domain: Common | Interested
Range: xsd:nonNegativeInteger <= 100
Functional: True
distance URI: http://ns.jasnell.me/social#distance
Microformats Class: p-distance
Notes: Specifies the connection distance as a non-negative integer.
Domain: Population
Range: xsd:nonNegativeInteger <= 100
Functional: True
havingDimension URI: http://ns.jasnell.me/social#havingDimension
Microformats Class: u-having-dimension | e-having-dimension
Notes: Specifies a dimension on which an implementation ought to determine commonality with the context.
Domain: Common
Range: Thing
havingRelationship URI: http://ns.jasnell.me/social#havingRelationship
Microformats Class: u-having-relationship | e-having-relationship
Notes: Specifies a type of relationship an individual can have with the context.
Domain: Everyone
Range: Thing
havingRole URI: http://ns.jasnell.me/social#havingRole
Microformats Class: u-having-role | e-having-role
Notes: Specifies a role an individual can be assigned.
Domain: Everyone
Range: Thing
member URI: http://ns.jasnell.me/social#member
Microformats Class: u-member | e-member
Notes:
Domain: CompoundPopulation
Range: Population
  @prefix : <http://ns.jasnell.me/social#> .
  @prefix s: <http://ns.jasnell.me/social#> .
  @prefix owl: <http://www.w3.org/2002/07/owl#> .
  @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
  @prefix xml: <http://www.w3.org/XML/1998/namespace> .
  @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
  @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
  @base <http://www.w3.org/ns/activitystreams> .

  <http://ns.jasnell.me/social#> a owl:Ontology ;
    rdfs:comment "Social Artifacts"@en ;
    rdfs:label "Social Artifacts"@en .

  :Connection a owl:Class;
    rdfs:label "A Connection between a subject and an object."@en ;
    rdfs:subClassOf rdf:Statement .

  :relationship a owl:ObjectProperty, owl:FunctionalProperty;
    rdfs:subPropertyOf rdf:predicate ;
    rdfs:domain :Connection .
  :a a owl:ObjectProperty, owl:FunctionalProperty;
    rdfs:subPropertyOf rdf:subject ;
    rdfs:domain :Connection .
  :b a owl:ObjectProperty, owl:FunctionalProperty;
    rdfs:subPropertyOf rdf:object ;
    rdfs:domain :Connection .

  :Population a owl:Class ;
    rdfs:label "Population"@en ;
    rdfs:subClassOf owl:Class .

  :Everyone a :Population ;
    rdfs:label "Everyone"@en ;
    rdfs:comment "Represents the subset of a total population that is visible to the context."@en .

  :Public a :Population ;
    rdfs:label "Public"@en ;
    rdfs:comment "Represents the subset of a total population that is both visible to the context and shares a publicly known or visible relationship with the context"@en .

  :Private a :Population ;
    rdfs:label "Private"@en ;
    rdfs:comment "Represents the subset of a total population that is both visible to the context and shares a private or publicly invisible relationship with the context"@en .

  :Direct a :Population ;
    rdfs:label "Direct"@en ;
    rdfs:comment "Represents the subset of a total population that is both visible to the context and directly connected to the context"@en .

  :Common a :Population ;
    rdfs:label "Common"@en ;
    rdfs:comment "Represents the subset of a total population that is both visible to the context and is determined to share common attributes with the context"@en .

  :Interested a :Population ;
    rdfs:label "Interested"@en ;
    rdfs:comment "Represnts the subset of a total population that is both visible to the context and has an express interest in the context"@en .

  :Self a :Population ;
    rdfs:label "Self"@en ;
    rdfs:comment "Represents the context resource itself as a member of the total population"@en .

  :All a :CompoundPopulation ;
    rdfs:label "All"@en;
    rdfs:comment "Represents the subset represented by the intersection of multiple subsets (that is, members must belong to all specified subsets"@en .

  :Any a :CompoundPopulation ;
    rdfs:label "Any"@en;
    rdfs:comment "Represents the subset represented by the union of multiple subsets (that is, members must belong to any of the specified subsets"@en .

  :None a :CompoundPopulation ;
    rdfs:label "None"@en;
    rdfs:comment "Represents the subset represented by the complement of multiple subsets (that is, members must not belong to any of the specified subsets"@en .

  :CompoundPopulation a owl:Class ;
    rdfs:label "CompoundPopulation"@en ;
    rdfs:comment "A population composed of multiple sub-populations."@en ;
    rdfs:subClassOf rdf:Bag, :Population .

  :member a owl:ObjectProperty, rdfs:ContainerMembershipProperty ;
    rdfs:label "member"@en;
    rdfs:subPropertyOf rdfs:member ;
    rdfs:domain :CompoundPopulation ;
    rdfs:range :Population ;

  :havingDimension a owl:ObjectProperty ;
    rdfs:label "havingDimension"@en ;
    rdfs:comment "Specifies a dimension used to evaluate common attributes"@en;
    rdfs:domain :Common ;
    rdfs:range owl:Thing .

  :havingRole a owl:ObjectProperty ;
    rdfs:label "havingRole"@en ;
    rdfs:comment "Specifies a role"@en ;
    rdfs:domain :Everyone ;
    rdfs:range owl:Thing .

  :havingRelationship a owl:ObjectProperty ;
    rdfs:label "havingRelationship"@en ;
    rdfs:comment "Specifies a type of relationship"@en ;
    rdfs:domain :Everyone ;
    rdfs:range owl:Thing .

  :distance a owl:DatatypeProperty ;
    rdfs:label "distance"@en ;
    rdfs:comment "Specifies a relative 'degree of separation' from the context"@en ;
    rdfs:domain :Population ;
    rdfs:range xsd:nonNegativeInteger .

  :confidence a owl:DatatypeProperty ;
    rdfs:label "confidence"@en ;
    rdfs:comment "Specifies a relative confidence level"@en ;
    rdfs:domain [
      a owl:Class;
        owl:unionOf ( :Common :Interested )
    ];
    rdfs:range [
      a rdfs:Datatype ;
      owl:onDatatype xsd:nonNegativeInteger ;
      owl:withRestrictions (
        [ xsd:maxInclusive "100"^^xsd:nonNegativeInteger ]
      )
    ] .