-
Notifications
You must be signed in to change notification settings - Fork 9
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
Revise conformance section, add Reading and Writing section #98
Conversation
I see a few issues related to #97 (and #63), which were discussed during last week's call. I think they can be resolved independently from this specific PR, I will just mention them here since they potentially would have impact further down the road on what comes in this PR.
|
index.html
Outdated
updated.</span> | ||
</p> | ||
<p about="" id="protected-properties" property="schema:description"> | ||
Solid WebID Profile might include protected properties, such as <code>solid:oidcIssuer</code>. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since statements with the solid:oidcIssuer
predicate is defined as protected in this spec, I assume it only applies to resources that are WebID Profiles. How the solid storage/resource server is going to determine that a given resource should be handled as a WebID Profile?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree this needs to be better spelled out.
One way would be to associate (link relation) the data shape (as WIP being specified by this specification) with the resource, e.g., Solid WebID Profile.
One of the products of this specification needs to be something like "SolidWebIDProfileDataShape" (e.g., using SHACL) that we make available from https://github.com/solid/shapes/ .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Created #100 to follow up on this.
This is a bit hard to follow for me. Can you please paraphrase this? As I see it from this specification and understanding in the community: The Solid WebID Profile specification specifies the data model of the WebID Profile used in Solid, as well as any additional requirements to a Solid Protocol Server hosting the resource. The ReaderApplication should be able to read any WebID Profile (conforming to WebID 1.0 ED) but the WriterApplication works against Solid Protocol's Server - to be further clear, WriteApplication is not intended to be able to update any WebID Profile out there, just what's on Solid storage.
I don't have a particular objection to that proposal, after all, it is a legitimate design on its own. However, what I would emphasise on specifying (and requiring) is the minimal Solid WebID Profile Data Model - whatever that may be. If we split off too much with optional/modular specifications, there may not be much to say about the Solid WebID Profile at its core, and that frankly leaves this specification not a whole lot more than the WebID 1.0 ED. So, this is just trying to answer the age old question about what constitutes a Solid WebID Profile. Can a social agent use it to authenticate itself? store stuff at its storage? be contacted? Yes, I'm aware of various cases in which it may not be used for authentication, or to disclose a storage or use it to store anything, or be available for contact - and so the data shape is/should take that into account.
Again, no objection... but I think this can be leveraged by server using the shape specified by the specification to protect certain statements. The specifications needs to introduce how that shape association with the Solid WebID Profile document happens ( #98 (comment) ). We have a data model / shape in the works, might as well apply that directly where we need it. Aside: The above (explicit) approach can be used in the Solid Protocol for container / containment statements as well, but the interaction model or (cough) slash semantics already implicitly indicate that the resource is a container, so the server knows how to protect. We don't have anything equivalent to that for the Solid WebID Profile, so there needs to be a link relation referring to the shape. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mainly checked that the RDFa produced the correct requirements for the test harness and it is essentially correct. The line breaks in text do come through into the RDF and make it look odd e.g.
spec:statement """Reader
Application MAY retrieve a
representation of an Extended Profile Document."""@en .
Two other considerations are:
- Does the requirement work as a standalone statement? I think some are a bit too dependent on context for them to make sense but when they appear in test reports, they need to make sufficient sense to be understood without that context.
- Are requirements clearly testable -I have highlighted one that I think isn't as it stands
index.html
Outdated
<span property="spec:statement"><a rel="spec:requirementSubject" href="#WriterApplication">Writer | ||
Application</a> <span rel="spec:requirementLevel" resource="spec:MUST">MUST</span> use an | ||
an <code>HTTP PUT</code> or <code>PATCH</code> request targeting the Solid WebID Profile to be | ||
updated.</span> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Writer Application MUST use an HTTP PUT or PATCH request targeting the Solid WebID Profile to be updated
Ideally requirement statements should be standalone statements to make them easier to understand in other contexts such as test results. What I think is missing above is the clear purpose - the context is 'update' but perhaps it could be worded as "To update the Solid WebID Profile ...". Is there also something about the body and content type of such requests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Writer Application is a Solid app (Solid Protocol). But we need to revisit this with respect to the Solid Protocol because it is not currently defined as an independent product class. Writer Application could be a specialisation of Solid Protocol Client but then that would still require us to revisit Solid app in Solid Protocol. The general understanding is that the Solid app issues HTTP requests through the Solid Protocol Client against a Solid Protocol Server. So, Writer Application writes to a Solid WebID Profile on a Solid storage.
Solid WebID Profile is an RDF document. Solid Servers can potentially accept any concrete RDF syntax, but only required to respond to Turtle and JSON-LD. The body of the request includes an RDF representation based on the Solid WebID Profile data model.
I agree with the suggestion to have multiple (identifiable) requirements. And doing that for all similar requirements. (It is also okay to leave it as is for the time being - not super urgent per se.)
Purpose at the front instead of at the end seems okay too. I would only suggest that the specification should generally be consistent (and boring), so if "purpose" comes first, do it for all similar requirements, e.g., "[purpose] [requirementSubject] [requirementLevel] [behaviour]".
We can look at this from the Solid QA end and make a proposal that could be used across all specs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I created #101 to follow up on this.
Co-authored-by: elf Pavlik <[email protected]> Co-authored-by: Sarven Capadisli <[email protected]> Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Sarven Capadisli <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Closes #89, #93.
This PR revises the conformance section and adds a Reading and Writing profiles section with clear requirements.
Some of the information in this new section overlap with Discovering... section and Extended profiles sections. These will require further revision (see: #92)
Preview | Diff