Semantic Web Interest Group IRC Chat Logs for 2001-09-19

This is an automatically generated IRC chat log made by the logger bot from the Semantic Web Interest Group IRC chat at irc://irc.freenode.net/rdfig (also known as server irc.freenode.net channel #rdfig if that URI does not work for you).

NOTICE: #rdfig logs are being turned off 2004-12-03. Please switch to the new and shiny #swig channel for Semantic Web Interest Group chat. Change your client to #swig and enjoy the new experience. Or read the latest #swig logs to see what you've been missing :)


Semantic Web Interest Group Logs > 2001 > 2001-09 > 2001-09-19 (Latest) (Search)

11:19:31 * azaroth waves.

11:23:09 <azaroth> em: Not sure how much your talk at ECDL had to do with this, but Paul (boss) got a call from the EU folks today saying basically that they are looking in particular for applications based around the Semantic Web. Considering that in the projects panel they were very much into library/museum/archive merging, perhaps you can chalk up a pretty big convert.

11:26:16 <danbri> cool :)

11:28:01 <azaroth> As I had to explain at least the basic concepts to him of it last week, he was pretty pleased with me ;)

11:43:23 <azaroth> danbri: This is probably a stupid question, but is there a triples exchange format?

11:43:39 <azaroth> To which the answer is, yes, RDF.

11:44:16 <azaroth> But I'm thinking more along the lines of just an individual triple as opposed to a full description which can contain many triples.

11:52:07 <danbri> azaroth: not really. Closest is the triple-dump formats people sometimes use, most recently the ntriples format used for RDF Core test cases. See recent WD (I forget URL) or http://wwww.w3.org/2001/sw/RDFCore/ntriples/

11:54:54 * azaroth nods.

11:55:25 * azaroth staples down AaronSw's connection.

11:56:47 * sandro is a firm supporter of N-Triples being the more-definitive RDF format. (but you knew that.)

12:01:48 * azaroth hehs and finds a CSS bug in Mozilla. The rendering of exampleInner and Outer are broken.

13:40:05 * DanC waves from 1st telcon of the day...

13:40:26 <DanC> hmm... maybe only telcon of the day... wednesdays maybe aren't so bad any more...

13:40:43 <mids> does someone know LaTeX?

13:40:47 <azaroth> Somewhat

13:41:08 <mids> I got a style file I want to use, but latex complains about a missing .cls?

13:42:24 * azaroth grins. Beyond me I'm afraid

13:42:57 <mids> tnx anyway

13:43:04 <azaroth> NP

13:57:44 * danbri heads off to france;

14:24:03 <libby> aaron, can you help me with a trivial python thing?

14:24:18 <libby> I don't know how to install the soap module...

14:27:57 <bijan> "Install"?

14:28:22 <libby> er...

14:28:28 <libby> help....

14:28:33 <bijan> You've downloaded the file...

14:28:37 <libby> yup

14:28:38 <bijan> You've unzipped it....

14:28:43 <libby> check

14:28:52 <bijan> Is it a bunch of files or just one?

14:29:03 <bijan> (And you know Java, right?)

14:29:20 <libby> h'm; there's a SOAP.py file, I think the rest are tests

14:29:23 <libby> yep

14:29:41 <bijan> All you need is to put it in a folder included in your Pythonpath.

14:29:50 <libby> oh. ok

14:29:54 <bijan> Or add it's path to your pythonpath.

14:30:00 * azaroth chuckles and read a 'soappy' file.

14:30:07 <libby> I'm not sure I have a pythonpath

14:30:20 <libby> maybe I should read teh man pages better

14:30:27 <bijan> You do.

14:30:32 <bijan> Fire up the repl

14:30:38 <bijan> type

14:30:41 <bijan> import sys

14:30:42 <bijan> then

14:30:55 <libby> repl?

14:31:11 <bijan> read evaluate print line.

14:31:12 <bijan> I.e., the shell :)

14:31:14 <bijan> then

14:31:16 <bijan> sys.path

14:31:18 <libby> ah :)

14:31:23 <bijan> That will display you're current python path.

14:31:26 <bijan> it's just a list.

14:31:31 <bijan> So you can add to it dynamically.

14:31:44 <bijan> sys.path = sys.path + []

14:32:08 <libby> bash: sys.path: command not found :(

14:32:59 <bijan> Er.. your *python* shell ;)

14:33:05 <bijan> Fire up your python shell.

14:33:11 <libby> oh

14:33:17 <libby> sorry...

14:33:20 <bijan> Heh :)

14:33:58 <libby> okeydokey, seems to be working now

