Github user stain commented on the issue: https://github.com/apache/commons-rdf/pull/30 Right, BCP47 normalisation would make sense, but sadly that is not directly permitted by RDF 1.1, only normalisation to lower case :-( - probably to avoid dependency on the registry. However I think we can try to make Commons RDF present a consistent RDF 1.1-compliant view, which I would think includes that creating a literal with en-gb lowercase would return en-gb lowercase, also with RDF4J as back end. (Would this require our wrapper LiteralImpl to always lowercase for RDF4J?) Can we extend the RDF4J test to also cover the other settings? How are they provided? If the user is explicitly asking to go beyond the RDF standards, then they should not be surprised if Commons RDF's view goes along with that (or falls over), so then perhaps we don't need to worry about it here? (e.g. Jena can be configured to support generalized RDF which don't work well with the normal TripleImpl). On 16 Jan 2017 9:52 pm, "Peter Ansell" <notificati...@github.com> wrote: *@ansell* commented on this pull request. Looks fairly good to me. I disagree with the test assertion that disallows normalisation using the BCP47 conventions (e.g., en-GB) in their constructors, but it is a minor issue. ------------------------------ In api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java <https://github.com/apache/commons-rdf/pull/30#pullrequestreview-16887719>: > @@ -194,6 +194,114 @@ public void testCreateLiteralLangISO693_3() throws Exception { assertEquals("\"Herbert Van de Sompel\"@vls", vls.ntriplesString()); } + public void testCreateLiteralLangCaseInsensitive() throws Exception { Does this need @Test <https://github.com/Test> annotation? ------------------------------ In api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java <https://github.com/apache/commons-rdf/pull/30#pullrequestreview-16887719>: > @@ -194,6 +194,114 @@ public void testCreateLiteralLangISO693_3() throws Exception { assertEquals("\"Herbert Van de Sompel\"@vls", vls.ntriplesString()); } + public void testCreateLiteralLangCaseInsensitive() throws Exception { + // COMMONSRDF-51: Literal langtag may not be in lowercase, but + // must be COMPARED (aka .equals and .hashCode()) in lowercase + // as the language space is lower case. + final Literal lower = factory.createLiteral("Hello", "en-gb"); + final Literal upper = factory.createLiteral("Hello", "EN-GB"); + final Literal mixed = factory.createLiteral("Hello", "en-GB"); + + + assertEquals("en-gb", lower.getLanguageTag().get()); RDF4J may not follow this in some cases. It may use the BCP47 normalisation conventions to obtain en-GB instead. â You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <https://github.com/apache/commons-rdf/pull/30#pullrequestreview-16887719>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAPd5Zd7XV-563iLQNzvWAEI4dO7Hm4Qks5rS-aYgaJpZM4Lh1hF> .
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org