15:48:36 jtandy has joined #csvw 15:48:37 Zakim has joined #csvw 15:49:31 Meeting: CSV on the Web WG, F2F meeting @ TPAC, 2014-10-28 15:49:46 Agenda: https://www.w3.org/2013/csvw/wiki/F2F_Agenda_2014-10 15:49:52 Chair: Jeni 15:50:28 rrsagent, this meeting spans midnight 15:51:35 laufer has joined #csvw 15:52:44 scribenick: laufer 15:53:11 Present: Jeni_Tennison, Dan_Brickley, Bill_Ingram, Jeremy_Tandy, Gregg_Gellogg, Axel_Poleres, Carlos_Laufer, Fabien_Gandon, Bart_van_Leeuwen, Ivan_Herman, Eric_Stephan 15:53:47 rrsagent, set log public 15:53:57 rrsagent, draft minutes 15:53:57 I have made the request to generate http://www.w3.org/2014/10/28-csvw-minutes.html ivan_ 15:57:49 BartvanLeeuwen has joined #csvw 15:58:41 fabien-gandon has joined #csvw 15:59:21 ericstephan has joined #csvw 15:59:27 AxelPolleres has joined #csvw 16:00:13 Present+ Phil_Archer 16:00:48 bill-ingram has joined #csvw 16:01:26 JeniT: first session about templating 16:01:50 ... jenit talking about thw work during the day 16:01:59 andimou has joined #csvw 16:02:06 (did anyone talk to Liam about XML, I forget the exact question that was to be put to him) 16:03:01 phila has joined #csvw 16:03:56 BartvanLeeuwen has joined #csvw 16:04:51 ivan_: talking about the simple mapping 16:05:13 datatype mapping is complicated 16:05:41 ivan_: datatype mapping is complicated 16:06:04 see also https://github.com/w3c/csvw/issues https://github.com/w3c/csvw/labels/CSV%20to%20RDF/JSON%20mapping and nearby 16:06:29 http://www.w3.org/2014/Talks/1028-CSVW-IH/Overview.html 16:06:32 gkellogg: picture strings for validation 16:07:59 ivan_: we shoud nor have rdf or xml in the sintax 16:08:46 ...row level templates and table templates 16:10:21 ... talking about the simplest template... 16:11:22 ... ...talking about teh table level and the row level... 16:11:42 compare to http://liquidmarkup.org/ 16:11:55 ... explainig flters line unix piping 16:12:06 q+ use of Promises for filters? 16:12:29 ... recursion is complicated 16:12:58 q+ gkellog to ask about the use of promises for filters 16:13:24 ... typical filters: uppe lower row_number replace etc. 16:13:28 q+ to ask about global vs column keys (slide 6)… 16:14:42 ... the srguments itself are strings 16:14:59 q+ 16:15:10 q- 16:15:47 ... presenting some examples 16:16:00 q+ to suggest that we evaluate our experience with 'advanced mappings' (mustache, r2RML etc) for useful common patterns to special case into our REC-track Simple Mapping) 16:16:50 ... I have implemented a jquery extension... 16:17:51 q+ to ask how the js structured passed into templates compare to simple mapping json (same?) 16:19:16 http://iherman.github.io/CSVPlus/test-templateonly.html 16:19:58 ... listing possible additions as for example escape characters in templates 16:20:42 ... another example: inclusion of URI template 16:21:14 q? 16:21:18 ack gkellog 16:21:18 gkellog, you wanted to ask about the use of promises for filters 16:21:58 gkellogg: asking about using promisses 16:22:11 ivan, one possible other issue/conflict I see is when (slide 6) global keys have the same name as column names. 16:22:21 fsasaki has joined #csvw 16:22:32 fsasaki has left #csvw 16:22:34 ack AxelPolleres 16:22:34 AxelPolleres, you wanted to ask about global vs column keys (slide 6)… 16:22:38 q- 16:22:47 ack me 16:22:47 danbri, you wanted to suggest that we evaluate our experience with 'advanced mappings' (mustache, r2RML etc) for useful common patterns to special case into our REC-track Simple 16:22:50 ... Mapping) and to ask how the js structured passed into templates compare to simple mapping json (same?) 16:23:25 danbri: looking more to rdf mappings 16:24:00 danbri: moustache needs javascript objects 16:24:18 ivan_: my first implementation uses moustache 16:24:39 Zakim: I hope to giving metadata to moustache it would work 16:24:57 ... I had to extrat the data in the metadata 16:25:41 ... you have to extratct the data and transform to a format that moustache understands 16:26:42 JeniT: if you do a implementation in moustache and uses the json object, it is possible to use in moustache? 16:27:07 ivan_: moustache ask for a simple name:value pairs 16:27:39 q? 16:27:42 [according to http://stackoverflow.com/questions/8912540/how-to-access-nested-objects-with-mustache-js-templating-engine you can go deeper into js(on) structures with mustache] 16:27:44 q+ 16:28:32 ... the way I used is a replace to a simple mappin 16:28:39 ... mapping 16:29:06 ack jtandy 16:30:09 jtandy: the metadata needs to reference the template 16:30:51 q? 16:31:35 JeniT: has a template media-type 16:33:36 JeniT: templates have to media_type: 16:33:57 ... targetType: application/json 16:34:09 q+ re target type - granularity 16:34:30 ... templateType: application/mustache 16:34:45 q? 16:35:04 ack danbri 16:35:04 danbri, you wanted to discuss target type - granularity 16:35:12 ivan_: what does the template apply 16:37:11 http://www.w3.org/ns/formats/ 16:37:23 Is there a spec for URIs for media types? 16:37:25 http://www.w3.org/ns/formats/ 16:37:42 http://www.iana.org/assignments/media-types/application/cdmi-queue 16:38:29 See also the European Union publications office that is defining URIs for file formats that goes beyond media types http://publications.europa.eu/mdr/authority/file-type/index.html 16:38:47 JSON-LD -> http://www.iana.org/assignments/media-types/application/ld+json 16:39:16 JeniT: use URI for targetType and templateType 16:39:34 1 . https://github.com/w3c/csvw/blob/gh-pages/examples/tests/scenarios/events/source/events-listing.csv 16:40:24 2. https://github.com/w3c/csvw/blob/gh-pages/examples/tests/scenarios/events/output/expected-triples.txt 16:41:19 3. https://github.com/w3c/csvw/blob/gh-pages/examples/tests/scenarios/events/attempts/attempt-1/mapping-events.rml.ttl 16:44:56 -> http://www.w3.org/TR/owl2-primer/#OWL_Syntaxes OWL 2 Primer gives readers a serialization choice 16:45:24 https://raw.githubusercontent.com/w3c/csvw/gh-pages/examples/tests/scenarios/chinook/ChinookSchema.PNG 16:45:27 danbri: explaining a r2rml example 16:45:29 q? 16:46:00 ivan_: fits nice to the cross references 16:47:40 laufer: You're saying that this is an RDB and you're using R2RML 16:47:50 ... but these things are in CSV files or RDB? 16:48:07 danbri: Actually, I had to create the CSVs as the Chinook DB only gives you the RDB 16:48:22 laufer: There are lots of tools to do that 16:48:34 ... you have the relational database, you have a lot of tools available 16:49:12 q? 16:49:31 (see https://github.com/w3c/csvw/blob/gh-pages/examples/tests/scenarios/chinook/chinook_tocsv.sh for the sqlite to CSV script) 16:50:33 q+ re template syntax - suggest a field for saying "CIDOC CRM" or "Data cube" via URL, alongside targetType URL 16:51:38 ivan_: templates apllies to the output or directed in the data 16:52:34 JeniT: if you have a csv generated from and excel file so you nedd one more type: a sourceType 16:53:56 ivan_: the simple mapping of rdf does not defines the serialization 16:57:24 q? 16:57:40 q+ 16:57:45 ack me 16:57:45 danbri, you wanted to discuss template syntax - suggest a field for saying "CIDOC CRM" or "Data cube" via URL, alongside targetType URL 16:57:54 q+ to ask about templates interacting with schemas 17:00:07 ivan_: The templateType is now a URL that identifies a processor ID 17:00:09 me: targetType is overloaded — a media type is in a different kind of thing 17:00:18 ivan_: that works on the data 17:00:31 em has joined #CSVW 17:00:35 ... and the processor tells you what else should be included, but we cannot really define that 17:01:37 jtandy: We need a name to be able to say I want to use this template, so each template needs to have an ID 17:01:51 ... that might only be a textual description of what it does 17:01:54 q- 17:02:10 scribenick: phila 17:02:25 JeniT: In other places, you might want a title 17:02:34 q? 17:02:57 jtandy: Yesterday we talked about the need to pre-process a CSV before you parse it. That's a different kettle of fish 17:03:14 ... we could say that if you need to do that then it's out of scope for this 17:03:38 ... my example was a CSV that had separate columns for months and days that need to be merged which is hard for templating 17:03:48 ... I'd like to be able to do that but ... 17:04:06 JeniT: So you;re asking whether we should have a similar mechism for processing hte imnput as we're talking about for the output 17:04:10 (i'm not going to over-argue for it now, but overloading targetType media type to say "Dublin Core" etc seems absolutely the wrong place for that detail, and a URI is needed alongside name/title/blurb etc.) 17:04:24 ivan_: That's doable with your URL templates 17:04:47 jtandy: But I want a triple derived from values in two cells but in the simple mapping we're talking about 2 triples 17:04:59 JeniT: By the template on the output should give you control over that? 17:05:25 jtandy: It may be an edge case to require pre-processing, but I'd still like simple mapping ro deal with that seemingly simple case 17:05:53 JeniT: So I've heard reqs: 1 to creatre more than one object from each row; 2 to create one output from two cells 17:06:02 ivan_: The second is covered by the URI template 17:06:20 gkellogg: To create a URI, yes, but not, say, a date 17:06:49 JeniT: I think we need to make a scoping decision on this 17:06:59 ivan_: I'm afraid of opening the gates of hell... 17:07:16 q+ 17:07:18 q+ 17:07:20 ack AxelPolleres 17:07:34 AxelPolleres: These 2 reqs are doable with R2RML or the templating 17:07:42 q+ 17:07:44 ... is that something we can scope with a fragment of R2RML? 17:08:05 danbri: The turtle I showed had a lot of complication & redundancy there was 17:08:09 ack danbri 17:08:22 ... what I'd like to be able to do is take that as a JSON format and generate the R2RML from it 17:08:53 ivan_: As soon as we begin to go into specifying this and that feature - that's what we did all spring 17:09:04 ... we keep re-doing this 17:09:14 ... I think we should take what's there as simply as possible 17:09:25 q+ to read from charter, "The output of the mapping mechanism for RDF MUST be consistent with either the http://www.w3.org/TR/rdb-direct-mapping/ or http://www.w3.org/TR/r2rml/ so that if a table from a relational database is exported as CSV and then mapped it produces semantically identical data." 17:09:26 ... defining a proper subset of R2RML is a lot of work 17:09:53 I propose to strike from the charter, "The output of the mapping mechanism for RDF MUST be consistent with either the http://www.w3.org/TR/rdb-direct-mapping/ or http://www.w3.org/TR/r2rml/ so that if a table from a relational database is exported as CSV and then mapped it produces semantically identical data." 17:09:53 ivan_: If we want to go into more complex templates then we need to go through the exercise I did and I showed that there is still more to do. 17:10:00 ... we don't have the capacity to do that 17:10:06 ... that's my frustration 17:10:15 ... 6 months haggling around the conversion side 17:10:17 ack gkellogg 17:10:40 gkellogg: I'm also wary of something ugly. We've more or less decided to using the URI template. 17:10:53 ... I've looked at extending that to cover strings, not just URIs 17:11:08 ... I couldn't find an implementation in Ruby - it wasn't too challenging to do it 17:11:20 ivan_: We're running ahead into the next session here 17:11:33 ... but I'd say we take the Template RFC as is and leave it as is 17:11:41 ... what it gives us is where we stop 17:12:07 ... I put up an answer to something Jeremy sent round. I included a reference to a list of implementations of that RFC in many languages 17:12:11 Can we do the same with R2RML (i.e. just refer to it via providing a “hook”)? Do we have that hook already? 17:12:16 q? 17:12:18 ... we do a disservce if we fiddle around with it 17:12:19 ack danbri 17:12:19 danbri, you wanted to read from charter, "The output of the mapping mechanism for RDF MUST be consistent with either the http://www.w3.org/TR/rdb-direct-mapping/ or 17:12:22 ... http://www.w3.org/TR/r2rml/ so that if a table from a relational database is exported as CSV and then mapped it produces semantically identical data." 17:12:34 danbri: I wanted to make a tech point and a process point 17:13:03 danbri: I triggered a rant from you on what I thought was uncontentious. A paragraph could describe what it would look like in R2RML 17:13:29 danbri: Quotes the charter on relationship with RDB and R2RML 17:13:39 q+ AxelPolleres 17:13:46 q+ 17:13:56 ack AxelPolleres 17:13:57 ivan_: In the back of my mind - if you want to do RDF then we should be compatible with the simple mapping 17:14:11 AxelPolleres: Do we have a hook for referring just to an R2RML mapping? 17:14:20 ack jtandy 17:14:23 danbri: Nearly, yes - it's on the whiteboard 17:14:53 jtandy: Having listened, I understand the nervousness... but I am thinking about how I could help deliver 17:15:19 ... I don't think it's going to be uncommon to flag a column as a do not process 17:15:41 hook to R2RML is enough to fullfill the charter, right? a shortcut notation/nicer syntax for some restricted fragment of R2RML is something somebody else could do later on… 17:15:48 Reference to UK Gov time periods 17:15:59 see also http://en.wikipedia.org/wiki/Data_URI_scheme 17:16:07 jtandy: If what you wanted to do was to create a string then wouldn't the templating stuff be helpful 17:16:26 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg== 17:16:34 ivan_: I guess the implementations are string to string mapping with a few tricks to make them URIs 17:16:49 jtandy: It does have a few issues - escaping special characters tec/ 17:16:57 JeniT: I would like a decision on... 17:17:45 PROPOSED: For now, and without limiting our future work, that we scope to the simplest possible thing that might work and therefore do not have multi-object per line or multiple columns per line 17:18:46 ivan_: If I put the CSV into Oracle and I run the direct mapping, and I take the CSV and run the simple mapping, then the two outputs must be equivalent graphs 17:19:32 IMHO, s/equivalent/entailed/ … 17:19:46 … because of some extra triples we might have. 17:20:12 q+ 17:20:48 ack AxelPolleres 17:21:03 danbri: If our templating said here's how to generate DC, we should perhaps have a paragraph that says these are similar but not the same as R2RML 17:21:25 AxelPolleres: The question is whether more complex things are in the spec or just say that it can be done 17:22:05 ivan_: Writing a Note on how these things can be done in R2RML is fine - but we have to do it 17:22:05 Axel, let's look at that in coffee break. see https://github.com/mmlab/RMLProcessor/blob/master/src/main/java/be/ugent/mmlab/rml/core/RMLMappingFactory.java#L94 17:22:12 PROPOSED: For now, and without limiting our future work, that we scope to the simplest possible thing that might work and therefore do not have multi-object per line or multiple columns per line 17:22:25 +1 17:22:26 +1 17:22:26 +1 17:22:36 +1 17:22:37 0 17:22:47 phila has joined #csvw 17:22:49 PROPOSED: For now, and without limiting our future work, that we scope to the simplest possible thing that might work and therefore do not have multi-object per line or multiple columns per value 17:22:52 +0 (as I find the proposal quite abstract) 17:22:54 +1 17:23:00 0 ... accepting the need to drive for simplicity 17:23:42 +1 17:24:13 q+ 17:24:29 +0.9 17:24:36 +1 ... "without limiting our future work" 17:24:42 ack phila 17:24:47 RESOLUTION: For now, and without limiting our future work, that we scope to the simplest possible thing that might work and therefore do not have multi-object per line or multiple columns per value 17:26:03 phila: let's get these possible work items into SOTD of the relevant spec(s) 17:26:35 phila: I'd like to use this to help attract more effort towards adding these features - "this is limited because" … with an URL for that, so I can send it around to potential contributors 17:26:49 q+ 17:29:12 ACTION: jtandy and ivan to add some text in the mapping spec(s) to indicate the limit in scope and the other features that could be added given more capacity 17:29:12 Created ACTION-43 - And ivan to add some text in the mapping spec(s) to indicate the limit in scope and the other features that could be added given more capacity [on Jeremy Tandy - due 2014-11-04]. 17:29:42 ivan_: A certain time has to pass between FPWD and going to CR - and we don't even have a FPWD 17:29:57 JeniT: So we need to get to FPWD ASAP to allow that period to pass 17:30:04 ack gkellogg 17:30:05 ack gkellogg 17:30:14 some of that future work might include being able to use SPARQL Property Paths [http://www.w3.org/TR/sparql11-query/#propertypaths] instead just a simple RDF predicate when defining the semantics relating to a particular column ... and some magic to conflate intermediate blank nodes 17:30:32 gkellogg: It strikes me that if someone has thoughts on how a simple mapping can cover these case then it would be good to know about it 17:30:55 suggestion for ivan: add to simple RDF mapping SOTD a sentence saying something like "The WG solicits input on the value of providing a mapping from single CSV rows into multiple inter-related typed entities, rather than all fields becoming properties of a single entity in the output graph." 17:31:00 ... the alternative is the template mechanism - that can create more complex outputs. Simple things simple, complex things possible 17:31:13 ivan_: For now it's on GiHub, the description is in MarkDown... 17:31:35 JeniT: There's an extension mechanism that we can point to 17:31:53 ivan_: We have less than a year to complete the work 17:32:13 ack JeniT 17:32:13 JeniT, you wanted to ask about templates interacting with schemas 17:32:25 gkellogg: If we can't get out of here because we have not met the use cases... we might have to have a very slight complication to the simple mapping or a template mech 17:32:41 ... and if we can't even specify a template mech than it seems we won't complete our charter 17:32:43 still don’t understand why we need more than a hook to R2RML where we say that other languages can be plugged in, do we? 17:32:47 RRSAgent, draft minutes 17:32:47 I have made the request to generate http://www.w3.org/2014/10/28-csvw-minutes.html phila 17:44:49 bill-ingram has joined #csvw 17:51:13 scribenick: danbri 17:51:15 Present+ Hadley_Beeman 17:51:20 jtandy has joined #csvw 17:51:25 topic: Identifiers 17:52:04 jenit: One of the big requirements that we have for creating mappings to RDF, also other formats, is creating URLs/URIs from data within CSV files. A syntax that exists is the URI Templates RFC. 17:52:18 Present+ Hadleybeeman 17:52:22 jtandy: [presents slides based on the RFC] 17:52:24 url? 17:53:11 http://lists.w3.org/Archives/Public/public-csv-wg/2014Oct/att-0080/RFC6570-uri-template-overview.pdf 17:53:33 jtandy: … you can run it reverse, harvest variables (but we're not doing that) 17:53:58 ericstephan has joined #csvw 17:54:14 jtandy: there are 4 levels. Simple String expansion. "hello World!" -> Hello%20%21 etc. 17:54:29 percent encoding of chars not in ... 17:54:48 … if I have reserved string expansion, that is a list of chars that dont get converted. 17:55:37 use of +, # etc for special kinds of expansion 17:55:56 https://tools.ietf.org/html/rfc6570 17:55:59 see also http://en.wikipedia.org/wiki/URL_Template 17:56:30 … undefined variables 17:56:55 level 3: simple expansion with multiple variables 17:57:21 comma separated lists 17:57:36 also reserved string expansion with several variables 17:58:04 label expansion: X{.x,Y} => X.1024.768 17:58:45 andimou has joined #csvw 17:58:47 (discussion of other chars in place of ., e.g. / 17:59:11 {/var,x}/here => /value/124/here 18:01:01 (it has some treatment of ampersands) 18:01:14 {?x,y} => ?x=1024&y=768 18:01:54 jtandy: You can see that they're all for dealing with common URI structures 18:02:05 … it gets more complex. 9/10 of the things you want to do are probably level 1 templates 18:02:18 level 4: you can aske for 3 chars, or 1st 30 chars, {var:3} 18:02:28 true for all combinations, plus signs etc. 18:02:33 fjh has joined #csvw 18:02:35 level 4 explode modifier 18:02:42 list as an array of values 18:02:59 list := ("red","green","blue") 18:03:41 AxelPolleres has joined #csvw 18:04:42 jtandy: you can build up some pretty complex things, … can get confusing. 18:04:52 … more details see slides. 18:05:00 q? 18:05:14 hadley: are you proposing adopting the entire thing for identifiers? 18:05:19 jtandy: a q for the group. 18:05:46 … we said didn't want to partly adopt it, as some people have implemented whole thing, … better to say we support the whole thing as-is rather than profiling it 18:06:05 the level 1-4 terminology comes from the spec, i.e. RFC 6570 18:06:18 jtandy: I imagine all 4 will be useful at some stage 18:06:28 … there are a healthy number of implementations 18:07:30 jtandy: nothing I read in RFC said "you can't use this for dealing with string transformations" 18:08:22 danbri: any risk re i18n if we used it beyond its intended scope? 18:08:29 …apparently it supports IRIs at least 18:08:36 ErikMannens has joined #CSVW 18:08:36 gregg: so this might appear in the metadata document? 18:08:53 jenit: this is point of the discussion now: there are 2 obv places where we might want to generate URLs 18:09:15 (I'll always say URL name… but mean URI/IRI etc) 18:09:42 jenit: if simple mapping rdf, creating identifier for a row, we might want that to be composed from different fields. Other is actual values, esp for RDF but also JSON 18:09:48 … we might want to create urls ther 18:09:50 e 18:10:12 ivan: let's take the 2 separately 18:10:31 … for the rows, what would be the relationship of a template there, and a … [key column value thingy] 18:10:50 … in the metadata today, you have the possibility of … certain columns to be key columns 18:10:58 primary keys 18:11:12 ivan: at moment, the way the mapping is defined, .. 18:11:38 ivan: see example in document 18:12:25 ivan: if there isn't a primary key its an empty object 18:12:36 if is, uri created with a base, … using dash concatenation 18:12:42 … exact same as in the direct mapping 18:12:56 … if we have additionally possibility to add a row level … [missed] 18:13:06 … which mechanism do i use to define a uri template for a row? 18:13:25 ivan: I can have that, … if doesn't exist and there are primary keys, … [missing detail] 18:13:55 gregg: purpose of primary key is to spec the subject of the result 18:13:59 … why not just a uri templ? 18:14:57 suggestion to make primaryKey a URI template 18:15:09 jenit: primaryKey was copied from JSON Table schema, a column or array 18:15:21 … it is in json table schema, not really defined 18:15:41 … spec doesn't get into validation 18:15:54 ivan: what this tells me: nobody would shout at us if this is what we do 18:16:29 jenit: worth trying that. It might be that rufus objects … worth proposing 18:16:51 ivan: another Q, probably valid for columns, … Do we have one template, or templates per target media types 18:17:07 e.g. into JSON, and only for JSON users, why would I put the example.org, entire URI? 18:17:23 jenit: if you were generating json from this, what does it look like? 18:17:35 ivan: it has the @id, … with the cell value not whole expanded thing 18:17:42 jtandy: logically there is no difference 18:17:47 ivan: yes & no 18:17:55 ErikMannens has joined #CSVW 18:18:12 … the way it works if I produce a JSON, … that there is a base that I put into the @context, and then I use only the expanded part in the object itself 18:18:34 … if ppl don't care about URIs they don't get it (whereas json-ld view will get a URI) 18:18:46 if I use http://example.org/{GID} everyone has to deal with URIs 18:19:36 Nataki has joined #csvw 18:19:43 ... 18:20:14 jenit: my inclination is to say that … if a primary key (or whatever we call it) is specified in this way, or "row ID", … then putting @id on each of the objects within json output is absolutely fine 18:20:20 … if not specified, don't have @id 18:20:25 … equiv of a blank node 18:20:56 ivan: that would be for the rows. For each column(s), rows or cells, i would add a template to generate the value 18:21:25 jenit: e.g. you could have: 18:21:29 "urlTemplate": "http://example.org/species/{species}" 18:21:41 … inside columns 18:22:34 ivan: if for a cell, that key exists, then the expanded one for rdf will be turned into a URI resource. 18:22:50 … and that means if we want to be consistent with the json-ld view, then the json output would be an object with an @id being the URI 18:22:54 jenit: or just the URL 18:23:02 … with possibly a @context 18:23:16 ivan: who puts the context there? 18:23:28 jenit: my inclination is to not generate a @context 18:23:44 jtandy: like "homepage" example yesterday 18:24:00 gregg: i'll always argue that we should output a context to make it json-ld 18:24:11 … so you don't have to concoct a context and manually expand it 18:24:25 jenit: if you really really care about getting some RDF out, use the simple rdf mapping 18:24:33 ivan: is there a JSON-LD "tidy" program? 18:24:42 gregg: by compacting a document it effectively tidies it 18:25:06 ivan: i am perfectly fine then to say that what we produce as json-ld, we say you'll have to compact it with a json-ld prociessor 18:25:19 ivan: simplest case, an object with that @id with a URI, and i don't generate a @context 18:25:45 jenit: I was arguing that we generate something that looks like: "species": "http://example.org/species/ash" 18:26:04 … this would require a context to understand that the value was an URL 18:26:10 … wheres you (ivan) are asking for 18:26:26 "species": { "@id": "http://example.org/species/ash" } 18:26:33 ivan: it's important to represent when something is a URI 18:26:44 … if you want to make it more aesthetic run it through a json-ld compactor 18:26:56 gregg: would it not be unreasonable to add the predicates within each of these things 18:27:22 [missing detail] 18:28:21 ivan: the fact of having a predicate is a diff issue 18:28:29 … what I am concerned about is … what will be the value? 18:28:39 jtandy: if you understand what predicate you are using, you can build the context as you go 18:28:48 … to say that the object of this predicate has to be an @id 18:29:07 gregg: you have "datatype" there; if you said "id" there, it gives you enough to say that "species" takes identifiers not strings 18:29:23 … I don't think that really complicates things 18:29:36 jenit: if you want to stay in an rdf ecosystem, use the rdf mapping 18:29:44 … not make the json mapping all RDFy 18:30:00 if you really want to make some nice json-ld … go via rdf 18:30:11 q+