16:36:55 RRSAgent has joined #json-ld 16:36:55 logging to https://www.w3.org/2019/01/18-json-ld-irc 16:36:56 rrsagent, set log public 16:36:56 Meeting: JSON-LD Working Group Telco 16:36:56 Chair: azaroth 16:36:56 Date: 2019-01-18 16:36:56 Agenda: [https://lists.w3.org/Archives/Public/public-json-ld-wg/2019Jan/0005.html](https://lists.w3.org/Archives/Public/public-json-ld-wg/2019Jan/0001.html)/topic Meeting Agenda 2019-01-18: [https://lists.w3.org/Archives/Public/public-json-ld-wg/2019Jan/0005.html](https://lists.w3.org/Archives/Public/public-json-ld-wg/2019Jan/0001.html) 17:00:07 pchampin has joined #json-ld 17:00:11 present+ 17:00:35 present+ Gregg_Kellogg 17:00:36 present+ 17:00:42 present+ 17:00:57 present+ 17:01:38 present+ dlongley 17:01:51 present+ dlehn 17:02:10 workergnome has joined #json-ld 17:02:51 bigbluehat has changed the topic to: Meeting Agenda 2019-01-18: https://lists.w3.org/Archives/Public/public-json-ld-wg/2019Jan/0005.html 17:03:03 TOPIC: scribe selection 17:03:22 present+ Jeff_Mixter 17:03:51 scribenick: gkellogg 17:04:12 ACTION: dlehn to update the playground instead of scribing 17:04:23 jeff_mixter has joined #json-ld 17:04:27 present+ 17:04:35 TOPIC: Approve the minutes of the last call 17:04:50 PROPOSAL: Minutes of the last call are approved ( https://www.w3.org/2018/json-ld-wg/Meetings/Minutes/2019/2019-01-11-json-ld ) 17:04:51 +1 17:04:52 +1 17:04:54 +1 17:05:01 +1 17:05:07 +1 17:05:12 q+ 17:05:12 +1 17:05:21 RESOLVED: Minutes of the last call are approved ( https://www.w3.org/2018/json-ld-wg/Meetings/Minutes/2019/2019-01-11-json-ld ) 17:05:28 scribenick: azaroth 17:05:44 gkellogg: There's a github user called @vocab who gets notified from minutes 17:05:50 ivan: Don't think it's from the minutes 17:06:03 ... what triggers is if it's ... oh ... the transcript 17:06:08 ivan: it’s triggered by something in the comments. 17:06:10 bigbluehat: Doesn't matter if it's robot or typed 17:06:16 scribenick: gkellogg 17:06:34 … If we can do that in the minutes, that would help. 17:06:36 s/@vocab/`@vocab`/ 17:07:08 … I’ll either do it by hand, or try to update the software. 17:07:38 azaroth: bigbluehat is keeper of the software stack, so he might note that. 17:08:38 TOPIC: Logistics 17:09:40 azaroth: I’ve reached out to Folger a couple of times to confirm that we can use the space, and they haven’t yet responded. I believe that everything’s fine, but I haven’t yet canceled the meeting space at Dupont circle. 17:10:21 … Eric, contact at Folger, needed to validate with their events people, but we havne’t gotten the final word, yet. 17:10:45 ivan: I see a mail from Sophie, who has confirmed it. 17:11:42 azaroth: So, we’ll definitely be there, and I’ll let Dupont know. 17:12:00 ACTION: azaroth to update the web page 17:14:11 azaroth: There are several places near the Folger we can go for dinner. 17:15:04 TOPIC: Issues - Sealed Contexts 17:15:14 Github issue: https://github.com/w3c/json-ld-syntax/issues/20 17:15:48 Related issues: https://github.com/w3c/json-ld-syntax/issues/98 and https://github.com/w3c/json-ld-syntax/issues/108 17:15:56 azaroth: We want to have it such that contexts that are processed after sealed contexts are unable to change the definition of terms. 17:16:30 … So, if you see something like “foo” in the context, you can be confident of its meaning from the sealed context. 17:17:03 … There is also the desire to “unseal” sealed terms. dlongley is champion from Credentidals WG. 17:18:06 dlongley: THe main reason for the feature is that there are a number of specifications that add prose to text about order of contexts, and that you can extend the context, but may not override terms. There’s no mechanism to inforce this. 17:18:35 An example of such language: https://iiif.io/api/presentation/2.1/#linked-data-context-and-extensions 17:18:37 … People sometimes don’t use JSON-LD processors, and could interpret the data differently then those using JSON-lD procesors. 17:19:19 q+ 17:19:21 And: https://iiif.io/api/presentation/3.0/#45-linked-data-context-and-extensions 17:19:30 … The other issue is related: we want a base context to define terms, and callout an area where you can clear out the sealed contexts. You could use a scoped context to define a new scoped context for whatever is under that term. 17:19:48 q+ 17:19:53 ack gkellogg 17:19:54 q- 17:20:00 ack pchampin 17:20:06 q+ 17:20:16 q+ to +1 the issue with refs above 17:20:30 present+ workergnome 17:20:49 pchampin: I’m not sure I understand the use case for allowing people to unseal the context. My understanding is that, in some vocabularies, a term is an extension point, so that below that term the sealed context shouldn’t apply. 17:20:55 q+ to +1 the issue with refs above and give iiif/annotation unsealing case 17:21:21 … I’d understand the case where it’s always cleared, but not where it “could be” 17:21:34 dlongley: Yes, it would be a clean-slate by deinition. 17:21:49 https://w3c.github.io/web-ledger/ 17:22:04 https://github.com/digitalbazaar/jsonld-patch/tree/implementation 17:22:17 … The case for unselaing is used in web ledger, which allows you to store arbitrary data, and has know knowledge of being in a ledger. 17:22:39 q+ 17:23:17 … In the case of json-ld patch, you want to be able to update arbitrary values in a document, in particular, if you want to be able to digitally sign patches. 17:24:06 ack bigbluehat 17:24:12 … You could use a scoped context for “value” to clear the context. It’s the case that you want a clean slate and allow users to override the context using embedded or scoped oontexts. 17:24:57 bigbluehat: Conceptually, this feels like “important!” in CSS, to not allow things to be overridden. 17:25:46 q+ 17:25:50 … I think dlongley’s point about how specs are written in the last couple of years is in play in so many places that a sealing mechanism is important. 17:26:04 q+ to say that it's important to use BOTH sealing and keep the existing cascading order we have for the use case i just described with json-ld-patch, for example 17:26:09 ack workergnome 17:26:42 q+ to say no, that won't help with digital signing, it will be worse 17:27:00 workergnome: We talked about JSON literals before, could that be a way to handle content that is not associated with the context? 17:27:04 ack dlongley 17:27:04 dlongley, you wanted to say that it's important to use BOTH sealing and keep the existing cascading order we have for the use case i just described with json-ld-patch, for example 17:27:07 ... and to say no, that won't help with digital signing, it will be worse 17:27:24 dlongley: We looked at that, but it ends up being much more difficult, because of how signing works. 17:27:59 … You’d end up having to canonicalize the JSON, and it becomes a mess. It avoids pitfalls where we want to avoid cauing everything to be marked as a JSON literal. 17:28:01 ack azaroth 17:28:01 azaroth, you wanted to +1 the issue with refs above and to +1 the issue with refs above and give iiif/annotation unsealing case 17:28:45 azaroth: In IIIF, we have the same wording, but it puts the contexts at the end, rather than the beginning, but we do want to have extension points. 17:29:44 … Similarly, we use language maps, annotations uses string, we want those to be used together. 17:29:54 q? 17:29:57 ack gkellogg 17:30:05 scribenick: azaroth 17:30:25 gkellogg: Having something that prevents you from saying `@context` None would be inadvisable 17:30:34 ... it does what people have asked for to create the clean slate 17:30:51 ... it requires that values for terms to have their own context, so would need to be explicitly set 17:31:04 ... is there expectation about changing the default content is up higher. 17:31:31 ... If Annotations defines a term, `data`, and you want to unseal it. You add null as a scoped context 17:32:07 q+ to respond to gregg 17:32:11 ... If you want to have the data in schema.org in `data`, you could do it with a scoped context that's an array with null as the first entry, but it's sealed 17:32:17 ... so the context needs to unseal itself 17:32:20 q? 17:32:22 ack ivan 17:32:27 scribenick: gkellogg 17:33:09 q+ to suggest sealing per term, rather than per context 17:33:15 ivan: The useage of “sealed” seems to be streightforward. I wonder about unsealing only appears when we talk about embedded contexts, is that correct? 17:33:25 q? 17:33:29 ack dlongley 17:33:29 dlongley, you wanted to respond to gregg 17:33:33 … If I have an array of contexts it’s different than if I have an embedded context. 17:35:04 q+ to suggest sealing per term, rather than per context / qn about redefinition re scoping only 17:35:22 dlongley: I think that the main use case where you set context to null, should then allow the scoped context, or via an embedded context. If you defined “data” in a sealed context, you’d then say `@context: null`, the second context could then define the term and introspects into the sealed context to see that the term can be overridden because it has a scoped context of null. 17:35:36 … I think we should keep the cascading order we have. 17:35:37 +1 to last in winning 17:35:39 q+ 17:35:50 q? 17:35:52 ack azaroth 17:35:52 azaroth, you wanted to suggest sealing per term, rather than per context and to suggest sealing per term, rather than per context / qn about redefinition re scoping only 17:35:56 … It can’t override terms, but can override scoping. 17:36:15 azaroth: I think we can’t change definition order either. 17:36:44 +1 to sealing individual terms 17:36:51 q+ 17:36:58 +1 to individual term sealing 17:37:02 (we've worked out some of these details in #98) 17:37:08 … what about sealing specific terms in a context? Then, we wouldn’t need to worry about unsealing different things. 17:37:44 … What would current processors due if they had a …? 17:37:44 q? 17:37:46 ack gkellogg 17:39:01 "data": {"@id": "foo:data", "@container": "@graph", "@context": null, "@sealed": true} => enables a later @context to define: "data": {"@context": "..."} 17:39:05 `"@context": [{"data": {"@id": "eg:data", "@sealed": false}}, {"data": {"@context": "http://example.org/data-context.jsonld"}}]}` 17:39:48 q+ 17:40:30 ack workergnome 17:40:38 q- 17:40:50 q? 17:41:00 q+ to ask about (possibly) restricting the "stuff inside" overriding to graph containers 17:41:08 workergnome: The only place I can unseal something is within the context that seals it. I can’t add something that unseals something that had previously been sealed. 17:41:19 q+ 17:42:13 q+ to clarify that sealed only seals _defined_ terms, not undefined terms 17:42:38 ack bigbluehat 17:42:38 bigbluehat, you wanted to ask about (possibly) restricting the "stuff inside" overriding to graph containers 17:43:05 -1 to restricting to graph containers 17:43:19 bigbluehat: I about how we can express this so that the behavior is obvious. 17:43:42 E.g. An LDP implementation for Annotations should not require a graph container to put an annotation in a page 17:43:47 … Perhaps something the scopes the sealing to the term, the content, or something else. 17:43:57 "@sealed": "@id" 17:44:04 "@sealed": "@context" 17:44:05 … Perhaps the `@sealed` could have different values? 17:44:21 q? 17:44:33 ack pchampin 17:44:50 maybe we can walk through the IIIF use case in DC next month 17:45:08 q+ pchampin 17:45:11 ack azaroth 17:45:11 azaroth, you wanted to clarify that sealed only seals _defined_ terms, not undefined terms 17:45:24 i think we can safely add "@sealed": "" (in a backwards compatible way) if we find that "@sealed": true is insufficient for use cases 17:46:31 azaroth: My understanding is that if you seal a context (or a set of terms), you’re only sealing the terms it defines. You could have a term outside that context can do whatever it wants, including override terms that would have come from an inherited context. 17:47:07 q+ 17:47:40 ` {"data2": {"@context": {"data": ... }}` 17:47:48 … If “data2” is defined in a separate context, and within that you define “data”, that could conflict with a sealed “data” term. 17:48:12 dlongley: If you tried to use that I would expect that to be an error. 17:48:44 q? 17:49:02 ack pchampin 17:50:17 pchampin: I’m not a fan of sealing or unsealing individual terms, saying `@sealed: false` would not be good. 17:50:34 q+ 17:50:58 ack jeff_mixter 17:51:53 jeff_mixter: What if someone want’s to just point at a different context and seal it, but you want to also import additional contexts, wouldn’t that lead to different errors or collisions? 17:52:09 q+ to say that this feature should actually help you make a proper context 17:52:27 -1 to sealing someone else's context 17:52:30 azaroth: I don’t think you can seal someone else’s context. 17:52:44 q? 17:52:47 ack ivan 17:52:55 q- 17:53:17 so sealing contexts is only within the context of the JSON-ld document? 17:53:24 ivan: Perhaps dlongley or someone else could come up witha strawman spec text that we can look at. We’re getting lost. 17:53:34 jeff_mixter: Yep. 17:53:34 https://github.com/w3c/json-ld-syntax/issues/98#issuecomment-443182908 and the last example of https://github.com/w3c/json-ld-syntax/issues/98#issuecomment-443241467 17:54:06 q+ to say coming up with test cases seems like a good idea 17:54:35 … These discussions in November we had a table to talk about different ways to seal, and this seems to give a core spec; if it can be written down, we may have something. 17:54:47 … If it becomes spagetti, we have a problem. 17:54:52 q? 17:55:13 q+ to volunteer to do first hack at the text and examples 17:55:15 ack dlongley 17:55:15 dlongley, you wanted to say coming up with test cases seems like a good idea 17:55:17 … We have the F2F in three weeks, so maybe we can have a goal to have a final resollution then. 17:55:40 dlongley: We’d also want test cases so we can experiment with test cases. 17:55:47 ack azaroth 17:55:47 azaroth, you wanted to volunteer to do first hack at the text and examples 17:55:57 … We intend to implement one way or another. 17:56:09 azaroth: I’m happy to contribute examples. 17:56:26 so this is not valid - { "@context": [{"@vocab": "http://schema.org/", "@sealed": true}]? 17:56:39 ivan: We can also use the wiki page. 17:56:43 q? 17:57:02 q+ 17:57:12 ACTION: azaroth to document simple input and expected processing of them 17:57:28 ACTION: dlongley to review azaroth's text and add further examples 17:57:31 +1 17:57:35 +1 17:57:36 ack jeff_mixter 17:58:45 the best sort of fun :S 17:58:50 s/the best sort of fun :S// 17:58:54 q+ 17:59:00 ack ivan 17:59:30 jeff_mixter: i think as a first cut of this feature you'd have to seal all of the schema.org terms yourself (defining them yourself in your own @context) 17:59:36 s/@context/`@context` 17:59:38 ivan: That’s discussed in #108; there was a syntax that might allow for that. 17:59:45 https://github.com/w3c/json-ld-syntax/issues/108#issuecomment-447629312 18:00:20 q? 18:00:22 ivan: I didn’t realize I was sealing it, but it could be done. I’m not sure we want to do that. 18:00:32 thanks everyone for the discussion! 18:00:42 azaroth: It’s been a useful discussion. 18:01:09 dlongley: I can probably dial into the F2F. 18:01:52 TOPIC: Adjourn 18:01:55 rrsagent, draft minutes 18:01:55 I have made the request to generate https://www.w3.org/2019/01/18-json-ld-minutes.html ivan