Profiles

One of the interesting aspects of our vocabulary is that while
"Profiles" tend to be central to most Social platforms, we have
nothing in our existing Vocabulary definition that deals specifically
with Profiles.

Consider, for instance, the User Profile Management user story
(https://www.w3.org/wiki/Socialwg/Social_API/User_stories#User_profile_management)

1. Kim creates a personal profile with her name, avatar picture, and home town.
2. Kim updates her profile to include her job title, phone number and
company name.
3. Kim reconsiders her personal privacy boundaries; she updates her
profile to remove her phone number.

We currently do not have a normative/canonical way of representing
these actions in AS2. Which is a problem. The challenge comes down to:
How do we model a "Profile".

I'm going to make a suggestion: A Profile is a kind of Collection /
Container to which items can be added/removed. In that sense, then:

as:Profile a owl:Class ;
  rdfs:subClassOf as:Collection ;
  rdfs:label "Profile"@en .

>From here, then, I can do:

// Kim Creates Her Profile
{
  "@type": "Create",
  "actor": {
    "@type": "Person",
    "displayName": "Kim"
  },
  "object": {
    "@type": "Profile",
    "@id": "http://kim.example.org"
  }
}

// Kim Adds her fullname, avatar and location to her Profile
{
  "@type": "Add",
  "actor": {
    "@type": "Person",
    "displayName": "Kim"
  },
  "object": [
    {
      "@type": "foaf:name",
      "displayName": "Kim Smith"
    },
    {
      "@type": "Image",
      "url": "http://avatars.example.org/kim.png"
    },
    {
      "@type": "Place",
      "displayName": "Fresno, CA"
    }
  ],
  "target": {
    "@type": "Profile",
    "@id": "http://kim.example.org"
  }
}

Modeling a "Profile" as a Collection seems to provide a natural way of
describing actions taken against a profile, while allowing the
individual elements of the profile to retain their own independent
life cycles.

Received on Tuesday, 24 March 2015 16:11:34 UTC