- From: Manu Sporny <msporny@digitalbazaar.com>
- Date: Tue, 12 Jun 2012 11:25:31 -0400
- To: Linked JSON <public-linked-json@w3.org>
bcc: RDF WG The minutes from today's call are now available here: http://json-ld.org/minutes/2012-06-12/ Full text of the discussion follows including a link to the audio transcript: -------------------- JSON-LD Community Group Telecon Minutes for 2012-06-12 Agenda: http://lists.w3.org/Archives/Public/public-linked-json/2012Jun/0021.html Topics: 1. Use of @container to specify language-maps and other useful things 2. Review latest JSON-LD Syntax and API specs 3. ISSUE-120: Expand @type to @id-objects Resolutions: 1. Attempt to add other @container options, such as "@container": "@language" to support Wikidata's language-map use case. 2. When operating on @type, the result of the expansion algorithm MUST always result in an array of strings that are IRIs. 3. In the expansion algorithm, when expanding a value associated with @type that is a JSON object, extract only @id from that value. Any value that does not expand to an absolute IRI MUST be discarded. Chair: Manu Sporny Scribe: Gregg Kellogg Present: Manu Sporny, Gregg Kellogg, Niklas Lindström, François Daoust, David I. Lehn Audio: http://json-ld.org/minutes/2012-06-12/audio.ogg Manu Sporny: Discussion about Stardog, JSON-LD and the upcoming NoSQL conference. Gregg Kellogg is scribing. Niklas Lindström: discussion of @container with @language? Topic: Use of @container to specify language-maps and other useful things Manu Sporny: https://github.com/json-ld/json-ld.org/issues/133 Manu Sporny: https://github.com/json-ld/json-ld.org/issues/134 Niklas Lindström: previously, I had brought up something for if the language was a key. … we've seen some other cases where we'd like like Gregg Kellogg: Yeah, Wikidata is quite interested in using a JSON expression for their APIs - Wikidata exists to communicate with other Wikis... they're quite interested in JSON-LD [scribe assist by Manu Sporny] Gregg Kellogg: It would allow them to avoid having a different JSON serialization - they presented some use cases - they'd like to, for some wiki topic, have a way of expressing that topic in JSON-LD. The problem is that they need to be able to express this in many different languages/keys - it's the array-as-object pattern. [scribe assist by Manu Sporny] Gregg Kellogg: So each key is a subject, not a property... ISSUE-133 would be contain underneath whatever key references it. Wikidata says that they would place the english version or the german version of a video in this layout. [scribe assist by Manu Sporny] Niklas Lindström: if 133 was chosen, if you have objects, it could be specified in a way so that the expression used, if the object is not a value, the language is set below. … but, not sure @language works that way. Gregg Kellogg: My original concern was to add a @context that defines a particular language... from Denny's perspective, he would be perfectly happy if he had to explicitly set a context that defines a language - not really a short-cut to avoid extra description... it's an index pattern which is important. He wants to be able to access this stuff using JavaScript object notation. [scribe assist by Manu Sporny] Niklas Lindström: we might want to study this pattern for things other than @language (such as @id). … I have some suspicion that JSON keys are used not as properties, but as "index" keys for values. … consider RDF/JSON, which has as it's outer container something which works like an indexing feature. … this pattern is fairly conventional in JSON. I wonder how far towards a transformation language we want to go. … We can't just do the simplest thing possible, because we need to be able to allow for such usage patterns. … if we can make it understandable, can we work with @container to adopt more conventional forms of JSON. Manu Sporny: I have a couple of concerns: … 1) is denny modeling his data that makes sense for JSON-LD? … we've already said there are patterns we're not going to support. … I'm concerned about the overhead it adds, not to processing, but to the intellectual overhead. … Same issue that WHATWG had with RDFa - that there are too many ways to say the same thing. Gregg Kellogg: Yes, the main reason Denny wants this is that he wants to be able to access these values in JavaScript dot-notation... [scribe assist by Manu Sporny] Gregg Kellogg: regarding intellectual complexity - my philosophy on language design is a bit different - simple things should be simple, complex things should be possible (not impossible) [scribe assist by Manu Sporny] Gregg Kellogg: I think we need to consider this as a fairly standard usage pattern... I'm not convinced we need to support it via compaction/framing, but as a way of being able to express JSON where you can derive RDF, it's interesting. [scribe assist by Manu Sporny] Niklas Lindström: I appreciate manu's concerns about discussing the usage pattern in-depth, but I think that what gkellogg said may be true, that it is a common usage pattern. … It may be more predictable to do this by extending @container. Probing makes it more difficult to read the JSON and glean the data. … Embedding RDF forms in "noisy" JSON may open a can of words. … I we us @container for @language (and maybe @id) it will make it easier to read. … It's true that you can no longer rely on a key being a property. … But the idea, is to stick to existing usage patterns. Given that indexing is a common usage pattern, and is the most expressive and useful, JSON-LD may be marginalized if it can't support this pattern. … I've seen many templating patterns where being able to use keys in this manner would simplify things. … If we define it as a mechanism of container, anyone knowing how JSON-LD @context works, will figure this out quickly. Manu Sporny: I hear general agreement that we're going to try to make it work. … As markus said, there are still some issues about how this will work. Niklas Lindström: I experimented with language mapping before, and it worked okay for compaction. … oddly shaped data will highlight the edge-cases. … using keys of different types in a language can lead to a conflict, but we can provide a mechanism to resolve this, such as to skip the @container: @language definition. Manu Sporny: we should probably table for now until we have an implementation. … once we work out the edge-cases, we should come back to it. … One concern is that does really affect the syntax, so we can't put it off for too long. PROPOSAL: Attempt to add other @container options, such as "@container"; "@language" to support Wikidata's language-map use case. Manu Sporny: +1 Gregg Kellogg: +1 Niklas Lindström: +1 François Daoust: +1 David I. Lehn: +1 RESOLUTION: Attempt to add other @container options, such as "@container": "@language" to support Wikidata's language-map use case. Topic: Review latest JSON-LD Syntax and API specs Manu Sporny: http://json-ld.org/spec/latest/json-ld-syntax/ Manu Sporny: http://json-ld.org/spec/latest/json-ld-api/ Manu Sporny: I sent an email out to the RDF WG indicating that we had applied all change requests to the documents, marking it up as an FPWD. Manu Sporny: http://lists.w3.org/Archives/Public/public-rdf-wg/2012Jun/0028.html … I linked to each commit to make sure that every piece of feedback was responded to. … the big changes were that the JSON-LD API now has an introductory section that is specific to it. … We added issue markers to indicate that it's been in development for 18 months, and scope, and alignment with RDF Concepts. … Hopefully, they'll look at it tomorrow, they'll publish as an FPWD. … Hope for FPWD in the month of July. Topic: ISSUE-120: Expand @type to @id-objects Manu Sporny: https://github.com/json-ld/json-ld.org/issues/120 Manu Sporny: this has do do with the expanded form of @type. Should it be expanded to {"@id"} form? or should we keep it as is, where it can only be a string or an array of strings. François Daoust: [I note a missing "API" in the title of the spec in the normative reference to JSON-LD API: http://json-ld.org/spec/latest/json-ld-syntax/#bib-JSON-LD-API ] Gregg Kellogg: There are two things that drive this - one of them is the IRI space for @type being different than other keys like @id - perhaps it should be kept distinct by not using the @id pattern. If we use the @id pattern, you would be in a different context when you applied that. If you needed vocab expansion, or an absolute IRI vs. relative IRI would need to be thought about more deeply. [scribe assist by Manu Sporny] Gregg Kellogg: That said, in expansion we should tolerate seeing values of this type which are expressed in the @id form... the canonical form would be to just be an array of strings. [scribe assist by Manu Sporny] Gregg Kellogg: So, I'm in support of supporting this feature. [scribe assist by Manu Sporny] Niklas Lindström: I'm pretty sure that I'm in agreement on Gregg on all of this - I have the same perspective. [scribe assist by Manu Sporny] Niklas Lindström: I'm pretty sure that I agree with Gregg on this stuff. I have the same perspective on the items that are brought up. … with possible exception to the notion of expansion. If this is the case, we should also change @type to be like rdf:type. … @type is a syntactical expression, and if we expand it, we should expand to rdf:type. Gregg Kellogg: I'm worried that we push a bit too much RDF onto the JSON folks if we do that... I'm not too keen on expanding "@type" to "rdf:type" on expansion. [scribe assist by Manu Sporny] Niklas Lindström: I'm not sure which side I'll end up on. Manu Sporny: I'm a bit concerned about expanding to rdf:type too. It might be more pure from an RDF standpoint, but we don't want to push this on people that aren't interested in RDF. … This is a type of confusion we'd like to stay away from. … Two different things, what happens on RHS and on LHS. Niklas Lindström: on the LHS, we use @type, the value on the RHS should never be an object. … If you want to do this in the context, you'd need to be sure when expanding that this wasn't the case. … I feel that we shouldn't expand @type. Manu Sporny: I thought we were talking about if the RHS of @type to have an object when expanding. Manu Sporny: In expansion, should we do this: "@type": "http://xmlns.com/foaf/0.1/Person" or this: "@type": { "@id": "http://xmlns.com/foaf/0.1/Person" } Gregg Kellogg: yes, that's what this issue is about - if we have foaf:Person - does it expand into the IRI form or the object form? [scribe assist by Manu Sporny] "type": {"@id": "foaf:Person"} Gregg Kellogg: There are at least three cases here - what happens when "@type" is aliased to "type", what happens if somebody does "rdf:type" on the LHS, what happens to { "@id": ... } in expanded form [scribe assist by Manu Sporny] Manu Sporny: to be consistent, we should always express as a string, or expand out into a subject reference. … it seems to me that for @type we should expand out to the @id form. … we do that for everything else. Niklas Lindström: then you'd do it for literals too? Manu Sporny: if we expanded an object with a label, we'd through the label away. … we don't do it for @id or @type. If you want to express more information, define it elsewhere. … @type is no different from @id and the datatype usage. If you want to say more, say more somewhere else. Niklas Lindström: .. [ {"@id": "a", "@type": {"@id": "http://example.com/type", "label": "Type name"} } ] Niklas Lindström: my problem is that @type is a specific syntactic form. That's why I brought up that a consistent form is to expand @type tordf:type Niklas Lindström: [ {"@id": "a" "@type": ["http://example.com/type"]}, {"@id": "http://example.com/type", "label": "Type name"} ] Gregg Kellogg: This is an interesting artifact - in TURTLE you can't do chaining for objects that are also subjects. [scribe assist by Manu Sporny] Gregg Kellogg: Niklas' second form is the only way you can express it in TURTLE... [scribe assist by Manu Sporny] Manu Sporny: consensus that when we have @type with objects, we just take the IRIs and through way the other data when expanding. Niklas Lindström: .. [ {"@id": "a", "type": {"@id": "http://example.com/type", "label": "Type name"} } ] Niklas Lindström: want to be sure that in compaction, I can get back to that example. Niklas Lindström: .. "type": "rdf:type" PROPOSAL: In expanded form, the value of @type MUST be a string or an array of strings that are IRIs. If expanded form is used to express one or more object references @type (e.g. "@type" PROPOSAL: In expanded form, the value of @type MUST always be an array of strings that are IRIs. PROPOSAL: When operating on @type, the result of the expansion algorithm MUST always result in an array of strings that are IRIs. Gregg Kellogg: +1 Manu Sporny: +1 François Daoust: abstains (proposal sounds good, I just don't feel I get the ins and outs correctly on that issue) David I. Lehn: +0 Niklas Lindström: +1 RESOLUTION: When operating on @type, the result of the expansion algorithm MUST always result in an array of strings that are IRIs. Manu Sporny: A clarification on the resolution above. [scribe assist by Manu Sporny] PROPOSAL: In the expansion algorithm, when expanding the value associated with @type, if a JSON object is detected, only the value of @id MUST be used. PROPOSAL: when expanding the object value of a key interpreted as @type, extract only @id from that value. Discard any value that does not expand to an absolute IRI. PROPOSAL: In the expansion algorithm, when expanding a value associated with @type that is a JSON object, extract only @id from that value. Any value that does not expand to an absolute IRI MUST be discarded. Manu Sporny: +1 Gregg Kellogg: +1 Niklas Lindström: +1 François Daoust: abstains (same comment) David I. Lehn: +0 RESOLUTION: In the expansion algorithm, when expanding a value associated with @type that is a JSON object, extract only @id from that value. Any value that does not expand to an absolute IRI MUST be discarded. -- manu -- Manu Sporny (skype: msporny, twitter: manusporny) President/CEO - Digital Bazaar, Inc. blog: PaySwarm Website for Developers Launched http://digitalbazaar.com/2012/02/22/new-payswarm-alpha/
Received on Tuesday, 12 June 2012 15:26:17 UTC