09:01:11 RRSAgent has joined #csvw 09:01:11 logging to http://www.w3.org/2015/02/13-csvw-irc 09:01:24 Meeting: CSVW F2F Meeting, London, 2nd day 09:01:28 Agenda: https://www.w3.org/2013/csvw/wiki/F2F_Agenda_2015-02 09:01:32 gkellogg has joined #csvw 09:01:34 Chair: Jeni 09:01:42 rrsagent, set log public 09:01:51 rrsagent, draft minutes 09:01:51 I have made the request to generate http://www.w3.org/2015/02/13-csvw-minutes.html ivan 09:18:44 danbri has joined #csvw 09:19:38 jumbrich has joined #csvw 09:20:56 jtandy has joined #csvw 09:21:25 Agenda: https://www.w3.org/2013/csvw/wiki/F2F_Agenda_2015-02 09:21:32 scribenick: gkellogg 09:21:32 DavideCeolin has joined #csvw 09:21:37 topic: Foreign Keys and References 09:24:17 http://piratepad.net/URwa3CM9Vv 09:25:23 JeniT: how we handle having multiple interrelated tabular data files. 09:25:47 … An example is the public salaries use case (#4?) 09:26:14 scribenick: danbri 09:26:20 gkellogg: roles json is basically a table group referencing two tables 09:26:26 … the driving metadata file 09:26:31 references the senior roles 09:26:41 and the junior roles 09:27:44 junior people refer to senior people 09:28:01 … a foreign key rel from the col 'reportsTo' to the other with col 'ref' 09:28:29 what we've said here … we've created property urls, and a value url 09:28:38 so property expands to reportsTo and value uses a URI pattern 09:28:46 senior roles have more col definitions 09:28:50 ref name grade and job 09:29:51 this allows you to examinethe data, … a vaidator, ... 09:30:12 … looking at junior, … seeing reporting senior in 1st col, which would need to exist in the senior roles in the post-unique reference 09:30:26 e.g. 90238 is 3rd or 4th row 09:30:41 JeniT: a couple of observations 09:30:54 first is, two kinds of mechanisms for getting pointers between resources 09:31:02 one is thru primary and foreign key type mechanism 09:31:08 very database-oriented terminology 09:31:19 all primary key really says is that values in this column are unique 09:31:24 … each is different 09:31:45 foreign keys, or unique comb of values if multi-column, … must reference something that does exist in this other file 09:31:55 so quite a tight, validation oriented relationship 09:32:00 AND also we have 09:32:03 aboutUrl, valueUrl 09:32:08 these create the links in the output 09:32:15 for rdf and json generation 09:32:25 creates the urls for the things being identified in these files 09:32:35 could easily have an example that only had the one or had the other 09:32:48 gkellogg: in fact primary and 2ndary keys are not used in the transformation 09:32:54 ivan: there is a need for consistency 09:33:45 ivan: whatever is described in the f.key structure 09:33:52 vs what we use in the valueUri 09:34:00 you would expect those things would be essentially identical 09:34:05 woudl they ever differ? 09:34:20 jenit: usually they would match but it's a rope-and-hang-yoursel 09:34:26 f 09:34:35 gkellogg: consider two tables, ... 09:34:41 see http://piratepad.net/URwa3CM9Vv 09:38:13 we… used diff 09:38:18 q? 09:38:25 ivan: to be clear, avoid misunderstanding, ... 09:38:39 … source of misunderstanding, … column names used for interlinking 09:38:41 Zakim has joined #csvw 09:38:46 you invite him-her-it 09:39:13 gkellogg: … what we have is a primary key in the senior but not in the junior 09:39:32 (jeni takes to whiteboard) 09:39:51 jtandy: in junior schema how do you know that it is reportsTo in the senior? 09:40:20 ivan: template refers always to the local table value 09:40:28 …has nothing to do with the reportsTo of the other table 09:40:45 gkellogg::better to update the example accordingly? 09:40:53 jenit: let's start with something super simple 09:41:04 ivan: e.g. i would remove the reportsTo of the senior table 09:41:39 jenit: it is useful to have that example 09:41:59 danbri: at some point it crosses over into domain datamodel validation e.g. "no reporting cycles" problem isn't our problem 09:42:45 scribenick: gkellogg 09:43:03 jumbridge: this requires that columns have names? 09:43:13 iherman: yes, but there are defaults. 09:43:48 jumbridge: so, there may be a name or a title, but name is best for creating a reference. 09:44:41 … perhaps we should use “id” someplace in the metadata to show that this is an identifier? 09:45:06 jenit: I’d like to stay close to Data Package. 09:45:58 DavideCeolin: If I have two tables and want to say one refers to the other, I can do it using small markup in the FK specification. 09:46:21 jenit: we’ll go into issues. 09:46:27 https://github.com/w3c/csvw/issues/16 09:47:23 JeniT: Andy brought up the difference between “strong linkage” in databases, with strong validation requirements for the FK to find the reference, and the “weak linkage” in the web where something may not exist. 09:48:00 … He as concerned about not having to resolve URLs to validate links. When you’re at the process of generating them, they likely don’t exist anyway. 09:48:19 danbri: granularity was an issue as well, depending on there the data comes from. 09:49:00 JeniT: We have two mechanism, the first you have control by knowing what is coming together and having control of the metadata and are better able to make a strong statement about validation when using such cross-references. 09:49:29 … We also have the “weak linking” generation on demand where there is no check. It’s up to the metadata author to know what to use. 09:49:57 iherman: we have to define what a validation is expected to do. In this case, we probably require only weaker validation? 09:50:26 JeniT: When there is a primary key then a validator must verify that all referenced data exists and that all primary keys are unique. 09:51:20 jumbrich: so this allows just mapping one data without necessarily mapping the other. 09:51:57 iherman: you don’t have to check if the values in a column using an FK are actually present in the other table. The two tables are consistent in the roles example, as they do exist. 09:52:16 jtandy: if you declare it as an FK you must check that it exists. if you use a valueUrl, you don’t need to check. 09:52:51 … Because strict validation is a “beast”, you can only use the references within a single TableGroup. 09:53:18 ( if you want some examples with multi-table keys, https://github.com/w3c/csvw/tree/gh-pages/examples/tests/scenarios/chinook ) 09:54:41 jeniT: there is a subtlety in the examples ... 09:55:14 … In real life, there is a government office that says all departments need to publish senior and junior roles, and all adhering to the same schema. 09:56:24 … They also define a list of departments, with say name of department, and website. 09:58:14 … When departments publish the senior/junior roles pairs, the “dept” column will typically all be the same pointing to the identifier of a particular department, so the FK needs to reference the departments.csv file. 09:59:10 … The TableGroup then needs to reference the departments CSV and schema. 10:02:24 jumbrich has joined #csvw 10:02:38 iherman: the person creating the description probably shouldn’t say what data not to export. 10:02:55 gkellogg: But, this could be specified in user-deined metadata, and is undercontrol of the user. 10:03:28 jumbrich: I might want to refer to other resources without pulling them in. 10:04:29 JeniT: the closest thing we have is to use the same table group to describe related resources and generate the URL for a “team” in any output. Youl would then use that URL to reference the team, for references and identification. 10:05:09 jumbrich: I might have a relation table, and a couple of tables where things are used, and I might want to point to something for additiona information. 10:05:48 DavideCeolin has joined #csvw 10:06:10 … I might be able to build search on top of the metadata where I could use FK information to infer information about the various tables. 10:06:18 jtandy: I think that’s a normal FK relationship. 10:07:25 iherman: there’s also a difference between what a validator and a transformer will do. 10:08:23 … The FK spec is conceptually disjoint from the valueUrl and transformation. The FK is only there for validation. 10:08:46 jumbrich has joined #csvw 10:09:06 jtandy: if you use PKs, that might change how you serialze. 10:09:19 https://github.com/w3c/csvw/issues/16 10:09:55 JeniT: FK references are for validation purposes... 10:14:10 jumbrich has joined #csvw 10:14:45 danbri: what do we say about the results of being invalid? Are we creating a culture so that things can’t proceed if they’re invalid. 10:16:05 JeniT: a validator may work in strict and lax modes, where it fails at the first problem when strict, but just reports all issues encountered when lax. 10:18:02 https://github.com/w3c/csvw/issues/31 10:18:09 rrsagent, pointer? 10:18:09 See http://www.w3.org/2015/02/13-csvw-irc#T10-18-09 10:18:29 rrsagent, make logs public 10:18:36 jtandy: this looks out of date now, I suggest close as “expired”. 10:18:47 iherman: it will come back if we have a “skip” flag. 10:19:07 "Should primary keys be skipped from cell level triple (or k/v pairs) generation? #31" 10:19:15 JeniT: if you use valueUrl, you only get ??? 10:20:16 https://github.com/w3c/csvw/issues/130 10:21:25 jtandy: Alain has provided some alternate JSON structure that uses identifiers as properties rathern than an array. 10:22:38 … If you didn’t define a PK, there’s not necessarily one thing that is unique, and such an index structure is available. 10:23:03 … We agreed that PK is for validation, but necessarily only for validation. 10:23:27 JeniT: this is the purpose of aboutUrl, which _may_ be associated with the PK, but not necessarily. 10:23:53 jtandy: the index and object works for some, but Tim Robertson seemed to object. 10:25:14 JeniT: I think we should only define one JSON output for ease of scope. 10:25:59 jtandy: so the “standard” publishing mechanism is an object per-line, and converting to an ‘indexed’ mechanism is “triveal”, and outside the scope of the spec. 10:26:33 … We may say that implementations could have alternate output forms. 10:27:00 ('templating and transformation'?) 10:27:33 iherman: I like to have a conceptual similarity between the JSON and the RDF transformations, and for the time being they are quite similar. 10:27:52 rrsagent, pointer? 10:27:52 See http://www.w3.org/2015/02/13-csvw-irc#T10-27-52 10:31:50 https://github.com/w3c/csvw/issues/66 10:32:32 "Composite primary keys and foreign key references #66" 10:33:14 jtandy: for exmple my PK may be based on givenname & familyname, and you’re making stuff up as you go along. 10:33:47 JeniT: you can use aboutUrl to combine such columns together to get what you want. 10:34:56 … You can’t say that one column points to two values, but you can create an aboutUrl which uses both name and a valueUrl in the other to create the same reference. It works for RDF, but not for validation. 10:35:34 rragent, pointer? 10:35:55 rrsagent, pointer? 10:35:55 See http://www.w3.org/2015/02/13-csvw-irc#T10-35-55 10:36:50 danbri: if you had postal codes in each country, then the combination of country code and postal code will be unique. 10:40:31 jtandy: TableGroups contain resources and may contain schemas? (yes) 10:41:32 JeniT: because there are two different types of FK references you might make (departments example), one always points to the same resource, and the other to different values based on cell values. 10:55:51 Topic: URLs and metadata 10:56:18 jumbrich has joined #csvw 10:57:09 https://github.com/w3c/csvw/issues/74 10:57:36 https://github.com/w3c/csvw/issues/74#issuecomment-72854167 11:00:42 https://github.com/w3c/csvw/issues/191 11:02:13 diverted onto https://github.com/w3c/csvw/issues/91 11:02:55 https://github.com/w3c/csvw/issues/191#issuecomment-73497474 11:09:43 gkellogg: in json-ld … there are rules for term expansion 11:09:54 … the prefix expansion is more naturally dealt with as part of #91 than this. 11:10:03 What we're doing here is saying it is a URL template property 11:10:08 when you apply template, result is a string 11:10:14 which in #91 will be made into an url 11:10:21 jenit: fear we'll get stuck on exact wording 11:10:27 … can we capture direction of the resolution 11:10:32 … will ref #91 11:10:37 … and editor action will be needed 11:10:48 capturing basic thing, … these properties are string properties 11:11:42 from piratepad, copying: 11:11:52 resolved: The order of processing is as described in https://github.com/w3c/csvw/issues/191#issuecomment-73497474https://github.com/w3c/csvw/issues/191#issuecomment-73497474http://piratepad.net/ep/search?query=issuecomment-73497474. These properties are string properties, the URL template is expanded first. Any resolution (ie expanding prefixes & resolving against a base URL) is done after that expansion. Editor action to make this so. 11:12:02 https://github.com/w3c/csvw/issues/91 11:12:12 "What is default value if @base is not defined in the metadata description #91" 11:12:14 s/#91/#191/ 11:13:46 jenit: bunch of issues … 11:13:56 how link urls which are bases are resolved 11:14:09 how url templates following their templates, what base url they get, how they are then treated, what base url gets used on that 11:14:25 and then whether we want to provide some level of control within the urltemplates to enable people to expand based on a different base url 11:14:29 1st - link properties 11:14:33 like reference to the csv files 11:14:47 those link properties should be resolved in the same way that they are resolved in json-ld 11:14:53 i.e. if there is an @base in the context, use htat 11:14:59 otherwise metadata doc in which that link is found 11:15:04 requires to you expand them prior to merging 11:15:11 or keep track of where original comes from 11:15:23 gkellogg: that's where language in merge now says 11:15:37 before merging both A and B make any link URIs absolute relative to the base of that metadata 11:15:48 ivan: isn't there also a language about merging the @base? 11:15:56 gkellogg: for @base there is 11:16:00 works pretty much like object merging 11:16:05 ivan: but then why do we merge @base? 11:16:16 gkellogg: point is that after normalizing, context isn't necessary any more 11:16:20 ivan: let's make that explicit 11:16:34 … conceptually every metadata file needs to be normalized before merged 11:16:46 gkellogg: @base and language can dissapear 11:16:57 you still need the default metadata since that is how you define prefixes etc 11:17:11 ivan: i don't think we do that 11:17:19 jenit: they're never explicitly put inthe @context 11:17:29 … gregg is saying that conceptually there is such a context 11:17:46 and if you are using basic json-ld processing, then implicitly we'd pull in everything from that context doc 11:17:54 gkellogg: need not be just implicit 11:17:59 we need to figure out what we want to do 11:18:17 jenit: you were both in agreement that the @base and the @lang were redundant by the time you had gone through the normalization 11:18:22 ivan: that's correct 11:18:31 gkellogg: but there is a conceptual or virtual base url of the metadata 11:18:38 besides an explicit @base declaration 11:18:43 jenit: yes, the location of... 11:18:48 gkellogg: or the 1st in a set, ... 11:18:54 jenit: that, I don't, ... 11:19:02 ivan: comes back to #199 11:19:43 jenit: i think we agree that the link properties are resolved against the base url, maybe the @base from the context, or it may be the location of the metadata file, during normalization of the metadata file, and prior to merge. 11:19:55 [[[If the property is a link property the value is turned into an absolute URL using the base URL.]]] 11:20:00 jenit: 2nd piece of this, is what happens to these url templates 11:20:09 these can't get expanded until you are actually processing data 11:20:19 at which point you have your merged metadata as basis of what you are doing 11:20:33 if you have lost your base url, or not got, what to resolve against becomes tricky 11:20:44 also - jtandy's 1st assumption, that those would be resolved against url of the csv file 11:20:51 so when you had template like #rownum=5 11:20:59 then that would be ref to something within the csv file 11:21:05 not relative to any of the metadata files it might be in 11:21:13 which raises the usability perspective, ... 11:21:27 … it might be better for the url templates to be ref'd against the csv file 11:21:35 to have that as the default 11:21:54 gkellogg: i won't stand in way, but am not enthusiastic 11:22:03 … you can always avodi trouble by having absolute urls 11:22:22 jtandy: we just need to be clear on what happens when not an absolute url 11:22:41 ivan: raising q: is it not confusing for authors, that we have 2 diff ways of absolutising urls 11:22:48 depending on whether they are link properties or templates 11:23:01 … a completely diff approach would be that we don't do this under normalization 11:23:07 instead use the table url just like for templates 11:23:21 jenit: how do you resolve the table url? that's the link property 11:24:18 gkellogg: json-ld has an url expansion algo 11:24:43 … nominally each json-ld doc has a location which can overide @base 11:24:52 ... 11:25:16 if we say it is undefined, this would be the only doc (format) i've dealt with in which you start off with a base and then lose it along the way 11:25:50 ivan: talking about confusing, … that means I get a merged metadata, and the various templates in that metadata will expand differently 11:25:59 … the templates will expand depending on where they come from 11:26:06 gkellogg: no, there's a single base url notionally 11:26:11 ivan: then i don't understand the issue 11:26:24 gkellogg:I think we said it's the csv file it is expanded against 11:26:32 that's what i reacted to , saying that this is weird, … 11:27:06 jenit: [missed] 11:28:14 discussion of detail of mess starting with the csv file vs metadata 11:28:33 jtandy: key issue to my mind, uri templates only get expanded once you've done all the merging, ... 11:28:38 … only at that point, 11:28:44 gkellogg: only at row processing stage 11:28:55 jtandy: … templates get expanded, … urls get resolved, … 11:29:12 gkellogg: which we're saying is the expanded url property of the table 11:29:17 jtandy: at least we always know what that is 11:32:41 jtandy: to clarify, this is for the metadata doc, and by time we get to conversions, this will all have been expanded? 11:32:42 [yes] 11:33:39 phila_reception has joined #csvw 11:33:40 jenit: do we in abstract table data model need url in each cell not just value 11:33:46 i.e. what you'd get from value url 11:33:52 gkellogg: that is the value of the cell 11:33:55 jenit: no 11:34:04 -> example in piratepad 11:34:28 DavideCeolin has joined #csvw 11:34:31 scribenick: gkellogg 11:35:37 iherman: just to clarify, linkproperty values can be CURIEs/PNames 11:36:27 https://github.com/w3c/csvw/issues/121 11:37:29 gkellogg: discussion of expanding urls, we talked about json-ld, then asked about URL spec 11:37:37 reason for that is that url spec doesn't deal with prefixes 11:37:42 scribenick: danbri 11:37:50 ivan: spec-wise it is fine, but if i read that doc it is like some of the HTML5 specs 11:38:05 jenit: does it specify the behaviour that we want it to specify 11:38:13 … there is no other good url spec to reference 11:38:28 jenit: i think it is at least consistent to point to the json-ld one 11:38:42 phila has joined #csvw 11:38:45 ivan: that's why i asked what i asked. back then it went into a whole set of things that were v json-ld specific, with prefixes etc. 11:38:48 …that was my fear 11:39:08 … it goes into all kinds of detail on context processing 11:39:27 gkellogg: we are using a context, we have one defined that defines all of our terms, that is the one used when expanding these values 11:39:36 jenit: let's defer this, maybe discuss over lunch, ... 11:39:54 gkellogg: if we choose something else let's say it is intended to be consistent with json-ld iri expansion 11:40:09 ivan: one thing it does introduce, … and we do not, is issue of syntax for bnode identifiers 11:40:16 gkellogg: but we can constrain the value space... 11:40:37 Zakim has left #csvw 11:41:00 jenit: suggest resolve as "we'll summarize the algo from json-ld spec, extract bits that are relevant, and say it is intended to be consistent with the spec 11:41:06 gkellogg: yes, can do that 11:41:20 … re bnodes i think it is intent of group to avoid using a bnode syntax where URIs can be used 11:41:40 ivan: maybe we need some sort of appendix 11:41:50 saying this is json-ld compatible, but with these-and-these restrictions 11:41:57 e.g. that we restricted what can go into a context 11:42:08 … that we have restricted yesterday the evlaution of common properties, etc. 11:42:17 … i.e. there are a number of places where we restrict json-ld 11:42:23 [general agreement] 11:42:57 resolved: We will summarise the expansion processing that is necessary for our purposes, and say that it is intended to be consistent with JSON-LD IRI expansion. We do have some restrictions on what IRIs can be used, eg we don't allow blank node syntax. 11:43:20 topic: Conversion issues 11:43:34 from https://www.w3.org/2013/csvw/wiki/F2F_Agenda_2015-02#Friday_13th_February 11:43:45 will revisit after lunch. 11:44:03 topic: Conversion Details 11:44:33 https://github.com/w3c/csvw/issues/83 11:44:43 Extension Conversions: #83 "Possible error in "optional properties" for Template Specifications: source #83" 11:45:03 jenit: this is about when we have these extension conversions, we have said we want to enable extensions to work on results of a conversion we have already defined 11:45:10 e.g. we have already defined json and rdf 11:45:19 … can we make e.g. a post-processor that sits on top of the RDF 11:45:26 maybe it might use SPARQL CONSTRUCT 11:45:42 (the use of XML in the orig issue was a typo) 11:45:58 this lead to q of what the source looks like for post processing 11:46:07 gkellogg: how does this relate to accept headers? 11:46:20 e.g. my impl creates an abstract graph 11:46:37 … Accept: can turn into a prioritized list of formats 11:46:47 seems like the type of thing that a tabular data processor might do 11:47:16 danbri: assumes an HTTP REST deployment model? 11:47:23 ivan: seems like an impl detail not relevant here 11:47:34 … more … if you want Turtle, this is the processor you can use, etc etc 11:47:44 options of tools or http or online tools … i dont think we should go there 11:47:57 ivan: only thing, what in metadata descr params need to be specifiable 11:48:17 gkellogg: seems reason why Accept has a prioritised list, so you get something you can handle even if not best 11:48:32 jenit: in my head, the source thing here was only taking 2 values 11:48:45 … and when you said post-processing woudl be delivered an rdf graph 11:48:52 you wouldn't be specifying 11:48:59 you might never serialize 11:50:38 danbri: not comfortable assuming all in memory / API access, unix pipe model is quite likely 11:50:45 ... 11:50:56 jenit: you (jtandy) are assuming serialized output? 11:51:03 jtandy: i'm v happy saying we don't serialize 11:51:33 that json stays just in memory 11:51:42 gkellogg: i believe json in memory defined in ecma 11:54:36 gkellogg: diff between target format and template format? 11:54:47 … mustache vs RDF 11:55:34 jenit: either you'd be operating over the rdf using a mustache template, or to create rdf/xml, would be a basic thing ... 11:56:07 danbri: would fancy alternate mappings always use json or rdf mappings? or sometimes raw? 11:56:12 jenit: can go back to the base also 11:56:27 fwiw this was the closest we got to a demo using R2RML : https://github.com/w3c/csvw/blob/gh-pages/examples/tests/scenarios/events/attempts/attempt-1/metadata.json 11:56:34 https://github.com/w3c/csvw/tree/gh-pages/examples/tests/scenarios/events/attempts/attempt-1 12:56:37 jumbrich has joined #csvw 12:58:10 gkellogg has joined #csvw 12:58:53 jtandy has joined #csvw 12:59:03 scribenick: danbri 12:59:05 topic: Conversions 12:59:23 jenit: given that we have abouturls, property urls etc etc, i.e. pretty flexible way of making triples from a row in the table... 12:59:23 DavideCeolin has joined #csvw 12:59:33 …what does this imply in terms of what else is needed to be flexible about that structure 12:59:37 or should we be constraining it 13:00:00 https://www.w3.org/2013/csvw/wiki/F2F_Agenda_2015-02#13:00_-_14:30_Conversion_Details 13:00:05 issue #66 already closed 13:00:19 so https://github.com/w3c/csvw/issues/66 does not need discussion 13:00:53 https://github.com/w3c/csvw/issues/64 13:00:57 "Suppression of columns in mapping #64" 13:01:05 ivan has joined #csvw 13:01:16 jtandy: sometimes in the stuff you want to push out through RDF or JSON conversion, you might not want all of the cols in the tabular data to appear in the output 13:01:24 I would just like to be able to say "don't include this column" 13:01:34 … seemed trivial but ppl objected 13:01:50 gkellogg: [missed] 13:02:01 … re naming, we mix hyphens and CamelCase 13:02:05 jtandy: should be CamelCase 13:02:15 s/jtandy/jenit/ 13:02:16 so "table-direction" is wrong 13:02:27 jtandy: so that was my requirement, it would be cool if you could do that 13:02:44 jenit; and properties 13:02:57 jtandy: Gregg's suggested optimzation for skipping an entire table, it could be an inherited property 13:03:08 so you could say it up at the table level, schema... 13:03:19 gkellogg: suppressing table would handle all its cols 13:03:26 ivan: strictly speaking this is not the same 13:03:33 because if I have common properties 13:03:37 if i say I skip the table 13:03:48 if i refer back to this AM's discussion, i want to supress the generation of everything 13:03:53 if i have a flag on a table, is fine 13:04:07 … if just a space keeper for all the cols, you would generate common properties 13:04:11 jtandy: you are correct 13:04:16 therefore we should have a suppress col 13:04:20 gkellogg: i don't see that 13:04:27 if it is on the table that is how it is interpreted 13:04:38 ivan: let's not conflate the interpretation of this 13:04:51 jenit: surely having the same property does not ... 13:05:16 "this suppresses the conversion output from the thing that it is on" would be a fine def, to avoid having repeated similar terms 13:05:31 ivan: but I might want to do what I said earlier, just common properties 13:07:17 resolved: We will introduce a `suppressOutput` property, on individual resources or on columns, which would mean that no output was generated from that table or from that column during a conversion. This is not an inherited property. 13:07:20 rrsagent, pointer? 13:07:20 See http://www.w3.org/2015/02/13-csvw-irc#T13-07-20 13:08:07 jtandy: before we get to phantom cols, … aboutUrl on cols? 13:08:30 gkellogg: we resolved that aboutUrl etc are common properties 13:08:38 can appear in col, schema, … 13:09:16 ivan: there may be cells where the generated triples have a different subject 13:09:23 jenit: let's discuss that 1st 13:10:02 "whether it is useful helpful to have different about URLs on different cols … 13:10:14 jtandy: that would really help my use cases 13:10:21 q+ to agree a lot 13:10:29 … we need multiple entities per row 13:10:44 ivan: if we go there, fundamentally not against it, … the structure of the generated rdf needs rethinking 13:11:00 currently we make a predicate 'row' etc etc… this structure becomes meaningless 13:11:08 gkellogg: in average case it works out fine 13:11:21 way reads now, the row resource, iri is from 1st cell 13:11:32 jtandy: no, subject of row comes from aboutUrl in schema 13:11:46 jenit: purely what you generate as triples 13:11:48 Zakim has joined #csvw 13:11:50 q+ 13:11:56 jtandy: i believe this is an inherited property 13:12:05 so if you define it at schema level, … 13:12:19 [can't capture realtime and listen, backing off from detail] 13:12:57 q? 13:13:06 ack danbri 13:13:09 gkellogg: some times it does have value to use row 13:14:32 ivan: where do i put these extra triples? 13:14:40 jenit: "the output" :) 13:14:57 jtandy: if we are processing on a row-by-row basis, we look at those across a row that share a subject, and emit them together 13:15:09 the issue we have got is that the entities which are talked about lose an implicit relationship to the table they are in 13:15:24 jenit: what kind of relationship … 13:15:56 https://github.com/w3c/csvw/issues/179#issuecomment-72072147 13:15:57 issue may be discussed in tracker under 'phantom col' 13:16:19 gkellogg: imagine a doap description of a software project, referencing a foaf description of a developer 13:16:48 … if there happens to be a spare column, e.g. foaf ID column out, i could put [missing detail] 13:17:12 ivan: i think you're conflating 2 different things 13:17:41 jenit: what is the proper relationship between the table in the rdf output 13:17:52 … vs the entities from the data 13:18:05 jtandy: at moment we say 'csv row' 13:18:26 jenit: i don't think it worked in 1st place 13:18:32 …tables rows are rows which describe things 13:18:38 e.g. a row might describe many things 13:18:51 so either you'd say, instead of csv:row property, you want 'describes' 13:18:53 isDescribedBy etc 13:19:04 … table describes all of the distinct subjects / entities 13:19:28 or you can do it by saying table contains rows, row describes entities 13:19:43 ... 13:19:51 jenit: could be 2 rows talking about same entity 13:20:18 jtandy: in this case table is a kind of dataset 13:20:45 … mention yesterday that a table … if we defined CSVW 'Table' as a subclass of one of the dataset types e.g. dcat:Dataset 13:21:12 jenit: let's get to agreement on the q ivan posed, … do we want separate about urls on each column 13:21:49 resolved - jeni summarising 13:21:56 ivan: does it affect the json output? 13:21:58 PROPOSED: aboutUrl is a property that goes on individual columns; different columns can generate data about different subjects 13:21:59 jtandy: yes 13:22:01 +1 13:22:07 +1 13:22:07 +1 13:22:09 +1 13:22:10 +1 13:22:11 +1 13:22:13 +1 13:22:18 RESOLVED: aboutUrl is a property that goes on individual columns; different columns can generate data about different subjects 13:22:21 rrsagent, please draft minutes 13:22:21 I have made the request to generate http://www.w3.org/2015/02/13-csvw-minutes.html danbri 13:22:31 https://github.com/w3c/csvw/issues/26 13:22:42 https://github.com/w3c/csvw/issues/26 Rich Column Classes / Types (@type / @datatype on column) #26 13:22:42 13:22:51 jenit: about types of the entities being described by this row 13:22:57 e.g. each row about a Person 13:23:16 gkellogg: a phantom column, of course! 13:23:22 jenit: ok … 13:23:36 … short term answer would be to make a custom property, but let's discuss phantom columns now 13:23:36 https://github.com/w3c/csvw/issues/179 13:23:50 https://github.com/w3c/csvw/issues/179 Do we need "phantom" columns, i.e., columns with their own and separate 'aboutUrl' value? #179 13:24:11 jenit: what problem does this solve? 13:24:37 gkellogg: problem that we have is that sometimes the information we want to have in our output, json or specifically rdf, … we might need info not exactly in the source CSV 13:24:42 e.g. that the rows describe People 13:24:56 we would therefore need a way to introduce data into the output on a row by row basis 13:25:03 a virtual column might allow us to do that 13:25:16 a table is defined by having some number of columns 13:25:32 if the table desc had more cols after the last real one from the csv, then notionally it would not retrieve a cell value 13:25:45 but we can through other means define .... 13:25:47 aboutUrl etc 13:26:01 that was what i was trying to accomplish 13:26:29 you go through each col, if there are more col records after last one, you go through … and if not in the csv, … you overide with default properties 13:26:32 to get literal values 13:27:06 jenit: i understand the goal, there's a q as this adds extra complexity, … 13:27:16 … the demonstration of type, to me, is proof that it is useful 13:27:21 the use of columns in that way concerns me 13:27:29 in that … the data changes if we add more cols to the data 13:27:45 if we start adding more cols to the data, multiple metadata files, some have extras, then we start to get conflicts 13:27:57 gkellogg: we could have isVirtual property set on the col 13:28:13 q+ 13:28:32 jenit: maybe have this as a separate property on schema, beyond cols, e.g. "extras" 13:28:54 gkellogg: how does this look in annotated model? 13:29:18 jenit: q is whether to pretend that they are cells or not 13:29:33 gkellogg: virtual col could appear any place? 13:29:55 jenit: concerned about the merge 13:30:11 ivan: agree w/ jenit, that this somehow mis-uses something 13:30:15 cols are to describe cols 13:30:26 q? 13:30:31 ack danbri 13:33:39 new issue: (disagreement over triples per cell in case of array value) 13:33:57 jtandy: lots of more structured data, observations etc., you want often a more deeply nested structure 13:34:05 e.g. adding a virtual column could support this 13:34:07 get more nesting 13:34:55 jtandy: in a CSV file of weather observations… that is a product based view 13:35:14 … we might have 5 different 'observation' entities 13:35:21 …all share the same time 13:35:30 which is why humans flatten them in csv 13:36:09 (example in http://piratepad.net/URwa3CM9Vv ) 13:40:10 (discussion of data cube use case) 13:40:25 (slices can have common properties, but then we have to tie those back to observations) 13:40:45 jumbrich: in data at uni, we have Org with a director with an Address 13:41:10 ivan: seems to work with what you have 13:41:25 jenit: usually to make things link together _and_ to be able to say it has a firstname, givenname etc 13:41:32 you can basically only get one triple per column 13:41:40 if you had 5 cols you get 5 triples 13:41:46 you get to define what the abouts and values are 13:41:57 gkellogg: the notion of the virtual col is to have more control 13:42:09 jumbrich: e.g. row1 person has a first name and a last name, … 13:42:18 (example in piratepad) 13:42:52 event example is https://github.com/w3c/csvw/blob/gh-pages/examples/tests/scenarios/events/source/events-listing.csv 13:43:04 expected triples: https://github.com/w3c/csvw/blob/gh-pages/examples/tests/scenarios/events/output/expected-triples.txt 13:44:15 gkellogg: another hacky way to do this 13:44:19 multiple tables 13:44:28 hijack diff cols in diff table mappings 13:44:50 jenit: yes a hack! 13:45:17 q? 13:45:21 jumbrich: there are also these mapping languages, ... 13:49:50 discussion of a jenit proposal 14:01:59 jenit: option 1, out of scope 14:02:16 option 2, … most common is saying this thing descrbied by row is an Event, Person, et 14:02:16 c 14:02:25 so we could have a specialized handling for that 14:02:46 option 3, this stuff is v v useful, best way of doing that is to hook onto existing column based processing 14:02:55 just say we have phantom cols 14:03:18 4., we want to do this, but not use phantom cols but extra stuff within a col description 14:03:32 DavideCeolin has joined #csvw 14:03:40 my prefs: 3 or 4, no pref between them 14:04:17 jenit; either way we'll solicit wider feedback 14:04:21 2 14:04:26 3 14:04:27 2 14:04:55 3/4 14:05:51 gkellogg: 3 easier to impl 14:05:55 4 more complex 14:06:02 strongly against 2 14:06:18 3 or 4 (if we have typed colums or several entities between columns, we need something more) 14:06:35 3 is a hack but it's easy with potentially a huge win 14:06:43 3/4 14:07:29 jenit: ivan and i preferred it simple, everyone else went for the extra power 14:07:43 … and i accept value of that, esp 3 seems preferred 14:07:48 … let's try it and seek feedback 14:08:02 gkellogg: I think it will probably work 14:08:09 ivan: means at least virtual cols need a name 14:08:23 jenit: we'll pursue investigating use of phantom cols for generating 14:08:37 jenit: create a PR and we'll put in spec saying "we particularly seek feedback on this feature" 14:08:57 ivan: whatever we publish in a month will include phantom cols 14:09:14 jtandy: terminology? 14:09:16 Virtual 14:09:34 rather than Phantom 14:09:38 PROPOSED: We will implement virtual columns for the next version of the spec, with an explicit request for comments. 14:09:43 +1 14:09:50 +1 14:09:51 +1 14:09:54 +1 14:09:54 +1 14:09:56 +1 14:11:48 backup gist copy of piratepad, https://gist.github.com/danbri/30534e3c337b34520798 14:13:04 scribenick: gkellogg 14:13:13 https://github.com/w3c/csvw/issues/58 14:13:33 How should class level qualified properties be transformed to JSON #58 14:14:43 PROPOSAL: In JSON output, we do not expand property names into URLs. 14:14:48 +1 14:14:54 +1 14:15:22 +1 14:15:25 +1 14:16:18 RESOLUTION: In JSON output, we do not expand property names into URLs. 14:17:15 gkellog: right now, the value of a csvw:row is a row URI, but there are now multiple entiities for each row… 14:17:39 ivan: my understanding was that this was homework to work out the details 14:18:53 https://github.com/w3c/csvw/issues/117 14:19:08 https://github.com/w3c/csvw/issues/117#issuecomment-72898169 14:19:08 topic: Make the datatype mapping more precise #117 14:20:07 JeniT: columns describe datatype such as strings, dates, numbers. We could also have XML, HTML, JSON. 14:20:55 … embedded XML, HTML, JSON does exist in the wild. Embedded CSV is a nightmare! 14:21:57 … In the generation of the RDF, if the datatype is XML, the output should be an rdf:XMLLiteral, HTML: rdf:HTML, JSON: ??? 14:23:15 … Three options, xsd:string, csvw:JSON, process JSON as we process common properties. 14:23:31 can we emit base64 as data uris, e.g. data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 9TXL0Y4OHwAAAABJRU5ErkJggg== 14:24:10 danbri: I think so, through the URL template, yes 14:24:28 (yes, looks doable to me too, just wanted sanity check - thanks) 14:24:31 iherman: I spent some time to define a JSON datatype; the problem is that formally speaking, you need to define L2V for the datatype. 14:25:12 … there are discussions at IETF on doing this, but there is no universally accepted way to do it. 14:26:05 … My feeling is that we shouldn’t define such a datatype. 14:26:32 … A datatype means that I have a property RDF datatype definition, which we can’t do. 14:28:37 JeniT: options on table: process JSON as a common property, output in RDF with xsd:string, or with csvw:JSON, where that is defined as a subClass of xsd:string 14:30:00 jtandy: usually, when people do this it’s to use in a GUI, and is not intended for interpretation. I don’t want to pick out embedded output. 14:30:11 JeniT: this leaves options 2 and 3. 14:32:30 PROPOSED resolution: datatype: json gets mapped to RDF literal with a datatype of csvw:JSON which is a subtype of xsd:string 14:33:11 +1 14:33:30 +1 14:33:33 +1 14:36:41 +1 14:51:51 scribenick: danbri 14:52:02 topic: Overflow Time 14:52:07 topic: conflation 14:52:33 ivan: metadata has an @id etc., considered as a json-ld thing, result is an rdf graph, where everythting is hanging on the subject, whose url is this one 14:52:43 jenit: and your understanding is… that the @id is for the graph, … or? 14:52:58 ivan: it is a bunch of rdf statements, whose subject is [this url] 14:53:05 [general agreement so far] 14:53:14 ivan: from this metadata thing, we also generate a bunch of rdf statements, .. 14:53:27 … as we describe, which includes the rows, the things jtandy has described 14:53:47 my understanding is that yesterday we said that the url for this, is … this 14:53:58 in fact we get, for the same subject, … 14:54:19 in current world, … means that we attach on to the same subject, a bunch of additional triples which have nothing to do with what we want here 14:54:35 what i claim is that these two things should be different 14:54:41 we have to have an explicit statement here 14:54:53 that gives a home … to give a subject for what we generate from CSV 14:55:07 jenit: what I don't understand is why you make the assertion that things about blah there, arent about blah there 14:55:22 ivan: [here this here something missed ] 14:55:41 gkellogg: my u/standing is that all of those properties _are_ the table 14:55:48 and all of those properties are properties of the table 14:56:00 and something similar to inference rules add triples based on interpreting the csv 14:56:08 where i believe ivan is coming from, and i also feel 14:56:17 what the metadata description is, is a description of the table 14:56:21 used to create the tabular data model 14:56:26 which is though, a different entity 14:56:36 therefore when we say Common Properties, and copying them over, … 14:56:56 … i think from Jeni's perspective, you are not copying them, you are just expressing them with some discrimination e.g. skipping notes and schema 14:57:13 gkellogg: whereas my view + i think ivan's, … we could go …. [missed] 14:57:25 https://github.com/gkellogg/rdf-tabular/blob/feature/de-conflate-metadata/spec/data/tree-ops.csv-metadata.json 14:57:27 … to be unequivically of the table and not the metadata 14:57:40 jtandy has joined #csvw 14:57:59 ivan: we require an explicit thing that is different 14:58:05 … jtandy raised this ages ago 14:58:24 jtandy: i was just happy to establish that things in the @table were about the table 14:58:36 i did not have burning need to talk about the table description itself, who wrote it, etc. 14:59:24 (gkellogg talks us through https://github.com/gkellogg/rdf-tabular/blob/feature/de-conflate-metadata/spec/data/tree-ops.csv-metadata.json ) 15:00:36 … "… in we chose to create such a distinction this would be a reasonable way" 15:00:47 jenit: querying this, … url is probably poperty of the table 15:00:55 … and tableSchema is the schema of the table 15:01:02 gkellogg: now i am understanding your view a bit more 15:01:07 the metadata thing … is the schema 15:01:19 if ivan wanted to make statements about the metadata, it could be in the schema 15:01:26 see orig version of this file, …-> 15:01:34 https://github.com/gkellogg/rdf-tabular/blob/develop/spec/data/tree-ops.csv-metadata.json 15:02:02 this has url, common properties, and tableSchema 15:02:15 i understand if we put common props in the tableSchema they won't come out via conversions 15:03:06 ... 15:04:04 gkellogg: we're not copying over, so much as serializing this alongside rules based on the referenced csv file 15:05:12 ivan: .. what the rdf gen doc does is additional, but common properties are already there 15:05:16 should be made v clear in the doc 15:05:20 for me it was absolutely not clear 15:05:42 ... 15:05:54 jenit: if you have dc:title on tableGroup you have it for the whole set , not inherited down 15:06:03 gkellogg: there is no description on the table group as such 15:06:17 ivan: in grander scale, you talk about CSV files as being part of the Linked Data cloud or world, ... 15:06:30 … my view until now, the metadata creates link between that cloud and CSV files which are in some form RDF 15:06:43 but in fact that is not what happens 15:06:58 … what we describe is some sort of an inference 15:07:47 topic: Conversion to RDF 15:07:57 looking at PROV 15:08:32 http://w3c.github.io/csvw/csv2rdf/ 15:08:35 section 3.1.x 15:08:48 issue #147 15:08:52 #147 15:09:22 jtandy: as it is useful to understand how a set of info is created, and we discussed including PROV, … this section of csv2rdf is based on a suggestion in those discussions 15:09:48 prov:generated <[RDF Output Location]>; 15:09:51 …hard to know 15:10:02 prov:startedAtTime [Start Time]; 15:10:02 prov:endedAtTime [End Time]; 15:10:02 … for activities 15:10:14 and it had a usage, which was a csv file, … etc. 15:10:20 see also 2nd example further on. 15:10:40 ivan: see https://github.com/w3c/csvw/issues/174 15:10:51 Slight modification of the provenance structure for RDF output #174 15:11:04 ivan: this shows eg a bit different, … you bind it to table with activity 15:11:09 i was looking at prov vocab and examples 15:11:16 … here it was generated by an activity, ... 15:11:29 whether that info was useful or not is a separate debate 15:11:35 i think that is more correct 15:11:48 davide: … this kind of info was what i was looking for 15:11:53 may not be v useful in many cases 15:12:01 but sometimes can help you find problems 15:12:14 ivan: this is what i generate now 15:12:25 jenit: you mention a way of capturing what metadata files were used 15:12:34 jtandy: you'd have a prov qualifiedUsage block 15:12:39 one for every metadata involved 15:12:47 gkellogg: except for the embedded metadata 15:12:56 ivan: i have here a slightly more complex one 15:13:10 (adding to https://github.com/w3c/csvw/issues/174 ) 15:13:41 prov entity has a bunch of csv files 15:13:46 jtandy: so it is a list of entities 15:13:55 jenit: i don't know what the correct usage is 15:14:02 … here this is an activity that has two prov usages 15:14:07 one of which has multiple entities 15:14:42 jenit: even though there are multiple metadata files, ... 15:14:48 ivan: problem is, ... 15:15:51 discussion of whether optional 15:15:54 how to test 15:15:56 esp with times 15:16:55 gkellogg: only thing problematic for automated testing, is inclusion of timestamps 15:17:08 jenit: whether that is problematic or not depends on how we define those tests 15:17:23 gkellogg: we got a lot of rdfa impl feedback that we made testing hard 15:17:46 ivan: here we have 2 metadata files that exist and can be referenced 15:17:57 but default and user metadata, passed on,… how do we describe them 15:18:03 davide: i was thinking about that 15:18:27 gkellogg: maybe a bnode?? 15:18:31 danbri: do we have a UC for this? 15:18:45 jenit: are there any specs that generate proveance automatically 15:19:02 jenit: would it be terrible if left implementation defined 15:19:47 ivan: prov docs can be hard to read but a good primer 15:21:05 danbri: provenance super useful in v detailed scientific scenarios, but we can't define that … let's point them at prov 15:21:15 jenit: to facilitate that, fix some prov roles 15:21:29 csvw:EncodedTabularData and csvw:tabularMetadata 15:21:37 … we may need to think about those more 15:21:42 https://github.com/w3c/csvw/issues/174 15:21:57 jenit: suggesting that https://github.com/w3c/csvw/issues/174 ("Slight modification of the provenance structure for RDF output") be resolved as … 15:22:28 (discusssion that examples are non-normative) 15:22:30 PROPOSAL: We suggest that implementations may choose to include provenance information and include an example of what it might look like. 15:22:39 rrsagent, pointer? 15:22:39 See http://www.w3.org/2015/02/13-csvw-irc#T15-22-39 15:22:47 +1 15:23:20 +1 15:23:38 jenit: the use of the prov info will really determine how much depth needed, … so am inclined to leave it impl-defined. 15:23:50 gkellogg: for testing, implementations should have a way to disable outputting prov 15:23:52 +1 15:23:57 +1 15:23:57 +1 15:24:00 +1 15:24:19 DavideCeolin has joined #csvw 15:24:23 +1 15:24:26 RESOLVED: We suggest that implementations may choose to include provenance information and include an example of what it might look like. 15:24:40 jenit: on to prov roles 15:24:53 jtandy: i feel that is the right way fwd 15:24:59 raises q then about dcat distribution 15:25:09 i think important that we point to the csv where the stuff came from 15:25:13 https://github.com/w3c/csvw/issues/147 15:25:15 jenit: but prov roles first 15:25:24 Prov roles #147. 15:25:31 "The CSV2RDF doc uses two values for prov:hadRole: csvw:csvEncodedTabularData andcsvw:tabularMetadata. This need to be defined as instances of prov:Role in the namespace. Are there other instance types we need to define? TSV, XLS, HTML?" 15:26:22 ivan: q is whether there are other roles 15:26:29 we defined yesterday validation vs generation processors 15:26:40 i used a ref to my own tool saying 'this is the guy that generated that' 15:26:45 maybe the validation is a diff role? 15:27:11 danbri: plugins for R2RML etc? 15:27:16 jenit: no, this is just for our bit 15:27:23 danbri: so they'd do their own prov? fine thanks 15:27:32 ivan: prov's way around reification is interesting 15:28:36 jenit: so on #147 we make it only applicable to the csv2rdf mapping, and assign Davide to the issue, commenting "discussed at f2f…" -> see https://github.com/w3c/csvw/issues/147 15:28:45 … davide and ivan to come up with a list of appropriate roles 15:29:32 https://github.com/w3c/csvw/issues/179Is the DCAT block useful in the RDF output. #177 15:29:32 15:29:54 jtandy: to give an unambig rel between dataset and outset, i inserted idea of using a dcat:distribution statement 15:30:00 file vs abstract data 15:30:08 however we could simply use the url property 15:30:12 jenit: or dc:source 15:30:22 danbri: also in schema.org 15:30:29 jenit: this is one mech to do it, … there are clearly others, ... 15:30:41 … introducing the dcat stuff gives us some baggage that might make some people flinch 15:31:03 ivan: this in #177 … 15:31:08 … is a json transform 15:31:34 jtandy: I generated it. Idea is that you would, while transforming, insert a bit of json magic 15:31:44 gkellogg: just a json not json-ld? 15:32:03 no, this is the rdf transformation … 15:33:04 ivan: i have no dcat experience 15:33:13 jenit: impl is that the table is a dataset in dcat terminology 15:33:21 which is so flexible as to mean anything 15:33:27 jtandy: you could insert as a common property 15:33:56 jenit: i think this falls under 'it's impl defined how you might define info about the provenance of this output graph' 15:34:04 you could use prov or dc:source or dcat or ... 15:34:13 gkellogg: so goes into same non-normative section 15:34:44 jenit: only thing, … using dcat:distribution def falls under impl-defined, only q is whether we want there to be a CSVW URL property to be in the rdf output 15:35:57 danbri: can't force people to publish e.g. intranet urls 15:36:05 jtandy/jenit: feesls more refined than just dc:source 15:36:17 … should csvw:url be a subproperty of dc:source 15:36:29 http://purl.org/dc/terms/source 15:36:36 "A related resource from which the described resource is derived." 15:36:41 "The described resource may be derived from the related resource in whole or in part. Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system." 15:37:23 -1 on subproperty 15:37:41 jenit: Suggestion: don't add dcat:distribution, but do have, in the generated RDF output: 15:37:41 _:table csvw:url . 15:37:50 jtandy: in json it would just be "url": ... 15:38:40 jenit: proposed - any impl of dcat properties is impl defined, but that we do try to preserve the link to original file through using csvw:url 15:38:43 +1 15:38:53 rrsagent, pointer? 15:38:53 See http://www.w3.org/2015/02/13-csvw-irc#T15-38-53 15:39:03 rrsagent, draft minutes 15:39:03 I have made the request to generate http://www.w3.org/2015/02/13-csvw-minutes.html ivan 15:40:20 (route to http-range-14: "Is the url the id of this thing or a different thing? discuss.") 15:41:23 jenit: two more issues we didn't get through 15:41:24 lists next 15:41:29 https://github.com/w3c/csvw/issues/107 15:42:05 jenit: when we have a cell with a sequence, e.g. spaces, semicolons, … and the cell value then contains a sequence of values, ... 15:42:48 gkellogg: do we disagree? what about cells being only one triple? 15:42:55 jenit: what to do in these kinds of cases? 15:43:02 … what gets created in the rdf output? 15:43:03 https://github.com/w3c/csvw/issues/107#issuecomment-72894468 15:43:08 json has arrays which are always ordered 15:43:21 rdf output has possibilities of generating an actual rdf list, … or you generate repeated properties 15:44:29 jtandy: content that lists are lists 15:46:01 danbri: [begs for a parameter for listyness, use case of nationality] 15:47:15 PROPOSED: when a cell value is a sequence of values, it is converted to a rdf:List if ordered is true, and to multiple values for the same property if ordered is false; the default is that ordered is false 15:47:23 DavideCeolin has joined #csvw 15:47:24 +1 15:47:49 PROPOSED: when a column defines a separator, cell values are converted to a rdf:List if ordered is true, and to multiple values for the same property if ordered is false; the default is that ordered is false 15:47:52 +☮ 15:47:59 +0.999 15:48:00 +1 15:48:06 +1 15:48:07 +1 15:48:10 +1 15:48:12 +1 15:48:24 +1 15:50:07 (exit davide) 15:50:15 jtandy: who is going to update UC doc? 15:50:23 davide: ok, i'll… 15:51:53 https://github.com/w3c/csvw/issues/35 15:54:30 https://github.com/w3c/csvw/issues/94 15:59:48 jumbrich has joined #csvw 16:01:03 [discussion about whether it’s possible/useful to have a default metadata document] 16:01:39 ivan: what we have now... 16:01:49 we normalze each metadata then we 2nd-normalize them 16:01:53 filling in missing bits like name 16:01:54 ivan: we normalise the metadata files before merge, then we merge, then we add defaults (like name) 16:02:11 gkellogg: that's your view 16:02:30 … what's in there is consistent and does not require us to locate default metadata 16:02:41 ivan: I think more the q of how we define it, … an editorial issue 16:02:45 we do same thing 16:02:58 … i try to put the formulation of whole thing into metadata files,... 16:03:09 … at end of whole process we have another phase of normalization 16:03:18 which seems consistent with the current system 16:03:25 this is an editorial issue 16:03:39 jenit: i think perfectly reasonable to say 'normalization, merge, … ' 16:03:45 …'completion' (ivan/jenit) 16:04:14 gkellogg: places we talk about property values to make sure they're [post-completion] 16:04:21 jenit: for each property we say 'if missing assume x' 16:04:27 ivan: name, details of dialect 16:04:43 jenit: we could be more disciplined providing more info throughout 16:05:11 (reminds me of https://en.wikipedia.org/wiki/XML_Schema_(W3C)#Post-Schema-Validation_Infoset …) 16:05:28 jenit: editorial action is to check property definitions are applied consistently 16:05:38 gkellogg: I tried this when looking at property values (in transform doc) 16:05:47 jumbrich has joined #csvw 16:05:51 i think it is ok. if not, there is some editor action. 16:06:22 ivan: i can do this, but when? all these changes pending 16:06:32 jenit: process from here is … lots of editor actions 16:06:36 push them all through 16:07:46 ivan: even my implementation needs reworking after all this 16:07:50 gkellogg: also our test cases 16:10:31 jtandy: I'll always have a propertyUrl defined? 16:10:32 (yes) 16:10:45 ivan: conversion docs will be cut by half 16:11:44 jenit: do we want to discuss ' • Relationship between table group, table and schema" ? 16:11:57 jtandy: that will be resolved based on [other actions/decisions] 16:12:51 -topic cvwr:row 16:13:24 topic: Relationship in RDF output of conversion between csvw:Table and the entities generated from a row 16:13:33 ivan: dealing with lists is ugly 16:13:49 … which is why we pulled away and put in the row number 16:14:47 jenit: table has rows, … rows have row numbers, which describe entities, … the (possibly different/various) about URIs 16:14:54 ('describes' or similar) 16:15:21 discussion of using RFC-7111 to point here with fragment IDs 16:16:08 gkellogg: i'm fine so long as i can turn it off 16:16:45 debate on whether we want to explicitly list an option 16:17:55 jenit: may as well be non-normative then, if optional 16:18:21 … related q: is it legal for the rdf conversion to include anything else it wants? 16:18:32 gkellogg: always should be ok, but should also be possible to turn off turnoffable things 16:19:04 levels of conversion- 16:19:16 gkellogg: including "that", rows etc 16:20:12 danbri: [something like named graphs, x3] 16:21:57 jumbrich has joined #csvw 16:22:05 PROPOSAL: there are different levels of output from RDF and from JSON, which can be selected on user option. These are ‘minimal’ that produces only the data from the table, without reification triples, ‘standard’ which includes reification of tables & rows, ‘plus prov’ which includes provenance 16:25:21 +1 16:25:22 +1 16:25:22 +1 16:25:24 +1 16:25:26 +1 16:25:27 +1 16:25:27 +1 16:25:31 +1 16:25:34 +1 16:25:35 +1 16:25:59 RESOLVED: there are different levels of output from RDF and from JSON, which can be selected on user option. These are ‘minimal’ that produces only the data from the table, without reification triples, ‘standard’ which includes reification of tables & rows, ‘plus prov’ which includes provenance 16:26:24 rrsagent, please draft minutes? 16:26:24 I'm logging. Sorry, nothing found for 'please draft minutes' 16:26:24 rrsagent, draft minutes 16:26:24 I have made the request to generate http://www.w3.org/2015/02/13-csvw-minutes.html ivan 16:39:29 jumbrich has joined #csvw 16:39:53 topic: wrapup and actions 16:40:19 jenit: … aiming for another set of Working Drafts end of March, early April. 16:42:21 … handing of comments/suggestions 16:42:23 3 buckets: 16:42:38 small gramamticifical fixes, which should be made immediately with no fuss. 16:43:19 gkellogg/jtandy: let's stick with Pull Requests, just merge immediately 16:43:26 ivan: … and remove the branch? 16:43:34 gkellogg: I have a gk updates branch 16:44:43 jenit: 2nd bucket is where we have a resolved direction but you need someone else to review it please 16:44:58 … suggest create a PR specific for the particular issue 16:45:11 gkellogg: this is where the timeliness comes in, … you get blocked 16:45:17 jenit: no, git is good 16:45:30 debate over how badly things block 16:45:51 jenit: small atomic PRs that are quickly resolved 16:46:04 if you are not getting the review you need, … and will cause a problem with merge, then just merge it. 16:46:13 … and assign it to somebody 16:46:22 ivan: will I get an automatic email? 16:46:23 yes 16:46:58 gkellogg: "watching" setting for the repo helps 16:47:24 jenit: the other is around 'useful issues' 16:47:34 3rd category is "don't know what to do here" 16:47:41 i.e. there are some options 16:47:45 … keep them small and focussed 16:48:05 … try to provide what the options are, say what your proposed resolution is, … get some no. of +1s, sufficient for you to say if it is resolved 16:48:29 (discussion of avoiding digressions) 16:48:43 jenit: please avoid digressions in github 16:48:46 create a new issue 16:48:49 then link it 16:50:03 https://github.com/w3c/csvw/pulls?q=is%3Apr+is%3Aclosed 16:52:32 jenit: how many +1s on a proposed resolution are needed? 16:52:45 jenit: a working week with no -1s 16:53:33 rough consensus to use mailing list if blocked waiting for +1 16:54:19 jenit: let's use the existing 'requires discussion' github label 16:54:27 jenit: when we do our reviews try to have a read 17:38:40 jumbrich has joined #csvw 17:52:07 Zakim has left #csvw 18:11:10 jumbrich has joined #csvw