14:36:05 <bijan> Great.

14:36:11 <bijan> Note that that isn't permanant.

14:36:16 <bijan> I.e., it won't persist twixt session.

14:36:39 <bijan> but you can do the import sys; sys.path.munge trick in your own scripts and modules.

14:36:47 <bijan> ANd I'm sure there's a config thing for your system.

14:40:33 <libby> thanks bijan, I uderstand what's going on a bit better now :)

14:40:49 <bijan> :)

14:40:51 <bijan> I'm glad.

14:41:33 <libby> :))

15:47:00 <DanC> tim? I'm debugging log:uri...

15:47:16 <DanC> there's a line: if type(obj_py) is type(""): ...

15:47:39 <DanC> which fails when the URI results from parsing XML... its type is type(u"")

15:48:16 <DanC> now URIs should always be US-ASCII strings... the RDF/xml parser should reduce unicode to US-ASCII using the IURI hack.

15:49:01 <DanC> I'm looking for the right places to fix that in sax2rdf.py, but I can't quite tell what's passed across the makeStatement() interface: are URIs relative at that point, or absolutized?

15:49:48 <DanC> the makeStatement() interface is really core and should be factored out of notation3.py. I noticed that when writing KIFSink.py; there's no reason KIFSink.py needs to know anything about notation3 syntax.

16:08:23 <DanC> hmm... bijan, it seems timbl did separate out the representation stuff from cwm.py into thing.py

16:08:25 <DanC> at least partly

16:08:29 <bijan> Cool.

16:18:05 <DanC> sigh... it's still a mess. compareURI() actually compares things that are *not* URIs.

16:31:09 <tim2> Hi - sorry missed channel - wa son other machine

16:32:07 <tim2> makeStatement() should have abolute URIs I think

16:32:30 <DanC> is that the way the code works now?

16:32:32 <tim2> factoring out: I agree

16:33:46 <DanC> practical motivation: I'm trying to generate a list of W3C team contacts. I'm having trouble going from homePage to homePageAddress and back.

16:33:47 <tim2> works - not sure

16:35:30 <DanC> notation3.py seems to absolutize during parsing/tokenization: uref = urlparse.urljoin(self._baseURI, str[st:i])

16:35:51 <tim2> Yes. The parser is always told the URI of what it is parsing.

16:36:22 <tim2> So absolurtes must be passed.

16:36:22 <DanC> checking the RDF/xml parser...

16:36:27 <DanC> btw... # @@@@@@@@@ use numbers for speed

16:36:41 <DanC> you can use x is y rather than x == y to avoid strcmp()

16:38:08 <tim2> Yes. I try to.

16:39:23 <DanC> try to: then why the @@@@@@@@@ use numbers for speed comment? was that before you discovered the x is y idiom?

16:39:24 <tim2> I didn't think we had anything generating unicode in the swap code. The windows debugger freakes when it tries to print it on the screen.

16:39:46 <DanC> the sax stuff deals in unicode.

16:40:07 <DanC> aha... sax2rdf absolutizes at parse time; in handling rdf:about: self._subject = self.uriref(value)

16:40:52 <tim2> Ok, so the attribute -> URI conversion needs to fix unicdoe -> ascii.

16:41:11 <DanC> yes... I started working on unicode->ascii: uri = uri.encode('utf-8')

16:41:19 <DanC> unfortunately, I think I masked some bugs in doing so.

16:41:31 <tim2> masked? unmasked?

16:41:57 <DanC> masked. that code happily converts unicode to utf-8 without %xx-encoding stuff above 127

16:42:48 * DanC thinks we need to bite the bullet and write a URI-syntax-handling module; python's urllib is too buggy

16:44:23 <tim2> Is the interface wrong?

16:44:45 <tim2> Wouldn't fixng the existing one with the same name be more public spirited?

16:44:53 <DanC> yes, I think so. It treats # differently based on the scheme.

16:45:08 <DanC> i.e. yes the interface is wrong.

16:45:20 <tim2> Are you in notation3.n3 now? I'd like to add a sourceURI to BadSyntax parameters.

16:45:34 <DanC> I'm not sure what I'm in.

16:46:07 <DanC> I think I only need to change cwm.py to fix this bug.

16:46:38 <DanC> I've sprinkled a few of these about: assert type(str) is type("") # caller %xx-ifies unicode

16:48:16 <DanC> hmm... should log:uri do %xx escaping of unicode chars? or just fail if there's a non-ascii character?

16:52:18 <tim2> hmmm.

16:52:28 * DanC wished timbl would stick to 80 character lines

16:52:33 <tim2> I would say fail

