-
Notifications
You must be signed in to change notification settings - Fork 157
Sandro Hawke's JSON-LD syntax spec review #224
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
Comments
_Feedback from Sandro Hawke, part 2:_ I think the document could be greatly strengthened (and most of my non-trivial comments in part 1 addressed) by the following changes:
A conforming JSON-LD Expander takes as input a conforming JSON-LD document D1 and outputs a conforming JSON-LD document D2, using the expansion mapping defined in Appendix XX. D2 will contain no A conforming JSON-LD Compactor takes as input a JSON-LD A conforming JSON-LD To-RDF Converter takes as input a conforming JSON-LD document J and outputs an RDF Dataset R using the conversion mapping defined in Appendix C. A conforming JSON-LD From-RDF Converter takes as input an RDF Dataset R and output a JSON-LD document J such that a conforming JSON-LD To-RDF Converter would convert J to D (or an equivalent document which would JSON-parse to the same internal structure). Note there is no need to define the Compaction and From-RDF mappings in detail; it's enough to say (as above) that they are the inverses of already-defined mappings. I believe that sufficiently constrains them. For implementation advice, they can see another document, which need only be a Note.
Note that we should probably change the shortname from These changes would make json-ld-syntax stand parallel to Turtle, as a completely defined RDF serialization syntax (not needing the API document), but they wouldn't significantly reduce the "RDF tax" on JSON-LD. Just a few sentences in Conformance and a longer RDF Appendex. That seems to me like a good thing (and also what I understood the RDF WG to be asking for). -- Sandro |
Sandro noted this. Embedding is used throughout the spec. So we don't need to introduce it at the end. This addresses #224
PROPOSAL 1: Remove section "Design goals" PROPOSAL 2: Move section "Interpreting JSON as JSON-LD" into basic concepts or combine it with "The Context" PROPOSAL 3: Remove the "://" safeguard. PROPOSAL 4: Terms beginning with |
PROPOSAL 1: -1. I think it's useful for the reader to know what the rational for the JSON-LD syntax is. Again, Sandro didn't suggest that the section be removed, but slightly reworded. PROPOSAL 2: +1. This could be combined elsewhere. PROPOSAL 3: -1. I think it serves the same purpose for JSON-LD as it does when it was introduced for RDFa; it catches a lot of common problems with the failure to define prefixes. Before RDFa had this, a lot of garbage triples could be generated. PROPOSAL 4: -0.5. While I think that normal use of '@' should not be tollerated, we should create the ability for the specification to be extended with design notes that use other keywords (e.g., @ordered). If this is a MUST NOT, then it is impossible for someone to extend the specification and not violate a normative constraint. |
@darobin: Was there a recent change in ReSpec which removed the "This section is normative" statements? At least they don't show up anymore in our specs, see e.g. http://json-ld.org/spec/latest/json-ld-api/#context-processing-algorithms |
PROPOSAL 1: +0.5 don't really care but the section also doesn't add much value PROPOSAL 2: +1 PROPOSAL 3: +0.5 no strong preference though.. it just adds extra code; I don't think we can compare JSON-LD and RDFa PROPOSAL 4: -0.5 for the same reasons as Gregg noted. Would be fine with an SHOULD NOT though. Other specifications can always update the existing one. I'm against enforcing it in the algorithms. |
On proposal 4: Extensibility, etc, is great, but I don't see how just allowing '@' would allow that I think there are two separate questions here: Question 1. When is it okay for someone to publish-to-the-world json-ld data using an @-keywork that's not in the current spec? To answer this question, we need to think about why they would want to. I'd think the only reason they would want to would be because they are trying to extend JSON-LD with new features. That's a nice idea, but if several people do it without coordinating their work, we'll end up with mass confusion. So, I think they need to talk to each other first, and reach consensus on what a term means before anyone starts to use it in the wild. In other words, no one should use such keywords in public until/unless the folks who own the JSON-LD spec (some group at W3C) say it's okay. That might be done by having a simple first-come first-served registry, or it might mean no one gets to use a new term in public until JSON-LD 1.1 reaches Candidate Recommendation. We don't need to decide that now, but it would be a mess of people just started using their own extensions in public without any coordination. So I'd say a document using such a keyword is NOT a JSON-LD 1.0 document. It might be a JSON-LD 1.1 document, someday -- in fact, that's how one will recognize a JSON-LD 1.1 document. So that means conforming JSON-LD 1.0 producers MUST NOT produce such documents. Question 2. What should JSON-LD 1.0 consuming software do if it sees a document with an unknown keyword? This is going to happen (a) when someone makes a mistake, (b) when someone is trying to extend JSON-LD without consensus, or (c) a proper extension is being used or JSON-LD 1.1 is out, but this consumer software hasn't been updated to support them. For (a) or (b) it would be fine to halt and give an error, I think, to say JSON 1.0 consumers MUST NOT consume such documents. For (c), this could be a big problem, though. For this we need to imagine ourselves in the future, wanting to add some new features. (You probably have some in mind, things that were left out of 1.0.) What will you want existing software to do when it sees a JSON-LD 1.1 document, or a document with an extension it doesn't implement? If such software rejects it -- like an iphone getting flash content -- then users suffer, and people are strongly motivated not to use extensions or deploy version 1.1 So that's no good. If such software ignores it -- like a web browser getting HTML elements or attributes it doesn't implement, then everything will look fine to the user ----- unless the extension changes the meaning of the data in some important way. Then the user wont even get a warning, they'll just get bad data, with potentially disastrous results. Ignoring it only works, I think, if the extensions are some kind of pragmas or hints that don't affect the basic data. Maybe the problem can be sidestepped by using a new media type for JSON-LD 1.1. Then the two can exist side by side. Then JSON-LD 1.0 consumers can be told they MUST NOT consume 1.1 documents, because they'll only see them if there is a mime error. (For consuming JSON data as JSON-LD, I guess this still works, since the mime type of the linked-to context would be JSON-LD 1.1's mime type.) Another solution I see sometimes (SOAP and RIF do this) is that each extension is somehow flagged with MUST-UNDERSTAND or MAY-IGNORE. JSON-LD could do this with stuff in the @context, or with a syntactic hack, may-ignore keywords being lowercase or starting with '@?' or something. I think I'd propose the group pick EITHER MUST-UNDERSTAND or MAY-IGNORE for everything, and then if/when someone wants an extension with the other kind of semantics, they have to use a new mime type. As for which to go with for now, I'd say it depends what kinds of extensions you think people are going to want first. Are they things that can be safely ignored? |
Some more updates based on Sandro's feedback and the discussions in today's
This was changed to [1] "JSON keys that do not expand to an IRI, such as status in the example
I've clarified the section and added two test cases in [2]. Values of the form prefix://suffix are not considered as compact IRIs to
I changed it to the following suggestion [3]: "When possible, the context definition should be put at the top of a JSON-LD
I've clarified that note [4]. Just as any other term that isn't mapped to an
The majority of the group felt that this is too early in the document. I've "JSON documents can be transformed to JSON-LD without having to be modified
I've added an example in [6]. [1] aa43ac1 Markus Lanthaler |
I've reworded that paragraph in 5b79708. Does this address your concerns? Markus Lanthaler |
Sandro, we discussed proposal 4 today and concluded that we shouldn’t forbid terms starting with an @. Just as any other term that isn’t mapped to an IRI, such terms will be ignored by conformant processors. If someone does map a @-term to an IRI, that’s fine in JSON-LD 1.0 but might break in a later version. An example would be a @definedby tag which is mapped to rdfs:isDefinedBy. This is similar to how unknown tags and attributes are treated in HTML. |
Sandro, I've added ac8214e an example to the syntax spec: http://json-ld.org/spec/latest/json-ld-syntax/#conversion-of-native-data-types Does this address your concerns? Thanks, Markus Lanthaler |
…LD into RDF. This relates to @sandhawke's feedback captured in issue #224.
Sandro, we discussed moving the algorithms relevant to RDF conversion out of the API doc and into the base JSON-LD doc, but we don't find that practical. Many of the algorithms outlined in JSON-LD-API are essential for transforming JSON-LD into RDF (context processing, value expansion, IRI expansion, Expansion and Flattening). Instead, I've created an informative description of the process of turning JSON-LD into RDF (and vice-versa) in section C.1. This is necessarily brief, and does not detail the treatment of RDF Collections or Named Graphs. Please let us know if this resolves this particular issue. |
I'm not particularly happy with this outcome, but I think I understand it. I don't know if the rest of the RDF WG will. I guess I need to study the second doc better and see why it needs to be separate. |
Also updated the conformance section to include the following statement which is found in most W3C specs: As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative. This addresses the problem that ReSpec doesn't mark normative sections but just non-normative sections. This addresses #224.
I didn't update the JSON-LD* references yet, i.e., they still use json-ld.org. This addresses #224.
@sandhawke, I think all the issues you raised in your review of the JSON-LD syntax specification have been addressed. Unless you (or someone else) disagrees, I will close this issue in 24 hours. |
Sorry, I haven't completed my second review yet. |
This issue is just about your feedback regarding the syntax spec. Do you mean the review of my changes or the review of the API spec? |
It's all the same to me: when I swap in JSON-LD, I'll do it all at once. |
OK, I’ll leave the issue open for the time being. |
_Follow-up review by @sandhawke:_ This is a partial follow-up review of json-ld. Here I'm reviewing:
Summary: more of the same - mostly editorial - a few issues that will Details:
Alas, there is no defined way to merge RDF datasets. The problem is that sometimes it's obvious that the merge of
and
is
and sometimes it's obvious the two can't be merged because they See: http://www.w3.org/2011/rdf-wg/track/issues/17
I haven't managed to produce a good drawing of this. Sometimes I think http://www.w3.org/Consortium/Offices/Presentations/RDFTutorial/figures/AnimMerge8.png and somtimes I think of it as layers: http://www.flickr.com/photos/danbri/3472944745/ although I image the layers closer together, like transparent sheets of
It seems like there are too many of these.... I think. How can most
Yeah, I guess every RDF graph can be converted to JSON-LD with explicit And (again), I'd suggest that every JSON-LD document can be transformed -- Sandro |
We had a discussion on IRC about the problems of merging default graphs. For example, if a developer re-states the facts in both RDFa and JSON-LD in the same document (worse, microdata, which almost encourages the use of BNodes), the result will be a merger with duplicate BNodes, that typically are intended to be exactly the same node. One way would be to provide an algorithm for creating a named graph to contain the default graphs of all included script, microdata or RDF/XML which is also extracted (another case where BNode graph IDs would have been useful). Alternatively, a Note on the subject could just warn against this pattern. |
My preferred "fix" for the JSON-LD specification to be silent about this as Markus Lanthaler @markuslanthaler From: Gregg Kellogg [mailto:[email protected]] On Behalf Of Gregg Gregg Kellogg On Mar 29, 2013, at 8:24 AM, Sandro Hawke [email protected] wrote: ... Alas, there is no defined way to merge RDF datasets. The problem is that sometimes it's obvious that the merge of See: http://www.w3.org/2011/rdf-wg/track/issues/17 Proposed solution is to define it here, something like: If multiple I discussed this on the GitHub issue tracker too. We had a discussion on IRC about the problems of merging default graphs. For One way would be to provide an algorithm for creating a named graph to Alternatively, the result could simply be a set of graphs and datasets where ...
Gregg |
@gkellogg duplicate blank nodes don't seem like much of a problem; just make the graph lean.... Or maybe that's too hard? @lanthaler what kind of different applications are you imagining? |
@sandhawke, is there a definition of a "lean graph" and an algorithm to make a graph lean? It seems similar to graph isomorphism. Anyway, we do need a separate Note to describe this stuff, as it doesn't bear repeating in both Turtle and JSON-LD, and they shouldn't have to concern themselves with generic issues. |
On Friday, March 29, 2013 4:25 PM, Sandro Hawke wrote:
Thanks Sandro. I've tried to address most of them in cbcd289.
Fixed
Fixed
I decided to just remove that sentence. I think it confuses more than it helps.
Fixed
Good spot. I removed the cross-graph arcs.
I didn't introduce layers to show that nodes might be in multiple nodes. I think that would go beyond the scope of this simple, informative illustration.
Fixed
Good idea. I will update the spec to this style tomorrow.
The only two occurrences where we used property names was when we talked about "empty JSON keys". I fixed this as well.
Added that info already when I updated json-ld-api.
Will do tomorrow.
Fixed
A term can be any valid JSON string except the empty string. So yes, it can contain a colon, it can also be a plain colon. Any control character needs to be escaped.
Yes, replied to this already. Lets discuss it in the thread.
Fixed
Does it? This spec isn't talking about implementations, it's talking about JSON-LD the format. I think in that context it is OK to say that keys MAY expand to an absolute IRI. Please note that a key cannot be a relative IRI.
Keys are never relative IRIs. They are either terms, absolute or compact IRIs (@vocab may be used to set an "implicit" prefix for all keys that are neither terms, absolute or compact IRIs).
Of course, every implementation is free to issue warnings. However, a JSON-LD won't raise an error and stop processing. It will ignore them and continue processing.
Just as every other key that is set to null - it is ignored. It's the same as if it wouldn't have been there.
Depends on what your tool is supposed to do. I personally wouldn't mind making both Basic Concepts and Advanced Concepts normative.
Right.
Could you please provide some concrete text (given that you weren't completely satisfied with my change in json-ld-api). Thanks Cheers, |
All issues have been addressed. Unless I hear objections, I will close this issue in 24 hours. |
_@sandhawke's JSON-LD syntax spec review:_
This is my review of json-ld-syntax, as promised in the last meeting.
Summary: The document is in pretty good shape, and I think the underlying design is very good. Below, I suggest a few million editorial changes, a handful of which I think really need to be addressed before publication (and are marked MEDIUM or SERIOUS). I
also raise a handful of concerns about the design, but I think they can probably all be dealt with in a few minutes of conversation. I think everything not marked MEDIUM or SERIOUS is fairly trivial.
I reviewed the latest editor's draft:
https://dvcs.w3.org/hg/json-ld/raw-file/e582aaa9ee43/spec/latest/json-ld-syntax/index.html
I did not read the json-ld-api. I did play around with the json-ld "playground" site after I was into the appendiced. I haven't reviewed Appendix B yet; I'll try to get to that soon, but it's going to take more brain cells than I have left tonight.
Without further ado...
My first comment turns out to be, I think, the most utterly trivial. Sorry.
My sense is that one "harmonizes" the elements in a set (by modifying them to make them more similar or related in some way); I don't know what it means to harmonize a single item like this.
The clause after a semicolon should be a complete sentence. Change to a comma or rephrase.
I think they provide information about the named thing. I don't really like this paraphrasing of the LD principles, and I don't think it's helpful to the document here. I'd suggest providing some references instead.
comma needed after "JSON"
How about: "In addition to ..."
? maybe add "natural"
add comma at the end of the item
MEDIUM
Really? I pretty much never see people doing that with datatypes.
s/that/who/ on each line
How about: A companion document, The JSON-LD Application Programming Interface [JSON-LD-API], specifies how to work with JSON-LD at a higher level: it provides a standard library interface for common JSON-LD operations. Although that document is not required for understanding and working with JSON-LD, for some readers it will be a better starting point.
I don't think the history matters.
How about: JSON-LD satisfies the following design goals:
I don't think that's what you mean. I think you mean simplicity is paramount.
How about: to the language, so sometimes we do not achieve Zero Edits.
Hard to parse.
How about: A character is represented using a string of length one.
^^^^ omit "that"
s/native/natural (human)/
Awkward phrase.
s/For the avoidance of doubt, all/All/
SERIOUS
It's somewhat odd that all one needs for conformance is appendix B. So what are the other normative parts of this document for...?
I think there may be a notion of a conformant JSON-LD generator or parser here, too -- one that follows the rules of the rest of this spec. That should be stated here.
I think, in this case, the word "terms" should NOT be linked to #dfn-term because you DON'T mean "term" in the JSON-LD sense, here. This is supposed to be the pre-JSON-LD counter-example.
Uh, that doesn't match the definition in #dfn-term. Is a term really a property with its associated value? I don't think so.
How about: s/i.e., properties with associated values/such as the keys in an object structure/
This is the first sentence in the document where I have no idea what it means, because it uses concepts not introduced yet. Maybe this can be dropped? Or maybe I'll just have to get it on the second pass.
Later -- Yeah, I'd just drop that sentence, I think.
I find the re-use of the word "context" awkward here.
How about: This information allows developers to re-use each other's data without having to agree to how their data will interoperate on a site-by-site basis.
That makes me wonder if it can be HTML, to be more readable. There would have to be some standard way to find the @context json in the HTML....
Later - I see it can't. Okay, con-neg works, too.
after this example I was expecting the next example to use a Link header (what turns out to be EXAMPLE 29). Maybe mention it here?
Now would be a perfect place to have a relative IRI example. You've just talked about there being absolute and relative IRIs, and given an example only of absolute ones.
This is kind of weird. It doesn't tell me what I'm supposed to do; it just confuses me.
I guess it means they're like comments, and to be ignored?
This is where we need a clear notion of a processor that reads JSON-LD and extracts all the triples and quads from it, it seems to me.
It's confusing to have @type here. Maybe stick to just showing @vocab, and not also introducing something we haven't seen yet.
Later -- I see @type is never defined at all. Sigh. I guess it's consider an API thing.
This is the first place you use the word "generated" and it's not at all clear what it means. If we were talking about mapping to RDF it would make sense.
I'm not a fan of this paragraph. Can we just delete it?
Maybe clarify that @id is overloaded, and it means something different used like this than used as either a key or a value in a context?
It'd be a little more clear if EXAMPLE 11 didn't use @id in all three different ways. How about taking the context out of the example, and just having something like:
{
"@id": "http://manu.sporny.org/#me"
"http://schema.org/name": "Manu Sporny",
}
(or some other example where an @id is more appropriate)
As I come to Section 6 being marked normative, I see Section 5 was neither informative nor normative.
Don't conflate documents with vocabularies, please.
See: https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#vocabularies
I would just drop that whole paragraph. It's motivational, not spec text. And they're wonderfully motivated in the next paragraph anyway.
These sentences contradict each other. Do slashes prevent recognizing things as compact IRIs or not? I'd suggest not -- that's just extra code that wont be helpful, IMHO. (TEST CASE?)
"foaf": "http://xmlns.com/foaf/0.1/",
"foaf:homepage": { "@type": "@id" },
Would that work if the order was reverse? I guess so, since JSON doesn't preserve order. Maybe clarify that, and maybe put them in the other order in the example. (TEST CASE?)
Later -- Oh, I see this is covered well in section 6.9. Maybe near Example 17 say this is covered in more detail in section 6.9....?
MEDIUM
Okay, this overloading of @ keywords goes too far with @vocab serving a completely different purpose (from normal @vocab) in this situation. That's just silly.
Maybe we could at least have a table showing what how the meanings differ in different places in the structure.
I've read this about 6 times and I can't make sense of it. That is, I think the example makes perfect sense, but the paragraph after it, explaining it, does not. When you say "not a prefix:suffix construct" maybe you mean "not a string"?
SERIOUS
That means you can't use natural JSON parsing, doesn't it? If I read EXAMPLE 24 with a JSON parser into a nested object, then I don't know the order of the @context blocks.
That doesn't go far enough. You could allow nesting to make Example 24 work, but I don't think it's okay to use order-of-statements.
MEDIUM
I don't agree. You're telling me I'm going against best practice to build and object in memory and let my JSON serializer turn it into JSON.
What if there's more than one @context subtree? Do you mean the merge of all the @context subtrees? [TEST CASE]
Thinking about this, I'd rather like .well-known/host-context.jsonld as another place I can look. So if I'm trying to get RDF triples, and I just get application/json, and there's no Link Header, I can look for a host-context file. I dunno -- maybe everyone can set a Link header easily enough.
MEDIUM
This speaks to conformance. "JSON-LD processor" (maybe "consumer") needs to be defined in the Conformance clause, and s/should not/MUST not/ (with maybe some more rewriting).
"markup"? JSON isn't markup, as I understand the word. Can you just drop the word from the sentence?
(glancing at appendix B for something)
MEDIUM
Why only SHOULD NOT? Why not MUST NOT? The damage if they do is considerable.
Also, you kind of need to say what processors MUST do if they see a keyword term they don't know -- ie one from the future. The options are: ignore (if you can figure out what/how much to ignore); or halt; or issue a warning to the user.
That doesn't seem worth saying here. I assume it's ruled out in Appendix B.
Odd section. It seems to have forgotten this was introduced as a graph syntax. The main thing to highlight is that this is syntactic sugar; sometimes it's nice to syntactically embed the node in one of the places that had a link to it.
SERIOUS
I suspect the first row of the table is wrong. I would think only the triples inside the value associated with the @graph key would go inside the graph. Please clarify which it is, and correct the table if necessary.
MEDIUM
How about this as a hack that's more elegant:
... with a rule that an object that has JUST a @context key, and no other keys, is actually omitted from arrays. That seems like a cleaner hack than using the @graph keyword. Keep @graph for when people really want named graphs.
This is okay, but it would be pretty easy and much more in keeping with the style of the document to avoid mentioning RDF, even here.
Something like:
For some topologies of the graph of nodes being expressed in JSON-LD, such as topologies with loops, embedding along cannot be used, and @id must be used to connect the nodes. In some cases, one may not want to name nodes with IRIs. In these situations, one can use "blank node identifiers", which look like IRIs but with _ (underscore) as the scheme name. For example:
In this case, we do not want to assign IRIs to the two people, but we want to express that they know each other. We can say SA1 knows SA2 using embedding, but to say SA2 knows SA1 we need to use a blank node identifier.
I think you mean this only for keywords that are known to be meaningless when used as keys in a @context. I think it would be better to make this an error. But the bigger question is about forward compatibility -- MUST processors ignore all keyword keys in contexts? (Are any allowed, with meaning? I don't see any.)
These should probably be marked non-normative. There's nothing here I need to know to work with JSON-LD (although it's very cool and all).
Not sure how I feel about this. It's kind of weird, but pretty harmless, I guess.
I'm not sure it would work, but an alternative design would be to have a particular property be @index'd. So instead of:
"@container": "@index"
in the context we'd say
"@index": "lang"
and then the stuff in green would be equivalent to:
I think that would provide the same functionality, but without these keys that aren't really in the data. It would let you cleverly generate JSON-LD like this from plain triples, if given the right context. (You'd have to have triples with the same S and P, where each O differs in the value of a DataProperty, as in this example.)
What happens if the same @graph @id is used in two places? are the graphs merged, or what? Shouldnt the spec say? Or is that left to the API document as well? (it's a lot more than an API.) (in TriG they are merged)
In general, I found Appendix A very confusing, and I'm thoroughly familiar with the RDF data model. This does not bode well for JSON folks. Do they need to understand this section, or can it be marked non-normative?
As far as I can tell, from reading the spec up to this point, if it doesn't have an IRI, it's ignored -- and thus not part of the data model. Several times you say terms that dont map to IRIs are ignored.
SERIOUS
These labels seem to be applied inconsistently.
SERIOUS EDITORIAL
I really don't like the mapping-to-RDF being left to another, later spec. I can live with it just being shown in the examples, except for not knowing what happens with numbers. From the playground I see integers end up as xsd:integer and otherwise they are xsd:double, which is simple enough, but should really be said in this document, or at least shown in an example.
[ ](I see a bug in the playground. If you use too large an integer, it converts the lexrep to being in scientific notation.)
Doesn't JSON-LD also have sets? As I read the spec, it seemed like @collection: @set had some semantics, in addition to being a directive to keep singletons in arrays. A set-valued property is somewhat different from a repeated property.
True, but that doesn't seem to be what the examples are showing. I'd just drop that line.
Not really reviewed at this time.
SERIOUS
Actually, I think this section is Normative, like the profile stuff.
MEDIUM
Actually it goes at Last Call, as per http://www.w3.org/2002/06/registering-mediatype
SERIOUS
if you want the expanded form, you SHOULD ask for it with this profile
(which I think would be silly) or do you mean:
if you receive a request that includes this profile parameter, you SHOULD return expanded form
? I guess the latter, but that's not what it says. I would think you'd use normal media-type rules here -- if you can't provide it in expanded form, then you're not providing it, and fallback to another media type.
This should be plain text, and the URL should be updated. I guess it will be http://www.w3.org/TR/json-ld-syntax
MEDIUM
I have no idea what this text is trying to say. For my best guess, please replace it with:
Fragment identifiers used with application/ld+json are treated as in other RDF syntaxes, as per RDF Concepts (link to http://www.w3.org/TR/rdf11-concepts/#section-fragID) [RDF-CONCEPTS]
Some of them are out of date, like TURTLE-TR. Also, the reference style isn't correct -- it only has the dated links.
That's it. I'll try to get to Appendix B. before the meeting, but I wanted to send this early enough that it can be read & digested before Wednesday's meeting.
Keep up the great work, guys. I only point out all these places for improvement because I think this is so important and want it to have the best chance it can.
-- Sandro
The text was updated successfully, but these errors were encountered: