[ 
https://issues.apache.org/jira/browse/JENA-1377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16099026#comment-16099026
 ] 

Elie Roux commented on JENA-1377:
---------------------------------

That's very interesting... I'm tempted to see it as a major flaw in the RDF 
spec, but that's not Jena's responsibility, I'll try to discuss this aspect in 
other places. I'd like to use {{RDFParserBuilder.canonicalLiterals}} but I'm 
clearly missing something about which the doc is completely silent... Here is 
an incomplete code I don't manage to complete :

{noformat}
Model model = ModelFactory.createDefaultModel();
StreamRDF out = ?????? // get a stream going to the model
RDFParser parser = RDFParser.create()
                             .source(filename)
                             .lang(RDFLanguages.JSONLD)
                             .canonicalLiterals(true)
                             .parse(out); 
{noformat}

how can I parse a file into a model with streams? Is it possible? If not, is 
there a way to canonicalize literals when reading from a file into a model?

Thank you!

> Model.isIsomorphicWith() returns false when language tags case do not match
> ---------------------------------------------------------------------------
>
>                 Key: JENA-1377
>                 URL: https://issues.apache.org/jira/browse/JENA-1377
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: Jena 3.3.0
>         Environment: Linux
>            Reporter: Elie Roux
>
> Model.isIsomorphicWith() treats language tags in a case-sensitive way, which 
> is against BCP47 spec. It is easily shown with an example:
> {noformat}
>            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));
> {noformat}
> 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.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to