16:52:39 <tim2> on irc or source code?

16:52:43 <DanC> source code

16:52:46 <tim2> source code i guess

16:55:46 <tim2> I'll bear it inmind - though some times the nesting get sclose to 80 cols itself!

16:56:06 <DanC> yes, and that's bad. very bad.

16:56:20 <DanC> if the nesting gets that deep, split the function up.

16:56:58 * DanC can't figure out why emacs is confused about indentation in cwm.py

16:57:15 <tim2> The python URL loader is not perfect -- when I get a 300 Multiple choices it returns the accompanying body.

16:58:04 * tim2 notes that he has a de-cr.py program which recursively eradicates all CRs from .py and .n3 files

16:58:53 <DanC> 300/body: what's wrong with that? I don't follow.

17:00:01 <tim2> The coed never know it deosn't ahve the document,and proceeds to parse it.

17:00:10 <tim2> The code never know it deosn't ahve the document,and proceeds to parse it.

17:00:12 <DanC> oh... you don't get the 300 code?

17:00:18 <tim2> where would one get that?

17:00:38 <tim2> there is a mime message thing .... doe sthat have it?

17:00:39 <DanC> I guess I'd expect an exception rather than a normal return from urlopen()

17:00:46 <tim2> me too.

17:01:14 <tim2> Our server is of course a bit weird when it says "multiple choices" instead of "not authorized".

17:01:31 <tim2> but it should still eb an exception.

17:02:54 * DanC commits cwm.py,v 1.73

17:03:23 <DanC> I'd like to go over thing.py a bit... from the perspective of something like KIFSink.py

17:03:48 <DanC> thing.py shouldn't import notation3.py ... it should be the other way around, no?

17:04:30 <tim2> Yes.

17:04:52 <tim2> There should be some makeStaement interface definition - the basic and mythical sink.

17:05:23 <tim2> It doesn't have to import thing. Thing implies interning.

17:05:26 <DanC> yes... the parser/sink interface... that's not thing.py, is it?

17:05:49 <DanC> have you looked at my toolkit-based implementation of notation3? http://www.w3.org/2000/10/swap/rdfn3-gram.html

17:05:56 <tim2> No, thing and the sink inetrface share little

17:06:56 <tim2> toolkit - what toolkit? no, I hadn't ... looks interesting.

17:07:13 <DanC> yapps toolkit; cited from rdfn3.g (linked from rdfn3-gram.html)

17:07:50 <DanC> I was able to build a gram2html.py thingy based on the yapps toolkit, whence comes rdfn3-gram.html

17:07:56 <tim2> so i see ... is it a pipeline event-driven one?

17:08:15 <DanC> no, not even-driven, I don't think.

17:08:32 <DanC> it's a top-down, recursive-descent parser, just like the original notation3.py

17:09:01 <DanC> but it uses regexps for lexing. and the connection between the HTML version of the grammar and the implementation is maintained by machine.

17:09:11 <tim2> Event-driven would persuade me to switch to it, as the current in-memory way is not a long term solution.

17:09:16 <tim2> Yes, it is nice!

17:10:06 <DanC> in developing gram2html.py, I discovered that yapps has a nice interface to the parser data structures; i.e. you can get the first/follow stuff independent of the generated python code.

17:10:35 <DanC> so in theory, it should be straightforward to generate state-machine code...

17:11:00 <tim2> first/follow undefined in line l-2 -- assumed lex/yacc internals

17:11:26 <DanC> first/follow is from the dragon book, i.e. "compilers" class that almost all C.S. students take. sorry.

17:11:44 <tim2> Generating the state machine code was the bit you refered to as bendingyour head sideways OWTTE and the bit one expecst to get from the tools!

17:11:50 <DanC> let's see... your background includes moore/mealy machines and such?

17:13:55 <tim2> All CS students -- look, I have just forkedout for the 3 volume Knuth -- I am doing my best ;-)

17:14:20 <tim2> It has a reference to my mother on p230 of vol 1 (!)

17:14:39 <DanC> !

17:14:57 * DanC notes the dragon book is missing from http://www.w3.org/Collaboration/knowledge

17:15:55 <DanC> anyway... so... the code-cleanup-value of rdfn3_yapps.py alone might not convince you, but a state-machine would. noted.

17:16:09 <tim2> For references to the state of interpreters in the early fifties, see the articel "Interpretive Sub-routines" by J.M.Bennet, D.G.Prinz, and M.L.Woods, Proc ACM Nat Conf (1952), 81-87.

17:16:36 <tim2> I have the dragon book too, I find.

