00:04:32 RRSAgent has joined #json-ld 00:04:32 logging to https://www.w3.org/2019/09/19-json-ld-irc 00:04:33 rrsagent, set log public 00:04:33 rrsagent, this meeting spans midnight 00:04:33 Meeting: JSON-LD Working Group F2F in Fukuoka — First day 00:04:33 Date: 2019-09-19 00:04:33 Agenda: http://tinyurl.com/y34nfpfg 00:04:33 ivan has changed the topic to: Meeting Agenda 2019-09-19: http://tinyurl.com/y34nfpfg 00:04:34 Regrets+ 00:04:34 Chair: azaroth, bigbluehat 00:04:43 present+ 00:04:56 present+ 00:05:50 present+ 00:06:08 azaroth has joined #json-ld 00:06:08 present+ 00:09:05 azaroth has joined #json-ld 00:10:14 ttps://mit.webex.com/mit/j.php?MTID=m792442d12074490aa495ecaa0df1ff3a 00:10:16 https://mit.webex.com/mit/j.php?MTID=m792442d12074490aa495ecaa0df1ff3a 00:14:13 We hear you :) 00:16:14 scribe+ gkellogg 00:16:29 topic: Introductions 00:16:51 azaroth: I’m Rob, co-chair. Architect at J Paul Getty Trust 00:16:54 scribe+ 00:17:08 gkellogg: Gregg Kellogg, chief editor for the spec, and invited expert to the group 00:17:26 ivan: Ivan Herman, W3C staff contact, mostly in France 00:17:50 bigbluehat: Benjamin Young, co-chair, work for J Weily 00:18:37 scribejs, set tpk Duy-Tung Luu 00:18:39 s/J Weily/John Wiley & Sons, Inc. 00:18:51 guests+ tpk 00:19:03 tpk: Duy-Tung Luu, in data science and ML. I did a PhD in statistics. In my company, there is a web semantics project, so I came here ot lear. 00:19:15 … Canton Consulting 00:19:44 scribejs, set ssstolk Sanders Tolk 00:19:50 guests= ssstolk 00:19:54 ssstolk: Saunders Stolk, I work for Semmtech. 00:20:01 guests+ ssstolk 00:20:05 s/Saunders/Sanders/ 00:20:09 guests+ tpk 00:20:23 … We’re using LD for our clients to help in infrastructure to share information on buildings from design, building to maintanence. 00:20:34 … In NL near Shipol 00:20:49 azaroth: topic: Review of accomplishments 00:20:53 s/Shipol/Schiphol/ 00:21:02 TOPIC: Review of Accomplishments 00:21:21 bigbluehat: Virtual click-through slide deck 00:21:36 azaroth: We’re close to CR. There are three open issues. 00:22:04 pchampin: Pierre-Antoine Champin, an assoiate professor at Univ. Lyon. 00:22:26 … I’ve been on the WG for a year. My research is in SemWeb, also in RDF WG 00:22:35 … Also co-editor of the syntax doc. 00:23:02 azaroth: Three issues to consider, two this morning. 00:23:24 bigbluehat: This afternoon, we want to talk about string direction, which may bring in more outside visitors. 00:23:54 … Its of keen interest to a wide group; we thought it would be solved in RDF, but it may be on our shoulders. 00:24:53 ivan: Formally speaking, it may be worth adding an explicit issue, or reopening the old issue. #11 00:25:11 present+ 00:26:13 bigbluehat: version triggering is something to consider. 00:26:42 scribe+ bigbluehat 00:27:11 gkellogg: in most statements we do not include the nulls. one exception is JSON literals 00:27:27 ...but null is a valid JSON value, so there are reasons to keep them 00:27:48 ...pchampin pointed out a similar situation with strings, but that was an implementation issue 00:27:52 ...but it did help us find this 00:28:08 ...you can keep the `null` value currently by using the `@type: @json` 00:28:13 ...but in other cases we take it out 00:28:17 ...so we're at least inconsistent 00:28:27 ...it implies that there's some missing algorithm text 00:28:54 ...for preserving a key/value with a value of `null` 00:29:15 ...there are various options for preserving them 00:29:20 ...we could also decide not to 00:29:23 ...but I do think we can 00:30:13 ...if you expand it, and then re-expand it the `null` goes away...even when using the `@json` value type 00:30:42 issue: https://github.com/w3c/json-ld-syntax/issues/258 00:30:46 ...it's an editorial issue once we figure out how we want to handle it 00:30:50 ...because it's a lack of clarity 00:30:56 ...should be the work of an hour or two 00:31:39 azaroth: the question then is should the `null` be treated as a JSON literal null or should we remove the property 00:32:49 bigbluehat: Apache CouchDB and MongoDB (iirc) will remove keys set to `null` 00:32:59 azaroth: that's what this does in every other case...except the new `@json` type 00:33:45 ...I think it's more surprising for the `null` to go away if the type is `@json` than for it to stay around 00:34:38 ...but...do we want to still provide a way to remove the key/value? 00:34:49 ivan: why would we want to remove key/values? 00:34:54 bigbluehat: databases do it 00:34:59 azaroth: but this would be full statements 00:35:32 gkellogg: so most of the testing I've done was with numeric values and objects 00:35:42 q+ 00:36:08 ack pchampin 00:36:19 bigbluehat: is `null` on it's own a valid JSON value/document? 00:36:22 ...what would JSON.parse do? 00:36:25 gkellogg: it would keep it 00:36:45 pchampin: I'm playing around with the code right now, and gkellogg mentioned that re-expansion would get rid of it 00:36:55 ...I added the `@version: 1.1` 00:37:01 ...otherwise it doesn't work at all 00:37:15 ...and when I do it, it looks like we get an invalid value 00:37:47 gkellogg: part of the use of `null` is to eliminate contexts 00:38:28 ...you can certainly handle these by setting a 1.1 at the processor level--if the document itself doesn't set it 00:38:34 azaroth tests `JSON.parse("null")` in chrome, and the result is a real null 00:38:54 ...but you're right it could be restricted to 1.0-based processing 00:39:12 ...so we may need to update tests to use 1.1 mode 00:39:18 ...and test with expanded values 00:39:29 ...so setting the processing mode is probably the way to do it 00:42:13 PROPOSAL: WG believes that it is least surprising to process null as a JSON literal in this case, and not to remove the property in the internal representation, and thus the null should be preserved. 00:42:15 +1 00:42:18 +1 00:42:18 +1 00:42:21 +1 00:42:29 +1 00:42:42 RESOLVED: WG believes that it is least surprising to process null as a JSON literal in this case, and not to remove the property in the internal representation, and thus the null should be preserved. 00:42:43 +1 00:43:04 jc has joined #json-ld 00:43:09 present+ dlehn 00:44:16 Subtopic: keyword alias for `@id` and `@type` cannot be singly `@protected` 00:44:33 https://github.com/w3c/json-ld-syntax/issues/246 00:44:53 azaroth: if you alias `@type` to `type` it can still be a set 00:47:54 ...however, using `@protected` on an object-based term definition will not protect the `id` aliasing 00:48:07 ...so my proposal is that we change `@protected` to be a legal keyword for keyword aliases 00:48:59 gkellogg: does `@protected` protect the `@type` based aliasing? 00:49:27 azaroth: [adds more examples to 246] 00:50:27 ivan: the examples don't show any reason for the `@protected` 00:51:17 azaroth: [fixes examples] 00:51:32 q+ 00:52:29 q- 00:53:43 azaroth: [reads text from 4.1.5] 00:53:51 ...[reads text from 4.3.3] 00:55:10 gkellogg: looks like the API is correct 00:55:16 azaroth: ah, so they're out of sync 00:55:29 gkellogg: we do need more `@protected` text in this API section 00:57:09 azaroth: so the syntax fix is editorial 01:00:26 PROPOSAL: Allow the use of `@protected` as a valid keyword in term definitions which are aliases of keywords or where the term is `@type`. 01:00:28 +1 01:00:29 +1 01:00:33 +1 01:00:34 +1 01:00:44 +1 01:00:47 RESOLVED: Allow the use of `@protected` as a valid keyword in term definitions which are aliases of keywords or where the term is `@type` 01:01:05 Issue above: https://github.com/w3c/json-ld-syntax/issues/246 01:04:45 gkellogg: before we go on to the next issue, there are some visual things maybe we can solve 01:04:51 ...I've never liked the green stuff 01:04:53 ...for new items 01:05:23 ...since we already have some active JS in there 01:05:29 ...maybe we can toggle highlight changes in 1.1 01:14:08 group: [discusses various CSS related tweaks...decides to leave things as is] 01:14:23 gkellogg: but then there's "[Exposed=Window]" 01:14:29 ivan: why is that even needed? 01:14:34 ...let's just display: none it 01:14:43 ...it doesn't apply to us 01:16:36 ...since our use of WebIDL is not language specific or browser specific, there's no reason for this exposed window object thing 01:18:10 azaroth: there are a few other issues we should chip away at 01:18:24 Subtopic: 220 in syntax; move 9.3 and "default object" to framing only? 01:18:39 https://github.com/w3c/json-ld-syntax/issues/246 01:18:56 gkellogg: so things show up when they've been referenced 01:19:09 ...and the terminology here does make this confusing 01:19:26 ...we introduce these concepts, because many people who use these don't look at API documents 01:19:33 ...the frame is more of a hybrid document of syntax and api 01:19:40 ...we might just be being to explicit here 01:19:50 ...we even describe a frame object here for that matter... 01:20:10 azaroth: this doesn't really add much...and I'd suggest just removing 9.3 01:20:23 gkellogg: and there is an earlier reference to framing earlier 01:20:27 azaroth: so...yeah 01:20:37 gkellogg: and farther down, we introduce expansion, compaction, etc. 01:20:53 ...and there's a framed document form 01:23:27 bigbluehat: off topic, but I'd love to have expanded form explained earlier 01:23:35 ...too big a change right now...but maybe in the primer 01:23:42 ivan: it helps me too to think about expanded form 01:23:52 gkellogg: but back to this specific issue 01:24:04 ivan: right. frames are valid 1.1 documents now 01:24:11 ...so the syntax document has to call this out 01:24:30 azaroth: right, 5.4. explains it, and you can't understand 5.4 without 9.3 01:24:43 gkellogg: this issue can capture why its there 01:25:43 Subtopic: regarding expanded form earlier in the doc 01:26:02 gkellogg: maybe we just add a new section that talks a bit more about expanded form in the intro 01:26:17 ...that highlights that various forms exist and how they work 01:27:40 ivan: it's true that these other forms are helpful 01:28:10 bigbluehat: do we need an action for this? 01:29:40 gkellogg: maybe we can put a basic overview of just expanded form and its use in the intro/basic concepts section 01:29:56 ...and then to note that semantically the compacted + expanded are equivalent 01:30:14 ...even though syntactically they look different 01:30:48 Action: gkellogg to write a couple paragraphs + example(s) for explaining expanded form and its use 02:00:51 ivan has joined #json-ld 02:15:13 ivan has joined #json-ld 02:15:19 group: [discussing the implementations available and needed] 02:15:32 ...primarily C++ and Java need the most attention 02:23:14 ssstolk has joined #json-ld 02:24:22 http://drobilla.net/pages/contact.html 02:30:19 present+ 02:39:11 { 02:39:11 "@context": { 02:39:11 "@vocab": "https://example.com/", 02:39:13 "schema": "https://schema.org/", 02:39:15 "name": "schema:name" 02:39:17 }, 02:39:19 "name": { 02:39:21 "@value": "fish", 02:39:23 "@language": "en", 02:39:25 "@direction": "ltr" 02:39:27 } 02:39:29 } 02:41:20 +1 02:41:39 { "@context": ["http://schema.org/", { "@direction": null }], "tag:p": { "@value": "foo", "@language": "en", "@direction": "ltr" } } 02:41:49 scribe: manu 02:42:03 Discussion around use of @direction and how it affects JSON-LD 1.0 processors. 02:43:15 Seems that there is an issue wrt. the use of @vocab and @direction... processors are choking. 02:44:01 A bug exists in 1.0 and 1.1 that doesn't flag the use of @direction and @vocab. 02:44:07 Issue created: https://github.com/w3c/json-ld-syntax/issues/259 02:44:45 Current 1.0 processors are going to ignore use of @direction in various places. 02:47:17 {"@version": null} :-D 02:52:01 rob: Moving on to whether or terms can start with @ symbol. 02:52:26 rob: Currently, the spec is not clear wrt. SHOULD NOT vs. MUST NOT. 02:52:59 bigbluehat: This is why HTML is not versioned. 02:53:25 bigbluehat: I'm less concerned about two documents processing two documents differently... we don't want to touch old data, but we don't want to prevent accomodation of the future at the same time. 02:54:37 gkellogg: If HTML pages had something that wasn't interpreted, but then it would... like span, or blink, or marquee ... then there could be issues. 02:55:09 bigbluehat: When I use a newer processor, I'm aware that it's going to look different... I don't touch old data. 02:55:46 bigbluehat: I'd suggest you use a switching mechanism in processor... nuclear option is to use 1.1. 02:56:21 bigbluehat: If I point towards the past... I provide HTML5 document to HTML 3 processor, you don't lose data 02:56:36 bigbluehat: If you give @version to 1.0 processor, it explodes. 03:04:14 q+ 03:04:39 q- 03:05:03 manu: Yes, but the only consumers are schema.org and they'll just do 1.1. 03:05:10 q? 03:05:39 bigbluehat: yes, the evergreen browser argument 03:05:42 q+ 03:05:58 pchampin: Changing 1.0 parsers, if they don't fail on 1.1 parsers, they'll break on other things 03:06:10 q+ to mention feature detection/upgrades. 03:06:42 Feature Detection issue https://github.com/w3c/json-ld-syntax/issues/33 03:08:04 gkellogg: We have to do something intelligent when we hit @container: subway -- 1.0 will throw a syntax error, it should throw errors when it sees an issue. My feeling is that we should remove the explicit version announcement, and do feature detection when things are discovered and throw errors when they don't understand. 03:08:08 ack ivan 03:09:16 ivan: Another reason why I'm in favor of incremental stuff, in a weaker way than what you say, is because we have to look ahead, we'll have 1.1 now, but there'll be a different discussion on how to proceed when this WG stops... listening to presentation from yesterday, next charter whatever 2.0 - essentially, admin and names put aside, we'd be in a position to put one feature that we want to add to the language like direction. 03:09:30 q+ 03:09:33 ivan: If in a year from now, we add @direction, what do we do -- version 1.1.1 or version 1.2? 03:09:54 q? 03:10:02 q+ to note lunch :) 03:10:12 q+ 03:10:55 ack manu 03:10:55 manu, you wanted to mention feature detection/upgrades. 03:10:55 ivan: We get into versioning/naming issue... it's difficult to maintain... sometimes they release 5.3, they do incremental changes, then implementations catch up... we might have the same sort of future ahead of us, we should be careful to not make things too difficult... 1.1 as a standard adds new features, not necessarily a thing called a 1.1 processor, we hope we have processors that implement everything, that's the goal. 03:11:13 manu: so. the original `@version` proposal was a list of features 03:11:22 ...so if you were to process this document, you must support those features 03:11:32 ...if a processor can't support those, then it just blows up 03:11:40 ...and 1.1 was just an alias for a bundle of features 03:11:49 ...the issue we saw was that there might be a feature...well... 03:11:58 ...one, announcing them doesn't mean you'll be using them 03:12:14 ...or it might just get forgotten that you've left the "opt-in" around when you ended up not using it after all 03:12:24 ...so, the feature detection works best when it's also BC friendly 03:12:33 ...and that turns out to be rather hard 03:12:48 ...we'd have to go through each feature and determine how detectable they are 03:12:57 ...but the reason against that is that it's a huge amount of spec text 03:13:09 ...and we weren't sure that every new feature weren't able to figure those out 03:13:26 ...and they might determined it differently 03:13:35 ...which is why we were ultimately in favor of 1.1 03:13:48 ivan: so does that mean if we go into continuous development 03:13:53 manu: ...yeah. I'm against that also 03:14:08 ...I was opposed to this 1.1 work earlier...the 4 year gap was helpful for the stability of the data and community 03:14:17 q+ 03:14:18 q? 03:14:27 ivan: k...but if we keep shipping, then we'd just keep shipping these version number things 03:14:38 manu: yeah...but that gets complicated again 03:14:53 ...and if you look at HTML5, feature detection is insane 03:14:54 ack gkellogg 03:15:39 ...the earlier issues were about feature announcement not detection 03:15:55 gkellogg: the point of 1.1 was not so we'd have a 1.2 03:16:02 ...it was so we'd be locking things down 03:16:11 ...and that's principally done in context processing 03:16:19 ...and we did not do that properly in 1.0 03:17:01 ...so, virtually, I'd say 90% of features are discovered in `@context` processing 03:17:06 gkellogg: The original version was 1.1, was not to do 1.2, it was so we could detect things that should not be there in 1.0... if 1.2 added @direction, a 1.1 processor would fail if it saw it because it was not in the whitelist. 1.2 is not necessary to say @version 1.2 to do the right thing... virtually, 90% of feature issues are discovered in context processing, the exception is when processing expanded documents where there are some features used. 03:17:08 ...the others show up in expansion 03:17:27 q? 03:17:27 gkellogg: We do look for those in 1.1 mode and 1.0 mode... frame processing mode... 03:18:00 gkellogg: I think where we are detecting these things in expansion processing, maybe more needed for forward compatability, everything else is pretty much be in the @context processing phase. 03:18:15 ivan: If we had it today, @direction wouldn't be detected in @context. 03:18:22 gkellogg: If we had it in the context it would be. 03:18:43 ivan: If I just use it as part of the value, it's a 1.1 feature that I don't see in the @context. 03:19:16 gkellogg: Anything that looks like a keyword and the processor doesn't understand it, it should abort. 03:21:05 gkellogg: I disagree w/ manu, I think we can do feature detection. 03:21:26 manu: I don't think I said we'd use 1.1 when doing JSON-LD 5.0 03:21:42 ivan: isn't this an issue for stream processor? 03:21:43 ack azaroth 03:21:43 azaroth, you wanted to note lunch :) 03:21:56 gkellogg: Well, you could throw an error if you hit something... 03:22:00 q- 03:22:06 gkellogg: I think we'd be in a better position if we don't use @version. 03:22:27 ack ssstolk 03:22:33 rob: We need to break for lunch soon. 03:23:03 ssstolk: In some cases, it's important to break down with newer features used... it's a conscious choice to move from a 1.0 to a 1.1 interpreter... 03:23:45 ssstolk: There is something to be said to an interpreter breaking on a feature it doesn't understand, vs. a feature thing... parser, or implementation... 03:24:13 ssstolk: Depending on level of confidence, you use one or the other... this is something that people should be aware of anyway. 03:24:26 gkellogg: In some cases, in order to get behavior, you should be in validation mode. 03:25:28 bigbluehat: I want as much of data out of top of page, don't care about reviews, give me what you can give me. 03:26:00 ssstolk: To be able to post a snippet in a web page, does this have any unknown features for 1.1... so people can know, am I going outside of that... 03:26:40 gkellogg: It is using features that are defined in 1.1... if your parser dies, sometimes it helps if you have it all gathered. 03:27:01 azaroth has joined #json-ld 03:36:07 azaroth has joined #json-ld 03:42:15 simonstey has joined #json-ld 03:51:19 present+ 03:55:18 azaroth has joined #json-ld 04:01:04 azaroth__ has joined #json-ld 04:04:14 --> #wot 04:13:07 ivan has joined #json-ld 04:19:22 pchampin has joined #json-ld 04:26:43 ivan has joined #json-ld 04:41:49 gkellogg_ has joined #json-ld 04:47:30 addison has joined #json-ld 04:59:39 azaroth has joined #json-ld 05:00:49 azaroth_ has joined #json-ld 05:01:20 ivan has joined #json-ld 05:01:40 addison_ has joined #json-ld 05:02:01 ssstolk has joined #json-ld 05:02:12 Topic: I18N 05:02:48 Bert has joined #json-ld 05:02:48 chaals has joined #json-ld 05:02:53 present+ 05:02:58 present+ 05:02:58 scribe: manu 05:02:59 r12a has joined #json-ld 05:02:59 guests+ dan, chaals, addison, r12a, hadley, danbri 05:03:02 present+ 05:03:20 scribejs, set hadleybeeman Hadley Beeman 05:03:35 scribejs, set r12a Richard Ishida 05:03:48 scribejs, set chaals Charles Neville 05:03:57 burn has joined #json-ld 05:04:08 scribejs, set chaals Chaals Nevile 05:04:10 present+ Dan_Burnett 05:04:18 azaroth_: The issue that we want to talk about is notion of internationalization and feature of text direction of strings, which is not possible in underlying RDF data model. Proposal that came out of discussion was that it would be better for the infrastructure overall if JSON-LD did text direction. Absence of it already existing at RDF concepts layer... it would be better back port it into RDF from JSON-LD. 05:04:42 DavidClarke has joined #json-ld 05:04:57 r12a: We move the upper stories of the Eiffel tower first :) 05:05:14 s/r21a/aphillips/ 05:05:20 s/r12a/aphillips/ 05:05:43 present+ 05:05:44 aphillips: We are concerned that there is a window opened right now that so many specs are dependent on JSON-LD, we would like to make sure common serialization form for handling this, if we don't have something, we might have non-interop solutions for this. 05:05:53 scribejs, addison_ Addison Phillips 05:06:00 aphillips: We are interested in seeing if we can do something at this level, see if we can move this down to RDF level. 05:06:02 scribejs, set addison_ Addison Phillips 05:06:16 azaroth_: One question that would be good to answer, why isn't language sufficient to do this? 05:06:27 guests+ Bert 05:06:28 q+ to talk language 05:06:31 azaroth_: Why can't we just say English is ltr, arabic is rtl, and be done... 05:07:03 aphillips: You can infer base direction, but not the same as base direction information, like when you don't have accurate language metadata, or applying base direction isn't applicable. 05:08:05 present+ sangwhan 05:08:06 q+ 05:08:16 https://github.com/w3c/string-meta/wiki/Base-direction-and-language-tags 05:08:18 aphillips: Rather than doing coercion, we should have metadata slot rather than infering... that's the basis of it. Key aspect is that it has to do w/ mixed directional text... text that flows in one direction isn't a problem, text that starts or ends with an opposite direction, bring multiple strings together, you have spillover effects that are desirable. That's a challenge that we see as fairly fundamental. 05:08:20 ack chaals 05:08:20 chaals, you wanted to talk language 05:08:48 q? 05:08:53 chaals: There is another problem in RDF in particular, which is that RDF doesn't know anything about the language... lang=ar, you know it's rtl... the only modern language that you can't depict. 05:08:58 r12a: No, not true by a long shot. 05:09:15 s/depict/detect is azeri/ 05:09:17 chaals: RDF doesn't understand ar-kw ar-?? is all arabic 05:09:34 r12a: And new subtags are added all the time... 05:09:41 q? 05:09:51 chaals: You'd have to parse RDF language tags to get this partial solution 05:09:55 q+ danbri 05:09:58 q+ sanders 05:10:19 r12a: There was a point where we thought it would work... the URL that I just posed in IRC is the result of that. 05:10:24 https://github.com/w3c/string-meta/wiki/Base-direction-and-language-tags 05:10:58 q? 05:11:36 ack ivan 05:11:39 r12a: The conclusion we came to was that language wouldn't do the job... wrote two articles on Kashmiri - the language tagging that I used in both documents was ks, didn't put script info because I didn't need to... there is a lot of human stuff going on there. You don't know if it's rtl or ltr. Even I didn't feel like I needed to put subscript and relying on language. 05:12:20 ivan: Coming back to what addison said, whatever we do, there are cases that we cannot handle directly, and we shouldn't even go there. If we have text that internally mixes language, the only way we could handle that is to fall back on HTML encoding of content. 05:12:28 ivan: metadata only on the one string. 05:12:46 ivan: When yo uhave mixed text, we can't do that. 05:12:48 q? 05:13:34 ack danbri 05:13:36 aphillips: We just want base direction of whole string... there are bidi things that can happen on whole string. Supplied in form of HTML... set the base here... we're not talking about internal changes 05:13:50 q+ to follow the subtopic of what breaks if we make the proposed change 05:14:18 danbri: What RDF understands of the language structure... a lot of stuff you just pass through RDF... if you want to be able to write SPARQL queries, you'd have to have advanced knowledge of those language fields, you push the solution into the application. 05:15:02 aphillips: Language tag mapping, don't know what the subtags mean... SPARQL just does string matching, if you say 'bs' which stands for "bosnian", you need a "bs range" to match. 05:15:46 q? 05:15:50 aphillips: You still don't need to know what the tags and subtags mean... the hyphens tell you what the boundaries mean... it's deliberate, keep away from needing to read registry, use complex logic. 05:15:53 q+ 05:16:03 q+ to ask why this wasn't handled in BCP47? 05:16:28 aphillips: If you are doing complex matching, you need application logic. 05:16:46 ack sanders 05:16:53 danbri: We don't need to address fancy SPARQL query. 05:17:47 q? 05:18:23 sander: I was going to talk about lang matches, doens't fix solution for direction... you're probably aware of, if a solution is found for direction in JSON-LD, there may be multiple other types of language interpretation attributes to help with something that goes beyond direction... if there is a solution found in JSON-LD, it should also be a solution that should allow for other attributes as time goes by... it can be placed into the same construct. 05:18:35 q+ 05:18:50 ack chaals 05:18:50 chaals, you wanted to follow the subtopic of what breaks if we make the proposed change 05:19:04 chaals: If we follow this plan, what breaks? 05:19:21 ivan: What's the plan? Add syntax for @direction and add a new property 05:20:14 q? 05:20:59 -> https://w3c.github.io/rdf-dir-literal/#json-ld the proposed json-ld syntax 05:21:46 q+ danbri 05:21:52 Group looks at directions in rdf-dir-literal document. 05:22:55 ivan: Note that the document we are referring to (link above) describes a range of possible solutions. We suggested implementing the json-ld syntax in json-ld as a starting point, because it doesn't yet have a representation in RDF semantics 05:23:13 danbri has joined #json-ld 05:23:18 q? 05:23:19 ivan: We ended up saying this, if I put RDF hat on, there are downsides in practice, there are duplicated ways to represent literals in RDF... literal w/ language that RDF has today, in parallel we have another approach, might break some deployed OWL mechanisms, object properties, data properties, not a good solution, but possible solution... 05:23:22 ack ivan 05:23:28 gkellogg: We also discussed that this was a transitional solution. 05:24:04 q+ to emphasise loose coupling between json-ld surface syntax and current mapping to rdf 1.1 (does json-ld have flags/modes for parser) 05:24:24 ivan: Hope is in time, there is a more general mechanism in RDF, don't know if this will happen. Current proposed approach, maps nicely to JSON-LD, covers what sander wants. 05:24:54 ivan: What we discussed today, yes, this is doable, but what happens w/ existing JSON-LD data out there, and what are the effects... and answer is not that simple... 05:25:24 ack manu 05:25:24 manu, you wanted to ask why this wasn't handled in BCP47? 05:25:25 ivan: Adding the feature is easy, what happens to the process is not a big deal.... 05:25:48 manu: I really pushed to fix this, for verifiable credentials to be able to move on... 05:25:50 scribe+ chaals 05:26:16 … we rushed in to getting good ideas on the table. I am going to check whether this is really the right course. 05:26:17 q+ to question the damage of punning properties (equivalent to new datatype) vs -x BCP extension 05:26:19 q? 05:26:31 … seems like language tag does 95% of what we want, a lot of times. 05:26:53 … so it is true that people extract some text direction out of the language tag 05:27:03 addison: mostly right now it isn't used… 05:27:25 … most people without a base direction appy the unicode algorithm. 05:27:35 q? 05:28:27 chaals: anecdata suggests that in practice, people are really implementing stuff withthe language tag and accept that as generally good enough for customers. 05:29:00 manu: There is a reality on the ground that people are using the lang tag. All of these specs getting changed might not be as good as working out how to do this through teh lang tag. 05:29:10 q+ to argue that requiring lang tag parsing is also a big change. 05:29:16 q+ 05:29:29 … we could deal with it in the lang tag and not have to change the RDF layer 05:29:31 the mentioned list of specs https://w3c.github.io/rdf-dir-literal/draft-charter.html#normative 05:29:38 ack addison_ 05:30:02 addison_: One thing is that by design implemnentations don't need to know about the content of the language tag - and most of them don't. 05:30:13 … there is a massive number of subtags. 05:32:13 aphillips: One of the things I mentioned earlier, by design, implementations don't need to know about subtags/language tags... we can maybe smuggle serialization schemes... the direction metadata doesn't belong in the language tag, it's semiorthogonal not totally unrelated, separate piece of data, I'll admit that people have struggled... we failed to provide a mechanism to do this, we should have had this conversation before the paint was dry. 05:32:14 … we have looked, in https://w3c.github.io/rdf-dir-literal at ways to "smuggle" the information metadata in via the lanugage tag. It is semi-orthogonal, being a separate bit of data, that we have to be able to serialise and deserialise. There are a lot of places we suffer because we haven't yet managed to solve the problem, since we didn't do it from the start. 05:32:49 r12a's slides start here: https://www.w3.org/International/talks/1810-paris/#metadata 05:33:15 aphillips: People who have data catalogs who have base direction metadata, when people have this affordance, it helps to be able to do this... does it work a lot of the time, yes, but corner cases are really not that unusual... 05:33:15 … people with data catalogues who have the metadata have an easy time if they can set the direction directly, Carrying around lists of subtag matching works a lot of the time but is pretty ugly, and the corner cases are not that unusual. 05:34:02 … we launched a site in an RTL language, and hit a pile of bugs. I don't always have convenient mechanisms to manage this, so I am interested in a way to provide direction metadata in JSON-LD 05:34:08 aphillips: We launched our first rtl website, we have a bunch of bidi issues, don't always have convenient mechanisms, interested in providing a way of providing direction metadata. 05:34:51 aphillips: Where I'm headed to here, I am not a purist, if we had an impure serialization scheme that had greater compat, that wouldn't be bad... 05:35:30 q+ 05:35:51 aphillips: Talking w/ RDF community, we're creating an interesting hack, doesn't speak to extensibility... don't know if it's a hack... I'd be open to a serialization, looks hacky relative to other alternatives... maybe we can be compatible w/ existing implementation things. 05:35:59 ack danbri 05:35:59 danbri, you wanted to emphasise loose coupling between json-ld surface syntax and current mapping to rdf 1.1 (does json-ld have flags/modes for parser) 05:36:33 danbri: I liked the idea of doing something in JSON-LD... if we could backport for 1.0, we could get something happening in 1.0, Google might get involved. 05:36:58 danbri: We've encouraged people do to good solid JSON-LD 1.0 files, there are millions and millions of this.... 05:37:36 q? 05:37:43 ack azaroth 05:37:43 azaroth, you wanted to question the damage of punning properties (equivalent to new datatype) vs -x BCP extension 05:37:52 danbri: The smallest little thing we can do is important, if we can do some surface hackery, we can parse this stuff... 05:38:00 gkellogg: Yes, some transitional mechanism. 05:38:19 ivan: We are having a discussion about versioning discussion... 05:38:36 gkellogg: parameterize RDF algorithms stuff... 05:38:52 danbri: Parser being invoked w/ arguments, people run RDFa parser in certain mode. 05:39:28 azaroth: There are two separate questions... the first one, do we feel comfortable adding @direction to JSON-LD for @value objects regardless of how it transforms to RDF. 05:39:37 q+ 05:40:27 azaroth: There are things that don't round trip in JSON-LD, such as indexes, there is precendent for non-roundtrippable stuff in JSON-LD... if cost to RDF layer is high, we can defer the serialization through into RDF... the proposal is 1) do we want to do this, to 2) how do we want to do this. 05:40:38 q? 05:40:40 ack chaals 05:40:40 chaals, you wanted to argue that requiring lang tag parsing is also a big change. 05:41:00 chaals: I think we want to do this, happy to give up round trippability... what's going to break? 05:41:23 chaals: If that's a fast path, this is a good solution. 05:41:43 chaals: Forcing things that don't parse language to parse language, that's a big ecosystem thing. 05:41:45 q+ to respond to what breaks is at different levels, surface syntax and ontology, thus the cost is different for different audiences 05:41:58 ack r12a 05:43:16 manu: I think the vast majority of appications don't pay attention to the language tags, or direction. 05:43:37 ivan: In browsers, they don't establish direction with language they do it with direction metadata. 05:43:47

