Contact information footprint Re: Creating Group URIs

This sounds like contacts management, and we had in solid decided to go with VCARD for interop with others.   We need to share this stuff with all the apps which are allowed to add contact data.



Current status:   Suppose you have your contacts data in Solid at at path $A.
Then the this is gives a new group called   "Tuesday meeting” a URI

 $A/Group/Tuesday_meeting/index.ttl#this

and there store the name of the group, the fact that it is a vcard:Group. 

Here for example for a group “Solid”, including some stuff exported from Mac OS contacts in case we later get to sync in both directions


<#this>
 a vcard:Group;
vcard:fn "Solid”;
vcard:hasUID <urn:uuid:96CD22D0-86B9-41EF-A151-9EE523D5CAF1:ABGroup>;
dc:created "2016-03-31T15:27:07+0000"^^xsd:dateTime;
dc:modified "2016-08-30T22:48:51+0000"^^xsd:dateTime;
.

and for each member



If we have a webid, then that is used as he subject - because the ACL system needs that triple, and then the local URI for the person is given with a own:sameAs (“=“ in turtle)


< https://dzagidulin.databox.me/profile/card#me> vcard:fn "Dimitri Zagidulin"; is vcard:hasMember of <#this>; = <../../Person/13830FD1-7566-4ED1-8795-C943DBC51265/index.ttl#this> .


If there is no known webid, then the local URI, <../../Person/13830FD1-7566-4ED1-8795-C943DBC51265/index.ttl#this>
is used as the subject.  This is a bit complicated when serializing the group, but it is a compromise to keep the ACL system fast.

The actual VCARD data for person is at the local URI for them.



@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.
@prefix ab: <http://www.w3.org/ns/pim/ab#>.
@prefix dc: <http://purl.org/dc/elements/1.1/>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.

<#this>
 a vcard:Individual; vcard:fn "Dimitri Zagidulin";
vcard:hasName [vcard:given-name "Dimitri";
vcard:family-name "Zagidulin";
];
 vcard:hasPhoto <../../Person/13830FD1-7566-4ED1-8795-C943DBC51265/image.png>;
vcard:url [ a vcard:HomePage; vcard:value <https://github.com/dmitrizagidulin>],
[ a vcard:WebId; vcard:value < https://dzagidulin.databox.me/profile/card#me>],
[ a vcard:HomePage; vcard:value <http://www.computingjoy.com/>];
vcard:hasEmail [ a vcard:Home; vcard:value <mailto:dzagidulin@gmail.com>];
ab:ABPersonFlags 0;
vcard:note """
""";
vcard:hasUID <urn:uuid:13830FD1-7566-4ED1-8795-C943DBC51265:ABPerson>;
dc:created "2016-03-31T15:14:20+0000"^^xsd:dateTime;
dc:modified "2016-08-30T22:45:52+0000"^^xsd:dateTime.



The ab:ABPersonFlags 0 line is a field in the AddressBook data which is only used for  round trip, and I think it has to do with whether  a person is displayed primarily as  a person or an organization.

That format is generated by the exporter program https://github.com/linkeddata/swap/blob/master/pim/readMacAddressBook.py <https://github.com/linkeddata/swap/blob/master/pim/readMacAddressBook.py>
but the contact UI I am using  https://github.com/linkeddata/solid-app-set/blob/master/contact/contactPane.js <https://github.com/linkeddata/solid-app-set/blob/master/contact/contactPane.js>  (monolithic code at the moment - sorry) doesn’t yet respect it.

Tim

.



> On 2016-10 -16, at 07:20, Melvin Carvalho <melvincarvalho@gmail.com> wrote:
> 
> It is common when dealing with groups of Agents to want to create a URI to denote those agents. Yet there is no systematic way to create a URI from a set of its participants. This simple spec solves the problem by creating a FOAF Group with members the URIs, canonicalizing it, taking the hash, and then creating a URI from that hash.
> 
> https://solid-live.github.io/specs/groupuris/ <https://solid-live.github.io/specs/groupuris/>
> 
> My use case is to create group teleconferences using the roll call JS library [1].  You have two or more participants, and that can uniquely generate a hash, which is used to create a chat room, uniquely for your group based in the algorithm above.
> 
> Feedback welcome!
> 
> [1] https://rollcall.audio/ <https://rollcall.audio/>

Received on Monday, 17 October 2016 15:18:40 UTC