W3C home > Mailing lists > Public > public-rdf-wg@w3.org > January 2013

JSON-LD Telecon Minutes for 2013-01-29

From: Manu Sporny <msporny@digitalbazaar.com>
Date: Tue, 29 Jan 2013 16:09:50 -0500
Message-ID: <51083A9E.1060705@digitalbazaar.com>
To: Linked JSON <public-linked-json@w3.org>
CC: RDF WG <public-rdf-wg@w3.org>
Thanks to Gregg for scribing! The minutes from today's telecon are now
available.

http://json-ld.org/minutes/2013-01-29/

Full text of the discussion follows including a link to the audio
transcript:

--------------------
JSON-LD Community Group Telecon Minutes for 2013-01-29

Agenda:
   http://lists.w3.org/Archives/Public/public-linked-json/2013Jan/0055.html
Topics:
   1. Remaining Editorial Work for JSON-LD 1.0 Specification
   2. Update to JSON-LD Data Model
   3. Context via HTTP Link Header
   4. IANA parameters
   5. Update on Algorithms
Resolutions:
   1. Remove "Example 51: Data annotations" and provide different
      examples showing how data annotations survive
      expansion/compaction.
   2. Rename @annotation to @index and update the prose in
      section 6.14 to reflect the change.
   3. Remove 'form' from the optional parameters for
      application/ld+json. Add four URL values for 'profile':
      http://www.w3.org/ns/json-ld#expanded
      http://www.w3.org/ns/json-ld#compacted
      http://www.w3.org/ns/json-ld#expanded-flattened
      http://www.w3.org/ns/json-ld#compacted-flattened
Action Items:
   1. Write e-mail to RDF WG asking why blank node identifiers
      can't be used for graph names and predicates.
Chair:
   Manu Sporny
Scribe:
   Gregg Kellogg
Present:
   Gregg Kellogg, Manu Sporny, Markus Lanthaler, Niklas Lindström,
   Lin Clark, David I. Lehn
Audio:
   http://json-ld.org/minutes/2013-01-29/audio.ogg

Gregg Kellogg is scribing.
Manu Sporny:  Any additions to the agenda?
Markus Lanthaler:  I raised another issue, but we'll discuss
   along with IANA parameters (ISSUE-214)

Topic: Remaining Editorial Work for JSON-LD 1.0 Specification

Manu Sporny:  I've gone through and done a complete pass over the
   JSON-LD 1.0 spec.
   … I tried to be very thorough about grammar flow, syntax, and
   so forth.
   … As always, we'll need a couple of more people to go over the
   spec and agree to the changes.
   … The major changes we've already discussed last week.
   … There are some other minor changes that could impact other
   things.
   … The biggest changes were moving from beginning to advanced
   sections, to aide flow for people form whom the concepts are new.
Markus Lanthaler:  I had some comments.
Manu Sporny:  In my inbox, haven't gotten to read it yet. We'll
   discuss them on this call.
Manu Sporny:
   http://json-ld.org/spec/latest/json-ld-syntax/#data-annotations
Manu Sporny:  data annotations first.
   … markus, you put in a use of data annotations that I hadn't
   thought about, and we should discuss.
   … For example 51, we have annotations used like a comment,
   which is not what I was thinking they were about, but they can
   certainly be used for that.
   … It was primarily intended as a container type, and not a
   comment. In this case, it looks like it would be lost across
   expansion.
Markus Lanthaler:  the reasoning was to describe it in a simpler
   way without relying on containers.
   … Basically, annotations are data which survive
   expansion/compaction, etc. It would, though, be lost when going
   to RDF.
   … This is the simplest way to describe the keyword.
   … The Annotation Maps (ex 52), is used to show more advanced
   usage.
Niklas Lindström:  I wonder if the choice of the name of the
   keyword is unfortunate. Was @key suggested?
   … I'm not sure if this is helpful, because the primary use
   case was ex 52, and other similar situations when there is a
   corresponding property on the object itself, such asdc:language,
   or the text value of the date or author.
   … It is primarily for artificial index keys which are
   necessary to allow the algorithms to work.
Manu Sporny:  it was @index I had proposed, as I had looked at
   this as a way to allow indexes to survive.
Niklas Lindström:  perhaps @key is even more appropriate; when
   you use @container, you can't hav several keys to confuse the
   mechanism.
   … For one object, you cannot have several keys, otherwise the
   @container annotation would be confused.
   … If a term were aliased to @annotation, and then use
   different terms, also aliased to @annotation, it would confuse
   the algorithms.
   … The keyword @key is more explicit.
Manu Sporny:  two questions, name of the keyword, and do we want
   to support bare string annotations.
