- From: Gregg Kellogg <gregg@greggkellogg.net>
- Date: Fri, 21 Feb 2014 10:12:42 -0800
- To: Manu Sporny <msporny@digitalbazaar.com>
- Cc: Linked JSON <public-linked-json@w3.org>
On Feb 21, 2014, at 3:54 AM, Manu Sporny <msporny@digitalbazaar.com> wrote: > On 02/21/2014 12:33 AM, David Booth wrote: >> Personally, I would prefer not to overload JSON-LD this way. This >> essentially amounts to a transformation rule. And although >> transformation rules are useful and neede, I would prefer to have >> them specified as a separate layer. > > +1 to what David said. > > I'd like to stay away from adding functionality like this to JSON-LD for > now. > > That said, this is an example of a place where URL templates are useful. > We should keep it as a concrete example that argues in favor of the > feature. It seems like a couple of lines of pre-processing code could > also do the job. The JSON-LD Context doesn't have to be everything to > everyone and I'm really not in favor of extending it to fit a CSV use > case (modifying a modern language to fix issues in an older format). > > -1 for the ID template feature for now. To clarify my thoughts, I see that a JSON-LD frame could be used as a template for mapping CSV to JSON-LD, and much of the additional metadata would be more of an extension to JSON-LD frame format, than a change to the JSON-LD model itself. (Although, I did suggest that IRI templates might be a more generally useful feature in framing). Remember that JSON-LD framing already extends the keyword namespace of JSON-LD, so there is precedent for extensions to do so, and in this sense, a CSV-LD may leverage a JSON-LD format and extend it by allowing other markup to be specified. I still think that this is a useful concept, and is in the spirit of other efforts to leverage JSON-LD to solve more problems. > One thing we may want to do is specify how extensions to the JSON-LD > Context should be done, so that one may clearly mark context extensions > (like the one in this case) w/o confusing older processors. +1 > Something to the effect of "If you see this property, and you understand > the extension, process it. If you don't understand the extension, drop > the property". At least in that case, people could experiment w/ new > features in production, and if the feature ends up being useful and > implemented broadly, we could remove the "extension" tag. In this case, > it would look something like this: > > { > "region_id": { > "@extension": "http://myparser.com/vocab#idTemplates", > "@id": "_:{Sales Region}", > "@type": "@idTemplate" > } > } Conveniently, JSON-LD already says to drop keywords that it doesn't understand, so a general JSON-LD processor would drop these things. I do think that a general-purpose extension mechanism is important for follow-your-nose discovery of these extensions, though. This seems like a reasonable way to go, although the @extension could just be added to the @context, rather than bury it in a term definition. Gregg > If the feature gets broad adoption, in time the feature would become > part of the spec and become this: > > { > "region_id": { > "@id": "_:{Sales Region}", > "@type": "@idTemplate" > } > } > > -- manu > > -- > Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny) > Founder/CEO - Digital Bazaar, Inc. > blog: The Worlds First Web Payments Workshop > http://www.w3.org/2013/10/payments/ >
Received on Friday, 21 February 2014 18:13:14 UTC