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

Viresh Gupta commented on JENA-1864:
------------------------------------

Thanks for the directions, I've made a WIP PR, 
[https://github.com/apache/jena/pull/719] and it works with both TURTLE_BLOCKS 
and TURTLE_FLAT.

However, I think we need to change the StreamRDF interface to incorporate 
something like `StreamRDF::base(String base, boolean hide_base)`. This is 
already present for prefixes and triples inside StreamRDF.

>From my understanding, calls to prefix() actually emit a prefix to stream, 
>whereas base() wasn't emitting it previously and just setting the 
>NodeFormatter.  Since we don't have any context inside StreamRDFOps, we will 
>have to design StreamRDFOps.sendBaseToStream() which will use 
>StreamRDF::base(base, hide_base) to pass the information from context to 
>writer (via hide_base). 

I'm not yet sure if this is the solution you intended. Mostly concerned about 
changing the definition of the interface. Let me know if this looks right?

 

> Inconsistent Turtle serializers
> -------------------------------
>
>                 Key: JENA-1864
>                 URL: https://issues.apache.org/jira/browse/JENA-1864
>             Project: Apache Jena
>          Issue Type: Bug
>    Affects Versions: Jena 3.14.0
>         Environment: My Configuration:
> OS: Ubuntu 18.04
> java version "1.8.0_111"
> javac 1.8.0_242
> Jena Version: 3.14.0
>            Reporter: Viresh Gupta
>            Priority: Major
>
> The turtle serializers provided for default model in Jena don't work as 
> expected. Moreover, the docs lack on which methods to use in which case.
> I found the following methods that seem to work:
>  # model.write()  (A.ttl)
>  # RDFWriter   (B.ttl)
>  # RDFDataMgr  (C.ttl)
> I'm providing a minimum working example along with the outputs using a sample 
> turtle file from Turtle specifications (ggoblin.ttl – Example 1 from 
> [https://www.w3.org/TR/turtle/|https://www.w3.org/TR/turtle/#sec-examples]) 
> in a gist: [https://gist.github.com/virresh/5a28dc3adb1f40bf9070e2cb4ecfa90d]
>  
> The issue:
>  # "@base" directive is not printed when writing with the TURTLE_BLOCK and 
> TURTLE_FLAT format in RDFWriter
>  #  There is no way to provide "@base" inside the RDFDataMgr. Expected output 
> was something like <#spiderman>
>  # RDFDataMgr doesn't respect the prefix supplied, e.g I manually added 
> prefix "@base", however, the output (C.ttl) still converts the relative 
> entities into their absolute form, whereas I expected it to do something like 
> base:#spiderman at the very least
>  
> I'll be happy to help with the issue if it doesn't fall into the "wont-fix" 
> category.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to