07:05:37 RRSAgent has joined #annotation 07:05:37 logging to http://www.w3.org/2016/05/18-annotation-irc 07:05:43 takeshi has joined #annotation 07:05:44 rrsagent, set log public 07:05:58 Present+ Rob_Sanderson 07:06:15 Meeting: Annotation WG F2F, Second Day 07:06:17 Present+ Takeshi_Kanai 07:06:24 Present+ Ivan_Herman 07:06:34 Chair: Rob, Tim 07:06:35 TimCole has joined #annotation 07:06:41 present+ Tim_Cole 07:06:47 TOPIC: Issues, continued 07:08:59 scribenick: bjdmeest 07:09:25 Present+ Richard_Ishida 07:09:30 present+ felix_sasaki 07:09:35 r12a has joined #annotation 07:09:50 bjdmeest has joined #annotation 07:09:56 Present+ Benjamin_Young, Doug_Schepers 07:09:58 Present+ Ben_De_Meester 07:12:48 tantek has joined #annotation 07:13:15 TimCole: we going to try resolve all issues except for 2, which we will do this afternoon 07:13:30 azaroth: we closed some of the 'new' issues 07:13:36 ... #223 07:13:39 ... that was intentional 07:14:00 ... in JSON-LD, if you would associate a language, it would look like a resource 07:14:04 ... which would be confusing 07:14:33 ... #224 not our concern about how a client does requests headers 07:14:49 ... the client does not have access to response headers 07:14:56 ... javascript doesn't allow it 07:15:08 ... for security reasons (cookies etc.) 07:15:18 q+ 07:16:08 ... about #219: you can always add annotations to a collection 07:16:12 s/#224/#220/ 07:16:26 ack r12a 07:16:28 ... default would have very little value 07:16:43 Present+ Nick_Stenning 07:16:48 Present+ Lena_Gunn 07:17:28 TimCole: bodies and targets may have languages, the annotation itself does not have a language 07:17:38 The issues we closed: https://github.com/w3c/web-annotation/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Ai18n-review+is%3Aclosed 07:18:03 azaroth: the link is about the issues we closed yesterday 07:18:30 tbdinesh has joined #annotation 07:18:45 r12a: when the annotation have no language or direction, doesn't an annotation have some text? 07:19:01 TimCole: the model separates the body (the content) from the annotation itself 07:19:18 ... the structure is more a description of the content than the body itself, the body may be embedded or referenced 07:19:51 ... the body can be a resource without properties, we also have some basic properties, all optional 07:20:06 ... the creator can always add additional properties from different vocabularies 07:21:06 r12a: something like this additional info should be added to #209 07:21:07 fyi, d12a, an annotation as an object is a *relationship* between a body and a target 07:21:26 bodies/targets may well have language/direction, but annotations themselves do not 07:21:29 ... so that everyone can understand 07:21:34 *r12a 07:21:38 TimCole: good point 07:22:01 ... so, about #223... 07:22:24 azaroth: #223 is specifically about the string body, that must be just a string 07:22:51 ... in rdf and JSON-LD, you can associate a language to a string, but for JSON-LD, you then get an object 07:23:05 ...the point of bodyValue is to have purely a string 07:23:27 q+ 07:23:46 ... we don't need an object for bodyValue, that is already taken into account elsewhere (the body object) 07:24:15 TimCole: bodyValue was added for 'the simplest case': no additional properties 07:24:15 ack nickstenn 07:24:48 q+ 07:24:57 nickstenn: for clarity, could we add a parenthetical: if your use case needs additional properties, use 'this structure' 07:25:09 ack r12a 07:25:38 r12a: if I wanted to make annotations, I would take the easiest approach, and would end up with lots of annotations without language 07:25:46 ... so I couldn't display them properly 07:26:06 azaroth: indeed 07:26:40 ivan: e.g., SVG WG uses annotation structure to add annotations to CSV metadata 07:27:15 s/SVG WG/CSV WG/ 07:27:21 ... for systems that do annotations in 'isolation', it's not usefull, but for systems that have context, this system might be useful 07:27:40 TimCole: people will abuse this, that's likely to happen 07:27:49 ... the consensus was that we should allow this 07:27:55 Spec ref: https://www.w3.org/TR/annotation-model/#string-body 07:27:55 ... partly because would do it anyway 07:28:09 And commenting is 5th requirement bullet 07:28:37 q+ re inheritance 07:28:38 r12a: this is the reason why I added the issue of adding language to a collection of stuff 07:28:52 Zakim has joined #annotation 07:28:58 q+ to discuss rdf and inheritance 07:29:06 TimCole: well, you may be talking about the language of the body, the target, multiple bodies (each having a distinct language)... etc 07:29:51 ack azaroth 07:29:52 azaroth, you wanted to discuss rdf and inheritance 07:29:52 r12a: but there, you must provide the language information 07:30:00 ... I was talking about a default 07:30:06 ... like in HTML 07:30:27 azaroth: issue about RDF and inheritance of properties is tricky 07:30:52 ... 'for all annotaties, for all bodies, for dc:language...' etc. 07:31:23 ivan: the mapping on RDF is hard 07:31:43 ... you want 'all the literals should be of language X', which is not a concept RDF has 07:32:54 azaroth: r12a, thanks for raising the issues 07:33:01 r12a: about #218: does a person have to assign a language every time he creates an annotation? 07:33:09 azaroth: language is not required 07:33:52 TimCole: the language could be figured out by the client 07:33:52 azaroth: how the language gets assigned is an implementation details, just as a Request Header 07:34:31 TimCole: do we need changes in the spec for this? 07:34:56 azaroth: there is a note we could extend 07:35:15 note discussed is in this section https://www.w3.org/TR/annotation-model/#external-web-resources 07:35:34 r21a: when reviewing the model spec, I was very happy to see all the examples, extremely helpful 07:36:47 azaroth: about #211: the agreement was that we would specify the intended audience from the annotation perspective, it would be up to schema to add a property to say 'a person that understands language X is a member of this audience' 07:37:01 ... we would recommend the audience property of schema.org 07:37:18 TimCole: it avoids us needing to do audience description, which is not in our scope 07:37:38 https://github.com/w3c/web-annotation/issues?utf8=✓&q=is%3Aissue+label%3Ai18n-review+label%3Aeditor_action+ 07:37:45 ivan: we also have a list of 'editor'-issues 07:37:59 ... they are editor actions, once done, they are considered to be closed 07:38:37 azaroth: BCP47 changes to keep up to date 07:38:55 ... can we normatively refer to it? 07:39:21 tantek has joined #annotation 07:39:21 ... BCP47 is not versioned 07:39:46 r12a: BCP47 is a hook, because people are referring to out of date RFCs 07:40:02 ... it is created so that specifications stay up to date 07:40:27 ivan: we have a precedence, W3C rec refers to this, so I think can close it with that 07:40:52 r12a: lots of spec refer to BCP47 normatively 07:41:14 azaroth: #225 is fine to continue dc:language, but add a note: 'we require BCP47' 07:41:25 TimCole: because dc:language doesn't preclude that 07:41:44 azaroth: #216 and #215 are accepted, we would require UTC 07:43:48 TimCole: there was a comment that W3CDTF is more flexible 07:44:09 https://github.com/w3c/web-annotation/issues?utf8=✓&q=is%3Aissue+label%3Ai18n-review+-label%3Aeditor_action+ 07:44:11 feedback was on #217: https://github.com/w3c/web-annotation/issues/217#issuecomment-219939781 07:44:46 azaroth: about #210: logical order is way better that visual order 07:44:51 Pending issues for i18n: https://github.com/w3c/web-annotation/issues?utf8=✓&q=is%3Aissue+label%3Ai18n-review+-label%3Aeditor_action+is%3Aopen 07:44:56 azaroth: about #224 (base direction) 07:45:11 r12a: we aren't talking about language, we are talking about direction 07:45:57 azaroth: the example is not correct, but can we require HTML when bidirectional text is required, instead of importing it? 07:46:15 r12a: so require HTML for all arabic, hebrew, etc? 07:46:31 azaroth: only if it is bidirectional, right? a single language determines the direction? 07:46:43 r12a: not necessarily, hebrew could be in latin script 07:47:09 Isn't that ar-latn vs ar-somethingelse ? 07:47:14 ... the kinds of values to need to handle direction aren't the same as for language 07:47:56 fsasaki: the remark was not on the language, but on the unicode characters themselves 07:48:51 r12a: we have some hebrew and latin, but W3C needs to be placed on the left-hand side, and you know which are hebrew characters, but you dont' have an idea about the base direction 07:48:57 ... there's hebrew and latin text 07:49:43 ... an algorithm could put the hebrew text and latin text separately in the correct order, but cannot put the latin text to the left-hand side of the hebrew side without a base direction 07:50:11 ... you have 2 runs (1 hebrew + 1 latin), and 1 base direction 07:50:31 ivan: is it enough to have something like 'direction: ltr'? 07:50:46 azaroth: how many values are there? rtl and ltr? 07:51:06 r21a: you may have a value 'auto' (determine the direction based on the first strong character) 07:51:30 ivan: I would propose: add this term to the vocabulary, with two terms 'ltr' and 'rtl' 07:51:42 fsasaki: this is only relevant for textual body, right? 07:52:10 azaroth: it could be a plain text as resource 07:53:58 ... we should define rtl and ltr as URIS? 07:53:59 ivan: it should be put in the context 07:54:07 PROPOSED RESOLUTION: Add a `direction` property to the vocabulary, to be associated with any content resrouce (body or target) with two possible values, rtl and ltr (in JSON-LD) and define URIs to identify the concepts 07:54:34 ... is it safer to refer back to the HTML doc? in this case, auto could also be used 07:54:59 PROPOSED RESOLUTION: Add a `direction` property to the vocabulary, to be associated with any content resource (body or target) with three possible values, auto, rtl and ltr (in JSON-LD) and define URIs to identify the concepts. Refer back to HTML5 document for the definitions. 07:55:08 r12a: if auto is the default, it may catch a lot of cases 07:55:17 +1 07:55:24 +1 07:55:27 +1 07:55:27 html reference is https://www.w3.org/TR/html5/dom.html#the-dir-attribute 07:55:30 +1 07:55:32 +1 07:55:43 +1 07:55:47 +1 07:55:52 rrsagent, pointer? 07:55:52 See http://www.w3.org/2016/05/18-annotation-irc#T07-55-52 07:55:52 q+ 07:56:11 tbdinesh has joined #annotation 07:56:18 RESOLUTION: Add a `direction` property to the vocabulary, to be associated with any content resource (body or target) with three possible values, auto, rtl and ltr (in JSON-LD) and define URIs to identify the concepts. Refer back to HTML5 document for the definitions. 07:56:22 +1 07:56:24 rrsagent, pointer? 07:56:24 See http://www.w3.org/2016/05/18-annotation-irc#T07-56-24 07:56:29 Clarified that this is the same as where Language property is appropriate 07:56:43 Present+ TB_Dinesh 07:56:47 azaroth: about #222 07:57:38 r12a: when using 'normalization', you mean more than unicode character normalization, but you include it 07:58:04 ... what we are saying, is that if you get a piece of non-normalized form 07:58:20 spec ref: https://www.w3.org/TR/annotation-model/#text-position-selector 07:58:24 ... and you want to establish a range by counting characters, you shouldn't normalize the target document 07:58:46 ... there are reasons why people don't put something in, e.g., NFC 07:59:02 ... however, for text/string matching, you need normalization 07:59:39 ... there was a time to say everything should be normalized, but that time is passed 07:59:57 q+ to ask re DOM manipulation 08:00:02 ack nickstenn 08:00:47 nickstenn: specifically, text position selector, we agreed to be code point sequences 08:01:03 ... that doens't mean normalizing the text, but understanding what the normalized version would be 08:01:05 ack azaroth 08:01:05 azaroth, you wanted to ask re DOM manipulation 08:01:07 ack azaroth 08:02:08 azaroth: the whitespace normalization would be very hard to undo if you're in a browser context, you don't have the raw whitespace 08:02:25 tantek has joined #annotation 08:02:43 TimCole: It's a hard problem, but I'm not sure there's a change we need to make 08:03:04 r12a: I was talking about unicode normalisation 08:03:32 ... you could encode e-acute using 4 codepoints vs 3 codepoints 08:06:37 bjdmeest_ has joined #annotation 08:06:50 scribenick: bjdmeest_ 08:06:55 nickstenn: let's say we can have the same content in two targets, but unicode normalization is different 08:07:01 ... we want to use a text position selector to be useful in both targets 08:07:35 ... what a user agent would allow a user to do, you would still only be able to select grapheme clusters 08:09:15 q? 08:13:03 q+ 08:13:55 ack r12a 08:14:00 q? 08:14:52 bjdmeest has joined #annotation 08:15:45 scribenick: bjdmeest 08:16:33 r12a: let's say, we start our selection 34 characters from the beginning of a paragraph 08:16:38 ... depending on the normalization, we have 33 or 34 08:16:42 nickstenn: we need more discussion, there are cases where we need to normalize before selection 08:17:13 ivan: can we say, by default, everything works with code points, and it has to consistent 08:17:17 ... and we introduce a separate flag, to tell explicity, and we don't normalize 08:17:22 ... I think, in 90% of the cases, the normalization is right choice 08:17:26 TimCole: we have to test implementations 08:17:38 ... will they likely be normalized? 08:17:41 nickstenn: there are two layers: javascript doens't allow an easy way of counting code points 08:17:46 ... and there's the question of counting code points vs counting normalized code points 08:17:50 ivan: seeing an e-acute 08:18:05 nickstenn: you count the code points of the document 08:18:09 ... it is either very interoperable in principle but hard in practice, or vice versa 08:18:14 fsasaki: talking about trans-format documents 08:18:18 ... you cannot enforce normalization for the user perspective 08:18:22 ivan: we could make an explicit case if necessary 08:18:27 r12a: if I'm referring to a target with resume (with acutes), and that target is copied somewhere 08:18:31 ... if I am an implementation trying to find the position of the 's', it may not be problematic to normalize the text 08:18:36 fsasaki: in the IPA case, you don't want your application to do normalization 08:18:40 r12a: I want to keep the text as I have written it, but don't mind the normalization for annotations 08:18:44 nickstenn: we assume we don't alter the document you are annotating 08:18:49 ... we might copy a part and normalize that 08:18:55 r12a: great 08:18:58 nickstenn: so we need a note: please clients, don't alter the current DOM 08:19:03 ivan: so we can close #222? 08:19:08 nickstenn: I'm adding a comment 08:19:33 azaroth: about normalizing whitespace: we didn't mention anything about normalization 08:20:24 ... #206 08:20:37 r12a: that's about a different question 08:20:47 ... not about normalization 08:21:25 ivan: it is, because for a user, the 's' is the third character of resume (with e-acute etc) 08:22:09 ... the text quote selector is a user-controlled selector 08:22:30 nickstenn: there are two layers: pay attention to code points vs encoding 08:22:41 ... and pay attention to normalized vs non-normalized code points 08:22:43 ...they are separate 08:23:22 q? 08:24:40 KevinMarks has joined #annotation 08:25:29 Nick's comment: https://github.com/w3c/web-annotation/issues/222#issuecomment-219958840 08:25:30 https://github.com/w3c/web-annotation/issues/222#issuecomment-219958840 08:25:54 TimCole: you could comment on that, we can revisit if necessary 08:26:17 r12a: that captures protecting the original document 08:26:32 ... about normalizing the text for text quote selector... 08:26:37 ivan: that's #206 08:27:15 azaroth: #221 is about 'normalizing unnecessary whitespace' 08:27:26 ... but there is no separate spec 08:27:31 r12a: whitespace is trending 08:27:44 ... problem is that it's not really defined here 08:27:54 ivan: but there is no such specification? 08:28:35 fsasaki: xpath 2.0 there is regex function using unicode character classes, defining what is whitespace and what isn't 08:28:53 ... interoperability across whitespace across technologies is 'hard' 08:30:58 (the xml schema list of whitespace: http://www.xmlschemareference.com/regularExpression.html#MultipleCharacterEscape ) 08:32:31 (white space in xml https://www.w3.org/TR/REC-xml/#sec-common-syn ) 08:32:42 https://github.com/w3c/web-annotation/issues?utf8=✓&q=is%3Aissue+label%3Ai18n-review+-label%3Aeditor_action+is%3Aopen 08:32:43 bjdmeest_ has joined #annotation 08:32:48 scribenick: bjdmeest_ 08:32:53 ... on of the reasons about trending whitespace, is that whitespace handling of javascript is different from HTML 08:32:58 ivan: we were hoping to get a simple reference to use as a normative reference 08:33:02 ... or to the xpath thing 08:33:07 ... I think everyone would be fine with that 08:33:15 nickstenn: as long as I can use it in the DOM 08:33:22 azaroth: about #217 08:33:39 ... we talked about using dc:datetime and UTC 08:33:58 s/dc:datetime/xsd:datetime/ 08:34:31 ivan: so we can close with ref to #216 08:34:45 azaroth: about #213 08:35:14 ... more than one language is hard for text processing 08:35:44 ... question is: do we allow 0, 1, but not n languages? 08:35:56 r12a: question is: why would you provide a language property? 08:36:28 azaroth: e.g., display annotation from Choice-annotation based on language 08:36:38 r12a: we call this metadata-language 08:37:00 ... you still probably want one language, but might have a situation where two different audience groups read the same thing 08:37:10 ... so using lang-property for that is fair enough 08:37:12 q+ to ask about "This is hello in French: bonjour" 08:37:41 ... we need to know the language of the actual text 08:37:46 ack azaroth 08:37:46 azaroth, you wanted to ask about "This is hello in French: bonjour" 08:37:51 ... question is: can this language property do both of these tasks? 08:38:28 azaroth: is there a single language tag for "This is hello in French: bonjour"? I would say english and french 08:38:48 ... picking one language, I would take english, but there are multiple language tokens 08:39:10 r12a: actually, you need to specify language for a part of a text for some cases 08:39:32 azaroth: proposal: reduce to 0..1, multiple languages within one text would require HTML with xml:lang attributes 08:40:45 q+ 08:40:56 ack r12a 08:41:55 r12a: if you have, e.g., japanese and french, the language property could say 'this is japanese and french' 08:42:11 ... you need to visualize that properly (e.g., use the correct font) 08:42:55 ivan: we are mixing different things, we should not this issue for our own 08:43:17 ... we can fallback to formats that have means to describe these advanced cases, e.g., xml and html 08:44:15 r12a: the language property can only have 0..1 language property, so you can use that as the default text processing 08:44:45 TimCole: for someone that includes french and spanish, they either use html, or indicate one language 08:45:15 ... we could add a note 'you may use multiple languages, but it's better to use advanced formats' 08:45:35 ... MAY is doing at your own risk, so that's fine 08:46:14 q+ 08:46:20 ack r12a 08:46:25 azaroth: so leave as is, but further explain best practice in the note 08:47:07 r12a: many people don't understand the difference between text processing and metadata language properties 08:47:29 ... you will get something that is marked up with multiple language, and you won't know how to process that 08:47:41 uskudarli has joined #annotation 08:47:45 ... so I would prefer one language tag max 08:47:55 My proposal for solution: Keep the functionality, but add an editorial comment on what the MAY can be used for (and using eg, XML or multiple bodies, for more complex cases). 08:48:10 TimCole: we wouldn't recommend multiple language, but we wouldn't disallow 08:49:03 ... e.g., when you have a title of a book containing one separate token, you usually just mark that up as one language 08:49:27 ivan: I would turn this into editorial action 08:49:28 +1 to Ivan 08:52:53 bjdmeest has joined #annotation 08:52:56 scribenick: bjdmeest 08:53:02 ivan: e.g., you have books with two main languages, then you should be able to mark that up, and it would be overkill to use HTML tags for that 08:53:07 azaroth: could we just have two properties? 08:53:25 q+ 08:53:25 ivan: it is metadata, it doesn't claim to be more than that 08:53:54 nickstenn: my assumption is that these annotations need to be rendered, to be rendered correctly, we need text processing metadata 08:54:19 ivan: which wouldn't be a problem for spanish vs catalan 08:54:37 ack r12a 08:54:39 ... if there would be a problem (e.g., french and japanese), then we need more advanced markup, and that would be in the note 08:55:17 r12a: there are text processing problems, even with spanish vs catalan 08:55:50 ... you do need to render this stuff, so you need to know the default language 08:55:57 q+ to suggest first language for text processing 08:56:12 q- 08:56:29 fsasaki: so for text processing, we use html 08:57:12 TimCole: what will users do? leaving MAY in, will lead to abuse 08:57:34 ... leaving MAY out, users will put in only one language 08:57:45 ... which risk is the worst? 08:58:04 nickstenn: if you mix languages, it's complicated, there are no simple cases 08:58:34 ... we should use things as used, e.g., in xml and html 08:58:44 ... and not create a simple case that breaks this 08:59:00 q+ 08:59:31 fsasaki: if you have to copy a whole catalog (e.g., multiple bodies), that's not efficient 09:00:13 ivan: we need text-only annotations with several languages 09:01:22 ack r12a 09:02:12 r12a: I understand the need for the metadata, but why copy the whole catalog? 09:02:54 azaroth: if I want to search for a book, that is both french and italian, you need 2 annotations, once using french, once using italian 09:03:25 TimCole: that won't happen 09:03:49 ... maybe we should wait on your i11n meeting? 09:04:30 r12n: we can do an extra meeting with you guys 09:04:55 ( some background on the i18n metadata topic, discussed in the i18n group : https://www.w3.org/International/wiki/ContentMetadataJavaScriptDiscussion ) 09:05:03 ... one more thing: the meaning of the language property is different for the target and the body 09:05:25 ... for target, it is metadata, for body it is more text processing related 09:06:04 bjdmeest_ has joined #annotation 09:06:14 scribenick: bjdmeest_ 09:06:20 azaroth: I think #209 is the same as #206, or #221 09:06:22 https://github.com/w3c/web-annotation/issues?utf8=✓&q=is%3Aissue+label%3Ai18n-review+-label%3Aeditor_action+is%3Aopen 09:06:25 ivan: so we can close #209 09:06:55 ... r12a, these have to be closed recently? 09:07:08 link: https://github.com/w3c/web-annotation/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Ai18n-review+-label%3Aeditor_action+is%3Aopen 09:08:27 [all]: buy r12a, thanks! 09:08:31 s/buy/bye/ 09:08:41 TimCole: about #214 09:09:05 https://github.com/w3c/web-annotation/issues?utf8=✓&q=is%3Aissue+-label%3Ai18n-review+-label%3Apostpone+-label%3Aeditor_action+is%3Aopen+ 09:09:42 ivan: these should be closed 09:10:28 azaroth: I think #214 are just editor actions 09:10:38 ... and also #227 09:10:50 azaroth: about #214 09:11:26 ... point 1, I think @context can go anywhere 09:11:38 ... point 2, datatype for rights is unclear 09:12:33 TimCole: text-based rights are deemed useless in many communities 09:12:53 azaroth: point 3: cardinalities about rights should be 0..1 09:13:06 nickstenn: you could always have a dual-license as a new URI 09:13:37 azaroth: point 4: for republishing annotations, we only use an IRI 09:14:00 azaroth: point 5 and 6 also 09:14:08 ... if no problems, moving on. 09:14:21 nickstenn: about #227 09:15:06 ... we should not talk about encoding 09:15:40 ... this is about text quote selector 09:16:11 ... just going to close it 09:17:14 planning: small break, then 1 hour testing, then lunch 09:17:30 uskudarli_ has joined #annotation 09:18:15 Thanks to bjdmeest for the scribing 09:21:34 Present+ Sergiu_Gordea 09:22:09 For the minutes, from takeshi: the unicode consortium's table of characters that share a codepoint between CJK languages, but must be rendered differently: http://unicode.org/charts/PDF/U3400.pdf 09:29:31 TimCole has joined #annotation 09:32:23 scribenick: nickstenn 09:32:59 TimCole: our goal is to talk about testing 09:33:07 Topic: Testing 09:33:08 ... plan is 10-15m introduction about what's in progress 09:33:22 ... and then bigbluehat will demo what we've been up to with Shane 09:33:39 ... we'll spend another ~1h after lunch on testing 09:34:16 ... any objections? *crickets* 09:34:38 ... Here are the tests we've been working on https://github.com/Spec-Ops/web-platform-tests/tree/master/annotation-model 09:34:59 ... goal here is to provide a platform for testing the data model and vocabulary in particular 09:35:11 ... after lunch we'll discuss whether the same platform will be used/usable for the platform 09:35:36 ... extensive documentation in the repository about how this all works 09:35:37 gsergiu has joined #annotation 09:36:20 ... the basic summary is: we're looking at the [RFC 2119 statements] in the spec 09:36:42 ... we translate those into tests ... a .tst file, which run in the test harness 09:36:56 ... we're trying to record which implementations have correctly implemented which features 09:37:20 spreadsheet: https://docs.google.com/spreadsheets/d/1QwhHYyEd-106nvwe_q-A9z02wO9R-Oa7l5vnmMlYTQ0/edit 09:37:24 ... azaroth has been working on a spreadsheet that tries to capture all the testable assertions ^ 09:37:36 And I filled out all the MUST/SHOULD/MAY for 1 last night and this morning 09:39:20 ... [walking through a (different) document with extracted testable assertions from the model spec] 09:40:21 ... looking at these makes us wonder whether all of these assertions can been tested using jsonschema 09:40:40 ... (which is the way the current tests work) 09:40:58 q+ to suggest we should not validate data values for language and format 09:40:59 ... having done that, 09:41:23 ... have manually created schemas for §3.1 in the model 09:41:55 ... e.g. "MUST have a context" https://github.com/Spec-Ops/web-platform-tests/blob/master/annotation-model/common/context.json 09:42:13 ... e.g. "context MUST have value <...>" https://github.com/Spec-Ops/web-platform-tests/blob/master/annotation-model/common/contextValue.json 09:44:29 ... [showing the format of a jsonschema, including test metadata such as "assertionType": "(must|should|may)" and a human-readable error message] 09:46:12 Link: http://json-schema.org/latest/json-schema-validation.html 09:47:12 ivan: there are tools for validating against jsonschema documents available in a variety of programming languages? 09:47:27 LuSu has joined #annotation 09:47:38 Link: http://jsonschemalint.com/draft4/ 09:47:44 TimCole: yes, and there are also web services which can be used such as http://jsonschemalint.com/draft4/ 09:48:06 http://json-schema.org/latest/json-schema-validation.html is the one we're using 09:48:08 v5 basically 09:50:03 ... here's the example schema for checking that we have an @context property, which may be an array, one element of which should be our context IRI: https://github.com/Spec-Ops/web-platform-tests/blob/master/annotation-model/common/contextValue.json 09:50:14 ... unfortunately, this doesn't test that 09:50:29 ... it tests that the *first* item in the array is our context 09:50:57 ... which may result in false negatives -- conforming documents will fail the jsonschema validation 09:52:59 ... we could solve this by having 1 test comprise multiple schemas, and the test passes if >1 schema validates 09:54:54 we tried this @context spec like this https://pad.riseup.net/p/jants.wa.json.schema so there are many ways to specify. and yet we are not sure if this ok. 09:55:00 Order matters only for @context and items, I believe 09:55:38 ... problem here is that jsonschema seems to be strict about ordering in unhelpful ways, but JSON-LD is not 09:55:47 shepazu: I don't want the tail to wag the dog 09:56:24 ... but some of this may be valid feedback on the design of the spec -- if it's hard to test, perhaps it's not helpful 09:56:59 azaroth: we need to be aware of the possibility that if we uncover issues in testing, while in CR, we'll have to reset the clock on CR 09:58:23 TimCole: be aware, a small group has gone some way down the path on this approach to testing 09:58:40 ... the larger group now needs to weigh in on that effort 09:59:14 ivan: the result of testing a specific implementation needs to be reported back 09:59:46 ... have seen in other groups, great implementation reports. Will we have those? 10:00:41 bigbluehat: this is a good segue into the manifest format which Greg has designed: e.g. https://github.com/Spec-Ops/web-platform-tests/blob/master/annotation-model/sample2.test 10:01:00 ... these are json-ld documents which describe a test in terms of the assertions in the common/ directory 10:02:18 ... and can also include inline schemas for additional assertions 10:02:50 ... there's also the ability to "failAndSkip" if we want to report a failure but keep running when an assertion fails 10:03:36 ivan: not sure this is the "manifest" 10:04:00 ... Greg usually refers to the "manifest" as the document in which you report your test results, which in turn is translated into an implementation report 10:06:24 bigbluehat: here's an example of what running the tests looks like: http://shane.spec-ops.io:8000/tools/runner/index.html 10:08:17 ... you run the test suite by providing some example output from your implementation (a JSON-LD annotation) manually 10:11:01 ivan: What I like about this: although the tests themselves are of a fine granularity, you can paste complex annotations into the testing tool 10:12:06 ... does this have the ability to dump a report of the test results? 10:12:08 bigbluehat: yes 10:12:30 ivan: the report needs to include a detailed list of which tests were run, not just an overall pass/fail data 10:15:20 bigbluehat: part of the motivation for writing these tests in this way is to allow other implementers to use the *data* (the JSON-LD/jsonschema test descriptions) to validate annotations using their own toolchain in future 10:15:52 TimCole: we currently don't fail for out-of-spec (unrecognised) properties 10:16:18 azaroth: that's fine, but it does mean it's easy to generate an annotation with a typo in a key (e.g. "purrpose") which passes all tests 10:17:21 ivan: Are we also testing that this is valid JSON-LD -- i.e. when it's translated into RDF it's compliant with the vocabulary 10:18:09 ... that should be a basic property of the test suite -- everything has to be valid json-ld 10:18:21 lenazun has joined #annotation 10:18:33 q? 10:18:36 ack azaroth 10:18:36 azaroth, you wanted to suggest we should not validate data values for language and format 10:19:51 bigbluehat: we can use preexisting tools to validate the RDF by simply providing our vocabulary to Greg 10:20:20 ivan: it is important that we do test that any annotation can be mapped to valid RDF 10:20:56 ... but these checks can be limited to syntactic checking 10:21:14 ... we're not going to test that (e.g.) Shape resources are semantically correct 10:22:03 ivan: another "zero-level" test we should be doing is to ensure that the JSON-LD context file is correct 10:22:17 ... and verify every JSON-LD example in the document 10:22:26 s/document/spec(s)/ 10:22:53 TimCole: the other thing azaroth and I talked about: we have examples from the model and we should test they all pass 10:22:59 ... we also need examples of invalid annotations 10:24:26 gsergiu: we should fail if there are unknown keys in the annotation [that don't match an added context] 10:24:53 ivan: we need to check with Greg if we can do this in the context of the test harness 10:25:11 azaroth: but regardless, unmapped keys are *always* valid in a JSON-LD file, even if not mapped 10:25:50 TimCole: we need to give the implementer a way to express which tests they expect to be run/applicable 10:26:00 ... or at least a report of which tests were run/applicable 10:26:46 gsergiu: another issue -- different checks might have different severity: error/warning 10:27:06 ... some profiles could be defined to warn if we (for example) see keys we don't recognise 10:28:44 q+ 10:28:55 ack nickstenn 10:31:04 nickstenn: we're testing one half of an implementation: that an implementation can produce a conforming annotation document, but not that it can consume oen 10:31:07 s/oen/one/ 10:32:31 ivan: the purpose of the tests is to test that the spec is implementable, not that implementations are correctly implementing the spec 10:32:43 rrsagent, draft minutes 10:32:43 I have made the request to generate http://www.w3.org/2016/05/18-annotation-minutes.html ivan 10:33:28 TimCole: breaking for lunch 10:39:43 r12a has left #annotation 11:14:41 shepazu has joined #annotation 11:24:36 TimCole has joined #annotation 11:25:17 takeshi has joined #annotation 11:26:36 ivan has joined #annotation 11:30:16 scribenick: bigbluehat 11:30:30 topic: Protocol Testing 11:30:39 azaroth: so far we have not had any protocol discussion 11:30:48 ...we've briefly mentioned that we could use the LDP tests 11:31:00 ...if we were to start with that, we'd need to write our tests in Java 11:31:14 ...separate from our other tests 11:31:36 ...but you could use the descriptive tests from the model within the Java tests 11:31:53 ...In terms of what we would need to test 11:32:04 ...clients that interact with a server; and servers that interact with the client 11:32:08 ...both ends need to be testable 11:32:16 ...one way I'd thought of was reference implementation 11:32:40 ...such that you could swap out either side of the reference implementations with your own 11:32:59 ...if we used the LDP tests, then we could lean on the data model tests separately--or incorporate 11:33:11 ...so we could combine them and get data model testing "for free" 11:33:24 ivan: what information do we have on what the LDP people did 11:33:38 ...more interestingly can we simply piggyback on what they 11:34:11 Link: https://github.com/w3c/ldp-testsuite 11:34:27 bigbluehat: we change the default from turtle to json-ld, but everything else is more or less the same 11:34:33 ivan: who did the ldp tests? 11:34:40 azaroth: mostly IBM folks 11:35:16 ...they've sadly not been terribly responsive--there are old open PRs on GitHub for instance 11:35:35 bigbluehat: who knows java? 11:35:39 ...crickets... 11:36:10 azaroth: I think it would be quicker to re-implement the bits we actually need in something we can build 11:36:32 ivan: if we could use an existing LDP server, that might be helpful 11:36:54 azaroth: Apache Marmotta was the closest, but it won't do any of the new things we've added or the change in the default type 11:37:29 bigbluehat: I'd looked into use hippie.js but that only tests the server, not the client 11:37:44 azaroth: a vast majority of the tests are around HTTP headers and method combinations 11:37:51 tbdinesh has joined #annotation 11:37:55 ...when you do a GET, then the response must have these 3 headers on it 11:38:13 ivan: of course the HTTP header requirements are simple 11:38:38 ben_thatmustbeme has joined #annotation 11:38:54 ...but the server has to implement the whole thing: storage, etc. 11:39:09 azaroth: implementing's not too hard. it took me 2 days to do the one I built--which I found spec issues from after 11:39:15 ...and then iterated both to what we have now 11:40:44 bigbluehat: you could do it in javascript; I'd found hippie for testing, you could use express to build the server 11:41:16 azaroth: there are existing implementations that could be upgraded to support the protocol 11:41:23 ...but none know to exist today 11:41:47 TimCole: we tried a couple different attempts 11:42:10 nickstenn: Hypothesis is interested in doing this 11:42:14 ...but it's kind of a bad time for us 11:42:21 ...because we're swapping out our data storage 11:42:40 ...what we have now is a descendent of the Annotator API 11:42:53 ...our current format has some similarities to the data model 11:43:00 ...read output could be done in a few months time 11:43:11 ...write would take bit longer 11:43:19 azaroth: so lets talk about the elephant in the room known as authentication 11:43:32 ...so we either support several authentication methods on the test platform 11:43:42 ...or we have a test server that is world write-able 11:43:51 ...and we have to store them for at least some time 11:43:59 ...even if we throw them out after an hour 11:44:14 ...it would still have to be an actual read/write server-side thing 11:44:42 ...if 10 people are all in at the same time...race conditions 11:45:03 bigbluehat: could we run implementations in their own destructible containers? 11:45:10 azaroth: I think we have to do something like that 11:45:43 nickstenn: we could just do token-based authentication per-container 11:45:56 azaroth: yeah, we could give dynamically named containerized endpoints for people to test against 11:46:05 bigbluehat: and then only the person testing knows about that temporary annotation server 11:46:27 ivan: how would the test suite work exactly 11:46:33 azaroth: the way I've been thinking about it 11:46:45 ...a client would try to test various scenarios against the server 11:46:50 ...try to POST to the server 11:47:00 ...server would check the headers, etc. and record a validation report 11:47:13 ...the client would then try to GET the annotation back, server would report, etc. 11:47:49 ...the flip side: the client does the reporting of the same process of a specific server 11:48:13 ...and then you'd combine the reports to see the full validation of client-against-server and server-against-client 11:48:20 ivan: my feeling was a little bit different 11:48:26 ...we are not testing the client. 11:48:49 ...we cannot rely on the fact that the client will generate the correct requests 11:49:10 ...so I was thinking we'd write up the scenarios, and the client would attempt them and then validate against the scenario 11:49:15 ...did I get back what I expected? 11:49:33 ...and then we could use that same list of scenarios on the server to test that it's getting what it expects from the client 11:49:41 ...when I start somewhere with some valid JSON-LD 11:50:10 ...then the client & server goes through the protocol then one side or the other should end up with the matching things 11:50:23 azaroth: we'd actually only need to implement the server, then. 11:50:43 ivan: scenario: I POST an annotation, I GET an annotation, I POST a change 11:50:46 ...the server has to do things 11:50:54 azaroth: but we're testing that the server does those things 11:51:08 ivan: we're testing what the protocol expresses 11:51:27 ...what we're testing is a reasonable set of scenarios for annotation servers for which we have defined a protocol 11:51:51 ...we need to be sure that the protocol contains the necessary things to move that data in that conversation 11:52:18 ...the more of the work that is on the server, the easier 11:52:25 TimCole: what are the features of the protocol? 11:52:36 ivan: we'd actually need two servers 11:52:45 ...and a baby client 11:52:59 ...both servers should respond in a correct way to the requests made by the client 11:53:44 ivan: we could have the same things from the data model tests 11:54:16 ...if we have the two servers and a reasonable set of scenarios, then we're testing the protocol. 11:54:26 ...the number of round scenarios...what 10? 11:54:29 azaroth: maybe. 11:54:38 ivan: I don't see many scenarios needed 11:54:56 nickstenn: it makes authentication harder again 11:54:58 ivan: why? 11:55:15 nickstenn: we could write the dummy servers, but it would be nicer 11:55:24 ...the client is basically a shell script that runs the tests 11:55:34 ...but it needs to have some authentication to talk to real-world servers 11:56:10 azaroth: could we require a world-writeable or shared-secret auth sort of thing for implementers to use when testing? 11:56:14 nickstenn: yep. something like that could work 11:56:31 ivan: it's important that we have real world implementors 11:56:36 gsergiu: we can offer one 11:56:45 ...right now there are two annotation types supported 11:56:52 ...depends on how many use cases are being tested 11:57:08 ...if there are new types of annotations not in our roadmap, we could branch and implement there 11:57:29 azaroth: if it's just at the model level, then I don't think it's in-scope for testing the protocol 11:57:46 ...we're going to update it to this, we're going to retrieve it...or do multiples, or whatever 11:57:55 ivan: right and what we get back should be our annotation data model 11:58:08 ...we can then push that data in to the other data model validation code 11:58:17 ...and into greg's reporting system 11:58:28 tbdinesh: so the point of 2 servers? 11:58:37 ivan: yeah. we need two servers that are implementors 11:58:49 ...do you have one tbdinesh? 11:58:54 tbdinesh: depends 11:59:00 TimCole: LDP does bring some overhead 11:59:15 ...but in this case we don't need to worry about efficiencies, etc. just that it works according to the protocol 11:59:28 ...so you're right, there's not a lot to be done to make this work 11:59:35 tantek has joined #annotation 11:59:40 ivan: does the protocol have enough information to do what we expect it to do 12:00:03 TimCole: so the response from two different servers should be identical? 12:00:18 azaroth: no. they could add their own custom and the created/modified values, etc. 12:00:42 ivan: could we do the schema approach for pagination? 12:00:46 azaroth: yeah. I think so. 12:00:51 ...we'd need new schemas 12:01:19 ivan: so the server has a certain level freedom with regards to pagination 12:01:29 azaroth: I think it's deterministic for certain requests 12:02:01 ivan: right. the pages of annotations do change per request modifiers 12:02:13 gsergiu: you'd just need to prove the collection size? 12:02:15 paging spec ref: https://www.w3.org/TR/annotation-protocol/#responses-with-annotations 12:02:23 ivan: we have to prove that I get back all the things I put there 12:02:53 nickstenn: one thing you want to test that the response format is correct 12:03:03 ...the second thing you want to test is what you expect 12:03:37 s/test is what/test is that the server state is as/ 12:03:37 TimCole: the report should be able to say that you got the number back you put in 12:03:55 gsergiu: you could say, I have this series of annotations 12:04:02 ...and this is my expected results 12:04:32 azaroth: so if the test script, says create, create, create, create, create and then retrieve and there are not 5 entries, then it's invalid 12:04:46 TimCole: a container response even when paged shows the total number when coming back? 12:04:47 azaroth: yep. 12:05:23 s/yep./yep, there could be a server with a page size of 2, which would not find the 5 annotations/ 12:05:42 bigbluehat: yeah. JSON Schema could test that pagination is there, but not what it's value is 12:05:47 ...JSON Schema's not the tool for that 12:06:03 azaroth: all of the operations have a set of set response headers that should be returned 12:06:16 ivan: the toy client has to return those headers, correct? 12:06:52 gsergiu: you could map them to JSON 12:07:17 nickstenn: well...you can, but not easily 12:07:54 ...you are right it can be done 12:08:03 ...tests being defined as data would still be a good thing 12:08:16 ...but that data may just be a text file that contains headers we expect to see 12:08:34 TimCole: essentially what you're doing is instrumenting the client with these tests 12:08:39 ...it has to report back 12:09:01 nickstenn: summary. however we define them, they should be generated from data rather than tied directly to the implementation 12:09:29 s/define them/define the tests/ 12:09:38 s/implementation/implementation of a specific test client/ 12:09:54 Action on azaroth to work through protocol and make spreadsheet of MUST/SHOULD/MAY tests 12:09:54 Error finding 'on'. You can review and register nicknames at . 12:09:59 ivan: we need a similar document for the protocol to what we have for the tests 12:12:21 scribe would like to note that lots of people of are volunteering for all kinds of testing things...but with no definitive promises as yet 12:12:35 TimCole: we have gsergiu and others working on a server 12:12:59 nickstenn: we're working on some piece of this with a view to Hypothesis being able to write some part of it 12:13:27 TimCole: azaroth you could write the server and nickstenn could write the client 12:13:32 nickstenn: yeah, we can figure out who does what 12:13:52 ivan: yeah. keeping it separate is even better 12:14:38 bigbluehat: I may have more significant time soon, but can't promise anything beyond spare cycles at this point 12:14:44 TimCole: anyone else have time for helping? 12:14:57 shepazu: why are you asking? 12:15:06 TimCole: just to be sure we have good accurate scenarios 12:15:17 ...I think the scenarios should be built by the group 12:15:41 shepazu: you've asked several times for help. I just want to be clear about the why 12:15:56 ...some people do the work. other people vet it...I just want to be clear about what you think is needed 12:16:07 TimCole: I don't think we need a larger group writing servers 12:16:36 ...but these scenarios and a should/must matrix 12:16:46 azaroth: yep. I'll tackle the should/must 12:17:21 TimCole: have thought about it over lunch, have we had a discussion about vocab testing 12:17:30 bigbluehat: yep. greg has tools that should do what we need when we need it 12:17:52 TimCole: who's going to handle incorrect annotations to run through the validator? 12:18:16 ...I can ask when I get back to Illinois 12:18:31 azaroth: the trick is not just creating incorrect annotations, but ones that are strategically incorrect 12:18:48 ...in order to test that certain tests fail correctly 12:19:20 TimCole: we need to know that these annotation should fail in specific ways 12:19:38 tbdinesh: I think everyone should submit 3 broken annotations 12:19:49 TimCole: I'll ask again in a couple weeks to see who's interested and available 12:20:40 ivan: does JSON Schema support data type testing? 12:20:48 bigbluehat: azaroth: TimCole: yes. lots of options there 12:20:59 {visitor}: have you considered using RDF Shapes? 12:21:07 s/{visitor}/hugo/ 12:21:13 TimCole: yes. for vocabulary testing 12:21:24 Present+ Hugo_Manguinhas 12:21:25 Present+ Hugo_Manguinas 12:21:26 ...it's mostly a question for Greg to decide 12:21:54 SHACL 12:22:00 hugo: the thing we worked with is SHACL one and it supports several things 12:22:23 TimCole: two questions: is it ready, and who knows enough about it to write the shape documents for our ~150 MUSTs and SHOULDs 12:22:32 ...if we could automate it, that'd be super 12:22:40 ...we have people who can generate JSON Schema 12:23:04 ...I just don't think we're ready for it 12:23:35 hugo: if you need internal comparisons of for instance date values 12:23:42 TimCole: yeah. we don't do that. just date format 12:24:05 ...what I know of RDF Shapes, it could certainly be of benefit 12:24:10 ...but we don't currently have someone to do it 12:24:17 azaroth: would you like to do it hugo? 12:24:28 uskudarli has joined #annotation 12:24:36 hugo: they're not that hard to write. it could be interesting for us to apply this technology for annotations--we're already using it 12:24:51 TimCole: we will have in a very few days of the list of constraints for all the tests 12:26:02 hugo: there's still a situation where you have some surface that JSON Schema and vocabulary testing won't be able to test 12:26:27 TimCole: azaroth: Web Annotation has a very specific shape 12:26:46 ivan: you can use our vocabulary where ever you want--even RDF/XML--in any way you like 12:26:59 ...but if you're using our Web Annotation JSON format it has to be in that specific shape 12:27:29 TimCole: we're not geared up to test the other possible serializations 12:27:52 hugo: should there be a split between a schema and syntactical testing? 12:28:04 azaroth: yep. it's a discussion we've had and we are essentially doing it. we should talk later. 12:28:19 ivan: for each test that we run has to be approved by the working group. 12:28:38 ...for the JSON Schema that should be easy enough for everyone to appraise and agree upon 12:28:47 ...for SHACL I don't think we have anyone to validate it 12:28:56 ...that it is a valid test for our scenarios 12:29:02 ...it's crazy, but that's they way it is 12:29:14 ...if you have the SHACL's, we'd love to see them and add them to our repo 12:29:29 ...but they aren't likely to be canonical tests as we'd not have the people to approve them 12:29:42 TimCole: but to your point about shape testing vs. semantic testing...we are essentially doing that 12:30:02 tbdinesh: you do need to know how things are stored? 12:30:16 ivan: we don't care how it's stored, just as long as it comes back in the right way 12:30:27 TimCole: k. that's our 2 hours on testing. 12:30:39 ...the other thing we may talk about is that even if we're using shapes 12:30:50 ...that can feedback annotations, would be ones to feed our test environment 12:31:02 ...I don't know what we want to do to share their annotations with us 12:32:14 bigbluehat: would love to discuss that later. we could keep annotations, etc. (with permission) for iterating on our tests 12:32:22 azaroth: I'd like to move to the rest of the agenda 12:32:49 ...we have serialization, tpac, signaling, and other work started but not finished (findtext, search, etc) 12:32:53 ...also collaboration bits, etc. 12:33:10 ivan: before we go into the "short" list, we should try to close the remaining 3 issues. 12:33:19 ...quickly is fine. but we need to formally close them 12:33:34 ...then it'd be just the i18n issues which we could do formally with them elsewhere 12:34:05 Topic: remaining issues 12:34:21 link: https://github.com/w3c/web-annotation/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+-label%3Apostpone+-label%3Aeditor_action+ 12:34:44 azaroth: there are 3 outstanding issues 12:34:44 rrsagent, draft minutes 12:34:44 I have made the request to generate http://www.w3.org/2016/05/18-annotation-minutes.html ivan 12:35:26 https://github.com/w3c/web-annotation/issues?utf8=✓&q=is%3Aissue+is%3Aopen+-label%3Apostpone+-label%3Ai18n-review+-label%3Aeditor_action+ 12:35:43 ...actually just one https://github.com/w3c/web-annotation/issues/147 12:36:30 ...oh and https://github.com/w3c/web-annotation/issues/204 12:36:38 ...in order to close #204 12:36:44 ...stick to just HTTPS URLs 12:37:00 https://github.com/w3c/web-annotation/issues/204#issuecomment-210202818 12:37:05 ...and the larger "don't annotate me" discussion is for later 12:37:18 https://github.com/w3c/web-annotation/issues/204#issuecomment-210202818 12:37:51 PROPOSED RESOLUTION: Add a recommendation for HTTPS into the protocol spec 12:37:53 +1 12:37:54 +1 12:37:58 +1 12:38:00 +1 12:38:08 +1 12:38:13 +1 12:38:32 +1 12:38:41 +0 12:38:50 RESOLUTION: Add a recommendation for HTTPS into the protocol spec 12:38:52 rrsagent, pointer? 12:38:52 See http://www.w3.org/2016/05/18-annotation-irc#T12-38-52 12:40:05 gsergiu has joined #annotation 12:42:33 ivan: we have a longer discussion to be had, but it would be good to focus on just the document related issue 12:42:47 ...and ideally focus on moving to CR 12:42:55 shepazu: I would like to do it now 12:43:39 ...and then discuss the effects it may have 12:43:48 bigbluehat: propose to close now, and then potentially reopen 12:44:23 ivan: I'd like to be able to say that we did everything we can at this stage to close the issue against the documents 12:44:51 shepazu: I made it clear to PING that we would likely not address it in V1 12:45:10 PROPOSED RESOLUTION: We will defer work on signalling mechanisms regarding opt-out of annotation to a future version of the specifications 12:45:12 +1 12:45:13 ivan: then we're clear to close the issue and move toward CR and address this in the future and with more dicussion 12:45:16 +1 12:45:20 +1 12:45:26 +1 12:45:29 +1 12:45:29 +1 12:45:53 +1 12:45:54 +1 12:45:58 rrsagent, pointer? 12:45:58 See http://www.w3.org/2016/05/18-annotation-irc#T12-45-58 12:46:00 RESOLUTION: We will defer work on signalling mechanisms regarding opt-out of annotation to a future version of the specifications 12:47:11 ivan: so now, provided we can handle the i18n, we can go to CR 12:47:55 Topic: Opt-out preferences 12:47:57 https://www.w3.org/annotation/wiki/Publisher_preferences 12:48:38 shepazu: does anyone not know the back ground? no one? k. I'll assume you know the background 12:48:51 ...we've long had a need for notifications about when someone's annotated your page 12:49:23 ...ideas like partnerships where you might advertise an annotation service to be used (possibly with incentive) 12:49:42 ...when you combine that with opt-out and harassment prevention I think they can all be encapsulated in a single proposal 12:49:59 ...If you check the proposal, I'm trying to suggest that we not invent anything new for this 12:50:12 ...link tag, rel attribute, and meta tags 12:50:29 12:52:44 ...insert technical difficulties with projector... 12:53:39 shepazu: we don't want to do this with robots.txt because we want to do it on a per file...per file...or per resource basis 12:53:49 ...so I'm suggesting the meta tag, link tag, and some other HTML stuff 12:53:58 azaroth: can you explain why we can't do that with robots.txt? 12:54:08 shepazu: most people don't have access to robots.txt 12:54:21 azaroth: but then you can't do it for anything but HTML 12:54:32 shepazu: no. there are ways to do this for other things besides HTML 12:56:40 shepazu: so "nocomment" means they don't want you to commit on their blog at all 12:57:05 ..."noselection" they don't want someone reusing selections from their books--a different use case of I don't want people stealing my content 12:57:41 ..."nopublic" that people can't publish their thoughts about someone's content 12:57:52 ..."nodisplay" meaning they don't want other peoples content shown over theirs 12:58:19 ..."moderated" the link would point to where you need to publish something in order for me to have it on my page 12:58:31 shepazu: then we get to rel="author" 12:59:09 ...using rel="author" so it can be used on anchor tags 12:59:50 ...also rel="comment-moderation" where the URL is where you send stuff to be moderated 13:00:08 ...I'm still fuzzy about how this would work with someone's own hosting 13:00:19 ....no one wants to moderates all the comments themselves 13:00:29 ....so having something like comment whitelist and blacklists might be preferrable 13:00:51 ...if, for instance, Hypothesis curates a whitelist or blacklist of comments, I could use that 13:00:55 ...or whomever 13:01:31 Kind of like https://www.w3.org/TR/annotation-protocol/#discovery-of-annotation-containers 13:01:32 ...then we have rel="comment-service" which can point to an annotation publishing service 13:01:35 ;P 13:02:13 ...this is an opportunity for adding to the value of the page 13:02:20 Spec says: Any resource may link to an Annotation Container when Annotations on the resource should be created within the referenced Container. 13:02:59 ...proxied annotated content is another place people felt violated 13:03:24 ...Genius for instance was republishing content 13:03:48 ...so. we could use to signal that one doesn't want their content archived 13:04:07 ...and then I think we could also use rel='webmention" for signally 13:05:49 bigbluehat: so. I think the rel="nodisplay" has the most potential for discussion today 13:06:00 azaroth: the others feel like their completely out of scope 13:06:40 shepazu: mostly the hope is to fix the misperception that annotation are bad 13:06:51 ivan: so is this signally really the direction we want to go 13:06:58 ...I don't know how Genius actually works 13:07:13 ...an annotation service has something dwhly calls "layers" 13:07:38 ...so the person who reads the content can optionally turn these layers on to see the original content with or without the additional content 13:08:01 ...anyone who runs a blog knows that comments are mostly often bad, offensive, spam, etc. 13:08:12 ...and I don't even look at them 13:08:25 shepazu: I hear what you're saying, but it's not only about me 13:08:34 ....so let's say I personal turn that layer off 13:08:47 ...but what if I don't want anyone else to see them? 13:09:07 ivan: so. they go to my blog and switch on the annotation layer. 13:09:15 lenazun has joined #annotation 13:09:16 shepazu: I don't think that's decided yet 13:09:37 ...I don't know who's using facebook, but of all the things people post I only see what it selects 13:09:59 ...what the service does on your behalf is not up to you, it's up to the service 13:10:09 +q 13:10:34 ivan: and I always change that 13:10:54 lenazun: in the last few weeks, we interviewed a lot of people who has been analyzing harassment 13:11:00 q+ to suggest that anything other than nodisplay is completely unsolvable 13:11:02 +q 13:11:02 ...it does often happen in a private space 13:11:11 ...in which you have no control but it still gets exchanged 13:11:13 ack lenazun 13:11:19 ivan: yeah...and I am absolutely aware of that 13:11:29 ack azaroth 13:11:29 azaroth, you wanted to suggest that anything other than nodisplay is completely unsolvable 13:11:42 ...but the fact of just putting these "don't comment on me" doesn't seem to solve any of that 13:11:49 azaroth: to follow on from that, it's completely unsolvable 13:11:58 q+ 13:12:09 ack dwhly 13:12:33 ...we're using the Web. it's a public publishing media. it's not been solved in 20+ years. we 20 people here aren't going to magically solve it....I think we should move on 13:12:56 dwhly: so. one thing we have discussed is concern around the publicly discoverable annotations list 13:13:16 ...we're trying to make annotation a world-wide known and available form of content 13:13:34 ...we may get to the future where it's impossible to shut that off 13:13:52 ...and that was the thing people were beginning to be concerned about 13:14:05 ...there's a wide range of opinion on this 13:14:27 q+ to ask where this could go in the current spec? rights? 13:14:39 ...it can't just be choose your layer, because there may be a huge public layer available anyway 13:15:04 TimCole: it is a bit of an impediment for content providers, so while I think it's out of scope, there is a concern that it is an issue by people using annotation 13:15:16 ...there does need to be continued discussion had on the topic and we should be involved in it 13:15:22 q+ 13:15:28 ...but I don't think the answer comes from material we're making here 13:15:38 ...it would be good for us to stay in the discussion and explore options 13:15:47 ...we have to ship what we have and can't solve this first 13:15:54 ...but we hope we can stay in the conversation 13:15:56 ack TimCole 13:16:07 and if there's an interest group, then that would be a better place 13:16:25 ack tbdinesh 13:16:25 tbdinesh, you wanted to ask where this could go in the current spec? rights? 13:16:44 trackbot: if this was a current spec, could you do it around the writes (vs. the reads) 13:16:44 Sorry, bigbluehat, I don't understand 'trackbot: if this was a current spec, could you do it around the writes (vs. the reads)'. Please refer to for help. 13:16:53 tbdinesh: if this was a current spec, could you do it around the writes (vs. the reads) 13:16:56 ack ivan 13:16:59 q? 13:17:00 s/trackbot: if this was a current spec, could you do it around the writes (vs. the reads)// 13:17:14 shepazu: yeah. there's more to be explored here 13:17:36 ivan: so. I understand what you're after here, but I think we need to be careful to not fool ourselves that there may be a technical answer to this problem 13:17:44 ...the problem is very much a social problem 13:17:56 ...it leads teenagers to suicide 13:18:10 ...and some of the things that happen online are now criminal activity now 13:18:18 s/activity now/activity 13:18:28 ...there's an upcoming interest group where this would be better address 13:18:29 +1 to Ivan 13:18:37 +1 to Ivan 13:18:47 ...I don't think putting the technical solution first is going to get us to the right end 13:19:01 shepazu: so I agree and had thought about the interest group 13:19:07 ...robots.txt works for instance 13:19:19 ivan: I think it's a mix of both technical and social 13:19:43 shepazu: I differ with you in that I think the social problem is well understood 13:19:51 s/writes/right(s) 13:20:05 ...and the basis for the technical solution is pretty simple at this point 13:20:15 ivan: I disagree. there's so much to cover here 13:20:41 shepazu: the ability for someone to state their preferences is important 13:20:44 ...and that's all this does. 13:20:49 q+ 13:21:00 q+ 13:21:04 ...to be able to state what my preferred defaults are 13:21:05 q+ to disagree with HTML centricity 13:21:27 ...gamergaters, etc. are going to have clients that ignore all this anyway 13:21:32 ...this is only for good actors in the system 13:21:44 ...and we hope that the good actors are the majority 13:21:48 ack bigbluehat 13:22:29 ack nickstenn 13:23:04 bigbluehat: I think we should move on. there are other venues for this. we should keep discussing it, but not here. we only have few hours and more to tackle here 13:23:18 nickstenn: it's important that we not stop talking about this and don't punt on these problems 13:24:15 ...robots.txt does not prevent anything. it simply says if you don't abide by this, then my server will completely prevent you from accessing anything 13:24:26 ...we need to be clear that there's not a hard line between social and technical 13:24:27 +1 to nickstenn 13:24:31 ack azaroth 13:24:31 azaroth, you wanted to disagree with HTML centricity 13:24:35 shepazu: so. quickly. how might this work with the data model 13:24:35 whatevs 13:24:53 ...I know we've already said this is out of scope 13:25:08 ...but I think the annotation should carry the preferences that the target publisher requested 13:25:16 ...so "nodisplay" etc are carried forward 13:25:32 ...whether the annotation client does anything with them is up to the client 13:25:38 ...carrying on from that 13:25:54 ...there might be exceptions where a government has prevented comment, but someone does it anyway 13:26:07 ...also within the annotation there could be a way to say don't annotate this annotation 13:26:18 ...and the last bit, is registries 13:26:29 ...there are 2 registries for the meta tag and the rel values 13:26:42 ...a spec can be written and submitted to these registries 13:26:45 ...that's all it would take 13:26:56 ...it would not make any changes to HTML, etc. 13:27:03 ...and that's the end. 13:27:10 TimCole: 15 minute break. 13:27:14 shepazu: actually.... 13:27:32 ...I hear that there are people in this group, who seem to like or be OK with the "nodisplay" thing 13:27:43 ...and that that's the only thing that's in scope for this group 13:28:18 ...if we could have note to discuss the "nodisplay" 13:28:28 azaroth: don't think we need a note to discuss anything 13:28:52 ivan: so the only thing we've done so far is closing technical things we've declined to specify 13:29:02 ...and we shouldn't fast track this similar thing via a note 13:29:10 ...the only thing we've done so far is closing technical issues 13:29:33 shepazu: I've seen resolutions used this way in other WGs 13:29:47 ...the vast majority of people have no idea what resolutions are for 13:30:00 ...so we can use them to make this issue clear to the community that we care about this issue 13:30:16 ivan: it should go on record that this discussion is to continue and certainly hasn't stopped. 13:30:53 gsergiu: I think we were also thinking. we have many providers, we start with very weak concepts, but modeling moderation is something that needs addressing. 13:31:02 ...for facebook and others may be a legal issue 13:31:29 ...where you could use the spec with legal law to enforce action 13:32:07 shepazu: all I wanted was resolution to keep discussing...but whatever 13:32:11 TimCole: let's break for 15 minutes 13:52:39 scribenick: bjdmeest 13:52:46 scribenick: bjdmeest_ 13:52:55 azaroth: 15 minutes on the selectors 13:53:16 ivan: whenever the new version is out, I will have to update the changes 13:53:21 ... it's almost copy-paste 13:53:27 ... that's the only action 13:53:37 ... going to PR or REC, we can publish it 13:54:14 bjdmeest has joined #annotation 13:54:21 scribenick: bjdmeest 13:54:28 ivan: one new section 13:54:33 ... fragment identifier, section 5 13:54:45 ... there is one example, which works for my program 13:54:54 ... comment on it, I don't we need to discuss here 13:55:01 ... the tool is on the repo 13:55:22 TimCole: remaining action? 13:55:22 Link: http://w3c.github.io/web-annotation/selector-note/index-respec.html 13:55:26 ivan: reading and commenting 13:55:37 ... my action is updating it when changes on selection 13:55:47 ... when no particular comments, I can publish 13:55:51 takeshi has joined #annotation 13:56:06 ... it has to have (at some point) have a resolution to publish 13:56:19 azaroth: next, about HTML serialization 13:56:47 TimCole: some comments on the github issue 13:56:52 Link: https://github.com/w3c/web-annotation/issues/147 13:58:01 ... the biggest issue, is the discussion of putting RDFa, you need to use the full vocabulary URIs 13:58:32 ivan: there is no issue of defining a namespace document, that would greatly simplify the RDFa encoding 13:58:44 ... it's semantically correct 13:59:09 ... it's technically doable, without that, the RDFa encoding is very ugly 13:59:23 TimCole: it's a secondary activity 13:59:46 ... an HTML serialization solution might help uptake 13:59:55 ... one possibility is the RDFa namespace doc 14:00:13 ... another one is a note with some possibilities of how to do HTML serialization 14:00:39 ... e.g., including JSON-LD in script tags 14:00:55 ... or using html tags, extending html5 14:01:15 ivan: there is a possibility of using custom elements 14:02:10 TimCole: we currently add JSON-LD in HTML, don't know whether that is enough 14:02:18 q+ 14:02:26 ack shepazu 14:02:47 shepazu: I don't think we currently have time to do the mapping to HTML directly 14:03:01 ... we could do a note for mapping to RDFa 14:03:28 ... maybe use that as a kicking point for the note-element 14:03:32 ... so, we map our model the RDFa, and later map the RDFa to the note-element 14:03:51 ... so we can play with structures 14:04:07 q+ 14:04:25 ivan: one part is technically defined and done, just not written down, i.e., embedding JSON-LD 14:04:25 ... the mapping to RDFa is documenting something 14:04:35 ... a note that documents those two options makes a lot of sense 14:04:49 ... we aren't inventing anything new here, just reusing 14:05:04 +1 to issuing a note about using what's out there now RDFa and JSON-LD 14:05:05 ... mapping to the note-element, we have to define ourselves 14:05:10 q- 14:06:14 TimCole: Sarven could help us, as he already did some stuff to mapping to RDFa 14:06:43 azaroth: I like the RDF namespace, to use the JSON keys 14:07:06 TimCole: much more consistent with the JSON 14:07:24 ... both options (using full URIs and using the RDFa namespace) will exist in the wild 14:07:39 ivan: which is fine 14:08:09 ivan: doing and testing the namespace, I like to do 14:08:15 TimCole: I'll take the lead on the note 14:08:49 ivan: the doc that Gregg produced at the end of the CSV WG, is very specific, but very related (i.e., embedding JSON-LD) 14:08:57 ... there are some minor issues, that you may want to take over 14:09:26 TimCole: so, we can do this, quietly, we can do this in the background, without slowing down PR and CR 14:09:58 ... So we can add editorial action to the open issue #147 14:10:31 scribenick: TimCole 14:10:48 Topic: Do we need to have f2f at TPAC 14:10:58 azaroth: we have a room, but do we need to meet 14:11:30 shepazu: Are there reasons not to meet - likely last opportunity 14:11:46 azaroth: but we may not have anything to discuss by then. 14:12:08 ivan: we might want to talk about what's next after end of charter 14:12:41 bigbluehat: that might be an opportunity to coalesce around what's next 14:13:00 ivan: talk about what''s next and come back to this question 14:14:01 Topic: FindAPI, Client-side API, search, notification, etc. 14:14:39 shepazu: FindTextAPI would need to be moved foreward by different group 14:15:17 ... Nick had some early discussion on Client-side API, but not enough there to move foreward within the time frame 14:16:12 bigbluehat: WebMention might be sufficient for Notification 14:16:43 shepazu: is search generalizable enough to JSON that other WGs might take care of this? 14:17:08 bigbluehat: there is work, but not clear it will address our issues... 14:18:15 bigbluehat: extending Web Annot protocol would (for example) add search parameters onto the container 14:18:50 shepazu: but we're not going being able to write that in timeframe left, so is in scope for some other WG? 14:19:00 azaroth: not really 14:19:22 how the IIIF does it http://iiif.io/api/search/1.0/ 14:19:34 ivan: so clear we won't do it in this WG, is it enough to create a WG to do this? 14:19:55 ... or will LDP (or someone else) subsume in a more general solution? 14:20:48 ... does it make sense to consider these as work items for next version of WG? 14:21:28 ... do we need to plan for a future WG, if so, what would be items for the WG and when might we need to start a WG? 14:22:19 shepazu: pretty likely that we would at least need a process of incubation. unlikely a follow-on WG would come immediately. 14:22:42 ... so we may not have this to discuss at TPAC, and may not need to meet at TPAC 14:23:17 ... individuals will take advantage of TPAC, but not a formal F2F of the WG. 14:23:29 ivan: Having a CG that does 2 things: 14:23:56 ... 1. maintenance (errata, etc.). This has been done for CSV (for example) 14:24:33 ... 2. a CG to look at these other issues and come up with incubations, implementations, ... 14:25:20 ... Client side implementation and maybe a FindText 'implementation' might be good to play with, html mappings / extensions of the model 14:25:48 ... come back in a year or two and see if there's enough to propose a new WG 14:26:58 shepazu: the scope of the WG didn't get much bigger than the OA CG anyway, so might be able to just re-energize that CG 14:28:02 ivan: if convergence with IDPF happens, then there will need to be an update of OA within IDPF, which may require a TR 14:29:07 takeshi: For EPub OA was modified a little, so that was done within IDPF. 14:29:53 ivan: yes, if migration from OA to Web Annotation were complete by 31 Dec, wouldn't need a WG, otherwise probably would 14:30:01 Topic: TPAC (again) 14:30:29 shepazu: are there going to be enough of us at TPAC 14:31:11 ivan: if we meet at TPAC, I would be double-booked 14:31:27 Action on azaroth to cancel TPAC session 14:31:27 Error finding 'on'. You can review and register nicknames at . 14:31:52 azaroth: Agenda is done... 14:32:37 Topic: HTTPS decision - comments since yesterday 14:33:00 azaroth: Shane has commented on HTTPS decision 14:33:23 from ShaneM: "I think there is a W3C policy that says "ns" URIs are compared as strings and that they should be http: even if ultimately they are just redirected to https: I will check right now" 14:33:27 Hi. 14:33:36 sorry - I don't want to derail your meeting 14:34:02 I could be wrong about this. But it has come up in the publication discsussions at W3C and there was definitely some sort of decision. 14:34:07 azaroth: if we choose HTTPS for our namespace, then this won't apply. 14:34:19 If we choose https then that's the string to use for comparison, not http:// 14:34:27 So it would ONLY be https, not also http 14:34:29 bigbluehat: we would not be making http copy available any more. 14:34:47 azaroth: yes I understand that. And FWIW the W3C will no longer serve anything as http: 14:35:07 it was just a consistency issue with other namespaces. concern about authoring errors 14:35:21 if some are http: and some are https: people are going to screw up. 14:35:56 ivan: yes, this is the discussion that the team has been having... 14:36:23 ivan: cool - well if you advised the group and they made an informed decision then I will shut up. 14:36:30 ... however, the reason we decided to use OA for the namespace was to facilitate backward compatibility 14:36:49 ... so moving to https we will break backward compatibility with OA. 14:37:15 q+ 14:37:27 ... isn't it a logical conclustion that if we make this change, we should change the name 14:37:49 ack shepazu 14:37:53 ... we should change it to avoid collisions... 14:40:11 FYI in the publication channel (#pub) denis just said "afaik we will keep namespaces under http" 14:40:29 TimCole: the old copy would stay 14:40:44 As to changing it... I would if it is different. Which it most certainly is. 14:42:19 azaroth: -0, the forward compatibility is good, but if we want people to upgrade there's more incentive to do so ??? 14:44:45 ivan: remember that https was in part in response to request from PING 14:45:22 ... so i'd like to propose staying with https and changing the name . 14:46:24 nickstenn: if you load an http into a secure page (https) you get an error message 14:46:34 azaroth: ergo we must go to https. 14:46:49 ivan: so I reiterate my proposal 14:47:22 namespaces are not loaded... 14:47:43 and regardless the W3C server will always redirect to the https version so it is just a string. 14:48:00 json-ld.js would load it if you were using it in the browser, correct? 14:48:10 ShaneM: this is true, but the NS for web annotation doubles as the JSON-LD context document 14:48:13 azaroth: @context docs are loaded and having one http and ns https not good 14:48:38 bigbluehat: yes, but it would redirect automatically so there would be no conflict 14:49:07 PROPOSED RESOLUTION: Due to security considerations, we must change the namespace to be https, and thus we will change the slug to "wa" from "oa" 14:49:13 +1 14:49:14 +1 14:49:16 I am just warning you all that the W3C has made some policy decision about this and I didn't want you to be in conflict. I encourage you to leave this decision to whomever makes organizational decisions at the W3C. 14:49:17 +1 14:49:49 +1 to changing the slug. -1 to changing the scheme because I think it is in conflict with W3C policy. 14:50:03 ivan: I will double check with Ralph 14:50:04 But leave it until you get pushback from the Director. 14:50:05 +0 14:50:24 ivan: thank you 14:50:25 +? 14:51:38 s/but the NS/but AIUI the NS/ 14:51:57 ivan: we will try to meet next week with the Internationalization WG 14:52:25 +1 14:52:40 RESOLUTION: Due to security considerations, we must change the namespace to be https, and thus we will change the slug to "wa" from "oa" assuming Ivan verifies not in conflict with W3C Policy 14:58:36 azaroth: will target drafts ready for WG to review on 10 June, formal vote by the WG closes 17 June, potential CR publication 27 June 14:58:47 nickstenn: only if it were not redirected. as far as I know. 14:59:45 KevinMarks has joined #annotation 15:00:39 topic: AOB 15:00:41 ... 15:00:43 adjurned 15:00:50 rrsagent, draft minutes 15:00:50 I have made the request to generate http://www.w3.org/2016/05/18-annotation-minutes.html ivan 15:01:20 KevinMarks has joined #annotation 15:02:31 Drinks with I Annotate attendees at the Pratergarten, Kastanienallee 7-9, 10435 Berlin 15:02:35 1830 onwards! 15:06:33 From DFKI: https://citymapper.com/trip/Tdq4ego 15:30:17 tantek has joined #annotation 15:50:50 azaroth has joined #annotation 16:04:17 https://www.w3.org/wiki/WebSchemas/Accessibility 16:34:03 KevinMarks has joined #annotation 16:41:24 KevinMarks has joined #annotation 17:05:19 Zakim has left #annotation 18:06:06 uskudarli has joined #annotation 19:18:16 azaroth has joined #annotation 20:00:56 KevinMarks has joined #annotation 20:02:01 KevinMarks has joined #annotation 20:45:08 shepazu has joined #annotation 21:04:48 tantek has joined #annotation 22:17:51 azaroth has joined #annotation