IRC log of dig on 2006-10-09

Timestamps are in UTC.

01:49:10 [lkagal]
lkagal has quit ()
07:49:49 [tlr]
tlr (n=roessler@ip-83-99-62-80.dyn.luxdsl.pt.lu) has joined #dig
13:34:57 [DanC_lap]
DanC_lap (n=connolly@64-126-89-30.dyn.everestkc.net) has joined #dig
14:24:33 [lkagal]
lkagal (n=lkagal1@98.68.171.66.subscriber.vzavenue.net) has joined #dig
15:56:27 [lkagal]
lkagal has quit ()
16:18:00 [DanC]
DanC (n=connolly@64-126-89-30.dyn.everestkc.net) has joined #dig
16:18:33 [DanC]
DanC has changed the topic to: DIG 9 Oct cancelled: MIT is closed for Columbus day http://web.mit.edu/hr/empservices/mit_holidays.html
16:21:19 [DanC]
svn co svn+ssh://mindswap.org/home/svn/paw/www/tags/paw-demo-m2/
16:21:28 [DanC]
Checked out revision 271.
16:23:10 [DanC]
I have the trace from 9 Aug... ugh... it doesn't include the command-line
16:24:51 [DanC]
"
16:24:51 [DanC]
Just a note that running engine.py (with no argument) is still the
16:24:51 [DanC]
current way of running all the test cases the demo needs to support."
16:26:14 [DanC]
~/w3ccvs/WWW/2000/10/swap$ cvs update -l -r paw-demo-m1
16:27:03 [DanC]
ImportError: No module named swap
16:27:43 [DanC]
ImportError: No module named rdflib.Graph
16:28:34 [DanC]
ok, fixed PYTHONPATH to get swap and rdflib...
16:29:06 [eikeon]
I can swap in PAW demo now too.
16:29:51 [eikeon]
Can check in bits that hook premise stuff back up and tag it as paw-demo-m3 in the paw svn
16:30:16 [DanC]
"INFO Got expected result for html/images/group.jpg, html/troop42-policy1.n3, alice" <- that's case #1 working, yes?
16:30:38 [DanC]
and "INFO Got expected result for html/images/group.jpg, html/troop42-policy1.n3, alice" is case #2 passing?
16:31:19 [eikeon]
For each of the use cases it goes through all the users.
16:31:30 [DanC]
ah... so those are both part of case #1
16:31:45 [eikeon]
So it's 3 by 7 (there's a user unknown added to)
16:35:18 [DanC]
hmm... it looks like it's passing all the tests. or at least: it's passing the last one.
16:35:25 [DanC]
If I grep for INFO, the last thing I get is:
16:35:32 [DanC]
INFO testing html/images/alice-award.jpg, html/troop42-policy3.n3, unknown
16:35:32 [DanC]
INFO findProof("file:///home/connolly/paw2/paw-demo-m2/html/images/alice-award.jpg", "file:///home/connolly/paw2/paw-demo-m2/html/troop42-policy3.n3", "unknown-passwd", "mid:123")
16:35:32 [DanC]
INFO Got expected result for html/images/alice-award.jpg, html/troop42-policy3.n3, unknown
16:35:53 [DanC]
grepping for info on the 9Aug trace yeilds likewise.
16:36:16 [eikeon]
So it looks like you're able to reproduce the results.
16:36:53 [eikeon]
You could grep for "INFO Got" maybe to get all the results.
16:37:09 [eikeon]
To see if all 27 are passing.
16:37:49 [DanC_lap]
DanC_lap has quit (Read error: 110 (Connection timed out))
16:38:24 [eikeon]
Um... not all 27, but the same as in 9Aug
16:38:28 [DanC]
$ grep "INFO Got" ~/Desktop/paw9Augtrace.txt |wc 26 208 2189
16:38:53 [DanC]
$ grep "INFO Got" ,engine.out |wc
16:38:53 [DanC]
26 208 2189
16:39:23 [eikeon]
I'm checking in engine.py and friends now with the premise bit hooked back up. Maybe we can figure out why it's not passing as many tests.
16:40:28 [DanC]
26 matches today's run and the 9Aug run. I guess that means 1 out of 7 fails?
16:40:35 [DanC]
er... 1 out of 27
16:40:54 [eikeon]
You'll have to look at Got expected vs. Got unexpected.
16:41:19 [DanC]
0 hits for grep "INFO Got un" ,engine.out
16:41:36 [DanC]
$ grep unexp ,engine.out
16:41:36 [DanC]
ERROR Got unexpected result for html/images/alice-award.jpg, html/troop42-policy3.n3, dan
16:41:36 [DanC]
ERROR Got unexpected result for html/images/alice-award.jpg, html/troop42-policy3.n3, elle
16:42:13 [DanC]
ah... so troop42-policy3 is case #3
16:42:44 [eikeon]
Yeah.
16:46:39 [lkagal]
lkagal (n=lkagal1@98.68.171.66.subscriber.vzavenue.net) has joined #dig
16:49:23 [DanC]
er... this code looks odd... requestNum isn't used.
16:49:43 [eikeon]
Okay... checked in version that has premise bit hooked back up. Result is that less test cases are passing now :(
16:51:53 [eikeon]
Indeed. Looks like dead code. I'll remove it. re: requestNum
16:52:03 [DanC]
why doesn't "Now checking proof..." show up in the output?
16:52:13 [DanC]
er... don't remove requestNum; use it. i.e. don't hardcode the request number.
16:52:26 [DanC]
request_id = "mid:123"
16:52:28 [DanC]
should be:
16:52:49 [DanC]
request_id = "mid:%d@demo.policyawareweb.org" % requestNum; requestNum += 1
16:53:09 [DanC]
the code was that way at one point... it makes me wonder what else has regressed
16:54:15 [DanC]
_logger.setLevel(logging.INFO)
16:55:42 [DanC]
ew.. `pydoc logging` crashes
16:55:53 [DanC]
File "/usr/lib/python2.4/inspect.py", line 437, in findsource
16:55:53 [DanC]
if pat.match(lines[lnum]): break
16:55:53 [DanC]
IndexError: list index out of range
16:58:01 [DanC]
how can I skip right to the relevant case, eikeon ?
16:58:03 [eikeon]
You probably want _logger.setLevel(logging.DEBUG)
16:58:15 [DanC]
actually, I changed several .debug()'s to .warn()
16:58:31 [DanC]
but I guess I'll change the level too
16:59:28 [eikeon]
If you look in engine.py at the main function you can change users and resources to taste.
16:59:50 [eikeon]
And later in main you'll see that it goes though all resources for all users.
16:59:51 [DanC]
oh. hack the source. ok. oh well.
17:01:01 [DanC]
WARNING irrelevant conjecture: {3}
17:02:07 [DanC]
WARNING irrelevant conjecture: @prefix : <http://dig.csail.mit.edu/2005/09/rein/network#> .
17:02:07 [DanC]
<mid:123> a :Request;
17:02:07 [DanC]
:ans :InValid;
17:02:07 [DanC]
:resource <file:///home/connolly/paw2/paw-demo-m2/html/images/alice-award.jpg> .
17:02:49 [DanC]
indeed, that's not a conjecture that dan gets access.
17:03:25 [DanC]
I guess I should re-sync with you... if I check in, it'll go on this paw-demo-m2 branch. Should I do that?
17:04:24 [eikeon]
It'd probably be easier to keep working off of trunk. the paw-demo-m2 was meant to be a tag not a branch.
17:04:36 [DanC]
ok... saving my diffs...
17:05:36 [DanC]
Updated to revision 273.
17:06:20 [eikeon]
I'm at 273 too
17:07:55 [eikeon]
svn commit -m "each test case uses a unique request_id now"
17:07:56 [eikeon]
Password:
17:07:56 [eikeon]
Sending demo/engine.py
17:07:56 [eikeon]
Transmitting file data .
17:07:56 [eikeon]
Committed revision 274.
17:08:55 [DanC]
this "irrelevant conjecture" warning suggests the filter is wrong or something
17:09:23 [eikeon]
Would you like me to add option parsing to our test case script so we can set logging level and which test cases to run?
17:09:50 [DanC]
yes, though there's no particular rush on that.
17:10:53 [DanC]
right now I'm trying to reproduce the argument that dan should see the award photo
17:12:05 [eikeon]
Award photo is controlled by policy 2.
17:12:25 [DanC]
really?
17:12:27 [DanC]
INFO findProof("file:///home/connolly/paw/www/2005/demo/html/images/alice-award.jpg", "file:///home/connolly/paw/www/2005/demo/html/troop42-policy3.n3", "dan-passwd", "mid:123")
17:12:41 [eikeon]
Ah... alice-award
17:12:53 [eikeon]
Alice-award is controlled by policy 3
17:14:04 [eikeon]
The test case code is expecting the following users to have access: return user in ["alice", "bob", "carol", "dan", "elle", "judy"]
17:15:06 [eikeon]
I'll refactor the test case code now to we can set log level and test cases to run with command line flags. Will you be around for a bit so we can sync up?
17:15:14 [eikeon]
Shouldn't take long.
17:16:25 [DanC]
I intend to be around for hours.
17:17:29 [eikeon]
Sounds great. No better time than now in that case ;)
17:22:59 [DanC]
cwm isn't finding a proof that dan has access.
17:25:11 [DanC]
#SepJamboree troop:attendee [ is foaf:maker of <dan-foaf.rdf> ]
17:26:49 [DanC]
eikeon, why do you think dan can access alice-award.jpg ?
17:27:11 [DanC]
# test cases that correspond to GS demo use cases as taken from:
17:27:11 [DanC]
# http://dig.csail.mit.edu/2005/09/rein/examples/
17:27:54 [DanC]
"Alice's mom has granted public access to a class of pictures to which this picture belongs to on her foaf page, so Dan is permitted to view this picture even though he is not a member of the troop."
17:28:17 [eikeon]
DanC: Test case could be wrong. lkagal helped me work though the expected results though and I think we where fairly confident they where right.
17:28:53 [eikeon]
I didn't think so many people had access on first reading. I'll try and swap it back in now
17:29:21 [DanC]
wow... we're using <http://www.agfa.com/w3c/euler/rpo-rules.n3> ? I wonder if we told check.py to trust that.
17:29:46 [DanC]
er... maybe only indirectly.
17:30:27 [eikeon]
Ah... the prose is easy to follow. Next to see if the policy lines up with the prose.
17:30:28 [DanC]
I wonder how to update this command-line:
17:30:31 [DanC]
[[
17:30:31 [DanC]
cwm --rdf http://dig.csail.mit.edu/2005/09/rein/examples/dan-req.rdf --n3 http://dig.csail.mit.edu/2005/09/rein/engine.n3 --think --filter="http://dig.csail.mit.edu/2005/09/rein/filter.n3"
17:30:32 [DanC]
]]
17:31:49 [eikeon]
That's one of the reasons why we went though the pain of pulling the policy into svn space. We can version and know which policies we're dealing with now without digging through the code.
17:32:22 [DanC]
meanwhile, can use the local/svn stuff with cwm?
17:32:36 [eikeon]
You tell me.
17:32:44 [DanC]
that cwm command-line comes to the relevant conclusion.
17:33:19 [eikeon]
I'll give it a try.
17:34:37 [eikeon]
Actually I'll keep going on the test case refactor. No sense in us both doing the same thing ;)
17:35:21 [DanC]
hmm...
17:35:23 [DanC]
ENGINE = 'http://dig.csail.mit.edu/2006/06/rein/src/lean-engine.n3'
17:36:10 [eikeon]
Yep, think that's the version we're using these days. Part of the solution to things being too slow.
17:36:57 [DanC]
er... well, that explains why it's not working. The lean engine is too lean to come to the relevant conclusion.
17:47:52 [DanC]
eikeon? still here? this problem with alice-award.jpg and dan has nothing to do with cwm proof checking; it's working as designed, no?
17:48:14 [eikeon]
I'm still here... how do we make it work?
17:49:00 [eikeon]
Can we write a lean-engine that can handle policy 3 and not be too slow?
17:49:13 [DanC]
define "too slow"
17:49:43 [DanC]
does it really matter that some of the cases take a long time to run?
17:49:54 [eikeon]
Before the f2f last January I think we're hoping to have them down in some seconds instead of some minutes.
17:50:37 [eikeon]
Can we write it in a way that doesn't slow down the first two test cases even if the third is slow?
17:50:56 [DanC]
yes, well, someone judged it acceptable to switch to a lean engine. In doing so, it seems natural to just cut the dan/alice-award.jpg case out of the demo
17:51:08 [eikeon]
Think it matters from a practical stand point that the first two are not too much slower than they are... else it's not demo-able.
17:51:47 [eikeon]
Fine by me if we can communicate the issue / status to Jim and company and they are fine with it.
17:52:23 [eikeon]
Next up would be to work though why some of the test cases are not working after I hooked the premise bit back up.
17:52:39 [DanC]
ok. which case?
17:53:28 [eikeon]
Let's narrow down to the first two policies and work through the ones that are failing (they used to all pass)
17:53:47 [eikeon]
Not sure which specific ones... just noticed some unexpected in the output.
17:54:06 [eikeon]
Also, I'm almost done with the new run_tests command line interface.
17:54:50 [eikeon]
Will check that in soon... will make it easier for us to control output and see what's passing / failing.
17:55:21 [DanC]
ERROR Got unexpected result for html/images/group.jpg, html/troop42-policy1.n3, bob. Expected: True
17:56:29 [DanC]
DEBUG acl entails it? False
17:56:29 [DanC]
Proof failed: I cannot assume {{4} rdf:type rein:RequestFormula}
17:56:29 [DanC]
WARNING invalid proof.
17:57:04 [DanC]
that looks like a premise hookup problem
17:57:05 [eikeon]
That's what I'm getting too.
17:59:20 [DanC]
"alice-passwd" vs "bob-passwd"
18:00:00 [DanC]
the assumption in the proof has "alice-passwd"
18:01:25 [DanC]
I'm still getting <mid:123> everywhere... I guess I haven't updated yet.
18:03:12 [eikeon]
I'm updating that as part of my test case running improvements.
18:03:24 [eikeon]
Give me a few more minutes and I'll check in what I have.
18:04:52 [eikeon]
svn commit -m "split out run_tests code into its own file and added command line option parsing"
18:04:53 [eikeon]
Password:
18:04:53 [eikeon]
Sending demo/engine.py
18:04:53 [eikeon]
Adding demo/run_tests.py
18:04:53 [eikeon]
Transmitting file data ..
18:04:53 [eikeon]
Committed revision 275.
18:05:03 [eikeon]
I can help hunt too now that I know what to look for.
18:05:26 [DanC]
C engine.py
18:05:26 [DanC]
A run_tests.py
18:05:26 [DanC]
Updated to revision 275.
18:05:37 [eikeon]
It's now run_tests.py
18:05:41 [eikeon]
With or without -v
18:05:46 [eikeon]
or --verbose
18:05:51 [eikeon]
And can do --help
18:08:15 [eikeon]
Also, it'd be nice to walk through the code at a high level to make sure it makes sense...
18:08:39 [eikeon]
The proxy is now needing to send the secret along with the proof to the resource server.
18:08:53 [eikeon]
As part of the premise code rehookup.
18:09:06 [DanC]
yes, I keep going back and forth about whether that's fixable
18:09:42 [DanC]
part of my brain says we should be able to do challenge-response authentication, but I seem to be able to convince myself that it's impossible more readily than I can come up with a way to do it.
18:10:14 [eikeon]
:) -- not a confidence booster ;)
18:11:02 [eikeon]
So where are we at re: this test case failing... do we think the proof is being generated correctly and is not checking correctly?
18:11:15 [eikeon]
Or do we know the proof is not being generated correctly? or?
18:11:42 [eikeon]
Wanna constrain where I'm looking for a bug.
18:11:44 [DanC]
the proof has alice-passwd where it should have bob-passwd. I haven't figured out why
18:13:15 [DanC]
hmm... which case are we on, again? it was html/images/group.jpg / bob a minute ago...
18:13:34 [eikeon]
I'm just rerunning now to find which case.
18:13:47 [eikeon]
I'll also add an option for specifying a test case now.
18:13:47 [DanC]
now the only failures I get are alice-award.jpg/dan and alice-award.jpg/elle
18:14:16 [eikeon]
Sometime we hit a state where the results vary from run to run.
18:14:21 [DanC]
ew
18:14:28 [eikeon]
Could be in one of those fun states ;)
18:15:06 [eikeon]
Hum... maybe cause I thought I hit a case that failed pretty much right away last time... still waiting this run.
18:16:46 [eikeon]
I just did that with a comment ;)
18:16:59 [eikeon]
# We're removing this resource for now since the engine we're
18:16:59 [eikeon]
# using at the moment can't support policy 3
18:16:59 [eikeon]
# "html/images/alice-award.jpg"]
18:17:24 [DanC]
# the lean engine doesn't cover this case
18:17:24 [DanC]
# "html/images/alice-award.jpg"
18:17:29 [eikeon]
Ah...
18:17:36 [eikeon]
think I might have hit it.
18:17:56 [eikeon]
Are you running with run_tests now?
18:18:11 [eikeon]
Looks like mine are all passing now.
18:18:25 [eikeon]
Might have been the request_id thing being the same between test cases?
18:18:32 [DanC]
yes, using run_tests here. and all are passing. (at least all 7 users on policy1)
18:18:53 [DanC]
yes, let's chalk it up to something like request_id clobbering.
18:19:23 [eikeon]
Sweet. Looks like we're finally making headway!
18:19:58 [DanC]
yes... though oddly... we're not running into any of the funky/subtle cwm/proof/bnode issues.
18:20:32 [eikeon]
If we run out of other bits... we can see why things are not working with trunk version of cwm
18:21:07 [DanC]
hmm... I'm tempted to declare victory instead ;-)
18:21:14 [eikeon]
We should fire off an email re: policy 3 to see what the demo needs are there.
18:22:28 [eikeon]
Yeah... not opening the cwm/trunk potential can of worms if fine by me. The tagged version seems to be doing well for us.
18:22:52 [eikeon]
Hum... just hit a FAILED.
18:22:54 [eikeon]
Grrrr.
18:23:31 [eikeon]
Before we can declare victory I think we need to run the test cases through a number of times :(
18:24:19 [eikeon]
Maybe false alarm... but we should still probably run though a couple times...
18:24:29 [eikeon]
re: false alarm: ERROR Got unexpected result for html/images/alice-award.jpg, html/troop42-policy3.n3, dan. Expected: True
18:24:29 [eikeon]
FAILED
18:24:36 [eikeon]
Notice that was policy3 still.
18:25:33 [eikeon]
For some reason after every time I change run_tests.py the next time I run it... it's been running a stale version somehow.
18:25:49 [eikeon]
First time I thought I just didn't save it...
18:26:05 [eikeon]
then thought maybe it was still running from before I made the change...
18:26:16 [eikeon]
but this is like the third time now. And no.
18:26:18 [eikeon]
Odd.
18:29:04 [eikeon]
PASSED
18:29:04 [eikeon]
PASSED
18:29:05 [eikeon]
PASSED
18:29:05 [eikeon]
PASSED
18:29:05 [eikeon]
PASSED
18:29:05 [eikeon]
PASSED
18:29:07 [eikeon]
PASSED
18:29:09 [eikeon]
...
18:29:27 [eikeon]
Much better output to follow ;)
18:31:23 [tlr]
tlr has quit ("leaving")
18:34:26 [eikeon]
PASSED 21 / FAILED 0
18:35:18 [eikeon]
Ah... we have two resources controlled by policy 1
18:36:08 [DanC]
yes; is that surprising?
18:37:07 [eikeon]
Only that I was wondering why it was still testing cases beyond 14 of them as I was waiting for it to finish.
18:37:13 [DanC]
ah
18:37:37 [eikeon]
svn commit -m "removed resource controlled by policy3 for now since our engine is to lean to support it"
18:37:37 [eikeon]
Password:
18:37:37 [eikeon]
Sending demo/run_tests.py
18:37:37 [eikeon]
Transmitting file data .
18:37:38 [eikeon]
Committed revision 276.
18:38:27 [eikeon]
Tag this as paw-demo-n3
18:38:50 [DanC]
well, my mail message includes an svn version number; that's enough of a tag for my purposes
18:38:54 [eikeon]
And test end to end demo beyond run_tests
18:39:03 [eikeon]
True.
18:39:29 [DanC]
re what next... by way of code walkthru, there's no module docstring in run_tests
18:40:20 [DanC]
I like to aim for a state where running pydoc on a module yields happy results. (or epydoc). and I like doctest tests.
18:40:29 [eikeon]
Who's editing what? Are you adding one or shall I?
18:40:52 [eikeon]
Can fire up SubEthaEdit too if you like?
18:40:56 [DanC]
I don't understand the split between engine.py, paw_check.py, and run_tests.py to do module docstrings
18:40:59 [eikeon]
Not sure if you have OS X nearby
18:41:09 [DanC]
I have a mac laptop here...
18:41:25 [DanC]
though actually, I'd rather try vnc
18:41:40 [eikeon]
'k
18:41:51 [eikeon]
Know what I need to install?
18:42:11 [DanC]
if you're on a mac, nothing; "apple remote desktop" speaks the vnc protocol
18:42:21 [eikeon]
I'm on a mac
18:42:39 [eikeon]
Can we share something like an emacs window?
18:43:10 [DanC]
umm... we can share your screen. I'm not sure how to share less.
18:43:33 [eikeon]
Shall we try it now?
18:43:35 [DanC_lap]
DanC_lap (n=connolly@64-126-89-30.dyn.everestkc.net) has joined #dig
18:43:50 [DanC]
yes...
18:44:21 [DanC]
system preferences, sharing... do you see apple remote desktop there?
18:45:24 [eikeon]
Yep
18:45:36 [DanC]
hmm... looks like you have to give me an account on your machine. that's a little odd.
18:45:59 [DanC]
maybe it's less constrained in tiger.
18:46:30 [eikeon]
There's a "Guests may request permission to control screen" option
18:47:29 [DanC]
not here on this 10.3.9 box. you must have the newer OS. good.
18:47:40 [DanC]
is your machine behind a firewall?
18:48:00 [eikeon]
10.4.8 and sitting on its own static IP
18:48:26 [eikeon]
Makes stuff like this a lot easier ;)
18:49:12 [DanC]
so the only remaining thing should be a password. call me or something?
18:49:14 [DanC]
I'm available at tel:+1-617-395-0241
18:49:44 [DanC]
$ vncviewer 66.92.168.155
18:49:44 [DanC]
VNC server supports protocol version 3.889 (viewer 3.3)
18:50:13 [eikeon]
I checked the Guest option... I'll call you with a password... and I checked send text messages, and Observe + control.
18:51:19 [eikeon]
Calling now
18:58:16 [DanC]
vnc client for mac http://sourceforge.net/projects/cotvnc/ "Chicken of the VNC is a VNC client for Mac OS X."
19:00:35 [DanC]
on skype, I'm connollydwc
19:34:41 [eikeon]
Forgot we're still over here too
19:42:25 [eikeon]
/usr/local/bin/python2.4 run_tests.py --user=alice
19:42:25 [eikeon]
PASSED
19:42:25 [eikeon]
PASSED
19:42:26 [eikeon]
PASSED
19:42:26 [eikeon]
PASSED 3 / FAILED 0
19:51:23 [timbl]
timbl (n=timbl@146-115-112-112.c3-0.lex-ubr1.sbo-lex.ma.cable.rcn.com) has joined #dig
19:51:55 [DanC]
eikeon and I are hacking PAW demo stuff, using skype and subethaedit.
19:53:55 [timbl]
cool
19:54:06 [timbl]
Saubethaedit remotey?
19:54:13 [timbl]
does that work?
19:54:18 [DanC]
yes.
19:54:25 [DanC]
eikeon's machine is on the Interenet
19:54:28 [DanC]
Internet
19:54:55 [DanC_lap]
see://kitty.eikeon.com:6942/run_tests.py?documentID=5B72F9DE-57CA-11DB-A0BD-00112474D8EA
19:55:07 [DanC_lap]
they squatted in the URI scheme registry. :-/
19:55:55 [eikeon]
Subethaedit is actually the motivating reason why I put my desktop on a static IP ;)
19:56:21 [eikeon]
Even though I've not ended up using it too much :| -- We're making good use of it now though ;)
20:42:31 [eikeon]
PASSED
20:42:31 [eikeon]
ERROR No tracker. This may happen if the formula is validly empty.
20:42:31 [eikeon]
Traceback (most recent call last):
20:42:32 [eikeon]
File "run_tests.py", line 103, in run_test_cases
20:42:32 [eikeon]
result = test_rein(engine, resource, policy, '%s-passwd' % user, request_id)
20:42:32 [eikeon]
File "run_tests.py", line 129, in test_rein
20:42:34 [eikeon]
pf = engine.findProof(uri, policy, secret, request_id)
20:42:36 [eikeon]
File "/Users/eikeon/paw/www/2005/demo/engine.py", line 72, in findProof
20:42:38 [eikeon]
return self._findProof(httpf, httprsn, configf, configr)
20:42:40 [eikeon]
File "/Users/eikeon/paw/www/2005/demo/engine.py", line 97, in _findProof
20:42:42 [eikeon]
pf = explainFormula(h)
20:42:44 [eikeon]
File "/Users/eikeon/paw/www/2005/demo/swap/why.py", line 104, in explainFormula
20:42:46 [eikeon]
raise ValueError(
20:42:48 [eikeon]
ValueError: No tracker. This may happen if the formula is validly empty.
20:42:50 [eikeon]
If this helps:
20:42:52 [eikeon]
def explainFormula(f, flags=""):
20:42:54 [eikeon]
"Return the explanation formula for f"
20:42:56 [eikeon]
tr = proofsOf.get(f, None)
20:42:58 [eikeon]
if tr is None:
20:43:00 [eikeon]
raise ValueError(
20:43:02 [eikeon]
"No tracker. This may happen if the formula is validly empty.")
20:43:04 [eikeon]
return tr[0].explanation(flags=flags)
20:48:18 [DanC]
timbl, any clues on this
20:48:23 [DanC]
timbl, any clues on this "No tracker" thingy?
20:50:14 [DanC]
@@created store: %d -1216474868
20:50:15 [DanC]
@@created store: %d -1216474676
20:52:35 [timbl]
I gues the tracker is a thing associated with a formula,
20:52:54 [timbl]
which holds the reaons for the statments in a formula -- where this is needed.
20:53:21 [timbl]
Eg if the formula is the knowedge base, or is the resul tof a log:conclusion
20:53:57 [timbl]
What isthe formula which gives this error? Is it your main workspace
20:54:02 [timbl]
for which you need a proof?
20:54:35 [DanC]
yes, the formula for which we need a proof
20:56:02 [DanC]
h = self._store.newFormula()
20:56:02 [DanC]
applyRules(g, self._filter, h)
20:56:02 [DanC]
h = h.close()
20:56:14 [DanC]
_logger.debug('Expressing proof as a graph...\n'
20:56:20 [DanC]
pf = explainFormula(h)
20:56:24 [DanC]
and then kerflewey.
20:56:42 [timbl]
Hmmm.
20:57:35 [DanC]
@@created store: -1216560308
20:57:35 [DanC]
@@created store: -1216560116
20:57:45 [DanC]
somehow we're creating 2 different stores.
20:58:09 [eikeon]
tb = sys.exc_traceback
20:58:09 [eikeon]
tb = tb.tb_next
20:58:09 [eikeon]
logger.error(traceback.print_exception(sys.exc_type, sys.exc_value, tb))
20:58:52 [timbl]
you means self._store is changing?
20:59:05 [DanC]
or something.
20:59:38 [timbl]
Is the tracking flag now an attribute of the store?
21:00:36 [DanC]
traceback.print_exception(sys.exc_type, None, sys.exc_traceback)
21:00:36 [DanC]
AttributeError: 'module' object has no attribute 'exc_traceback'
21:03:52 [DanC]
http://docs.python.org/lib/module-traceback.html
21:05:49 [eikeon]
>>> def foo():
21:05:50 [eikeon]
... traceback.print_stack()
21:05:50 [eikeon]
...
21:05:50 [eikeon]
>>> foo()
21:05:50 [eikeon]
File "<stdin>", line 1, in ?
21:05:51 [eikeon]
File "<stdin>", line 2, in foo
21:05:52 [eikeon]
>>> def bar():
21:05:54 [eikeon]
... foo()
21:05:56 [eikeon]
...
21:05:58 [eikeon]
>>> bar()
21:06:00 [eikeon]
File "<stdin>", line 1, in ?
21:06:02 [eikeon]
File "<stdin>", line 2, in bar
21:06:04 [eikeon]
File "<stdin>", line 2, in foo
21:06:06 [eikeon]
>>>
21:06:44 [DanC]
@@created store: -1213573908
21:06:44 [DanC]
File "run_tests.py", line 26, in ?
21:06:44 [DanC]
from paw_check import check_proof
21:06:44 [DanC]
File "/home/connolly/paw/www/2005/demo/paw_check.py", line 11, in ?
21:06:44 [DanC]
from swap import check
21:06:45 [DanC]
File "/home/connolly/w3ccvs/WWW/2000/10/swap/check.py", line 41, in ?
21:06:47 [DanC]
knownReasons = Set([reason.Premise, reason.Parsing,
21:08:17 [DanC]
File "/home/connolly/w3ccvs/WWW/2000/10/swap/notation3.py", line 1230, in __init__
21:08:28 [DanC]
notation3.py creates another store
21:08:35 [timbl]
You don't import the same mosule tice, making global store twice?
21:08:55 [DanC]
huh?
21:09:20 [DanC]
the problem is that swap/check.py creates a store and so does swap/notation3.py , and they're not the same store.
21:10:07 [DanC]
hmm... notation3.py creates an RDFSink(), not an RDF store... sorry...
21:15:10 [DanC]
timbl, have you ever tried to do 2 proofs in the same python process?
21:15:47 [timbl]
No, not at the top level.
21:15:59 [timbl]
Yosi may have done nested proofs for log:conclusion
21:16:24 [timbl]
You think proofsOf is getting initialized to {} at some pioint?
21:16:44 [DanC]
dunno...
21:17:28 [DanC]
I thought the problem was that symbols and formulas were getting created in different engines, but I just eliminated that problem, and the "no tracker" problem persists.
21:18:30 [timbl]
proofsOf is a global
21:19:01 [timbl]
Only used in why.py.
21:19:19 [timbl]
Only written to around 5 places
21:19:47 [timbl]
6
21:19:57 [timbl]
Couls put a diagnotic trace on each one
21:20:08 [timbl]
Could
21:20:20 [DanC]
well, I'm running out of energy on this for today. I'd be more interested to get rid of the globals.
21:21:08 [DanC]
there are some mysterious aspects to the swap.diag module; for years I have wanted to replace that with the python logging module. That might be the place to start.
21:21:17 [timbl]
Sounds as though it could be an attribute on te formula
21:22:38 [timbl]
danc, diag.progress would be a major place to start, and would it not just change 1 set of globals for another?
21:23:58 [timbl]
Could you check whether the line proofsOf[G] = pF + pG line 71) is ever executed?
21:24:03 [timbl]
It looks like an untested one
21:24:09 [timbl]
possiby untested one
21:24:45 [DanC]
yes, diag.progress would be trading one set of globals for another, but the other set is maintained by the python community
21:25:43 [timbl]
which would be all good, but how aout starting where this prrof stuff is by getting rid of proofsOf?
21:26:31 [timbl]
wow ... make fast was fast
21:26:49 [DanC]
At revision 285.
21:28:31 [DanC]
ok, checking for proofsOf[G] = pF + pG ...
21:29:16 [timbl]
I tried to run retest test/reason/detailed.tests and it crashed out
21:29:26 [timbl]
on t06zcheck
21:29:37 [DanC]
odd... I think what I just checked in might be bogus...
21:29:38 [DanC]
File "/home/connolly/paw/www/2005/demo/engine.py", line 43, in __init__
21:29:38 [DanC]
assert(diag.tracking)
21:29:38 [DanC]
AssertionError
21:30:33 [DanC]
we're using the version of swap tagged paw-demo-m1
21:30:38 [timbl]
_________
21:30:52 [timbl]
Oh... I am using the latest
21:30:56 [timbl]
I get raise "eh? this is silly - ever reached? s is statment not step"
21:30:57 [timbl]
eh? this is silly - ever reached? s is statment not step
21:31:08 [timbl]
File "/devel/WWW/2000/10/swap/why.py", line 483, in explain
21:31:48 [timbl]
That sounds like svn
21:32:09 [DanC]
run_tests.py: diag.tracking = 0
21:32:11 [DanC]
odd!
21:32:11 [eikeon]
:)
21:32:32 [timbl]
Repository revision: 1.48 /w3ccvs/WWW/2000/10/swap/why.py,v
21:32:48 [DanC]
no wonder!
21:33:12 [DanC]
[[
21:33:13 [DanC]
# Check will not work with diag == 1 nor will check._s2f
21:33:13 [DanC]
# See bug report of 9 Oct 2006
21:33:13 [DanC]
# http://lists.w3.org/Archives/Public/public-cwm-bugs/2006Oct/0003.html
21:33:13 [DanC]
diag.tracking = 0
21:33:13 [DanC]
diag.setTracking(0)
21:33:15 [DanC]
return check_proof(proof_string, request_id, uri, policy, secret)
21:33:17 [DanC]
21:33:19 [DanC]
]]
21:34:58 [timbl]
That bug looks like a lake base URI.
21:35:11 [timbl]
Nothing really connected to tracking itself
21:35:35 [timbl]
but something exposed by DanC's making it illegal to hand a non-absolute base URI to refTo
21:37:37 [DanC]
DEBUG @@check proof uri: file:/home/connolly/paw/www/2005/demo/html/images/group.jpg
21:37:41 [DanC]
looks absolute to me...
21:38:30 [DanC]
proof = check._s2f(proof_string.encode('utf-8'), base=request_id)
21:38:37 [timbl]
The assertion could be made to print its params ... ah it is ... is hte URI missing or empty or something?
21:38:46 [timbl]
# assert ':' in urirefString, "must be absolute: %s" % urirefString
21:38:46 [timbl]
# AssertionError: must be absolute:
21:38:58 [timbl]
or was the error report paste truncated?
21:39:08 [DanC]
DEBUG @@check proof request id: mid:1
21:39:31 [DanC]
I think the URI is missing or empty or something
21:42:21 [eikeon]
svn commit -m "return diag.tacking back to the value it was after we turn it off for checking" run_tests.py
21:42:21 [eikeon]
Password:
21:42:22 [eikeon]
Sending run_tests.py
21:42:22 [eikeon]
Transmitting file data .
21:42:22 [eikeon]
Committed revision 286.
21:42:38 [eikeon]
Just to get us back to a working state while we debug the issue.
21:44:11 [DanC]
thisDoc=""
21:44:22 [DanC]
if diag.tracking: self._reason2 = BecauseOfData(
21:44:22 [DanC]
store.newSymbol(thisDoc), because=self._reason
21:45:36 [DanC]
ah... looks like s2f doesn't correctly create the N3 parser object...
21:48:45 [DanC]
ok, after fixing that, I no longer get "no tracker" but rather...
21:48:46 [DanC]
ERROR Tracking reasons but no reason given for{_g_L97C34 pr:boundTo {3}}
21:50:03 [timbl]
This is is a proof about a proof?
21:50:17 [DanC]
no. not on purpose, anyway
21:50:51 [timbl]
It looks as though something is trying to expain why x is pr:boundTo y when pr:boundTo is the proof ontology.
21:51:06 [DanC]
we've got a proof in N3 string form. We're trying to parse it to a formula, and we're getting tripped up because we seem to be required to say why.
21:51:07 [timbl]
that suggests that we are making a proof onf a proof?
21:51:52 [timbl]
that meaning my last ine not yours
21:52:17 [DanC]
formulas, yes, but terms?
21:53:32 [timbl]
agreed.
21:53:48 [timbl]
Maybe it was left over from when the forallSome was stored as a statement
21:54:23 [eikeon]
none
22:00:33 [DanC]
oh... your desk... glad to hear it's tidy. I was wondering about my own
22:47:37 [timbl]
timbl has quit ()
22:54:14 [timbl]
timbl (n=timbl@146-115-112-112.c3-0.lex-ubr1.sbo-lex.ma.cable.rcn.com) has joined #dig