Skip to content
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

Section 3.1.1 Must vs SHOULD #332

Closed
whikloj opened this issue Feb 15, 2018 · 8 comments
Closed

Section 3.1.1 Must vs SHOULD #332

whikloj opened this issue Feb 15, 2018 · 8 comments

Comments

@whikloj
Copy link
Contributor

whikloj commented Feb 15, 2018

In testing the Modeshape impl, I was reading the spec and I found this interesting paragraph

LDP Containers MUST distinguish [containment triples] from [membership] and [minimal-container] triples. If an implementation cannot make this distinction,...

It seems to me that if you MUST do something then there is no reason to define what to do if you cannot do that. Defining how you are expected to act if you can't perform this action, makes this seem like a SHOULD

@escowles
Copy link
Contributor

I think this is a wording issue where we use "distinguish" in different senses.

The requirement is that containers must distinguish between containment and user-managed triples. There are two ways that this may be handled:

  1. If the server can allow user-managed triples with ldp:contains, and keep those separate from server-managed containment triples, then that's OK.
  2. If the server can't keep those triples separate, then it must not allow user-managed triples with ldp:contains.

Instead of "If an implementation cannot make this distinction", maybe we should say "If user-managed triples using ldp:contains would prevent an implementation from making this distinction,"?

@whikloj
Copy link
Contributor Author

whikloj commented Feb 15, 2018

"A server that allows user-managed triples with the ldp:contains predicate MUST be able to keep those user-managed triples separate from server-managed containment triples. If a server cannot keep these two uses of ldp:contains separate then any request to use ldp:contains as the [membership predicate] for LDP Direct and Indirect Containers or as a client-managed property MUST be rejected with a 409 (Conflict)."

@escowles
Copy link
Contributor

@whikloj 👍 that looks good to me

@whikloj
Copy link
Contributor Author

whikloj commented Feb 15, 2018

@escowles awesome, sorry to get bogged down in wording but it keep confusing me.

@escowles
Copy link
Contributor

No worries @whikloj ! The new text is much better, and this will help other people from being confused. Can you make a PR, or do you want me to?

@zimeon
Copy link
Contributor

zimeon commented Feb 16, 2018

@whikloj 👍 -- your suggestion is much easier to understand. I'll make a PR (since it seems easiest for one of us editors to deal with the formatting and validation requirements)

@zimeon
Copy link
Contributor

zimeon commented Feb 16, 2018

I think we need s/user-managed/client-managed/ in the suggested text to align with language in the rest of the spec

@whikloj
Copy link
Contributor Author

whikloj commented Feb 20, 2018

Thanks for taking this on @zimeon and @escowles. 👏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants