- From: James M Snell <jasnell@gmail.com>
- Date: Tue, 24 Mar 2015 09:10:47 -0700
- To: "public-socialweb@w3.org" <public-socialweb@w3.org>
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