Semantic Web Interest Group IRC Chat Logs for 2005-01-26

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/swig (also known as server irc.freenode.net channel #swig if that URI does not work for you).

See also the Semantic Web Interest Group IRC Scratchpad for the collaboratively written weblog and ESW wiki.


Semantic Web Interest Group Logs > 2005 > 2005-01 > 2005-01-26 (Latest) (Search)

01:12:21 <Skyline> Skyline is now known as pjenvey

01:38:05 <Greylensman> Is the N3 shindig tomorrow?

01:40:10 <crschmidt> Yep, supposed to be

01:43:56 <sbp> yep

02:05:26 <Greylensman> sbp, is there an updated online agenda?

02:17:54 <Greylensman> how about an outdated, hidden agenda?

02:33:52 <sbp> Greylensman: only the one in http://lists.w3.org/Archives/Public/public-cwm-talk/2005JanMar/0001

02:42:07 <Greylensman> Item 2 is interesting: "* @keywords usefulness/viability, and N3 pre-processing"

02:43:37 <timbl_> Thanks sbp!

02:44:10 <timbl_> For "issues with n3.n3' -- do you have a list to start with or a pointer?

02:45:49 <timbl_> maybe a second part f sets is the set reification: can't use owl:oneOf, will use set:xxx

03:08:14 <sbp> the only issue I actually remember is the empty-QName problem

03:08:39 <sbp> I think that more will come out whilst working on the negative test suite; I haven't made a start on that yet, as I explained to Yosi a tad ago on the list

03:09:11 <sbp> I think Greylensman came across one or two--still around, Greylensman? have you made a shortlist of bugs?

03:10:30 <sbp> I followed DanC's role noun discussion the other day, incidentally. I was proposing n3:setOf, I think, but it certainly doesn't work too well when you consider @is n3:setOf @of

03:11:12 <timbl_> excatly - that's not a role noun, has the same probrlm as subclassOf

03:11:30 <sbp> but on the plus side, it has owl:oneOf as a precedent and so the link between them is more apparent (people who know OWL might be able to work out that n3:setOf is a sub-property)

03:11:37 * timbl_ trie sto remember the proposals

03:11:43 <timbl_> n3:list

03:12:01 <timbl_> (1 2 ) is n3:list of ?s.

03:12:33 <timbl_> (1 2) set:members ?s.

03:12:46 <timbl_> (1 2) list:members ?s.

03:13:12 * yosi_ just got back from MIT

03:13:38 <sbp> set:members owl:inverseOf n3:list?

03:14:10 <sbp> I also have some misgivings over using a list for this anyway. it means that you can't compare sets using graph isomorphism

03:14:57 <sbp> rdf:List is ordered intrinsically in the graph, so anything that you want to have recognize an rdf:List as a set is necessarily going to have to have built-in knowledge of sets

03:15:00 <Greylensman> sbp, the empty QName problem is only I had.

03:15:00 <yosi_> I've been running into that for the cwm regression tests

03:15:08 <sbp> Greylensman: cool

03:16:20 <sbp> the only thing that [ n3:list (p q r) ] gives you over [ :member p, q, r ] is completeness. I suppose that is a requirement though...

03:16:35 <yosi_> sbp, while integrating cwm and n3p, I had a problem with the fact that n3mp uses rdflib and rdflib wasn't happy with the regexp I was using to allow unicode qNames

03:17:06 <sbp> oh? what error did you get?

03:17:24 <sbp> eikeon is semi-hacking on integrating n3p into rdflib, incidentally

03:17:35 <sbp> so he's active and probably accepting bug-reports/patches

03:18:06 <timbl_> Really?

03:18:32 <timbl_> maybe we are in the state to go over test cases.

03:18:34 <sbp> yep. see http://lists.w3.org/Archives/Public/www-rdf-interest/2005Jan/0178

03:20:40 <timbl_> I'd propose that everyone test their own parser against everyone else's test cases, and we discuss any differences in the ScheduledTopicChat.

03:21:05 <sbp> you want us to do that between now and 18:00Z tomorrow? :-)

03:22:53 * sbp goes a-huntin' for dajobe's Turtle test cases

03:23:55 <yosi_> it checks to make sure that things in NFC. One end of one of the ranges in the regexp for xml 1.1 qnames (in particular, \uf900)

03:24:15 <sbp> aha

03:24:36 <yosi_> is not in NFC

03:25:07 <sbp> NFC was dropped as a requirement from RDF/XML, but I guess it's still lying around in there

03:25:18 <sbp> BLURB:Turtle Test Cases

03:25:18 <dc_swig> A: Turtle Test Cases from sbp

