Re: JSON-LD Spec confusion

On 05/16/2011 04:10 AM, Gregg Kellogg wrote:
>> We had thought at one point of requiring full IRIs, but note that
>> this list of types to coerce may get very large over time and thus
>> the default context would become unwieldy. In order to combat this,
>> we thought that CURIEs might help us to keep the list smaller than
>> if we were to use full IRIs.
> 
> It seems reasonable to me to use URIs for mapping and URIs or CURIEs
> for @coerce. Note that in RDFa profiles, mappings are literals, not
> URIs (although in the anyURI value apace. Does the same reasoning not
> apply?

Mappings should be plain literals - yes. At least, they are in my mind -
let me clarify.

When I was saying "URI" or "CURIE" - I was speaking about the lexical
space, not the value space. To put it another way, in @coerce, we were
thinking about something like this:

WRONG: "xsd:anyURI": "http://xmlns.com/foaf/0.1/homepage" WRONG
WRONG: "http://www.w3.org/2001/XMLSchema#anyURI": "foaf:homepage"
CORRECT: "xsd:anyURI": "foaf:homepage"

So, basically, if you wanted to coerce anything, you should be using
CURIEs. There were two reasons for this: 1) Simplifying the
implementation of the processor, 2) reducing the potential size of the
Default Context.

>> @base is in there because we thought people might complain if it
>> wasn't in there... but do we really need it?
> 
> I think @base is a good idea. It can help reduce document size, and
> makes things more readable.

Ok, so we'll keep it in there for now. The trade-off is design
complexity. Also note that @base only applies to things on the
right-most side of a JSON statement:

 "LEFT": "RIGHT"

@base only applies to RIGHT.

In order to affect LEFT, you have to use @vocab. This was confusing to a
few of the folks in our company. They were wondering why @base didn't
apply to both the left and the right side.

I'm only bringing this up because while @base may make sense to people
that think deeply about this stuff - people that just want it to use it
and it work have to remember some of these more esoteric rules.

So, supporting base adds complexity to authors and to implementers - are
the gains in document size reduction and readability worth it in the
end? I'm just barely on the side of "it's not worth it to have @base or
@vocab".

However, I know Nathan really wants @vocab... and you seem to support
having @base in there. My opinion is that if we rip one of them out of
there, we should rip the other one out.

>> Or, maybe we can create a better list mechanism and feed that work
>> into the RDF WG? That may be going a bit too far?
> 
> I think it's a bad idea when serializations start creating their own
> semantics. Like it or not, that's the provenance of the RDF WG.

Maybe. There are some that really don't like RDF and see JSON-LD as a
way of getting away from RDF. If those people don't care about RDF list
semantics, they would adopt whatever list semantics were provided in
JSON-LD.

I'm not saying that this is a good thing - just outlining it as not
mattering to people that don't care about RDF.

>> How long did it take you to put a first-cut of the JSON-LD parser
>> together?
> 
> It was pretty easy, did it in just a couple of days, taking advantage
> of Ruby's JSON support and structural components from my other
> parsers.. Serialization should be a breeze, although normalization
> may be hard for versions of Ruby not supporting ordered hashes.

That's good to hear. It's amazing how much support for ordered hashes
helps the normalization stage for JSON-LD. Python has a nice ordered
hash serializer for JSON.

-- manu

-- 
Manu Sporny (skype: msporny, twitter: manusporny)
President/CEO - Digital Bazaar, Inc.
blog: PaySwarm Developer Tools and Demo Released
http://digitalbazaar.com/2011/05/05/payswarm-sandbox/

Received on Thursday, 19 May 2011 04:23:27 UTC