Description
Model.isIsomorphicWith() treats language tags in a case-sensitive way, which is against BCP47 spec. It is easily shown with an example:
Model m1 = ModelFactory.createDefaultModel(); Resource r = m1.getResource("http://example.com/resource"); Property p = m1.getProperty("http://example.com/property"); m1.add(r, p, m1.createLiteral("example", "zh-Latn-pinyin")); // canonical Model m2 = ModelFactory.createDefaultModel(); r = m2.getResource("http://example.com/resource"); p = m2.getProperty("http://example.com/property"); m2.add(r, p, m1.createLiteral("example", "zh-latn-pinyin")); // lower case System.out.println(m1.isIsomorphicWith(m2));
prints false, while it clearly should print true. Related bug (which is not really a bug per se, just a trigger for this one: https://github.com/jsonld-java/jsonld-java/issues/199
See also https://issues.apache.org/jira/browse/COMMONSRDF-51 for some consideration of the language tag case.