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" <[email protected]> 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 [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]