RDFLib/rdflib — Issue #188: Constructing a literal from another literal does not copy language or datatype tag
Author: gjhiggins
Created: 2012-02-20 08:34:44+00:00
State: open

gromgull, 2012-01-15T18:20:03.000Z

In [15]: b=rdflib.Literal("2", datatype=rdflib.XSD.integer)

In [16]: b
Out[16]: rdflib.term.Literal(u'2', datatype=rdflib.term.URIRef('http://www.w3.org/2001/XMLSchema#integer'))

In [17]: rdflib.Literal(b)==b
Out[17]: False

In [18]: rdflib.Literal(b)
Out[18]: rdflib.term.Literal(u'2')

----

In [9]: a=rdflib.Literal("cake",lang="en")

In [10]: a
Out[10]: rdflib.term.Literal(u'cake', lang='en')

In [11]: rdflib.Literal(a)==a
Out[11]: False

In [14]: rdflib.Literal(a)
Out[14]: rdflib.term.Literal(u'cake')

The constructor thinks it's just a string - we should probably check for literals and copy it completely.

Comment 1 by gromgull
Fixed in r7a4d65400beb