Socialwg/Social Vocabulary

From W3C Wiki

Conceptual Objects

Conceptual objects generally applicable for many social systems:

  • Person / Profile
  • Agent
  • Relationship
  • Role
  • Delegate
  • Group
  • Organization
  • Affiliation
  • Collection
  • Location / Place
  • Image
  • Video
  • Audio
  • Document
  • File
  • Article
  • Note
  • Comment
  • Like
  • Share
  • Save / Bookmark
  • Rating / Review
  • Notification
  • Activity
  • Application
  • Badge
  • Event
  • Game
  • Offer

1. Person / Profile

The Person or Profile Concept describes a sentient individual. There are generally several ways in which the Person / Profile concept is expressed

  • The Private "Me" - A description of myself, containing information available only to myself
  • The Public "Me" - A description of myself, containing information I have marked accessible to everyone
  • The Selective "Me" - A description of myself, containing information I have marked accessible only to a selected group
  • The Public "You" - A description of someone else, containing information marked accessible to everyone
  • The Selective "You" - A description of someone else, containing information marked accessible only to a selected group

There are also different variations based on whether this is a "Consumer" or "Business" Person / Profile

  • Consumer - Contains a description of the individual as an individual consumer. Can include personalized information such as likes, preferences, tastes, dislikes, demographics, etc
  • Business - Contains a description of the individual within the context of an enterprise. Can include organizational information such as position, roles, business relationships, etc.

There are several existing Web Vocabularies that provide definitions of a "Person" including: VCard, FOAF, Prov, Schema.org, and others. Many existing Activity Streams 1.0 implementations adopted the OpenSocial/Portable Contacts model.

1.1 VCard

vCard4 is RFC 6350.

1.1.1 h-card

h-card is vCard4 expressed in HTML.

Simple h-card, one element, one class name:

<a class="h-card" href="http://example.com/me/corky">Corky Crystal</a>

More extensive based on the vcard-rdf example below.

<div class="h-card">
 <a class="u-url p-name" href="http://example.com/me/corky">Corky Crystal</a>
 (<span class="p-nickname">Corks</span>) - 
 <a class="u-email" href="mailto:corky@example.com">email</a>
 <div class="p-street-address">111 Lake Drive</div>
  <span class="p-locality">WonderCity</span>,
  <span class="p-postal-code">5555</span>
  <div class="p-country-name">Australia</div>
 </div>  
 <a class="u-tel" href="tel:+61755555555">phone</a>
</div>
1.1.2 vcard-rdf

See: http://www.w3.org/TR/vcard-rdf/

{
  "@context": "http://www.w3.org/2006/vcard/ns",
  "@id": "http://example.com/me/corky",
  "@type": "Individual",
  "fn": "Corky Crystal",
  "nickname": "Corks",
  "hasEmail": "mailto:corky@example.com",
  "hasAddress": {
    "@type": "Home",
    "country-name": "Australia",
    "locality": "WonderCity",
    "postal-code": "5555",
    "street-address": "111 Lake Drive"
  },
  "hasTelephone": {
    "@type": [ "Home", "Voice" ],
    "hasValue": "tel:+61755555555"
  }
}

1.2 FOAF

See: http://xmlns.com/foaf/spec/

{
  "@context": "...",
  "@type": "Person",
  "name": "Dan Brickley",
  "homepage": "http://danbri.org",
  "openid": "http://danbri.org",
  "img": "http://example.org/images/me.jpg"
}

1.3 Schema.org

See: http://schema.org/Person

{
  "@context": "http://schema.org",
  "@type": "Person",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Seattle",
    "addressRegion": "WA",
    "postalCode": "98052",
    "streetAddress": "20341 Whitworth Institute 405 N. Whitworth"
  },
  "jobTitle": "Professor",
  "name": "Jane Doe",
  "email": "mailto:jane-doe@xyz.edu",
  "image": "janedoe.jpg",
  "telephone": "(425) 123-4567",
  "url": "http://www.janedoe.com"
}

1.4 Prov

See: http://www.w3.org/TR/prov-o/#Person

{
  "@context": "...", 
  "@type": ["prov:Person", "prov:Agent"],
  "foaf:name": "Joe Smith",
  "prov:actedOnBehalfOf": {
    "@type": "prov:Organization",
    "foaf:name": "An organization"
  }
}


1.5 SIOC

See: http://rdfs.org/sioc/spec/#term_UserAccount

{
  "@context": "...", 
  "@type": ["sioc:UserAccount"],
  "sioc:avatar": "http://example.net/alice.png",
  "sioc:follows": [
    "acct:perpetual-tripper@wwelves.org",
    "http://tantek.com"
  ]
}

2. Agent

The Agent concept describes any entity capable of *doing* something. The "Person" concept is a type of "Agent". Applications, Processes, Devices, etc can also be Agents. Typically, however, when speaking about an "Agent", we're talking about a non-sentient entity that is typically acting on the behalf of either a sentient person or an organization of some sort.

3. Relationship

The Relationship concept describes a qualified relationship between two Agents/People. The Relationship can be formal (friend, boss, relative) or informal (common interests, geographic co-location, etc). The Relationship may be symmetric or asymmetric. The Relationship typically is not Transitive. Relationships have state and a clear lifecycle.

4. Role

The Role concept is an abstraction for Agent and Person. Within many contexts, specific actions are taken by any Agent/Person currently occupying a given Role. Examples include "Moderator" or "Reviewer". The specific person or agent occupying the Role may change over time. See http://www.w3.org/TR/vocab-org/#class-role

5. Delegate

A Delegate is a specific kind of Role where one Person/Agent is acting on the behalf of another Person, Agent, Group or Organization.

6. Group

A Group is a collective of people, agents or other groups.

7. Organization

An Organization is a specific kind of Group with a clear structure in which members are organized. See: http://www.w3.org/TR/vocab-org/#class-organization

7.1 Org Ontology

{
  "@id": "http://example.org",
  "@type": "org:Organization",
  "foaf:name": "My Org",
  "org:hasUnit": {
    "@id": "http://example.org/unit",
    "foaf:name": "My Department"
  }
}

8. Affiliation

An Affiliation is a special kind of Relationship connecting a Person/Agent with a Group or Role.

8.1 schema.org/Role

Schema.org uses Qualified Relation Pattern to model roles.

blog post: http://blog.schema.org/2014/06/introducing-role.html

9. Collection

A Collection is a collective of discreet but related resources. The key difference between a Group and a Collection is that a Group is capable of acting as an Agent, while a Collection is not.

10. Location / Place

Represents a physical or logical location.

11. Image

12. Video

13. Audio

14. Document

15. File

16. Article

17. Note

18. Comment

19. Like

20. Share

21. Save / Bookmark

22. Rating / Review

23. Notification

24. Activity

25. Application

26. Badge

27. Event

28. Game

29. Offer