From bea2322d2ada2a9402599176e4b04fc50970348b Mon Sep 17 00:00:00 2001 From: Melvin Carvalho Date: Sun, 11 Feb 2018 12:59:07 +0100 Subject: [PATCH 01/10] fix minor typo reques ts -> requests --- recommendations-client.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recommendations-client.md b/recommendations-client.md index 6fbb5ff..45189f9 100644 --- a/recommendations-client.md +++ b/recommendations-client.md @@ -87,7 +87,7 @@ profile document. **Attention!** Because creating client certificates requires the [keygen HTML5 element](http://www.w3schools.com/tags/tag_keygen.asp), -which does not work with AJAX reques ts, the client must submit a form to the +which does not work with AJAX requests, the client must submit a form to the **account host URI** -- i.e. `https://user.example.org/`. This restriction means that a predefined set of form element names must be respected on the server. Here is the minimum list of form element names (case sensitive!) that **MUST** From 37b709ced0a6cf2200f6c8cd5fefe2cd4ccfeb31 Mon Sep 17 00:00:00 2001 From: Tim Berners-Lee Date: Sun, 11 Feb 2018 12:50:19 -0500 Subject: [PATCH 02/10] Clarity and motivation for preferences File --- solid-webid-profiles.md | 55 +++++++++++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/solid-webid-profiles.md b/solid-webid-profiles.md index 23802d5..c7b94f7 100644 --- a/solid-webid-profiles.md +++ b/solid-webid-profiles.md @@ -89,12 +89,18 @@ for the purposes of building distributed read-write-web applications. In addition, Solid recommends that WebID profiles include the following statements: -1. A profile SHOULD include a `foaf:name` (see the discussion +1. A profile MUST include a `foaf:name` (see the discussion on [user names](#recommendation-for-user-names-in-profiles) below). -2. A profile SHOULD include `cert:key` public key certificate information, for + This does not have to be a real name, it can by any pseudnym, but + a string proided for apps to use for representing the user, in chats, sharing etc etc. +2. A profile SHOULD include a public `foaf:image` of either a mugshot of the person or a chosen avatar + to make the display of the user's contributions identifyable. +3. A profile MAY provide a `foaf:nick` nickname as a short string for use by user interfaces where + space is limited. +3. A profile SHOULD include `cert:key` public key certificate information, for use with WebID+TLS (which is currently the primary Solid authentication mechanism). -3. A profile SHOULD point to the root storage location using `pim:storage` +4. A profile SHOULD point to the root storage location using `pim:storage` (so that applications will know where to read and write their data). ```ttl @@ -125,7 +131,7 @@ what to name the user, is to perform the following steps: 1. An app SHOULD look in the user's WebID Profile for the `foaf:name` predicate, and use that as the name, if it's available. 2. If an app does not find a name in the user profile, it MAY fall back to using - the WebID URL as the username. + the WebID URL, r a part ofo it, as the username. ## Public and Private Profiles @@ -148,13 +154,42 @@ across several RDF documents: The combination of the main WebID Profile document, and all of the *related* profile documents is referred to as the **Extended Profile**. -Solid apps that interact with the WebID profile MUST also load and parse *all* -of the related RDF resources that are linked to from the main profile using -the following predicates: +Solid apps that interact anonymously with the WebID profile MUST also load and parse *all* +of the related public RDF resources that are linked to from the main profile using any +the following triples in the main profile document: + +1. $webid `http://www.w3.org/2002/07/owl#sameAs` ?public +2. $webid `http://www.w3.org/2000/01/rdf-schema#seeAlso` ?public + +Solid apps that interact as the user in question, logged in with their cedentials, +with their own WebID profile MUST also load and parse all +of the related public public resources above and also will normally +load the user's preferences file. + +### Private preferences file + +The private preferences file is part of the extended profile. It is found +by following a triple in the main profile (the result of looking up the webid) + +3. $webid `http://www.w3.org/ns/pim/space#preferencesFile` ?preferences + +Where the subject is the user's original webid. + +It is the first private file that the app discovers in thie process, and +it is the place which either stores, or leads to, all of the +data which is private to the user, including settings +and preferences, language and display preferences, and so on +and all the user's pesonal data, be it conntacts, pictures or health data. + +The `solid:preferencesFile` link is unusual then in that it is a link +from public data to private data. Otherwise, discovery happes in two +parallelel but otherwise congruent ways, in a tree of public information starting from +the extended profile, and a tree of private information starting from the +private preferences file. Developers use urged to use common software for +these cases, and also to make it extenssible in future for when +the congruent trees may be rooted in files corresponding to groups and organizations +of which the user is a member. -1. `http://www.w3.org/2002/07/owl#sameAs` -2. `http://www.w3.org/2000/01/rdf-schema#seeAlso` -3. `http://www.w3.org/ns/pim/space#preferencesFile` ## Public Key Certificates From c1abd7ed1846c7de57b6d104006c8a32ab798ea5 Mon Sep 17 00:00:00 2001 From: Aaron Coburn Date: Thu, 22 Feb 2018 16:22:09 -0500 Subject: [PATCH 03/10] Fix some minor typographical errors --- solid-webid-profiles.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/solid-webid-profiles.md b/solid-webid-profiles.md index c7b94f7..6060d56 100644 --- a/solid-webid-profiles.md +++ b/solid-webid-profiles.md @@ -92,9 +92,9 @@ statements: 1. A profile MUST include a `foaf:name` (see the discussion on [user names](#recommendation-for-user-names-in-profiles) below). This does not have to be a real name, it can by any pseudnym, but - a string proided for apps to use for representing the user, in chats, sharing etc etc. + a string provided for apps to use for representing the user, in chats, sharing etc etc. 2. A profile SHOULD include a public `foaf:image` of either a mugshot of the person or a chosen avatar - to make the display of the user's contributions identifyable. + to make the display of the user's contributions identifiable. 3. A profile MAY provide a `foaf:nick` nickname as a short string for use by user interfaces where space is limited. 3. A profile SHOULD include `cert:key` public key certificate information, for @@ -131,7 +131,7 @@ what to name the user, is to perform the following steps: 1. An app SHOULD look in the user's WebID Profile for the `foaf:name` predicate, and use that as the name, if it's available. 2. If an app does not find a name in the user profile, it MAY fall back to using - the WebID URL, r a part ofo it, as the username. + the WebID URL, or a part of it, as the username. ## Public and Private Profiles @@ -175,18 +175,18 @@ by following a triple in the main profile (the result of looking up the webid) Where the subject is the user's original webid. -It is the first private file that the app discovers in thie process, and +It is the first private file that the app discovers in this process, and it is the place which either stores, or leads to, all of the data which is private to the user, including settings and preferences, language and display preferences, and so on -and all the user's pesonal data, be it conntacts, pictures or health data. +and all the user's pesonal data, be it contacts, pictures or health data. The `solid:preferencesFile` link is unusual then in that it is a link -from public data to private data. Otherwise, discovery happes in two -parallelel but otherwise congruent ways, in a tree of public information starting from +from public data to private data. Otherwise, discovery happens in two +parallel but otherwise congruent ways, in a tree of public information starting from the extended profile, and a tree of private information starting from the -private preferences file. Developers use urged to use common software for -these cases, and also to make it extenssible in future for when +private preferences file. Developers are urged to use common software for +these cases, and also to make it extensible in future for when the congruent trees may be rooted in files corresponding to groups and organizations of which the user is a member. From ddd6bdded89449aa2b1a1ca423dac4c7846c6dc4 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 27 Sep 2018 17:03:54 +0200 Subject: [PATCH 04/10] Fix old inbox URLs --- recommendations-server.md | 11 ++++------- solid-webid-profiles.md | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/recommendations-server.md b/recommendations-server.md index 6ef8870..91b50f8 100644 --- a/recommendations-server.md +++ b/recommendations-server.md @@ -55,18 +55,15 @@ space#preferencesFile](http://www.w3.org/ns/pim/space#preferencesFile) property. ##### `/inbox/` (Inbox) A container to serve as a default primary channel for -notifications. Note that this is complementary (and not necessarily replacing) -app-specific notification inboxes such as the one used by -[Dokieli](https://github.com/linkeddata/dokieli). +notifications. + **Default ACL:** append-only by public, read by owner. -Discoverable from profile via -[solid-terms](https://github.com/solid/vocab/blob/master/solid-terms.ttl)#Inbox -property. +Discoverable from profile using the [ldp:inbox](http://www.w3.org/ns/ldp#inbox) property as specified in [W3C Linked Data Notifications](https://www.w3.org/TR/ldn/). ```ttl <#me> - <../inbox/> ; + <../inbox/> ; ``` ## CORS - Cross Origin Resource Sharing diff --git a/solid-webid-profiles.md b/solid-webid-profiles.md index 6060d56..ce08391 100644 --- a/solid-webid-profiles.md +++ b/solid-webid-profiles.md @@ -263,7 +263,7 @@ Example: # ... <#me> a foaf:Person ; - . + . ``` ### Type Registry Index Discovery From 8b4b22204f0deb76754c9e427f72af87dec0bbf7 Mon Sep 17 00:00:00 2001 From: Bryan Bess Date: Tue, 2 Oct 2018 08:02:28 -0500 Subject: [PATCH 05/10] Fix typos --- UserStories/BrowsingTheFriendshipGraph.md | 2 +- UserStories/UserProfileManagement.md | 2 +- acl-inheritance.md | 2 +- solid-webid-profiles.md | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/UserStories/BrowsingTheFriendshipGraph.md b/UserStories/BrowsingTheFriendshipGraph.md index 95f2c40..f3770f6 100644 --- a/UserStories/BrowsingTheFriendshipGraph.md +++ b/UserStories/BrowsingTheFriendshipGraph.md @@ -12,7 +12,7 @@ The Linked Data People graph extends to several million organic user profiles over hundreds of multiple domains. If facebook is included (they are producers of linked data via turtle) it extends to over 1.4 billion profiles. -Facebook profiles generally require an OAuth token to use the API, this enables access control and viewing priveledges. Solid in general uses WebAccessControl and ACL's to achieve the same thing, but implementors may choose which approach they wish to take. +Facebook profiles generally require an OAuth token to use the API, this enables access control and viewing privileges. Solid in general uses WebAccessControl and ACL's to achieve the same thing, but implementors may choose which approach they wish to take. In Solid people are denoted by an HTTP URI. Normally, as a best practice the URI contains a fragment identifier (#). This is to help software disambiguate between an HTTP document and the person it talks about, in much the same way that a passport contains information about a person but a passport ID is the ID of that document, not the person. diff --git a/UserStories/UserProfileManagement.md b/UserStories/UserProfileManagement.md index ef6babb..52ebdda 100644 --- a/UserStories/UserProfileManagement.md +++ b/UserStories/UserProfileManagement.md @@ -152,7 +152,7 @@ She can do this either with a PUT which requires re-sending the full document as #### update using PUT -PUT is the easiest for the client, as it does not have to calculate a diff between the original version it has and the version it wishes to have. We use If-Match, to make sure we don't override someone elses content. +PUT is the easiest for the client, as it does not have to calculate a diff between the original version it has and the version it wishes to have. We use If-Match, to make sure we don't override someone else's content. ```http PUT /card HTTP/1.1 diff --git a/acl-inheritance.md b/acl-inheritance.md index 27b2841..7285322 100644 --- a/acl-inheritance.md +++ b/acl-inheritance.md @@ -51,7 +51,7 @@ In `defaultForNew`, ACL permissions are inherited from the whole path as in 'mom - Fast #### Cons -- Generates a storage reuirement for all the ACL files, which is a pain, especialy in a fiel space shared with other systems. +- Generates a storage requirement for all the ACL files, which is a pain, especially in a file space shared with other systems. - Users may lose access to their resource by creating an ACL file that does not contain themselves. - Changing permissions recursively to a folder will require changing permission on each subfolder's ACL diff --git a/solid-webid-profiles.md b/solid-webid-profiles.md index ce08391..598a46b 100644 --- a/solid-webid-profiles.md +++ b/solid-webid-profiles.md @@ -91,7 +91,7 @@ statements: 1. A profile MUST include a `foaf:name` (see the discussion on [user names](#recommendation-for-user-names-in-profiles) below). - This does not have to be a real name, it can by any pseudnym, but + This does not have to be a real name, it can by any pseudonym, but a string provided for apps to use for representing the user, in chats, sharing etc etc. 2. A profile SHOULD include a public `foaf:image` of either a mugshot of the person or a chosen avatar to make the display of the user's contributions identifiable. @@ -161,7 +161,7 @@ the following triples in the main profile document: 1. $webid `http://www.w3.org/2002/07/owl#sameAs` ?public 2. $webid `http://www.w3.org/2000/01/rdf-schema#seeAlso` ?public -Solid apps that interact as the user in question, logged in with their cedentials, +Solid apps that interact as the user in question, logged in with their credentials, with their own WebID profile MUST also load and parse all of the related public public resources above and also will normally load the user's preferences file. @@ -179,7 +179,7 @@ It is the first private file that the app discovers in this process, and it is the place which either stores, or leads to, all of the data which is private to the user, including settings and preferences, language and display preferences, and so on -and all the user's pesonal data, be it contacts, pictures or health data. +and all the user's personal data, be it contacts, pictures or health data. The `solid:preferencesFile` link is unusual then in that it is a link from public data to private data. Otherwise, discovery happens in two From 4090cadf582b511d0a2f0daeb8c8d2d582922684 Mon Sep 17 00:00:00 2001 From: Steffan Davies Date: Thu, 11 Oct 2018 19:49:58 +0200 Subject: [PATCH 06/10] Fix parent README link in example --- examples/user-posts-note.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/user-posts-note.md b/examples/user-posts-note.md index 0a330d6..b4df39a 100644 --- a/examples/user-posts-note.md +++ b/examples/user-posts-note.md @@ -1,7 +1,7 @@ # Example: User Posts a Note **Note:** This example is a component of the parent -[Solid specification](README.md); the parent spec and all its components are +[Solid specification](../README.md); the parent spec and all its components are versioned as a whole. This example is taken from [W3C Social Web From 81809c075e2dc3780a7d8711c71a6465570e50b5 Mon Sep 17 00:00:00 2001 From: Jordan Shurmer Date: Tue, 23 Oct 2018 11:41:29 -0400 Subject: [PATCH 07/10] Fix typo --- solid-webid-profiles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solid-webid-profiles.md b/solid-webid-profiles.md index 598a46b..db4c514 100644 --- a/solid-webid-profiles.md +++ b/solid-webid-profiles.md @@ -163,7 +163,7 @@ the following triples in the main profile document: Solid apps that interact as the user in question, logged in with their credentials, with their own WebID profile MUST also load and parse all -of the related public public resources above and also will normally +of the related public resources above and also will normally load the user's preferences file. ### Private preferences file From 0d5123abafe8730be2d5ddd6e243767b78bf7c44 Mon Sep 17 00:00:00 2001 From: Tim McIver Date: Thu, 17 Jan 2019 21:16:24 -0500 Subject: [PATCH 08/10] Fixes for broken table of content links in the README. --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a0f1c1f..d2e6f8e 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,6 @@ * [HTTPS REST API](#https-rest-api) * [WebSockets API](#websockets-api) 8. [Social Web App Protocols](#social-web-app-protocols) - * [Feed Discovery](#feed-discovery) * [Notifications](#notifications) * [Friends Lists, Followers and Following](#friends-lists-followers-and-following) @@ -35,7 +34,7 @@ 10. [Recommendations for Client App Implementation](#recommendations-for-client-app-implementations) 11. [Examples](#examples) -12. [Current Implementations](#implementations) +12. [Current Implementations](#current-implementations) ## Overview @@ -153,7 +152,7 @@ protocols, adapted for WebID based decentralized use cases. **See component spec: [WebID-OIDC Specification](https://github.com/solid/webid-oidc-spec)** -#### Other Authentication Mechanisms +#### Alternative Authentication Mechanisms There are several other authentication mechanisms that are currently being investigated, such as combinations of traditional From 20b5bfffa291042cc318f1d378fcec0014d19382 Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Wed, 6 Feb 2019 08:38:11 +0100 Subject: [PATCH 09/10] Update webId profile image property `image` does not appear as a valid property on the FOAF specification, it should be `img` instead. Source: http://xmlns.com/foaf/spec/#term_img --- solid-webid-profiles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solid-webid-profiles.md b/solid-webid-profiles.md index db4c514..c1f7433 100644 --- a/solid-webid-profiles.md +++ b/solid-webid-profiles.md @@ -93,7 +93,7 @@ statements: on [user names](#recommendation-for-user-names-in-profiles) below). This does not have to be a real name, it can by any pseudonym, but a string provided for apps to use for representing the user, in chats, sharing etc etc. -2. A profile SHOULD include a public `foaf:image` of either a mugshot of the person or a chosen avatar +2. A profile SHOULD include a public `foaf:img` of either a mugshot of the person or a chosen avatar to make the display of the user's contributions identifiable. 3. A profile MAY provide a `foaf:nick` nickname as a short string for use by user interfaces where space is limited. From 01ad6e9f442a137ef45c4e1638576c5e62639038 Mon Sep 17 00:00:00 2001 From: Ruben Verborgh Date: Fri, 29 Mar 2019 13:28:07 +0100 Subject: [PATCH 10/10] Mark globbing as "at risk". --- api-rest.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/api-rest.md b/api-rest.md index ef9bfc6..b7f0805 100644 --- a/api-rest.md +++ b/api-rest.md @@ -60,6 +60,12 @@ HTTP/1.1 200 OK #### Globbing (inlining on GET) +**Note: this feature is _at risk_ of being +[changed](https://github.com/solid/solid-spec/pull/148) +or [removed](https://github.com/solid/solid-spec/pull/151). +Please join the discussion. +Code depending on this will still work for now.** + We have found that in some cases, using the existing LDP features was not enough. For instance, to optimize certain applications we needed to aggregate all RDF resources from a container and retrieve them with a single GET