Markus Lanthaler:  not a question of support, just documentation.
Manu Sporny:  leaning towards not documenting this usage
   … This was not my intent when agreeing to use this mechanism.
   People could use things other than strings, which is not in the
   grammar, but people might think it follows.
   … now we're describing another usage, as a basic string
   annotation, but not intended for use with the annotation maps.
   … This becomes limiting.
   … I'd rather not have this in there, and have them create a
   new term.
Gregg Kellogg:  I'm inclined to agree - this is promoting using
   JSON-LD markup features when it's more appropriate to use things
   like rdfs:comment. [scribe assist by Manu Sporny]
Gregg Kellogg:  By giving people a feature like this, we're
   giving people an excuse to not mark it up as Linked Data. Also,
   perhaps @annotation isn't a good name. [scribe assist by Manu
   Sporny]
Markus Lanthaler:  I'd be fine with removing the example.
   … Because the keyword is called annotation, the most natural
   thing is to use it for annotations. It's still there, but not
   L.D.
Manu Sporny:  I'd say we could work on the intro, if needed.
Niklas Lindström: Lin, would you mind if the keyword @annotation
   (which is used for the extended language map feature) is renamed?
   Suggested name is @key.
Lin Clark: We haven't implemented that yet, so that's fine
Gregg Kellogg:  Maybe this indicates that the "@annotation" name
   is bad? [scribe assist by Manu Sporny]
Manu Sporny:  we want to show an equivalent of example 51, so
   people know how it round-trips.
   … The section needs a bit more work.

PROPOSAL: "Remove Example 51: Data annotations" and provide
   different examples showing how data annotations survive
   expansion/compaction.

Gregg Kellogg: +1
Manu Sporny: +1
Niklas Lindström: +1
Markus Lanthaler: +0

RESOLUTION: "Remove Example 51: Data annotations" and provide
   different examples showing how data annotations survive
   expansion/compaction.

Manu Sporny:  other ideas: @index, @map.
Niklas Lindström:  it would look strange if looking at the
   expanded data.
Gregg Kellogg:  @index is pretty descriptive of what's going on
   here. [scribe assist by Manu Sporny]
Gregg Kellogg:  It seems to make sense in expanded form and in
   the context. [scribe assist by Manu Sporny]
Niklas Lindström:  I think of this as the key in the map.
   … I like @key in and of itself, but when looked at along other
   keywords, it looks odd.
Manu Sporny:  I feel strongly about changing it from annotations
   to something else. Maybe we can change to @index, and see how
   people feel about it.
Markus Lanthaler:  the problem I have with @index, that looking
   at an array, all elements are indexed, as in a cardinal location.
Markus Lanthaler: What about something like @marker
Gregg Kellogg:  I agree that data annotations are going in the
   wrong direction, it doesn't matter what we change it to as long
   as it's in a better direction. [scribe assist by Manu Sporny]
Gregg Kellogg:  "index into an object" works for most... I'd go
   w/ either @index or @key... @key is probably the most accurate,
   but @key next to @id and @type makes it not clear what it's used
   for. [scribe assist by Manu Sporny]
Manu Sporny:  Gregg just convinced me that @index is probably the
   best.
Niklas Lindström:  from the thesaurus, it looks like a reasonable
   choice.
Manu Sporny:  also, this is editorial, it doesn't really effect
   the semantics.
Markus Lanthaler:  why change, to prevent the use case or not
   promote it.
Manu Sporny:  to be clearer about what the feature does.
Niklas Lindström: http://thesaurus.com/browse/index: "Definition:
   indication … Synonyms: clue, mark, symbol, token...
Manu Sporny:  The keys in a database don't really have semantic
   meaning, and aren't typically exposed to the application layer.
   … This is effectively a database, and we are creating an
   index. The feature is easily comparable to a database index; not
   really an annotation mechanism.
   … My understanding was that developers needed to access the
   data quickly, which is the definition of what a database index is
   used for.
   … I think it's more accurate to say it's like a database index
   than an annotation.

PROPOSAL: Rename @annotation to @index and update the prose in
   section 6.14 to reflect the change.

Gregg Kellogg: +1
Manu Sporny: +1
Niklas Lindström: +1
Markus Lanthaler: +0.5

RESOLUTION: Rename @annotation to @index and update the prose in
   section 6.14 to reflect the change.

Niklas Lindström: Lin, we're going for @index. :)
Lin Clark: Thanks for the heads up :)

Topic: Update to JSON-LD Data Model

Manu Sporny:  I was a bit concerned about these changes.
Markus Lanthaler:

https://github.com/json-ld/json-ld.org/commit/cc034077d5177f85fdccc69a5ac8062e66368e93
Manu Sporny:  I modified what a node was in the JSON-LD data
   model, and Markus and I disagreed.
   … This comes out of something Richard Cyganiak said...
   … "Every node represents a resource or a value. Resources are
   labeled by a bnode or an IRI". Before it said that every node
   _is_ and IRI, etc.
