-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Requirements for WebID document server #376
Comments
I think the problem here is that the Solid Protocol says too much about WebID. It makes sense to me that a reference is made to it, but the middle statement should probably go:
Without that statement above, the spec could link to the relevant documents, respecting the spec orthogonality principle as such:
|
[1] The Solid Protocol does describe a WebID document served from a Solid server, i.e., to have representations of a WebID Profile Document available in Turtle and JSON-LD, and as per content negotiation it may be available in other media types (typically in concrete RDF syntaxes).
Not relevant because WAC does not have a requirement to dereference a WebID or have the WebID Profile Document available in any particular format. WebID is only used as an identifier for agents.
The statement is in context of the Solid Protocol [1] - it may be redundant and can be removed on that basis. The WebID section can be updated to be more clear about any "HTTP server hosting a WebID document" as opposed to strictly Solid servers as per the Solid Protocol. This is essentially factoring in the requirements put forward by the other core specifications. The current text using "RDF document" in the normative section generally covers that possibility:
It leaves it up to each specification in the ecosystem to make their own specific and definitive calls. If instead all of the Solid specifications want to use one-requirement-to-rule-all-requirements on WebID in the whole ecosystem as per Solid Protocol, we can also do that - provided that the groups working on each specification are aligned with that. (As it stands, that practically means acknowledging both Turtle and JSON-LD.) |
As per WebID 1.0 ED, a WebID document is an RDF document. Representation in Turtle being the minimum requirement for interop whilst standard content negotiation takes place. The Solid Protocol specifies Solid server requirements for serving RDF documents: https://solidproject.org/TR/2021/protocol-20211217#server-representation-turtle-jsonld . A conforming Solid server will provide WebID documents in Turtle and JSON-LD. Currently, the Solid Protocol is not describing how any HTTP server (under the sun) should serve a WebID document (besides it being an RDF document and adhering to WebID 1.0 ED). The Solid Protocol does not - or in a position to - dictate how WebID documents are to be served from HTTP servers besides the Solid server or potentially the servers that can participate in the Solid ecosystem. As said earlier, in order to use the Solid Protocol as a reference point for all specifications in the Solid ecosystem, there needs to be agreement across the current (and upcoming) specifications on a requirement that they can all rely on. In its absence, the current WebID section in the Solid Protocol merely states that those documents are deemed to be RDF documents. Hence, a server hosting a WebID document in the Solid ecosystem is a Solid server, in which the requirements are given by the Solid Protocol (Turtle, JSON-LD) or a server (as defined by a particular specification in the Solid ecosystem) that conforms to WebID 1.0 ED (Turtle). As it stands, any other kind of "server" would either be not conforming to WebID 1.0 ED or Solid Protocol or extends either one of those. |
This is NOT clear IMHO because we have a WebID 1.0 Editors Draft spec which specifies what the server of a WebID must support, and the SolidOIDC people use the term "WebID" without distancing themselves from the WebID spec, and not supporting it. |
Specifications defining roles that serve a WebID Profile Document that do not conform to the Solid server should specify the ways that the consumer of the WebID Profile Document can discover the resource which accepts read-write operations as per the Solid protocol. For example, the Solid WebID Profile specification can describe the property that enables the discovery of a WebID Profile Document on a Solid server, e.g., |
You are saying that SolidOIDC ID document must contain something like |
AFAIK all comments about |
Tim, with respect to this issue, I'm saying that any specification that requires or anticipates dereferencing WebIDs - which may resolve to a non-Solid server - can consider recommending the discovery of that person's other or preferred WebID that is hosted on a Solid server. My inquiry about solid:profileDocument or solid:webid was about what's intended to be discovered. I think solid:webid makes more sense as that actually seems to be what's intended - enables any WebID (on the face of the planet) to link to a Solid WebID where a Solid-aware application can perform read-write operations. I've created solid/webid-profile#58 to specifically discuss that concept. I recommend closing this issue with the understanding that Solid Protocol is clear about the requirements. If other specs have different requirements, and want to make it possible for applications to find their way to WebID that in conforms to the Solid Protocol, there needs to be a discovery mechanism - a property perhaps. |
Changed the status to Waiting for Commenter again and asking @RubenVerborgh whether the answers are satisfactory and asking if @timbl is satisfied or has objections to close this particular issue. |
I feel we are now awfully close to repeating ourselves. For example, the last paragraph in #376 (comment) as to what the current expectations are and whether people want something stricter, e.g., make sure all Solid specs work with or set the same requirements for WebID representations.
So? It is a normative section. It is describing something about the ecosystem where the Solid Protocol plays one of the key roles. The Solid Protocol is only describing something that is already compatible with the current WebID 1.0 ED.
Different things are referencing WebIDs and different things are dereferencing WebIDs. A Solid application needing to read the WebID Profile Document (from somewhere on the Web) only needs to follow (current) WebID 1.0 ED's requirement, i.e., Turtle or another concrete RDF syntax depending on negotiation. A Solid application will need to be equipped to work with Turtle or JSON-LD so that it can communicate with a Solid server. If a subset of the WebIDs that the application wants somewhere on the Web is on a Solid server, all is still well. I'd argue - anecdotal evidence - that we've been building applications with that understanding, i.e., Solid applications do read WebIDs that are not hosted on Solid servers. (For example, and as you know, dokieli will go through all of my and my contact's connected WebID when it needs to. The use case is to read. It doesn't have a need to write to every WebID based on Solid) There is a lot of value to be able to use WebIDs that are not strictly on a Solid server. There'll be more applications needing to read than to write WebID Profile Documents. Having said that, I'd still argue that we need to strive for a mutual understanding that when a WebID is not a Solid server, then obviously a Solid application won't be able to perform (access controlled) write requests to it. And, for those subset of WebID owners (one having sufficient rights to update the WebID Profile Document by any means - see e.g., webid-profile issue 58) wanting to lead Solid applications to follow their nose to their equivalent or alternate WebIDs that are on a Solid server, then we specify that bridge. Hope that helps as to at least how I'm looking at this. |
Somewhat related implementation feedback, though not addressing the substantial question. In the Inrupt Enterprise Solid Server 2.0 (which I contribute to) WebIDs are not stored on a Solid server. Instead they are stored on a separate service that adheres to WebID ED and Solid-OIDC. This is to support multiple use cases and customer requirements regarding separation of identity from storage. It would be impossible to support these use cases if the WebID of the Pod owner was required to be stored in the Pod they own. |
@RubenVerborgh, if something still bothers you about this, could you try to explain it once more? A few days ago I thought I was following, but I'm no longer sure of that. I.m.o. the interrelations are quite clear: Solid specifies servers, WebID specifies identifiers and documents; Solid servers can host non-WebID resources, non-Solid servers can host valid WebID documents, and a WebID document on a Solid server adheres to both. Most importantly, for most of the very specific cases where WebIDs are used, one hosted outside of Solid works perfectly. Nothing in the spec seems to contradict that, even if some wording could be clearer. I do agree with @matthieubosquet, however, that the Solid protocol (and other Solid specs) contains too much useless text about WebIDs. Most of it is repetition or paraphrasing of the WebID spec, which not only makes it redundant, but also increases the risk of confusion should the wording be not exactly the same. Some of it also creates too tight a coupling with WebID, where a simpler description (e.g. "dereferencable to RDF resource containing X") would suffice. |
There is good reason for this "useless" text being in the Solid docs. Simply put, the WebID "spec" remains a draft document, with zero guarantee of stability. "Repetition or paraphrasing" of that draft document's content wherever it is meant to be relied on remains the best way to ensure that Solid implementers can follow the Solid-intended text. |
Since those paraphrases can contain errors, and only make sense when combined with a reference anyway, the best way to ensure a robust foundation would actually be to refer to the WebID 1.0 Draft of 2014-03-05 directly instead of to the latest version of it. |
Hopefully not as bad as hot interpretations of specs in issues. You make it sound like as if there is an essay in place. The minimal text serves as an entry for a key component (Identification) part of the Solid Protocol. Again, "the Solid Protocol is only describing something that is already compatible with the current WebID 1.0 ED." The section can be extended to connect concepts and behaviours involving WebID that are described elsewhere in the document as well as external documents.
https://www.w3.org/2005/Incubator/webid/spec/identity/ is adequate as a reference to the Editor's Draft and presumably equivalent to being the latest published version. Here is more context w3c/WebID#5 that you might find useful, and one of the things that's on WebID CG's table. I'll be among the first to say that text can (and should) be improved, but I can assure you that there is a bit more thought put here than slapping some "useless text", in addition to TallTed's constructive view of the state of things. |
@csarven, I might have used some rhetorical hyperbole, the term 'useless' should probably have been more in the lines of 'redundant', and once more our keenness for abstraction seems to differ. The point remains: there is text that would not matter if left out, and if the instability of a draft is the issue, then the best way would be a referrence to its fixed version. I do not see what about this is less constructive than @TallTed's contribution, and I feel in fact somewhat hurt in your karikature of me. Especially since my original comment just asked for confirmation that this issue could be closed again. |
It is completely okay if we have different views about this. The current text is first and foremost intended to be useful for the reader. If and when the target reference changes, we can review and update the Solid Protocol as accordingly. To be clear, I don't oppose linking to another (versioned) URL but note the state of things in the linked issue above, as well as the fact that webid/spec/identity/ URL has always been the primary reference in documentation, discussion, and code. |
@csarven please, be respectful. Try to phase feedback, without something that could be interpreted as a passive aggressive jab. Let's assume good faith, and that everyone is trying to be constructive. Thanks! |
Just my two cents.
So my feeling is for exceptional cases like that it makes sense. On the whole I am not overly enthusiastic though. I don't think Solid is suffering because it is not serving data in enough formats. There are a lot of higher priority things to do... |
No description provided.
The text was updated successfully, but these errors were encountered: