01:43:42 RRSAgent has joined #json-ld 01:43:42 logging to https://www.w3.org/2019/09/18-json-ld-irc 01:43:44 RRSAgent, make log public 01:44:06 wseltzer has joined #json-ld 01:44:13 rrsagent, make logs public 01:46:07 wseltzer has left #json-ld 01:46:17 Meeting: JSON-LD 1.1 Update 01:47:20 azaroth has joined #json-ld 01:52:16 koalie has joined #json-ld 01:52:23 RRSAgent, make logs public 01:52:27 koalie has changed the topic to: https://w3c.github.io/tpac-breakouts/sessions.html 01:52:30 koalie has left #json-ld 01:53:26 gkellogg has joined #json-ld 01:57:22 dom has joined #json-ld 02:02:51 azaroth has joined #json-ld 02:03:34 Zakim has joined #json-ld 02:03:42 zakim, this is json-ld 02:03:42 got it, azaroth 02:04:01 rrsagent, set logs public 02:05:59 scribenick: azaroth 02:06:10 present+ 02:06:20 gkellogg: Presentation about the updates for 1.1 02:06:44 ssstolk has joined #json-ld 02:07:33 ... after 1.0 release had a number of languishing issues 02:07:47 ... that didn't make the cut. We started a CG 3 or 4 years ago to do a draft of update 02:08:08 ... work culminated 2 years ago in Burlingame TPAC, WG was chartered 02:08:16 ... addressed some before WG, including indexing data 02:08:33 ... want to index into a set of objects based on the id of those objects 02:08:51 ... added a raft of new ways to use json objects 02:09:13 present+ 02:09:13 ... Anonymous graphs are used in verifiable credentials, so added ability to put properties in different graphs 02:09:28 ... nesting method in various JSON API, that put various properties under a non-semantic property 02:09:38 ... can put arbitrary depth using @nest 02:09:50 ... JSON-ld 1.0 didn't do recursive lists, which is 1.1 02:09:58 ... scoped contexts within a property or type 02:10:14 ... term definitions importing and then modifying with 1.1 features 02:10:24 ... more capabilities for framing, and a more robust, uniform way to match 02:10:26 ... added JSON literals 02:10:50 ... deprecated blank node properties, most notably in activitystreams context. Supported in 1.1 but marked for removal 02:10:58 vivien has joined #json-ld 02:10:59 tung_ has joined #json-ld 02:11:01 ... Normalized the way we extract json-ld from html 02:11:08 ... plus a variety of other features 02:11:09 kaz has joined #json-ld 02:11:28 present+ Vivien_Lacourba 02:11:28 ... Want to take advantage of the abstraction of the model to allow for alternative serializations such as YAML 02:11:44 ... in 1.1 there needs to be a version announcement: @version: 1.1 02:12:04 ... this will cause 1.0 processors to fail completely, so 1.0 processors will not process 1.1 contexts incorrectly 02:12:20 ... id maps -- indexed by the uri of the object. 02:12:26 ... [looks at example from spec] 02:12:40 ... Also have type maps, and graph maps 02:13:01 sander: Are the slides online so we can look at them? 02:13:23 slides https://json-ld.org/presentations/JSON-LD-Update-TPAC-2019/assets/player/KeynoteDHTMLPlayer.html 02:13:23 gkellogg: Graph containers -- use named graphs in rdf 1.1 without heavyweight syntax 02:13:47 ... Can put triples in a different graph, named by a blank node 02:13:56 ... property in the default graph that references the blank node 02:14:08 ... so BN in object position denotes the graph named by the same blank node 02:14:15 ... not exactly rdf 1.1, but is a common convention 02:14:47 ... Nested properties. See this often in the wild. Lots of features in 1.1 are to adapt to native JSON APIs. One such is putting properties into groups 02:15:08 ... e.g. specific labels within a label group, and the labels get folded up into the main resource semantically 02:16:26 jc has joined #json-ld 02:16:39 ... 1.0 allowed blank node vocabs to ease burden of people coming to -LD that didn't want to create vocabularies for everything 02:16:57 ... more common in RDF is to use a document relative term. 02:17:54 ... so now @vocab can be a relative URL based against the *document* URL, and thus that we can deprecate blank node properties due to this 02:18:04 ... slide 8 02:18:19 ... We're going through the changes section of the spec, btw 02:18:51 ... Recursive lists come from GeoJSON. Can say it in turtle (rdf:List of rdf:Lists), but couldn't in json-ld 1.0 02:19:08 ... So now any array inside an array that's a List is also a List 02:19:45 question: Can this be any depth? 02:20:04 gkellogg: Yes, any number of lists, in any position 02:20:32 ... did have some fancier versions requested, to have properties for the items, but that got very hairy 02:20:52 ... Scoped contexts -- the ability to define a context within a term within a context 02:21:08 ... if you follow a property to a term with a scoped context, that context comes into effect 02:21:38 ... If we go to a node that has foaf as a scoped context, then it becomes active instead of the higher node's context (e.g. schema.org( 02:21:51 ... can also do this on classes / types, not just properties 02:22:16 ... one of the concerns that came up is that some groups have just JSON interpretation, and important that semantics don't change in lower terms 02:22:34 ... so want to protect that name means something, even if other contexts are used 02:23:11 ... added @protected for terms, and if a downstream context tries to redefine a term, then it will raise an error 02:23:46 ... can only undo this if you have a property that defines a context of null, that wipes out the context. 02:25:08 (discuss extensions) 02:25:27 question: How to validate, with extensions? 02:25:38 gkellogg: Some ways to validate RDF such as shacl and shex that work here as well 02:25:56 ... I run a linter that follows the vocabularies and determines if they're consistent 02:26:22 mmccool: schema validators don't understand extensions but then misspellings can then be okay 02:26:35 bigbluehat: What for rdf validators? 02:26:45 mmccool: Not sure 02:26:54 dontcallmeDOM has joined #json-ld 02:27:02 ... need to meet up with the json schema guys 02:27:21 ... like the intro that it's JSON with added semantics. Happy to see the messaging 02:27:29 ... one thing that will help is a unified set of validation tools 02:27:39 ... want to connect this structural constraint with the semantic constraints 02:27:46 gkellogg: SHACL does do this. 02:28:05 bigbluehat: Constant confusion between json-schema and json-ld, which is apples and oranges 02:28:16 ... talking to the json-schema folks to go towards a CG 02:28:31 gkellogg: Will be going to CR soon, which will get more feedback 02:28:33 jc has joined #json-ld 02:28:36 ... still time to address things 02:28:50 mmccool: think -schema is important because it's used as a sub-schema 02:29:21 (discussion of IETF json-schema debacle) 02:30:02 ... Used in WoT, STF, and in open api 02:30:18 gkellogg: Anything that looks at structure to determine correctness can miss a lot of variations 02:30:23 ... semantic validation needs attention too 02:30:32 ... one of the reasons that we chose RDF as the data model 02:31:36 gkellogg: Imported contexts. Can import 1.0 contexts, and use it, but also add JSON-LD 1.1 features 02:32:00 ... Can fill in 1.0 gaps with this. Also for other things that we have not done, such as sub-resource integrity 02:33:20 (azaroth explains SRI use case) 02:33:54 mmccool: Frozen contexts that will never change. Don't want to require processing of a context, just as an identifier such that the processing can be cooked 02:34:04 ... ended up waffling a little and saying we might update for errors in the context 02:34:14 ... intent that version number in the URL would be fixed 02:34:44 gkellogg: Not a JSON-LD problem, it's a web problem generally. Other URI schemes that can help address. Advice is to use the document loader and fix the interpretation of the URIs there 02:34:51 ... e.g. never fetch a frozen document 02:35:08 mmccool: out of band a little, as opposed to in band. 02:35:21 bigbluehat: hashlink as well -- URI would indicate that it's cacheable 02:35:37 gkellogg: if you have a local copy you know you can always use it, and have several ways to get the content 02:35:43 jc has joined #json-ld 02:35:48 bigbluehat: can get via HTTP or IPFS or whatever 02:36:00 mmccool: Interesting in other contexts. 02:36:07 ... agree this is a web problem not JSON-LD 02:36:28 gkellogg: JSON literals. RDF/XML and RDFA had XML and HTML literals that aren't interpreted, so we added the same for JSON 02:36:50 ... Can put raw JSON that gets preserved in the RDF as a literal, in a canonical form 02:37:10 ... c18n is based on a draft spec but uses js capabilities for ordering and so on 02:37:37 mmccool: what about xml in json? 02:38:07 ... want the structure to be reflected, e.g. turn xml attributes into json properties 02:38:21 gkellogg: XML is complicated by several things :) 02:39:22 ... Included nodes. Recent feature. A way in an object definition to have a block of objects that go along with it. 02:39:35 ... from separate spec, JSON-API 02:40:05 ... Return current resource, plus all related ones. Has also helped in other ways as @graph can be used for identifying named graphs, and at the top level to have a set of objects 02:40:11 ... more consistent just to use @included 02:40:30 ... no property relationship to the top 02:40:55 ... Framing. There is no 1.0 Rec for Framing, but is widely used. Will be 1.1 framing in new Rec. 02:41:06 ... Adds a few capabilities, including order dependent embedding 02:41:20 ... removed requirements for lexical ordering. Embed once rather than embed last 02:41:29 ... support for named graphs in framing 02:41:39 ... would previously only frame the merged graph, now either merged or default 02:42:04 ... can match on ids. Specify a set of ids to match on, only possible in a frame for matching 02:42:12 ... thus match for objects with any of those URIs 02:42:18 ... can be used at lower levels as well 02:42:32 ... e.g. an empty object is a wild card 02:42:44 ... @included in frames, and for @reverse properties 02:42:56 ... better value matching, with wildcarding 02:43:10 ... or matching without an @type (for example) 02:43:38 ... HTML data block extraction spec. JSON-LD in HTML used since the beginning. Principle reason is schema.org use, in the script block with a type 02:43:47 ... have standardized that and added capabilities 02:44:11 ... set of types that can be applied. In media types can now ask for expanded form, or a frame etc. Can do that in a script tag too 02:44:20 ... with a parameter after the media type 02:44:37 ... investigated doing that for contexts but elected not to do that 02:44:41 they must be json-ld documents 02:45:02 ... but have added a way to do it with content negotiation and a link header, rel=alternate 02:45:08 s/they/... they/ 02:45:21 ... we prefer conneg but in static environments not always possible, thus the link header 02:45:55 ... If didn't have jsonld, can embed the reference, and a document loader will follow that link to find the right context doc 02:46:04 ... lightweight mechanism for documenting it 02:46:18 mmccool: looking at directories and core-link (?) format 02:46:36 ... notice you use alternate ... has a special meaning in other contexts 02:46:56 ... might need to find a new rel type 02:47:05 gkellogg: Would be document loader behavior 02:47:41 ... abstracted from json objects to maps, meaning the syntax doc goes to an internal represetnation such as what you would get for JS, and then lets us map out to other formats 02:48:11 mmccool: OCF had a lot of trouble with YAML. JSON quotes names used for keys, YAML does not. Some problems with certain characters not allowed in some places. Some round tripping issues 02:48:22 gkellogg: Should highlight that in the note 02:48:33 mmccool: Can I serialize, parse, reserialize and have the same thing 02:48:42 gkellogg: Also interest in binary, such as CBOR 02:49:08 ... question about literal features that aren't in JSON such as dates 02:49:15 mmccool: also different number precisions 02:49:26 ... extended json-schema for non-json native types such as lengths of numbers 02:49:31 ... may or may not cause the same problem 02:49:40 gkellogg: definitely caveat emptor here! 02:49:54 ... Will align with xsd: data types, so might need c18n algorithms 02:50:06 mmccool: internationalization? 02:50:17 ... text direction! 02:50:24 everyone: dedicated session for this :D 02:50:32 mmccool: We have a bandaid solution 02:50:45 Getting Text Direction into RDF https://w3c.github.io/tpac-breakouts/sessions.html#rdf-dir-literal breakout session this afternoon 02:50:46 gkellogg: We won't have an elegant solution, as RDF won't have it yet 02:50:57 ... blank node with a value property or something like that 02:51:21 mmccool: ease of use -- needs to be default text direction, like default language 02:51:41 gkellogg: Yes. Would be good to have @direction in JSON-LD. It's an RDF problem 02:52:10 mmccool: thing that motivates us is inferring from language is impossible. Doesn't always work and in small devices is painful 02:52:30 gkellogg: complete in june. CR in Q4, and we're ready in the next few weeks 02:52:40 ... playground is not fully up to date with the spec 02:52:49 ... (a bit of a problem at times) 02:52:52 gkellogg has joined #json-ld 02:52:54 ... ruby implementation is up to date 02:53:09 ... working on getting underlying JS implementation updated, as basis of the playground, in the next month or so 02:53:19 ... Call for implementations coming! 02:53:33 ... new implementations as well as updates to 1.0 implementations 02:53:41 mmccool: current implementations? 02:54:08 gkellogg: list of implementations on the site. 1.1 on track are ruby, js and python. Want to see Java. Others include C#, C and erlang 02:54:23 mmccool: C++ useful for embedded devices. 02:54:45 ... js might be okay if it uses a specific subset of features 02:55:24 bigbluehat: request semantics extracted in -js, as then you cut out a lot of security issues and dependencies 02:55:32 ... but still need to get them 02:55:46 gkellogg: if there's an interest, and bandwidth to contribute, a C++ implementation would be great 02:55:59 dave_raggett: testing? 02:56:11 gkellogg: close to accepting implementation reports. Have a full test suite. 02:56:20 ... available for anyone developing, thousands of tests 02:56:26 ... more implementations would be grat 02:56:44 ... Questions? :) 02:57:04 ssstolk: JSON literals very nice. Seeing in GIS sector prefer to use well known text type 02:57:30 ... states coordinates in a particular way. So JSON literals will help there. 02:57:42 dave: what kind of information do you have about usage? 02:57:51 ... a report to management sort of thing 02:58:17 gkellogg: web of things is a major use. Automotive. Hard to track. 02:58:26 mmccool: who would we like to be using it? 02:58:47 ... Have things converge, such as Open API. 02:59:11 gkellogg: There's lots of bias to overcome 02:59:22 bigbluehat: thankfully top people at open api are not opponents 02:59:32 ... you guys have started to map json-schema terms to a vocab 02:59:41 mmccool: json-schema as json-ld also a good target 03:00:03 gkellogg: talked about it a bit. Seems like an interest group? 03:00:23 draggett: CG or IG 03:00:33 gkellogg: There is a CG, which is dormant at the moment when the WG is done 03:00:42 ... but best form for advocacy? 03:00:59 draggett: CG would be good for advice. MDN is good for JS in the browser ... would those guys pick it up? 03:01:08 bigbluehat: json-ld going into chrome's lighthouse. 03:01:13 gkellogg: MDN would be nice 03:01:25 bigbluehat: From what dom has said, if you show up with content and willing to maintain it 03:01:35 ... then they're okay to include it 03:02:02 gkellogg: If google interested, esp given lighthouse inclusion, then have some resources maybe 03:02:19 bigbluehat: in context of integration, growing pattern to have an active CG with an active WG and run in tandem 03:02:37 ... rather than ebb and flow between the two 03:02:45 ... keeping in parallel would be good 03:03:02 gkellogg: Group is very close to CR. But have notes to do 03:03:30 bigbluehat: Figuring out what JSON-LD needs is a big part. applications of it is a different part 03:03:48 gkellogg: a cg might maintain a timeline, get input as to what to see on that, and use it to drive interest 03:04:04 ssstolk: DCAT? 03:04:33 gkellogg: JSON-LD widest RDF representation 03:04:45 gkellogg: for 1.0 it wasn't quite full rdf 1.1, but now it is 03:04:56 mmccool: upgrading applications to use 1.1? 03:05:09 gkellogg: schema.org to use 1.1 features would be very good :) 03:05:29 bigbluehat: schema.org user base is authors, not context folks. Not clear how search engines use it internally 03:06:06 ... need to push processing of the SEO driven content. Want to go to lighthouse rather than structure data testing tool 03:06:27 ... maybe merging pieces is one task of the CG 03:06:34 gkellogg: need to kickstart the CG again 03:06:43 ... should see people to step up :) 03:07:05 bigbluehat: could do a monthly call in the CG 03:07:13 TOPIC: Adjourn :) 03:08:02 rrsagent, draft minutes 03:08:02 I have made the request to generate https://www.w3.org/2019/09/18-json-ld-minutes.html azaroth 03:08:28 zakim, set log public 03:08:28 I don't understand 'set log public', azaroth 03:08:34 rrsagent, set log public 03:09:08 present+ gregg_kellogg 03:09:14 present+ Michael_McCool 03:09:21 present+ Dave_Raggett 03:09:25 present+ bigbluehat 03:09:30 present+ ssstolk 03:09:35 rrsagent, draft minutes 03:09:35 I have made the request to generate https://www.w3.org/2019/09/18-json-ld-minutes.html azaroth 03:11:02 azaroth has joined #json-ld 03:29:13 azaroth has joined #json-ld 03:30:11 azaroth_ has joined #json-ld 04:11:45 gkellogg has joined #json-ld 04:15:49 toyo has joined #json-ld 04:20:00 gkellogg has joined #json-ld 04:28:09 kaz has joined #json-ld 04:29:39 dontcallmeDOM has joined #json-ld 04:31:33 azaroth has joined #json-ld 04:43:59 dom has left #json-ld 05:04:13 azaroth has joined #json-ld 05:22:15 Zakim has left #json-ld 05:24:29 gkellogg has joined #json-ld 05:35:19 gkellogg has joined #json-ld 05:36:06 azaroth has joined #json-ld 05:37:13 azaroth has joined #json-ld 05:41:42 jc has joined #json-ld 05:42:16 jc has joined #json-ld 05:45:28 kaz has joined #json-ld 05:46:59 jc_ has joined #json-ld 05:49:38 jc has joined #json-ld 05:57:07 jc has joined #json-ld 05:59:56 vivien has left #json-ld 06:04:07 jc has joined #json-ld 06:16:05 jc has joined #json-ld 06:22:04 jc_ has joined #json-ld 06:24:27 jc has joined #json-ld 06:31:29 azaroth has joined #json-ld 07:33:57 azaroth has joined #json-ld 07:34:32 azaroth_ has joined #json-ld 07:39:24 jc has joined #json-ld 08:28:34 azaroth has joined #json-ld 08:35:47 jc has joined #json-ld 08:38:54 azaroth has joined #json-ld 08:40:17 jc has joined #json-ld 08:40:38 jc has joined #json-ld 08:41:16 gkellogg has joined #json-ld 08:51:14 jc has joined #json-ld 09:03:38 azaroth has joined #json-ld 09:04:27 jc has joined #json-ld 09:09:10 azaroth_ has joined #json-ld 09:20:17 jc has joined #json-ld 09:21:59 jc has joined #json-ld 09:28:50 jc has joined #json-ld 09:30:52 azaroth has joined #json-ld