- From: David Wood <david@3roundstones.com>
- Date: Tue, 5 Mar 2013 10:03:29 -0500
- To: Steve K Speicher <sspeiche@us.ibm.com>
- Cc: "public-ldp-wg@w3.org" <public-ldp-wg@w3.org>
Thanks, Steve. I'll try to raise the remaining issues prior to the ftf if at all possible. Regards, Dave On Mar 4, 2013, at 13:49, Steve K Speicher <sspeiche@us.ibm.com> wrote: > Apologies on the delay to getting through these comments, I had taken a > pass through them before and we even had a chance to discuss a number of > them both in person and on the list. I figured I'd respond directly here > to try to close any loose ends. The original email thread spawned by > David Wood is at [1]. > > Many thanks for the thorough review. > > [1] - http://lists.w3.org/Archives/Public/public-ldp-wg/2012Oct/0259.html > > Thanks, > Steve Speicher > IBM Rational Software > OSLC - Lifecycle integration inspired by the web -> > http://open-services.net > > David Wood <david@3roundstones.com> wrote on 10/28/2012 06:23:10 AM: > >> From: David Wood <david@3roundstones.com> >> To: public-ldp-wg@w3.org >> Date: 10/28/2012 06:24 AM >> Subject: Review and Comments for Linked Data Platform FPWD >> >> Hi all, >> >> Many of you know how late I am getting involved in the LDP WG. Fewer of > you >> know how interested I am in this work. Apologies for the late review of > >> this document. >> >> This review relates to Linked Data Platform 1.0 dated 25 Oct 2012 [1] >> >> Caveat 1: Arnaud asked me last June to provide a summary of the design >> decisions that went into the development of the Callimachus REST API > [2], >> but I haven't done it. I believe that most of the value in such a > document >> is implicit in this review. I have made reference to design decisions > and >> practical implementation experience garnered through Callimachus [3]. It > is >> our intention to ensure that Callimachus becomes compliant with this >> document (and it appears to be close to it now). >> >> Caveat 2: I am typing this on an airplane, so apologies for any typos > and >> munged URLs. >> >> Caveat 3: This review has become lengthy. I am willing to edit the >> document to include my non-controversial changes if the editors would > like >> the help and I am willing to summarize what is sure to be a disconnected > >> thread in a subsequent message. Please let me know. >> >> Sections: >> A. Substantive comments on scope and content >> B. Document style >> C. Minor grammarical suggestions >> >> >> A. Substantive comments on scope and content >> >> - What does the LDP WG Charter say about existing implementations? Can > we >> break them? Unfortunately, I can't check at the moment. The RDF WG is >> required to at least minimize breakage. We might want to keep the > principle >> in mind, even though this WG is more free to invent, to avoid causing >> unnecessary trouble for implementors. >> > > Since there isn't an existing standard that we can measure breaking or > not, I'm not sure how we can achieve this. Though I understand the > motivation to have good reason to diverge from what is known as best > practices from a number of commonly deployed implementations. How can we > state this other than a basic guiding principle of the WG? > >> - The Abstract says, "that describe their state using RDF". I suggest >> changing that to "that describe their state using the RDF data model" in > >> order to avoid confusion regarding current or future RDF (or other > non-RDF) >> syntaxes. We have seen many people getting confused on this point, from > the >> XML and enterprise communities regarding RDF/XML to the current > discussions >> related to JSON-LD's relationship to RDF. > > Changed. > >> - What is the official status of the namespace for ldp: (first > referenced in >> Section 2.1, Conventions Used in This Document)? I don't know W3C's > policy >> on namespace registration, but this should probably be an ISSUE unless > the >> Team Contacts already have a handle on it. > > It is baked as http://www.w3.org/ns/ldp# > >> - The first paragraph of Section 4, Linked Data Platform Resource, > mentions >> that a LDPRs may contain data regarding a variety of domains. I agree, >> however the statement that such data could be "religious" in nature made > me >> think about logical consistency (specifically, the Christian conception > of >> the Trinity seems to have been formulated in a way that under FOL be >> logically inconsistent - c.f. the solutions to the Sabellianism and > Arianism >> Heresies). Does the LDP require LDPRs to be logically consistent? I > suggest >> that this document make no statement about logical consistency within > LDPRs, >> but thought I should mention it in case others disagree. > > No change made. I haven't heard this discussed in the WG. > >> - I have no objection to requiring HTTP/1.1, as defined in Section > 4.1.1, >> but am curious why the WG thinks it is necessary. > > No change made. A style decision seems to be leaning towards stating > things instead of remaining silent. > >> - Regarding Section 4.1.4, can Servers use DNS aliasing to differentiate > >> LDPRs (as with Apache virtual hosts or Callimachus secondary > authorities)? >> I'd prefer that they can and the document should probably say so in this > section. > > No change made. Perhaps this is an issue that should be raised and > discussed? I'll leave it to you to raise if you feel it is important > enough. > >> - I can see where is would be useful in many use cases to have rdf:types > >> served in LDPR representations, but am not sure it is so common that > Section >> 4.1.7 should make this a SHOULD. Perhaps MAY (or language to the effect > of, >> "it is often useful to") would be more appropriate in the general case? > > No change made. Perhaps an issue is needed here too. > >> - Section 4.1.8 references ISSUE-9 (Should properties used in LDPR >> representations be LDPRs?). I think not, because they may be defined as >> *part* of an LDPR (as In a schema document using the hash URL pattern to > >> facilitate self-documentation). Such uses would not seem to match the > (non- >> recursive) definition of an LDPR. > > No change made. Will wait for resolution to issue-9. > >> - I am quite nervous about Section 4.1.9's requirement that LDPR >> representations MUST "use *only* the following standard datatypes" > (emphasis >> mine). I think there are several problems with this: If a representation > >> fails to use only those datatypes it becomes a legally served non-LDPR > (in >> accordance with Section 4.1.3) instead of a non-compliant LDPR and this >> decision would seriously limit any desired application extensions (via >> legitimate RDF and Linked Data extension mechanisms). This relates to >> ISSUE-6 (Should LDBP say that any kind of user-defined data type is >> disallowed), to which I would strongly vote "no". Simple is good, but >> systematically eliminating existing extension mechanisms seems ill > advised. >> I suggest replacing this with something like, "LDPR representations MAY >> include the following datatypes and MUST limit the use of other > datatypes to >> the minimum required". > > This has already been removed from the spec and moved to the "Deployment > Guide". > >> - Section 4.1.11 didn't make sense to me until I read Section 4.2. Until > >> then, it sounded like the document was suggesting that LDPR was another > RDF >> format. Rewording the second sentence to avoid that problem would fix > it. > > No changes made. Not sure problem with text and what wording would work > better, please propose if you still have problems with this. > >> - Section 4.1.1 references ISSUE-22 (Need to normatively reference and >> recommend JSON-LD). Similarly, Sections 4.2.2 and 4.2.3 and ISSUE-23 > (Remove >> application/rdf+xml as a SHOULD) relate. I suggest that although the > focus >> on Turtle is fine (even preferred) as a MUST, all other current and > future >> RDF syntaxes that are W3C Recommendations should be included as SHOULDs. > >> That way, LDPR Servers SHOULD accept as many standard RDF formats as >> possible, presumably by using the small number of commonly used parsers. > >> Standard RDF formats include or are anticipated to shortly include > Turtle, >> RDF/XML, RDFa, n-triples and JSON-LD. There may be more (or less) some > time >> in the future, so it would be nice to future-proof this document so we > don't >> need to revisit it for changes to other RDF syntax specifications. I > would >> also be happy with MAY. > > These changes have already been made from previous issue resolution. See > sections 4.2.2 and 4.2.3 as examples. > >> - Section 4.1.13 references ISSUE-2 (Do LDPR versions get managed in a >> systematic, discoverable way?). I agree that ETags and Last-Modified > headers >> are sufficient, but sometimes wonder whether a Server-defined version > number >> in a header wouldn't be useful to inform a Client just how many updates > they >> may have missed. James Leigh disagrees with me on that and I am not > firm on >> it. I leave it to the WG. > > No changes made. This issue was close as out of scope for version 1. > >> - Section 4.1.13 references ISSUE-16 (Redirection of non-information >> resources to LDPRs). I note that Section 5.3.5.1 mandates that 303 > redirects >> SHOULD be used and I like consistency in Client implementations. Section > 5. >> 1.3 also suggests 303 redirection be used for paging. > > No changes made. > >> - Sections 4.4.1, 4.5.1, 4.7.1, 5.4.1, 5.6.1 and 5.8.1 all relate to >> allowable write operations. I suggest adding the statement, "An LDPR > server >> MAY require a user to be authenticated and authorized before this action > is >> permitted." to each of those sections. > > No changes made. > > Due to some sensitive/private data, I would expect authentication and > authorization to be needed even on read operations. Would it not make > more sense to make this a general statement about all operations? > >> - Section 4.4.1 says that servers MUST ignore certain RDF statements > that >> may be provided by a client. I understand (and am sympathetic to) the >> rationale presented, but am concerned that implementors will have a >> difficult time with this. Current implementations make use of a small > set >> of commonly used parsers to ingest RDF data, often serializing it it >> directly into a data store during streamed parsing. Should implementors > >> plan to change their code to monitor each incoming triple for >> dcterms:modified and dcterms:creator properties with the intention of >> removing them? I doubt they will do so (due to the performance hit > during >> an already slow process). Then again, perhaps I worried too much about >> this. Reading more carefully, I can see that those terms may be > provided by >> a client but MUST NOT change the relevant state of the server's >> understanding of the state of the LDPR. Is that what is intended? > > Changes made from similar comments and issue. > >> - Section 4.4.1 references ISSUE-11 (Do we need to define server-managed > >> properties or do we leave them to applications?) in relation to an LDPR > PUT. >> ISSUE-20 (Identifying and naming POSTed resources) would seem relate. >> Callimachus requires such PUT and POST requests to contain a slug to > assist >> with naming. I suggest that LDPR adopt this mechanism (or something > very >> similar) because to fail to do limits interoperability. Section 5.4.10 >> mentions the problems with client differentiation in relation to domain- >> specific constraints and I agree. Adopting a mandatory slug for PUTs, > POSTs >> and PATCHes would satisfy ISSUE-20 and allow better guidance in Section > 5.4. >> 9 (which currently says "application-specific rules"). > > No changes made. Issues mentioned will force the change. > >> - Why should clients be restricted (MUST NOT) from presuming a known set > of >> predicates for a particular server (Section 4.4.4)? Since this both >> impossible to enforce (or to even know) and servers can throw away any >> triples they don't like, why not make this a SHOULD NOT? > > Changes made from similar comments and issue. > >> - What is the intent of Section 4.4.6's allowance for LDPR PUTs without > an >> LDPC? Doesn't an LDPR server without LDPC support mean that the PUT > would >> go to the root service for processing anyway? My earlier suggestion >> regarding the use of slugs to request a name could be used to simplify > this, I think. > > No changes made. What resource is identified by the Request-URI in this > case is undefined. Does it need to be defined here? One could assume > that it is the client minted URI for the resource. > >> - In Section 4.4.7, I suggest changing "It is common for LDPR servers to > put >> restrictions on representations" to "LDPR servers MAY put restrictions > on >> representations". The sentence as it stands now may reflect the original > >> Member Submission, but doesn't reflect other use cases in the wild. I > don't >> think the change loses anything, but it does clarify that an LDPR > server's >> available options. > > No changes made (directly). This section has already been changed due to > similar comments. > >> - Sections 4.5.1 and 4.5.2 touch on ISSUE-24 (Should DELETED resources >> remain deleted?). My personal experience with such "tombstoning" of URIs > >> comes from the two Persistent URL implementations that I have been > involved >> with (the community PURL software at purlz.org that purl.org and others > use, >> and the PURL implementation in Callimachus). There are certainly some > use >> cases (however uncommon) where tombstoning URIs is a good and even > necessary >> idea. Therefore, I suggest resolving ISSUE-24 by stating that LDPR > servers >> MAY choose not to recycle DELETED URIs and update Section 4.5.2 to be >> consistent with that decision. > > Handled via ISSUE-24. > >> - Regarding ISSUE-12 (Can HTTP PATCH be used for resource creation?), I >> suggest not. That would be ugly and I think we should not do ugly > things. > > Handled via ISSUE-12. > >> - Regarding ISSUE-17 (changesets as a recommended PATCH format), I > suggest >> yes. However, they should probably become a separate Note or Rec in > parallel. > > Handled via ISSUE-17. > >> - Section 4.8 says that the listed RDF vocabularies MUST be used, but > the >> third paragraph of Section 5.1 makes the use of rdfs:member optional. > Those >> two states are currently in conflict. Although Section 5.1 is non- >> normative, the material in it is repeated in Section 5.2.3 (also marked > non- >> normative). The cleanest way to fix this is probably by removing the >> rdfs:member entry from the table in Section 4.8. > > This is no longer valid since required RDF vocabulary terms has moved to > the "Deployment Guide". > >> - The non-normative Section 5.1.3 says, "LDPCs may support... Paging", > but >> the normative Section 5.3.4 says SHOULD. These should be brought into > alignment. > > Fixed. > >> - The first paragraph of Section 5.1.4 makes a good point that clients > may >> wish to order results themselves. However, the next paragraph throws > away >> that flexibility in order to allow pagination. I understand that we > want to >> keep requirements small, but perhaps it is worth discussing whether > clients >> should be able to request ordering based on a particular property's > value. >> I would imagine that a server could always respond that it doesn't > support >> such behavior (a server MAY implement server-side ordering). > > No changes made. Perhaps a use case or driving it with a spec issue would > help this discussion if you think it is necessary. > >> - Section 5.3.7 suggests that a client may request a descending order > for >> pages, but doesn't provide guidance on how the DESC keyword should be > passed >> to the server. > > Made change that ascending is the only option. ISSUE-14 exists for > alternate orderings. > >> - Section 5.3.7.1 says, "The Linked Data Platform does not define how >> clients discover LDPCs." Has this be decided by resolution or by > default? I >> would like to suggest that a mechanism similar to that found in > Callimachus >> would be a very useful addition to this spec: HTTP OPTIONS requests may > be >> made on the root URL of a site and on each container to discover > relevant >> URLs for navigation via LINK: headers. Details of our design may be > found >> at [2]. The value is to provide a standard mechanism for resource > discovery >> on a host or service basis that is consistent with HTTP. I didn't want > to >> raise an issue on this in case it has already been decided by > resolution, >> but suggest that this be a MAY, not a MUST, requirement. > > No changes made. This is being worked under issues like ISSUE-32. > >> - Section 5.4.8 says that "LDPC servers MUST interpret the null relative > URI >> for the subject of triples... as referring to the entity in the request >> body". I understand why you would want to do that, but this is another > case >> where implementors should be expected to scream. You are asking them to > >> introspect each triple during ingest just in case it might contain a > null >> relative URI in the. subject position. Then you are asking them to > assign a >> URI for the resource before the parsing is known to be valid... > > No changes made. There are a number of issues on this topic and unclear > what change is suggested here. > >> - I suggest adding the input documents listed in the LDP WG Charter to > the >> Acknowledgements section. > > No changes made. I have not seen this done in other specifications, do > you have some references that I can use as example? > >> B. Document style >> >> - I found the normative and non-normative guidance presented in Section > 3, >> Conformance, to be confusing. There are at least two problems with it: > It >> is unclear which content is (e.g.) a guideline or a note and some non- >> normative sections clearly give MAY/MUST requirements. Please see below > for >> specific details regarding the latter problem. > > Have updated the conformance section and each section is labeled that is > informative. > >> - Section 5.1.3 contains a couple of "mays" in the second and third >> paragraphs that read like they should be MAYs. Section 5.2 has a bunch > of >> MAYs, MUSTs and a SHOULD NOT. However, both sections are explicitly > marked >> non-normative. This is at best confusing and at worst going to make > trouble >> when the document is in Last Call. I suggest that anyplace there is a >> defined term from RFC 2119 that paragraph or section should be > normative. > > Changed from RFC 2119. > >> - Similarly, Section 5.3.2 (which is normative) references Section 5.1.2 > (a >> non-normative section) for details of implementation. I suggest > expanding >> 5.3.2 to include any normative content and changing that section to > refer to >> 5.1.2 only for an example. > > Made change to 5.3.2. > >> C. Minor grammarical suggestions >> >> - s/A LDPR/An LDPR/g and s/A LDPC/An LDPC/g ; An English "an" is used in > >> front of words starting with vowels as they are *pronounced*, not >> necessarily as they are spelled. NB: Subjects of the British Crown who > may >> titter with bemusement at an American correcting English usage may > proceed >> at will. I can take it ;) > > Changes made. > >> - I suggest using "Linked Data" in place of "linked data" throughout > (e.g. >> in the Introduction) because it is a defined term (in Section 2, >> Terminology). It is also used that way commonly on the Web as a proper > noun. > > Changes made. > >> - In the last paragraph of Section 1, Introduction, s/will depend > on/will >> depend upon/. > > Changes made. > >> - I believe a paragraph break belongs in Section 2, Terminology, in the >> definition of "Server" after the first sentence (following "sending back > >> responses"). The remaining material seems to refer to both clients and > servers. > > Already fixed. > >> - The part of Section 4.7.2 that reads, "It is common for LDPR servers > to >> put restrictions on representations" is duplicated from Section 4.4.7 so > I >> suggest that it be removed. > > Already fixed. > >> - In the first paragraph of Section 4.8, I suggest defining or referring > to >> the definition of the term "application semantic" and changing "BP > resource" >> to simply "resource". > > Already fixed. > >> - In Section 4.8.3, rdfs:member seems only to apply to LDPCs. Should it > move >> to Section 5 or should the Comment field note that it is optionally used > for >> container-member relationships? This only applies if the rdfs:member > entry >> is not removed from the table, as suggested above. > > Already fixed, since 4.8 was moved out to "Deployment Guide". > >> - In the second paragraph Section 5.1.1, s/there will be/there may be/. > > No change made, will introduction RFC 2119. > >> - In the fourth paragraph of Section 5.1.3, I suggest removing > "JohnZSmith". >> The example should be referred to in a consistent manner. > > Already fixed. > >> - Examples 6 and 7 in Section 5.1.3 aren't quite aligned. Example 6 > shows >> the container has members a3 and a4 that aren't on page 1. Therefore, >> Example 7 (which purports to show page 2) should show details for a3 and > a4, >> but it shows member a5 instead. Further, the paragraph under Example 7 >> notes that there is only one member show on page 2, so updating just > Example >> 7 would cause that point to be invalid. I suggest removing a4 from > Example >> 6 and changing a5 to a3 in Example 7. > > No changes made. Have not heard this issue before, there is also a > comment in the representation of Example 6 to show it has been shortened > for reading: "# server initially supplied no data for a3 and a4 in this > response" > >> - The material in Section 5.2.3 that duplicates the third paragraph of >> Section 5.1 should be removed ("The membership triples of a > container..."). > > No changes made. One is a RFC 2119 variant of the other. > >> - Section 5.3.2 references Section 5.1.2, but gets its title wrong (the > word >> "Only" is missing). > > Fixed. > >> - Section 5.3.4 references Section 5.1.3 in an inconsistent style: > s/5.1.3 >> titled "Paging"/5.1.3 Paging/ > > Fixed. > >> - Section 5.3.6.1 extends a highlight color onto the semicolon following > >> "ldp:Page". I suggest that the semicolon should probably be a full stop/ >> period in any case. > > Fixed > >> - ISSUE-7's title should be edited: s/permittered/permitted/ > > Already fixed. > >> Whew! > > Whew! > >> Regards, >> Dave >> >> [1] http://www.w3.org/TR/2012/WD-ldp-20121025 >> [2] http://code.google.com/p/callimachus/wiki/REST_API (If I didn't > remember >> this URI correctly, please go to [3] and select "Documentation"; there > is a >> link to the REST API document near the bottom of that page) >> [3] http://callimachusproject.org >> >
Received on Tuesday, 5 March 2013 15:03:57 UTC