I believe that this specification should say that, in order to be consdered interoperable with Solid applications, all WebID profile documents (the ones the WebID URL dereferences to) MUST either a) be potentially writable (possibly with security restrictions) by apps using the Solid Protocol OR b) contain a single solid:profileDocument predicate that points to such a document.
For backwards compatability, the foaf:primaryTopicOf predicate might be considered a synonym of solid:profileDocument.
In my mind, this is the only way to make it unambiguously clear where apps should write things like pointers to a type index. Without it, the app is left to guess if one of the rdfs:seeAlsos is writable.
With this predicate an app looking for a type index can go to an ESS-style server, look for the solid:profileDocument predicate, open it, look for a type index predicate and create one there if none is found.
Without this predicate an app looking for a type index goes to an ESS-style server, looks for a type index predicate and if none is found keep opening all mentioned seeAlso links and looking in them for type index predicates and if none is found, randomly choose one of the seeAlsos to write the pointer to the type index.
Historical note : ESS-style servers have been operating exactly as proposed here (using primaryTopicOf) for almost two years. I originally made this proposal a year ago in #40 but we closed that issue because that issue conflated too many things.
I believe that this specification should say that, in order to be consdered interoperable with Solid applications, all WebID profile documents (the ones the WebID URL dereferences to) MUST either a) be potentially writable (possibly with security restrictions) by apps using the Solid Protocol OR b) contain a single
solid:profileDocumentpredicate that points to such a document.For backwards compatability, the foaf:primaryTopicOf predicate might be considered a synonym of solid:profileDocument.
In my mind, this is the only way to make it unambiguously clear where apps should write things like pointers to a type index. Without it, the app is left to guess if one of the rdfs:seeAlsos is writable.
With this predicate an app looking for a type index can go to an ESS-style server, look for the solid:profileDocument predicate, open it, look for a type index predicate and create one there if none is found.
Without this predicate an app looking for a type index goes to an ESS-style server, looks for a type index predicate and if none is found keep opening all mentioned seeAlso links and looking in them for type index predicates and if none is found, randomly choose one of the seeAlsos to write the pointer to the type index.
Historical note : ESS-style servers have been operating exactly as proposed here (using primaryTopicOf) for almost two years. I originally made this proposal a year ago in #40 but we closed that issue because that issue conflated too many things.