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.