IRC log of swhack on 2001-10-21

Timestamps are in UTC.

00:00:07 [AaronSw]
Ah good.
00:00:12 [AaronSw]
Cool! http://adbusters.org/campaigns/july4/debate/comments.html
00:00:18 [sbp]
* sbp just wrote up many of his songs, in HTML form, as you can tell...
00:00:21 [AaronSw]
specifically: http://adbusters.org/campaigns/july4/debate/comments.html?id=3715
00:00:34 [sbp]
but not online! except for that one...
00:00:48 [sbp]
oh, this is your deeley
00:00:53 [sbp]
isn't it hosted on your box?
00:00:59 [AaronSw]
The logs?
00:01:09 [AaronSw]
I've been composing songs like that while I walk back from school... quite fun.
00:01:17 [AaronSw]
I need to produce one for an adbusting movie.
00:01:41 [sbp]
cool
00:01:55 [sbp]
have you written any of the down? Except the /x75 one
00:02:03 [AaronSw]
No, not really.
00:02:14 [AaronSw]
They're very much spontaneously improvised.
00:02:36 [AaronSw]
It's fun tho, the lyrics and rhyming work out surprisingly well
00:02:41 [AaronSw]
even tho you can't stop and rewind.
00:04:24 [sbp]
* sbp comes up with a convoluted chord sequence... I just can't get it to fit the pattern that I know it should fit
00:05:54 [sbp]
Bm7 Am7(V) GMaj/GMaj7 x
00:05:56 [sbp]
fill in the x!
00:06:23 [AaronSw]
After learning intervals in music class I can sort of read that! :)
00:06:29 [AaronSw]
So did you mess any with rdfapi?
00:06:38 [sbp]
I sent a letter to www-archive about it
00:07:14 [AaronSw]
Ah, I see.
00:07:23 [AaronSw]
Yes, I realized the comma bug as I woke up this morning. ;)
00:07:44 [AaronSw]
What else was there... oh yes, equivalence and repr
00:08:29 [sbp]
how do you feed in bNodes???
00:08:39 [AaronSw]
Just call Node()
00:08:43 [AaronSw]
err nod()
00:08:47 [AaronSw]
err node()
00:08:48 [AaronSw]
sorry
00:08:48 [sbp]
node()
00:08:55 [sbp]
and feed it what?
00:09:00 [AaronSw]
Nothing.
00:09:05 [AaronSw]
It'll return a blank node
00:09:09 [sbp]
http://lists.w3.org/Archives/Public/www-archive/2001Oct/0024
00:09:16 [AaronSw]
> I'm still not sure how it manages to decode the literal back into a u'' literal, seeing as how there is no reverse function.
00:09:20 [AaronSw]
Why would you need it to reverse?
00:09:25 [AaronSw]
Ahh, for output?
00:09:28 [sbp]
yeah
00:09:30 [AaronSw]
I'll add that...
00:10:19 [sbp]
O.K., so say I was feeding in a triple... I could send it triple.store('x', 'y', ???)
00:10:35 [sbp]
how would I feed it in nothing where the "???" is to get a blank node?
00:10:52 [sbp]
and, what happens when I want to feed in _:b and _:b: labelling the nodes?
00:11:08 [AaronSw]
store.triple('x', 'y', rdfapi.node())
00:11:45 [sbp]
so, for :x :y _:b . :y :x _:b . what would I do?
00:12:07 [AaronSw]
b = rdfapi.node()
00:12:17 [AaronSw]
store.triple('x', 'y', b)
00:12:23 [AaronSw]
store.triple('y', 'x', b)
00:12:34 [sbp]
but in practice, I can't do that when parsing an NT document into the store
00:12:50 [sbp]
well, I can, but it'll be tricky
00:13:00 [sbp]
I'll have to create a list of label/node values
00:13:16 [AaronSw]
Yes, same with output.
00:13:28 [AaronSw]
Just use a dictionary to do it.
00:13:41 [AaronSw]
label2Node['b'] = node()
00:14:01 [AaronSw]
store.triple(label2Node[nodeID], 'a','b')
00:14:44 [AaronSw]
Why should I define useful namespaces in in the API itself?
00:14:50 [AaronSw]
wouldn't it be better to make that a separate file?
00:15:14 [sbp]
dunno, just thought it would be neat
00:15:37 [AaronSw]
I took out the one I did define because I didn't use it.
00:15:40 [AaronSw]
Feel free to make a file of them for me.
00:15:44 [sbp]
O.K.
00:20:04 [sbp]
* sbp makes NTriples.py RDF API "compliant"
00:20:12 [AaronSw]
Yay! :)
00:24:51 [AaronSw]
Boston rocks: http://www.nat.org/camera/dsc03097-800x600.jpg
00:26:03 [sbp]
so... '' is a URI, u'' is a literal?
00:26:07 [AaronSw]
Yep.
00:26:16 [AaronSw]
Bijan helped me come up with that trick.
00:26:23 [sbp]
is there a function to convert '' to u''?
00:26:27 [sbp]
in Python
00:26:41 [AaronSw]
Hmm... let me check...
00:26:46 [AaronSw]
Hehe, Wes Felter: "I was surprised that the BMW salesman just handed me the keys and told me to bring it back by 6." - Hehe, Wes Felter: "I was surprised that the BMW salesman just handed me the keys and told me to bring it back by 6."
00:26:55 [AaronSw]
Oops, I meant http://wmf.editthispage.com/discuss/msgReader$5989
00:29:10 [sbp]
* sbp goes looking for the function
00:29:42 [AaronSw]
sbp, unicode('foo')
00:29:54 [AaronSw]
>>> unicode('foo')
00:29:54 [AaronSw]
u'foo'
00:30:06 [sbp]
yep, just got it at the same time :-)
00:30:15 [sbp]
and you can encode as UTF-8... neat
00:30:22 [AaronSw]
Wes: "I can tell that it would be easy to accumulate speeding tickets in any of these cars." :)
00:33:04 [sbp]
ugh, are you really sure you want to lose the bNode names?
00:33:16 [AaronSw]
Why is it so important to keep them?
00:33:34 [AaronSw]
Just indirect to objects thru a dictionary.
00:33:34 [sbp]
aw... it's not
00:33:55 [AaronSw]
Want me to create a simple function to do it for you?
00:35:31 [AaronSw]
nodeid2node_map = {}
00:35:32 [AaronSw]
def nodeid2node(nodeid):
00:35:32 [AaronSw]
if not nodeid2node_map.has_key(nodeid):
00:35:33 [AaronSw]
nodeid2node_map[nodeid] = rdfapi.node()
00:35:33 [AaronSw]
return nodeid2node_map[nodeid]
00:36:34 [sbp]
i've already done that
00:36:42 [AaronSw]
So why's it so hard?
00:36:46 [sbp]
I'm doing an output function now
00:37:03 [AaronSw]
Oh... I was going to do that in __repr__...
00:37:09 [AaronSw]
Well, it just goes the other way
00:37:16 [AaronSw]
reverse the direction of the dictionary.
00:38:08 [sbp]
yep
00:38:18 [sbp]
* sbp is doing other things at the same time, sorry...
00:38:28 [sbp]
what future do you predict for this API?
00:38:41 [sbp]
I mean: why bother, etc.? Gameplan?
00:38:43 [AaronSw]
I hope to use it in all my apps, which will eventually take over the world.
00:39:04 [AaronSw]
> I know, I know: it's an RDF 1.0 API. But is there any chance of a Quad class too?
00:39:04 [AaronSw]
Umm, it's emphatically not an RDF 1.0 API... and they already are effectively quads.
00:39:10 [sbp]
aha, that's reason enough for me to port my code over
00:39:26 [AaronSw]
:-)
00:39:41 [sbp]
ah, but they're tacky quads: with statement IDs. I meant quads with contexts
00:39:47 [sbp]
pents, then...
00:39:54 [AaronSw]
What do you think store() does?
00:40:04 [AaronSw]
I'm still thinking of the best way to do it though...
00:40:11 [AaronSw]
Next up is to implement N3 and RDF/XML parsing and them make a cwm-style command-line app.
00:41:49 [AaronSw]
Want me to do the N-Triples output then?
00:42:38 [AaronSw]
sbp?
00:42:49 [sbp]
No, I'm doing it now you big lunatic
00:43:00 [AaronSw]
OK, just asking. :)
00:43:59 [sbp]
ugh, this is a pain in the butt. O.K., when you have a dictionry, can you do for x in dictionary, and what does that return for x?
00:44:26 [AaronSw]
You probably want for x in dict.keys()
00:44:42 [sbp]
ah, yes, probably
00:44:53 [AaronSw]
I started this last night and I got this far:
00:44:54 [AaronSw]
output = '( '
00:44:54 [AaronSw]
for t in self.tripleList:
00:44:54 [AaronSw]
output += '\n\t{ <%s> <%s> <%s> }' % (t.subject.uri, t.predicate.uri, t.object.uri)
00:44:54 [AaronSw]
output += '\n)'
00:44:54 [AaronSw]
return output
00:45:10 [AaronSw]
where self is a store
00:45:31 [sbp]
I've got:-
00:45:31 [sbp]
def printnt(self):
00:45:32 [sbp]
x = ''
00:45:32 [sbp]
self.bNodes = {}
00:45:32 [sbp]
for triple in self.tripleList:
00:45:32 [sbp]
for term in triple:
00:45:34 [sbp]
if not term.uri: bNodes[term] = self.generatelabel(term)
00:45:36 [sbp]
def generatelabel(self):
00:45:38 [sbp]
for bNode in self.bNodes('keys'):
00:46:17 [AaronSw]
Huh?
00:46:45 [sbp]
oops
00:46:49 [sbp]
s/bNodes/self.bNodes
00:47:14 [AaronSw]
I'm not sure for term in tripleList will work?
00:47:16 [sbp]
er, and I meant .keys
00:47:40 [AaronSw]
I meant "for term in triple"
00:49:05 [AaronSw]
I think it's simpler than that -- whenever you encounter a node that isn't in the dict, just generate a random label for it.
00:49:15 [AaronSw]
or rather increment the last label
00:49:49 [sbp]
no, because if you match two nodes, then you have to generate the same label for them
00:50:06 [AaronSw]
Right, which is why you check that it's not in the dit
00:50:08 [AaronSw]
err dict
00:50:25 [sbp]
but you won't have a dict
00:50:50 [AaronSw]
Why not...
00:51:16 [AaronSw]
if not hasattr(t.subject, 'uri') and t.subject not in dict.keys():
00:51:41 [AaronSw]
dict[t] = 'a' + str(nodeNum + 1)
00:51:53 [AaronSw]
... repeat for preducate, object ...
00:53:31 [sbp]
on second thought, you can do the output function for me :-)
00:53:50 [AaronSw]
Heheh. I'll write an example you can convert to something more appropriate. :)
00:54:23 [sbp]
well, I've written the NTriples parser, but I have no way of telling if it has worked or not
00:55:03 [AaronSw]
OK... let me write the __repr_ func... just a sec
00:57:41 [sbp]
how do I get it to print an exception to file?
00:57:53 [sbp]
try: x.parsen(sys.argv[1])
00:57:54 [sbp]
except: print ???
00:58:01 [AaronSw]
look in logicerror.com/archiverProxy-code
00:58:37 [AaronSw]
search for 'errors.txt'
01:00:23 [sbp]
traceback.print_exception doesn't work...
01:01:05 [AaronSw]
really?
01:01:12 [AaronSw]
OK, finished the basic N-Triples stuff, should I upgrade?
01:01:18 [AaronSw]
Example output:
01:01:18 [AaronSw]
(
01:01:19 [AaronSw]
{ <http://www.w3.org/> <http://purl.org/dc/elements/1.1/title> <data:,World%20Wide%20Web%20Consortium%20%28W3C%29> }
01:01:19 [AaronSw]
{ _:a1 <http://example.org/foo/said> <http://example.org/foo/Aaron> }
01:01:19 [AaronSw]
)
01:01:53 [sbp]
yeah, please
01:03:05 [AaronSw]
code is really ugly
01:03:18 [sbp]
File "ntriples.py", line 78, in run
01:03:18 [sbp]
try: x.parsen(sys.argv[1])
01:03:18 [sbp]
File "ntriples.py", line 33, in parsen
01:03:18 [sbp]
f = open(fn, 'r'); self.parse(f); f.close()
01:03:18 [sbp]
File "ntriples.py", line 38, in parse
01:03:19 [sbp]
self.parsent() # Parse self.document into self.quads
01:03:21 [sbp]
File "ntriples.py", line 53, in parsent
01:03:23 [sbp]
self.appendq(line)
01:03:25 [sbp]
File "ntriples.py", line 65, in appendq
01:03:27 [sbp]
if not self.bNodes[bNode]: self.bNodes[bNode] = rdf.node()
01:03:29 [sbp]
KeyError: a
01:03:30 [AaronSw]
OK, it's uploaded
01:05:09 [AaronSw]
... and tests..
01:09:19 [sbp]
<method Store.__repr__ of NTriples instance at 007DDB6C>
01:09:40 [sbp]
how do I get it to print out?
01:09:42 [sbp]
I have x
01:09:53 [sbp]
x = rdf.Store()
01:09:57 [sbp]
I fed some junk in
01:10:01 [AaronSw]
print x
01:10:03 [sbp]
I want to print that junk out
01:10:06 [sbp]
ah, neat
01:10:11 [sbp]
very neat :-)
01:10:15 [AaronSw]
:-)
01:10:52 [sbp]
File "ntriples.py", line 84, in run
01:10:52 [sbp]
try: print x
01:10:52 [sbp]
File "rdfapi.py", line 165, in __repr__
01:10:52 [sbp]
sub = '&lt;'+t.subject.uri+'&gt;'
01:10:52 [sbp]
TypeError: cannot add type "None" to string
01:11:15 [AaronSw]
Hmm...
01:11:22 [sbp]
it's in rdfapi, so it's your problem :-)
01:11:27 [sbp]
my end works just fine... ahem
01:11:27 [AaronSw]
How is it getting None as uri?
01:11:40 [sbp]
bNodes have none as a URI
01:11:49 [sbp]
s/none/None/
01:12:01 [AaronSw]
They're not supposed to...
01:12:20 [sbp]
what?!
01:12:20 [sbp]
class Node:
01:12:20 [sbp]
nodeList = {}
01:12:20 [sbp]
01:12:20 [sbp]
def __init__(self, uri=None):
01:12:34 [AaronSw]
OK, fixed.
01:12:40 [AaronSw]
* AaronSw uploads
01:13:16 [AaronSw]
Done.
01:14:00 [sbp]
hooray!
01:14:00 [sbp]
(
01:14:00 [sbp]
{ _:a1 <#b> <data:,c> }
01:14:00 [sbp]
{ <data:,d> <data:,e> <data:,f> }
01:14:00 [sbp]
{ <#g> <data:,h> _:a1 }
01:14:01 [sbp]
{ <#j> <#k> <#l> }
01:14:03 [sbp]
{ _:a1 _:a1 _:a1 }
01:14:05 [sbp]
{ <#p> <#q> <data:,%5C%22r> }
01:14:07 [sbp]
{ <data:,%5C%22s> <#t> <data:,> }
01:14:09 [sbp]
)
01:14:11 [AaronSw]
Cool!
01:14:14 [sbp]
Pff: make it output proper NTriples, Aaron...
01:14:27 [sbp]
ah, your bNode output isn't working
01:14:27 [AaronSw]
Yes, that's a job for the ntriples.py module ;)
01:14:31 [sbp]
the input data is:-
01:14:40 [sbp]
_:a <#b> "c" .
01:14:40 [sbp]
"d" "e" "f".
01:14:40 [sbp]
<#g> "h" _:i .
01:14:40 [sbp]
<#j> <#k> <#l> .
01:14:40 [sbp]
_:m _:n _:o .
01:14:40 [sbp]
<#p> <#q> "\"r" .
01:14:42 [sbp]
01:14:44 [sbp]
"\"s" <#t> "" .
01:14:48 [sbp]
# iophfeia gjpao
01:14:48 [AaronSw]
Oh, I see the bug.
01:15:57 [AaronSw]
Fixed in 1003627044
01:17:11 [AaronSw]
Heh: <tim> sbp finds that "a" is too long for rdf:type? Sigh ...
01:17:40 [sbp]
:-)
01:18:26 [sbp]
once again, I get: (
01:18:26 [sbp]
{ _:a1 <#b> <data:,c> }
01:18:26 [sbp]
{ <data:,d> <data:,e> <data:,f> }
01:18:26 [sbp]
{ <#g> <data:,h> _:a1 }
01:18:26 [sbp]
{ <#j> <#k> <#l> }
01:18:27 [sbp]
{ _:a1 _:a1 _:a1 }
01:18:29 [sbp]
{ <#p> <#q> <data:,%5C%22r> }
01:18:31 [sbp]
{ <data:,%5C%22s> <#t> <data:,> }
01:18:33 [sbp]
)
01:18:38 [AaronSw]
Did you get the right version?
01:18:46 [sbp]
1003627044
01:18:59 [AaronSw]
Then the bug is in your code now. :)
01:20:24 [sbp]
ugh
01:20:40 [AaronSw]
URI so I can look it over?
01:21:33 [sbp]
er... it doesn't have one
01:21:43 [AaronSw]
I know...
01:24:19 [sbp]
I'm pretty sure it's a problem in RDF API
01:24:28 [sbp]
self.bNodes: {'n': <rdfapi.Node instance at 007E037C>, 'o': <rdfapi.Node instance at 007E037C>, 'a': <rdfapi.Node instance at 007E037C>, 'm': <rdfapi.Node instance at 007E037C>, 'i': <rdfapi.Node instance at 007E037C>}
01:24:55 [AaronSw]
Umm, that would indicate the bug is in your code
01:25:01 [AaronSw]
Note that all of those are the same node instance!
01:25:12 [sbp]
gprmgpmrh
01:25:40 [sbp]
I have:-
01:25:41 [sbp]
try: a = self.bNodes[bNode]
01:25:41 [sbp]
except: self.bNodes[bNode] = rdf.node()
01:26:24 [AaronSw]
The try should probably be replaced with:
01:26:26 [sbp]
that should generate a new node, shouldn't it?
01:26:31 [AaronSw]
if not a in self.bNodes.keys()
01:26:47 [AaronSw]
Ah, you never reset 'a' do you!
01:26:47 [sbp]
s/a/bNode
01:27:01 [sbp]
a is just a bit of crud: I don't use a
01:27:38 [sbp]
I've changed it, with same result
01:28:00 [sbp]
if not bNode in self.bNodes.keys():
01:28:00 [sbp]
self.bNodes[bNode] = rdf.node()
01:28:03 [AaronSw]
* AaronSw tries to follow your code...
01:28:09 [sbp]
hit refresh
01:28:23 [AaronSw]
elif term[:2] == '_:': # Term is an unlabelled node: bNode
01:28:31 [AaronSw]
Doesn't that get the _last_ two chars in term?
01:28:46 [AaronSw]
Oh, never mind.
01:29:07 [sbp]
it gets all but the first two
01:29:30 [sbp]
I hope :-)
01:30:13 [AaronSw]
Oh, i see the bug... it was in my code
01:30:43 [sbp]
aha!
01:31:19 [AaronSw]
Use this code:
01:31:20 [AaronSw]
if (not Node.nodeList.has_key(value) # Node hasn't been interned...
01:31:20 [AaronSw]
and value is not None): # ... and it's not blank ...
01:31:20 [AaronSw]
Node.nodeList[value] = Node(value) # ... so do it now.
01:31:26 [AaronSw]
Hmm... I'll upload it...
01:31:49 [sbp]
thanks
01:32:08 [AaronSw]
OK: 1003627984 is uploaded
01:32:26 [AaronSw]
Sorry about that -- the code was thinking None was a URI.
01:33:05 [sbp]
File "ntriples.py", line 74, in run
01:33:06 [sbp]
try: x.parsen(sys.argv[1])
01:33:06 [sbp]
File "ntriples.py", line 27, in parsen
01:33:06 [sbp]
f = open(fn, 'r'); self.parse(f); f.close()
01:33:06 [sbp]
File "ntriples.py", line 32, in parse
01:33:06 [sbp]
self.parsent() # Parse self.document into self.quads
01:33:08 [sbp]
File "ntriples.py", line 47, in parsent
01:33:10 [sbp]
self.appendt(line)
01:33:12 [sbp]
File "ntriples.py", line 60, in appendt
01:33:14 [sbp]
self.bNodes[bNode] = rdf.node()
01:33:16 [sbp]
File "rdfapi.py", line 95, in node
01:33:18 [sbp]
return Node.nodeList[value] # Now return the node
01:33:20 [sbp]
KeyError
01:34:10 [AaronSw]
Oops...
01:35:06 [AaronSw]
OK, try 1003628181
01:35:39 [sbp]
1003627044 is online
01:36:14 [AaronSw]
Oops, forgot to hit save. Try now.
01:36:57 [sbp]
hooray"
01:36:58 [sbp]
(
01:36:59 [sbp]
{ _:a1 <#b> <data:,c> }
01:36:59 [sbp]
{ <data:,d> <data:,e> <data:,f> }
01:36:59 [sbp]
{ <#g> <data:,h> _:a2 }
01:36:59 [sbp]
{ <#j> <#k> <#l> }
01:36:59 [sbp]
{ _:a3 _:a4 _:a5 }
01:37:01 [sbp]
{ <#p> <#q> <data:,%5C%22r> }
01:37:03 [sbp]
{ <data:,%5C%22s> <#t> <data:,> }
01:37:05 [sbp]
)
01:37:22 [sbp]
ugh: why aren't you outputting as NTriples? Would it be that difficult?
01:37:43 [AaronSw]
Fine... do you want it in a context?
01:37:56 [sbp]
nope, just spew it out
01:38:38 [sbp]
s/'\n\t{ %s %s %s }'/'%s %s %s .'
01:38:44 [AaronSw]
Yep, I'm on it.
01:38:48 [sbp]
same with ()
01:38:54 [sbp]
:-)
01:39:51 [AaronSw]
OK...
01:40:13 [AaronSw]
Fixed in 1003628484
16:36:28 [logster]
logster has joined #swhack
16:36:28 [sagan.openprojects.net]
topic is: € <-- The universal logo: stick it on your TV, magazines and newspapers.
16:36:28 [sagan.openprojects.net]
Users on #swhack: logster BenSw|away AaronSw
16:36:40 [AaronSw]
Hello.
16:37:14 [AaronSw]
Hmm, time to paste in what logster missed:
16:37:15 [AaronSw]
<sbp> cool:-
16:37:15 [AaronSw]
<sbp> _:a1 <#b> <data:,c> .
16:37:15 [AaronSw]
<sbp> <data:,d> <data:,e> <data:,f> .
16:37:15 [AaronSw]
<sbp> <#g> <data:,h> _:a2 .
16:37:16 [AaronSw]
<sbp> <#j> <#k> <#l> .
16:37:17 [AaronSw]
<sbp> _:a3 _:a4 _:a5 .
16:37:19 [AaronSw]
<sbp> <#p> <#q> <data:,%5C%22r> .
16:37:21 [AaronSw]
<sbp> <data:,%5C%22s> <#t> <data:,> .
16:37:46 [AaronSw]
<sbp> http://infomesh.net/2001/10/ntriples/
16:37:46 [AaronSw]
<sbp> not a bad bit of hacking, that
16:37:47 [AaronSw]
<AaronSw> Not bad at all.
16:37:47 [AaronSw]
<AaronSw> One comment, if I may: It might be better if instead of subclassing, your class had a link to a store. That way variables won't stomp on each other.
16:37:47 [AaronSw]
<AaronSw> So instead of:
16:37:48 [AaronSw]
<AaronSw> class NTriples(rdf.Store):
16:37:50 [AaronSw]
<AaronSw> It'd be just NTriples:
16:37:52 [AaronSw]
<AaronSw> and the __init__ would take a store=Store() option
16:37:54 [AaronSw]
<sbp> ah, good idea
16:37:56 [AaronSw]
<sbp> def __init__(self):
16:37:57 [sbp]
sbp has joined #swhack
16:37:58 [AaronSw]
<sbp> rdf.Store.__init__(self)
16:38:00 [AaronSw]
<sbp> store = Store()
16:38:02 [AaronSw]
<sbp> eh?
16:38:04 [AaronSw]
<AaronSw> def __init__(self, store=rdf.Store())
16:38:06 [AaronSw]
<AaronSw> self.store = store
16:38:08 [AaronSw]
<AaronSw> would be all you need
16:38:10 [AaronSw]
<sbp> but then I'd need to change stuff too...
16:38:12 [AaronSw]
<AaronSw> Yes, you'd need to change all store variables to self.store variables.
16:38:14 [AaronSw]
<sbp> s/self.triple/self.store.triple
16:38:16 [AaronSw]
<AaronSw> I don't have a self.triple... you mean tripleList?
16:38:18 [AaronSw]
<sbp> no, I mean self.triple, and yes, you do
16:38:20 [AaronSw]
<AaronSw> Oh, right.
16:38:22 [AaronSw]
<AaronSw> yes, yes, carry on ;)
16:38:24 [AaronSw]
<sbp> :-)
16:38:26 [AaronSw]
<sbp> updated
16:38:28 [AaronSw]
<sbp> I worked on a kind of meta API... I was very tired, so it didn't come out right
16:38:30 [AaronSw]
<sbp> but the basic premise is that there are NAry relationships
16:38:32 [AaronSw]
<sbp> and Terms
16:38:34 [AaronSw]
<sbp> you just set the arity, and the datatype, and away you go!
16:38:36 [AaronSw]
<AaronSw> Ooh, cool... so it'd work for TM too
16:38:38 [AaronSw]
<sbp> TM?
16:38:40 [AaronSw]
<AaronSw> Topic Maps
16:38:42 [AaronSw]
<sbp> Turing Machines?
16:38:44 [AaronSw]
<sbp> ah
16:38:46 [AaronSw]
<sbp> well, it'd work for all extensions of RDF ever, hopefully
16:38:48 [AaronSw]
<AaronSw> I don't see that.
16:38:50 [AaronSw]
<sbp> well, you have terms, and you have relationships. What else is there
16:38:52 [AaronSw]
<sbp> ?
16:38:54 [AaronSw]
<AaronSw> Hmm, well perhaps...
16:38:56 [AaronSw]
<sbp> yep, perhaps
16:38:58 [AaronSw]
* sbp is still quite shocked at how short your RDF API is
16:39:00 [AaronSw]
<AaronSw> Heheh.
16:39:02 [AaronSw]
<sbp> really: it's a bit surreal
16:39:04 [AaronSw]
<sbp> once you format it a bit better, strip out all the crap...
16:39:06 [AaronSw]
<AaronSw> Format: how so...
16:39:08 [AaronSw]
<AaronSw> ?
16:39:10 [AaronSw]
<sbp> it'll be shorter than the NTriples parser :-)
16:39:12 [AaronSw]
<AaronSw> I need to stip out those commented bits.
16:39:14 [AaronSw]
<sbp> well, I have a kind of style guide...
16:39:16 [AaronSw]
<AaronSw> Well I don't hve the GNU gunk yet.
16:39:18 [AaronSw]
<sbp> yeah
16:39:20 [AaronSw]
<AaronSw> I was trying for Morbusy code shui but I'm not quite there
16:39:22 [AaronSw]
<AaronSw> Where's your style guide? I'm going for Guido-style.
16:39:24 [AaronSw]
<sbp> nah
16:39:26 [AaronSw]
<AaronSw> nah to what?
16:39:29 [AaronSw]
*** rillian (Snak@00-30-65-2e-ae-5f.bconnected.net) has joined the channel
16:39:30 [AaronSw]
<sbp> I read Guido style this morning
16:39:32 [AaronSw]
<AaronSw> Python Style Guide: http://python.sourceforge.net/peps/pep-0008.html
16:39:34 [AaronSw]
<AaronSw> Hi rillian
16:39:36 [AaronSw]
<AaronSw> still looking for that CD?
16:39:38 [AaronSw]
<sbp> well, what's next? Query engine?
16:39:40 [AaronSw]
<AaronSw> Yep, that... and n3 and rdf/xml parsers
16:39:42 [AaronSw]
<sbp> ooh, great fun
16:39:44 [AaronSw]
* rillian waves
16:39:46 [AaronSw]
<AaronSw> Actually, first I need to do equivalence
16:39:48 [AaronSw]
* sbp waves
16:39:50 [AaronSw]
<sbp> equivalence?
16:39:52 [AaronSw]
<rillian> AaronSw: debian boot stuff? trying again now
16:39:54 [AaronSw]
<sbp> you need a better function for putting triples in the store too
16:39:56 [AaronSw]
<rillian> think I found the parts I need
16:39:58 [AaronSw]
<AaronSw> Cool, rillian
16:40:00 [AaronSw]
<sbp> you'll end up with duplicates as it is, I reckon
16:40:03 [AaronSw]
<AaronSw> equivalence: so you can do triple == triple
16:40:04 [AaronSw]
<AaronSw> What's wrong with duplicates?
16:40:06 [AaronSw]
<sbp> they're messy, and it doesn't mean anything to repeat a triple in RDF
16:40:08 [AaronSw]
<AaronSw> It does here tho, because triples are nodes
16:40:10 [AaronSw]
<sbp> ah, good point
16:40:12 [AaronSw]
<sbp> I'm still shocked at how short your code is! I thought you'd have written MBs of data by now... and I still don't get bits of what you've done
16:40:15 [AaronSw]
<AaronSw> feel free to ask questions
16:40:17 [AaronSw]
<AaronSw> I need to tersify the code a bit and add more comments
16:40:19 [AaronSw]
<AaronSw> deltab, you awake? How do I check to see if object is of type x or any of its subclasses?
16:40:21 [AaronSw]
<sbp> you need to write a manual!
16:40:23 [AaronSw]
<sbp> why does Node have a nodeList dictionary?
16:40:25 [AaronSw]
<AaronSw> Hmm... so I can keep track of all extant nodes.
16:40:27 [AaronSw]
<AaronSw> Not sure if it's really necessary.
16:40:29 [AaronSw]
<AaronSw> Oh, wait, nodeList keeps track of the URI->node mapping
16:40:31 [AaronSw]
<AaronSw> It's a way to 'intern' the nodes
16:40:33 [AaronSw]
<sbp> intern?
16:40:35 [AaronSw]
<AaronSw> Yeah, so that we don't have two nodes that represent the same uri
16:40:37 [AaronSw]
<AaronSw> that's why there's lower-case node
16:40:39 [AaronSw]
<AaronSw> it returns a node if there's already one with that uri
16:40:41 [AaronSw]
<sbp> ah...
16:40:43 [AaronSw]
* sbp counts 57 lines, in a stripped down version
16:40:45 [AaronSw]
<AaronSw> Of my code? Wow.
16:40:47 [AaronSw]
<AaronSw> Hmm... this is odd:
16:40:49 [AaronSw]
<AaronSw> Traceback (most recent call last):
16:40:51 [AaronSw]
<AaronSw> File "rdfapi-tests.py", line 29, in ?
16:40:53 [AaronSw]
<AaronSw> print store
16:40:55 [AaronSw]
<AaronSw> File "rdfapi.py", line 157, in __repr__
16:40:57 [AaronSw]
<AaronSw> nodeIdMap[t.subject] = 'a' + `nodeIdNum`
16:40:59 [AaronSw]
<AaronSw> TypeError: unhashable instance
16:41:01 [AaronSw]
* sbp compresses Aaron's code even more
16:41:03 [AaronSw]
<AaronSw> Oh dear!
16:41:05 [AaronSw]
<sbp> 51 lines
16:41:07 [AaronSw]
<AaronSw> Why does python claim my class is unhashable when I give it a __eq__ method?
16:41:09 [AaronSw]
* AaronSw asks #python
16:41:11 [AaronSw]
*** yoda_ (yoda@c930384-a.hlndpk1.il.home.com) has joined the channel
16:41:13 [AaronSw]
*** yoda_ is now known as BenSw
16:41:15 [AaronSw]
<sbp> ha, 49 lines!
16:41:17 [AaronSw]
<sbp> no __repr__, though
16:41:19 [AaronSw]
<sbp> Hi Ben
16:41:21 [AaronSw]
<AaronSw> Heheh... what do you think I should do with it?
16:41:23 [AaronSw]
<BenSw> Hello
16:41:25 [AaronSw]
<sbp> do with what?
16:41:27 [AaronSw]
<rillian> ok, off to try the linux re-install. wish me luck
16:41:29 [AaronSw]
*** rillian has quit IRC (debian!)
16:41:31 [AaronSw]
<sbp> ah, 48 lines
16:41:33 [AaronSw]
<sbp> thank you, ";"
16:41:35 [AaronSw]
<AaronSw> Why don't you move __repr__ into ntriples.py as a serialize command
16:41:37 [AaronSw]
<sbp> I could do
16:41:39 [AaronSw]
<sbp> but why should my code be messy when yours can?
16:41:41 [AaronSw]
<sbp> :-)
16:41:43 [AaronSw]
<sbp> O.K., I'll move it
16:41:45 [AaronSw]
<AaronSw> So what do you have agains the Py style guide?
16:41:47 [AaronSw]
<sbp> nothing, really
16:41:49 [AaronSw]
<sbp> I just follow it
16:41:51 [AaronSw]
<sbp> like not mixing tabs with spaces, eh Aaron? :-)
16:41:53 [AaronSw]
<AaronSw> Hey! I don't mix them for _indentation_
16:41:55 [AaronSw]
<sbp> fine
16:41:57 [AaronSw]
<sbp> added to http://infomesh.net/2001/10/ntriples/
16:41:59 [AaronSw]
<sbp> you can take out __repr__ now
16:42:01 [AaronSw]
<AaronSw> OK, now you get to clean up that awful code ;)
16:42:03 [AaronSw]
<sbp> aw, damn it
16:42:05 [AaronSw]
* AaronSw goes thru and does a code clean up
16:42:09 [AaronSw]
* AaronSw replaces header blurb with:
16:42:11 [AaronSw]
<AaronSw> """An experimental RDF API which extends RDF 1.0 in a number of ways."""
16:42:13 [AaronSw]
<sbp> I wonder if the vanilla version actually works?
16:42:15 [AaronSw]
<sbp> yes!
16:42:17 [AaronSw]
<sbp> wow
16:42:19 [AaronSw]
<sbp> Size: 1.60 KB (1,639 bytes)
16:42:21 [AaronSw]
<AaronSw> Heh. That's pretty cool.
16:42:23 [AaronSw]
<sbp> mind if I send it to www-archive?
16:42:25 [AaronSw]
<AaronSw> No problem...
16:42:27 [AaronSw]
<AaronSw> Arg! I don't think I've archived many of these versions... I hope I got all the important ones.
16:42:29 [AaronSw]
<AaronSw> I need CVS. <sigh/>
16:42:31 [AaronSw]
<sbp> I have some versions
16:42:33 [AaronSw]
* sbp sends
16:42:35 [AaronSw]
<sbp> so, what are you going to call it?
16:42:37 [AaronSw]
<AaronSw> What? The API? I dunno...
16:42:39 [AaronSw]
<AaronSw> Oh, in the n-triples serialization you need to convert data: URIs back into literals
16:42:41 [AaronSw]
<AaronSw> Is rdfapi a bad name you think?
16:42:43 [AaronSw]
<sbp> http://lists.w3.org/Archives/Public/www-archive/2001Oct/0025
16:42:45 [AaronSw]
<AaronSw> Thanks.
16:42:47 [AaronSw]
<sbp> a bad name: yes
16:42:49 [AaronSw]
<sbp> it's not really a name, it's a description!
16:42:51 [AaronSw]
<sbp> it needs a really cool name
16:42:53 [AaronSw]
<sbp> I like CWM, and Llyn
16:42:55 [AaronSw]
<sbp> RDF API is like, "huh?"
16:42:57 [AaronSw]
<sbp> low-marketability
16:42:59 [AaronSw]
<AaronSw> Yeah, I agtree.
16:43:01 [AaronSw]
<AaronSw> Arty-Plesh ;)
16:43:03 [AaronSw]
<AaronSw> BTW, tav said that he really hated the name plesh.
16:43:05 [AaronSw]
<sbp> "mesh" would be better
16:43:07 [AaronSw]
<sbp> he he he
16:43:09 [AaronSw]
<sbp> tav only said that 'cause it's going to take over the world!
16:43:11 [AaronSw]
<AaronSw> Heheheh. So you like it then?
16:43:13 [AaronSw]
<AaronSw> tav:
16:43:15 [AaronSw]
<AaronSw> [[[
16:43:17 [AaronSw]
<AaronSw> so, on that note, dataplesh is a good step forward. i also like the
16:43:19 [AaronSw]
<AaronSw> "meaning" behind it. but, frankly, it's a shit name ;p
16:43:21 [AaronSw]
<AaronSw> try saying "plesh" a few times. and as much as i have tried, the name
16:43:23 [AaronSw]
<AaronSw> simply doesn't grow on you.
16:43:25 [AaronSw]
<AaronSw> i really wouldn't want to stand up to a crowd and start talking to them
16:43:27 [AaronSw]
<AaronSw> about the "plesh". and i talk to crowds about many strange things...
16:43:29 [AaronSw]
<AaronSw> ]]]
16:43:31 [AaronSw]
<sbp> yeah, I agree, sadly
16:43:33 [AaronSw]
<AaronSw> Really? Hmm...
16:43:35 [AaronSw]
<sbp> you need to go into naming-mode
16:43:37 [AaronSw]
<AaronSw> Well, I better wait until tav comes back so he doesn't shoot it down again.
16:43:39 [AaronSw]
<sbp> well, you can start thinking of stuff
16:43:41 [AaronSw]
<sbp> you need to think of two things now
16:43:43 [AaronSw]
<sbp> one for dataplesh, one for RDF API
16:43:45 [AaronSw]
<AaronSw> Yep.
16:43:47 [AaronSw]
<sbp> how about, infomesh, and SWIPT! Oh, hang on...
16:43:49 [AaronSw]
<AaronSw> I dunno, I've been saying 'dataplesh' to everyone I know for the past week or so without any strange looks.
16:43:52 [AaronSw]
<sbp> they've probably been humouring you
16:43:54 [AaronSw]
<AaronSw> lol
16:43:56 [AaronSw]
<sbp> "oh, Aaron's off on another one of his crazy schemes to take over the world"
16:43:58 [AaronSw]
<AaronSw> That's actually a relatively new thing for me.
16:44:00 [AaronSw]
<sbp> intermesh!
16:44:02 [AaronSw]
<sbp> no...
16:44:04 [AaronSw]
<AaronSw> Noah suggested I call it a dataplash.
16:44:06 [AaronSw]
<sbp> yuck
16:44:08 [AaronSw]
<sbp> that's worse than dataplesh
16:44:10 [AaronSw]
<AaronSw> Then, he said, the stuff you dropped into it could be called splashes ;)
16:44:12 [AaronSw]
<sbp> if this actually does become in the least bit successful, people are going to look through these logs and go "Hmm..."
16:44:15 [AaronSw]
<AaronSw> In a what-were-they-smoking kind of way?
16:44:17 [AaronSw]
<sbp> then again, if you don't think of a decent name, it's not going to be successful, so it won't matter
16:44:19 [AaronSw]
<sbp> yeah, probably
16:44:21 [AaronSw]
<sbp> for the record, then: nothing
16:44:23 [AaronSw]
<AaronSw> Heh, well the World Wide Web was an awful name and it succeeded
16:44:25 [AaronSw]
<sbp> Tim should have gone with infomesh
16:44:27 [AaronSw]
* AaronSw just imagines Semantic Web historians pouring thru years of IRC logs... heh, heh
16:44:29 [AaronSw]
<sbp> mwahahah!
16:44:31 [AaronSw]
<sbp> wow, Semantic Web historians... that'll be a rare breed of people
16:44:33 [AaronSw]
<AaronSw> Think so?
16:44:35 [AaronSw]
<sbp> yeah. "Betamax historians"
16:44:37 [AaronSw]
<AaronSw> such a pessimist...
16:44:39 [AaronSw]
<sbp> Betamax apparently kicked ass!
16:44:41 [AaronSw]
<AaronSw> It's still in use, you know.
16:44:43 [AaronSw]
<AaronSw> All the television stations use it.
16:44:45 [AaronSw]
<sbp> there's a 50/50 chance of the SW being as successful as we all hope, I reckon, same as there was with the WWW
16:44:48 [AaronSw]
<sbp> which makes the chances of them both succeeding: 25/75
16:44:50 [AaronSw]
<AaronSw> No, that's not true.
16:44:52 [AaronSw]
<sbp> 1/2 * 1/2
16:44:54 [AaronSw]
<AaronSw> Since one of them has already happened, it's back to 50/50
16:44:56 [AaronSw]
<sbp> erm...
16:44:58 [AaronSw]
<AaronSw> Probabilities are fun like that.
16:45:00 [AaronSw]
<sbp> stupid probabilities
16:45:02 [AaronSw]
<sbp> what's the probability that probabilities are probably useless?
16:45:04 [AaronSw]
* AaronSw giggles
16:45:06 [AaronSw]
<sbp> have you finished with the XRDF parser yet?
16:45:08 [AaronSw]
<AaronSw> Oh, I'm still cleaning up the code.
16:45:10 [AaronSw]
* AaronSw assumes XRDF => XML/RDF
16:45:12 [AaronSw]
<sbp> Names for the RDF API: Raptor, Zephyr, Pogo, Cludgy, Vanilex, Wumple, Bob
16:45:14 [AaronSw]
<AaronSw> Heheh.
16:45:16 [AaronSw]
<AaronSw> When we were trying to name N-Triples Dan Connoly exlaimed in frustration, "Just call it Jojo or Fred or something."
16:45:19 [AaronSw]
<sbp> lol
16:45:21 [AaronSw]
<sbp> Who named it N-Triples?
16:45:23 [AaronSw]
<AaronSw> I forget... it was a combination of two people... you'll have to check the logs
16:45:25 [AaronSw]
* sbp won't: doesn't want to become an SW historian
16:45:27 [AaronSw]
<AaronSw> Heheh.
16:45:29 [AaronSw]
<sbp> Ah, how about "*The* RDF API"?
16:45:31 [AaronSw]
<sbp> with "The" in big bold red animated flashing wavy glittery noisy letters?
16:45:33 [AaronSw]
<sbp> *The* RDF API: Terse and Complex
16:45:35 [AaronSw]
<AaronSw> Hehehe.
16:45:37 [AaronSw]
<AaronSw> We might get sued by the W3C.
16:45:39 [AaronSw]
<AaronSw> For disturbing the peace or something...
16:45:41 [AaronSw]
<AaronSw> Using RDF in conjuction with the <blink> tag!
16:45:43 [AaronSw]
<sbp> The RDF API in (Monty) Python
16:45:45 [AaronSw]
<sbp> TRAMP
16:45:47 [AaronSw]
<AaronSw> LOL
16:45:49 [AaronSw]
* AaronSw adds that to the docstring
16:45:51 [AaronSw]
<sbp> lol
16:45:53 [AaronSw]
<AaronSw> """TRAMP: The RDF API in (Monty) Python
16:45:55 [AaronSw]
<AaronSw> An experimental RDF API in which RDF 1.0 is modified and mangled
16:45:57 [AaronSw]
<AaronSw> into an unrecognizable bit of higly terse and powerful code."""
16:45:59 [AaronSw]
<sbp> perfect!
16:46:01 [AaronSw]
<sbp> still, perhaps it could be... nameless? An unnamed parser
16:46:03 [AaronSw]
<AaronSw> Whoo! After tersification it is exactly 101 lines -- I better stop!
16:46:05 [AaronSw]
* sbp finds a version from 2001-10-07
16:46:07 [AaronSw]
<sbp> 101: neat
16:46:09 [AaronSw]
<sbp> upload?
16:46:11 [AaronSw]
* AaronSw runs unit tests...
16:46:13 [AaronSw]
<sbp> "but we feel "?
16:46:15 [AaronSw]
<AaronSw> Where's that from?
16:46:16 [sbp]
sbp has quit
16:46:17 [AaronSw]
<sbp> rdfapi.txt - 1003631225
16:46:19 [AaronSw]
<AaronSw> I'm still fixing bugs!
16:46:21 [AaronSw]
<sbp> it puts http://infomesh.net/2001/10/08/swipt/rdfstore.txt to shame
16:46:23 [AaronSw]
<sbp> I meant: why "we"?
16:46:25 [AaronSw]
<AaronSw> Where'd I use we?
16:46:27 [AaronSw]
<sbp> "but we feel"!
16:46:29 [AaronSw]
<sbp> Note that this API extends RDF 1.0 in a number of ways. Obviously,
16:46:31 [AaronSw]
<sbp> it can be used as merely an RDF 1.0 API, but we feel that the
16:46:33 [AaronSw]
<sbp> extentions added here are important and useful, but they will
16:46:35 [AaronSw]
<sbp> likely not be compatible with other RDF 1.0 APIs.
16:46:37 [AaronSw]
<sbp> and ugh @ "but", "but"
16:46:39 [AaronSw]
<sbp> I use "we" sometimes when writing up a project. Dunno why
16:46:41 [AaronSw]
<AaronSw> Yeah, I took that all out.
16:46:43 [AaronSw]
<AaronSw> And replaced it with the TRAMP bit.
16:46:45 [AaronSw]
<sbp> heh, heh, really?
16:46:47 [AaronSw]
<AaronSw> Yep.
16:46:49 [AaronSw]
<sbp> gutterslut is a better word, but it's too long to get an acronym out of
16:46:51 [AaronSw]
<AaronSw> LOL
16:46:53 [AaronSw]
<sbp> from "The Faculty"
16:46:55 [AaronSw]
<sbp> that's definitely a highly rated phenomic word
16:46:57 [AaronSw]
<AaronSw> Heh
16:46:59 [AaronSw]
<sbp> aw, upload, upload!
16:47:01 [AaronSw]
<AaronSw> I've still got this weird bug...
16:47:03 [AaronSw]
<sbp> put it in a jar, feed it lettuce...
16:47:05 [AaronSw]
<AaronSw> Ah, think I've got it.
16:47:07 [AaronSw]
<AaronSw> How do I test if a Python object is a member of a class or any of its subclasses?
16:47:09 [AaronSw]
<AaronSw> deltab responds isinstance()
16:47:11 [AaronSw]
<AaronSw> Ooh, so close...
16:47:13 [AaronSw]
<AaronSw> Wooh! it works
16:47:15 [AaronSw]
<AaronSw> OK, 1003634831 is up
16:47:17 [AaronSw]
<AaronSw> it's up sbp
16:47:19 [AaronSw]
<sbp> great, just got it
16:47:21 [AaronSw]
<sbp> <data:,u'd'> <data:,u'e'> <data:,u'f'> .
16:47:23 [AaronSw]
<AaronSw> oops...
16:47:25 [AaronSw]
<AaronSw> ok, fixed -- 1003635039
16:47:27 [AaronSw]
<sbp> upload?
16:47:29 [AaronSw]
<AaronSw> yep -- 1003635218
16:47:31 [AaronSw]
* AaronSw adds test case for it.
16:47:33 [AaronSw]
<sbp> ah, that's better
16:47:35 [AaronSw]
<sbp> higly?
16:47:37 [AaronSw]
<AaronSw> pah
16:47:39 [AaronSw]
<AaronSw> fixed in next rev
16:47:41 [AaronSw]
<sbp> :-)
16:47:43 [AaronSw]
<sbp> http://www.eros-os.org/pipermail/e-lang/2001-October/005793.html
16:47:45 [AaronSw]
<sbp> [[[
16:47:47 [AaronSw]
<sbp> C: 2673
16:47:49 [AaronSw]
<sbp> Perl: 1361
16:47:51 [AaronSw]
<sbp> C++: 1020
16:47:53 [AaronSw]
<sbp> PHP: 740
16:47:55 [AaronSw]
<sbp> Java: 726
16:47:57 [AaronSw]
<sbp> Python: 403
16:47:59 [AaronSw]
<sbp> Unix Shell: 246
16:48:01 [AaronSw]
<sbp> Tcl: 190
16:48:03 [AaronSw]
<sbp> SQL: 124
16:48:05 [AaronSw]
<sbp> ]]]
16:48:07 [AaronSw]
<AaronSw> Yeah, saw that from Zooko.com, you?
16:48:09 [AaronSw]
<AaronSw> It gets worse for Python later on... :(
16:48:11 [AaronSw]
<sbp> yeah...
16:48:13 [AaronSw]
<AaronSw> Wow, Mean Mr. Mustard's sister used to be named Shelly! Heh!
16:48:15 [AaronSw]
* AaronSw is listening to Anthology 3
16:48:17 [AaronSw]
<AaronSw> which we just got
16:48:19 [AaronSw]
<sbp> I have two pendingL http://uri.net/urn-nid-status.html
16:48:21 [AaronSw]
<AaronSw> The songs on there are incredibly different.
16:48:23 [AaronSw]
<sbp> I have Anthology 2... want anothology 3
16:48:25 [AaronSw]
<AaronSw> Yeah, we have 1 and 2, I think.
16:48:27 [AaronSw]
<sbp> what do you think about http://lists.netsol.com/cgi-bin/wa?A2=ind0109&L=urn-ietf&D=1&T=0&O=D&F=&S=&P=247
16:48:29 [AaronSw]
<sbp> heh: and whatever happened to "tag:"?
16:48:31 [AaronSw]
<AaronSw> Yeah, really....
16:48:33 [AaronSw]
<AaronSw> I think it's pretty useless, really... what'd you use it for?
16:48:35 [AaronSw]
<AaronSw> It'd need to know quantification, which makes it effectively the same as _:foo except less clear
16:48:37 [AaronSw]
<sbp> I used it for anonymous predicates in XRDF
16:48:39 [AaronSw]
<sbp> well, I used anon:
16:48:41 [AaronSw]
<sbp> aha: http://www.ietf.org/internet-drafts/draft-kindberg-tag-uri-01.txt
16:48:43 [AaronSw]
<AaronSw> What's XRDF?
16:48:45 [AaronSw]
<sbp> XML RDF
16:48:47 [AaronSw]
<AaronSw> Ah... that might be somewhat useful...
16:48:49 [AaronSw]
<AaronSw> Jeremy is using _:foo for his stuff since it's clearly disjoint with URIs.
16:48:51 [AaronSw]
<sbp> you know my take on resources and URIs...
16:48:53 [AaronSw]
<AaronSw> Umm... no?
16:48:55 [AaronSw]
<AaronSw> I thought it changed with the weather. ;)
16:48:57 [AaronSw]
<sbp> if you exist, you're a resource. if you're a resource, you can have a URI
16:48:59 [AaronSw]
<AaronSw> Oh, yes. Of course.
16:49:01 [AaronSw]
<AaronSw> It can have a URI, certainly... we're just too lazy to give it one.
16:49:03 [AaronSw]
<AaronSw> That's how my RDF API works.
16:49:05 [AaronSw]
<AaronSw> If you want to give an anon node a .uri property, go ahead!
16:49:07 [AaronSw]
<sbp> since they're scoped to the store anyway, I don't particularly care
16:49:09 [AaronSw]
* sbp wrote a really short NTriples parser somewhere... where'd it go?
16:49:11 [AaronSw]
* AaronSw wonders whether to hook up the yapps parser or clean up sbp's ntriples code
16:49:13 [AaronSw]
<AaronSw> yapps parser
16:49:15 [AaronSw]
<sbp> aha:-
16:49:17 [AaronSw]
<sbp> import sys, re; d, argv = [], sys.argv
16:49:19 [AaronSw]
<sbp> t = r'[ \t]*(<[^>]+>|_:[^\s]+|\"(?:\\\"|[^"])*\")'
16:49:21 [AaronSw]
<sbp> r = re.compile(t+t+t+r'[ \t]*.[ \t]*', re.S).findall
16:49:23 [AaronSw]
<sbp> def y(t):
16:49:25 [AaronSw]
<sbp> for x in range(len(t)):
16:49:27 [AaronSw]
<sbp> if t[x][0] == '<': t[x] = (t[x][1:-1], 'URI')
16:49:29 [AaronSw]
<sbp> elif t[x][0] == '_': t[x] = (t[x][2:], 'ANON')
16:49:31 [AaronSw]
<sbp> elif t[x][0] == '"': t[x] = (t[x][1:-1], 'LIT')
16:49:33 [AaronSw]
<sbp> return t
16:49:35 [AaronSw]
<sbp> if __name__ == "__main__":
16:49:37 [AaronSw]
<sbp> f = open(argv[1], 'r'); s = f.read(); f.close()
16:49:39 [AaronSw]
<sbp> for t in r(s): d.append(y([t[0], t[1], t[2]]))
16:49:41 [AaronSw]
<sbp> print str(d)
16:49:43 [AaronSw]
<sbp> aw, do mine!
16:49:45 [AaronSw]
<AaronSw> Heheh. This should be quick.
16:49:47 [AaronSw]
<sbp> what should?
16:49:49 [AaronSw]
<AaronSw> this yapps thing
16:49:51 [AaronSw]
<sbp> ah
16:49:53 [AaronSw]
<sbp> URI?
16:49:55 [AaronSw]
<AaronSw> For what?
16:49:57 [AaronSw]
<sbp> the yapps thing
16:49:59 [AaronSw]
<AaronSw> It's in SWAP -- it's rdfn3_yapps.py
16:50:01 [AaronSw]
<AaronSw> it's DanC's new n3 parser
16:50:03 [AaronSw]
<sbp> yeah, I know about that! he did it ages ago. I mean, your hooking up of yapps with TRAMP
16:50:05 [AaronSw]
<AaronSw> Well I'm still writing that!
16:50:07 [AaronSw]
<sbp> develop it online!
16:50:09 [AaronSw]
<AaronSw> Ehm... ok
16:50:11 [AaronSw]
<AaronSw> Hmm... what eats sinks?
16:50:13 [AaronSw]
<sbp> carrots
16:50:15 [AaronSw]
<AaronSw> lol, what?!
16:50:17 [AaronSw]
<sbp> carrots, they eat sinks. when you're not looking: they creep into the kitchen
16:50:19 [AaronSw]
<sbp> and you wake up in the morning: "oh, some bugger's stolen my sink!". But really it was the carrots
16:50:21 [AaronSw]
<sbp> they're like that, y'know
16:50:23 [AaronSw]
<AaronSw> I didn't know that.
16:50:25 [AaronSw]
<sbp> well now you do. Use it wisely, my friend
16:50:27 [AaronSw]
<AaronSw> OK.
16:50:29 [AaronSw]
<AaronSw> OK, it's at kitchen.txt
16:50:31 [AaronSw]
<AaronSw> I should've named it carrots but it's too late now.
16:50:33 [AaronSw]
<sbp> cool
16:50:35 [AaronSw]
<AaronSw> Hmm... RESOURCE=RDFSink.SYMBOL # @@misnomer
16:50:37 [AaronSw]
<AaronSw> from notation3.py
16:50:39 [AaronSw]
<sbp> Hmm...
16:50:41 [AaronSw]
*** sbp is sean@pC1s13a07.client.global.net.uk (Sean B. Palmer)
16:50:43 [AaronSw]
*** on channels: #validator #swhack @#humanml @#sbp #dotgnu #rdfig
16:50:45 [AaronSw]
*** on irc via server carter.openprojects.net ([127.0.0.1] Northern California, US)
16:50:46 [deltab]
deltab has joined #swhack
16:50:47 [AaronSw]
* sbp sends more junk to www-archive
16:50:49 [AaronSw]
<AaronSw> heheh
16:50:51 [AaronSw]
<sbp> http://lists.w3.org/Archives/Public/www-archive/2001Oct/0026
16:50:53 [AaronSw]
<AaronSw> Ah, cool.
16:50:55 [AaronSw]
<AaronSw> Thanks.
16:50:57 [AaronSw]
<sbp> np
16:50:59 [AaronSw]
<sbp> Gotta run
16:51:01 [AaronSw]
<AaronSw> Heheh @ Useful Advice For RDF API Designers, Part 1
16:51:03 [AaronSw]
<AaronSw> c'ya
16:51:05 [AaronSw]
<sbp> ah, yeah, I thought you'd like that
16:51:07 [AaronSw]
<sbp> I was going to send it to www-archive, but nah...
16:51:09 [AaronSw]
<AaronSw> Ah twell...
16:51:11 [AaronSw]
<AaronSw> We'll have to hide that as an easter eg
16:51:13 [AaronSw]
<AaronSw> err egg
16:51:15 [AaronSw]
<AaronSw> ;)
16:51:17 [AaronSw]
<sbp> :-)
16:51:19 [AaronSw]
<sbp> c'ya
16:51:21 [AaronSw]
<AaronSw> c'ya
16:51:23 [AaronSw]
* AaronSw wonders what tav will think when we use TRAMP as our foundation!
16:51:25 [AaronSw]
<AaronSw> "What kind of a name is that?!"
16:51:27 [AaronSw]
<AaronSw> A funny one. :)
16:51:29 [AaronSw]
*** sbp has quit IRC (Ping timeout for sbp[pC1s13a07.client.global.net.uk])
16:51:31 [AaronSw]
* AaronSw watches Paul McCartney on VH1... he really can't sing anymore.
16:51:33 [AaronSw]
*** rillian (Snak@00-30-65-2e-ae-5f.bconnected.net) has joined the channel
16:51:35 [AaronSw]
*** rillian has quit IRC (night all)
16:51:37 [AaronSw]
*** Does this mean you're really back?
16:51:39 [AaronSw]
*** BenSw is now known as BenSw|working
16:51:41 [AaronSw]
* AaronSw goes to install memory in his servers
17:16:31 [AaronSw]
* AaronSw disconnects
18:04:40 [sbp]
sbp has joined #swhack
18:11:34 [sbp]
sbp has quit
18:50:56 [AaronSw]
* AaronSw reconnects
19:00:58 [AaronSw]
Brian McBride: "****ing BT: I'm offline can't quote the exact words"
19:08:04 [sbp]
sbp has joined #swhack
19:08:24 [sbp]
* sbp has some really cool song snippets; need to sequence them together
19:15:08 [AaronSw]
Oh, hello there...
19:15:14 [AaronSw]
Let me upload my parser kit for you.
19:15:14 [sbp]
Hi
19:16:19 [sbp]
Hmm... some of the bits have a different rhythm to the others
19:16:20 [AaronSw]
Let me know what you think of it.
19:16:53 [AaronSw]
- http://blogspace.com/rdf/kitchen.txt
19:17:14 [AaronSw]
Parses N3 and XRDF via the SWAP toolkit.
19:18:29 [sbp]
heh, heh: """Turns an RDFSink carrot into a TRAMP node."""
19:19:10 [sbp]
very concise, but of course, SWIPT did something similar, only less advanced
19:19:19 [AaronSw]
how so?
19:19:20 [AaronSw]
OK, gotta go back to taking apart the sukkah
19:19:25 [AaronSw]
bbiab
19:19:32 [sbp]
sukkah? bbiab?
19:19:39 [sbp]
be back in a bit...
19:19:49 [sbp]
Perhaps Google can help with sukkah
19:20:54 [sbp]
Hmm... http://www.sukkot.com/
19:23:13 [sbp]
ah: http://www.ou.org/about/judaism/sukkah.htm
19:24:49 [sbp]
you really have to temporarily live in it?
19:24:58 [sbp]
Man, there's so much I don't know about Judaism
19:26:54 [sbp]
following from Al's rant on ER: we could come up with some subset of RDDL, that we could do XRDF/EARL =XSLT=> RDDL/EARL
19:27:37 [sbp]
then the link could be human and machine readable. Dunno. The ER thread confuses me in a sense, because there is so much work being repeated, and some things not being said clearly, and other things being said too clearly
19:29:47 [sbp]
I mean, there have been about 5 emails of discussion about putting <meta/> into the body of an HTML page. What's that all about? IF you're going to do it, just do it: write a module, create a namespace. Don't expect people to be happy about serving it as text/html (William F. Hammond!), don't expect people to implement it on a wide scale until they are 110% satisfied that it will benefit them (financially?), don't expect tools to process it unless
19:31:09 [sbp]
Of course, HTML is odd that way. Architecturally, it's absolutely terrible, it could be retrofitted onto SGML, and the only reason to retrofit it onto XML is to process it with XSLT. And it is retrofitting: HTML moves (moved) faster than those technologies
19:32:32 [sbp]
People write what they want done with it, rather than what they mean; it's an inescapable fact. You either hack about with the world's quakiest document architecture, or you wait and contribute to the new one, which probably won't be any better (aren't I the cynic?)
19:32:36 [deltab]
"don't expect tools to process it unless" - what?
19:33:10 [sbp]
oops, it must have been chopped off, here's a paste: "don't expect tools to process it unless you write them yourself. But it can be done. HTML was built that way"
19:33:15 [sbp]
Hi deltab :-)
19:34:46 [AaronSw]
* AaronSw returns
19:35:04 [AaronSw]
temporarily live: no just eat meals in it and optionally sleep
19:35:26 [sbp]
HTML will always be hacked. It doesn't matter how good it is really, because it's never going to be perfect for all uses. You have to make sure that it's extensible, and that extensions don't bugger things up too badly
19:35:29 [sbp]
aha
19:36:34 [sbp]
how this relates to EARL: there's no way we're going to mandate a link from HTML to "EARL" in any official capacity, because there's no way to make that link official. We can only ever hack it
19:36:58 [AaronSw]
Nah, use the <link> tag
19:37:04 [sbp]
which isn't a bad thing necessarily, but it requires consensus, and that's a difficult thing to get, especially when you have people with different agenda's around
19:37:05 [AaronSw]
that's what us RSS folks are doing
19:37:10 [sbp]
<link> is a perfect example of a terrible hack
19:37:12 [AaronSw]
especially now that Mozilla supports it.
19:37:19 [AaronSw]
Have you played with kitchen at all? Does it work for you?
19:37:34 [sbp]
you RSS folks also forgot that classes and properties are disjoint, so that doesn't particularly sway me
19:37:50 [sbp]
Kitchen: no, I'll certainly take your word for it
19:37:59 [AaronSw]
Heheh.
19:38:02 [AaronSw]
to both
19:38:04 [sbp]
:-)
19:38:46 [AaronSw]
We have good names on the project! Edd was the one who proposed the class/property thing and danbri helped push it thru, as I recall.
19:39:19 [sbp]
<link>: why develop an inextensible linking mechanism that uses tokens, and requires consensus, then hack in a profile attribute, not define how it should be used, and then mess things up totally by declaring that some joint properties have different meanings. Aaaargh!
19:39:30 [sbp]
pushed it through: yuck
19:40:18 [sbp]
so <link> isn't architecturally sound... but what's it used for? rel="stylesheet". Ta da, it works. That's all that matters for HTML
19:42:34 [AaronSw]
Correction, according to <http://groups.yahoo.com/group/rss-dev/surveys?id=357230>, danbri did not vote for the proposal.
19:43:21 [sbp]
so we can say, "sure, use <metadata>some set of elements defining a link to an EARL report</metadata>"... but we can't expect anyone to take us seriously; even if we create the proper XHTML m12n family for it, or whatever
19:44:09 [AaronSw]
Why not? You're the onl one who won't take it seriously.
19:44:31 [AaronSw]
Nobody else cares about architectural soundness -- they just want it to work.
19:45:32 [sbp]
what I mean is, it won't even work. Where are the tools? My whole point *is* that no one cares about architectural soundness, and that HTML has thrived because of that
19:45:44 [sbp]
well, not my whole point; much of it
19:46:31 [AaronSw]
Mozilla is a tool, it works. Same with iCab.
19:46:42 [sbp]
yeah?
19:48:01 [AaronSw]
yeah yeah?
19:48:14 [sbp]
I mean, so what?
19:48:20 [AaronSw]
* AaronSw really needs to go plan his trip....
19:48:27 [AaronSw]
So just do it and stop whining.
19:48:55 [sbp]
trip?
19:49:16 [AaronSw]
Yeah, I'm putting together a budget proposal for going to http://conferences.oreilly.com/p2p/
19:49:21 [sbp]
neat
19:49:30 [sbp]
budget proposal: to whom?
19:49:40 [AaronSw]
Parents.
19:50:01 [AaronSw]
* AaronSw tries to think of funding agencies that'd help pay for trip to W3C Plenary...
19:50:46 [sbp]
the W3C? :-)
19:51:08 [AaronSw]
Yeah...
19:57:56 [sbp]
c'ya
19:59:05 [AaronSw]
c'ya
20:01:14 [sbp]
sbp has quit
20:59:29 [rillian]
rillian has joined #swhack
21:00:02 [AaronSw]
hi rillian
21:00:31 [rillian]
hey aaron
21:00:37 [rillian]
you don't have a tibook do you?
21:00:42 [AaronSw]
Indeed, I do.
21:00:52 [rillian]
ah. congrats :)
21:00:57 [AaronSw]
:-)
21:01:10 [rillian]
do you have an XF86Config I could crib from?
21:01:26 [AaronSw]
I just used whatever came with my fink install.
21:01:45 [sbp]
sbp has joined #swhack
21:01:47 [rillian]
you don't run linux then?
21:02:03 [AaronSw]
Oh, no, I just run an X Server from Mac OS X.
21:02:03 [sbp]
nope
21:02:11 [AaronSw]
Hi sbp.
21:02:19 [sbp]
Hi :-)
21:02:43 [rillian]
does the rootless thing work ok?
21:03:02 [AaronSw]
Well, it worked great the first time I tried it and now I can't get it to start up again. :-(
21:03:06 [sbp]
heh, heh: inconsistent chopping/diareses in my paste to ERT of the #swhack chat logs means that there is a bit which just reads "<sbp> pushed it through: yuck" with no background
21:03:36 [AaronSw]
Heheheh.
21:03:55 [AaronSw]
Oh, there's a rootless upgrade out... let me install...
21:04:29 [rillian]
AaronSw: drat. Anyway, I can't get X (under linux) to work. it launches all the way to the X cursor, then quits without an error message
21:04:43 [AaronSw]
Weird.
21:04:50 [rillian]
indeed
21:05:15 [rillian]
I would guess since I get recognizable video that it's not the config file
21:05:24 [rillian]
but I can't seem to find anything else that's out of order
21:06:11 [AaronSw]
What's the error message?
21:06:31 [rillian]
<rillian> ...quits without an error message
21:06:46 [AaronSw]
Oh, sorry -- I read that as "with an error message"
21:10:29 [AaronSw]
Heheh:
21:10:29 [AaronSw]
munged-Beatles: "Good evening and welcome to swhackers."
21:10:33 [AaronSw]
You know my URN, you know my URN...
21:10:37 [AaronSw]
Look up my URL...
21:12:35 [sbp]
lol @ munged-Beatles: "Good evening and welcome to swhackers."
21:12:47 [sbp]
sbp has changed the topic to: Good evening and welcome to swhackers
21:13:05 [sbp]
heh, URN...
21:14:41 [sbp]
poor EARL... wonder what to do about it
21:16:01 [AaronSw]
* AaronSw looks around for $1526 to pay for conference expenses :-(
21:16:11 [sbp]
we really need implementations => we really need a stable specification => we really need me to write a stable specification very, very quickly => we need the work on TPDL to be done => damn
21:16:35 [AaronSw]
Heh.
21:16:46 [sbp]
we also need me to document the schema properly this time; it's clear that no one can follow the RDF Schema, although it's absolutely perfect for defining the language
21:16:59 [AaronSw]
Hmmph.
21:17:09 [sbp]
the problem is, I expected people to learn RDF Schema... heh, heh!
21:17:35 [AaronSw]
Just write an RDF Schema -> Human Readable translater
21:17:41 [sbp]
lol!
21:18:33 [sbp]
trouble is, I start documenting it, and get bored quite quickly. It feels to me like I'm needlessly repeating work...
21:19:22 [sbp]
I could just produce an EARL 1.0 schema, and say: here it is, use it, resistance is futile
21:19:22 [AaronSw]
See, that translator could then be used by other projects too.
21:19:31 [AaronSw]
Yep, that might be best.
21:19:38 [AaronSw]
Along with a lot of examples.
21:19:51 [AaronSw]
Aha! I know the solution:
21:19:55 [sbp]
creating an RDF Schema => XHTML translator would be more complex than doing the entire EARL work 3 times over
21:20:04 [sbp]
I did write a short implementation in XSLT
21:20:10 [AaronSw]
But so much more rewarding. ;)
21:20:15 [AaronSw]
Here's the ticket; Just make Bob B. Bobbington do the work for you!
21:20:19 [sbp]
lol!
21:20:25 [sbp]
good idea
21:20:58 [AaronSw]
If people ask why it isn't done, just say "Talk to Bob about it. Shoo, shoo!"
21:21:12 [sbp]
lol, and cool reference to the Dilbert quote
21:21:25 [sbp]
Hmm... I wouldn't feel so bad writing an EARL schema if it didn't fuck with the ATR output too much
21:21:43 [AaronSw]
ATR?
21:22:01 [sbp]
Chris has worked for ages on making that produce decent EARL, and has been *very* patient with me. I would have given up ages ago
21:22:10 [sbp]
ATR - Accessibility Tool Reviewer
21:22:28 [AaronSw]
What's it written in?
21:22:33 [sbp]
I owe him, and yet if we change EARL, it'll be more work for him to do! Aaaargh!
21:22:36 [sbp]
it's in C
21:22:58 [AaronSw]
Chris Lilley?
21:23:05 [sbp]
I started on a Python port, but CGI... shudder
21:23:10 [sbp]
Chris Ridpath
21:23:21 [AaronSw]
Don't know 'im.
21:23:32 [AaronSw]
* AaronSw can't imagine folks doing CGIs in C... ick.
21:23:45 [sbp]
he didn't do a CGI: it's a Win32 app
21:23:51 [sbp]
I tried to port it to CGI...
21:23:54 [AaronSw]
Ah.
21:26:58 [sbp]
your unique date idea was a good one, but its screwy in that data datatypes... tricky to implement
21:27:13 [AaronSw]
Huh?
21:27:20 [sbp]
I mean, I can't even get the ASP form to output correct dates (I could do, I suppose)
21:27:41 [sbp]
_:a earl:testSubject <http://exmaple.org/>; earl:date "2001-05-17" .
21:29:47 [AaronSw]
Hmm, the airport for the next plenary is CEQ.
21:30:00 [sbp]
CEQ?
21:30:42 [AaronSw]
Cannes, France - Mandelieu
21:31:04 [sbp]
uh huh
21:32:54 [AaronSw]
Hmm, none of the travel sites seem to have flight data...
21:35:45 [AaronSw]
* AaronSw tries the Heliport.
21:35:59 [AaronSw]
JCA
21:36:10 [sbp]
how do I say that two properties overlap?
21:36:19 [sbp]
er... I meant, two classes
21:36:35 [sbp]
I could declare an intersection, but I don't want to use it
21:36:44 [AaronSw]
What do you mean? How can properties overlap?
21:36:51 [sbp]
I meant: classes
21:36:53 [AaronSw]
Oh, I see... classes.
21:37:00 [AaronSw]
Isn't it assumed that they overlap?
21:37:13 [AaronSw]
Unless you say otherwise.
21:37:20 [AaronSw]
Why do you want to say this?
21:37:22 [sbp]
:Dog :Cat
21:37:29 [sbp]
they don't overlap
21:37:42 [AaronSw]
"CatDog, CatDog, this is a show about a little CatDog."
21:37:45 [sbp]
:Person :Male
21:37:46 [sbp]
they do
21:38:06 [sbp]
I'll just do an intersection
21:38:06 [AaronSw]
Why do you need to specifically state that they do?
21:38:16 [sbp]
in EARL 1.0:-
21:38:17 [sbp]
earl:Person a rdfs:Class;
21:38:17 [sbp]
rdfs:subClassOf earl:Assertor .
21:38:17 [sbp]
earl:operator
21:38:17 [sbp]
rdfs:range earl:Operator .
21:38:17 [sbp]
[ daml:intersectionOf (earl:Operator earl:Person) ] .
21:38:21 [AaronSw]
intersections can be empy.
21:38:41 [sbp]
true
21:39:22 [sbp]
Hmm... that's a mess. Lemme do it in prose
21:39:36 [sbp]
An Assertor is the class of things that make EARL assertions
21:39:50 [sbp]
A Person is a person: an assertor may be a parson
21:39:52 [sbp]
person
21:40:11 [sbp]
A machine is a machine: an assertor may also be a machine
21:40:19 [rillian]
rillian has quit
21:40:24 [sbp]
A person cannot be a machine
21:40:33 [sbp]
A machine can have an operator
21:40:50 [sbp]
Operator is the class of things that operate a machine
21:41:04 [sbp]
can a machine operate a machine?
21:41:27 [AaronSw]
I suppose so, but I'm not sure it'd be a useful distinction for your app.
21:42:13 [sbp]
so far, we have: :Assertor daml:disjointUnionOf (:Person :Machine) . :operator rdfs:domain :Machine; rdfs:range :Operator .
21:42:32 [AaronSw]
This is crazy -- it's cheaper to fly to France than Hawaii.
21:42:39 [sbp]
makes sense
21:42:45 [AaronSw]
Why?
21:42:49 [sbp]
more flights, more airports
21:42:58 [sbp]
not much further away
21:43:12 [AaronSw]
No, just to Nice, France.
21:43:18 [AaronSw]
One airport.
21:43:44 [sbp]
but I mean, there isn't a limit that people must go to Nice airport ot get to France
21:43:54 [AaronSw]
True.
21:43:54 [sbp]
but if they want to go to Hawaii, I'll bet they have to go to Honolulu
21:46:22 [sbp]
Hmm... I say that all people and machines are assertors... that can't be right
21:46:47 [sbp]
I mean, some people are assertors, some machines are assertors
21:47:04 [sbp]
and is "Assertor" American English?
21:48:09 [AaronSw]
I've never heard the word before, but i'd expect so...
21:48:09 [sbp]
dunno, but it is a word: http://www.dict.org/bin/Dict?Form=Dict2&Database=*&Query=Assertor
21:48:18 [sbp]
[[[
21:48:19 [sbp]
Assertor \As*sert"or\, n. [L., fr. asserere.]
21:48:19 [sbp]
One who asserts or avers; one who maintains or vindicates a
21:48:19 [sbp]
claim or a right; an affirmer, supporter, or vindicator; a
21:48:19 [sbp]
defender; an asserter.
21:48:19 [sbp]
21:48:21 [sbp]
The assertors of liberty said not a word. --Macaulay.
21:48:23 [sbp]
21:48:25 [sbp]
Faithful assertor of thy country's cause. --Prior.
21:48:27 [sbp]
]]]
21:48:42 [AaronSw]
The assertors of liberty said [assertor was] not a word. --Macaulay.
21:48:51 [tav]
tav has joined #swhack
21:48:52 [sbp]
:-)
21:48:55 [sbp]
Hi tav
21:49:03 [AaronSw]
Wooh, is tav back?
21:49:07 [AaronSw]
<xena> potential spellings for assertor are: assorter, assentor, assorted, assorters, assentors, asserted, asserts, aggressor, assaulter, ascertain
21:49:13 [AaronSw]
tav?!
21:50:52 [sbp]
:Assertor rdfs:subClassOf [ daml:disjointUnionOf (:Person :Machine) ] . [ daml:intersectionOf (:Assertor :Machine) ] . [ daml:intersectionOf (:Assertor :Person) ] .
21:50:56 [sbp]
but that's so verbose...
21:51:02 [AaronSw]
oh shoot disk full
21:51:03 [sbp]
there has to be a neater way of doing it
21:51:07 [tav]
hello
21:51:10 [sbp]
hi
21:51:52 [sbp]
ah, that'll have to do
21:52:16 [AaronSw]
This can't be good: /dev/disk0s5 19639008 19973264 -334256 101% /
21:53:17 [sbp]
heh!
21:53:39 [AaronSw]
* AaronSw frantically closes windows
21:53:54 [AaronSw]
* AaronSw disconnects
22:01:55 [AaronSw]
* AaronSw reconnects
22:08:59 [AaronSw]
logster, grep \$
22:09:03 [AaronSw]
I'm logging. Sorry, nothing found for '\$' (internally: "\")
22:09:52 [sbp]
?
22:09:59 [sbp]
logster, grep \\$
22:10:01 [logster]
I'm logging. I found 78 answers for '\\$' (showing 0...4)
22:10:02 [logster]
0) 2001-10-21 03:53:55 <sbp> r = re.compile(t+t+t+r'[ \t]*.[ \t]*', re.S).findall
22:10:03 [logster]
1) 2001-10-21 03:53:55 <sbp> t = r'[ \t]*(<[^>]+>|_:[^\s]+|\"(?:\\\"|[^"])*\")'
22:10:04 [logster]
2) 2001-10-21 01:38:38 <sbp> s/'\n\t{ %s %s %s }'/'%s %s %s .'
22:10:05 [logster]
3) 2001-10-21 01:14:44 <sbp> "\"s" <#t> "" .
22:10:06 [logster]
4) 2001-10-21 01:14:40 <sbp> <#p> <#q> "\"r" .
22:10:34 [sbp]
logster, grep \$$
22:10:43 [sbp]
I'm logging. Sorry, nothing found for '\$$' (internally: "\")
22:10:43 [sbp]
grepit!
22:11:09 [AaronSw]
* AaronSw looks for $6098 :-(
22:11:11 [sbp]
logster, grep internally: "\"
22:11:14 [sbp]
I'm logging. Sorry, nothing found for 'internally: "\"'
22:11:18 [sbp]
try under the sofa
22:11:30 [AaronSw]
Yeah, tried that...
22:11:33 [sbp]
:-)
22:30:23 [AaronSw]
* AaronSw disconnects
23:22:48 [sbp]
sbp has quit
23:23:09 [rillian]
rillian has joined #swhack
23:41:47 [rillian]
rillian has quit