arabic here

05:45:17 ack ssstolk 05:45:49 https://github.com/w3c/string-meta/wiki/Base-direction-and-language-tags 05:47:46 r12a: The normal way of detecting language is to look at first strong character heuristics, for most things in strings, that's the way to do it... far more efficient to look at first character... that works for 95% of time time, for the other 5%, that's the solution we're looking for, not having language, not having direction, and when direction on character is wrong... 05:48:08 manu: I just wanted to make sure we are making an educated decision. 05:49:17 aphillips: I think the right thing to have done is split the two -- language and dir must be separated. 05:49:24 r12a: Yes, they're not doing the same thing 05:49:54 sander: Pinpoint something wrt RDF - our company uses multiple language tags to discuss the same term, we find it's difficult to find proper name for same term. 05:50:09 q+ to note that it's not clear that lang and dir were designed to be separate. 05:50:32 sander: We would be more reluctant if we adopt this that this is a different language encoding to ... 05:51:33 ivan: If you look at this thing in RDF version, if there is no @direction, it maps against a literal and language tag... it's some bnode with properties, it's very different. 05:52:15 sander: I wanted to point out that if capturing such information would require another pattern, then such adoption for orgs to adopt direction, if that causes structural thing, that would hinder even looking for these things. 05:53:21 ack gkellogg 05:53:24 sander: smuggling direction in language might help adoption because it's easier to do... let's not make this have additional barriers. 05:54:31 danbri_ has joined #json-ld 05:54:45 gkellogg: To clarify, are we done at 3? 05:55:11 azaroth: This is something we want to do... 05:56:18 gkellogg: We get together we have an hour, we do the same discussion, we should put a stake in the ground. Something is better than nothing. 05:56:22 rubensworks has joined #json-ld 05:56:53 q+ 05:56:57 ack azaroth 05:56:57 azaroth, you wanted to respond to what breaks is at different levels, surface syntax and ontology, thus the cost is different for different audiences 05:57:00 q+ danbri_ 05:57:14 present+ 05:57:16 manu: I'm committed and convinced to do @direction 05:57:19 ack manu 05:57:19 manu, you wanted to note that it's not clear that lang and dir were designed to be separate. 05:57:32 azaroth: Is it possible for you to be back after break, danbri? 05:57:43 q? 05:57:45 ack danbri_ 05:57:47 scribejs, set danbri Dan Brickley 05:57:54 guests+ danbri 05:58:30 danbri_: What about the future? When you have arabic, french, in Japanese? 05:59:05 danbri_: Are we defining something where future direction happens...? 05:59:46 q? 06:00:00 chaals: What about text orientation and stuff... LTR and RTL... 06:00:21 I have made the request to generate https://www.w3.org/2019/09/19-json-ld-minutes.html addison_ 06:00:56 aphillips: There is a high degree of confidence on number of text directions... 06:01:01 rrsagent, draft minutes 06:01:01 I have made the request to generate https://www.w3.org/2019/09/19-json-ld-minutes.html manu 06:01:27 azaroth has joined #json-ld 06:02:20 chaals1 has joined #json-ld 06:25:04 addison has joined #json-ld 06:32:54 azaroth has joined #json-ld 06:33:02 jc has joined #json-ld 06:33:13 Restarting ... 06:33:44 scribenick: bigbluehat 06:33:44 scribe+ bigbluehat 06:34:03 azaroth: on the Agenda is continue until exhaustion 06:34:15 ...in favor of progress 06:34:27 ...I think that is contentious to add the surface syntax 06:34:36 ...so reopen that original issue 06:34:50 tung has joined #json-ld 06:34:51 ...and then look at RDF round tripping *after* that's resolved 06:34:58 ...the worst scenario is to go to CR with no solution 06:35:41 ...it is better to go CR with `@direction` and without a mapping into RDF, than to not put in `@direction` 06:35:46 gkellogg: curious about danbri's thoughts 06:36:13 danbri: that's up to Google (Bing, etc), but we can encourage users of Schema.org to publish it 06:36:13 (better to also have consensus about the RDF transitional reflection, but that seems more complicated) 06:36:20 ...but can't promise SEO bots will consume it 06:36:42 ivan: if I put in a `@direction` into my web site data, what happens 06:37:00 s/@direction/@language/ 06:37:23 danbri: we certainly have the notion of languages of pages, etc. 06:37:56 jc has joined #json-ld 06:38:13 ...but the more narrow `@language` usage would be up to the various products/consumers of that data 06:38:16 ...and I can't speak for what they do 06:38:34 addison_ has joined #json-ld 06:38:44 ...I think it's likely that we're not doing a great job with `@language`--let alone `@direction`, etc. 06:38:49 q? 06:38:56 q+ 06:39:05 ...so I don't think our tooling will catch fire, etc. 06:39:14 I have made the request to generate https://www.w3.org/2019/09/19-json-ld-minutes.html addison_ 06:39:26 ack gkellogg 06:39:31 ...it would be nice if there were an appendix or something that said even if you're publishing in 1.0, that you can still put `@direction` in and hope for the best 06:39:43 gkellogg: there have been some calls in Schema.org to add some properties to say 06:39:45 present+ addison 06:39:59 ...things like breadcrumbs might make use of the `@list` capability 06:40:04 ...or strings that used a map structure 06:40:12 ...where there would be a `@context` to understand those 06:40:26 ...whereas at Google they're just checking directly 06:40:47 ...might you consider a similar pattern for `@direction` 06:41:10 danbri: I think you're designing hacks for a system neither of us know much about :) 06:41:36 azaroth: let's project some examples 06:41:54 danbri: I was thinking whatever Voodoo you work up--so in 1.1 it's these little `@` things... 06:42:06 gkellogg: so, yes, we have `@language` and soon, we think, `@direction` 06:42:21 ...I can set an `@language` for the whole document or a certain object 06:42:27 danbri has joined #json-ld 06:42:34 ...and when it gets expanded, you have that language data as well as the value 06:42:58 danbri: so each publishing web site would make use of its own context? 06:44:03 bigbluehat: let's make sure we're all talking using the same terms 06:44:10 ...I don't we're all sure what expanded form is, etc. 06:44:24 azaroth: [projects some examples] 06:45:20 for examples of google's use of json-ld (and schema.org), see Search Gallery at https://developers.google.com/search/docs/guides/search-gallery 06:45:23 manu: so I feel we're overusing an unbuilt feature 06:45:37 ...how often to we expect people to use the `@direction` feature actually? 06:45:39 q+ 06:46:04 ...most authors won't want to grow to great pains to express it 06:46:11 addison_: no, but most machines written to care will 06:46:18 q+ to are we just talking about schema.org? 06:46:22 ...so people with direction metadata will want to consistently use it all over the place 06:46:37 q+ to wonder if we're talking about machine use cases or human use cases? 06:46:46 ack bigbluehat 06:49:29 scribe+ 06:49:45 danbri: Can’t we just use the dir attribute on a script tag? 06:49:48 danbri: You can pick it up from the HTML dir element... 06:49:52 bigbluehat: No, we’re not allowed to do that. 06:50:05 bigbluehat: You can send it into processing algorithms for JSON-LD... 06:50:22 ivan: We looked at this, HTML5 spec says to not use lang for script tags. 06:50:54 danbri: https://html.spec.whatwg.org/multipage/scripting.html#data-block 06:51:41 q+ 06:52:12 jc has joined #json-ld 06:53:33 danbri: is there a way to do this at the top of the file? 06:53:36 ivan: no 06:53:47 gkellogg: you can at the top of the file for `@language` 06:53:56 ...and presumably we would for `@direction` 06:54:05 ivan: so, yes, it could be there, and on each value 06:54:08 q- 06:54:25 ...it is an open question whether the container mapping thing would also be used for language direction 06:54:46 ...basically, yesterday's proposal was to mimic `@language`, but for the `@direction` data 06:55:17 bigbluehat: clearer? or worse? 06:55:27 danbri: but what if context's aren't used? 06:55:28 q+ 06:55:43 ack manu 06:55:43 manu, you wanted to are we just talking about schema.org? and to wonder if we're talking about machine use cases or human use cases? 06:55:46 q? 06:56:12 eg https://gist.github.com/danbri/9627452ec7dcbe63af9cb5a631acfdf8#file-gistfile1-txt 06:56:54 manu: so you'd just use `@language` and `@value` directly as an object for the value of the property--i.e. a value object 06:57:01 danbri: so, here's an example we've been playing with at Google 06:57:17 ...we don't want to do this on every field--as you can see it'd be painful and verbose 06:57:49 gkellogg: yeah, we would let you set for the whole document--as with `@language` 06:58:28 manu: I feel like we're handing people a foot gun 06:58:36 ...everything would become ltr or rtl--even if it's not supposed to 06:58:51 q? 06:58:56 ack bigbluehat 06:59:10 gkellogg: well, it depends on how they visualize the output to know if they've done it wrong 06:59:16 manu: people don't visualize it 06:59:41 bigbluehat: they just put the JSON into text areas and call it done 06:59:56 manu: yeah...most of them don't even care about `@language` 07:00:07 danbri: so do it only down at the property level 07:00:14 addison_: I can see doing it there 07:00:17 jc has joined #json-ld 07:00:31 danbri: would it make sense to have it in the schema languages? 07:00:37 ...like certainly fields are "directable"? 07:00:54 ...so gsin's or isbn's are not directable or language-able 07:01:01 addison_: isbn's are a great example 07:01:09 ...they have to be a string, includes letters, hyphens, etc. 07:01:13 ...but it's not in a language 07:01:17 ...it's a string literal 07:01:24 ...and the world is few of these 07:01:34 ...but it's also full of language-bearing strings which have both language and direction 07:01:34 q? 07:01:37 q+ 07:01:52 ...in some cases that can be inferred, but in some cases we can't 07:02:06 ...so we do have direction fields in our databases to track that 07:02:19 manu: so, one option is to allow `@direction` at the top and have it cascade to the entire document 07:02:29 ...the other extreme/option is to put it on only the values 07:02:47 q+ 07:02:55 q- 07:03:15 ivan: so it is up to Schema.org to decide if they want to promote `@direction` at the top 07:03:22 ...we are here talking about the standard 07:03:33 ...and I don't see why we would disallow this 07:03:34 q+ 07:04:04 addison_: the reason you do this with `@language` is because you don't want to repeat it 07:04:15 ack gkellogg 07:04:22 ivan: the same applies to `@direction` 07:04:41 gkellogg: we have various things to apply `@language` across the whole document 07:04:50 ...I can say that ISBN is no language 07:04:58 ...by setting `@language: null` on just that value 07:04:59 q+ to wonder how often @direction is used in data today alongside language... 07:05:19 ...for symmetries sake it would be odd for us to do this only for `@language`, but not `@direction` 07:05:44 ...even though we might not have obvious use cases, there is an orthogonality argument to make to do it for the whole document 07:05:51 ivan: I agree 07:05:54 addison_: I agree 07:06:17 gkellogg: something I can see us doing is that if there's a default `@direction`, then it could be limited to only things that bear a `@language` 07:06:46 ivan: no, ISBN is a good example 07:06:52 ...they always go "rtl" 07:07:02 addison_: MAC addresses are a great example 07:07:12 ...they draw backwards if they flow the wrong way 07:07:44 gkellogg: so, we should do this in all the same places we allow `@language` 07:07:56 group: [general positive responses] 07:08:16 gkellogg: I presume it doesn't make since to have `@direction` maps? 07:08:23 addison_: `@language` maps are very useful 07:08:30 ...the question then is how to do both if you use `@direction` 07:08:57 gkellogg: we could do nested objects inside nested objects 07:08:59 q? 07:09:01 group: [growns] 07:09:25 tung: so we define only the language, and guess the direction? 07:09:29 gkellogg: you could leave the direction off 07:09:33 ...you could provide both 07:09:40 ...or the string could just use the default direction 07:10:04 tung: if the user provides a direction, but if the user does not state a direction it falls back to language? 07:10:15 addison_: the language map is the space in which you'd define a language 07:10:20 ...but on each value 07:11:15 tung: what about vertical text? 07:11:19 ack bigbluehat 07:11:27 ack manu 07:11:27 manu, you wanted to wonder how often @direction is used in data today alongside language... 07:11:35 q+ for resolutions 07:11:44 addison_: vertical text is a presentational concern 07:11:51 manu: I think we keep breaking our own principles here 07:12:06 q-q_ 07:12:08 q- 07:12:13 ...now we're saying we're using language for text direction when it's not available? 07:12:19 addison_: they're not completely independent 07:12:19 ack azaroth 07:12:19 azaroth, you wanted to discuss resolutions 07:12:37 manu: yeah...so the fact that this was thoroughly confusing to a bunch of developers... 07:13:09 ...the stuff presented earlier about not guessing direction from language...but now we are 07:13:49 david_clarke: Yiddish can be in Romain characters or Hebrew characters 07:14:14 ...so declaring the direction is still important 07:14:16 q+ 07:14:39 manu: page-wide dir on HTML was maybe a mistake 07:14:54 addison_: no, there's a reason to have it on the outside of the container for a bunch of reasons 07:15:12 ...there is some linkage between language and direction 07:15:29 ...and what we want is to give people the things they need to reach beyond what language provides 07:15:41 ...if you ever watch folks attempting to develop or write this stuff, it's really really hard 07:15:53 ...we're trying to provide enough affordance to take a string out of a page and have it present properly 07:16:00 ...without having to introspect, etc. 07:16:22 ...we'd like for folks to be able to express their data in all the various standards without having to rewrite all the things 07:16:32 ...that's why having direction is important here 07:16:40 jc has joined #json-ld 07:16:44 ...because it handles all the other bits beyond the text--bullet points, etc. 07:16:49 ack bigbluehat 07:16:50 ...works in html, etc. 07:18:25 PROPOSAL: (1/*) We add @direction as a keyword to the JSON-LD Syntax to assert the base text direction of a literal string 07:18:37 +1 07:18:41 +1 07:18:42 +1 07:18:42 bigbluehat: it's really similar to RDFa using a document level `dir` for all the things 07:18:48 ...and being overridden elsewhere 07:18:49 +1 07:18:50 +1 07:18:51 +1 07:18:52 danbri has joined #json-ld 07:18:53 +1 07:18:59 +1 07:19:02 RESOLUTION: (1/*) We add @direction as a keyword to the JSON-LD Syntax to assert the base text direction of a literal string 07:19:24 jc has joined #json-ld 07:19:52 PROPOSAL: (2/*) @direction is legal as part of a value object in the json-ld internal model but may not be used if @type is present 07:20:01 +1 07:20:02 +1 07:20:02 +1 07:20:08 +1 07:20:09 +1 07:20:09 +1 07:20:13 +1 07:20:30 RESOLVED: (2/*) @direction is legal as part of a value object in the json-ld internal model but may not be used if @type is present 07:20:59 tung: why no `@direction` with `@type`? 07:21:11 gkellogg: because you can't have `@language` with `@type` 07:21:48 tung: but what if the `@type` has a language? 07:22:31 gkellogg: that's a different case 07:24:07 tung: can we use a class to define language? 07:24:14 gkellogg: that was considered 07:24:20 PROPOSAL: (3/*) @direction is legal in an expanded term definition if you could have used @language in that definition and applies to all values of that term in the same way as @language 07:24:30 azaroth: I think we're back in solution space, and should get back to resolutions 07:24:35 jc has joined #json-ld 07:24:41 +1 07:24:44 +1 07:24:45 +1 07:24:48 +1 07:24:50 +1 07:24:52 eg: {"label": {"@id": "rdfs:label", "@direction": "rtl"}} 07:25:00 q+ 07:25:22 ack ivan 07:25:33 RESOLVED: (3/*) @direction is legal in an expanded term definition if you could have used @language in that definition and applies to all values of that term in the same way as @language 07:28:11 PROPOSAL: (4/*) The value space of @direction is one of "ltr" and "rtl" ("auto" would have been the same as not asserting the keyword) 07:28:13 +1 07:28:14 +1 07:28:15 +1 07:28:17 +1 07:28:18 +1 07:28:20 +1 07:28:20 +1 07:28:25 RESOLVED: (4/*) The value space of @direction is one of "ltr" and "rtl" ("auto" would have been the same as not asserting the keyword) 07:28:25 present+ simonstey 07:28:45 guest+ david_clarke 07:28:57 scribejs, set david_clarke to David Clarke 07:29:17 PROPOSAL: (5/*) We expand the possible values of language maps to be either a string (as per today) or a value object with direction and without language or type 07:29:19 +1 07:29:20 +1 07:29:21 +1 07:29:21 +1 07:29:23 +1 07:29:25 +1 07:29:42 eg: {"en": {"@value": "Rob", "@direction": "ltr"}} 07:30:00 RESOLVED: (5/*) We expand the possible values of language maps to be either a string (as per today) or a value object with direction and without language or type 07:32:50 PROPOSAL: (6/*) @direction can be present in a context node, and sets in the active context that the default direction for all string literals 07:32:52 +1 07:32:57 +1 07:32:58 +1 07:33:00 +1 07:33:01 +1 07:33:06 + 07:33:06 +1 07:33:09 +1 07:33:14 RESOLVED: (6/*) @direction can be present in a context node, and sets in the active context that the default direction for all string literals 07:33:52 PROPOSAL: WG agrees that @container: @direction is not a useful feature for JSON-LD 1.1 (unlike @container: @language) 07:33:53 +1 07:33:57 +1 07:33:58 +1 07:34:02 +1 07:34:02 +1 07:34:07 +1 07:34:21 s|WG| (7/*) WG| 07:34:48 RESOLVED: (7/*) WG agrees that `@container: @direction` is not a useful feature for JSON-LD 1.1 (unlike `@container: @language`) 07:34:58 +1 07:37:14 SUBTOPIC: Versioning issues 07:37:59 https://w3.org/2018/03/jsonld-wg-charter.html "All changes must preserve backward compatibility for JSON-LD 1.0 documents. This means that, when processing existing JSON-LD documents, JSON-LD 1.1 processors generate the same expanded output, unless that output is subject to errata in JSON-LD 1.0 or is otherwise an unspecified implementation detail." 07:38:20 manu: who will this cost? 07:38:32 ...when they upgrade 07:38:44 q? 07:39:52 danbri: I don't think our processor do language...or value object or whatever...processing 07:40:08 gkellogg: so, your developers are happy, but folks who use the JSON-LD labeled tooling, will get a different result 07:40:27 ...and for those you'd have to say `@version: 1.1` 07:41:35 danbri: we've felt at Google and Schema.org for a long time that JSON-LD 1.0 had finally gotten good momentum 07:41:40 ...and then the 1.1 work showed up 07:41:53 ...and that's why we pushed against it a bit 07:42:02 ...and you all are deep into the `@context` space 07:42:32 ...but we've known from the start that the public Web JSON-LD space was actually processed differently 07:42:36 ...and without the `@context` 07:43:04 ...the promise made by the WG that the new parsers would still successfully parse the old JSON-LD 07:43:07 ...is that still true? 07:43:09 group: yes 07:43:16 q+ to suggest a compromise. 07:43:26 azaroth: but we should probably talk about version triggering...as that's goes a bit farther 07:44:05 ...to opt-in to the new features, you have to include `@version: 1.1` 07:44:19 ...and if you do, that in a context, the old processors--using the `@context` file--will choke 07:44:49 danbri: most of the others (Bing, etc) aren't doing JSON-LD processing using the `@context` 07:44:56 ...and we aren't either 07:44:59 ack manu 07:44:59 manu, you wanted to suggest a compromise. 07:44:59 ...so who does this break? 07:45:16 azaroth: those folks processing schema.org based data with JSON-LD 1.0 processors 07:45:32 manu: so, what we could do is use the current versioning mechanism 07:45:42 ...but schema.org could promise to not upgrade for 2-3 years 07:45:53 ...but still encourage folks to use the `@language` and `@direction` stuff now 07:46:31 danbri: or we could do the opposite and put 1.1 in the context--and see who cries? 07:47:06 gkellogg: so the way this works is a 1.0 processor is supposed to die when it sees the `@version: 1.1`, so it doesn't consume the wrong data 07:47:31 q+ to note that I never got around to my compromise proposal :) 07:47:36 azaroth: right, and some of those features can allow spoofing of terms...which could have security concerns--depending on what that data is used for 07:47:46 ack manu 07:47:46 manu, you wanted to note that I never got around to my compromise proposal :) 07:47:49 ack manu 07:48:07 manu: so the compromise proposal is to signal with the `@version: 1.1 07:48:23 ...but what we could do also is that any 1.1 processor could do feature detection 07:48:38 ...i.e. choose to upgrade for other reasons than just the `@version: 1.1` 07:48:45 gkellogg: so no need for the version announcement? 07:48:49 manu: I think it should still be there 07:49:02 gkellogg: so I've come to feel that the `@version` announcement is such a big bearier 07:49:06 ...that people will avoid it 07:49:24 manu: so over time if we see that the `@version` isn't being used, then we can take it out of the spec 07:49:30 ...so it may go away in a future JSON-LD 07:49:43 gkellogg: so Schema.org could avoid `@version`? 07:49:53 q+ 07:49:57 manu: yes, they can use `@direction` now and that could trigger the upgraded processing 07:49:57 q+ 07:50:37 ack pchampin 07:50:40 danbri: what I tried to get across last year was that there is JSON-LD "stuff" that isn't intended currently to be processed as JSON-LD 07:51:14 ...and there are other concerns arising elsewhere...and I'm sorry I've not been involved more to help you avoid these...but they still need addressing 07:51:32 pchampin: things will still break...just later...so the `@version` could be avoided 07:51:42 ...but we can recommend avoidance of other items also 07:51:50 q? 07:52:12 q+ 07:52:13 ack azaroth 07:52:47 azaroth: so if you are concerned that there are 1.1 features that you MUST have processed, then you signal with `@version` 07:53:01 ...otherwise, you just let the processor figure it out from the stuff in the document 07:53:13 q+ 07:53:21 ...if you have scoped properties or whatever in your context, but your document doesn't use them...then things would be fine 07:53:43 ivan: we have a close dependency right now 07:53:57 ...which is the publication manifest and we're at the end...and we had our story with i18n exactly for this reason 07:54:07 ...with these resolutions, I would have to add `@direction` to the manifest 07:54:19 ...that manifest is built up from schema.org for most of it's vocabulary 07:54:26 ...and adds a few more that we need that schema.org doesn't have 07:54:40 ...so what happens if I produce a book and don't put `@version` in it? 07:54:45 chaals has joined #json-ld 07:54:49 q+ to answer ivan 07:55:25 ...google or bing or whoever processes it 07:55:41 danbri: we don't have a common code base...so we have no idea how these things are processed 07:55:52 ack bigbluehat 07:56:14 bigbluehat: Rob, the chances that you have that playground up w/ @version? Oh, there it is.... no it isn't. 07:56:57 bigbluehat: This is what the Publishing WG could do... define it as a term... "direction" set to "@direction" 07:57:11 gkellogg: I think schema.org has a 'direction' term? 07:57:44 bigbluehat: and you can't do, in context, @direction: direction?... 07:57:58 Group works through example on JSON-LD Playground... 07:58:37 bigbluehat: A v1.0 processor is going to choke, whatever we do. 07:58:45 danbri: What if we do an errata? 07:59:53 bigbluehat: yes. errata could work 08:00:05 ...main thing is getting people to support it so it doesn't choke 08:00:25 bigbluehat: The bulk of JSON-LD code is out of this code base, could "fix" it... could put it in 1.1. 08:00:35 manu: ivan just have Publishing WG use 1.1 08:00:45 q+ 08:00:55 q- later 08:01:25 ivan: If we introduce @direction... 08:01:28 gkellogg: 1.0 will die 08:01:43 q? 08:01:57 ivan and gkellogg brawl! Chairs thrown, walls torn apart! :P 08:02:46 bigbluehat: We have stuff that have multiple languages, multiple directions... contents beyond are english... we need a way to do both, in our data, we'd ship @direction and use something in @context. 08:02:56 gkellogg: You don't need @version... 08:03:06 bigbluehat: I don't want other JSON-LD processors to break. 08:03:38 ack pchampin 08:03:38 pchampin, you wanted to answer ivan 08:03:38 ivan: If we find a way where we are not required to use @version... we have an option to use that, but a lot of data that used that stuff, it wouldn't use it anyway... we do redefine @direction to direction. 08:04:01 java https://github.com/jsonld-java/jsonld-java , rdfjs https://github.com/rdfjs-base/parser-jsonld , php https://github.com/lanthaler/JsonLD , dotNet https://github.com/linked-data-dotnet/json-ld.net ... do we know which of these toolkits are likely to be upgraded? is there a test harness that can run them and see if they all barf on @direction ? 08:04:56 pchampin: The difference between the expressivity using context and data -- the benefits of the compromise is that you can publish a context that is not using any 1.1 feature... such as schema.org and still use 1.1 features in the data... yes, 1.0 processors will choke on the data, but they won't die on the context. 08:05:03 ack manu 08:05:18 manu: that's the exact point I wanted to make 08:05:39 ...if make the `@version` mandatory 08:05:40 q+ to ask plans for media type; what happens to