17:17:27 <DanC> first/follow explained, courtesy of google: http://compilers.iecc.com/comparch/article/97-10-089

17:19:13 <DanC> back to code-reviewing thing.py... all the META_* stuff seems like dead code.

17:19:39 <DanC> and CONTEXT = notation3.CONTEXT is probably clearer as: from notation3 import CONTEXT

17:20:10 <tim2> A practical problem- some schema of ours uses "isDefinedBy" to point to the HTML Rec, so check.n3 goes off assuming that that is the offical schema :-(

17:20:16 <tim2> )

17:20:18 <DanC> the name RESOURCE, as in pair=(RESOURCE, uriref) seems extremely misleading

17:20:43 <DanC> yes, it's not clear at all what the range of isDefinedBy is.

17:20:50 <tim2> META stuff - embryonic. We can discuss its usefulness and abortion.

17:21:19 <tim2> CONTEXT = agreed

17:23:05 <DanC> CONTEXT, PRED, SUBJ, OBJ and RESOURCE, FORUMULA, LITERAL, ... belong in the mythical parser/sink interface, no?

17:23:53 <tim2> yes.

17:24:04 <tim2> Dunno what to call Resource.

17:24:22 <DanC> in rdfn3.g I called it URIREF

17:24:44 <DanC> but...hmm... URIREF is the relative form. URI might work for the absolute form.

17:26:08 <tim2> re cdoe review: Are you editing these or should I take the log and go though it later?

17:26:42 <DanC> I'm not editing yet. haven't mustered the courage.

17:26:42 <tim2> name for mythical sink interface .... stream.py? sink.py?

17:26:51 <DanC> one excuse: waiting for you to split cwm.py between command-line and other.

17:27:30 <DanC> sink/stream are pretty generic names; these sinks are specific to RDF knowledge-bases.

17:27:46 <tim2> Can i catch an exception and relaunch a new one which refers to it in python?

17:27:54 <tim2> rdfstream

17:27:59 <DanC> catch: I think so.

17:28:21 <DanC> rdfstream works well enough for me. (bijan? quick thoughts?)

17:28:57 <bijan> Hmm?

17:29:02 <bijan> For...?

17:32:08 <DanC> thoughts: on what to call a new python module for the RDFSink base class and the enumerations CONTEXT, PRED, SUBJ, OBJ and RESOURCE, FORUMULA, LITERAL, ...

17:33:01 <bijan> Ah. Hmm.

17:33:12 <DanC> candidate: rdfsink.py

17:33:54 <bijan> Where exactly are the enumerations used?

17:34:02 <DanC> the key method seems to be makeStatement ... I wonder if that informs the choice of names.

17:35:02 <DanC> used: all over, but crucially in makeStatement(): it takes a tuple of the form (context, pred, subj, obj)

17:35:24 <DanC> where each of those 4 is a pair (ty, stuff) where ty is one of RESOURCE, FORUMULA, ...

17:35:41 <bijan> rdfsink doesn't inform me at all, but I don't hate it, per se.

17:36:22 <bijan> Since in python you can pop the module inot a variable, it's hard to get *too too* worked up about the prefix.

17:36:25 <tim2> rdfstream.py ?

17:36:31 <DanC> statementSink.py ?

17:37:07 <bijan> These are for building statement objects, yes?

17:37:22 <bijan> If so, I prefer something with statement. More specific.

17:37:33 <DanC> no, not building statement objects; for communicating statements between parsers, generators, stores, etc.

17:37:46 <bijan> Ah.

17:37:58 <bijan> Then statementSink wins, I think.

17:38:29 <bijan> rdfstream tends to make me thing of something over an rdf document.

17:38:54 <bijan> fwiw.

17:39:24 * DanC wonders if the concept has a name in other RDF apis...

17:41:19 * bijan 's problem is that he thinks of a sink as a place you chuck stuff.

17:41:33 <bijan> Guess what MY kitchen counters look like :)

17:43:02 <DanC> what's the python-land convention for naming modules the closely correspond to classes? In modula-3, the module was called foo.m3 and the class was foo.T

17:43:33 <DanC> s/the closely/that closely/

17:44:08 <DanC>http://www.python.org/doc/essays/styleguide.html

17:44:08 <dc_rdfig> A: http://www.python.org/doc/essays/styleguide.html from DanC

17:44:16 <DanC> A:|Python Style Guide

17:44:16 <dc_rdfig> titled item A

17:44:31 <DanC> A:by Guido van Rossum. (not sure when)

17:44:32 <dc_rdfig> commented item A

