In RDF 1.0, "x" and "x"^^xsd:string are different literals, whereas in RDF 1.1 they are the same literal as all literals are typed and plain literals are considered to be implicitly typed as "xsd:string".
RDFpro follows RDF 1.1 rules, but there are still tools based on RDF 1.0 for which RDFpro behavior can be problematic. In particular, in RDFpro:
an "x"^^xsd:string literal is simply written as "x"
triples s p "x" and s p "x"^^xsd:string are considered equal and thus possibly merged
While the first issue (from an RDF 1.0 perspective) can be addressed by keeping track of the original distinction (in the input files) between "x" and "x"^^xsd:string, the second issue can only be addressed by implementing an RDF 1.0 'legacy' mode in RDFpro.
This would require:
to switch from the default ValueFactory implementation that creates literal based on RDF 1.1 semantics to a legacy ValueFactory based on RDF 1.0 semantics (basically, the Sesame 2.7 default ValueFactory)
to revise SESAME parsers and writers for different RDF syntaxes so that no datatype normalization (from plain literal to xsd:string and back) is performed (to be investigated)
In RDF 1.0,
"x"
and"x"^^xsd:string
are different literals, whereas in RDF 1.1 they are the same literal as all literals are typed and plain literals are considered to be implicitly typed as"xsd:string"
.RDFpro follows RDF 1.1 rules, but there are still tools based on RDF 1.0 for which RDFpro behavior can be problematic. In particular, in RDFpro:
"x"^^xsd:string
literal is simply written as"x"
s p "x"
ands p "x"^^xsd:string
are considered equal and thus possibly mergedWhile the first issue (from an RDF 1.0 perspective) can be addressed by keeping track of the original distinction (in the input files) between
"x"
and"x"^^xsd:string
, the second issue can only be addressed by implementing an RDF 1.0 'legacy' mode in RDFpro.This would require:
ValueFactory
implementation that creates literal based on RDF 1.1 semantics to a legacyValueFactory
based on RDF 1.0 semantics (basically, the Sesame 2.7 defaultValueFactory
)xsd:string
and back) is performed (to be investigated)