03:25:59 <sbp> A:The [http://www.ilrt.bris.ac.uk/discovery/2004/01/turtle/#sec-conformance|Turtle conformance section] points off to [http://cvs.ilrt.org/cvsweb/redland/raptor/tests/turtle/|test cases for Turtle] and a [http://www.ilrt.bris.ac.uk/discovery/2004/01/turtle/tests.zip|tests.zip] file.

03:26:00 <dc_swig> Added comment A1.

03:29:57 <sbp> A:WARNING: the tests.zip file mentioned above inflates to the current directory. Always unzip -l first!

03:29:57 <dc_swig> Added comment A2.

03:30:39 <sbp> I need to write a script that'll inflate ((.tar)?(.gz|.bz2))|.zip files and check all that stuff automatically

03:34:28 <PhUrl> good morning

03:34:44 <IsoosI> hrm

03:40:45 <sbp> [[[

03:40:45 <sbp> # Tests for - and _ in names, qnames

03:40:46 <sbp> @prefix ex1: <http://example.org/ex1#> .

03:40:46 <sbp> @prefix ex-2: <http://example.org/ex2#> .

03:40:50 <sbp> ]]] - test-11.ttl

03:40:52 <sbp> that fails

03:41:24 <sbp> (([a-zA-Z_][a-zA-Z0-9_]*)?:)

03:41:31 <sbp> n3.n3 doesn't allow a - in there

03:42:10 <yosi_> I was running into that when running cwm's tests

03:43:01 <sbp> yeah, CWM allows - in there

03:43:01 <yosi_> so I replaces that with (([A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff][\\-0-9A-Z_a-z\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u037d\u037f-\u1fff\u200c-\u200d\u203f-\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\U00010000-\U000effff]*)?:)

03:43:15 <sbp> ouch

03:43:24 <yosi_> then had to add \Uxxxxxxxx support to cwm

03:43:38 <yosi_> and ran into the rdflib NFC problem

03:43:48 <sbp> heh. hooray for i18n support

03:44:02 <timbl_> Yosi, could you post ptr to your test case manifest onto A?

03:44:11 <yosi_> I should check that file into cvs one of these days

03:44:15 <sbp> it'd be nice if you could do ${xml1:name} in Python

03:44:33 <sbp> Perl6 is looking like it's going to support nearly that

03:45:16 <timbl_> cwm's default n3 parser is not a validating parser. It errs on the side of being accepting.

03:45:18 <sbp> A:[http://www.w3.org/2000/10/swap/test/n3parser.tests|n3parser.tests], via DesignIssues/Notation3

03:45:18 <dc_swig> Added comment A3.

03:45:40 <sbp> yeah. same reason why I haven't worked on the negative test cases :-)

03:46:20 <sbp> but I'm surprised because I thought you might seek to exclude - specifically--I know you've been trying to reserve it for quite a while

03:50:02 * yosi_ observes that anything that is allowed will find its way into the tests

03:51:08 <sbp> a genetic algorithm to enumerate all the features of a language for a test suite would be great...

03:58:27 <Greylensman> I wish I had more time. My parser is SML based and is therefore strongly typed and I was anal retentive in over constraining the parser. In fact I can even "construct" an invalid N3 statement.

03:59:38 <Greylensman> sorry, can _not_ construct an invalid N3 statement.

04:01:09 <timbl_> genetic ... in fact I think that enumerating the possible instances could blow up rather quikly. But maybe taking existing test cases, parsing them, and then making random grammar-valid mutations to the parse tree and reserializing it would make test cases which would surface new bugs.

04:01:56 * timbl_ turns in for the night. Important schudled topic chat tomorrow :)

04:02:29 <Greylensman> sbp, I started working on an N3 grammar generater, which generates N3 statements "randomly". Along lines of qcheck and QuickCheck in Haskell.

04:03:54 <Greylensman> To get a feel for how it would work see http://contrapunctus.net/league/haques/qcheck/ scroll down to "Generating test cases randomly"

04:04:16 <grrrrr> i wrote a bot that sat in #rdfig for a number of months counting verb:noun pairs against the levin verb TOC

04:04:46 <grrrrr> never did anything with the hitosgrams but it did work

04:05:46 <grrrrr> the verb table of contents is about the best notion of a root english language skeloten as I can guess to naturally infer the structure of the language in natural usage

04:07:33 <grrrrr> since the levin verb index quantifies "meaning" in so many ways, this seemed to me to be the fastest way of making a naturally self-organized collection of facts to be solidified at a later point in time

04:08:44 <sbp> Greylensman: ah, interesting. but can it generate test cases which only marginally don't conform to the grammar?

04:09:20 * sbp is reminded a bit of jcowan's use of a script which generates *really* broken HTML for use in his TagSoup test suite

04:10:51 <Greylensman> I could. But I my intent was to generate only conforming wff.

04:12:44 * GabeW is throwing a "RFC 3986 and 3987" party

04:15:19 <sbp> heh

04:15:39 <GabeW> i thought I might die of old age before 2396bis and IRI became RFCs

04:15:56 <sbp> yes, as bjoern_ was saying, we can now register "empty" as a URI scheme and take over the world with "empty:" (this might seem an odd plan, but it makes sense)

04:16:10 <GabeW> neet

04:16:28 <GabeW> the timing for this couldn't be better for us in the XRI tc

05:31:51 <Greylensman> hmmm N3 qname regex still supports an "empty" qname, therefore dtlang <empty> can happen. [ foaf:name "Sean B Palmer"^^ ] . is valid.

05:35:48 <Greylensman> heck I'm a bit lost on colonless datatypes as well [ foaf:name "Sean B Palmer"^^str] . is valid. By when/how is the naked symbol str denoting a valid literal datatype?

05:50:36 * PhUrl writes up a short anaylsis of the term reflection in the news today http://rdfintrospector.blogspot.com/2005/01/reflections-about-usage-of-term.html

06:24:01 <PhUrl> SNOTD:(Semantic news of the day) " Starbourne Communications Design is tackling a job that agency XML advocates have long lobbied for, but have never gotten the funding to execute: building a central registry of federal XML schemas. The results could also be used to construct an ontology about each agency?s lines of business, which could be used by search engines to better locate agency material. " http://www.gcn.com/vol1_no1/daily-updates/348

06:24:01 <dc_swig> Label SNOTD not found.

06:24:01 <PhUrl> 98-1.html

06:24:27 <PhUrl> oops http://www.gcn.com/vol1_no1/daily-updates/34898-1.html

07:27:44 <snk0o0sj> hi

08:04:48 <snk0o0sj> gmorning, i have SWIG & python2.3 installed

08:05:16 <snk0o0sj> now i am looking for a way to install the swig-py bindings

08:05:22 <snk0o0sj> but can't seem to work out how its done

08:14:15 <zxv> mornin

08:22:44 <snk0o0sj> libtool: unrecognized option `-DLINUX=2'

08:22:51 <snk0o0sj> mornin

09:00:49 <PhUrl> SNOTD: Seeking Better Web Searches Deluged with superfluous responses to online queries, users will soon benefit from improved search engines that deliver customized results http://www.sciam.com/print_version.cfm?articleID=0006304A-37F4-11E8-B7F483414B7F0000

09:00:49 <dc_swig> Label SNOTD not found.

10:17:04 <JimJibAct> JimJibAct is now known as JibberJim

11:17:54 <balbinus_> balbinus_ is now known as balbinus

13:47:56 <zxv> how do i pass variables from one template to another in xslt?

13:50:12 <bjoern_> zxv, there is a #xml channel on freenode which covers XSLT.

13:51:25 <zxv> cool.

13:51:27 <zxv> thanks

14:00:25 <nmg_> nmg_ is now known as nmg

14:06:24 <kota> what time is the n3 meeting?

14:10:39 <dajobe> 18:00 UTC

14:10:49 <dajobe> or, now +3:50

14:13:45 <kota> thanks, hmm think i'm available :)

14:14:12 <dajobe> dajobe has changed the topic to: Semantic Web Interest Group hack-n-chat - UTF-8 charset please - Weblog: http://swig.xmlhack.com/ - Logs: http://ilrt.org/discovery/chatlogs/swig/ - please identify with NickServ - N3/CWM meeting 2005-01-26 18:00 UTC + 90 mins

14:40:36 <nmg_> nmg_ is now known as nmg

16:30:21 <nmg__> nmg__ is now known as nmg

16:49:06 <yosi_> eikeon, I had created a file with the regexp for xml 1.1 qNames, and rdflib wasn't happy with it because one of the characters in said regexp was not in NFC normal form

18:00:42 <sbp> .t Z

18:00:44 <phenny> 2005-01-26T18:00:43Z

18:02:08 <sbp> hear ye, hear ye; unless, with a nod to Murray Walker, I'm very much mistaken, now is the time scheduled for the Third CWM/Notation3 Chat

18:02:13 * DanC waves, offering partial regrets; I'm chairing a telcon for maybe another 30min

18:02:40 <sbp> no problem. we seem to be the only two for now anyway, so we'll let all the rest flood in in their own time

18:02:58 * crschmidt floods in

18:03:07 <crschmidt> actually, i'm running out to grab lunch, after which I will flood in

18:04:03 <sbp> reminds me of http://bobdylan.com/albums/before.html

18:06:05 <timbl> Lunch? Good idea ... ooops. yes . brb for chat!

18:06:15 * sbp waves to timbl and dajobe

18:06:24 <dajobe> yeah, refuelling seems to be a good idea

18:06:47 * dajobe gets an email about spyware from his ISP. HA HA HA

18:06:58 <sbp> note to self: add "Next meeting is to be held half an hour after it actually starts." to the next announcement

18:07:24 <sbp> are they promoting it or warning about it?

18:08:30 <dajobe> let me look http://www.blueyonder.co.uk/spyware

18:08:43 <dajobe> ha ha creepy photo

18:08:53 <dajobe> beware of people wearing hats in fog

18:09:33 <sbp> indeed. I like the flash (presumably) advert placed over the table of contents too; thank goodness for flashblocker

18:10:24 <timbl> b

18:11:09 <sbp> wb

18:11:16 <timbl> Well, using lot sof keywords on the channel half an hour befrore it starts wakers people out of their reveries.

18:11:40 <sbp> good idea. I should have phenny do that for me

18:11:40 <timbl> t

18:11:51 <sbp> BLURB:Notation3/CWM Scheduled Topic Chat

18:11:51 <dc_swig> B: Notation3/CWM Scheduled Topic Chat from sbp

18:12:16 <sbp> B:See [http://lists.w3.org/Archives/Public/public-cwm-talk/2005JanMar/0001|current meeting announcement and agenda].

18:12:16 <dc_swig> Added comment B1.

18:13:06 <sbp> B:The previous meeting was held on [http://lists.w3.org/Archives/Public/public-cwm-talk/2004OctDec/0020|2004-12-13].

18:13:06 <dc_swig> Added comment B2.

18:13:16 <sbp> B:Attending this meeting are:

18:13:16 <dc_swig> Added comment B3.

18:13:42 <sbp> B:[http://inamidst.com/sbp/|Sean B. Palmer], England, United Kingdom of Great Britain and Northern Ireland

18:13:42 <dc_swig> Added comment B4.

18:13:50 * dajobe lol

18:13:58 <sbp> UKoGBaNI for short

18:14:55 <dajobe> B:[http://purl.org/net/dajobe/|Dave Beckett]

18:14:55 <dc_swig> Added comment B5.

18:15:08 <yosi_> B:Yosi Scharf

18:15:08 <dc_swig> Added comment B6.

18:15:20 <sbp> hey Yosi

18:15:25 <yosi_> hello

18:15:25 <crschmidt> B:[http://crschmidt.net/|Christopher Schmidt]

18:15:26 <dc_swig> Added comment B7.

18:15:31 * dajobe discovers A:

18:15:39 <danbri> B:[http://danbri.org/|DanBri], Bristol, Europe (W3C).

18:15:39 <dc_swig> Added comment B8.

18:15:45 <timbl> B:[http://www.w3.org/People/Berners-Lee/|Tim Berners-Lee] Massachusetts USA

18:15:45 <dc_swig> Added comment B9.

18:16:05 <sbp> Bristol's in Europe? cool. hi danbri!

18:16:15 <danbri> hey sean

18:17:27 <sbp>http://www.w3.org/DesignIssues/N3Alternatives#Sets

18:17:27 <dc_swig> C: http://www.w3.org/DesignIssues/N3Alternatives#Sets from sbp

18:17:51 <sbp> C:|Set Syntax In Notation3 (Agendum One)

18:17:51 <dc_swig> Titled item C.

18:18:19 <sbp> BLURB:Is @keywords Viable in Notation3? (Agendum Two)

18:18:19 <dc_swig> D: Is @keywords Viable in Notation3? (Agendum Two) from sbp

18:18:59 <sbp> BLURB:Issues with n3.n3, Especially the QName Production Thereof (Agendum Three)

18:18:59 <dc_swig> E: Issues with n3.n3, Especially the QName Production Thereof (Agendum Three) from sbp

18:19:18 <sbp> we'll add more if we actually complete those three

18:21:06 <sbp> E:See also the [http://swig.xmlhack.com/2005/01/26/2005-01-26.html#1106709916.365794|Turtle Test Cases] chumpage, which we'll throw into this agendum too.

18:21:06 <dc_swig> Added comment E1.

18:22:11 <yosi_> D:See [http://lists.w3.org/Archives/Public/public-cwm-talk/2005JanMar/0005.html|the announcement of n3pp] and my attempts to get it to fail

18:22:12 <dc_swig> Added comment D1.

18:22:19 <sbp> heh

18:22:39 <timbl> C:Two issues -- is everyone ok with the {$ x,y,z $} syntax, and what to use as a set constructor instead of owl:oneOf.

18:22:40 <dc_swig> Added comment C1.

18:24:13 <sbp> the only thing I've come up with that's not in the N3Alt page is the @Set{...} idea, derived from sets.Set(...) in Python, but I don't think it's as neat as {$ ... $}

18:24:20 <timbl> Does "we'll add more if we actually complete those three" mean we are done making the agenda and we are started?

18:24:23 <yosi_> if we are using {$ x, y, z $} syntax, should {$ x, y, z, $} be allowed?

18:24:48 <yosi_> note the trailing comma

18:24:52 <dajobe> the examples in #Sets vary with commas and no commas - any diff?

18:25:38 <timbl> I actually added @Set at the bottom of teh table, though the right columnseems to have got mangled.

18:25:52 <sbp> yep, starting on C

18:25:59 <timbl> no diff

18:26:20 <sbp> ah, I see it. hadn't looked since you first showed us it

18:26:26 <timbl> The highlighted whiter row is the current thinking.

18:26:58 <sbp> Yosi: allowing a trailing comma would accord better with the optional "." inside formulae I suppose

18:27:03 <yosi_> it's tough to see that highlight

18:27:10 <dajobe> what highlight?

18:27:16 <timbl> I suppose a related question in whether if we add sets we should start giving version numbers to n3.

18:27:19 <sbp> but I don't really like the redundancy. e.g. I really dislike Python's (singleMemberTuple,) syntax

18:27:50 <timbl> the background of the row is white instead of pale green. This won't show up in lynx.

18:28:33 <sbp> version numbers: I suppose that's part of the question of Notation3's longer term goal

18:29:23 <sbp> rather, whether the process is going to change any. the sporadic updates propogated from notation3.py outwards approach has worked surprisingly well in practice

18:29:42 <timbl> Maybe I should just freeze an n3.n3 as n3-20050101.n3 in case people need to refer to it.

18:29:54 <timbl> and then add sets to n3.n3

18:30:02 <yosi_> so an old version of cwm would choke on the @version line, instead of some strange (future) {%%& line?

18:30:44 <timbl> yes, well, exactly.

18:30:51 <yosi_> timbl, isn't that why things are in dated directories to being with?

18:31:18 <timbl> No, things are in dated directories so we never have to clean up our web space.

18:31:25 <sbp> bit of a burden though. you'd expect CWM to still recognize @version-less Notation3, so would you have it barf on N3 which includes sets but not an @version?

18:32:00 <timbl> I think yosi is suggesting it is too much of a burden and you are agreeing.

18:32:10 <dajobe> @from future import sets ?

18:32:18 <timbl> :-)

18:32:19 <sbp> heh

18:32:42 <dajobe> that language (python) seems to have managed the evolution problem ok

18:32:49 * yosi_ thinks people are thinking in Python too much.

18:33:05 <timbl> yes. the occasional use of from sys import hexversion and things

18:33:09 <dajobe> well it precludes the need for version umbers

18:33:32 <sbp> the fact that set moved from the sets module to being built-in so quickly has actually been rather a problem for me

18:33:45 <dajobe> feature based declarations so that older systems can recognise to warn or stop

18:34:02 <sbp> it's inconvenient to have to keep doing version-detection just to support an incremental version that for some reason everybody upgraded to and then went no further

18:34:03 <timbl> Yes, and so many little files are in a subset of n3 which works for anyone, and are so small that adding "@version" would significantly increase their size.

18:34:29 <timbl> I think we hve a consensus for continuingto just eveolve as before.

18:34:39 <danbri> works for me

18:35:17 <sbp> agreed

18:35:33 <timbl> FOr the syntax question about comma, I am inclined not to put in trailing commas.

18:35:35 <danbri> is anyone tried expressing versioning w/ metadata triples about 'the current document'

18:36:03 <timbl> We don't allow trailing commas in statements or in @keywords.

18:36:18 <timbl> And allowing redundancy threatens detection of errors.

18:36:21 <yosi_> yet we allow trailing semicolons

18:36:26 <timbl> Yes.

18:36:30 <sbp> and periods in formulae

18:36:37 <timbl> Yes.

18:37:07 <timbl> I note also Yosi suggetsed making the trailking period in a document optional.

18:37:26 <sbp> yeah, I'd very much agree with that

18:37:35 * yosi_ admits to having made that suggestion

18:37:41 <sbp> n3s implemented that

18:38:04 <timbl> to make the mimimal document even smaller.

18:38:31 <yosi_> mostly less annoying. My usual use case of cwm is ``echo ':a :b :c

18:38:34 <yosi_> ' | cwm

18:38:39 <yosi_> ''

18:38:46 <sbp> hmm. so the smallest non-zero case will be ":::"?

18:38:48 <yosi_> oops, try again

18:39:05 <timbl> (we need cwm -e ';a :b :c.')

18:39:23 <yosi_> file the rfe

18:39:41 <yosi_> and I'll ignore it as the semester starts on Tuesday

18:39:50 <danbri> :)

18:39:52 <sbp> just use cwm <<< ":p :q :r ."

18:39:52 <timbl> phenny, file the alst three lines as an RFE for cwm, pleassde

18:40:04 * dajobe sees ": : : . " is a turtle test

18:40:09 <sbp> $ cwm <<< ": : : ."

18:40:12 <sbp> @prefix : <#> .

18:40:12 <sbp>

18:40:12 <sbp> : : : .

18:40:52 <timbl> By URI rules, <#> is actually the same identifier as <>, I think.

18:40:58 <sbp> incidentally, xena and datum (two previous bots) had email capabilities for certain users, so it would've been possible to file the bugs from IRC

18:41:09 <timbl> A voide fragment identifier and an omiited one are the same.

18:41:19 <dajobe> hmm

18:41:35 <timbl> So : is the same as <> by default.

18:41:43 <dajobe> ah, right

18:41:46 <dajobe> I thought you meant <#>

18:41:49 <timbl> and rdf: is the RDF namespace document.

18:41:58 * yosi_ looks at the time

18:42:10 <timbl> : is by default <#> whcih then by that URI rule would be <>.

18:42:26 <timbl> Maybe we shouldn't have gone there.

18:42:27 <timbl> Sets

18:42:29 <timbl> sets

18:42:31 <sbp> interesting. people have proposed before that <URI#> should be the equivalent of <URI>!log:semantics

18:43:01 <timbl> I'd like to ask the chair to call the question on the set syntax so that if no one has a problem with it we could move on.

18:43:04 <sbp> I always thought it was up to the media type specification of the representation of URI, yadda yadda

18:43:18 <sbp> community chairing! anyone can ask! :-)

18:43:52 <timbl> I'd like to call the question on the set syntax so that if no one has a problem with it we could move on.

18:43:56 <yosi_> did we decide to allow the trailing comma?

18:43:58 <timbl> I call the question on the set syntax so that if no one has a problem with it we could move on.

18:44:03 <sbp> C:If you're really unhappy with {$ p, q, r $} (no optional comma), please sign below.

18:44:03 <dc_swig> Added comment C2.

18:44:34 <timbl> No trailing comma

18:44:41 <sbp> C:If you're really unhappy with {$ p, q, r $} (no optional trailing comma), please sign below.

18:44:41 <dc_swig> Added comment C3.

18:44:46 <sbp> C2:""

18:44:47 <dc_swig> Deleted comment C2.

18:44:47 <timbl> I am actively happy.

18:45:13 <sbp> we seem packed and filled to the brim and rafters with happiness

18:45:20 <sbp> let's move on. owl:oneOf for sets?

18:45:32 <timbl> I think we can move on to the question of the set constructor.

18:45:35 <timbl> snap

18:45:38 <yosi_> it looks then like I'll have to remove support for the optional comma from cwm

18:45:38 <sbp> :-)

18:46:22 <sbp> [ a :Action; :who [ foaf:nick "yosi_" ]; dc:description "Remove support for the optional comma from cwm in set syntax" ] .

18:46:27 <timbl> well, notation3.py is not a validating parser ... it has only historically been tested on positive parser tetss, not neg tests.

18:46:52 <sbp> I think it'd be good to discourage it though

18:47:05 <sbp> whilst notation3.py remains central to what people think of as N3

18:47:22 * yosi_ repeats his observation that anything allowed will be observed, and find its way into the tests

18:47:22 <timbl> @prefix flow: <http://www.w3.org/2005/01/wf/flow#>.

18:47:47 <sbp> ooh, nice

18:47:47 <timbl> yes, I think the change to use negative tests is important and timely.

18:48:06 <sbp> either you wrote that quickly or it was a nice case of independent invention

18:48:22 <timbl> @prefix foo: <http://www.w3.org/2005/01/wf/test/foo#>.

18:48:44 <timbl> independent invention :)

18:50:24 <sbp> set constructor proposals: owl:oneOf, n3:setOf, n3:list, and some others from DanC that I forget

18:50:28 <timbl> <> is flow:source of [ a flow:Creation; issue <#i1>; dc:description "Remove support for the optional comma from cwm in set syntax" ]

18:51:04 <yosi_> I propose list:isisisowlOneOfOfOfOf

18:51:10 <sbp> heheh

18:51:16 <timbl> we need something which is a role noun, not too long, and makes sense.

18:51:18 <dajobe> I don't understand the question

18:51:26 <DanC> my telcon went long. :-(

18:51:30 <sbp> oh, I had an idea last night as to the structure of the thing, given our discussion about using graph isomorphism to compare sets

18:51:43 <dajobe> what does {$ p, q, r $} do then?

18:51:50 * DanC is frazzled. needs lunch etc.

18:51:59 <sbp> dajobe: it's syntactic sugar for the thing that we're deciding now

18:52:10 <timbl> It at the moments creates a bnode and says that the bnode is owl:oneOf the list (p q r).

18:52:10 <dajobe> oh

18:52:20 <sbp> timbl's initial thought was {$ p, q, r $} -> [ owl:oneOf (p q r) ]

18:52:31 <timbl> Just as (p q) creates a bnode and says it has rdf:first etc etc

18:52:31 <dajobe> <->

18:52:38 <timbl> yes

18:52:50 <sbp> so anyway, since the only benefit that using a list gives you is completeness, I thought you could add a length statement: [ a :Set; :member p, q, r; :length 3 ]

18:52:53 <dajobe> why's it oneOf?

18:53:08 <sbp> dajobe: to show that it's unordered

18:53:16 <sbp> and that duplicates should be ignored, I suppose

18:53:23 <timbl> Butthen we found that the OWL folks in their wisdom had decided that owl:oneOf is NOT an oel:InverseFunctionalProperty.

18:53:37 <timbl> ignoreed ot an error maybe

18:53:47 <dajobe> I don't get that oneof. a set isn't a one-of-things. it allows you to do that if you want. I might want twoOf

18:54:06 <sbp> another benefit of the [ a :Set; :member p, q, r; :length 3 ] proposal is that there can't be duplicates. then again, you can't IFPize it

18:54:12 <timbl> oneOf meant "the class of things which are such that they are one of this list"

18:54:22 <timbl> but classes ar enot sets.

18:54:33 <timbl> classes are not the same as sets.

18:54:44 <timbl> You can have two different classes with the same members.

18:54:54 <timbl> So we are using something else to build specifically a set.

18:54:59 * dajobe feels brain melting

18:55:05 <sbp> so :Set rdfs:subClassOf (rdfs|owl):Class

18:55:13 * timbl shovels snow at dajobe

18:55:22 <sbp> and hence :newSetConstructorProperty rdfs:subPropertyOf owl:oneOf

18:55:31 <timbl> yes.

18:56:02 <wkearney_lap> wkearney_lap is now known as wkearne99

18:56:09 <wkearne99> wkearne99 is now known as wkearney99

18:56:23 <timbl> we define a set by giving a list because a) it has to be closed and b) we do so much stuff with lists anyway.

18:56:46 <sbp> but again, that brings up the problem that you can't compare sets by graph isomorphism

18:56:58 <timbl> The advantage of having a set is that the machine then *knows* it is the same as any sts with the same elements in a different order, which is important.

18:57:13 <timbl> No, yo can't compare sets as reified using lists using graph isomorpohsim.

18:57:51 <sbp> which means custom code for comparing rei: outputs

18:57:55 <timbl> And when you canonicalize a graph with a set in it, you might want to quite separately canonicalize the sets.

18:58:12 <danbri> if i know that a, b and c are in a set, do i know that a and b etc are distinct different individuals?

18:58:18 <dajobe> the [ a :Set ... ] seems fine. not sure about the :length, it sounds like an rdf:_<n> area again. [ a :Set; :members (a b c) ]

18:58:18 * danbri would assume so, but not sure

18:58:35 <sbp> at least it's not too complicated. just order by type and URI, and... oh, it's GI complete still for the bNode ordering

18:58:39 * dajobe hmm, maybe that won't work

18:58:55 <timbl> In fact the cusom code (I was thinking the other day after discussing it with Yosi) can be quite simple in a graph -- you replace the set constrcution with a set of x set:$$member y statements for that purpose.

18:59:24 <sbp> well, the whole point about using ":members p, q, r" was just so that you can get around the fact that you can't compare using GI. but then the only way to express completeness is with the length

18:59:30 <timbl> bnode ordering: yes.

18:59:34 <sbp> so yeah, it is a bit Seqish

18:59:46 <timbl> So you convert it into a graph with membership arcs, and c'n that.

18:59:47 <sbp> well, more like rdf:Bag I suppose

18:59:48 <dajobe> GI=graph isomorphism

18:59:56 <sbp> (or rdf:Alt, but I never understood that)

19:00:03 * timbl really dislikes rdf_1 etc

19:00:23 * timbl would have gojne for rdf_1_of_34 0.5 ;-)

19:00:40 <sbp> heh

19:01:19 <sbp> [ a rdf:Seq; :member [ :num 1; :of 34; rdf:value 0.5 ] ]

19:01:37 <dajobe> we went through all that in RDF Core re collections

19:01:49 <sbp> must've been fun

19:01:52 <dajobe> and went with the daml solution

19:01:59 <timbl> <#a2> a flow:Task; s:label "Put set canon'n in cant.py"; flow:origin <>.

19:02:03 <dajobe> has noboody yet done sets in this way?

19:02:53 <sbp> what's that semantic Google thing again?

19:02:58 <dajobe> the :member thing appeals as it'll make the isMemberOf(set, item) easy

19:03:00 <sbp> shoogle?

19:03:03 <jsled> swoogle

19:03:04 <timbl> [ a foo:Assignment; foo:assignee [ contact:email <timbl@w3.org>]; task <#a2>; source <>.

19:03:39 <sbp> ah, thanks. http://swoogle.umbc.edu/

19:03:51 <sbp> (also via http://ilrt.org/discovery/chatlogs/search?q=sbp.*slashdot&Go=Go&channel=swig&count=10&case=yes)

19:03:56 <jsled> or swoogle.org

19:04:32 <sbp> http://swoogle.umbc.edu/modules.php?start=1&total=-1&name=Swoogle_Search&file=searchDB&searchString=Set&searchType=1&submitted=Swoogle+Search

19:04:38 <sbp> not quite as helpful as I'd hoped

19:04:43 <timbl> btw the inverse of the set constructor is list:members -- easy to name.

19:06:10 <yosi_> timbl, so what is wrong with just [is list:members of (1 2 3)]?

19:06:17 <dajobe> ok, enough (sw|go)ogling

19:06:22 <dajobe> can we just pick one for now?

19:06:49 <dajobe> that's the reverse property thing?

19:07:04 <timbl> (isn't it in turtle?)

19:07:09 <dajobe> no way!

19:07:45 <timbl> It is put in to encourage people to just define one way, and not keep deving inverse pairs.

19:07:51 <timbl> (why no way?)

19:07:51 <danbri> is list:members and ordinary property? could it be swapped out for another equiv one?

19:08:03 <timbl> yes

19:08:15 <danbri> I'm thinking re i18n considerations... the fewer english lang keywords, the easier it would be to write n3 in all-japanese, etc...

19:08:23 <sbp> really? I thought we were looking specifically to have an IFP (so an FP here)

19:08:24 <danbri> ...although there is of course benefit to sharing well known properties

19:08:32 <timbl> But whatever we pick as a the normalset constrcutior, we will program cwm to absorb on input and actually build sets.

19:08:56 <dajobe> the {$ $} syntax doesn't use keywords

19:08:58 <sbp> oh sorry, misunderstood the question

19:09:41 <sbp> {$ $} is swish in the same way that = is

19:09:43 <crschmidt> ^addturtle <#a2> a flow:Task; rdfs:label "Put set canon'n in cant.py"; flow:origin <http://www.ilrt.bris.ac.uk/discovery/chatlogs/swig/2005-01-26.html#T19-01-59>.

19:09:45 <julie> Model size increased by 3 to 2120092 via turtle statements.

19:10:03 <sbp> so when = went from being daml:equivalentTo to owl:sameAs, people using it didn't notice

19:10:31 <dajobe> but you will do things like talk about [ a :Set ]

19:10:45 <dajobe> or is that {$ $} ?

19:10:51 <sbp> yep

19:11:02 <sbp> ^q select ?label where (?task rdf:type flow:Task) (?task rdfs:label ?label)

19:11:02 <julie> Put set canon'n in cant.py

19:11:14 <timbl> People will notice only if they have exchanged sets expressed in the long form.

19:11:40 <yosi_> which unfortunately, is right now the only way cwm knows of outputting them

19:11:43 <sbp> e.g. if serializing to RDF/XML and swapping

19:11:45 <phenny> sbp: 19:11Z <Talliesin> tell sbp to bundle everything supybot does into your functionality. The later to split it out into several bots again and so the cycle of reincarnation will continue.

19:11:46 <dajobe> what about membership; you'll need to use the property then, unless you invent some $-like abbreviation

19:12:13 <sbp> phenny: tell Talliesin heh, heh. phenny != Mozilla!

19:12:15 <phenny> sbp: I'll pass that on for you when talliesin is around.

19:12:17 <timbl> ^addturtle [ a foo:Assignment; foo:assignee [ contact:email <timbl@w3.org>];  task <#a2>; source <>.

19:12:18 <julie> Model size increased by 1 to 2120093 via turtle statements.

19:12:18 <julie> Adding Turtle failed ("syntax error at '\xa0'").

19:12:41 <sbp> .repres [19:12] <timbl> ^addturtle [ a foo:Assignment; foo:assignee [ contact:email <timbl@w3.org>];  task <#a2>; source <>.

19:12:42 <timbl> !

19:12:44 <phenny> '[19:12] <timbl> ^addturtle [ a foo:Assignment; foo:assignee [ contact:email <timbl@w3.org>];\xc2\xa0 task <#a2>; source <>.'

19:12:48 <Talliesin> phenny, tell sbp, but maybe phenny == google!

19:12:50 <phenny> Talliesin: I'll pass that on for you when sbp is around.

19:12:53 <phenny> Talliesin: 19:12Z <sbp> tell Talliesin heh, heh. phenny != Mozilla!

19:12:54 <dajobe> sigh

19:13:16 <yosi_> can the actual humans go back to talking?

19:13:22 <sbp> good idea

19:13:30 <timbl> ^addturtle [ a foo:Assignment; foo:assignee [ contact:email <timbl@w3.org>];task <#a2>;source <>.

19:13:30 <julie> Model size increased by 1 to 2120094 via turtle statements.

19:13:30 <julie> Adding Turtle failed ('syntax error').

19:13:42 <sbp> need another ]

19:13:59 <timbl> ^addturtle [ a foo:Assignment; foo:assignee [ contact:email <timbl@w3.org>];task <#a2>;source <>].

19:13:59 <julie> Model size increased by 1 to 2120095 via turtle statements.

19:14:00 <julie> Adding Turtle failed ('syntax error').

19:14:14 <crschmidt> ^part

19:14:22 <crschmidt> she can come back after the meeting.

19:14:35 <timbl> :-o

19:14:35 <crschmidt> I'll add any other n3 in a seperate channel

19:15:06 <timbl> very distracting.

19:15:10 <Talliesin> timbl, to #julie posthaste!

19:15:17 <yosi_> right now cwm's list builtins (list:member and list:in) work on sets

19:15:37 <sbp> list:in is the currently implemented set constructor?

19:15:44 <yosi_> no

19:15:57 <sbp> okay, I getcha

19:16:20 <yosi_> owl:oneOf is the current set constructor

19:16:25 <timbl> How about set:asList or set:list ?

19:16:56 <sbp> set:list is probably the best so far

19:17:09 <timbl> [ set:asList ( 1 2 3)] == {$ 1,2,3 $}

19:17:18 <timbl> [ set:list ( 1 2 3)] == {$ 1,2,3 $}

19:17:34 <sbp> is :asList of doesn't work as well as is :list of

19:17:55 <timbl> yes, ok, let's see if we have consensus on set:list as the constructor?

19:18:22 <timbl> +1

19:18:26 <sbp> C:Resolved: {$ p, q, r $} is set syntax in N3.

19:18:26 <dc_swig> Added comment C3.

19:18:33 <sbp> yep, +1 on set:list

19:18:37 <dajobe> and no type?

19:18:44 <timbl> type?

19:18:50 <sbp> doesn't really need it

19:19:04 <timbl> It follows from the domain of set:list

19:19:06 <dajobe> doesn't owl-mutter need typed nodes?

19:19:54 <danbri> <danbri> if i know that a, b and c are in a set, do i know that a and b etc are distinct different individuals?

19:20:01 <timbl> Well, you don't reify a list by saying that BTW each of the lists in teh rdf:rest chain is a list, i hope

19:20:03 <danbri> did i miss an answer to that? (sorry to pester)

19:20:05 <sbp> use of rdf:List in OWL is tantamount to heresy anyway, I think

19:20:29 <sbp> you can't, for example, say { set:list rdfs:range rdf:List } in OWL DL

19:20:31 <DanC> only in OWL DL

19:20:37 <timbl> danbri, good question.

19:20:41 <sbp> well anything goes in Full anyway

19:20:43 * danbri beams

19:20:47 <danbri> what's the answer? ;)

19:20:54 <DanC> answer is no

19:21:18 <danbri> is that consistent w/ general math usage of word 'set'?

19:21:35 <DanC> yes.

19:21:35 <sbp> well note that the set is never actual enumerated

19:21:44 <sbp> s/actual/actually/

19:21:47 <danbri> ok

19:21:48 <DanC> there's no axiom ala: if a \in S and b \in S then a <> b.

19:21:50 <sbp> that's part of the beauty of it

19:22:31 <timbl> If I know that S set:list ( a b c ) do I know how many meners S has?

19:22:44 <DanC> it's possible to say that the range of set:list is an AllDistinctList, meanwhile.

19:22:50 <timbl> Is that a statemet that a b and c are distinct?

19:23:17 <timbl> That is a very appealing notion in fact.

19:23:23 <sbp> what about { p q r, s }? how many statements does that have in it? even if r and s are declared to be owl:sameAs, surely there are still two statements in there?

19:23:41 * danbri forgets quite what owl offers, w.r.t. all-distinct

19:23:55 <DanC> yes, it's appealing... but I doubt you will have established the distinctness in all the cases where you want to relate a set to a list of its members.

19:24:01 <yosi_> but {p q r, r } is one statement

19:24:08 <timbl> Statements are quoted. Even if r = s a statement about r and one about s are diff statements.

19:24:14 <timbl> but sets are not quoted.

19:24:52 <sbp> danbri: owl:AllDifferent is the pairwise disjunctive construct

19:24:59 <danbri> thanks, sbp

19:25:00 <timbl> Well, maybe it would be useful because you use it at times when you assume that the things are disjoint and you in fact want to be told if it turns out they are not.

19:25:26 <timbl> And maybe it would be useful because you wanted to say that they were, but you didn't have the easy way of saying it so you didn't bother.

19:25:37 <sbp> agreed

19:26:22 <DanC> yes, it would be useful... but if somebody writes {$ <a> <b> $} are you going to make sure cwm doesn't conclude that set has list (<a> <b>) until it's concluded that <a> owl:differentFrom <b> ?

19:26:47 <sbp> { [ set:list ?list ] } => { [ a owl:AllDifferent; owl:distinctMembers ?list ] }

19:26:51 <timbl> if someone writes that, then I take then as having asserted that a and b are different.

19:27:01 <DanC> hmm

19:27:34 * yosi_ looks at http://www.w3.org/2000/10/swap/test/sets/sets.n3 , a file timbl wrote

19:27:42 <DanC> I suspect that will be problematic, but I don't have any hard evidence.

19:27:57 <yosi_> it has {$ {$$}, {$$} $} in it

19:28:26 <timbl> that is a bug.

19:28:32 <yosi_> is that a statement that the empty set does not equal itself?

19:28:50 <timbl> yes, that is my current theory.

19:28:55 <yosi_> right now, cwm happily treats that as a set containing one member, the empty set

19:29:17 <timbl> This is a design choice.

19:29:29 <sbp> have a URI for the empty set, a la rdf:nil, perhaps?

19:29:29 <timbl> i like the implication/requirement of uniqueness.

19:29:32 <sbp> set:empty

19:30:09 <timbl> yes, makes sense

19:30:10 <DanC> I suppose the "if it jams, force it; if it breaks, it needed replacing anyway" maxim applies. i.e. might as well try out the appealing notion that {$ <x> <y> $} means <x> owl:differentFrom <y> and see how far we get.

19:30:23 <timbl> I wonder about set union.

19:30:30 <sbp> ah!

19:30:38 <sbp> this means you can add | and + etc. as operators

19:30:48 <sbp> er, & probably better than |

19:31:03 <timbl> if cwm is given a union, how does it know taht teh members of the two sets are distinct?

19:31:26 <timbl> Unless they are all chosen from a universal set whcih it knows. (like integers)

19:31:32 <timbl> (or any set)

19:31:45 <sbp> unsolvable problem, I suppose

19:31:53 * sbp scraps |

19:32:22 <sbp> same with intersection. you still can't tell which members are in both

19:32:23 <timbl> To go down the other path, and not need uniqueness, would mean that you would neverknow hiow many members set had, union would be easy, but intersection would not be possible.

19:32:54 <timbl> yes

19:33:06 <danbri> if both are useful, why not allow both? too bloaty?

19:34:28 <timbl> Two syntaxes?

19:35:04 <danbri> i guess, yeah. unless it can be done w/ a single notation and different properties within that notation.

19:35:20 <sbp> am I right in thinking the following? [[[

19:35:22 <sbp> set members are pairwise disjoint:

19:35:22 * sets can be compared

19:35:22 * union impossible

19:35:25 * intersection impossible

19:35:26 <sbp> set members are not necessarily pairwise disjoint:

19:35:26 * sets can't be compared

19:35:29 * union possible

19:35:29 * intersection impossible

19:35:30 <sbp> ]]]

19:36:31 <sbp> if that's the case, then Set and DisjointSet might be prudent for people wanting to use union on the one hand and comparison on the other

19:36:52 <sbp> otherwise, if we're to pick one, I would guess that comparsion is handier than union

19:37:58 <danbri> DisjointSet would be not so useful for a number of scenarios, eg. representing sets of people using data gathered from multiple sources...

19:38:19 <danbri> plenty of scenarios where we realise later that the two John Smiths were one-and-the-same person...

19:39:43 <timbl> Comparison: well, you get in the first case the situation that 2 sets are the same but you don't know because you don't yet know two members are the same, but that's normal.

19:40:41 <sbp> but then you couldn't use a DisjointSet for that purpose, if you're not certain about that statement

19:41:49 <sbp> unless, as you say, you're wanting the application to report such inconsistencies later on

19:42:37 <sbp> so if social security are storing a big set of people in RDF and then someone POSTs them a document stating that he's in there twice, social security's version of CWM can say "aha!"

19:43:15 <timbl> I think we have answered the question of what to call set:list but we haven't answered this other question of whether sets are disjoint, or we should hav 2 types.

19:43:27 <sbp> yeah

19:43:43 <sbp> C:Resolved: that set:list is to be the set constructor property.

19:43:44 <dc_swig> Added comment C4.

19:43:49 <timbl> So we have closed one issue and raised another.

19:44:20 <sbp> C:New subsequent issue: are set members to be considered pairwise disjoint or not; or would it be best to have a syntax for each?

19:44:20 <dc_swig> Added comment C5.

19:44:49 <sbp> possibly closed the constructor issue. if we're to have two syntaxes, I presume we'll need two constructors

19:45:02 <sbp> set:list and set:disjointList make sense

19:45:36 <timbl> <#i3> a swig:Issue; dc:description "are set members to be considered pairwise disjoint or not; or would it be best to have a syntax for each?"; source <>.

19:45:41 <sbp> how about asking the logic lists about this?

19:45:49 <sbp> www-rdf-logic will probably have something to say about it

19:46:08 <timbl> probably.

19:46:15 <sbp> though an RDF Sets WG lurks on the horizon...

19:46:32 <timbl> Probably wide to raise the whole issue of a set concept for RDF to a wider audience, anyway.

19:46:41 <sbp> indeed

19:46:51 <wkearney99> wkearney99 is now known as wkearney_away

19:46:54 * timbl (Or should that be 2 Wgs - one for disjoint sets? ;-))

19:47:01 <sbp> heh, heh

19:47:17 <dajobe> no, people could join both

19:47:52 <crschmidt> is there a contact for #i3?

19:47:54 <sbp> but presumably we'd know if they joined one twice

19:48:03 <dajobe> what's next?

19:48:15 <sbp> resolution of this issue

19:48:20 <timbl> And if it turnmed out that sets were disjoin stes, then it would follow that the ytwo workjing groups were identical.

19:48:26 <sbp> are we agreed to defer it and ask mailing lists about it?

19:48:45 <timbl> I think we probably have to think about the disjoint sets issue and talk about it next time.

19:48:47 <dajobe> it's been long enough discussed for now, imho

19:48:58 <yosi_> I agree, it's time to move on

19:49:10 <sbp> C:Resolved: defer this problem to the mailing lists (e.g. www-rdf-logic).

19:49:10 <dc_swig> Added comment C6.

19:49:38 <sbp> you guys get bored way too easily

19:49:44 <sbp> okay, Agendum Two is @keywords

19:49:55 <dajobe> (I said 90mins in topic, that's -15 away)

19:50:03 <yosi_> and the preprocessor

19:50:16 <sbp> the infamous preprocessor!

19:50:41 <sbp> so the issue here is that @keywords is a heavy burden on Notation3 tokenizers, and stop the RDF BNF for N3 from being as generic as it should be

19:51:08 <sbp> timbl suggested that @keywords may be implementable as a pre-processing step, which might enable other pre-processing constructs in the future

19:51:25 <yosi_> and to build an n3 preprocessor requires it have a great deal of knowledge of the specifics of the n3 language

19:51:44 <dajobe> this sounded just like a cfront (C++ for C) area

19:51:45 <sbp> so I wrote n3pp (Yosi linked to the announcement in http://swig.xmlhack.com/2005/01/26/2005-01-26.html#1106763497.998753), and then Yosi subsequently filed several thousand bugs for it

19:52:06 <sbp> and yes, that's basically where we're at: it seems to be *possible*, but the issue is that it's very difficult to derive n3pp.py from n3.n3

19:52:20 <yosi_> many of those bugs are good borderline n3 test cases

19:52:40 <sbp> for example, it currently uses a negative lookbehind group on the @langcode token regexp, which isn't present in n3.n3

19:52:45 <sbp> though it could be added

19:53:31 <yosi_> and it has the list of valid keywords hard-coded in, though that could change (I think) to checking if the keyword fits [a-zA-Z]

19:53:35 <dajobe> where's the ref to all the bugs?

19:53:42 <sbp> yeah

19:53:53 <sbp> the bugs are all in http://lists.w3.org/Archives/Public/public-cwm-talk/2005JanMar/

19:53:57 <yosi_> look at that thread in Public-cwm-talk

19:54:10 <timbl> what uses negative lookbehind? the preprocessor or the parser?

19:54:25 <sbp> some were sent privately too; I think there's five overall

19:54:30 <sbp> the preprocessor uses it

19:54:49 <sbp> [[[

19:54:50 <sbp> (?<=")@[a-z]+(?:-[a-z0-9]+) | # n3:langcode

19:54:54 <sbp> ]]] - http://inamidst.com/n3p/n3pp.py

19:55:09 <sbp> that could be changed such that it's moved out into the rest of the code, I think

19:55:21 <sbp> either way, you're special-casing it

19:55:28 <timbl> (Use $ instead of @?)

19:55:47 <sbp> for keywords, rather than langcode presumably?

19:55:54 <timbl> I wish I had asked eth NTripels folks to mak ethe langcode @@ just as i asked them to make the datatype ^^ for this reason

19:55:55 <sbp> otherwise, N-Triples stops being a subset of N3

19:56:01 <yosi_> we just took $ for use in sets

19:56:08 <timbl> ooops

19:56:13 <sbp> % and & are still left

19:56:28 <yosi_> as is |

19:56:45 <dajobe> I don't recall the history of @ in N-Triples lang codes; it just fell out sometime.

19:56:48 <sbp> ~, ?, *, ^, !...

19:56:55 <dajobe> you added @prefix later IIRC :)

19:57:05 <sbp> I think @prefix is very old

19:57:15 <dajobe> er, yeah I'm thinking of somethign else sorry

19:57:22 <dajobe> keywords

19:57:24 <timbl> Yes, @prefix predates NTriples.

19:59:34 <timbl> So maybe we should use the lookbehind in th pp, which is a hack anyway, and then try to make n3 as clean as possible (and for n3-like langauges, strogly advise against using @ again)

20:00:19 <timbl> To make the pp cleaner, we could change @keywords to @@, to remove the english from it.

20:00:35 <sbp> well, I think there are four options: a) battle on as before, b) pre-process using a lookbehind for the @ case, c) change @ to % or whatever, d) remove @keywords entirely

20:00:52 <sbp> five...

20:01:52 <sbp> pre-processing seems viable enough to me; but I'd prefer keeping @keywords rather than @@ I think, especially since @@ means "issue!" to me

20:02:04 <sbp> second preference is for keywords to be dropped altogether

20:02:17 <dajobe> me: 1) drop 2) @@

20:02:56 <dajobe> or do I mean @@keywords

20:03:03 <timbl> ?

20:03:23 <sbp> you don't mean @@keywords, no :-)

20:03:34 <timbl> "me: 1) drop 2) @@" ?

20:03:36 <sbp> timbl, yosi_, DanC? preferences?

20:03:40 <yosi_> 1) Preprocess 2)Status quo

20:03:52 <sbp> ah. dajobe would prefer to drop keywords entirely, or secondly to use @@

20:03:56 <yosi_> I'd prefer not breaking many existing (large) n3 documents, such as n3.n3

20:04:05 <dajobe> if it was turtle, I'd just ignore lines starting with @@

20:04:15 <sbp> yeah. it seems the most conservative line

20:04:42 <sbp> dajobe: declarations are constrained to line-beginnings in Turtle?

20:04:50 <dajobe> yes

20:05:04 <timbl> I think languagewise (a) and (b) are the same; they differ in implementation strategy, no?

20:05:11 <sbp> ah, I suppose since you don't have formulae that's not too messy

20:05:23 * dajobe has second thoughts

20:05:29 * DanC isn't tuned in, sorry

20:05:37 <dajobe> I gotta take a break guys

20:05:40 <sbp> no problem DanC

20:05:48 <sbp> okay dajobe

20:05:56 <timbl> maybe we have run out of time

20:06:04 <sbp> timbl: yeah, a) and b) are the same

20:06:34 <sbp> we should probably schedule the next one if DanC/dajobe have at least five minutes to donate us

20:06:42 * danbri gotta go

20:06:51 <danbri> sorry for the new Issue!

20:06:58 <sbp> cheers danbri

20:06:59 <timbl> :)

20:07:05 <timbl> Thanks for coming.

20:07:17 <timbl> Time of next meeting?

20:07:31 <sbp> one month, same day, same time?

20:07:33 <timbl> Agneda for next meeting: Reveiw action Items, Set time of next meeting after that.

20:07:42 * timbl checks

20:07:57 <sbp> 23rd of February

20:08:02 <sbp> 18:00Z

20:08:05 <dajobe> ok for me

20:08:16 <timbl> No, it is school holiday in Mass.

20:08:31 <timbl> 9 or 16th feb?

20:08:32 <sbp> 16th?

20:08:40 <timbl> Ok for me

20:09:00 <dajobe> ok

20:09:02 <sbp> okay. 2005-02-16T18:00Z tentatively

20:09:03 <danbri> for next time, agenda+ SWIG F2F at W3C Tech Plenary

20:09:10 * danbri needs to get moving on that...

20:09:16 <timbl> 2005-02-16T18:00Z - DanC?

20:09:33 <DanC> umm...

20:10:11 <DanC> that's noon Chicago time...

20:10:26 <DanC> I'm available.

20:10:38 <sbp> excellent

20:11:00 <DanC> logger, pointer?

20:11:00 <DanC> See http://www.ilrt.bris.ac.uk/discovery/chatlogs/swig/2005-01-26#T20-11-00

20:11:13 <timbl> Yosi, any idea?

20:11:44 * DanC makes a reservation, http://calendar.sidekick.dngr.com/event?id=3326&date=2005-02-16

20:12:37 <sbp> B:Next meeting tentatively scheduled for 2005-02-16T18:00Z (cf. [http://www.ilrt.bris.ac.uk/discovery/chatlogs/swig/2005-01-26#T20-11-00|#swig discussion]); announcement to be sent to public-cwm-talk.

20:12:37 <dc_swig> Added comment B10.

20:12:52 <timbl> Thank you Sean, for chairing!

20:13:06 <sbp> 'twas the community!

20:13:09 <sbp> (no problem)

20:13:22 <crschmidt> Meeting closed then?

20:13:33 <sbp> </N3CWMScheduledChat>

20:13:35 <danbri> thanks all

20:13:35 <timbl> sbp, pls adjourn the meeting

20:13:38 * danbri -> elsewhere

20:13:40 <timbl> thanks

20:13:57 <sbp> cheers everyone

20:14:29 <crschmidt> ^q select ?d where (?c rdf:type flow:Creation) (?c dc:description ?d )

20:14:29 <julie> Remove support for the optional comma from cwm in set syntax (x2), are set members to be considered pairwise disjoint or not; or would it be best to have a syntax for each? (x2)

20:15:18 <sbp> D:We were mid-way through discussing this, and the range of feedback so far is various, but tending towards being conservative and preprocessing (sbp, Yosi), or dropping/changing (dajobe).

20:15:18 <dc_swig> Added comment D2.

20:15:31 <sbp> E:Not discussed in the meeting; defer to next time.

20:15:32 <dc_swig> Added comment E2.

20:15:47 <sbp> got quite a bit done; good meeting

20:18:01 <crschmidt> timbl: sorry for stealing the bot out from under you, but she tends to be a distraction occasionally

20:18:14 <timbl> You kidding! Godo bot.

20:18:16 <timbl> good

20:18:17 <JimJibber> JimJibber is now known as JibberJim

20:18:40 <timbl> I should though test out N3 in a separete window before pasting it in.

20:18:57 <sbp> get Dave Raggett to work on n3tidy :-)

20:19:08 <timbl> But the idea that the meeting records be recorded opn the fly in IRC in machine-readable way is very useful.

20:19:12 <crschmidt> timbl: well, part of the problem is that it's turtle, not n3 ;)

20:19:38 <timbl> And the ontology is a real one which we may build tools for.

20:19:53 <crschmidt> So I don't think your Issue, with no leading :, would have worked

20:20:02 <timbl> I didn't think I used non-turtleisms.

20:20:46 <timbl> it should ahve been foo:Issue, where foo: prefix had been given ... but not with ^

20:21:02 <crschmidt> "<> is flow:source of [ a flow:Creation; issue <#i1>; dc:description "Remove support for the optional comma from cwm in set syntax" ]" -- http://www.ilrt.bris.ac.uk/discovery/chatlogs/swig/2005-01-26.html#T18-50-28 is what I was thinking of

20:21:14 <crschmidt> ah, but that wasn't addressed at the bot, never mind

20:21:34 <timbl> are yes flow:issue in fact should have been flow:task I think.

20:21:50 <timbl> Does julie check ontologies?

20:21:54 <crschmidt> nope

20:22:02 <sbp> custom syntaxes might be nice. Julie could watch out for chumpages then

20:22:12 <timbl> (i would have been surprised!)

20:22:36 <crschmidt> I use a tool from mortenf for smushing based on the ontologies stored in the model

20:22:51 <crschmidt> so, for example, I have the FOAF vocabulary in there, and can smush on any of the IFPs

20:22:55 <timbl> Well, ACTION timbl@w3.org: whatever would be a nice shorthand.

20:23:53 <timbl> but in a way to use straight n3 in the channel means that the meaning is clear. If shorthand, Julie could regurgitate the N3.

20:24:38 <crschmidt> ^q select ?e ?d where (?a rdf:type flow:Task) (?a rdfs:label ?d) (?t flow:task ?a) (?t contact:email ?e)

20:24:39 <julie> Query returned no results

20:24:41 <crschmidt> hm.

20:25:20 <sbp> good idea. <julie> add this line as "$n3"?

20:25:26 <sbp> <person> julie: make it so

20:25:35 <sbp> <julie> added 50,000 statements to etc.

20:25:48 <crschmidt> ^q select ?e ?d where (?a rdf:type flow:Task) (?a rdfs:label ?d) (?t flow:task ?a) (?t foo:assignee ?bar) (?bar contact:email ?e)

20:25:49 <julie> mailto:timbl@w3.org Put set canon'n in cant.py

20:26:03 <crschmidt> btw, foo for the time being is:

20:26:04 <crschmidt> ^ns foo

20:26:05 <julie> The URL for the foo namespace is http://www.w3.org/2005/01/wf/assign#

20:26:16 <crschmidt> I have no idea what you wanted to use there, but it was just "bar"

20:26:26 <crschmidt> I think there's more a chance of using the assign# url than "bar" :)

20:26:43 <crschmidt> (I can change that to something more appropriate, if you prefer, it was just temporary)

20:30:13 <timbl> That was strange. foo is <....2005/01/wf/test/foo#>

20:30:20 <timbl> and assign is a name in that ns

20:31:00 <timbl> foo is a namespace for an imaginary test group which has a particular workflow for its action items and issues.

20:31:15 <timbl> flow: is te generic common vocab for issues and workflow.

20:31:22 <crschmidt> I just wasn't sure what you wanted foo to be set to: I had it set for something else, in the bot

20:31:27 <timbl> s/assign/assignee/

20:32:38 <sbp> /2005/01/wf/assign can always be 301'd to /2005/01/wf/test/foo...

20:33:11 <sbp> doesn't really matter though :-)

20:34:44 <timbl> 18:48:22<timbl>@prefix foo: <http://www.w3.org/2005/01/wf/test/foo#>.

20:35:03 <timbl> 18:47:22<timbl>@prefix flow: <http://www.w3.org/2005/01/wf/flow#>.

20:35:17 <timbl> Can't Julie track current prefixes in the channel?

20:35:20 <sbp> you could even assign an action item, using the .../assign namespace, to implement the 301, but until you resolved the action item, the action item wouldn't be one

20:35:36 <crschmidt> timbl: she doesn't use @prefix notation, since she started out as only rdf/xml

20:36:00 <crschmidt> timbl: She also has a hey-you character so that she doesn't get confused by other things happening in the channel (the ^)

20:36:07 <timbl> Ok, I haven't tracked her history.

20:36:41 <crschmidt> timbl: yeah, it's not a problem. I had actually never seen anyone use the @prefix syntax in channel until just now ;)

20:36:48 <timbl> Well, if the chumper can take a bare URL as a chump (whcih I think is too strong!) then I think a bare valid @prefix is probably reasonable to take too.

20:36:51 <sbp> (\^|@\^|julie: )prefix ... might be good

20:37:04 <crschmidt> During the meeting, I added an @@ to the code to add something for @prefix notation

20:37:20 <sbp> er, \^@

20:38:13 <sbp> I think allowing @prefix might be a bad idea for the same reason why URIs on their own are bad for the chump. at least in the chump the only side-effect is that you generally get an extra entry without a title

20:38:22 <timbl> maybe the n3 preprocessor should change all occurrences of @xxxxx to Julie; xxx ...

20:38:31 <sbp> with julie you run the risk of people accidentally overriding prefixes that other folk are going to use

20:38:37 <sbp> heh, heh

20:38:54 <crschmidt> for the record, I looked at http://www.ilrt.bris.ac.uk/discovery/chatlogs/search?q=%40prefix+foo&Go=Go&channel=swig&count=10&case=yes before adding foo, not sure why it's not showing up in the searchlogs

20:39:09 <timbl> So a common ^ for soemthing to be taken seriously

20:39:24 * crschmidt nods

20:39:30 <crschmidt> ^nslist

20:39:30 <julie> Namespace bindings are: area, astrology, bio, bloggercode, book, bot, cc, chefmoz, chiefs, contact, content, cyc, cyc2004, dc, dc10, dcterms, doaml, doap, exif, fact, factbook, fc, fips, flow, foaf, foafcorp, foo, geo, ical, ilike, img, irc, iso, iso3166, kiss, kissed, menow, mtbi, music, nyse, owl, p, periodic, pm, prf, quaff, quote, rank, rdf, rdfs, rel, rev, review, rss, rss11, schema, srw10, srw11, tipjar, trust, tv, tz, usranks, vann, vcard,

20:39:30 <julie> weather, wn16, wot, xfn, xsd

20:39:42 <crschmidt> lots of them already used, as you can tell ;)

20:40:20 <crschmidt> I also can't remove them yet. @@ fix that

20:40:22 <sbp> ^ns quaff

20:40:22 <julie> The URL for the quaff namespace is http://purl.org/net/schemas/quaffing/

20:40:39 <crschmidt> i think it's mortenf's. leo used it for something

20:40:55 <sbp> ^q select ?prop where (?prop rdf:type rdf:Property) and ?prop =~ /quaffing/

20:40:57 <crschmidt> ah, ldodds

20:41:03 <timbl> You may see a rush of people trying tp get sex, xxx, etc. Ooops our google karma just went up and the logs got blocked by a dozen fliters.

20:41:15 <julie> Query returned no results

20:41:24 * Morbus perks up.

20:41:26 <Morbus> what's that now?

20:41:32 <sbp> we'll need ICANN to preside over the prefix list

20:41:38 <crschmidt> ^add http://www.ldodds.com/schemas/quaffing/

20:41:38 <julie> Adding http://www.ldodds.com/schemas/quaffing/ to my database...

20:41:40 <julie> Added 8 statements from http://www.ldodds.com/schemas/quaffing/. Model size is 2120122.

20:41:52 <crschmidt> ^q select ?prop where (?prop rdf:type rdf:Property) and ?prop =~ /quaffing/

20:41:53 <julie> quaff:owesBeerTo, quaff:drankBeerWith

20:42:11 <sbp> ^q select ?cls where (?cls rdf:type rdfs:Class) and ?cls =~ /quaffing/

20:42:14 * timbl heads off

20:42:18 <crschmidt> ^q select ?l where (quaff:owesBeerTo rdfs:label ?l)

20:42:26 <crschmidt> there aren't any, sbp

20:42:27 <sbp> c'ya timbl

20:42:32 <sbp> ah, thanks crschmidt

20:42:36 <julie> Query returned no results

20:42:36 <julie> Owes Beer To, Debe Una Cerveza A

21:00:45 <Talliesin_> Talliesin_ is now known as Talliesin

21:48:28 <timbl> C: A short [write-up|http://www.w3.org/DesignIssues/N3Alternatives#Distinct] of this problem appended to the DesignIssues note.

21:48:28 <dc_swig> Added comment C7.

21:49:13 <timbl> C7= A short [write-up|http://www.w3.org/DesignIssues/N3Alternatives#Disjoint] of this problem appended to the DesignIssues note.

21:49:32 <crschmidt> timbl: C7: to replace

21:49:33 <timbl> C7:= A short [write-up|http://www.w3.org/DesignIssues/N3Alternatives#Disjoint] of this problem appended to the DesignIssues note.

21:49:33 <dc_swig> Replaced comment C7.

21:50:12 <timbl> C7: A short [write-up|http://www.w3.org/DesignIssues/N3Alternatives#Disjoint] of this problem appended to the DesignIssues note.

21:50:12 <dc_swig> Replaced comment C7.

21:50:26 <timbl> tx crs

21:50:29 <crschmidt> np

22:22:12 <PhUrl> PhUrl is now known as md-afk

23:41:57 <jsled>http://people.csail.mit.edu/people/dfhuynh/research/downloads/piggy-bank/

23:41:57 <dc_swig> F: http://people.csail.mit.edu/people/dfhuynh/research/downloads/piggy-bank/ from jsled

23:43:01 <jsled> F:| Piggy-Bank -- collect+browse semantic data culled from pages while browsing [firefox plugin, alpha]

23:43:01 <dc_swig> Titled item F.

23:43:10 <jsled> F: "The Piggy-Bank extension is designed to let users of the Mozilla Firefox browser collect and browse "semantic data" linked from ordinary web pages. Semantic data is data described using the Semantic Web project's Resource Description Framework (RDF)."

23:43:10 <dc_swig> Added comment F1.

23:44:04 <jsled> F: From David Huynh, Haystack Group, CSAIL, MIT

23:44:04 <dc_swig> Added comment F2.


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.