17:45:29 <DanC> A:"Modules that export a single class ... are often named in MixedCase, with the module name being the same as the class name"

17:45:29 <dc_rdfig> commented item A

17:45:32 * tim2 leaves fro lunch leaving notation3 and cwm.py locally modified -- error handling improvements

17:45:35 <tim2> tim2 is now known as t-lunch

17:46:14 <DanC> A:this argues to call the new swap module we're discussing RDFSink.py

17:46:14 <dc_rdfig> commented item A

17:47:44 <dmiles> Ah interesing glad. i looked at window

17:48:22 <dmiles> so ow goes the war on generically being able to read everything into one form?

17:53:34 <DanC> war? er... we're just building some apps that seem useful.

18:01:11 <dmiles> well i was refering to xml2rdf/sax2rdf

18:16:12 * DanC splits out RDFSink.py from notation3.py ... lightly tests...

18:20:42 <t-lunch> t-lunch is now known as timbl

18:24:03 <DanC> crap. segmentation fault in the first test.

18:36:31 <DanC> whew... tests mostly passing now...

18:37:26 <timbl> Not so easy to recreate the original excetion - you get passed its class and a thing which may be an arg oir a tuple of args used to initialize it ... not the object itself.

18:37:55 <DanC> really?

18:38:11 <DanC> tim, diff: ref/environ.n3: No such file or directory

18:40:11 <DanC> hmm... sameDan.n3 test... not sure if it's really passing or failing.

18:40:26 <DanC> anyway... I think I'm gonna check this RDFSink.py refactoring in.

18:42:26 <bijan> timbl: I don't think python has resumable exceptions per se.

18:42:30 <bijan> Stackless might.

18:44:37 <DanC> I don't think he's trying to resume... just reraise

18:46:36 <timbl> I got it - info[1] is in fact the exception instance.

18:47:06 <timbl> ref/environ.n3 - feel free to make it

18:47:11 <timbl> i must have forgotten

18:47:43 <tim> __main__.DocumentAccessError: Unable to access document <fobar>, because:

18:47:44 <tim> [Errno 2] No such file or directory: 'fobar'

18:47:55 <tim> That's more like it. Nested reasons for what went wrong.

18:48:05 * tim happier

18:48:46 <DanC> cwm.py 1.74; notation3.py 1.90; sax2rdf.py 1.9; KIFSink.py 1.5;

18:48:55 <DanC> tested and checked ii

18:48:56 <DanC> in

18:49:17 <DanC> oh... not to mention RDFSink.py 1.1

18:49:37 <DanC> oops... some lines are still >79chars

18:49:46 <DanC> and I forgot the Open Source license blurb

18:49:50 <tim> I would like to see: Can't parse <http://www.foobar.com/baz> because DNS service times out, seems that I can't ping your defualt server 111.222.33.1 - traceroute suggets linkfr from rcn.net to mit.edu has gone."

18:50:11 <tim> " .... call 1-800-RCN".

18:50:32 <tim> That ismore lik ean error message than IOError!

18:50:33 <DanC> I don't necessarily want the machine to hunt down *extra* info on errors... just so long as it doesn't throw away what info it did find.

18:51:00 <tim> Not even run a traceroute on the offdning IP hst? Ofetn by the tim eyou get the message the net has recovered.

18:51:18 <tim> I suppose it should be optional.

19:04:01 <timbl> Ihave just committed the errro handling, merged with your diffs, danc.

19:07:28 <DanC> nifty

19:15:35 <timbl> Do yu need to check in a RDFSink.py?

19:16:30 <timbl> DanC?

19:30:33 <DanC> oops... RDFSink.py is now checked in, 1.1

19:34:09 <timbl> Thanks!

20:19:42 * DanC wonders what's up with all the joining and leaving today

