From d549a93b91b99dabd073759cd8fd958e6eb5b3de Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 18 Oct 2019 21:47:14 +0200 Subject: Normalise away rdf:langString datatype Depending on how you read the specifications, a rdf:langString isn't identical to an xsd:string, but an rdf:langString must have a non-empty language tag so having this datatype doesn't really make any sense anyway. --- src/normalise.c | 2 ++ tests/normalise/test-normalise.nt | 1 + tests/normalise/test-normalise.ttl | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/normalise.c b/src/normalise.c index 34f97f71..bdf6d871 100644 --- a/src/normalise.c +++ b/src/normalise.c @@ -217,6 +217,8 @@ serd_node_normalise(const SerdEnv* env, const SerdNode* const node) INTEGER_TYPE_LEN, (int (*)(const void*, const void*))strcmp)) { result = serd_normalise_integer(str, datatype); + } else if (!strcmp(datatype_uri, NS_RDF "langString")) { + result = serd_new_string(serd_node_string(node)); } serd_node_free(datatype); diff --git a/tests/normalise/test-normalise.nt b/tests/normalise/test-normalise.nt index e23989ec..d2eff5a2 100644 --- a/tests/normalise/test-normalise.nt +++ b/tests/normalise/test-normalise.nt @@ -63,6 +63,7 @@ _:b1 "0"^^ "36893488147419103232"^^ . _:b1 "1"^^ . _:b1 "36893488147419103232"^^ . +_:b1 "no language tag" . _:b1 "untyped" . _:b1 . _:b1 "notxsd"^^ . diff --git a/tests/normalise/test-normalise.ttl b/tests/normalise/test-normalise.ttl index 3db64f39..85dd2456 100644 --- a/tests/normalise/test-normalise.ttl +++ b/tests/normalise/test-normalise.ttl @@ -1,4 +1,5 @@ @base . +@prefix rdf: . @prefix xsd: . [ @@ -67,6 +68,7 @@ " 036893488147419103232 "^^xsd:nonNegativeInteger , " +01 "^^xsd:positiveInteger , " 036893488147419103232 "^^xsd:positiveInteger ; + "no language tag"^^rdf:langString ; "untyped" , , "notxsd"^^ , -- cgit v1.2.1