Markus Lanthaler:  Richard said they're not labeled, but they are
   IRIs.
Niklas Lindström: http://www.w3.org/TR/rdf11-concepts/#data-model
Niklas Lindström:  the data model is just the abstract syntax,
   and looking at RDF 1.1 Concepts...
   … (quoting from data-model).
   … What might have through it up was that arcs were IRIs too,
   but in fact arcs are labeled, not nodes.
Gregg Kellogg:  As I recall, there were some strong feelings
   about the node is an IRI. I agree with Niklas and Markus. [scribe
   assist by Manu Sporny]
   … We've sometimes conflated the JSON object with the node, and
   the resource the node represents.
Manu Sporny:  we should change it back then, but I'll check with
   cygri.
Niklas Lindström:  we need to check our usage of node, but I
   think we're okay.
   … Just verify we don't use "node" and "resource"
   indistinguishably.
Niklas Lindström: .. possible problems:
   http://json-ld.org/spec/latest/json-ld-syntax/#node-identifiers
   and
   http://json-ld.org/spec/latest/json-ld-syntax/#grammar-node-object
Markus Lanthaler:  it MUST be either an IRI or BNode.
Gregg Kellogg:  In RDF Concepts, it MUST be an IRI. [scribe
   assist by Manu Sporny]
Gregg Kellogg:  but that's where we deviate from it. In SPARQL,
   it's an existential variable. [scribe assist by Manu Sporny]
Niklas Lindström:  There is a difference between an existential
   variable and a bnode. [scribe assist by Manu Sporny]
Gregg Kellogg:  Not really, a bnode is a non-distinguished
   variable. [scribe assist by Manu Sporny]
Gregg Kellogg:  For JSON-LD - we are implicitly allowing bnodes
   to be used as graph labels. [scribe assist by Manu Sporny]
Manu Sporny:  the concern I had was that each named graph is a
   pair, but since an IRI and BNode are nodes, it because something
   more like a "node class" mapped to a graph.
Gregg Kellogg:  From Concepts: "Each named graph is a pair
   consisting of an IRI (the graph name), and an RDF graph"
Niklas Lindström:  I talked with someone who thanked us for
   supporting BNode graph names.
Manu Sporny:  for the spec, change "BNode" to "BNode identifier"
Markus Lanthaler:  I'm worried about being inconsistent with the
   definition of node.
Manu Sporny:  but this is a string to graph mapping. It is a pair
   of name (string) to graph. A node is not a string, but a bnode
   identifier is.
Markus Lanthaler:  there's an issue of scopes then. The
   identifier is scoped to the document.
Niklas Lindström:  in RDF, you can't have graphs within graphs,
   and BNodes only exist within a graph.
Manu Sporny:  We're making use of BNOde identified graph, and
   need this in JSON-LD.
   … It's based on timestampping elements and using them to
   identify graphs, rather than pretending we're creating an IRI of
   the graph.
Niklas Lindström: .. urn:uuid:....
Manu Sporny:  we could use a hash identifier, but we tend to shy
   away from using new URNs when we can use a BNode.
Manu Sporny:  we don't like UUIDs, because they look like
   garbage.
Niklas Lindström:  I find BNodes useful, but BNode ids not so
   much.
   … I only use BNodes for compound values, and occasionally,
   when I _really_ don't know the ID.
Manu Sporny:  if we add them in here, we push the conversation
   forward.
Markus Lanthaler:  we did discuss the differences already.
Niklas Lindström:  if there's a good theoretical issue, it would
   be good to have in an explicit document.
Manu Sporny:  so ask what the theoretical reason to not use BNode
   identifiers for graph names.

ACTION: Write e-mail to RDF WG asking why blank node identifiers can't
be used for graph names and predicates.

Manu Sporny:  the last change is terminology about saying a node
   is either a resource or a value.
Markus Lanthaler:  I think we should remove "resource", as it
   confuses things.

Topic: Context via HTTP Link Header

Manu Sporny:  Let's quickly bike-shed the name of this section.
Markus Lanthaler: Transforming JSON to JSON-LD
Markus Lanthaler: Referencing contexts from JSON documents
Markus Lanthaler:  I think many people have JSON and would like
   to transform to JSON-LD if it doesn't require large changes.
Manu Sporny:  I really like Transforming JSON to JSON-LD [scribe
   assist by Manu Sporny]
Niklas Lindström:  is "transforming" the right idea?
The group decides that "Interpreting JSON as JSON-LD" strikes the
   right balance.

Topic: IANA parameters

Manu Sporny:
   http://json-ld.org/spec/latest/json-ld-syntax/#iana-considerations
