15:49:52 RRSAgent has joined #json-ld 15:49:52 logging to https://www.w3.org/2018/08/17-json-ld-irc 15:49:53 rrsagent, set log public 15:49:53 Meeting: JSON-LD Working Group Telco 15:49:53 Chair: azaroth42 15:49:53 Date: 2018-08-17 15:49:53 Regrets+ tcole 15:49:53 Agenda: https://lists.w3.org/Archives/Public/public-json-ld-wg/2018Aug/0009.html 15:49:54 ivan has changed the topic to: Meeting Agenda 2018-08-17: https://lists.w3.org/Archives/Public/public-json-ld-wg/2018Aug/0009.html 15:51:22 regrets+ danbri 15:51:41 ajs6f has joined #json-ld 15:53:03 present+ 15:53:30 present+ 15:53:43 regrets+ dlongley 15:54:38 present+ 15:56:07 present+ Gregg_Kellogg 15:58:07 workergnome has joined #json-ld 15:59:16 azaroth has joined #json-ld 15:59:34 present+ 15:59:36 present+ Rob_Sanderson 16:00:33 regrets+ Tim_Cole 16:00:38 regrets+ Dan_Brickley 16:01:24 present+ 16:01:32 scribenick ajs6f 16:01:38 scribenick: ajs6f 16:01:42 alejandra has joined #json-ld 16:01:56 TOPIC: Approve minutes of previous call 16:02:09 link: https://www.w3.org/2018/json-ld-wg/Meetings/Minutes/2018/2018-08-10-json-ld 16:02:21 +1 16:02:22 +1 16:02:23 +1 16:02:24 +1 16:02:26 +0 16:02:30 present+ 16:02:34 +0 16:02:35 +1 16:02:36 +1 16:02:41 +1 16:02:42 jeff_mixter has joined #json-ld 16:02:44 RESOLVED: Approve minutes of previous call 16:02:46 present+ Benjamin_Young 16:02:53 present+ 16:03:01 TOPIC: Announcements 16:03:16 azaroth: TPAC, as usual. 16:03:33 ivan: Face-to-face planning documents are currently practically empty 16:03:44 link: https://www.w3.org/2018/json-ld-wg/Meetings/F2F/2018.10.Lyon 16:04:05 ivan: we have a Google doc waiting for ideas to discuss 16:04:31 ivan: add whatever you think, chairs will prioritize and sort 16:05:18 ivan: our problems will not be culinary 16:05:44 ivan: do register if you are coming, so that organizers can get the logistics right (meeting rooms, etc.) 16:05:56 ivan: ten or twelve registered now, more would be good 16:06:06 azaroth: many requests for observer status 16:06:20 ivan: up to us how to play that (observer status) 16:06:42 ivan: Only two months away! 16:06:53 zakim, who is here? 16:06:53 Present: ivan, simonstey, ajs6f, Gregg_Kellogg, dlehn, Rob_Sanderson, workergnome, alejandra, Benjamin_Young, jeff_mixter 16:06:56 On IRC I see jeff_mixter, alejandra, azaroth, workergnome, ajs6f, RRSAgent, Zakim, simonstey, ivan, gkellogg, dlongley, bigbluehat, ChristopherA, dlehn 16:07:15 TOPIC: Introductions 16:07:16 azaroth: new folks here, so we can do introductions 16:07:56 azaroth: co-chair w/ bigbluehat, long-standing involvement with cultural heritage domain, many specs 16:08:35 ivan: Ivan Herman, W3C team contact for this WG, was once Semantic Web activity lead, now doing more digital publishing. part of RDF WG when JSON-LD 1.0 came out 16:08:55 simon: with WU of Economics and Business, SHACL and other groups 16:08:55 scribenick: azaroth 16:09:23 ajs6f: Adam Soroka, Apache Software Foundation (Jena) also another hat of the Smithsonian Institution, interested in cultural heritage 16:09:29 scribenick: ajs6f 16:09:30 scribenick: ajs6f 16:10:04 gkellog: edited the 1.0 doc, into JSON-LD from the beginning, and editor for CG specs 16:10:18 dlehn: with Digital Bazaar 16:10:41 workergnome: also from J. Paul Getty Trust, interested in consuming JSON-LD 16:11:17 alejandra: Coming from Oxford, uses JSON-LD and other SW tools, involved with W3C Dataset Exchange WG 16:11:44 bigbluehat: with John Wiley, co-chair with azaroth, also part of Web Publications WG, 16:12:12 jeff_mixter: with OCLC, interested in participating in various LD WGs 16:12:18 TOPIC: Issues 16:12:24 SUBTOPIC: @type related issues 16:12:27 chair: bigbluehat 16:12:38 https://github.com/w3c/json-ld-api/issues/4 16:12:40 link: https://github.com/w3c/json-ld-api/issues/4 16:13:19 q+ 16:13:23 ack gkellogg 16:13:25 bigbluehat: The issue is "Relax the colliding keywords constraint for @type #4". No obvious reason has been raised not to do this. 16:13:50 gkellogg: this was wrapped up in the general issue of multiple aliases for keywords 16:14:01 ... use case: set the container for @type to @set 16:14:15 ... which would allow it to always compact to an array 16:14:20 q+ 16:14:49 ... wouldn't want to reassign @type to something other than IRI 16:15:09 ack azaroth 16:15:28 azaroth: related to #34 16:16:00 ... the coverage example in the issue could be solved by allowing @type to be aliases w/i scoped contexts but not at the top level 16:16:08 s/aliases/aliased 16:16:36 q+ 16:16:46 ack gkellogg 16:16:50 ... having it aliased "one step down" not globally would make the resolution deterministic 16:17:05 gkellogg: that wouldn't resolve the collision unless the original alias was also removed 16:17:08 +1 to gkellogg 16:17:32 ... we have no other case where the rules for scoped contexts are different than general rules for contexts 16:17:34 {"type": null, "profile": "@type"} 16:17:35 g+ 16:17:40 q+ 16:18:05 ack ajs6f 16:18:16 scribenick: azaroth 16:18:42 ajs6f: Quickly agree and emphasize that if we do that, we're making a change to treat scoped contexts differently from others 16:18:45 ... that's a big thing! 16:19:01 ... suddenly changes a lot of implementations. So should be very concious of what we're doing. 16:19:02 q+ 16:19:05 ack gkellogg 16:19:09 scribenick: ajs6f 16:19:26 gkellogg: is also worth revisiting the idea of multiple aliases on keywords 16:19:51 q+ 16:19:53 ack bigbluehat 16:19:57 gkellogg: its a judgement call-- relaxing doesn't introduce incompatibility with 1.0 16:20:21 ... 1.0 has a prohibition on multiple aliases to keywords 16:20:35 ... if we relax that, we aren't invalidating any extant 1.0 material 16:20:49 ... we're just not complaining in places where we previoiusly would have 16:21:01 azaroth: why was the restriction introduced to begin with? 16:21:35 gkellogg: It's gone out of my head why, at the moment 16:21:59 ... was really thinking about the @type container @set use case 16:22:08 q+ 16:22:09 bigbluehat: give this a bit more time? 16:22:14 ack ajs6f 16:22:16 ack azaroth 16:22:45 azaroth: shall we get in touch with the original issue creator and ask whwether scoped aliases would solve his problem? 16:22:54 s/whwether/whether 16:23:03 ... unless someone else knows of use cases for this issue? 16:23:49 PROPOSAL: Propose scoped contexts as solution to original use case and determine if that is sufficient 16:23:53 +1 16:23:54 +1 16:23:58 +1 16:24:00 +1 16:24:01 +1 16:24:04 +1 16:24:14 bigbluehat: lots of these issues have a lot of history 16:24:21 bigbluehat: okay to delve into that 16:24:37 bigbluehat: don't be afraid to stop the bus to make sure everyone is still on baord 16:24:42 s/baord/board 16:24:43 +1 16:24:48 +1 16:24:50 +1 16:24:50 RESOLVED: Propose scoped contexts as solution to original use case and determine if that is sufficient 16:24:58 SUBTOPIC: @type as @container:@set? https://github.com/w3c/json-ld-syntax/issues/34 16:25:14 link: https://github.com/w3c/json-ld-syntax/issues/34 16:25:29 gkellogg: this was a reason to allow repeated aliasing for keywords 16:25:38 ... in this case to alias the keyword @type 16:25:43 q+ 16:25:53 ... not to change its identity, just the container treatment 16:26:11 ... e.g. to @set. Of course, some values wouldn't be valid here, like @list 16:26:26 ... might want to constrain that. shouldn't be a problem with other keywords 16:26:37 q+ to explain surface syntax use case 16:26:43 ack workergnome 16:26:59 workergnome: examples for both @type and @context are useful 16:27:18 ... we hit this while trying to support objects that are both IIIF and CIDOC/CRM 16:27:34 ... objects with multiple rdf:types 16:27:47 CIDOC/CRM - http://www.cidoc-crm.org/ 16:27:49 ... then our documentation gets very complex to account for multiple possible shapes. 16:28:06 IIIF - http://iiif.io/ 16:28:14 ... the processor has to look for both a string or an array 16:28:17 q? 16:28:19 ack ajs6f 16:28:20 You can't compact to: "@type": ["Manifest"] or "@context": ["http://iiif.io/api/presentation/2/context.json"] 16:28:22 ack azaroth 16:28:22 azaroth, you wanted to explain surface syntax use case 16:28:23 ... so this would make that work easier 16:28:46 azaroth: basically, you can't compact to @type as a single item in a list 16:28:58 q+ to ask about API level configs 16:29:20 ... having the capacity for both @context and @type would be valuable 16:29:27 q+ 16:29:33 ack bigbluehat 16:29:33 bigbluehat, you wanted to ask about API level configs 16:29:36 ... seems very reasonable for @type 16:29:57 bigbluehat: there is a config option for at least some JSON-LD processors to force things into an array when compacted 16:30:05 q+ 16:30:11 ack ivan 16:30:15 ... could that be brought to an API parsing level, and not a syntactic level 16:30:19 q+ to disagree that it's API level :) 16:30:26 ivan: feeling a bit lost! 16:31:08 azaroth: what we're suggesting is not illegal in 1.0, it just can't be compacted to 16:31:22 q+ to discuss compactArrays option 16:31:23 ivan: the difficulty here is when compacted, not the original syntax? 16:31:31 ... an API-level problem 16:31:57 ... if I have an author who doesn't know or care about the spec, what can she write down than is valid 16:32:04 s/than/that 16:32:10 q+ to not disagree any more :D 16:32:15 azaroth: I agree that it is an API problem 16:32:32 ack azaroth 16:32:32 azaroth, you wanted to disagree that it's API level :) and to not disagree any more :D 16:32:35 ivan: mod'ing the context for the purpose of the APIs-- I have a disconnect 16:33:22 azaroth: the result of the compaction algorithm has a single class in an array 16:33:35 ... so we are really making @type be consistent with all the others 16:33:52 ivan: any exceptions that are not justified are WRONG! 16:34:13 azaroth: again, an API-level thing. you should be able to spec in the syntax which of the two options you want 16:34:26 q? 16:34:32 ... it's a question of the compaction algo and how we signal to it which of the two possible things to do 16:34:33 ack gkellogg 16:34:33 gkellogg, you wanted to discuss compactArrays option 16:34:40 compactArrays 16:34:40 If set to true, the JSON-LD processor replaces arrays with just one element with that element during compaction. If set to false, all arrays will remain arrays even if they have just one element. 16:35:06 gkellogg: the "compact arrays" option in the API: if set to false, all values will be represented as arrays 16:35:21 ... don't know if current alogirthms do that for contexts, but arguably they should 16:35:35 q+ to ask about compaction from triples 16:35:36 +1 to adding these config options to the playground 16:35:40 ... playground doesn't expose these options. that's an issue for us to take up with json-ld.org 16:36:27 ... the reason to set @type as container @set is to make the use of arrays uniform, but if the option compactArrays already handles that 16:36:37 ... then let's not complicate the algorithms to do the same thing 16:36:41 +1 to considering weight! 16:37:08 ... wrt to @type vs @context, you cannot alias @context in a JSON-LD for obvious bootstrapping reasons 16:37:16 ack azaroth 16:37:16 azaroth, you wanted to ask about compaction from triples 16:38:02 azaroth: if I have a bunch of triples from (say) a triplestore than describe a single class, can gkellogg explain how to get to JSON-LD with an array of types 16:38:11 \me Are the options required for implementations? 16:38:21 gkellogg: let's take a single triple, set compactArrays = false, you should get that. 16:38:36 ... not just for @type, for anything 16:38:52 s/\me Are the options required for implementations?// 16:38:54 azaroth: how does that interact with @container @set 16:38:56 +q 16:39:17 ack workergnome 16:39:22 gkellogg: if compactArrays=true (the default), then it is overridden by @container @set, if false, @container @set is irrelevant 16:39:35 workergnome: is compactArrays required? 16:39:43 q+ 16:39:44 gkellogg: normative/required 16:39:47 q+ to ask about the normativeness of the API 16:39:55 ... and we have good coverage in the test suite 16:40:11 ... might be good to do a sweep and make sure we're getting all the combinatorics 16:40:27 compaction tests fwiw https://json-ld.org/test-suite/#Compaction 16:40:35 ... we might not be getting every possible result in an array right now 16:40:39 q+ to ask if anyone has use case for mixed situation 16:40:48 workergnome: might be good to add more info about API options to the documentation 16:41:02 ... only ever seen such docs in the docs for given impls. 16:41:12 ... which could lead people to assume that they are impl-specific 16:41:19 ... especially since the playground doesn't expose them 16:41:41 gkellogg: I have a distiller that exposes them, could use that to expose that in the playground 16:41:42 ack dlehn 16:42:16 dlehn: the compactArrays option will cover everything, @type @container @set is much more controllled/specific 16:42:22 compact arrays would prevent: {"property1": "only ever one value", "property2": ["sometimes multiple values"]} 16:42:34 ? 16:42:39 ack bigbluehat 16:42:39 bigbluehat, you wanted to ask about the normativeness of the API 16:42:45 ... as far as options on the playground, been thinking about that but haven't gotten around to it... help wanted! 16:43:11 bigbluehat: the normativeness of the API has come up e.g. with Activityhub (sp?) 16:43:35 ... one of the stones thrown in that conversation was that "JSON-LD hasn't got a normative API" 16:43:50 ... what I found was from the CG specs, and not connected with JSON-LD 1.0 16:44:06 gkellogg: the WebIDL that describes the API has been part of the docs from the beginnig 16:44:33 ... the API is written using "promises", which is really a JS-land feature 16:45:43 ... the processing steps for "compact" first discuss "expanding", which isn't even in that document 16:45:57 ... anything passing the test suite has to make use of that aspect of the API anyway 16:46:21 bigbluehat: the "promises" thing also came up in that conversation, so if there's another way... 16:46:35 gkellogg: It was important that the API could be asynch, previously we tried a callback style 16:47:00 ... the API has always been very JS-centric. believe that to be true of all WebIDL use at W3C 16:47:02 q? 16:47:06 ack azaroth 16:47:06 azaroth, you wanted to ask if anyone has use case for mixed situation 16:48:13 azaroth: when I first tried to do the #type stuff, I tried to use compactArrays, but when some values can be 1 or more, and some can be 0..1, compactArrays make them all into arrays 16:48:22 ... which is not what was wanted a 16:48:33 q+ 16:48:35 ack gkellogg 16:48:37 ... so there is still a use case here, in spite of compactArrays 16:49:10 gkellogg: would support a narrowly-worded resultion that specifically allows aliases for @type, for which the only thing that can be set is @container and the only value 16:49:17 ... to which it could be set would be @set. 16:49:29 ... and an alias of that type would have the same restricitons 16:49:43 azaroth: that meets the use case without overstepping 16:49:52 PROPOSAL: @type (or an alias of it) can be set to be only a @container, and have only the value of @set 16:49:57 +1 16:49:57 +1 16:49:58 +1 16:50:01 +1 16:50:02 +1 16:50:02 +1 16:50:02 +1 16:50:39 RESOLVED: @type (or an alias of it) can be set to be only a @container, and have only the value of @set 16:50:39 ivan: need to close off the question for @context 16:50:57 PROPOSAL: @context will not be changed to allow specification of being always an array 16:50:59 +1 16:50:59 ... @context is so different from anything else... 16:51:03 +1 16:51:05 +1 16:51:05 +1 16:51:06 +1 16:51:07 ... would be very dangerous to touch it 16:51:14 +1 16:51:19 +1 16:51:34 RESOLVED: @context will not be changed to allow specification of being always an array 16:51:40 +1 but fine to reraise issue if there are good use cases 16:52:07 ivan: yes, we can reopen 16:52:09 SUBTOPIC: Allow processing model of @type to be customized #7 16:52:16 https://github.com/w3c/json-ld-api/issues/7 16:52:57 gkellogg: @type is different, has a different processing model 16:53:19 ... some complaints about this, requests to change that so that @type uses a diff processing model 16:53:29 +1 to wontfix 16:54:02 Chair: azaroth 16:54:12 azaroth: original issue has an example of what happens now 16:55:21 azaroth: is there an ambiguity here? 16:55:47 gkellogg: if you are expanding a bare word "foo", how you expand depends on the presence of an @vocab 16:55:57 ... but not @type 16:56:10 ... it being common to define types themselves within the document 16:56:20 ... so relative IRIs are really useful there 16:56:45 ... how to process @type is defined by the spec itself, not by the context of a given doc 16:57:02 ... opening that up could introduce injection attacks via the context, 16:58:32 azaroth: the result that the original requestor wanted, could be done by taking out @vocab and defining individual entries 16:58:38 ... they just want to shorten that up 16:58:48 gkellogg: yep, and could also be done via scoped contexts 16:58:51 q? 16:59:25 q+ 16:59:30 ack ajs6f 16:59:43 scribenick: azaroth 16:59:54 ajs6f: If we do this, we need to offer various solutions in examples in the specs 17:00:01 gkellogg: A best practices document 17:00:04 ajs6f: Exactly! :) 17:00:08 scribenick: ajs6f 17:00:11 q? 17:00:54 PROPOSAL: close #7 wontfix, as the use case can be accomplished with longer, scoped contexts and the precedence has other ramifications 17:00:56 +1 17:00:57 +1 17:00:58 +1 17:01:01 +1 17:01:01 +1 17:01:01 +1 17:01:03 +! 17:01:10 s/+!/+1 17:01:42 workergnome_ has joined #json-ld 17:01:54 +1 17:01:59 RESOLVED: close #7 wontfix, as the use case can be accomplished with longer, scoped contexts and the precedence has other ramifications 17:02:33 https://waffle.io/w3c/json-ld-wg 17:02:45 rrsagent, draft minutes 17:02:45 I have made the request to generate https://www.w3.org/2018/08/17-json-ld-minutes.html ivan