Open doriantaylor opened 8 years ago
Oh IIIIIIII see. Check this out:
> /usr/local/lib/python2.7/dist-packages/FuXi-1.4.dev-py2.7.egg/FuXi/Rete/RuleStore.py(396)add()
-> isinstance(obj, (URIRef, Literal)) and obj or obj.identifier))
(Pdb) p obj
rdflib.term.Literal(u'false', datatype=rdflib.term.URIRef(u'http://www.w3.org/2001/XMLSchema#boolean'))
(Pdb) if not obj: 'hi'
'hi'
Somebody set "false"^^xsd:boolean
to be actually False
in Python. I can patch this but I'm still not sure where .identifier
is coming from. Perhaps more accurately, I'm not sure what that code is actually supposed to do.
This appears to be fixed in the gjhiggins branch. Hopefully it will be merged in shortly. seeAlso #15
Tried this:
Got this:
(Note, I tried the same with Python 3. This is against the latest rdflib.)
https://github.com/RDFLib/FuXi/blob/master/lib/Rete/RuleStore.py#L396 says:
isinstance(obj, (URIRef, Literal)) and obj or obj.identifier))
I'm not sure where
obj.identifier
is supposed to come from but it doesn't look like it's anywhere in the source of rdflib.