Link Search Menu Expand Document

Addressbook

NB: this currently mainly describes how Solid OS stores data on a Solid Pod.

You can create an addressbook containing persons and groups, by adding triples to RDF documents on your pod. To create an addressbook, create a document for it, e.g., /address-book/index.ttl, and add the following triples to that document:

</address-book/index.ttl#this> a         vcard:AddressBook .
</address-book/index.ttl#this> dc:title  "New address Book" .
</address-book/index.ttl#this> acl:owner </profile/card#me> .

You can create separate documents for the people index and for the groups index, as long as you link to those from the main /address-book/index.ttl document in the following ways:

</address-book/index.ttl#this> vcard:nameEmailIndex </address-book/peopleIndex.ttl> .
</address-book/index.ttl#this> vcard:groupIndex     </address-book/groupIndex.ttl> .

To indicate that a person /johnDoe.ttl with full name “John Doe” is in addressbook /address-book/index.ttl, add the following triples:

</johnDoe.ttl#this> vcard:inAddressBook </address-book/index.ttl#this> . # (NB: needs to be in /address-book/peopleIndex.ttl)
</johnDoe.ttl#this> a                   vcard:Individual .
</johnDoe.ttl#this> vcard:fn            "John Doe" .

To indicate that addressbook /address-book/index.ttl has a group called “Colleagues”, add the following triples:

</address-book/index.ttl#this>      vcard:includesGroup </address-book/colleagues.ttl#this> . # (NB: needs to be in /address-book/groupIndex.ttl)
</address-book/colleagues.ttl#this> a                   vcard:Group .
</address-book/colleagues.ttl#this> vcard:fn            "Colleagues" .

To indicate that johnDoe.ttl#this has a certain WebId’s, Solid OS uses:

</johnDoe.ttl#this>
  vcard:url [ a vcard:WebID ; vcard:value <https://johndoe.com/#me> ] ;
  vcard:url [ a vcard:WebID ; vcard:value <https://johndoe.org/#me> ] .

To deal with contacts whose WebID changes, add the new one, then remove the old one. Just like how you would deal with a contact who gets a new phone number, basically.

Contacts imported through Prov4ITData

Google People API

Using the Google People API we can transfer our Google contacts.

Please note that this use case can be extended easily to other Google Products.

Using Schema.org

A Google contact can be mapped to a schema:Person, along with the following properties:

Google contact resource schema:Person
givenName schema:givenName
familyName schema:familyName
displayName schema:alternativeName

## [Add a friend on Solid](https://taisukef.github.io/solid-addfriend/)

> [!NOTE]  
> Requests root access

Uses [custom module](https://github.com/taisukef/solid-addfriend/blob/master/scripts/main.js) writing to `/profile/card`:

```turtle
@prefix c: <https://taisukef.solid.community/profile/card#>.