Manu Sporny:  The major issues were the optional parameters. We
   had "form" and "profile"
   … We used to have compact, but it was non-deterministic. Now
   it is deterministic.
   … I think "form" needs to have values of "expanded" and
   "compacted".
Markus Lanthaler:  we didn't have it, as it didn't really mean
   anything.
   … This is related to the issue I raised. Do we really need to
   parameter, or can we embed within the document.
Niklas Lindström:  or for content negotiation.
Markus Lanthaler:  you can do the same with profile, buy just
   minting a new IRI.
Niklas Lindström:  should we then mint some IRIs for the forms
   we've mentioned?
Gregg Kellogg:  The purpose for 'form' is so that people can know
   the format of the document w/o processing it. [scribe assist by
   Manu Sporny]
Markus Lanthaler: We minted http://www.w3.org/ns/json-ld#context
   to reference a context
Niklas Lindström: .. e.g.
   profile=http://json-ld.org/profile/expanded+flattened ...
Manu Sporny:  proposal to get rid of form and encode within
   profile.
   … But, I think the prose around profile is confusing. I
   thought it was in case we had a schema which restricted the data.
Markus Lanthaler:  the profile uses an identifier to describe
   some constraints or conventions used within the document, and
   mark the document with those conventions.
Manu Sporny:  what about a link to a JSON schema?
Markus Lanthaler:  the consumer must understand what the IRI
   means, so if the consumer knows about schemas, it could use it.
Niklas Lindström:  I'm mostly thinking about content negotiation
   scenarios.
Manu Sporny:  So get rid of form? Then we'd need the following
   two IRIs: http://www.w3.org/ns/json-ld#expanded
   http://www.w3.org/ns/json-ld#expanded-flattened ? [scribe assist
   by Manu Sporny]
Markus Lanthaler:  you could specify in profile that you wanted a
   specific vocabulary.
Niklas Lindström:  shouldn't the IRI be opaque?
   … You need to link to it or have it in another link header.
   … I wonder if it's good to define form to use the tokens
   "expand, compact", with or without "flattened".
   … Gives four variations.
Manu Sporny: okay, proposals then -
   http://www.w3.org/ns/json-ld#expanded
   http://www.w3.org/ns/json-ld#compacted
   http://www.w3.org/ns/json-ld#expanded-flattened
   http://www.w3.org/ns/json-ld#expanded-compacted
Manu Sporny:  those four, with either using "-" or "+" as
   separators.
Niklas Lindström:  they might not need to be IRIs.
Manu Sporny:  using IRIs allows other people to add their own
   profiles. Otherwise, we'd need a registry.
   … The profile mechanism allows anyone to define their own.
   … If they want to add a JSON schema, they can mint a new IRI
   for every one they expose.

PROPOSAL: Remove 'form' from the optional parameters for
   application/ld+json. Add four URL values for 'profile':
   http://www.w3.org/ns/json-ld#expanded
   http://www.w3.org/ns/json-ld#compacted
   http://www.w3.org/ns/json-ld#expanded-flattened
   http://www.w3.org/ns/json-ld#compacted-flattened

Manu Sporny: +1
Gregg Kellogg: +1
Markus Lanthaler: +1
Niklas Lindström: +0 (probably +1 but I haven't really considered
   the uses so)
David I. Lehn: +0

RESOLUTION: Remove 'form' from the optional parameters for
   application/ld+json. Add four URL values for 'profile':
   http://www.w3.org/ns/json-ld#expanded
   http://www.w3.org/ns/json-ld#compacted
   http://www.w3.org/ns/json-ld#expanded-flattened
   http://www.w3.org/ns/json-ld#compacted-flattened

Topic: Update on Algorithms

Manu Sporny:  Dave Longley been working on his implementation,
   which is now complete. He is currently combining the text that
   Markus and Gregg wrote and expanding on the problem and general
   solution statements for each algorithm. Some of the algorithms
   are being re-written, but in a way that flows better and in a way
   that matches his implementation. So, once he's done, we should
   have a good middle-ground between what Markus and Gregg had,
   better prose outlining the algorithms, and some simpler
   algorithms. [scribe assist by Manu Sporny]
Niklas Lindström: .. "When @graph is used in a document's
   top-level object which has no other properties that are mapped to
   an IRI or a keyword it is considered to express the otherwise
   implicit default graph."
Niklas Lindström:  my friend had a problem with this wording.
   … If I understand him, he wasn't sure it was enough to add
   @id; he wanted to make sure he had a named graph.
Manu Sporny:  The text is wrong, but let's try to fix it now.
   I'll make a change right after the call.

-- manu

-- 
Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
President/CEO - Digital Bazaar, Inc.
blog: Aaron Swartz, PaySwarm, and Academic Journals
http://manu.sporny.org/2013/payswarm-journals/
Received on Tuesday, 29 January 2013 21:10:18 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:25:53 GMT