Experimental IRC log swig-2007-11-18

Available formats: content-negotiated html turtle (see SIOC for the vocabulary)

Back to channel and daily index: content-negotiated html turtle

These logs are provided as an experiment in indexing discussions using IRCHub.py, Irc2RDF.hs, and SIOC.

04:04:45<chmod007_>If I’m getting a URI from an <a href> in an XHTML document, should I decode percent escapes before using it as an rdf:resource document identifier?
04:08:15<chmod007_>I’m not allowed to, am I?…
06:32:15<dorian>durr i totally forgot anselm was on this channel
16:21:23<nslater>I read somewhere that the RDF description of a resource shouldnt live at the same URI as the resource it's self. This makes no sense to me, so I wanted to read up on the issues at hand. I would have thought that the best way to do it would be to serve up RDF for a URI via regular conneg.
16:26:47<sbp>nslater: yeah, I think the mentality is generally to use conneg when you can
16:26:53<sbp>but see also the RDFQA mentality
16:28:03<sbp>ACTION thought danja blogged about this recently, goes a-findin'
16:28:58<sbp>ah, in http://dannyayers.com/2007/11/14/hash-soup
16:29:10<sbp>URIQA, not RDFQA
16:29:12<sbp>-> http://sw.nokia.com/uriqa/URIQA.html
16:29:29<sbp>but again, conneg == good as far as I can tell
16:50:28<nslater>oh thanks, ill take a read now
17:08:54<Shepard>nslater: also see http://www.w3.org/2001/sw/sweo/public/2007/cooluris/ or http://www.dfki.uni-kl.de/~sauermann/2006/11/cooluris/#choosing and http://www.w3.org/TR/swbp-vocab-pub/ and http://www.w3.org/2001/tag/doc/httpRange-14/2007-05-31/HttpRange-14 (which doesn't seem to be supported anymore in the latest version)
17:09:53<nslater>reading
17:11:04<nslater>ooh, looks very useful - thanks
17:36:22<nslater>So, from reading that it talks about 302 redirects for HTML vs RDF, what about if you have pdf/txt/ps/html and rdf, do you have a seperate URI for all of them or only two, one for the rdf and one for the representation?
17:36:56<sbp>you have only one for all of them, if you want
17:37:16<nslater>that goes against everything in http://www.w3.org/2001/sw/sweo/public/2007/cooluris/
17:37:32<nslater>it also prevents you from linking the representation to the rdf, you need a seperate uri
17:38:18<sbp>(perhaps you meant 303?)
17:38:25<nslater>perhaps i did :)
17:38:34<nslater>maybe it would make sense to have a uri like this
17:38:34<sbp>:-)
17:38:40<nslater>/foo/bar/baz
17:38:41<sbp>even then, I think you probably could send different responses depending on the Accept
17:38:52<nslater>that uri then uses conneg to send you to a direct uri such as
17:38:57<nslater>/foo/bar/baz.rdf
17:38:59<nslater>/foo/bar/baz.html
17:39:03<nslater>/foo/bar/baz.pdf
17:39:06<sbp>right
17:39:10<nslater>using 303 redirects
17:39:18<sbp>makes sense to me
17:39:22<nslater>then you can interlink them all using meta elements and rdf
17:39:28<nslater>hmm, that makes sense to me too
17:40:00<nslater>so, it would make sense to never return a 2xx for /foo/bar/baz?
17:40:16<nslater>/foo/bar/baz becomes the uri of the resource but never the url of a representation
17:40:20<sbp>of course. imagine if it were only redirecting to one place
17:40:25<sbp>then it'd never be returning a 2xx code too
17:40:41<nslater>you lost me
17:40:52<sbp>URIs are always the URIs of resources
17:41:05<sbp>so, take the Dublin Core case
17:41:18<sbp>.head http://purl.org/dc/elements/1.1/title Location
17:41:21<phenny>Location: http://dublincore.org/2006/12/18/dces.rdf#title
17:41:26<sbp>.head http://purl.org/dc/elements/1.1/title
17:41:29<phenny>Status: 302 (for more, try ".head uri header")
17:41:37<sbp>er, bad example
17:41:43<nslater>ACTION looks confused
17:41:49<sbp>.head http://xmlns.com/foaf/0.1/name Location
17:41:52<phenny>Location: http://xmlns.com/foaf/spec/
17:41:54<sbp>.head http://xmlns.com/foaf/0.1/name
17:41:56<phenny>Status: 303 (for more, try ".head uri header")
17:41:59<sbp>there we go
17:42:08<nslater>wha...?
17:42:09<sbp>so, http://xmlns.com/foaf/0.1/name only ever returns a 303
17:42:18<sbp>it only ever redirects to http://xmlns.com/foaf/spec/ too
17:42:38<sbp><http://xmlns.com/foaf/0.1/name> a rdf:Property .
17:42:41<nslater>right, so http://xmlns.com/foaf/0.1/name is the uri
17:42:44<sbp>yes
17:42:46<nslater>http://xmlns.com/foaf/spec/ is the url?
17:43:02<sbp>the url? it's a URI and it's a URL
17:43:07<sbp>I'm not sure about *the* URL. what is "the" URL?
17:43:14<sbp>A:|FOAF Specification
17:43:28<sbp>it's easy to tie yourself up in knots with this
17:43:35<sbp>but actually it's quite simple
17:43:45<nslater>but, we are agreed that my proposed way of laying things out makes sense?
17:43:52<nslater>even if there is only one respresentation of the resource
17:44:05<sbp>yes, that layout suggestion makes sense
17:44:06<nslater>/foo/bar/baz --> 303 --> /foo/bar/baz.html
17:44:24<sbp>FOAF does it, as I say
17:45:01<nslater>okay, now, in my implementation i will want to diferentiate between language as well as media type, so it would actually look like:
17:45:06<nslater>/foo/bar/baz --> 303 --> /foo/bar/baz.en.html
17:45:14<sbp>no problem
17:45:16<nslater>but... the same wouldnt apply to the rdf
17:45:24<sbp>still no problem
17:45:33<nslater>i assume you only have one rdf document even for a resource with representations in many languages
17:45:47<sbp>well, you don't have to
17:46:08<sbp>baz.en.html and baz.fr.html would be fine
17:46:11<sbp>er...
17:46:17<sbp>baz.en.rdf and baz.fr.rdf even
17:46:49<nslater>but, i *could* combine them into one, i mean, realisticly, what seperate information could i convey for the different languages?
17:46:53<sbp>the first might have { :dog rdfs:label "dog"@en } in it and the second { :dog rdfs:label "chien"@fr }
17:46:56<nslater>... translator, and thats about it
17:46:57<sbp>you could, yes
17:47:20<sbp>so you might have baz.rdf contain { :dog rdfs:label "dog"@en . :dog rdfs:label "chien"@fr }
17:47:23<nslater>aha, yesh - i suppose that makes sense...
17:47:36<nslater>what notation are you using there?
17:47:52<sbp>it might make more sense to split it though if the client is requesting a particular language: give it what it wants
17:47:58<sbp>I'm using a language called Turtle
17:48:01<sbp>.g Turtle RDF
17:48:04<phenny>sbp: http://www.dajobe.org/2004/01/turtle/
17:48:16<sbp>and I'm using { and } to quote it
17:48:36<sbp>it's a quick, non-XML way of writing RDF
17:48:38<nslater>right you are... okay, so rdf per language makes sense too... this is all very interesting
17:49:14<sbp>don't let any architecture writeup convince you into doing something unintuitive :-)
17:49:33<sbp>because the idea in Web Architecture is to do things as naturally and decently as possible
17:49:41<sbp>if it 'urts, don't prod it
17:49:48<nslater>... i am writing some software for GNU that manages a collection of source documents and automatically generates the metadata and alternate representations and then serves them up in a nice semweb/conneg fashion
17:50:03<nslater>... has anyone done this before, in a generic fashion?
17:50:04<sbp>what package is it part of, may I ask?
17:50:15<sbp>"source documents" - for what?
17:50:16<nslater>it's its own package
17:50:47<nslater>source documents, you know - anything - txt, rtf, word, docbook, then it processes them and converts them to a set of standard representations
17:51:07<nslater>i just want to know if there is any prior art, or anything i can borrow from
17:51:23<sbp>timbl was working on an RDF make language once, I think
17:51:33<sbp>not sure how far he got with it, if at all
17:51:52<sbp>I've been thinking about revisiting it myself even
17:52:07<nslater>so, you dump in a document (txt, doc, rtf) and the application adds metadata and processes this into html,txt,ps,pdf,rdf,etc,etc and publishes using the method we just described
17:52:14<sbp>might be nifty for modelling the flow between documents
17:52:50<nslater>it seems like the kinda thing someone else might have built
17:52:56<sbp>not as far as I know
17:53:14<nslater>cool, that makes the project a lot more exciting
17:53:17<nslater>ACTION grins
17:53:18<sbp>heh, heh
17:53:40<nslater>GNU Publish will be it's name, it's a way off yet - but keep en eye open for it. ;)
17:54:12<sbp>ooh, you're a CouchDb contributor
17:54:27<nslater>oh yes, you googled me then, or your a stalker ;) heh
17:54:33<sbp>or both
17:54:39<nslater>and a gnu webmaster ^^^
17:54:45<nslater>ACTION grins
17:54:48<sbp>yeah, saw that
17:54:51<nslater>heh
17:55:02<nslater>have you tried couchdb?
17:55:09<sbp>no
17:55:09<nslater>we just released 0.7.0 last night...
17:55:20<sbp>I've heard raves about it from friends et al.
17:55:43<nslater>its pretty awsum imho, but i can say that because im not the primary dev ;)
17:55:48<sbp>heh
17:55:56<sbp>can't really think of a use for it yet, is the problem
17:56:41<nslater>yeah, annoyingly i joined the project many months ago thinkging i would use it for gnu publish, i then realised that i could just use the filesystem for my purposes, but meh - im onboard now so no sense jumping ship
17:57:10<sbp>indeed. I've lost count of the times where I realised I could implement something using filesystem-as-database instead
17:57:31<nslater>yeah, it was a massive revelation to me, one of those eurika moments
17:57:57<nslater>the obsession with rdms is baked in pretty strong for most developers
17:58:04<sbp>yeah, dunno why
18:00:46<nslater>so, lets say you set up gnu publish and you write an essay with the uri:
18:01:06<nslater>/rants/i-love-jam
18:01:22<nslater>a web surfer requests this and gets 303 redirected to
18:01:30<nslater>/rants/i-love-jam.en.html
18:01:56<nslater>then the web surfer wants to link to your rant about jam and links direct to the representation instead of the resource
18:02:12<nslater>... so all the korean readers miss out on your splendid korean translation
18:02:19<nslater>... and no one finds out about your pdf version
18:02:37<nslater>surely this model is broken? maybe my way of thinking about it
18:03:30<sbp>ah, good point
18:03:54<nslater>so... whats broken with this way of doing things?
18:04:03<sbp>well you don't need to use a 303
18:04:06<nslater>or rather, how would i fix it
18:04:12<sbp>fix: don't use a 303
18:04:26<nslater>yeah, i was thinking that, but i could still reference the other uris directly
18:04:27<nslater>right?
18:04:29<sbp>you only use 303 on things that aren't information resources
18:04:35<nslater>ah, right
18:04:47<sbp>you don't have to reference them at all
18:04:47<nslater>a document is clearly an information resource
18:05:05<sbp>so in this case, /rants/i-love-jam just returns a 200 under conneg giving the content of /rants/i-love-jam.en.html
18:05:09<sbp>it doesn't redirect at all
18:05:11<nslater>but lets say, in the html representation i want to link to the rdf representation and the pdf representation i need a direct uri
18:05:27<sbp>then you can use the /rants/i-love-jam.en.html etc. URIs
18:05:36<nslater>aha, and that makes sense?
18:05:39<sbp>yep
18:05:50<nslater>until today i didnt think one resource could have multiple uris
18:05:55<nslater>... it feels "wrong"
18:06:03<sbp>:-)
18:06:19<nslater>you're meant to say "nah, it's okay, really"
18:06:22<nslater>ACTION winks
18:06:32<sbp>it is okay
18:06:36<nslater>hehe
18:06:45<sbp>think of them as synonyms, perhaps
18:07:15<nslater>perhaps... stil feels "dirty" - maybe its my hatred of redundancy comming through
18:07:17<nslater>:)
18:07:31<nslater>okay, how about this...
18:07:32<sbp>the web is pretty redundant though
18:07:38<nslater>touche
18:07:38<sbp>at least, it has to cope with redundancy
18:07:47<nslater>which of these feels cleaner to you:
18:07:49<sbp>there's a lot of duplicated data
18:08:09<sbp>* linen
18:08:10<sbp>* cotton
18:08:34<nslater>/rants/i-like-jam.en.html$
18:08:34<nslater>/rants/i-like-jam?language=en&type=html$
18:08:34<nslater>/rants/i-like-jam#en.html
18:08:44<nslater>ignore the dollar signs please
18:08:49<nslater>/rants/i-like-jam.en.html
18:08:49<nslater>/rants/i-like-jam?language=en&type=html
18:08:52<nslater>/rants/i-like-jam#en.html
18:08:55<nslater>sucky irc client...
18:09:06<sbp>for what? what are they meant to be identifying?
18:09:27<sbp>they're all valid URI references, assuming some base
18:09:27<nslater>suggestions for referencing a specific representation of a resource
18:09:45<sbp>well /rants/i-like-jam.en.html is the normal way of doing it, no?
18:10:07<nslater>yes, but the other two keep the same resolvable uri
18:10:15<nslater>which feels "cleaner" perhaps
18:10:26<sbp>hmm
18:10:35<nslater>not sure using fragids makes sense really
18:10:45<sbp>using fragids for this is fine
18:11:06<sbp>except you can't use it to get the representation variant you want
18:11:18<sbp>via HTTP, that is
18:11:21<nslater>thats true, its not passed over http
18:11:24<nslater>damn heh
18:11:40<sbp>really, /rants/i-like-jam?language=en&type=html is no better or worse than /rants/i-like-jam.en.html
18:11:50<sbp>don't let the way that web servers work slip you a dummy
18:12:04<sbp>it may be that /rants/i-like-jam.en.html?something has nothing to do with /rants/i-like-jam.en.html
18:12:23<nslater>is there no semantic difference between the two?
18:12:59<sbp>(whoops, I meant /rants/i-like-jam?language=en&type=html and /rants/i-like-jam.en.html of course--but it's true in general where URIs are not equal)
18:13:13<sbp>semantic difference? well they can be identifying entirely different things
18:13:26<sbp>it's also true of /some/path/ and /some/path for example
18:13:37<nslater>no, i mean, does either one carry any different semantics?
18:13:46<nslater>as in, more than just here is a URI
18:13:51<sbp>most web servers, when they are given /some/path and locally path is a directory, will send a redirect to /some/path/, but they don't actually have to
18:13:56<sbp>nope, they're just URIs
18:14:13<sbp>nothing innately special about either
18:14:32<nslater>yeah, i prefer the trailing slash, looks nicer :)
18:14:57<sbp>the point is that /some/path might be a document about Dogs and /some/path/ might be a document about Neptune
18:15:07<sbp>and they both return a 200 response
18:15:30<nslater>true, im still undecided how i am going to handle it in my app, i would like to normalise really - so that /some/path redirects to /some/path/
18:15:34<sbp>the axiom is: URIs are opaque
18:16:08<nslater>but then where do the representations live? /some/path/en.html or /some/path/index.en.html
18:16:31<nslater>given a standard apache install and no funky re-writes, i am wondering the best way to organise it
18:16:40<sbp>aye
18:16:45<sbp>in that case it'd be index.en.html
18:16:55<sbp>that's what apache would demand to do conneg properly there
18:17:01<sbp>or whatever the DirectoryIndex is set to, of course
18:17:02<nslater>at least in that way i could use an index.var for the conneg
18:17:23<nslater>yeah, true, just using index as an example
18:17:53<nslater>it would allow me to use /some/path/ and apache would not only redirect to add the trailing slash but would perform conneg automatically for me \o/
18:18:14<nslater>/some/path/index.en.html seems a little crufty of the implementation though
18:18:37<nslater>/some/path/en.html would be better, but not sure I could do that easily
18:18:48<nslater>anyway, sorry - this is way OT for semweb discussion
18:18:53<nslater>#apache is where is should be ;)
18:19:40<sbp>we slide easily
18:19:46<nslater>heh, i can imagine
18:21:16<sbp>ACTION is currently thinking about how to hash an RDF document
18:21:25<nslater>hash, as in md5?
18:21:52<sbp>I just realised that in Jeremy Carroll's canonicalisation algorithm, you can XOR hashes to prevent having to sort lexicographically, after the one-step labelling process is complete
18:21:53<sbp>yeah
18:21:58<sbp>for, like, signing graphs
18:22:33<sbp>you still have to do the step 5 sort
18:22:41<sbp>but this means you don't have to do the step 8 sort
18:22:58<nslater>how do you include a signature for a document with the document it's self using a hash?
18:23:06<nslater>this is way over /my/ head
18:23:10<sbp>heh, you don't. but I have been thinking about that
18:23:21<sbp>what you could do is define a patch-like system
18:23:34<sbp>so you effectively say "this is the hash of this document if this triple weren't included"
18:23:38<sbp>which is kinda nifty
18:23:40<nslater>yeah, doesnt http provide an extension for signing a response body?
18:23:41<timbl>ACTION wakes up, rewinds
18:23:56<sbp>not as far as I know, but possibly
18:24:23<nslater>im sure i read something from sam ruby about signing http responses, but meh
18:24:36<timbl>hmmm . hashing graphs is tricky, spb ... why don'y you hash a specific serialization of it?
18:24:42<sbp>this? http://intertwingly.net/blog/2007/10/07/Secure-Business-Data-Interchange-Using-HTTP
18:24:50<nslater>quite possibly
18:24:55<sbp>timbl: because you still have to canonicalise it
18:25:02<sbp>i.e. the order of the triples is important
18:25:10<sbp>oh, you mean... right
18:25:19<sbp>yeah, I know that's what people do mainly nowadays
18:25:19<timbl>Well, it depends on what you want the signature for.
18:25:35<timbl>If it for people who have seen the document, mail etc, then they can check the original bytes
18:26:09<timbl>I could sell you a canonicalization routine .. but it better architecture not to go there if you don't have to IMHO
18:26:09<sbp>the main reason I've been thinking about this is in trying to implement n3
18:26:14<sbp>you have to canonicalise the graphs, right?
18:26:20<sbp>the formulae, I should say
18:26:34<timbl>ummm ... well, you don't *have* to
18:26:46<sbp>you do if you want to use cwm tests! :-)
18:27:02<sbp>or test against cwm as a reference implementation
18:27:27<timbl>Ah .. yes .. then you have to canon'ize for the test results. So you could just use th same cant.py
18:27:31<sbp>of course the problem with jjc's algorithm is that it doesn't work for all graphs; but also it's a deterministic algorithm, so actually it's not all that expensive
18:27:54<timbl>I suspect jjc;s algio is very similar to cant.py's
18:27:58<sbp>hmm, that's a point
18:28:06<timbl>cnt.py will cononicalize it or tell you it cn't/
18:28:18<sbp>oh, it doesn't canonicalise all graphs? that's interesting
18:28:24<timbl>In practice I haven't found a test suite result which it can't
18:28:29<sbp>gotcha
18:28:51<timbl>Well, if you try to canonicalize something with a lot of symmetry, you cant find a magic starting place.
18:29:03<sbp>right, if it's a big mass of bNodes...
18:29:17<sbp>but those documents don't tend to be interesting, thankfully
18:29:17<timbl>You can then of course look at its symmetry and determine that then there are some chioice which are arbitrary -- it doens't do that
18:29:25<timbl>Indeed.
18:29:39<timbl>So please not to make any test cases with hypercubes as output.
18:29:43<sbp>hehe
18:29:49<timbl>(Just the thing Yosi does for fun)
18:29:51<sbp>I'll try...
18:30:26<timbl>I was just working on tabulator to get it viewing nested formulae
18:30:43<sbp>interesting. what use-case for?
18:31:08<Wikier>hi
18:31:12<sbp>hey Wikier
18:32:22<timbl>Use-case is showing users policies.
18:32:42<timbl>and rule files and proofs and stuff
18:35:02<sbp>ACTION looks at http://www.w3.org/DesignIssues/diagrams/arch/follow.png again haven't implemented a huge swathe of it today; notices it doesn't mention character encoding, which is a big part of what he's had to deal with today
18:35:23<timbl>nslater, you can never use the same URI for two different things. So a picture and info about the picture are different.
18:35:23<sbp>especially for detecting GRDDL, because you have to peek for <meta http-equiv ... charset=...
18:35:34<timbl>character encodinh
18:35:52<sbp>(if there's no charset= in the HTTP header)
18:36:40<nslater>timbl: so /some/document/ should never serve up RDF about it's self?
18:38:10<nslater>timbl: given a set of documents/articles (information resources) are you saying i should keep all the representations under a single URI served up with conneg but have the RDF located elsewhere?
18:38:40<timbl>char encoding. yes
18:39:20<sbp>so in general you don't parse bytes, you parse a unicode string (from a bytes, encoding tuple over HTTP)
18:39:33<timbl>nslater, if all the representations you have are equivalent, they really are substitutble, have thr sem content, then yes you can.
18:40:05<timbl>but note you can give them each separate URIs just in case you want to refer to one specifically.
18:40:12<timbl>the Apache conneg module does this
18:40:25<nslater>timbl: but you wouldnt consider an rdf document about the resource to be a representation of said resource?
18:40:53<timbl>So on the w3.org site fo.gif and foo.jpg foo.pdf etc can all exist, but the link is always to foo
18:40:59<timbl>and then conneg works
18:41:11<nslater>yeah, totally - that makes sense
18:41:17<timbl>if you have an RDF file of metadata about foo, then that should NOT be connegged.
18:41:29<nslater>right, that's where i was misunderstanding things
18:41:44<timbl>I have played with using HTTP link headers to link from the photo etc to the metadata
18:41:50<nslater>leaves me a pickle where to store the rdf though, but thats an unrelated problem
18:41:58<timbl>Wy a pickle/
18:42:03<timbl>Why a pickle?
18:42:07<nslater>yeah, or embed a link to the rdf inside the image meta data
18:42:18<timbl>In XMP
18:42:28<timbl>If you can munge the image, then sure
18:42:40<timbl>]if you can't then it has to be an HTTP header
18:42:47<nslater>well, my application lets users place documents anywhere they wish, i want the application to generate the rdf - so should it just take /some/document/ and pop a /data/some/document/ rdf file?
18:43:28<nslater>or perhaps just use /some/document/rdf...
18:43:45<timbl>$ curl -I http://www.w3.org/2007/ont/unit gives Link: meta;rel=meta
18:43:46<timbl>as an example
18:44:18<timbl>
18:44:30<timbl>ummm filename generation for meta files ... many opions
18:44:46<nslater>actually, that makes sense - if you have /some/document/ with /some/document/html and /some/document/txt that can either be served with conneg for /some/document/ or dereferenced directly then I could also have /some/document/rdf which is never served up with conneg but referenced from the html or via http headers as you say
18:45:28<sbp>hmm
18:45:28<sbp>$ curl -I http://www.w3.org/2007/ont/unit
18:45:28<sbp>HTTP/1.1 200 OK
18:45:29<timbl>For apacjhe, it has to be .html not /html
18:45:35<sbp>that's illegal; Link was removed from HTTP 1.1
18:46:05<timbl>Link was, I am told, ommitted by mistake
18:46:07<nslater>yeah, i would probably do it with index.html, index.txt and index.rdf
18:46:11<timbl>It was in an earlier versions.
18:46:13<sbp>I wrote to Mark Nottingham the other day about this--he's trying to get it reinstated
18:46:15<nslater>then use an index.var which misses out the index.rdf
18:46:22<sbp>but that process seems to have stalled
18:46:28<sbp>(hence my writing to him)
18:46:28<timbl>stalled?
18:46:34<sbp>well, he wrote an I-D for it
18:46:35<nslater>I dont get what that link header means...
18:46:39<timbl>The new WG is just starting
18:46:45<sbp>and there's a note somewhere that he intends to see it through to an RFC
18:47:00<sbp>but the I-D has expired now; been expired about a year or so
18:47:11<timbl>nslater, the link header means the same as <link rel="meta" href="meta">
18:47:22<timbl>I guess using meta as the filename was confusing in that example
18:47:28<nslater>timbl: heh, just worked that out now, very hand
18:47:31<nslater>*handy
18:47:38<sbp>ACTION wonders what it'll say about link types not defined in HTML 4.01
18:47:40<timbl>It means "If you want metadata, g look in <meta>
18:47:58<sbp>(rel:meta isn't defined in HTML 4.01)
18:48:04<nslater>timbl: in my case i could point to index.rdf for consistency with the other URIs
18:48:21<sbp>ACTION really, really wants Link: meta;rel=meta to be spec-legal
18:48:22<timbl>You can point to wherever you want of course.
18:48:47<timbl>To point to something which includes the filename of the thing asked for, you need apache 2.
18:48:59<timbl>Apache 1 can add constant headers to certian files.
18:49:09<nslater>I have to go now, thanks so much for helping me out sbp and timbl. :)
18:49:20<timbl>http://esw.w3.org/topic/LinkHeader
18:49:23<timbl>no prob
18:49:30<sbp>yw. c'ya nslater!
18:49:33<timbl>B:The HTTP Link Header (wiki)
18:49:39<nslater>c'ya!
18:50:01<sbp>timbl: ah, thanks! bunging http://lists.w3.org/Archives/Public/ietf-http-wg/2007OctDec/thread.html#msg46 on my reading stack
18:55:28<sbp>ACTION thinks about how to handle Link: meta from an API point of view
18:55:49<sbp>Graph(uri) - if uri is of a GRDDL document but it also has link rel:meta...
18:56:05<sbp>do you add it to the graph? or only do that if you specify some parameter? hmm
18:56:27<timbl>No, I don't add it to the graph of te document.
18:56:52<timbl>Tabulator has a HTTP request object which can also be a valid provenence of a triple.
18:57:11<timbl>I use that for things like the HTTP link, and the conclusions eg 200 > foo a Document.
18:57:33<sbp>ah!
18:57:50<sbp>ooh, so it'd be more like:
18:57:58<sbp>response = web.GET(uri)
18:58:31<sbp>G = Graph(response.headers.metalinks()[0])
18:58:36<timbl>kb.load(kb.sym(uri))
18:59:15<timbl>then acc = kb.any(kb.sym(uri), LINK('access'))
18:59:19<timbl>or something like that
18:59:23<sbp>hmm
18:59:38<timbl>I leave the metadata in eth streo. For tabulator
18:59:45<timbl>For cwm there are flags
18:59:45<sbp>gotcha
18:59:57<sbp>I haven't got as far as representing the HTTP transactions in RDF yet
19:00:08<sbp>but it's on my todo list...
19:00:47<sbp>I think in the case of link/meta, having some raw-response-object method to get it would probably be a good thing. need some way to get it from the HTML too...
19:00:53<sbp><link rel="meta" ...
19:01:44<timbl>Yes.
19:02:18<timbl>the tabulator has an xHTML handler which gets those out.
19:02:37<timbl>But it can't parse bad xml at the moment
19:03:48<sbp>yeah, I just wrote an HTML parser that can handle both for charset (and ultimately GRDDL) detection
19:04:07<sbp>it just gives out tag events, ignoring cdata, comments, pis, DOCTYPE, etc.
19:06:24<sbp>ACTION sits back and waits for someone to complain about lack of SGML NOTATION support...
19:08:19<timbl>:)
19:09:18<sbp>hmm. another Tabulator project for someone to do:
19:09:29<sbp>add a SIMILE Timeplot plugin
19:09:53<timbl>The simile timeline?
19:09:57<timbl>it has that
19:10:01<sbp>I've got some weather forecast data in RDF, and my favourite representation of it so far is a ...
19:10:03<sbp>really?!
19:10:27<timbl>Yup :)
19:10:36<sbp>this is the kind of view I want to produce: http://inamidst.com/sw/meteo/gram
19:10:59<sbp>(red = temp, blue = precip, grey = cloud)
19:11:32<timbl>I want somene to add the dot->canvas thing as a tabulator veiw
19:11:43<LeeF_>timeplot and timeline are two different simile widgets, AFAIK
19:11:51<timbl>They are.
19:11:56<timbl>I hadn't seen timeplot
19:12:07<timbl>Is there a registry of simile eidgets?
19:12:12<LeeF_>good question
19:13:01<timbl>ACTION dreams of things loading themselves dynamically
19:13:17<sbp>ACTION loads http://inamidst.com/sw/meteo/rdf/London into Tabulator to see what it can do with it
19:13:54<sbp>ACTION reads http://dig.csail.mit.edu/2005/ajar/ajaw/tut/calHelp.html
19:14:19<timbl>Difficult to brows that graph
19:14:33<timbl>No URIs.
19:14:39<timbl>No single place to start from
19:15:30<timbl>However, I have to say that it is gratifying to have the documeny data veiw I checked in 5 minues ago
19:15:43<timbl>or it would be impossible to see it at all
19:16:53<sbp>hehe
19:17:12<timbl>Where did you get it from?
19:17:16<sbp>you can open Place -> forecast -> ...
19:17:19<sbp>I got it from NOAA
19:17:35<sbp>the MET Office charges like £12,000/annum for fifty cities
19:17:39<timbl>I wonder whether they got it from the met offfice
19:17:42<sbp>from NOAA it's free, but it's kinda tricky to parse
19:18:03<sbp>nope, I think they use their own climate prediction data
19:18:05<timbl>ACTION gives sbp a parsing medal and wishes for an RDF registry of scrapers
19:18:24<sbp>heh, yeah, that'd be cool. on the ESW Wiki person...
19:18:29<sbp>s/person/perhaps/
19:18:55<sbp>ACTION looks about for an existing page to use, and will start one if not
19:19:37<sbp>how does http://esw.w3.org/topic/ScrapedData sound?
19:21:20<sbp>ACTION puts DBPedia top of the list... king of all scrapes
19:21:34<timbl>I think we have convertsToRDF
19:21:39<timbl>I think we have convertersToRDF
19:21:57<timbl>I want an RDF version
19:22:12<digikim>sbp: ...DBPedia is perhaps not really a scrape, more like a transformation from one structured presentation to another
19:22:24<timbl>I never understood why the simile people didn't make their scrapers an standard API and make a community of scraper mapers
19:23:03<timbl>You could add your thing to convertersToRDF
19:23:13<sbp>ah, gotcha
19:23:17<sbp>digikim: so is Meteo...
19:23:24<timbl>It would of course be ironic if we had to scrape the list of scrapers
19:23:30<digikim>:D
19:23:36<sbp>hehe
19:24:00<sbp>[[[
19:24:02<sbp>Random
19:24:02<sbp>Seriously.
19:24:02<sbp> *
19:24:02<sbp> random2rdf generates synthetic random graphs encoded in RDF/N3.
19:24:05<sbp>]]] - ConverterToRDF
19:24:07<sbp>that's pretty funny
19:24:39<sbp>ACTION notes the "This should be in a data format like Semantic Media Wiki or in N3 -- TimBL" comment at the bottom
19:24:47<sbp>hey, I wonder if we could use danja's gLinks for that?
19:25:08<timbl>We could use the datawiki
19:25:14<sbp>-> http://danja.talis.com/glink/
19:25:32<sbp>yeah, but it'd be nice to get the existing data out first
19:26:14<sbp>hmm, looks like it's impossible to make http://esw.w3.org/topic/ConverterToRdf GRDDL
19:26:20<sbp>not very wiki, is it...
19:29:45<sbp>ACTION runs it through Tidy: http://cgi.w3.org/cgi-bin/tidy?docAddr=http%3A%2F%2Fesw.w3.org%2Ftopic%2FConverterToRdf&forceXML=on
19:29:53<sbp>then that through the W3C's XSLT service...
19:30:24<sbp>-> http://www.w3.org/2005/08/online_xslt/xslt?xslfile=http%3A%2F%2Fdanja.talis.com%2Fglink%2Fgroklinks.xsl&xmlfile=http%3A%2F%2Fcgi.w3.org%2Fcgi-bin%2Ftidy%3FdocAddr%3Dhttp%253A%252F%252Fesw.w3.org%252Ftopic%252FConverterToRdf%26forceXML%3Don&content-type=&submit=transform
19:30:29<sbp>and then let's bung that into Tabulator...
19:31:38<sbp>...that didn't work
19:31:59<sbp>hmm. odd
19:32:04<timbl>No, ConverterToRDF has no GRDDL
19:32:27<sbp>timbl: I just fed it the long URI above
19:32:33<sbp>which is an RDF/XML document
19:33:01<sbp>(that applies danja's transformation to the Tidy'd version of ConverterToRDF)
19:33:13<sbp>Tabulator thinks the only triple in it is "<> dc:title "ConverterToRdf - ESW Wiki"."
19:33:51<timbl>Yes.
19:33:58<timbl>It got that from the XHTML
19:34:15<sbp>no, I fed it http://www.w3.org/2005/08/online_xslt/xslt?xslfile=http%3A%2F%2Fdanja.talis.com%2Fglink%2Fgroklinks.xsl&xmlfile=http%3A%2F%2Fcgi.w3.org%2Fcgi-bin%2Ftidy%3FdocAddr%3Dhttp%253A%252F%252Fesw.w3.org%252Ftopic%252FConverterToRdf%26forceXML%3Don&content-type=&submit=transform
19:34:20<sbp>.head http://www.w3.org/2005/08/online_xslt/xslt?xslfile=http%3A%2F%2Fdanja.talis.com%2Fglink%2Fgroklinks.xsl&xmlfile=http%3A%2F%2Fcgi.w3.org%2Fcgi-bin%2Ftidy%3FdocAddr%3Dhttp%253A%252F%252Fesw.w3.org%252Ftopic%252FConverterToRdf%26forceXML%3Don&content-type=&submit=transform Content-Type
19:34:24<timbl>There is no GRDDL transform -
19:34:24<phenny>Content-Type: text/html
19:34:29<sbp>oh. huh
19:34:35<timbl>oh, glinks
19:35:00<sbp>ACTION goes back to the form and fills in the output media type...
19:35:02<timbl>ACTION tries SELECT ?time, ?celcius
19:35:02<timbl>WHERE
19:35:02<timbl>{
19:35:02<timbl> ?x <http://purl.org/ns/meteo#time> ?time .
19:35:03<timbl> ?x <http://purl.org/ns/meteo#temperature> ?z.
19:35:03<timbl> ?z <http://purl.org/ns/meteo#celsius> ?celcius ];
19:35:04<timbl>}
19:35:18<sbp>ah there we go! that worked
19:35:24<sbp>ooh
19:35:28<sbp>ACTION tries that
19:35:51<timbl>on spb's data, and gets times but temps are not displayd in the table
19:36:08<sbp>the URI for the ESW scrape is:
19:36:10<sbp> http://www.w3.org/2005/08/online_xslt/xslt?xslfile=http%3A%2F%2Fdanja.talis.com%2Fglink%2Fgroklinks.xsl&xmlfile=http%3A%2F%2Fcgi.w3.org%2Fcgi-bin%2Ftidy%3FdocAddr%3Dhttp%253A%252F%252Fesw.w3.org%252Ftopic%252FConverterToRdf%26forceXML%3Don&content-type=application%2Frdf%2Bxml&submit=transform
19:36:11<timbl>And it doesn't realize it ahs a time
19:36:15<sbp>if you wanna try that in Tabulator
19:36:28<sbp>no temps: ah, that's a shame
19:37:39<timbl>That last big URI of yours does work in tabulator
19:37:43<timbl>in data view
19:38:16<sbp>yup
19:38:36<sbp>ACTION puts the meteo SPARQL into Tabulator...
19:38:40<sbp>it gives me this out:
19:38:40<sbp>WHERE
19:38:41<sbp>{
19:38:41<sbp> ?x <http://purl.org/ns/meteo#time> ?time .
19:38:41<sbp> ?x <http://purl.org/ns/meteo#temperature> ?z .
19:38:41<sbp>}
19:38:51<sbp>which is kinda weird. it just erased the celsius triple
19:39:03<timbl>werid indeed
19:39:09<sbp>and the Timeline view won't let me select that query
19:39:31<timbl>Ah.. that is why the query doen't do much!
19:39:58<sbp>yeah
19:40:04<sbp>ACTION puts it in again, and this time it seems to work
19:40:17<sbp>Timeline view still won't let me display it though
19:40:22<sbp>the checkboxes are greyed out
19:40:38<sbp>(one for the broken celsius-deleted query, and one from the apparently fine query)
19:41:18<sbp>hmm, the second one deletes SELECT *. perhaps I'm not meant to put the SELECT bit in...
19:41:36<timbl>No, you are
19:41:45<sbp>aye. when I take it out it adds it back in for me. heh
19:41:51<timbl>The select gives it the columns to output
19:42:01<chmod007>hmm, I’m not looking forward to implementing <http://www.uwgb.edu/dutchs/UsefulData/UTMFormulas.HTM> in XSL
19:42:16<timbl>I replaces the missing triple at topAND bottom, and got a query with 3 triples :-/
19:42:27<timbl>No improvemnet when it comes to the result though
19:42:43<sbp>I still can't select any of the many test queries I have now in Timeline view
19:43:03<timbl>No.. it has some kludge for deciding a column is a datetime
19:43:16<timbl>Maybe it only happnes in the tranfer from the outline mode
19:43:22<sbp>aha
19:43:28<sbp>looks cool in Table view though!
19:43:47<sbp>input was;
19:43:48<sbp>SELECT ?time ?celsius
19:43:48<sbp>WHERE
19:43:48<sbp>{
19:43:48<sbp> ?x <http://purl.org/ns/meteo#time> ?time .
19:43:48<sbp> ?x <http://purl.org/ns/meteo#temperature> ?z .
19:43:50<sbp> ?z <http://purl.org/ns/meteo#celsius> ?celsius .
19:43:52<sbp>}
19:44:04<sbp>ACTION uses the Export to HTML feature... nice
19:48:20<timbl>You get a decent table now?
19:48:26<sbp>yep
19:48:37<sbp>time in first column, temperature in second
19:48:43<sbp>sorted by time
19:50:26<timbl>Did you write the sparql or browse from the tabulator?
19:50:45<sbp>I wrote it; I dunno how to make a query through the UI
19:50:46<timbl>I just got a table by browsing
19:50:51<sbp>ooh, how?
19:50:58<timbl>I didn't realize before you had links to London
19:51:06<timbl>So I uses the online version,
19:51:23<timbl>started from #Place (the only link from the datya view, the very bottom of the file)
19:51:53<timbl>The opened up london and a forecast, slected the predicate cells of time and celcius, and hiot find all
19:52:10<timbl>pht no timeline still
19:52:56<timbl>I wonder what the algorithm is
19:58:04<timbl>Oh, you haven't made a query?
19:58:11<timbl>You have browse from a root place, open things up till you have an *example* of what you are looking for.
19:58:25<timbl>Then you highlight *multiple* predicate fields.
19:58:29<timbl>Not object fields
19:58:46<timbl>Then press "Find all" and it finds all subgrphs matching your pattern.
19:58:59<timbl>eg I just did
19:59:00<timbl>SELECT ?v12 ?v13 ?v14 ?v15 ?v16 ?v17 ?v18 ?v19 ?v20 ?v21
19:59:00<timbl>WHERE
19:59:00<timbl>{
19:59:00<timbl> ?v12 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/ns/meteo#Place> .
19:59:01<timbl> ?v12 <http://purl.org/ns/meteo#location> ?v13 .
19:59:02<timbl> ?v13 <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?v14 .
19:59:04<timbl> ?v13 <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?v15 .
19:59:06<timbl> ?v12 <http://purl.org/ns/meteo#forecast> ?v16 .
19:59:08<timbl> ?v16 <http://purl.org/ns/meteo#time> ?v17 .
19:59:10<timbl> ?v16 <http://purl.org/ns/meteo#temperature> ?v18 .
19:59:12<timbl> ?v18 <http://purl.org/ns/meteo#celsius> ?v19 .
19:59:14<timbl> ?v16 <http://purl.org/ns/meteo#humidity> ?v20 .
19:59:16<timbl> ?v21 <http://purl.org/ns/meteo#humidity> ?v20 .
19:59:18<timbl>}
19:59:20<timbl>by selecting fieldss in outline view
19:59:29<timbl>Link to query: http://dig.csail.mit.edu/2005/ajar/ajaw/tab?query=SELECT+%3Fv12+%3Fv13+%3Fv14+%3Fv15+%3Fv16+%3Fv17+%3Fv18+%3Fv19+%3Fv20+%3Fv21+WHERE+%7B+%3Fv12+%3Chttp%3A//www.w3.org/1999/02/22-rdf-syntax-ns%23type%3E+%3Chttp%3A//purl.org/ns/meteo%23Place%3E+.+%3Fv12+%3Chttp%3A//purl.org/ns/meteo%23location%3E+%3Fv13+.+%3Fv13+%3Chttp%3A//www.w3.org/2003/01/geo/wgs84_pos%23lat%3E+%3Fv14+.+%3Fv13+%3Chttp%3A//www.w3.org/2003/0
20:00:03<sbp>it got truncated at "3Chttp%3A//www.w3.org/2003/0"
20:00:18<timbl>ah
20:00:24<sbp>and yeah, I followed the steps
20:00:32<sbp>but what I get is a load of columns
20:00:39<sbp>many of which just say "..." in the cells
20:00:58<sbp>but two of which are the time and temperature at least (with correct values)
20:01:17<timbl>Yes, it adds in the nodes in the grpah which it adds to complete the graph, not interetsing when they are bnodes
20:01:23<timbl>"..." is bnode
20:01:25<timbl>with no label
20:01:32<sbp>ahh. any way to filter these out?
20:01:48<timbl>Suppress the variables form the SPARQL
20:02:00<timbl>There used to be a 'delete column' x but it rotted
20:02:01<sbp>oh I see, you can then edit the raw query
20:02:14<sbp>ACTION hmms at <http://inamidst.com/sw/meteo/rdf/London> <http://www.w3.org/2007/ont/link#mentionsClass> ?v0 .
20:02:47<timbl>That is an observation added by the tabulator
20:03:00<timbl>It helps navigate whn yo don't have a dta view
20:03:13<timbl>('data in document' view)
20:03:17<timbl>(which I just added)
20:03:20<timbl>:)
20:03:22<sbp>hehe
20:03:35<timbl>So the "mentionsClass" might go.
20:03:49<sbp>it's still kinda useful. gives a more abbreviated view
20:04:09<timbl>When there are rdf:type statements
20:04:57<timbl>Picking a starting lace to browse a file is an interesting quetsion.
20:05:08<timbl>Maybe the node with the most arcs is a good one.
20:05:16<timbl>Would work for your meteo data.
20:05:26<sbp>yeah, good idea
20:14:05<timbl>Ah, the predicate has to be one it knows (http://www.w3.org/2002/12/cal/icaltzd#dtstart etc) or contain the string 'date' !
20:18:00<timbl>ACTION heads off for a bit
21:21:23<Wikier>hi
22:49:36<DanC>wild! the .xls statement download option from discovercard.com is actually HTML format! that's one for breadcrumbs...
22:49:41<DanC>logger, pointer?
22:49:42<logger>See http://chatlogs.planetrdf.com/swig/2007-11-18#T22-49-42
22:52:08<dajobe>timbl hasn't done a breadcrumbs blog for >1yr
22:52:45<timbl_>Sigh ...
22:52:54<dajobe>:)
22:53:02<timbl_>Too many things to blog about
22:53:03<dajobe>ACTION can talk, I blog quarterly at best
22:53:58<timbl_>The ISWC conference data is in RDF
22:54:05<timbl_>But it does not prefer RDF
22:54:14<timbl_>The tabulator extension gets HTML
22:54:18<timbl_>as it can handle either.
22:55:28<timbl_>DanC, I have some support for Oshani's tami work
22:55:51<timbl_>I added a dcoument view, and nested formulas in the tabulator
22:56:32<timbl_>We've mever had a view of t e data actually in one specific document
22:59:55<DanC>ACTION tunes in
23:00:34<timbl_>You can look at rules file sin a way now.
23:00:52<timbl_>I don't know whether it will be deemed user-friedly
23:01:01<DanC>ACTION should learn to run the tabulator extension out of local svn checkout
23:01:14<timbl_>ACTION should document that
23:01:43<DanC>sometimes wishing for somebody to write up an exchange here works
23:02:53<DanC>ACTION reads http://en.wikipedia.org/wiki/Cricket_Communications after getting some large t-mobile bills ...
23:02:55<timbl_>http://dig.csail.mit.edu/2007/tab/README
23:03:24<DanC>hmm... not GSM
23:03:31<timbl_>C: Developers: How to run the SVN trunk version of Tabulator as n extension
23:03:52<timbl_>C:|Developers: How to run the SVN trunk version of Tabulator as n extension
23:04:12<timbl_>C1:
23:12:58<ericP>timbl_, shouldn't tabulator prefer rdf?
23:14:35<timbl_>Why?
23:14:58<timbl_>The tabulator extension in ffox is a regular browser too
23:15:25<timbl_>i can't say the user doesn't want HTML or the browser deosn't display it well.
23:15:50<timbl_>However, if the HTML is generated from the RDF, then the RDF is better than the HTML.
23:15:53<ericP>i see it as "if i can get semantic data, give it to me, otherwise, i'll take HTML and let the user sort it out"
23:16:35<timbl_>It could say that
23:16:39<ericP>for instance, if i have an RDF calendar widget, i'd prefer it to do my interface
23:16:44<timbl_>Should it say that for any new thing, like video?
23:17:04<timbl_>Right, but suppose the RDF has been generated from eth HTML, with loss?
23:17:24<timbl_>Only the server knows which is the original.
23:17:50<ericP>yeah, loss is an unfortunate practicality that may drive this decision is a less-than-perfect direction
23:18:07<timbl_>ACTION looks at tweaking his accept header
23:18:23<ericP>ideally, folks only negotiate on equivilant representations, but that's just not reallistic
23:18:38<timbl_>Why?
23:18:55<timbl_>I think it is a severe error to conneg on anything which i snot equivalent
23:19:20<ericP>right, but it's hard for folks not to make that mistake
23:19:25<timbl_>(we had a discussion fo conneging on a pictrue and its metadata - i think that would be a bug)
23:19:39<ericP>(agreed)
23:19:51<timbl_>It' hard for folks not to make that mistake? This is early days of sem web best practcies.
23:20:11<timbl_>It is true apache doesn't make it ultr-easy
23:20:30<timbl_>My current string (from about:config) is text/xml,application/xml,application/xhtml+xml,text/html;q=0.5,text/plain;q=0.5,image/png,*/*;q=0.1,application/rdf+xml;q=1.0,text/rdf+n3;q=0.5
23:20:52<ericP>i tried to be diligent with the MASE server and have it only do conneg once's i'd found an RDF representation for *all* of the HTML information
23:21:19<ericP>but that required diligence and discipline that comes from having lots of eyes on you
23:22:00<ericP>it would have been easy to offer a subset to meet some use-case and conneg to that
23:22:24<timbl_>Yes, and in the end users would just not get the infor you wanted tem to get.
23:22:34<ericP>ya know what? i think it needs to be a UI button
23:22:42<timbl_>No.
23:22:48<timbl_>':)
23:23:02<timbl_>We are trying to make an intuuitive system.
23:23:36<timbl_>That is like asking the driver to adjust the fuel injection timing
23:23:37<ericP>could be labeled "plebian-mode" vs. "hard-to-use-mode"
23:24:15<ericP>i see it as more like asking folks if they want to heuristically render badly formed documents
23:24:24<timbl_>Marketing ... you obviously have spent a lot of time in Marketing ..
23:24:41<timbl_> "plebian-mode" vs. "hard-to-use-mode"
23:25:17<timbl_>Seems simple to me.
23:25:22<ericP>it's an interface that has stood the test of time -- it must be very popular
23:25:24<timbl_>Cwm should always get the RDF
23:25:43<timbl_>An old browser should always get the HTML
23:25:53<timbl_>Firefox+Tabulator should get whichever has less loss
23:26:24<ericP>ahhh, so servers should assign a higher q to the one with the best info
23:26:27<timbl_>test of time, what the fuel injection advance knob?
23:26:30<ericP>that works for me
23:26:30<dajobe>hmm
23:26:50<dajobe>I've been wondering about adding conneg to triplr.org's services. I need to pick the q carefully it seems ;)
23:27:11<timbl_>Dead right!
23:27:32<timbl_>Well, between rdf/xml and N3, you don't really hve to be fussy
23:27:51<timbl_>I see Tabulator does n3 at 0.5 left over from hen we were testing the browser
23:27:57<timbl_>s/browser/parser/
23:28:24<dajobe>yeah but e.g. you could ask for http://triplr.org/-/example.org and it'd use conneg in the request to figure out what serialiser to use, if there were multiple choices
23:30:07<timbl_>So I am in fact asking for RDF at 1.0 and text/html at 0.5
23:30:30<timbl_>but now the server seems to have broken at http://data.semanticweb.org/organizations/ for example "results"
23:30:43<timbl_>"sorry, endpoint returned no results"
23:34:33<DanC>ACTION chuckes @ video from a local band... http://www.youtube.com/watch?v=4b_5mqf-lpY
23:43:14<timbl_>Is there a unicode character or HTML entity which is an optional line break, which one could put after the slashes in a URI so it would not messs up an HTML table?
23:43:55<ericP>cehcking...
23:45:51<ericP>of ‐ ‑ ‒ – — ―, none seem appropriate
23:46:14<ericP>of ‐ ‑ ‒ – — ―, none seem appropriate
23:46:51<Zola>guys...
23:47:11<timbl>I think that if it existed people would have used it before
23:47:14<Zola>what's the best way to handle attributes in something like JSON, which does not support attributes being separate from children as XML does?
23:47:26<ericP>(hyphen, non-breaking hyphen, dash, en-dash, em-dash, horizontal bar)
23:47:30<ericP>agreed
23:47:55<Zola>k0 { __attributes: { k1: v, k2: v }, child1: v, child2: v }
23:47:59<Zola>this presents a problem
23:48:20<Zola>if a child is ever called "__attributes"
23:48:23<timbl>We have non-space-break, non-breaking space, optional-breaking-space ; I want an option-break-non-space
23:48:28<Zola>the other option is...
23:48:31<ericP>Zola, are you looking for a general JSON-2-RDF mapping, or one for this particular appliation data?
23:48:49<Zola>k0 { attributes: { k1: v, k2: v }, contents: { child1: v, child2: v } }
23:48:59<Zola>however. this screws everything up
23:49:16<Zola>cause your semantic hierarchy no longer matches the syntax of hierarchy
23:49:16<chmod007>is it safe to have xpaths using unrecognized extension function in XSLT, on the condition that they are never used?
23:49:24<Zola>ericP: im not using RDF at all
23:49:41<Zola>im just looking for a simple solution
23:50:16<ericP>chmod007, i know that some XSLT processors have done late-binding on function resolution (causing me to find bugs much later than i'd have liked)
23:50:38<chmod007>ok, but they are allowed to err out early?
23:52:03<ericP>chmod007, i'm asking around, but 20% thatn i'll get a definitive answer for you
23:52:20<chmod007>ericP: that’s kind of you, thanks :)
23:52:30<Zola>"k0": { "attributes": { "k1": v, "k2":v }, "child1": v, "child2": { } }
23:52:38<Zola>what is the GENERAL solution in simple-JSON
23:52:50<chmod007>there is none. json is pretty free-form
23:53:02<Zola>to use, when "attributes" key in my example describes some settings for "k0"
23:53:13<chmod007>Zola: use a UUID for the “attributes” key if you’re afraid of collisions.
23:53:18<Zola>chmod007: well, could you even give me an example?
23:53:47<chmod007>Zola: or something that is not an identifier in the target language, so could not possibly be a valid property / attribute / etc
23:54:04<Zola>like what
23:54:13<Zola>!&@^*#@!#&^@ ?
23:54:23<Zola>that can definitely be a child
23:54:23<chmod007>it obviously depends on the language.
23:54:29<Zola>there is no language
23:54:49<Zola>there is no target language
23:55:05<Zola>it's user-data. children are names. like "little bo peep"
23:55:06<chmod007>when you lay out the required structure of your JSON objects, you can specify whatever restrictions you want or need.
23:55:51<Zola>that doesnt really help me
23:55:57<Zola>i simply want attributes alongside children
23:56:56<chmod007>here you go. your very own UUID to use as a key for either the kids or the attrs: 9E5B682F-ECFA-493B-A8A2-13FB6EF55C27
23:57:14<Zola>rofl
23:57:42<Zola>so
23:57:51<Zola>you think the world will explode before someone uses the UUID ?
23:58:10<chmod007>yes, unless they’re being malicious (which you should account for)
23:58:14<das05r>Zola: try this method: http://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html
23:58:53<chmod007>ok, so the “target” language was xml.

Back to channel and daily index: content-negotiated html turtle