20:29:09 * dajobe sighs and reads familiar w3 cvs error: failed to create lock directory in repository `/sources/public/2000/10/swap': Permission denied

20:29:36 * DanC consults w3c systems gurus...

20:30:40 <DanC> dave, I have an action to ask you what 3 to 10 resources every RDF developer should know about.

20:30:53 <DanC> i.e. how to clean up http://www.w3.org/RDF/#developers

20:31:07 <dajobe> hmm, have to think about that

20:31:15 <dajobe> can I get back to you next week?

20:31:20 <DanC> any time.

20:31:32 <gerald> dajobe, does that error happen, go away for a while, and then come back? or does it always do that?

20:31:45 <dajobe> gerald: it is intermittent

20:31:52 <dajobe> (although not working at the moment)

20:32:45 <gerald> oh... there's a cron job that rsync's those ,v files from our internal repository, so the public one shouldn't be writable, should it?

20:32:59 <gerald> (the cron job purposely does a chmod -R a-w)

20:33:08 <DanC> not writeable, no.

20:33:11 <dajobe> you can set the CVS config so the lock dir root can be in a different place than the cvs tree

20:33:24 <dajobe> and make the lock dir area um, g+s writable whatever that means, I forget

20:33:46 <DanC> can you do a cvs -n update, dajobe?

20:33:52 <gerald> ah, you were reading, not writing. got it.

20:33:57 <DanC> (-n doesn't try to acquire any locks, I don't think)

20:34:00 <deltab> g+s sets the gid of created files/dirs

20:34:11 <gerald> cvs -n doesn't modify local files though

20:34:12 <dajobe> DanC: seems happy

20:34:26 <DanC> local: ah. good point.

20:34:29 <dajobe> DanC: ie cvs -n update happily did no work

20:35:15 <DanC> kifbot, help

20:35:40 <gerald> oh... looks like our other cron job kicked in, and you should be able to read now (until 17 past the next hour :)

20:36:15 <dajobe> gerald: regular cvs update worked, thx

20:37:29 <tim> Ah, I see: The RDF 1.0 schema <http://www.w3.org/1999/02/22-rdf-syntax-ns> used <http://www.w3.org/TR/WD-rdf-schema> as a namespace for s:comment.

20:37:48 <DanC> yes, there are quite a few dead bodies in the RDF schema for RDF and RDFS.

20:38:33 * DanC waves to Nabil, wonders when he stopped by

20:38:36 <tim> Can we fix it?

20:38:48 <DanC> yes, I think we can fix it, Tim.

20:39:06 <tim> Do you think I should ask the webmaster or the RDF WG?

20:39:06 <DanC> I fixed an XML-level bug in the RDF schema for RDF schema.

20:39:16 <DanC> or rather: maybe I just reported it and worked around it.

20:39:18 <tim> (or use Amaya?)

20:39:42 <DanC> you should at least notify the RDF WG of any changes you make; via www-rdf-comments

20:39:46 <tim> Namespace persistence policy allows bug fixes.

20:40:26 <DanC> the RDFS CR suggested a "change no bytes" policy for schemas, but... it's just a CR, and the implementation experience I've seen says fixing bugs is worthwhile.

20:40:48 <tim> (There remains an issue as to why cwm was verifying the RDF schema itself, when it was supposed to be verifying documents but is my problem.)

20:41:14 <DanC> AaronSw, are you there, or is that your machine that keeps coming and going?

20:41:29 <sbp> It's just his machine - Jewish holiday

20:41:36 <DanC> AaronSw, btw... TimBL's working on RDF schema validation. you might want to offer it as a web service, ala the N3/RDF-xml converter.

20:42:29 <dajobe> what does an rdf schema validator validate?

20:42:40 <sbp> Schema validation: I had some thoughts on that... check to see if a schema uses any terms whose URIs start with whatever namespace you're checking, but do not contain any of the terms in that namespace

20:42:43 * DanC forgets where the main test case...

20:43:19 <dajobe> an rdf schema (whatever that is) doesn't have to be terms from just one namespace

20:43:26 <bijan> A schema validator would validate what a schema validator could validate if a schema validator could only get a valid date.

20:43:26 * DanC finds the test case... chacls...

20:43:38 <sbp> of course not, but it's usually arranged like that

20:43:53 <sbp> other things you can do are simply checking inconsistencies

20:44:07 <DanC>http://www.w3.org/2000/10/swap/test/includes/check.n3

20:44:07 <dc_rdfig> B: http://www.w3.org/2000/10/swap/test/includes/check.n3 from DanC

20:44:19 <DanC> B:|check.n3 -- Test whether a schema mentions the predicates used in this data

20:44:19 <dc_rdfig> titled item B

20:44:21 <sbp> e.g. make sure that there are no terms that belong to two disjoint classes

20:44:50 <DanC> the stuff TimBL is working on is more along the heuristic/lint/typo level than the disjoint/inconsistent level

20:45:07 <dajobe> I was wondering if there should be a well known rdfs:Class something like rdfs:Schema so you could describe schemas; link to their contents via other properties or bags...

20:45:18 <sbp> { :x a :y, :z . (:x :y) a daml:Disjoint } log:implies { :x a :InconsistentTerm } .

20:45:44 <sbp> yeah, like the ol' RDF Lint stuff

20:45:45 <DanC> inconsistent thing, not term.

20:45:52 <DanC> RDF Lint stuff?

20:45:55 <bijan> inconsistent document?

20:46:11 <sbp> s/Thing/Term

20:46:24 <sbp> RDF Lint: http://infomesh.net/2001/05/rdflint/

20:46:35 <sbp> my server's down though, I think. Email has been intermittent

20:47:30 <sbp> sparser.n3 contained rules that noted inconsistencies like bad spelling, things being properties and classes, that sort of thing

20:47:40 <DanC> check.n3 takes a document, and for each { :s :p :o } in the document, follows :p, looks for isDefinedBy, looks for { :p a rdf:Property} and complains if not found. or something like that.

20:48:26 <sbp> check.n3: neat!

20:49:01 <sbp> we should combine all of this stuff together at one point... I found RDF Lint really useful for debugging schemata

20:49:43 <sbp> parsers can tell you the syntactic errors, but when you're working on something complex and call a class a property somewhere by mistake... it's useful

20:49:51 * DanC tries check.n3 on daml+oil...

20:50:03 <DanC> File "cwm.py", line 620, in storeQuad

20:50:04 <DanC> raise internalError #should only once

20:50:04 <DanC> NameError: There is no variable named 'internalError'

20:50:30 <DanC> tim, I suggest using RuntimeError in stead of internalError

20:50:59 <tim> ok - I don't know the magic list of errors so I makem one up - it gives you a stack dump after all. But now I know I can use a string....

20:51:19 <bijan> Or an object!

20:51:31 * DanC suggests TimBL spend a couple minutes reading some python docs.

20:51:47 <sbp> "make them up" :-)

20:52:03 <tim> Object - but then you have to make the obejct. I'll do that when I actaully have parameters to pass on. I have added a coupel to cwm.py recently

20:52:28 * sbp plucks up the courage to ask...

20:52:29 <sbp> How long 'till CWM has decent croyptography built ins?

20:52:52 <dajobe> right after you submit the patch, sbp :)

20:53:01 <sbp> :-)

20:53:14 <DanC> er... should I expect check.n3 to work with RDF/xml input?

20:53:34 <tim> re: the stuff TimBL is working on is more along the heuristic/lint/typo level than the disjoint/inconsistent level -- test/includes/check.n3 is that, but an earlier one (quoted in swap/Examples.html) does the inconsistency business.

20:54:20 <tim> re crypto - I think critical step is my installing amkCrypto under Cygwin. The modules i have but I think it needs some c compilation too.

20:54:53 <tim> If you want to have a go at it, then cwm_string.py is the the thing to clone into cwm_crypot.py

20:55:00 <sbp> aha: http://www.w3.org/2000/10/swap/test/schema-rules.n3

20:55:35 <sbp> cwm_string.py: I just looked at that today, and played about with string: concat. Was able to make an XHTML document out of RDF! :-)

20:56:07 <sbp> I was thinking of using a PGP Python wrapper...

20:56:25 * dajobe notices cwm_string.n3: LITERAL_URI_prefix = "data:application/n3;"

20:56:55 <sbp> that doesn't get output... for the store only, I presume

20:59:08 <DanC> I'm not sure LITERAL_URI_prefix is used at all. it might be dead code.

20:59:26 <DanC> tim? should I expect check.n3 to work with RDF/xml input?

20:59:52 <tim> DanC; Yes, check.n3 should work onRDF input grace au loadToStore which you wrote.

20:59:57 <tim> s/;/:/

21:00:32 <DanC> ah... loadToStore depends on RDF/xml being served as text/xml or application/rdf or some such

21:01:01 <tim> sbp: I found amkCrypto which seems to be the most current ... though no one is jumping up and down to maintain it forever.

21:01:15 <DanC> there are lots of practical questions about MIME types and format negoation that I'm not sure how to answer because I don't have a good grip on them formally.

21:01:19 <tim> But amk at least tried to make a clean consistent interface .

21:01:45 <DanC> tim, have you seen JoeR's implementation of XML c14n in python?

21:01:52 * sbp checks out amk...

21:02:25 <tim> No, I have not seen JoeR's implementation of XML c14n in python.

21:02:33 * DanC hunts...

21:03:34 * DanC waits for dev.w3.org and waits and waits...

21:03:50 <gerald> dan, I'm unable to reach MIT (for the last ~2 mins)

21:04:04 <DanC> ah

21:05:48 * timbl finds laptop dropped tunnel, can't reconnect

21:06:18 <gerald> hi tim... MIT seems to be unreachable

21:06:20 * timbl we have a problem, Houston

21:06:36 <sbp> Down goes w3.org...

21:08:18 <DanC> tim, is your list redesign done? I'm trying to read daml+oil.daml and losing:

21:08:20 <DanC> python2 cwm.py --rdf http://www.daml.org/2001/03/daml+oil --n3 >,xxx

21:08:29 <DanC> File "notation3.py", line 1224, in makeStatement

21:08:30 <DanC> raise RuntimeError ("Should only see first and rest in list mode", triple)

21:08:30 <DanC> RuntimeError: ('Should only see first and rest in list mode', ((1, 'http://www.daml.org/2001/03/daml+oil#_formula'), (0, 'http://www.w3.org/2000/01/rdf-schema#comment'), (0, 'http://www.daml.org/2001/03/daml+oil#nil'), (2, u'\012 the empty list; this used to be called Empty.\012 ')))

21:09:09 <gerald> MIT's back

21:09:30 <DanC> dev.w3.org is still slow

21:10:24 <DanC>http://dev.w3.org/cvsweb/2001/xmlsec-python/

21:10:24 <dc_rdfig> C: http://dev.w3.org/cvsweb/2001/xmlsec-python/ from DanC

21:11:10 <DanC> C:|xmlsec-python -- XML c14n in python

21:11:10 <dc_rdfig> titled item C

21:12:47 * timbl-lap tries cwm --rdf http://www.daml.org/2001/03/daml+oil --n3 -- crashes, in pretty printing it seems. Rats

21:13:36 <timbl-lap> Oh, it was trying to print a list and found a property other than :first and :last.

21:13:52 <timbl-lap> IT eihter shouldn't have started, or should print th esublist as a separate thing.

21:13:59 <DanC> indeed, I add --ugly and it doesn't crash

21:14:43 <DanC> this still crashes, though: TARGET=http://www.daml.org/2001/03/daml+oil python2 cwm.py test/includes/check.n3 --think --purge --ugly

21:14:55 <DanC> File "sax2rdf.py", line 354, in startElementNS

21:14:55 <DanC> self.sink.makeStatement(( c, # Link in new pair

21:14:55 <DanC> File "cwm.py", line 545, in makeStatement

21:14:55 <DanC> self.storeQuad(q)

21:14:55 <DanC> File "cwm.py", line 620, in storeQuad

21:14:56 <DanC> raise RuntimeError, "should only [@@] once"

21:14:58 <DanC> RuntimeError: should only [@@] once

21:16:36 * sbp tries out some of the mxCrypto functions...

21:30:32 * DanC takes Justin to soccer practice...

21:41:57 * timbl goes to collect kids

21:42:04 <timbl> timbl is now known as timbl-gone

22:05:12 <sbp> Hmm... has MIT gone again?

22:10:13 <gerald> not completely, but I can't get through to W3C's web servers

22:10:47 <gerald> the servers are fine, but it seems all port 80 traffic is firewalled off or something

22:20:20 <timbl-lap> But seemed to be a triple aserting that w list was of type <#List> rather than dpo:List which woul dhave been OK (ignored).

22:20:27 <timbl-lap> s/But/Bug

22:37:03 <gerald> fyi, MIT has shut down all port 80 traffic to debug a likely code red attack

22:37:23 <Morbus> you mean nimda?

22:37:47 <gerald> that's what I expected, but I was told code red

22:38:00 <Morbus> a lot of people are mistaking it for a variant of code red.

22:38:12 <gerald> (message might have been garbled somewhere on the way to me)

22:38:16 <Morbus> i'm still getting code red hits on my site, but nothing to shut down the port for.

22:38:26 <Morbus> i've gotten about 12000 nimda hits though

22:39:27 <gerald> MIT's net folks really know their stuff, so I'm sure they shut it down for a good reason

22:39:52 <Morbus> i'm surprised they didn't block just its signature in their routers.

22:40:16 <gerald> I'm sure they're working towards that.

22:41:06 <gerald> I saw this the other day: "We are currently receiving

22:41:07 <gerald> over 8000 hits per second from as many as one hundred thousand NT servers

22:41:07 <gerald> on the Internet. Network performance has not been affected.

22:41:07 <gerald> " -- http://www.pair.com/pair/support/notices/

23:00:12 <Morbus> Morbus is now known as morbus-msgMe

23:10:35 <sbp> Gerald: thanks for the FYI. I was watching Monty Python :-)

23:48:26 <MorbusIff> MorbusIff is now known as Morbus


The IRC chat here was automatically logged without editing and contains content written by the chat participants identified by their IRC nick. No other identity is recorded.

Alternate versions: RDF Resource Description Framework Metadata and Text

Provided by Dave Beckett. Hosted by Useful Information Company.