W3C home > Mailing lists > Public > public-socialweb@w3.org > March 2015

Re: Profiles

From: ☮ elf Pavlik ☮ <perpetual-tripper@wwelves.org>
Date: Wed, 25 Mar 2015 12:01:57 +0100
Message-ID: <551295A5.20406@wwelves.org>
To: James M Snell <jasnell@gmail.com>, "public-socialweb@w3.org" <public-socialweb@w3.org>
Hi James,

On 03/24/2015 05:10 PM, James M Snell wrote:
> 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.
That looks to me very relevant to the work done in Credentials CG
(Credentials WG possibly will launch in near future). Did you have
chance to take a look at very early draft form there?
http://opencreds.org/specs/source/identity-credentials/


> 
> 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" = rdf:type

someone may need to correct me here, but to my understanding you state
that a blank node has type foaf:name

@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix as: <http://www.w3.org/ns/activitystreams#> .

[ as:displayName "Kim Smith" ] a foaf:name .

while

foaf:name rdf:type rdf:Property .

and

rdf:type rdfs:range rdfs:Class .


http://www.w3.org/TR/rdf-schema/#ch_type

"rdf:type is an instance of rdf:Property that is used to state that a
resource is an instance of a class.

A triple of the form:

R rdf:type C
states that C is an instance of rdfs:Class and R is an instance of C.

The rdfs:domain of rdf:type is rdfs:Resource. The rdfs:range of rdf:type
is rdfs:Class."



>     {
>       "@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.

As I suggested in previous email, we could evaluate together
applicability of Reification
http://www.w3.org/TR/rdf-schema/#ch_reificationvocab

Cheers!


Received on Wednesday, 25 March 2015 11:02:14 UTC

This archive was generated by hypermail 2.3.1 : Thursday, 8 December 2016 15:48:21 UTC