00:00:32 is ":-" still active in N3 whilst we're killing off bits? 00:00:49 That I have to think about hte philosophy. 00:00:53 I have to go now. 00:00:59 Isn't consensus neat? 00:01:07 :-) 00:01:09 As long as it's MY consensus :) 00:01:10 'tis a beautiful thing 00:01:17 If people discuss N3 more, please send me pointers! 00:01:28 * timbl goes 00:01:47 * bijan wonders if a description of n3 inference is in the offing... 00:01:57 perhaps this should be chumped? 00:01:58 I guess that'd be CWM inference, actually. 00:02:43 Hmm... should'a changed those "[ '#ora' >- dc:wrote-> [ >- dc:title -> "Moby Dick" ] ] ." type examples at the bottom 00:04:25 yeeech. I can't read that even though I know what it means now :) 00:04:56 [ :ora dc:creator [ dc:title "Moby Dick" ] ] . 00:05:03 Yay! 00:05:04 Doesn't wrap. 00:05:08 ooh, actually... 00:05:11 :ora dc:creator [ dc:title "Moby Dick" ] . 00:05:20 * sbp smacks self 00:06:24 ugh... in fact, it's the daml:inverseOf dc:creator: :ora [ daml:inverseOf dc:creator ] [ dc:title "Moby Dick" ] . 00:07:11 heh, "Ora was created by the thing with the title 'Moby Dick'" 00:07:54 N3 makes inverses easier: :ora is dc:creator of [ dc:title "Moby Dick" ] . 00:08:37 * bijan doesn't like that. 00:08:45 Kill is...of! 00:09:02 And has. 00:09:10 Noise, pure noise. 00:09:13 I agree with getting rid of has 00:09:25 has is a has been 00:09:43 is :x of does seem to be quite useful 00:09:54 is..of has the very undesireable property of inverting things ;) 00:10:15 why is that undesirable? sometimes, it really does make sense to do that 00:10:26 is...of is not noise. v. useful 00:10:56 Er...it's purely syntactic reversal, isn't it? 00:10:56 yes. v. useful. 00:11:15 I'll willing to be shown cases...:) 00:11:15 :Dan :child :Brennan. :Brennan is :child of :Dan. 00:11:26 er..yes? 00:11:44 actually, that's not as interesting as when it's used in combination with [] 00:11:50 :Brennan isn't a subject isnt it? 00:11:53 is it? 00:11:57 :Class is rdf:type of :MyClass, :AnotherClass, :YetAnotherClass [...] . 00:12:13 I eman, we don't have a new property from is :child of, do we? 00:12:30 no, not a new property. it's just syntactic sugar. but v. handy. 00:12:33 [ daml:inverseOf :child ] . 00:12:53 it's logically consistent with that, sbp, but it doesn't mean that. 00:13:12 yep, I know. That triple isn't in the graph that's read in, it just reverses it 00:13:32 i.e. it's not the case that { :Brennan is :child of :Dan} log:includes { :Dan [ daml:inverseOf :child] :Brennan}. 00:13:36 Right. Well, my resistence is that it screws with read order *and* with number of tokens in a sentences. 00:13:41 * DanC really has to go now. 00:13:58 No biggy for a parser, but for a human reader or someone walking the file with regexps... 00:14:30 walking the file with RegExps: use an N3 parser! 00:14:43 Well, that's the less compelling bit :) 00:14:50 And it's not what *I'd* do :) 00:14:59 but you're special 00:15:11 Exactly, the rexeps aren't for me :) 00:15:43 I'm just not seeing the *very* useful bits. 00:15:44 Ok, 00:15:49 I should do a set of decent RegExps for NTriples, but I'd only end up trying to extend them to URI-views as well... ugh 00:15:59 [is :child of :Dan] is handy. 00:16:14 :Dan :child []. 00:16:18 But *not* handy enough! :) 00:16:33 yes, it's more "handy" than "useful", but that's what N3 is *about* 00:16:50 if you want something that's simple to parse, go use NTriples! 00:17:04 no, I want something easy to author and easy for humans to read. 00:17:27 [ is :child of :Dan ] is pretty easy to read, IMO 00:17:27 I'm not totally against inverses, but I don't like having "symbol" like stuff that don't map to nodes. 00:17:47 yeah... but how else would you do it? 00:18:02 I wouldn't. 00:18:17 >-foo-> and <-foo-< are at least symetricaly. 00:18:25 But horrid. Really bad. Not worth it. 00:18:31 heh: [ dlihc: :Dan ] . 00:18:40 :) 00:18:55 * sbp comes up with some great ideas, sometimes 00:19:05 Alas that's ambiguous. 00:19:10 Or dangerous, at least. 00:19:20 it's pathetic, more than anything :-) 00:19:20 Since you could have a @prefix dlihc: 00:19:40 yeah 00:20:44 'a' at least maps to a uri. 00:20:52 is and of don't. 00:20:55 And they're not operators. 00:20:56 what about "this"? 00:21:01 I don't understand this. 00:21:07 But it looks like it maps to a uri too. 00:21:27 it identifies the root context of the document... rather, the formulae that the document parses to; the semantics as Sandro calls it 00:21:43 Then it's like 'a' 00:22:08 but it doesn't have a URI like "a" and "=" 00:22:16 not <>? 00:22:20 At least in the sense that I see it and can say, "There's some URI it maps to" 00:22:23 It doesn't? 00:22:26 well... CWM used to reserve #_formula 00:22:42 <> means "this document's URI", not "this document's formulae" 00:22:56 you can say it maps to a resource, I guess 00:23:06 which you can't with "is" and "of" 00:23:11 Hmm. I would have though that teh documents uri named the logical formulae... 00:23:25 But a genid approache works for me. 00:23:27 the document's URI names the document! 00:23:56 no, a GenID approach is a terrible idea, because if the document author uses #_formula, it screws it right up 00:24:16 Er.."Magic id" I meant. 00:24:25 cf. http://lists.w3.org/Archives/Public/www-archive/2001Sep/0052 00:24:36 ah... yeah, that's alright 00:24:41 What happens if you concat documents? 00:24:54 forAll and forSome should probably be built in too... 00:25:13 if you concat the *documents*, for "a" and "b" being concated, you get "ab" 00:25:31 viz. [ string:concat ("a" "b"); = "ab" ] . 00:25:48 Er... it's not clear to me if a document establishes a context. 00:25:55 I.e., has an implicit {} around it. 00:26:10 Hmm. No, that's unclear. 00:26:25 That's the concatentation of the documents *text*. 00:26:43 the document's text is synonymous with the document 00:26:53 Er... 00:27:05 No, since distinct documents can have the same text. 00:27:08 Hmm... no, perhaps not 00:27:20 * sbp finds the CWM verbiage for this 00:28:00 try "content" and "semantics" in http://www.w3.org/2000/10/swap/log.n3 00:28:18 if you try to concat two documents, you probably get a category error 00:29:13 ooh: log:conclusion 00:39:05 Well, sean, have you improved my n3parser.pl yet? :) 00:39:49 yes; do you want me to email you the fixes? 00:39:54 Indeed! 00:40:02 just kidding... (as if it wasn't apparent) 00:40:15 oh well, there's always hoping :) 00:40:15 yes, a document has an implicit {} around it. 00:40:26 I might load up SWI-Prolog and test it, though... 00:40:47 Yeek! A lurking lap! 00:41:09 if you do, you need to write a repl. 00:41:44 could you walk me through it? 00:41:47 Or just use read_n3_form(X), statement(C,X []). 00:41:57 At the command line. 00:42:10 That will read and enter one n3 statment. 00:42:29 this doesn't map to a URI. it's magic syntax; it refers to the current scope/document. 00:42:51 To the document's {}, yes? 00:43:28 {this :is :OneThing. { this :is :Another}}. 00:43:41 Er... 00:43:41 Er.. to the enclosing scope. 00:43:43 I.e., a genid? 00:43:54 this is pretty bogus, really. it's only there for the this log:forAll :x construct, which is bogus. 00:44:08 yes, to the enclosing scope, however you implement that. 00:44:17 I'm happy with, this dying ;) 00:44:31 well, you'll have to make up another way of introducing variables. 00:44:58 Yes, I'm trying to figure out variables now. 00:45:10 Since, obviously, the interesting inferences involve them :) 00:48:03 Hmm. /me doesn't understadn teh log:forAll :x construct. 00:48:23 Oh! 00:48:36 this log:forAll :x....got it. 00:49:03 Hmm. 00:49:18 it may be bogus, but it works 00:50:02 Is there any advantage to haveing varialbe declaration be explicit like that? 00:50:05 of course, just as _:x is an exivar, you can have ?x for univars, but then you get the scoping problem 00:50:16 As opposed to ?x style? 00:50:27 yes, for example... 00:50:41 Make it lexically scoped? 00:50:49 actually, Dan did the best example of this. Let me find it... 00:51:02 To the context? 00:52:11 [[[ 00:52:12 consider: (forall (?p) (=> (forall (?x) (likes ?x ?p)) (type ?p GoodGuy)). 00:52:12 i.e. if everybody likes P, then P is a good guy. 00:52:12 that's *very* different from (forall (?p ?x) (=> (likes ?x ?p) (type ?p GoodGuy))) 00:52:12 ]]] 00:53:29 in N3: { this log:forAll :p . { this log:forAll :x . :x :likes :p } log:implies { :p a :GoodGuy } } is different from { this log:forAll :x , :p . { :x :likes :p } log:implies { :p a :GoodGuy } } 00:54:55 Erhm.. how? 00:55:20 so you could replace this forAll :x with ?x, but you'd have to say that ?x is scoped to whatever 00:56:13 how is it different? the former says that if everyone likes :p, :p is a good guy. The latter is if everybody likes everybody, than everybody is a good guy (I think) 00:56:41 Er..Ok, I'm having trouble reading all this, but it seems like the claim is (p)(x)(Lxp -> Gp) is different from (p)((x)(Lxp)->Gp) 00:56:43 er... rather, if anybody_x likes anybody_p, then anybody_p is a good guy 00:57:02 well, I'll clearly have trouble reading your notation too, so that's no help :-) 00:57:17 yeah, that looks about right, though 00:58:33 Hmm. I'm not up on my quantification theorems. 00:58:42 so the scope of the quanitifcation has to be explicit, and more than that, it has to be something that the creator of the rule can specify. If ?x is scoped to the document context at all times, then the former rules becomes impossible 00:58:48 (Dan's former rule) 00:59:14 s/rules/rule/ 00:59:44 er..remember I wanted ?x to be scoped to the immediately enclosing context. 01:01:02 so, what does { ?x :likes ?p } log:implies { ?p a :GoodGuy } represent? how do I represent the other rule? 01:01:06 Well, to something. 01:01:34 you need to be able to specify that something 01:01:53 * bijan 's brain isn't working for this. 01:03:21 Once again: Webize KIF! 01:03:24 :-) 01:04:31 Er...what does kif need to be webized? 01:04:38 What's wrong with it as is? 01:04:39 sbp has quit 01:04:44 sbp has joined #rdfig 01:05:36 it can't be used on the Semantic Web 01:06:10 actually, if you squint right, it can 01:06:16 heh, heh 01:06:28 and if you're willing to write all your URIs out longhand every time. 01:06:41 actually, I think the law of the excluded middle has to go. 01:06:47 well, if I can convert N3 into it... 01:06:59 which I can. see KIFSink.py 01:07:22 but then it's kind of besides the point, which is using KIF as a solid replacement :-) 01:07:49 (I liked the work you did on it to rdf-logic, BTW) 01:08:12 which... the "formal model for scopes" bit? 01:08:30 yeah: http://lists.w3.org/Archives/Public/www-rdf-logic/2001Sep/0004 01:08:38 that goes under the heading of "DanC spends years trying to figure out what's in TimBL's head and relate it to conventional literature" 01:09:07 Poor DanC! 01:09:07 heh! 01:09:12 * DanC_lap wanders off 01:10:25 Hmm. I don't htink I handle uri frags. At all much less correctly. 01:10:29 Cruft cruft cruft. 01:11:15 Hmm. Looks like a tweak to the tokenizer is needed. 01:11:23 what's going wrong, exactly? 01:11:46 Two things. 01:11:56 1) I don't expand <#title> 01:12:07 So my uri validator chokes. 01:12:46 And I need to supply a default URI for the expansion. 01:12:56 use the document URI 01:13:02 What document? 01:13:12 If you're at a REPL, there isn't one :) 01:13:16 either file://, or http://, or wherever you got it from 01:13:27 Didn't get it from no where :) 01:13:29 oh... well, generate a UUID, perhaps? 01:13:33 yep yep. 01:13:37 not a biggy. 01:14:04 hang on... if you're putting in "#title" from a "thing" that has no URI, then that's pretty (to use DanC's word of the day) bogus 01:14:22 what's a relative URI-ref worth when there's nothing relative to it? 01:14:40 well, I wasn't using #title. 01:14:46 I just saw it in Primer. 01:15:17 Actually, i won't have to tweak the tokenizer so long as # only appears inside <> 01:15:20 its ok to use a self-relative URI when you don't know what self is. 01:16:01 well, not in my code, since it'll break the uri check I put in :) 01:16:04 <> a irc:channel. 01:16:21 So, I need to munge something behind the scenes. 01:16:52 Of course, this is, perhaps, not the common case :) 01:17:11 What happens if you parse and output, though? 01:17:42 Me in particular? 01:17:46 then again, you'll be spewing out the same "document"... 01:18:07 nope, taking to myself; just ignore me :-) 01:18:21 oops, prefix checking is...well...not there. 01:19:53 Nor is empty prefixes... dang. 01:20:48 heh! wonderful function names in: http://www.w3.org/2000/10/swap/n-triples2xplanet.pl 01:25:42 GabeW has quit 01:30:55 mnot has quit 01:41:11 timbl has quit 01:41:21 timbl has joined #rdfig 01:41:37 timbl has quit 01:41:44 timbl has joined #rdfig 01:44:24 sbp, are you planning on testing/playing with n3parser.pl now? 01:45:18 no, I'm worrying about hash vs. slash at the moment. I like to sit and worry about things every now and then 01:45:47 Hmm. I don't read slashdot and only occasionally slashdot.... 01:46:11 erm... I meant hash vs. slash in the Semantic Web sense: "to hash, or not to hash" 01:46:27 http://example.org/x vs. http://example.org/#x 01:48:02 * bijan just about to leave, so if you want setup help for tonight... 01:49:38 I'll defer for now :-) 01:49:43 Heh. 01:49:44 Wimp. 01:49:49 heh, heh 01:49:54 well, how long do you have? 01:50:00 A few minuts. 01:50:03 not enough 01:50:07 Er...they were minutes. 01:50:08 Really? 01:50:15 well, you can try. Tell me what to do 01:50:24 You have swi yes? 01:50:31 You have rdf_db, yes? 01:50:32 I've started SWI-Prolog, I have your file on my desktop 01:50:53 rdf_db: dunno, but assume that I have 01:51:07 ['pathto/n3parser.pl']. 01:51:16 (That consults it) 01:51:42 (The other thing you can do is launch XPCE and use PCEmacs. 01:52:23 % n3parser.pl compiled 0.55 sec, 45,812 bytes 01:52:30 You're good. 01:52:32 Type: 01:52:44 * AaronSw keeps thinking .pl -> perl 01:52:56 * sbp too. I use .P 01:52:56 we need namespaced file extensions ;) 01:53:01 heh, heh 01:53:23 read_n3_form(X),rdf_db(Z),statement(Z, X, []). 01:53:24 Ooo 01:53:25 Wait 01:53:32 first, register any namespaces. 01:53:40 or just longer: .prolog, .perl 01:54:07 rdf_register_ns(junk, 'http://foo/#'). 01:54:20 Ok, then the prior line. 01:54:28 Then you can write an N3 sentence, eg., 01:54:33 sbp has quit 01:54:38 sbp has joined #rdfig 01:54:48 junk:ha 'foo'. 01:54:54 (Only single quotes work.) 01:55:17 (Note, up arrow goes through the history, very handy for this sort of thing) 01:55:24 No, 'a' either. 01:55:36 Grpmgprmgrgh, sorry about that... 01:55:46 Action (h for help) ? df_register_ns(junk, 'http://foo/#').Unknown option (h for help) 01:56:00 * bijan 's code is so powerful, it kills sbps! 01:56:08 "a" aborts. 01:56:29 well, at the action prompt. 01:56:45 ERROR: Undefined procedure: df_register_ns/2 01:56:45 Label ERROR not found. 01:56:56 That's becasuse it's rdf_register_ns :) 01:56:57 mnot has joined #rdfig 01:57:03 Not df :) 01:57:04 ah... 01:57:30 ERROR: Undefined procedure: rdf_register_ns/2 01:57:30 Label ERROR not found. 01:57:36 Hmm. 01:57:45 [library(rdf_db)]. 01:58:14 ERROR: source_sink `library(rdf_db)' does not exist 01:58:14 Label ERROR not found. 01:58:24 You need to dl rdf_db. 01:58:32 from? 01:58:33 Here: http://gollem.swi.psy.uva.nl/twiki/pl/bin/view/Code/RdfDB 01:58:46 Sepecifically: http://gollem.swi.psy.uva.nl/twiki/pl/pub/Code/RdfDB/rdf_db.pl 01:58:59 * sbp does so 01:59:42 If you put it in your library folder, [library(rdf_db)]. will work. 01:59:51 Otherwise, ['fullpath']. 01:59:56 it compiled it 02:00:08 Ok, rdf_register_ns/3 02:00:10 er/2 02:01:50 Yes 02:02:14 ?- junk:ha 'foo'. 02:02:14 ERROR: Syntax error: Operator expected 02:02:14 ERROR: junk:ha ERROR: ** here ** 02:02:14 ERROR: ://foo> 'foo' . 02:02:14 Label ERROR not found. 02:02:15 Label ERROR not found. 02:02:16 Label ERROR not found. 02:02:17 Label ERROR not found. 02:02:27 oh, quiet chumpy! 02:02:44 You have to do the read_n3_form(X), rdf_db(C), statement(C, X, []). 02:03:34 hooray! 02:03:41 S: junk:ha 02:03:41 Label S not found. 02:03:41 V: http://foo 02:03:41 O: literal(foo) 02:03:42 Label V not found. 02:03:43 Label O not found. 02:03:47 aaaargh 02:04:05 anyway, it worked :-) 02:05:25 That gives you an n3 line. 02:05:27 Now do, at the ?-, rdf(X,Y,Z). 02:05:27 There you go :) 02:06:15 ooh, cool 02:06:23 X = 'http://foo/#ha' 02:06:23 Y = 'http://foo' 02:06:23 Z = literal("foo") 02:06:35 There you are :) 02:07:09 thank you :-) 02:07:21 well, that gives me something else to hack on when I' 02:07:23 (I have to think about whether the 'literal' is worth keeping from rdf_db since I'm using actuall string objects and can differentiate by tyep. 02:07:36 when I'm bored... an implementation of CWM in Prolog :-) 02:07:42 It does *really* simple (propositional) inference too. 02:08:10 {buncha ground statments} log:implies {buncha ground statments}. 02:08:19 hey, neat 02:08:31 For each of those, it checks to see if hte first batch is in the current scope, if so, it returns the second batch. 02:08:57 The predicate is simple_imply(X,Y). 02:11:27 user5junk:x? 02:11:41 er...some debugging code. 02:11:54 Or, rather, where are you seeing that? 02:11:57 how do I make the inference? I believe I've added the rule 02:12:07 [[[ 02:12:07 | { junk:x junk:y junk:z } log:implies { junk:z junk:y junk:x } . 02:12:07 subject: user5junk:x 02:12:07 S: junk:x 02:12:08 Label S not found. 02:12:09 [...] 02:12:10 ]]] 02:12:16 Yes. 02:12:25 now add the antecedent to the top scope. 02:12:39 (i.e., you won't get nothing if the antecedent isn't available ;)) 02:12:43 then 02:12:53 done... 02:12:56 simple_imply(X,Y). 02:13:06 Should print out the consequent. 02:13:21 heh, great: it did 02:13:30 ?- simple_imply(X,Y). 02:13:30 [http://foo/#z, http://foo/#y, http://foo/#x] 02:13:43 mnot has quit 02:13:45 That's pretty much all there is at the moment :) 02:13:55 well, that's still quite impressive 02:14:18 I need to factor out the lexer and parser into separate moduels for a it all to be "neat". 02:14:22 "01:50:00 A few minuts." you said, quarter of an hour ago :-) 02:14:27 :) 02:14:33 rather, 25 minutes ago... 02:14:47 Oh well. 02:14:55 well, you need it to be better than CWM for it to be really neat 02:15:03 Hmm. No., 02:15:14 clearer than CWM would suffice. 02:15:18 heh, heh! 02:15:20 Faster than CWM would do. 02:15:31 yeah, CWM is not all that fast no complex queries 02:15:36 s/no/on/ 02:15:37 Realize that the REPL coudl be made n3 specific. 02:15:55 Also, I like being able to do direct prolog queries with rdf(...) 02:16:09 Inspecting the 'guts' of an n3 doc seems a bit easier. 02:16:29 timbl has quit 02:16:29 chihchun has quit 02:16:29 bijan has quit 02:16:29 sbp has quit 02:16:29 tav has quit 02:16:29 xena has quit 02:16:29 tav` has quit 02:16:29 Iron_SpermWhale has quit 02:16:29 nephLAB has quit 02:16:29 sandro has quit 02:16:30 lasDesk has quit 02:16:30 dc_rdfig has quit 02:16:30 DanC_lap has quit 02:16:30 gerald has quit 02:16:30 AaronSw has quit 02:19:08 Disconnected from irc.openprojects.net (Connection reset by peer) 02:20:03 logger has joined #rdfig 02:20:04 topic is: Semantic Web Hackery 02:20:04 Users on #rdfig: logger DanC sbp timbl tav xena tav` Iron_SpermWhale chihchun nephLAB bijan sandro lasDesk DanC_lap dc_rdfig AaronSw gerald 02:20:08 aha 02:20:51 * sbp wonders if Aaron can do a pasting job, if no one minds 02:20:59 timbl has quit 02:20:59 chihchun has quit 02:20:59 bijan has quit 02:21:16 I might wait unmtil things will settle down a bit more. 02:21:37 SeanP has joined #rdfig 02:21:59 SeanP has quit 02:26:44 Disconnected from irc.openprojects.net (Connection reset by peer) 02:27:04 logger has joined #rdfig 02:27:04 Users on #rdfig: logger 02:27:04 [#rdfig] This channel is logged and blogged: http://logicerror.com/rdfIRCWelcome 02:27:14 sandro has joined #rdfig 02:27:25 sbp has joined #rdfig 02:27:25 DanC has joined #rdfig 02:27:31 timbl has joined #rdfig 02:28:00 AaronSw has joined #rdfig 02:28:07 bijan has joined #rdfig 02:28:11 larsbot has joined #rdfig 02:28:30 chihchun has joined #rdfig 02:28:44 deltab has joined #rdfig 02:29:11 gerald has joined #rdfig 02:29:12 dc_rdfig has joined #rdfig 02:29:38 tav` has joined #rdfig 02:30:26 lasDesk has joined #rdfig 02:30:46 dc_rdfig has quit 02:30:46 deltab has quit 02:30:46 bijan has quit 02:30:46 AaronSw has quit 02:30:46 timbl has quit 02:30:46 sbp has quit 02:30:46 sandro has quit 02:31:07 [#rdfig] This channel is logged and blogged: http://logicerror.com/rdfIRCWelcome 02:31:15 Disconnected from irc.openprojects.net (Connection reset by peer) 02:32:03 logger has joined #rdfig 02:32:03 Users on #rdfig: logger chihchun 02:32:03 [#rdfig] This channel is logged and blogged: http://logicerror.com/rdfIRCWelcome 02:33:09 tav has joined #rdfig 02:33:21 gerald_ has joined #rdfig 02:33:23 lasDesk1 has joined #rdfig 02:36:09 *** Notice -- TS for #rdfig changed from 1006914701 to 1006914424 02:36:09 DanC has joined #rdfig 02:36:09 dc_rdfig has joined #rdfig 02:36:09 deltab has joined #rdfig 02:36:09 bijan has joined #rdfig 02:36:09 AaronSw has joined #rdfig 02:36:09 timbl has joined #rdfig 02:36:09 sandro has joined #rdfig 02:36:47 sbp has joined #rdfig 02:37:00 SeanP has joined #rdfig 02:37:03 SeanP has quit 02:37:33 sbp has quit 02:37:37 sbp has joined #rdfig 02:41:04 timbl has quit 02:43:41 [GlobalNotice] Hi all. As near as we can tell, we have managed to purge the problem configuration from all servers. Bug reports have been filed and we'll tiptoe a bit until we have that bug fixed. Thanks. 02:45:44 [GlobalNotice] To recap, something of an emergency was created by a bug in a dynamic configuration line. We restarted all of the servers to avoid having, uh, random restarts until our next software upgrade. Things should be taken care of and we think we can probably avoid problems until the next upgrade. Thanks. 02:46:10 tav` has joined #rdfig 03:19:07 nephLAB has joined #rdfig 03:19:42 nephLAB is now known as dmiles 03:31:22 tav` has quit 03:31:48 tav` has joined #rdfig 03:36:19 tav` has quit 03:36:46 tav` has joined #rdfig 03:36:55 tav` has quit 03:36:57 tav` has joined #rdfig 03:39:59 tansaku has joined #rdfig 03:50:05 * DanC trudges forward on WebOnt WG membership records... 03:50:20 grumble... vs. 03:55:27 sbp has quit 04:01:09 * AaronSw is glad he isn't on WebOnt, for DanC's sake. 04:01:37 just because you use so many different mailboxes? 04:01:45 Yeah. 04:01:56 I'm trying to cut it down to two. 04:02:10 But sometimes my mail client acts up. 04:03:30 this is a pain: we have two independent sources of data: (1) folks apply for member-access accounts; (2) AC reps nominate folks to the WG. 04:04:54 there's no logically compelling argument that the guy who gave oisin.hurley@iona.com as his email address when he applied for member-access is the guy who was nominated to the WG with mailbox ohurley@iona.com 04:05:38 as staff contact, I can say "they're the same guy". But that's a pain. 04:05:57 plus, it means I need to deal with sameThing/forgetDups all the time, which makes cwm run dog slow. 04:06:20 sbp has joined #rdfig 04:06:30 and I'm not sure how to use notIncludes to say "if there's nobody with any of these email addresses, that's a problem" 04:09:34 I've got three sources of info; let's call them N, DB, and P 04:10:31 suppose N says there's a WG member with mailbox fred@foo, and P says there's a member with mailbox fred@foo, and by the way, he also has mailbox frz@foo. 04:11:34 what I want is a rule that says "if DB doesn't show a member with mailbox fred@foo nor frz@foo, raise a flag" 04:12:15 oierw` has joined #rdfig 04:23:25 Hmm. 04:35:46 the xlinkit rules engine would handle this easily. 04:36:24 it's completely geared to closed-world reasoning... about XML elements and such. 04:36:44 lisp/prolog would do nicely too, using map/foreach sorts of things. 04:40:21 sbp, were you talking about foreach the other day? 04:41:56 hm... { { :F log:notIncludes { [ org:member [ c:mailbox :m]]} } log:forEach (:m ( )) } log:implies { :F missing ( ) }. 04:43:29 hmm... how to do that without lambda? 04:46:11 not to mention: how to come up with the ( ) list in the first place. 04:49:06 * DanC tries just adding some rules using givenName/familyName 05:06:25 http://lists.w3.org/Archives/Public/www-archive/2001Nov/0083 05:06:26 A: http://lists.w3.org/Archives/Public/www-archive/2001Nov/0083 from sbp 05:06:36 A:|Hash vs. Slash: What Is Identified? 05:06:36 titled item A 05:06:59 A:Just collecting an anthology of the various occasions where this has been discussed 05:06:59 commented item A 05:08:31 * AaronSw takes a look 05:08:40 * DanC thought cwm was getting somewhere, but I'm getting tired of waiting. 05:09:33 * DanC tries again, using *only* firstname/lastname, not using email addresses at all... 05:09:44 not a bad bit of research, that 05:11:28 not all that useful, but not harmful either :-) It's good for when someone brings up the subject again; you can say "we've discussed that; not once, not twice..." 05:12:20 frap; netscape is wedged. 05:18:09 re [[ The question is whether or not "namespaces" on the Semantic 05:18:09 Web should end with a hash "#", ]] make that namespace *names*, not namespaces. 05:19:59 namespaces don't exist on the Semantic Web anyway, so it doesn't bother me. I just use "quotes" 05:20:11 ok 05:20:48 We had a good discussion about it on DC-REGISTRY (I think), metadata about vocabulary sets, and relationships to namespaces in RDF 05:21:01 * sbp searches frantically for references 05:22:04 well, http://jiscmail.ac.uk/cgi-bin/wa.exe?A2=ind0111&L=dc-registry&P=1924 but the server seems to have vanished from the face of the Earth 05:24:06 * DanC is suprised at the poor performance of cwm on this query; it was much faster on a very similar query 05:24:22 oh! it finished! and the sun is still burning! 05:24:26 lol! 05:24:48 did it give you the result you wanted? 05:24:53 no. 05:25:05 Ugh 05:25:11 it still thinks lynne.thompson isn't subscribed. 05:26:08 * sbp spots "sbp, were you talking about foreach the other day?" - yes, I was. Another www-archive rant/question 05:26:14 aha... Lynne R. Thompson vs Lynne Thompson. frap. 05:27:27 * DanC is leaning toward giving up on cwm and using a pencil pretty soon 05:29:25 at least you don't have to sharpen CWM 05:30:37 on the contrary, I think he's finding it too blunt a tool for what he's trying to do 05:31:05 heh, heh 05:32:13 * DanC tries to find foreach www-archive rant; fails 05:32:56 http://lists.w3.org/Archives/Public/www-archive/2001Nov/0034 05:33:24 oh; related, but not the same. 05:33:45 Hmm... what's the one that you were looking for specifically? 05:34:39 some way to say "if P(x) is true for each x in (a, b, c), then Q" 05:35:35 hmm... maybe I see how to do it with log:conjunction... 05:35:53 or maybe not, without lambda... 05:39:38 well, I'm going 05:39:40 c'ya 05:39:46 sbp has quit 05:40:06 I suppose this expresses it: { this log:forAll :x. { :x :in (A B C) } log:implies { :x a :P } } log:implies Q. 05:40:16 but not in a way that cwm will pay much attention to. 05:46:19 I wonder if SQL can do that. 05:51:53 SQL has IN statements, but there's some limit on the number of members. 06:10:03 tav has quit 06:10:07 tav` has quit 06:12:40 tav has joined #rdfig 06:12:43 tav` has joined #rdfig 06:18:25 tav` has quit 06:24:44 tav` has joined #rdfig 06:54:06 ok... I think I've got about as good as I'm gonna get, looking for missing email addresses, then suggesting, based on matching surnames, that certain email addresses might not be missing after all: 06:54:06 <,db.n3> mm:maybeNotMissingSubscription , 06:54:07 , 06:54:07 , 06:54:07 , 06:54:07 , 06:54:11 ; 06:54:13 mm:missingSubscription , 06:54:15 , 06:54:17 , 06:54:19 , 06:54:21 , 06:54:23 , 06:54:25 , 06:54:27 , 06:54:29 , 06:54:31 , 06:54:33 , 06:54:35 . 07:11:55 bijan has quit 07:11:55 dc_rdfig has quit 07:11:55 DanC has quit 07:11:55 sandro has quit 07:11:55 AaronSw has quit 07:11:55 deltab has quit 07:11:55 oierw` has quit 07:11:55 chihchun has quit 07:11:55 dmiles has quit 07:11:55 tansaku has quit 07:11:55 gerald_ has quit 07:11:55 lasDesk1 has quit 07:12:17 oierw` has joined #rdfig 07:12:17 tansaku has joined #rdfig 07:12:17 dmiles has joined #rdfig 07:12:17 sandro has joined #rdfig 07:12:17 AaronSw has joined #rdfig 07:12:17 bijan has joined #rdfig 07:12:17 deltab has joined #rdfig 07:12:17 dc_rdfig has joined #rdfig 07:12:17 DanC has joined #rdfig 07:12:17 lasDesk1 has joined #rdfig 07:12:17 gerald_ has joined #rdfig 07:12:17 chihchun has joined #rdfig 07:12:18 [#rdfig] This channel is logged and blogged: http://logicerror.com/rdfIRCWelcome 07:12:20 tav` has quit 07:12:34 chihchun has quit 07:15:22 oh... by the way... the idea that string:concat is all we need for web services is coming true... 07:15:39 I'm using rules like: 07:15:41 { :grp dbwg:group :grpNum. 07:15:41 :pg log:uri [ string:concat 07:15:41 ("http://www.w3.org:80/2000/09/dbwg/detailsRDF.php3?" "group" "=" :grpNum)]. 07:15:41 } 07:15:41 log:implies 07:15:42 { :grp :subscriptionPg :pg }. 07:16:13 tav` has joined #rdfig 07:16:56 chihchun has joined #rdfig 08:20:24 tansaku has quit 08:51:59 chihchun_ has joined #rdfig 09:31:45 larsbot has joined #rdfig 10:31:04 dajobe has joined #rdfig 10:40:05 Snoopy has joined #rdfig 10:40:09 lo 10:40:39 I am looking for some java to parse the Dmoz RDF dumps, anybody got any ideas? 10:41:12 try http://www.isacat.net/2001/code/dmoz/DMOZCleaner.htm 10:41:14 (already tried Jena, but I think that because the dumps are of an older standard, it doesn't quite work) 10:41:41 the dumps aren't RDF or legal XML since there are a bunch of illegal chars 10:41:53 I've used perl to clean it up before 10:41:58 ok 10:42:38 so this code cleans up the dump to something which can be parsed ok? (by Jena?) 10:42:50 not tried it 10:42:55 ok 10:43:00 I shall give it a spin 10:43:11 what I said earlier: http://ilrt.org/discovery/chatlogs/rdfig/2001-08-17.html#T10-20-18 10:43:42 grove has joined #rdfig 10:44:08 dajobe has changed the topic to: Semantic Web Hackery - http://rdfig.xmlhack.com/ 10:44:44 Cheers for the help dajobe :D 10:45:18 good luck, let us know how you get on 10:45:32 I should publish my perl script... 10:47:16 * Snoopy goes off to read the chatlogs 10:47:39 http://purl.org/net/dajobe/2001/11/dmoz/fix.perl 10:47:39 B: http://purl.org/net/dajobe/2001/11/dmoz/fix.perl from dajobe 10:47:52 B:|DMoz 'RDF' data cleaner script 10:47:52 titled item B 10:48:09 B:last worked in August 2001, barfed around line 10M 10:48:09 commented item B 10:48:36 lol 10:48:55 yeah, difficult to debug, that one 10:48:58 hmmm... 10:49:12 just a little bit, I love to step into :D 10:53:02 would you recommend a specific JVM for running this kinda code (i.e. memory intensive) - IBM? Blackdown? 10:53:46 sorry, I'm not a big java user 10:54:30 The author of ARP java parser in Jena says he's parsed it but I think he had a pc with gobs of memory (Gbytes) 10:54:39 we've parsed it 10:54:54 used the xmlproc XML parser and spit out a topic map 10:55:03 since it was event-based memory was no problem 10:55:13 ok 10:55:23 yeah, my (C) parser ran in <3M of memory until the XML became bad 10:55:36 xmlproc doesn't check for illegal characters :-) 10:55:45 ahhh 10:55:47 cunning 10:55:54 then its not really an XML parser :) 10:55:58 :D 10:56:03 it's not 100% conformant, no 10:56:14 but it's too slow to check for illegal characters in Python 10:56:27 the only other non-conformant part is that you can split elements across entities 10:56:32 its a python based parser then? 10:56:45 100% pure Python; runs in CPython and Jython 10:56:48 so much for XML being stricter than HTML... 10:56:53 lol 10:57:07 I see your point, but I'd rather have acceptable speed :) 10:57:20 in fact, xmlproc is as fast as the slowest Java parser 10:58:09 I'd rather have good data :( 10:58:13 chihchun_ has quit 10:58:17 * dajobe sighs 10:58:29 I shall try that cleaning code in a minute, I may have to telnet to a considerably more powerful machine to run it though :( 10:59:04 good data is nice, but rare :-( 10:59:11 Id rather have something which works :D 10:59:54 B:converted 137M of 'RDF' content.rdf.gz to 730M of ungzipped rdf/xml before death 10:59:55 commented item B 11:01:27 * Snoopy gets out his spanner and starts bashing the code 11:06:48 ambient has joined #rdfig 11:07:56 ahh, what does < mean - less that right? (<)? 11:08:13 less than, yes 11:08:41 thought so - that cleaning code has got some problems where the HTML has changed the < into < 11:09:17 the XML has been escaped? 11:09:35 < with semicolon 11:10:08 > is > 11:10:09 yeah, < - sorry 11:10:47 its some java code for cleaning the DMOZ dump 11:11:05 but its been a little screwed up in being converted from java>html 11:11:34 chihchun_ has joined #rdfig 11:11:57 chihchun_ has quit 11:12:13 * larsbot -> squash 11:12:16 larsbot has quit 11:13:34 you could try mailing the author - danny, he sometimes hangs out here (danja) 11:21:30 its not a big problem, though I spose he might be interested to know 11:36:21 libby has joined #rdfig 11:37:33 ambient has quit 11:52:14 chihchun_ has joined #rdfig 11:53:01 sandro has quit 11:53:32 sandro has joined #rdfig 12:02:39 shellac has joined #rdfig 12:23:32 * Snoopy is attempting to build parts of jena now.... :( 12:25:30 * Snoopy needs a faster machine for all of this DMOZ parsing... 12:35:33 libby has quit 12:35:33 chihchun has quit 12:35:33 oierw` has quit 12:36:08 libby has joined #rdfig 12:36:08 chihchun has joined #rdfig 12:36:08 oierw` has joined #rdfig 13:23:50 em-mit has joined #rdfig 14:03:22 Snoopy has quit 14:15:12 chihchun_ has quit 14:45:50 azaroth has joined #rdfig 14:46:50 * azaroth wavies. 15:17:53 larsbot has joined #rdfig 16:00:20 sbp has joined #rdfig 16:12:36 sbp has quit 16:23:47 ambient has joined #rdfig 16:46:22 ambient has quit 16:47:27 chihchun_ has joined #rdfig 16:58:53 oierw` has quit 17:03:09 tim-lurk has joined #rdfig 17:21:20 Hmm. Does CWM do anything more than forward chain log:implies rules? 17:26:54 How was the topic set -tomorrow-? 17:27:45 azaroth has changed the topic to: Semetic Web Hockey - http://rdfig.xmlhack.com/ 17:28:19 what do you mean tomorrow? 17:28:22 nov 28 is today 17:28:31 Topic for #rdfig was set by dajobe on Thu Nov 29 10:44:08 GMT+2400 (BST) 2001 17:28:40 weird 17:28:46 Must be Chatzilla being strange 17:28:56 yes, because xchat says nov 28 17:29:39 GMT+2400 17:29:53 kind of a weird timezone :) 17:30:21 Very weird. So, who won the game tonight, Dave? ;) 17:31:50 azaroth has changed the topic to: Semetic Wet Hockey - http://rdfig.xmlhack.com/ 17:32:47 dajobe has changed the topic to: Semantic Web Hackery - http://rdfig.xmlhack.com/ 17:33:17 Spoilsport :) 17:33:56 hockery..? 17:34:08 Hi Libby 17:35:07 heya 17:35:14 what you up to? 17:35:31 * azaroth left his digital camera on a train, going to the ZIG meeting in October :/ 17:35:45 Trying to finish of my PhD, waiting for EU funding results... 17:36:06 bummer about camera :( 17:36:11 phds suck 17:36:21 PhD Supervisers suck 17:36:25 not when you've got em, when youre doig them 17:36:29 they do 17:36:42 that does seem to be a feature of them 17:36:44 If it weren't for them, PhDs would be much easier ;P 17:36:52 larsbot has quit 17:39:37 deltab has quit 17:40:14 This is represented by (guess what!) a property of the context. 17:40:14 this log:forAll :x, :y. 17:40:15 { :x :parent :y .} log:implies { y: :child .} . 17:40:34 I take it that that 'y:' is a typo? (from N3 primer) 17:41:05 Er...the whole consequent seems confused. 17:41:20 should be { :y a :child } I would think. 17:41:25 Yes. 17:41:34 or :y :child :x 17:41:44 Yeah. 17:41:52 If the reading is correct: 17:41:56 "Read this something like: "This is true for any values of x and y. If x is the parent of y then y is the child of x." " 17:42:53 deltab has joined #rdfig 17:44:05 aka forall x,y ( parent(x,y) --> child(y,x) ) 17:44:16 yep. 17:44:22 where --> is material implication 17:44:26 maybe ==> is better 17:44:29 yep 17:45:50 AaronSw has quit 17:45:58 That's the concept, but in cwm it's indistinguishable from inference ( |- ), since there's no negation, no modus tolens, no way to test the more interesting parts of the logic. 17:45:59 * bijan trying to modify his rule to handle modest quantification. 17:45:59 deltab has quit 17:46:11 * DanC catches up... 17:46:18 Hey DanC 17:47:04 Hmm. this would be easier if I tracked variables instead... 17:47:32 bijan, did you look at my n3-logic to prolog translator? 17:47:45 er... 17:47:48 I looked at a parser. 17:47:58 is this something else? 17:48:08 let's see.... 17:49:49 http://www.w3.org/2001/04/pl/semweb.P 17:49:49 C: http://www.w3.org/2001/04/pl/semweb.P from sandro 17:50:26 C:some prolog (XSB-really) hackery for turning n3 logic into XSB logic 17:50:26 commented item C 17:50:39 No, I hadn't. 17:50:45 C:|semweb.P 17:50:46 titled item C 17:51:19 chihchun: written before I'd read Bijan's articles -- it's a bit messy, since I was still unsure what RDF should look like in prolog. 17:51:24 C:written before I'd read Bijan's articles -- it's a bit messy, since I was still unsure what RDF should look like in prolog. 17:51:25 commented item C 17:52:24 Is the aim more to translate N3 rules into Prolog rules? 17:52:47 right now, I'm not doing anything special with log:implies. 17:52:52 It's just another predicate. 17:53:12 Interesting. My goal was to have XSB replace cwm. 17:53:30 My simple_imply/1 runs over the rdf_db to find the rules. 17:53:37 Well, that's my goal here, too :) 17:54:13 Did you see my (now misnamed) n3parse.pl? 17:54:30 only briefly. 17:57:16 My n3 parser in prolog never got working; the above code instead called out to my yacc n3 parser. 17:57:27 Ah! Well my parser works :_) 17:57:57 I have no doubt. :-) 17:58:00 i rearraged the code a little bit to be a tad clearer. Added a few comments. 17:58:39 I like prolog, but I've never gotten much beyond novice. 17:58:41 Well, mostly. 18:00:11 I'm hoping that I can make this straightforward and wellcommented enough to be comprehensible to relative Prolog novices. 18:00:54 rdf_db.pl (prolog version) is nice because it's so simple. 18:01:11 That would be nice. Another nice trick would be to use a prolog-to-n3-logic translator (which shouldn't be too tough), and then have an n3 parser written in n3 logic! 18:01:15 AaronSw has joined #rdfig 18:01:37 Heh. 18:02:02 I'm getting really nervous. We have all these friggin WebOnt WG members (47!) but so far, only 2 of them have responded to the first assignment. 18:02:22 *47*?! 18:02:27 I prefer to think in terms of a proper RDF ontology for Horn Logic or FOL, but n3 logic is okay for the sake of argument. 18:02:31 Eeeek. 18:02:35 That's not a working group, that's a lynch mob. 18:02:52 yes, it acts much more like a lynch mob than a WG, so far. 18:03:31 47: http://www.w3.org/2001/sw/WebOnt/#Membership 18:06:23 ick, I really don't want to write a scratch ad hoc unification predicate :) 18:06:27 oierw`` has joined #rdfig 18:09:43 N3 logic is really quite wierd. 18:09:49 Heh. 18:09:52 *Now* you tell me! 18:10:19 When trying to discourage me from working on this, did you say, 'Well, y'know, N3 logic is Freaky(tm)'. No. 18:10:23 :) 18:11:06 OTOH, it's not clear that that would have dissuaded me :) 18:12:49 dajobe has quit 18:14:45 libby has left #rdfig 18:16:24 Hmm. That parent/child rule should be simlar to rdf(X, parent, Y), rdf_assert(Y, :child, X). 18:17:16 If you're going to forward chain and add the consequences to the current context. 18:17:45 Otherwise, rdf(Y, :child, X) :- rdf(X, :parent, Y). 18:17:49 Or am I missing something? 18:21:40 sbp has joined #rdfig 18:27:34 azaroth has quit 18:28:15 No, that sounds right to me. I hadn't thought of forward chaining in prolog like that, but it seems reasonable. I'm not sure how forward and backward would compare. 18:28:37 But you're not using XSB are you? How are you going to deal with loops in n3 rules? 18:28:50 I'm not using XSB. 18:29:27 I don't know; I'm still not sure I've "gotten" N3 rules. 18:29:45 If n3 is just a standard production rule forward chainer, then there are standard techniques. 18:30:16 I think of them as exactly like rdf(Y, :child, X) :- rdf(X, :parent, Y). but in tabled prolog, where you don't have to worry about loops. 18:31:00 Yeah -- you could write your own chainer in prolog, I guess. I figured you'd want to use prolog's own. 18:31:10 Prolog doesn't have a forward chainer :) 18:31:17 But it's really easy to write one. 18:31:25 n3 should be agnostic about forward or backwards; cwm happens to implement forward. 18:31:29 Well, a simple one. 18:33:55 I haven't really thought about loops, overall. 18:36:43 Heheh XSB corp is pretty funny. 18:36:47 I think it's a killer issue in a straightforward mapping between n3logic and prolog. It's a non-issue between n3logic and tabled-prolog (XSB). 18:36:54 18:36:55 XSB is a disruptive technology firm that has created the first software platform that transforms the massive amounts of chaotic data found on the Web and within legacy systems into actionable assets. 18:36:59 18:37:20 With powerful inference and reasoning capabilities across any data source or taxonomy, the core logic engine yields unprecedented depth, precision, structure, and richness from information that is critical to large-scale e-business and strategic 18:37:28 decisioning processes. 18:38:01 Whoa! 18:38:04 Well, how does CWM handle it? 18:38:13 I thought actionable assets was a joke.... 18:38:20 Nope :( 18:38:22 cwm watches for loops. 18:38:36 Their slogan, "Turning data into actionable assets" 18:40:01 I wonder when this happened. 18:40:10 Hmm. I wonder if they're any occurs check pd code about. 18:40:22 I'm not clear, but the XSB guys are in on it. 18:40:39 But their marketeers should be *shot*. 18:41:17 Hehe, no links to xsb.sourceforge.net from xsb.com :) 18:42:05 But they do talk about how the base is open source. http://xsb.com/coretechnology.asp 18:42:10 Yep. 18:42:23 one hopes this means that XSB itself will become nicer. 18:42:31 I'm a little annoyed, but trying not to be. Yeah, one hopes. 18:43:02 Certainly far less deserving people have gotten rich off of much weaker "knowledge technology". 18:43:08 Yep. 18:43:23 I don't know what happened to Warren's writing skills though. 18:43:27 Unless he's not doing the docs. 18:43:36 Maybe COmputing with Logic was all Maier. 18:43:41 For the writing. 18:44:35 What have you seen written by Warren that was lousy? I've had a couple e-mails from him that were well written. 18:44:54 Hmm. Well, I don't like the XSB docs. 18:44:56 At all. 18:45:02 But he prolly didn't write them. 18:45:33 Hmm. XSB looks *so nice* on paper. 18:47:05 I really ought to try it and see if it's as bad as everyone says :) 18:48:24 It's very weird that they use gpp. 18:48:30 I mean *really*. 18:50:48 * AaronSw reconnects 18:52:05 sbp has quit 18:54:17 Its obvious certain XSB features were added & documented by certain people (very different styles). Why is GPP so bad? 18:54:31 ( gpp --> http://xsb.sourceforge.net/manual1/node116.html ) 18:54:50 It's a c/tex like macro system, yes? 18:55:05 dajobe has joined #rdfig 18:55:08 Yeah. I guess that speaks for itself, huh? 18:55:16 So I thought :) 18:55:27 Worse, AFAICT, they're using it to transform prolog code! 18:56:09 something about maintaing dual prolog & C code stuff. 18:56:37 Hmphf! 18:57:42 Hmm. Do we need anything more than the occurs check to avoid n3 loops? 18:59:19 And is tabling much more the memoization? 19:00:18 I think tabling == memoization. Occurs has nothing to do with a:-b. b:-a. looping, afaik. 19:04:13 Hmm. What kinds of loops are we talking about? Examples anywhere? 19:08:18 they're everywhere. you can't put two RDFS facts together without getting a prolog loop. 19:09:07 DanC would know of examples in existing code. One source of loops I imagine is in ontology equivalences, where you say bijan==Bijan. That might be expressed as rdf(bijan,X,Y) :- rdf(Bijan,X,Y). rdf(Bijan(X,Y) :- rdf(bijan,X,Y). (and in the other two places) 19:09:08 e.g. rdf(S, P, O) :- rdf(S, P2, O), rdf(P2, rdfs:subPropertyOf, P). 19:09:34 that looks like: A :- A, B. to prolog. whee! loop! 19:09:44 xena has joined #rdfig 19:13:56 * bijan thinking...almost as slowly as CWM :) 19:17:38 Ok, occurs check doesn't help because that causes such things to fail. 19:18:10 Which keeps Prolog from looping, but obviously isn't what we want. 19:19:03 I think the occurs check prevents a much rarer kind of looping, involving nested terms which dont occur in n3 anyway. 19:21:31 Well, oc prevents father(X) = X. from looping. 19:22:09 hmm. 19:22:10 http://www.coli.uni-sb.de/~kris/prolog-course/html/node18.html 19:22:11 D: http://www.coli.uni-sb.de/~kris/prolog-course/html/node18.html from bijan 19:22:34 D:|An explanation of "The occurs check" 19:22:34 titled item D 19:22:34 404 19:22:55 Workin a second ago! 19:23:07 doesn't work for me now. 19:23:08 Just went down when *sandro* went to it! 19:23:16 :-P 19:23:16 It doesn't work for *me*, now :( 19:23:28 Cached version: http://www.google.com/search?q=cache:K5bWjYpPdrY:www.coli.uni-sb.de/~kris/prolog-course/html/node18.html+occurs+check&hl=en 19:23:41 they have a I've-been-chumped detector. 19:23:59 The chumpdotted effect. 19:24:06 it's back. 19:25:22 SethR has joined #rdfig 19:25:57 d:nice explanation 19:26:06 D:Nice explanation 19:26:06 commented item D 19:26:12 How does CWM "check for loops". 19:26:57 Dunno, but it doesn't seem too hard if you're willing to pay the runtime cost. 19:27:44 I gather from XSB docs that some kind of loops can be detected before runtime. Rather, that all things which might contain loops can be flagged. (autotable) 19:27:46 what happened to the scratch pad ... its not comming in over here ? 19:28:15 http 404 error 19:29:38 danbri has joined #rdfig 19:32:02 I bet that's an occurs checking thing. 19:32:32 hmm, re: paying the runtime cost...why not? Can't be all that much worse than what we have :) 19:33:09 Actually, if I structure it right, you could run it through a metainterperter in a nontabling prolog and straight in a tabled one. 19:34:26 oh, b-prolog tables too. 19:39:02 http://www.sci.brooklyn.cuny.edu/~zhou/bprolog.html 19:39:03 E: http://www.sci.brooklyn.cuny.edu/~zhou/bprolog.html from sandro 19:39:20 E:|B-Prolog 19:39:20 titled item E 19:39:24 dmiles played with it, I believe. 19:39:54 E:Cool. Competition (in this case for XSB) is good. 19:39:54 commented item E 19:40:27 E:license is "non-commercial use", commercial license costs money. 19:40:28 commented item E 19:42:05 talk about painful writing styles. :-) 19:42:24 Yes :) 19:44:51 deltab has joined #rdfig 19:52:47 cwm doesn't check for loops. 19:53:00 Oh good. 19:53:08 it will happily go on forward chaining until the sun burns out 19:53:23 What does CWM do, such that I may implement it :) 19:53:24 Ah! 19:53:34 It just times out? 19:53:50 ... if, for example, you tell it: { :Pat a :Person. }. { :x a :Person } log:implies { :x :father [ a :Person ]}. this log:forAll :x. 19:54:22 no occurs check. 19:54:38 occurs check has to do with unification of functional terms, not inference loops, as I understand it. 19:54:45 n3 has no functional terms. 19:55:55 er... if you translate that rule into a prolog one, it comes out, I think, as a failure due to occur check. 19:56:11 Though I could be wrong. 19:56:46 DanC, with n3 loop on the { :x :y :z } log:implies { :x :y :z }. ? 19:56:53 s/with/will 19:57:24 rdf(X, :father, rdf(Y, rdf:type, :Person)) :- rdf(X, rdf:type, :Person). 19:57:37 Er..no. 19:58:19 put a Y), before the rdf(Y, 19:58:27 And drop the last ) :0 19:59:00 Er..damn, may have to wrape the whole thing. 20:00:47 rule(rdf(X, :father, Y), rdf(Y, rdf:type, :Person)) 20:00:59 :- rdf(X, rdf:type, :Person). 20:01:41 Hmm. now I'm not sure *what* that would show, if it showed something :) 20:02:05 sbp has joined #rdfig 20:11:49 tav` has quit 20:12:58 tav` has joined #rdfig 20:13:09 bijan, yes you were right about the messed up example in the primer. Fixed. 20:13:18 * tim-lurk catches up 20:13:40 Is enlightenment forthcoming? :) 20:14:30 Tim: could you take the "->/>-" examples out of the Design Issues document? 20:14:33 so is { a :Person} legit ?? 20:15:08 make that { a :Person} legit ?? 20:15:12 hmmmm.... looping. cwm does not try to subsitute expressions for variables, so generate father(father(father(x)) 20:16:27 * danbri wanders past, drops http://rdfweb.org/~pldab/rdfweb/closure.P in as an interesting test case for Prolog <-> N3/cwm intero 20:17:07 Oh, I have a port of that to SWI somewhere, don't I? 20:17:14 And was supposed to give it to you. 20:17:15 Oh well. 20:17:31 matching dataset (doesn't do blank nodes properly, but hey): http://rdfweb.org/~pldab/rdfweb/allfactoids.P 20:17:45 hi danbri 20:17:47 Yeah, I never saw the SWI port. This stuff is XSB. I run it as a CGI... 20:17:52 * danbri still wandering past... 20:17:56 hi AaronSw, all 20:18:08 IIRC, the port was rather trivial. 20:19:37 aww, dig it out anyway... 20:19:58 * tim-lurk takes -> examples out of http://www.w3.org/DesignIssues/Notation3.html 20:20:20 Prolly faster to report it :) 20:20:34 * sbp thanks TimBL 20:20:47 did you want to just use the dataset or be able to use it on arbitrary rdf? 20:21:25 DanBri, have you ever been able to implement anything on top of your WOT stuff? I note that you sign your RDFWeb stuff... 20:21:26 * SethR wonders if is a legitimate URI for me even if I put a real page at the default of http://onword.net#SethR ? 20:22:00 make that the default page of the domain http://onword.net 20:22:08 re loops in n3. { :x :y :z } log:implies { :x :y :z }. will cause it to conclude { :x :y :z } (many times if they are all variables!) but it won't add anything to the store, because it checks whether it already knows something before adding it. (slow). 20:22:29 Tim, so, what exactly is the CWM inference algo (don't make me look at the Source! :)) 20:22:32 The forward chaining terminates when no rules can add statements to the store. 20:23:01 Ah! Hmm. 20:23:59 Seth: first, you probably mean "http://onword.net/#SethR", and second, you probably mean URI-Reference :-) 20:24:18 It is basically SQL, I think. It matches the statements in the antecdent against anoethr formula. Uses a hash of every combination of known places in the quad. 20:24:42 sean, so the '/' is necessary ... why? 20:25:01 It treats "lihgt" builtins before it tries a search, heavy ones after. 20:25:11 er..maybe datalog (BTW, I can't recommend Warren and Maier's "Computing with Logic" enough) 20:26:00 Can you give me an example of a builtin used in a rule? 20:26:29 The "/" is necessary to follow the HTTP URI BNF, I presume. Let me check that it's required... "If the abs_path is not present in the URL, it MUST be given as "/"..." according to RFC 2616 20:26:31 so a uri-reference is anythin with a # ... or only anything with a # and no page name 20:27:04 { :d string:lessThan "2001" } log:implies { :s a :old }. 20:27:27 Seth: a URI Reference is anything that follows the URI-reference production of RFC 2396 20:27:29 Ouch, yeah, that'd needs some literal subjects, I'd imagine :) 20:27:40 { :e a :myEvents. :e :date [ string:lessThan "2001"] } log:implies { :e a :old }. 20:27:52 lit subs :) 20:28:32 could you quote the uri-reference production of rfc 2396 for my failing memory ? 20:28:37 'URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]' 20:28:54 { :x log:uri :u. :u string:startsWith "mailto:" } log:implies { :x a :mailbox }. 20:29:58 RDF Core uses, AFAIK, URI-view for absoluteURI [ "#" fragment ] 20:29:58 so is htt://onword.net an absolute or relative uri ? 20:30:05 Merci. 20:30:22 it's a URI whose scheme I do not recognize :-) http://onword.net/ is an absolute URI 20:31:02 ok i get it 20:31:39 Are the builtins just optimizations, or primitives. 20:31:43 * sbp wonders what other little terms there are in /string... 20:31:50 primitives 20:32:16 tim-lurk is now known as tim 20:32:25 Hmm... there's an "ends with". "contains" would be neat, too 20:32:43 { a :Person; :mailbox } is legit ?? 20:32:43 * bijan wonders if he'll be able to knock this off today. 20:33:11 Well, the code is simple to clone and in http://www.w3.org/2000/10/swap/cwm_string.py 20:33:15 :) 20:33:24 { ?x log:uri [ string:contains "#"; string:startsWith "http:" ] } log:implies { ?x a :URIRefWithHTTPBase } . 20:33:32 Er...not builtins, the inference engine. 20:33:37 Er.. the forward chainer. 20:34:11 I've got propositional queries working. 20:34:39 I guess getting quantified queries working is the next step. 20:34:48 * tim tries to reconstruct .... Are the forward chainer just optimizations, or primitives. 20:35:13 sorry, I just changed tacks on you without a signal. 20:35:24 ok 20:35:29 I.e., once I realized that the builtins are prims, my attention turned back to the chainer :) 20:35:57 Chainer first, then prims :) 20:36:02 sbp has quit 20:36:08 sbp has joined #rdfig 20:43:13 http://suo.ieee.org/email/msg07399.html 20:43:13 F: http://suo.ieee.org/email/msg07399.html from SethR 20:43:35 F:|Webizing an ontology browser 20:43:36 titled item F 20:44:09 F: I still think what the sem web needs is a good dictionary 20:44:09 commented item F 20:44:55 oh wow, I managed to implement string:contains 20:44:57 F: I want somthing like http://onword.net/#instance 20:44:57 commented item F 20:45:21 I added the following to cwm_string.py:- 20:45:21 [[[ 20:45:21 class BI_Contains(LightBuiltIn): 20:45:21 def evaluate(self, store, context, subj, subj_py, obj, obj_py): 20:45:21 for x in subj.string: 20:45:21 if x == obj.string: return 1 20:45:21 in n3parser.pl!?!??!?!? 20:45:23 else: return 0 20:45:26 ]]] 20:45:28 Oh, shoot. :) 20:45:39 and " str.internFrag("contains", BI_Contains)" in def regsiter(): 20:45:53 heh, heh 20:46:31 Hmm... I also need to add the converse, doesNotContain 20:47:13 done; now for a test case... 20:48:25 Yeek. 20:48:51 F: that is a URI .. also a URL that would return a page hyperlinked to the various namespaces in which the word 'instance' existed 20:48:52 commented item F 20:49:12 cool, input:- 20:49:13 [[[ 20:49:13 { :x :y :z . :x log:uri [ string:startsWith "http:"; string:contains "#" ] } 20:49:14 log:implies { :x a :HTTPURIRef } . 20:49:14 { :x :y :z . :x log:uri [ string:startsWith "http:"; 20:49:14 string:doesNotContain "#" ] } log:implies { :x a :HTTPURI } . 20:49:14 :equivalentTo . 20:49:15 Ah, and no you're the maintainer of cwm_string.py ;) - Dan wanted {notE,e}qualIgnoringCase 20:49:17 :equivalentTo . 20:49:18 ]]] 20:49:44 Pff, I don't care about case distinctions :-) 20:50:09 t'worked:- 20:50:10 [[[ 20:50:10 a :HTTPURI; [...] 20:50:10 a :HTTPURIRef; [...] 20:50:10 ]]] 20:50:37 you're right though... having one for ignoring case and one not would be a good idea 20:51:13 * tim wonders ...Does python's "in" work for string in string, or only chars in string 20:51:20 only chars :-( 20:51:30 .py foo = 'abcdef' 20:51:34 .py 'ab' in foo 20:51:35 TypeError: 'in ' requires character as left operand 20:51:44 I would hope so! 20:51:49 Why? 20:51:55 xena does .py repl? 20:52:19 yeah 20:52:21 because in is element streaming. 20:52:36 I don't follow. 20:52:36 you can do string.find() 20:52:52 erp. 20:53:34 * bijan in wrong context. 20:54:06 I was thinking about 'in' in fors 20:54:16 i.e., for i in x: 20:55:07 [[[ 20:55:08 class BI_EqualIgnoreCase(LightBuiltIn): 20:55:08 def evaluate(self, store, context, subj, subj_py, obj, obj_py): 20:55:08 return (string.lower(subj.string) == string.lower(obj.string)) 20:55:08 ]]] 20:55:42 EqualIgnoreCase, eh. 20:56:09 s/EqualIgnoreCase/EqualIgnoringCase/ 20:56:51 s/E/e 20:57:49 Hmm... and the dang thing doesn't work 20:58:15 oh, problem with the rule :-) 21:02:30 cool, it works 21:05:57 * bijan also can't recommen the Craft of Prolog enough, though it is rather hard. 21:06:01 Art of prolog is nice too. 21:06:35 * danbri imagines a Prolog stall at an 'Arts and Crafts' fair :) 21:06:40 :) 21:07:01 you should cump them again 21:07:55 I don't think I've ever chumped them :) 21:08:06 But they're pretty standard on the list if you investigate prolog ata ll. 21:08:25 well chump chump ... im building my :Prolog context 21:10:08 Er..to chump them, I'd have to google or amazon them. You do it :) 21:10:41 I actually don't really recommend either for the beginner. 21:10:52 I didn't find Art all that helpful when I was completely lost. 21:11:06 oh, what would you recommend for the beginner ? 21:11:15 My articles, mostly :) 21:11:33 Bratko's book is ok. 21:11:40 Useful. 21:11:51 Nice AI examples. 21:12:15 so chump your top article ... 21:12:50 er..http://www.xml.com, search for Bijan :) 21:13:43 * sbp flings the cwm_string additions at www-archive 21:14:06 http://www.xml.com/pub/a/2001/04/25/prologrdf/index.html 21:14:06 G: http://www.xml.com/pub/a/2001/04/25/prologrdf/index.html from SethR 21:14:24 G:|An Introduction to Prolog and RDF 21:14:24 * bijan still hasn't finished the third one. 21:14:24 titled item G 21:14:30 Should work on that instead of CWMclone 21:15:25 * sbp finds his SMTP server barfing; tries again 21:16:35 so what's a good/free prolog on Win platform ? 21:17:25 SWI-Prolog! 21:17:34 * sbp kicks his SMTP server 21:17:41 Yep. The Prolog Of Choice 21:17:56 For RDF Hacking. 21:18:36 oh, that's funny: it's come through to www-archive, and yet it's still in my outbox. *sigh* 21:19:00 Nine out of 10 deranged dentists, if stranded on a desert island with only their Ipaqs and solar panels, recommend SWI-Prolog for *all* your semantic web needs. 21:19:51 well that's good enough for me :) 21:19:51 sbp, hurry up and learn enough to take over n3parser.pl :) 21:20:16 * bijan needs serfs...er..."students". 21:20:25 ah wonderful, it sent two copies. Time to find another SMTP server, it would appear 21:20:52 "Those who can do. Those who can't, teach. Those who can, but don't want to, teach graduate school." 21:22:07 * DanC catches up... 21:23:30 sbp has quit 21:23:56 sbp has joined #rdfig 21:23:56 is it easy to run prolog in a cgi script ? 21:24:11 SWI has cgi support. 21:24:40 how about Berkeley database support ? 21:25:03 doubt it. 21:25:18 any database support ? 21:25:38 Why not look at teh swi web page. They have lots of info there :) 21:26:02 im downloading the execuitable as we speek 21:26:06 I know there's various bridges out, but I tend not to be all that interested in that sort of thing. 21:27:15 So what would it take to add namespaces to the prolog language, I wonder. 21:27:16 well if it dont have a good database interface, then i would not be interested in it 21:27:41 Well, examine the packages or docs. 21:27:46 tim, what do you mean? 21:27:55 SWI has modules. 21:28:28 rdf_db.pl let's you use namespaces in your rdf() predicates. 21:29:03 Er..for uris 21:29:32 rdf_register_ns(foo, 'http://foo/com/#'). 21:29:59 bihjan, as you point out in http://www.xml.com/pub/a/2001/04/25/prologrdf/index.html, naturally RDF tends to end up as a lot of quoted URIs in prolog. 21:30:13 Which makes one tedn not to want to use prolog -- or to not use URIs. 21:30:22 Yes, but if you read the next article, you'll see that you don't have to do that :) 21:30:37 rdf(foo:a, foo:b, foo:c). works. 21:31:16 (This is using the rdf_db.pl library) 21:31:17 but is a pain as you wnat to connect to prolog directly. 21:31:41 er...what exactly is the pain? 21:31:51 That *is* direct prolog. 21:32:26 You me foo:b(foo:a, foo:c)? 21:32:55 That'd be trickier. 21:33:10 As a user I would want to say doc:reads(foo:Sucker, "XML.com") 21:34:08 Hmm. i haven't felt that pull all that strongly. 21:34:21 I sorta like keeping the rdf and the prolog minimally separate. 21:35:09 But that works too, sorta. 21:35:20 edd has joined #rdfig 21:35:23 I appreciate that kind of hack more in Perl (but then I appreciate Perl more than Python...) 21:35:29 Hey edd! 21:35:32 c:parent(X, Y) :- rdf(X, c:parent, Y). 21:35:49 hi there 21:35:55 With a small metainterpreter, you could add expansion of that sort. 21:35:55 larsbot has joined #rdfig 21:36:00 Edd! 21:36:17 * edd inspects http://ilrt.org/discovery/chatlogs/rdfig/2001-11-28.html#T21-33-10 21:36:26 hey bij, danbri 21:36:40 Actually, you could do it in the reader. 21:37:06 Heh. 21:38:00 lol @ doc:reads(foo:Sucker, "XML.com") 21:38:02 So, I guess my answer to, "So what would it take to add namespaces to the prolog language, I wonder." is "Not very much." 21:38:10 Even a foo:Sucker could do it :) 21:38:35 heh, heh 21:39:06 But *only* if doc:reads(foo:sucker, "XML.com"). 21:39:15 Though I will say reading the string "XML.com" isn't all *that* hard :) 21:39:34 * edd smiles. how's part 3 coming on? 21:41:06 doc:reads rdfs:comment "reads(x, y): x reads the Website with the lexical representation y" . 21:41:54 * tim was distracted ... checking inb SBP's additions to cwm_string.py Thanks, Sean! 21:42:29 no problem :-) 21:42:54 sorry about the duplicate copy: SMTP problems... 21:42:57 tim, are log:forAll declarations valid in the entire scope, or just from declaration point on? 21:44:27 As declarations they have no scope, but I will insist that they are declared using this in the scope itself. 21:45:03 Currently cwm can screw up if you use the same id for a variable and for a constant. 21:45:31 Hmm. I'm not sure I know what you mean. Example? 21:45:38 The proper way to do it is to take the scpe as `this` and everything inside. 21:46:16 this and everyting inside...this? Or inside nested contexts? 21:46:54 this and the nested contexts. 21:47:21 { this log:forAll :x, { :x :blah .... the :x is the variable in that - it has to be. 21:47:25 (Don't know if you caught it, but I think namespaces in prolog along the lines you wanted is fairly trivial. there are a number of ways to do it and can be tailored to your needs :) 21:47:50 Might break the standard a little.... but that woudl be interesting. 21:47:50 sbp has quit 21:47:54 sbp has joined #rdfig 21:48:09 But not outside the declaring :x? 21:48:13 And do declarations shadow? 21:48:21 Might be interesting for the ol' prologBot on #rdfig for starters. 21:48:45 {this log:forAll :x. {this log:forall :x. ... 21:49:03 Heh. unless dmiles irc lib works for me, no prologBot per se. 21:49:11 Outside the declaring formula, it should be treated as a completely separte object. That is where cwm screws up. 21:49:19 shadow?? 21:49:38 Though semantichimp will be floating around as soon as a pal helps me with cvs to sourceforge. 21:49:43 Hmm. I guess that makes no sense :) 21:49:51 oooh, cool! 21:49:52 (I did order a used copy of the D&M logic computing) 21:49:58 i knew s/f cvs once upon a time... 21:50:05 Good for you! 21:50:09 Great book. 21:50:38 If I had a student (*cough* sbp *cough*) I'd make them translate the code to python. 21:50:47 It being pseudo-code/pascal. 21:51:06 heh, heh 21:51:22 I think that would be a *terrific* class project. 21:51:29 do I get course credit/money? 21:51:39 * sbp should have added a smiley 21:51:39 Er...yes. course credit. 21:52:13 But only from the Bijan J. Parsia Institute of Higher Learning, Sleazy Exploitation, and Low Humor. 21:52:42 that's some alma mater :-) 21:52:43 Or BJPIHLSELH as we affectionately call it. 21:53:18 feel free to throw various bits of code at me 21:53:34 Er...get the book. for each example in Pascal, translate to Python. 21:53:50 (really, it's almost a transliteration) 21:54:12 I don't insist on objectifying it. Indeed, I rather insist not since that would make it harder to follow from the book. 21:54:18 Hmm... perhaps my local library will have a copy... 21:54:26 Prolly not. Univ lib might. 21:54:40 yeah, that's my local :-) 21:54:51 I had a watch on it at Powells for 6 months before I got a used copy. 21:54:56 With Underlining (grrr) 21:55:04 Er..Highlighting. (still grr) 21:55:23 Ugh, sorry, I've gotta run 21:55:24 * tim finds on the shelves a Clocksin & Mellish "Programming in prolog" 1984, faded yellow pages, unread 21:55:31 Which edition? 21:55:35 sbp has quit 21:56:23 What's brilliant about W&M, well, aside from the totally cool examples, is their developing each stage of the system and logic in parallel. 21:56:35 Proplog/Propositional logic 21:56:43 Datalog/Predicate logic 21:56:49 Prolog/"functional" logic 21:57:03 Each time enhancing the formal grammar, semantics, and interpreters. 21:59:47 * tim second edition, first was 1981. 22:00:34 * bijan has two copies of the 2nd, none of the third :) 22:01:08 so why not just put all the logic chaining things from prolog inside of python ? 22:01:30 then we would only need to learn one language 22:02:13 I don't need to learn any langauges, except may N3. But I think I just did taht. 22:02:15 So that's one reason. 22:03:15 In any case, implementing Prolog in Python is likely to be insanely slow for datasets of any size. Might as well use a real prolog. 22:03:23 bijan, that = 'put the logic chaning things from prolog inside of python' ?? ... where is the library ? 22:04:12 thirdly, to implement isn't to integrate. CWM is an implementation of the N3 logic langauge, but doesn't integrate the two. 22:04:27 SethR, you're last statement is unintelligible to me. 22:04:47 tim is now known as tim-gone 22:05:10 * tim-gone back in 30 maybe 22:05:11 Fourthly, I beleive there is a Perl proposal for a couple of non-determinstic construct. one should study that if one wishes to do the same in Python, I'd hazard. 22:05:43 i was just grying to assign a value to the indexical in your 'But I think I just did taht' 22:05:54 that == learn N3 22:06:15 we should ban indexicals here :( 22:06:27 But not demonstratives like "here"? 22:07:35 any indexical that needs disambuifying ... makes the parses too long ... keep getting stack overflows 22:07:53 Mine was one step back. you have a short stack. 22:08:10 The influence of wish fullfilment, I wager, 22:08:57 yep, me gots a short stack 22:09:42 Er...if you get an overflow at 1, you don't have a stack at all. 22:10:05 Actually, you're problem wasn't overflow, it was refusal to push. 22:11:31 you forget that my attention would presumably be on my last statement .. and i misparsed your statement as response to that ... but now i can see that it was in response to something before that ... lopping the indexicals would help :) 22:13:36 for the record i avoid indexicals where possible .. though it does make me type more characters 22:14:00 Like, "I"? 22:14:29 In anycase, if it's a misparse, what do indexicals have to do with it? 22:14:39 Fix your parser first. 22:15:05 hmmm ... no not 'I' which seems always to equate to :SethR where it is me moving the typing fingers 22:15:42 indexicals (tend to cause) misparses 22:15:43 SethR, we're stopping this part of the conversation now. And if you don't know which part, well, stop them all :) 22:16:30 a simple ShutUp would have surficed 22:17:04 Indeed, but that sufficed too, and cost me but a little effort. 22:17:09 :) 22:17:43 so how do it get my dictionary ... what i got to program it myself ? 22:18:03 Which it? 22:18:54 {?it mistype of 'I'} 22:19:22 * DanC considers catching up, weary of the danger of using all of the remaining 40 minutes in this workday wandering around here. 22:19:28 Heh. 22:19:48 I was up 'till 3am making up for the time I spent here yesterday afternoon. :-{ 22:19:55 Yeek! 22:20:13 well, I could have just updated the www-webont-wg mailing list manually. 22:20:31 But I was bound and determined to get cwm to check the discrepancies for me. 22:20:54 in the end, I did prevail: http://lists.w3.org/Archives/Public/www-archive/2001Nov/0084.html 22:20:56 SethR, again, I have no idea what you're talking about. What dictionary. Get it for what, and how?, etc. 22:22:09 {(my dictionary) == [a :Idea; chumpedToday :F ]} 22:22:57 i want to be able to lookup any word in any namespace from the url http://onword.net/#someword 22:32:21 re banning indexicals: I find it useful to prefix lines with a few keywords from the line I'm responding to. 22:33:15 danC, yeah that's much better solution 22:34:07 danc, what do you think about the http://onword.net/#someword idea ? 22:34:38 the ... idea: definite description with no referent. sorry. 22:35:18 referent is last updated at 2001-11-28 21:14 22:35:18 Semantic Web Hackery - http://rdfig.xmlhack.com/ 22:35:18 An Introduction to Prolog and RDF 22:35:18 posted by SethR at 2001-11-28 21:14 22:35:18 Webizing an ontology browser 22:35:19 22:35:37 woops .. scratch that 22:35:58 danc, referent is Webizing an ontology browser chumped today 22:36:18 but idea goes beyond that chump 22:40:35 a url like http://onword.net/#isa would yield a page that would show that 'isa' was in the cyc namespace and that it was equivalentTo suo:instance .. and give hyperlinks to the respective ontology browsers 22:40:51 also of course to rdf:type 22:41:04 good luck, Seth. 22:41:40 well do you think such a resources would be useful to your own researches ? 22:41:54 maybe. 22:42:21 I do like the way I can surf the cyc ontology; mainly because it's clear that it's grounded in years of practical experience. 22:42:36 thing is that you could also use those pages to annotate the concepts that are being created in these ontology groups 22:42:38 The SUO stuff doesn't give me the same feel. 22:43:16 "those pages"? "these ontology groups"? you're not after one big ontology in the sky, are you? each group will naturally have its own home in the web, no? 22:43:24 in a way this could be kind of a ontology browser of ontology browsers 22:43:46 er...does SWAG have something like that, at least in intent if not in code? 22:43:48 but i can hyperink to those ontology browsers 22:44:16 yeah the swag idctionary was ~supposed~ to do this ... but it died 22:44:40 meta-ontology-browser: no thanks; at least: not until it does better than google. 22:45:09 get from google to suo:instance ... i dont think so 22:45:43 hmm.. http://www.google.com/search?q=suo+instance seems to get there just fine, no? 22:47:18 not at all 22:47:26 your supposed to be getting to http://ontology.teknowledge.com:8080/rsigma/SKB.jsp?req=SC&skb=Merge&id=26 22:47:52 which is where the ontology browser of suo:instance really starts .. not in a lot of dialogues 22:48:01 that's a poor choice of names if they want to use that as an RDF constant. 22:48:23 i agree .. i much prefer isa myself 22:48:49 no, I mean ....ID=26 is a poor choice of names. 22:49:53 well id=26 must map over on the technology db to 'instance' ... this is one of the reasons we need http://onword.net/#instance 22:50:09 what's onword.net? 22:50:21 an available domain 22:50:34 the SUO thing is an ieee thing, no? why not http://ieee.net/2001/suo#instance ? 22:50:42 er... ieee.org 22:51:11 cause Adam Pease says he dont want to do it .. he thinks the uri ending in 26 is quite adequate, thank you 22:51:36 that's why I said "good luck". 22:52:02 going around them to do onword.net won't help. If the owners of the vocabulary don't endorse the name, it's no good. 22:52:04 you mean 'good luck' in a political sense .. or in a technical sense 22:52:09 political. 22:52:26 naming is a social contract; a political excercise. 22:52:27 actually there is no prob with the politics ... its just a hyperlink 22:52:45 " Adam Pease says he dont want to do it" is a political problem, no? 22:53:50 not for somebody that wants to do it in some other doamin and then include namespaces other than suo 22:54:32 include other namespaces? I'm lost somewhere. you're talking about some uber-vocabulary, containing all vocabularies? not interesting. 22:54:49 I thought you were advocating that the SUO folks use cool URIs for their constants. 22:55:23 DanC, hmm, did you read that Loom paper i was babbling about last year? about merging large ontologies? 22:55:44 I remember surfing some loom stuff; I don't remember any particular paper along those lines. 22:56:27 i was, but then Adam says he dont want to do .. so then im thinking why not me do it and not just index suo but dmal and cyc too 22:56:50 http://ksi.cpsc.ucalgary.ca/KAW/KAW96/swartout/Banff_96_final_2.html 22:56:50 H: http://ksi.cpsc.ucalgary.ca/KAW/KAW96/swartout/Banff_96_final_2.html from bijan 22:57:03 H:|Toward Distributed Use of Large-Scale Ontologies. 22:57:04 titled item H 22:57:10 H:From the Loom folks. 22:57:10 commented item H 22:57:19 H: I've chumped it before, I'll prolly chump it again. 22:57:20 commented item H 22:57:55 H:As I recall, a must read for Semantic Webbers. But hey, I've been wrong before :) 22:57:55 commented item H 22:57:55 bijan, did you see that new (2001) paper on proof-based authorization? One of the authors has surname "Schneider" but I don't think it's *the* security schneider. 22:58:03 No. 22:58:11 I recall maybe you mentioning it... 22:58:31 thanks for the ref, bijan 22:58:34 http://ncstrl.cs.princeton.edu/expand.php?id=TR-638-01 22:58:34 I: http://ncstrl.cs.princeton.edu/expand.php?id=TR-638-01 from DanC 22:58:41 *the* security Schneider is "Schneier, Bruce", no? 22:58:49 I:|A Proof-Carrying Authorization System 22:58:49 titled item I 22:58:55 larsbot, that's what I was thinking 22:59:09 yeah, that guy, larsbot. 22:59:12 But it does seem to be *the* Edward Felten. 22:59:14 sbp has joined #rdfig 22:59:20 I:by Lujo Bauer, Michael A. Schneider, and Edward W. Felten. 22:59:20 commented item I 22:59:25 aaron, my thought exactly :) 22:59:30 * bijan notes that he is, and has always been, *the* Bijan J. Parsia. 22:59:33 You better be careful DanC, the RIAA might shut your little project down. ;) 23:00:08 *the* Felten... of what? 23:00:33 Thinking about the loom paper reminds me of another ontology compatibility paper I read at about the same time, about how the logic of a KB can affect the compatibility of the ontologies. 23:00:35 The one who the RIAA told to not publish his paper. 23:00:41 .google edward felten riaa 23:00:42 edward felten riaa: http://www.eff.org/Legal/Cases/Felten_v_RIAA 23:00:51 I:found this when pointing somebody at the [PCA stuff|http://www.cs.princeton.edu/sip/projects/pca/] the other day, cited from [timbl's logic design issues note|http://www.w3.org/DesignIssues/Logic#PCA] 23:00:51 commented item I 23:01:25 ah. that one. I haven't been following that RIAA noise too closely. 23:01:57 Felten broked the SDMI security and tried to present a paper on it, and the RIAA stopped him. 23:02:56 ouch; they succeeded in suppressing his work? it's not just that they're harrassing him after-the-fact? 23:03:00 DanC, that's an interesting looking paper. 23:03:25 it occurs to me that Felten and TimBL should have met by now. 23:03:37 Why is that? 23:03:39 "Just prior to the conference, the Princeton Professor received a letter from Matt Oppenheim from the Recording Industry Association of America (RIAA) and the Secure Digital Music Initiative (SDMI) that threatened a lawsuit against Professor Felten's team and their universities and the workshop organizers if the paper was publishe" 23:04:04 So he didn't publish it, as I recall. 23:04:08 well, timbl was scribling his /DesignIssues/logic stuff, and then somebody at MIT LCS showed him that felton had done exactly what he was sketching. 23:04:20 Of course, since they sued him it got printed in Wired, and is on every site in the net, but you know... 23:04:29 Hehe. 23:04:46 sbp has quit 23:05:06 and I've been poring over Felton's stuff ever since, trying to make sense of it and its relation to timbl's ideas. 23:05:35 perhaps it would be cheaper to just go, "tim, meet Ed. Ed, tim." 23:05:49 sbp has joined #rdfig 23:05:59 DanC, you need some minons. 23:06:12 don't we all. ;-) 23:06:18 Well, yes. 23:06:24 You more than most. 23:06:38 .google Hire-A-Minion 23:06:39 Hire-A-Minion: http://www.greenspun.com/bboard/q-and-a-fetch-msg.tcl?msg_id=006pUk 23:06:43 Heh heh heh. 23:07:03 well, in early 2001, I got tired of dealing with minions; decided just-do-it was more rewarding. 23:07:23 Clearly you needed *better* minions :) 23:07:33 *High quality* minions. 23:07:40 18 months later, I'm coming out of that phase, happy having written a bunch of stuff. The idea of a bunch of minions to finish some of the coding looks more appealing now. 23:07:50 Minions so ept that it was just like just-doing-it 23:08:01 where does one get such minions? 23:08:12 At minion schools? 23:08:14 Ah, DanC moves from just-do-it to just-delegate-it. 23:08:23 * AaronSw checks the calendar, and tries to figure out how 18 months ago it was early 2001... 23:08:32 Some mysteries I was not meant to understand. 23:08:38 this year just keeps going on and on... 23:08:42 You need a windows box, m'boy. 23:08:43 i.e. just-manage-the-project; hence the monstrous swad-chart.n3 23:08:49 and the 47-member WebOnt WG. 23:08:54 Yeeek. 23:08:58 That is *not* an improvement. 23:09:03 ;-) 23:09:12 I was thinking that the swad-chart would go really well with Ka-Ping's interactive Python graphing system. 23:09:12 Maybe you need flunkies instead of minions. 23:09:28 * DanC tries to imagine how a windows box would be an improvement; concludes that's a sick joke. 23:09:37 Or thugs! Thugs to clear out the deadwood in WebOnt WG 23:09:40 Er..that was to aaron. 23:09:44 windows box? 23:09:50 To help him understand some mysteries :) 23:09:56 Oh. 23:09:59 Heh heh 23:10:13 18 month years are just the start! 23:10:17 18 month installs! 23:10:22 18 month downtimes! 23:10:25 oops; typo; it was early 2000 when I started my just-write-the-code mode. June-ish. 23:10:36 * sbp notes that there's still a month to go 23:10:48 WebOnt should invite John Sowa as an invited expert .. did you see his finished paper ? 23:10:51 * AaronSw wonders what DanC was like before then... 23:11:02 * DanC prints a copy of the Felton/Schneider paper to take with when going downstairs to watch the kids... 23:11:16 * AaronSw notes the w3.org/XML/ timeline stops at June 2000. 23:11:17 * tim-gone snap 23:11:32 s his fingers and makes Ed Felten appear. 23:11:34 Hmm. Has anyone done anything thinking about using a advogato style system for RDF? 23:11:40 I was in XML Schema WG mode, AaronSw. And XML Core WG guy. And XML Activity Lead stuff. 23:11:46 bijan, i've done little. 23:11:52 interesting, AaronSw! 23:11:57 DanC, ahh that explains. 23:12:01 (interesting... about the /XML timeline, that is) 23:12:19 Yeah. Guess you ran out of minions. ;) 23:12:32 "snap"? 23:12:51 tim-gone? 23:13:00 Arron, what did you think? 23:13:05 tim, have you seen that new PCA paper? 23:13:28 I thought the Python implementation of the advogato algorithm would be really useful, and its author (lkcl) pledged support. 23:13:47 But then I figured we needed RDF digital signatures first. 23:13:47 http://www.jfsowa.com/pubs/signproc.htm 23:13:48 J: http://www.jfsowa.com/pubs/signproc.htm from SethR 23:14:14 actually, the advogato style of trust is more interesting than digital signatures, in a lot of ways. 23:14:16 J:|Signs, Processes, and Language Games 23:14:17 titled item J 23:14:35 J: by John F. Sowa 23:14:35 commented item J 23:14:49 DanC, i thought they work together, not replace each other... hmm? 23:15:13 J: note: Last Modified: 11/24/2001 19:58:46 23:15:14 commented item J 23:15:17 well, the advogato style trust seems pretty robust without any cryptography, without much tedium of managing keys, etc. 23:15:18 Hmm. They seem orthoganal. But what do *I* know? 23:15:52 DanC, but isn't that because the server is centralized? 23:16:05 em-mit has quit 23:16:14 after sep 11, I thought it might be nice if everybody I got on a plane with was certified, in an advogato style, as somebody you'd be happy to get on a plane with... certified in such a way that if they did something criminal, their certifiers would have to forfeit a penalty. 23:16:37 J: I especially like the new picture at the end of the pager :) 23:16:37 commented item J 23:16:48 * AaronSw finds that idea really creepy 23:16:54 (to DanC) 23:17:18 * DanC finds the idea that anybody with a boxcutter can turn an airplane into a weapon of mass destruction creepy too. 23:17:35 I like the idea that people should be connected to communities. 23:17:42 * bijan notes that the current "kick off the folks who make you uncomforatable" stuff currently going on to be a *very bad* implementation of this idea. 23:17:58 s/to be/is/ 23:18:12 dajobe has quit 23:18:19 this idea == ?x 23:18:24 * DanC is away: family time 23:18:31 Bye dan. 23:18:41 c'ya 23:18:51 DanC's application of advogato trust stuff to airplane passenger verification. 23:19:20 I just don't think that people should be expected to see the insane terrorist in a person who has acted perfectly normal all their lives. 23:19:42 well, yes, there is that too. 23:19:50 I.e., I don't think it would work. 23:20:19 In any case, if I got really paranoid, I'd have to fly the plane myself. 23:20:58 Anyway, back to digisigs and advogato, I don't understand why you think they're particularly linked. 23:21:25 I guess they're not. 23:21:49 I just sorta got distracted by them. ;) 23:21:54 I thought the appeal of the advo scheme is that even in the presence of bad nodes you do well. 23:21:54 heh. 23:22:14 Yes, that is the appeal. 23:22:19 But it requires that you have a trust source. 23:22:25 Yes. 23:22:45 may i assume that under discussion is: 23:22:47 http://www.advogato.org/trust-metric.html 23:22:48 K: http://www.advogato.org/trust-metric.html from SethR 23:22:52 So you have to do everyone-is-their-own-trust-source, I think. 23:22:58 SethR, yes 23:23:04 .google pymmetry 23:23:05 pymmetry: http://sourceforge.net/projects/pymmetry 23:23:06 Hmm. I also meant something a bit different than document trust. 23:23:17 K:|Advogato's trust metric 23:23:18 titled item K 23:23:24 K:See also [pymmetry|http://sourceforge.net/projects/pymmetry] the Python implementation. 23:23:24 commented item K 23:23:27 I was thinking within an RDF graph. 23:23:42 The network flow stuff is interesting generically. 23:23:51 I think. 23:23:59 Can you give an example? 23:24:03 I mean, you don't have to just flow *trust*, yes? 23:24:09 Ok... 23:24:12 You might flow confidence. 23:24:29 Ooh, interesting! 23:24:42 So I'm really confident in this fact, but then I have a series of shaky inferences? 23:24:56 Or something like that. 23:25:02 or propogate certainty. 23:25:13 I hadn't thought of that. That's a really good use for it. 23:25:32 Relevance, too. 23:25:45 How would it work for relevance? 23:27:38 Working on it... 23:28:58 aaron, ever think on how to apply trust\confidence\relivance to the problem of what words exist in a namespace ? 23:29:19 No, since I don't see that as a problem, since I don't believe in namespaces. 23:29:38 oh, that comes as a surprise ... why not? 23:29:54 Umm, because they're not in the RDF model. 23:30:46 Hmm. If you're trying to winnow down results (a common relevance thing) the point would be to make it so that you had a lot of choke points. 23:30:54 I.e., the relevance "flow" wouldn't get very far. 23:30:58 huh? a property uri is namespace+localName .... doesnt that put it squarely in the model ? 23:31:20 SethR, no... a property URI is just a URI. namespaces are a side-effect of the XML syntax. 23:31:23 a property name is actually just URI-View 23:31:25 Namespaces are a purely syntactic trick. 23:31:42 sbp, not in my idea world. ;-) 23:32:03 Even in XML. 23:32:10 you and your utopian visions :-) 23:32:35 so just say {foo:bar existsIn :foo} and the namespace of foo:bar is in the model 23:33:20 You could do that. It's still not a problem I'm interested in. 23:34:15 * bijan notes, cautiously, for the record, that that clearly doesn't get it into the RDF model. (in so far as I understood SethR's last statement) 23:34:40 Proof: it doesn't perturb the MT one bit. 23:35:05 Umm, it gets it into the graph. 23:35:11 point being that one can assert it into the model 23:35:18 It gets it into *a* graph. 23:35:43 Ok. 23:36:00 No specific graph is the RDF data model. 23:36:03 Anyway, what would relevance flow along, bijan? 23:36:18 if its in the a graph, its in the model the graph represents 23:36:30 Seth, try http://jiscmail.ac.uk/cgi-bin/wa.exe?A2=ind0111&L=dc-registry&P=1924 23:36:51 SethR, yes, but that graph doesn't model RDF. It's modeled *by* RDF. 23:37:36 Aaron, I'm not sure. I suspect Google link analysis is sorta like this. 23:37:50 bijan, lets get back to your relevance flow stuff .. thats more interesting 23:38:19 Since we have, in rdf, in effect, typed links, one could gauge propogate relevance in a number of weighted manners. 23:38:25 I believe the Google analysis (an old version) is described by: http://citeseer.nj.nec.com/page98pagerank.html 23:39:17 In HTML at http://www-db.stanford.edu/~backrub/google.html 23:39:26 Hmm. I guess I'm generalizing...it seems one can do link analysis in a number of different ways. I.e., the *fact* of the connection can be interesting. 23:39:34 So too can the paths available. 23:40:14 is that (that=http://www-db.stanford.edu/~backrub/google.html) why google is performing so well ? 23:40:40 sorry, reading up on semantic nets is making me take (ugh) link traversal marginally seriously. 23:40:51 SethR, part of it. 23:41:00 and the other part? 23:41:30 That they hired smart people to go beyond that. 23:41:34 Google *is* the web. 23:41:47 Our final design goal was to build an architecture that can support novel research activities on large-scale web data. To support novel research uses, Google stores all of the actual documents it crawls in compressed form. 23:41:53 PageRank of a Page A is defined as: 23:41:53 PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn)) 23:42:01 * bijan is ready to cede the web to google. 23:42:08 Heh heh heh. 23:42:14 If only they'd cache the Internet Archive... 23:42:21 Then I would give in. 23:42:45 * bijan is willing to give all of MS's money to google. 23:42:58 * AaronSw is very generous with MS's money. 23:43:16 * bijan is also willin got give all of Aaron's future earnings to google. 23:43:35 * AaronSw is willing to sell bijan's sports car and give the proceeds to Google. 23:43:58 anybody know how\if google makes any money? how they survive? 23:44:07 Heh. So you're willing to give $0.00 to google, aaron? 23:44:12 SethR, advertising. 23:44:26 bijan, I'll wait until you get a sports car. 23:44:52 Plus I'll donate your impressive teacher's salary. 23:45:14 $0.00 again, eh? 23:45:32 chihchun has quit 23:46:10 ;-) 23:46:11 chihchun has joined #rdfig 23:46:14 wow, there ads are really unobtrusive .. i never noticed them .. or maybe nobody would want to advertise in a context which would interest me :( 23:46:16 * sbp wonders how much space the Google repository takes up in 2001 23:46:43 sbp, terrabytes and terrabytes 23:47:12 s/rr/r/ 23:48:01 i wonder if google has a meta database of keywords -> context-clusters ? 23:48:45 * sbp finds it quite cool how Google can be used as a spell-checker too: just compare result quantities 23:49:57 what blew me away the other day was when i typed in mentography to their image search and found most of my graphs indexed there 23:52:05 sbp, have you played with XPCE yet? 23:53:50 I don't know... have I? 23:53:53 No, I haven't... 23:54:09 GUI for Prolog... different 23:54:35 er, GUI toolkit, rather. GUI API? 23:54:41 Yes. 23:54:43 And object system. 23:55:04 * bijan has this fantasy of hooking the n3 reader up to a dynamically drawn graph. 23:55:09 Check out the demos. 23:56:40 binan, i think someone on the jena list was talking aobut that 23:56:48 * AaronSw wants to hook up his stuff to the Python dynamically drawn interactive graph stuff Ka-Ping is doing... 23:58:21 what id like in an interactive graph tool would be to read in n3 and then select arrows and drag the selection into a context box 23:59:32 I'd like a text editor with menu functions like "convert this N3 into NTriples", and "apply filter from file" 23:59:56 sbp, shouldn't you be able to hook emacs up to CWM for that?