You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (Jira)" <ji...@apache.org> on 2021/05/01 08:55:00 UTC

[jira] [Commented] (JENA-2099) Converting rdfstar to plain rdf formats do not work

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

Andy Seaborne commented on JENA-2099:
-------------------------------------

v 3.17.0 is not the latest version.

JSON-LD is separate 3rd party component. 

Conversion to reification is not automatic 

RDF-star syntax is not synonymous with reification. There is only one unique term {{<< ex:subj ex:pred ex:obj }} so it is not converting each occurrence to a reification stating. It can be used for reification use cases but it is not a direct data transformation - you need modelling. 

There is discussion of this on the RDF-star mailing list, for example:

https://lists.w3.org/Archives/Public/public-rdf-star/2020Jun/0006.html

See also JENA-1903.

RDF-star is an small extension of RDF - having different formats would break existing applications. There is no simple way in MIME types (CSS and HTML for example, use the same MIME type while the syntax changes). This is discussed in the editors working draft of RDF-star.

What is your use case?


> Converting rdfstar to plain rdf formats do not work
> ---------------------------------------------------
>
>                 Key: JENA-2099
>                 URL: https://issues.apache.org/jira/browse/JENA-2099
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: RIOT
>    Affects Versions: Jena 3.17.0
>            Reporter: Chris Mungall
>            Priority: Major
>
> Given a file ex1.ttl
>  
> {code:java}
> @prefix : <http://www.example.org/> .
> :employee38 :familyName "Smith" .
> << :employee38 :jobTitle "Assistant Designer" >> :accordingTo :employee22 .
> {code}
>  
> my expectation is that I should be able to use riot to serialize as plain rdf, ttl, ntriples, rdf-xml, and json-ld, with reification used (I cannot find a normative statement in the spec to support this but I hold it's a reasonably user expectation given what has been written about rdfstar by the authors of the spec).
> This doesn't work however:
>  
> {code:java}
> $ riot --out=jsonld ex1.ttl 
> org.apache.jena.riot.RiotException: Subject node is not a URI or a blank node
>         at org.apache.jena.riot.writer.JenaRDF2JSONLD.parse(JenaRDF2JSONLD.java:64)
>         at org.apache.jena.riot.writer.JsonLDWriter.toJsonLDJavaAPI(JsonLDWriter.java:200)
>         at org.apache.jena.riot.writer.JsonLDWriter.serialize(JsonLDWriter.java:174)
>         at org.apache.jena.riot.writer.JsonLDWriter.write(JsonLDWriter.java:135)
>         at org.apache.jena.riot.writer.JsonLDWriter.write(JsonLDWriter.java:141)
>         at org.apache.jena.riot.RDFWriter.write$(RDFWriter.java:208)
>         at org.apache.jena.riot.RDFWriter.output(RDFWriter.java:166)
>         at org.apache.jena.riot.RDFWriter.output(RDFWriter.java:113)
>         at org.apache.jena.riot.RDFWriterBuilder.output(RDFWriterBuilder.java:204)
>         at riotcmd.CmdLangParse.lambda$createAccumulateSink$0(CmdLangParse.java:348)
>         at riotcmd.CmdLangParse.exec$(CmdLangParse.java:172)
>         at riotcmd.CmdLangParse.exec(CmdLangParse.java:130)
>         at jena.cmd.CmdMain.mainMethod(CmdMain.java:92)
>         at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
>         at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
>         at riotcmd.riot.main(riot.java:29)
> {code}
>  
> similarly for export to rdfxml
> When I convert to turtle, the syntax remains turtlestar:
>  
> {code:java}
> $ riot --out=ttl ex1.ttl 
> @prefix :      <http://www.example.org/> .
> :employee38  :familyName  "Smith" .
> << :employee38 :jobTitle "Assistant Designer" >>
>         :accordingTo  :employee22 .{code}
>  
> I'm not totally sure if this is what should happen. I'm not totally sure of what the different file format options are, and if there is a distinct "turtlestar" and "ntriplesstar" (as an aside, it would be useful to have more command line help on permissible values for input and output formats in riot).
> My expectation is that parsing should be lenient as should accept *star syntaxes, but allow fine-grained control in output as to whether plain rdf syntax or *star syntaxes are used (with expansion to reification happening in the latter), but I may be using riot incorrectly.
> FWIW, explicitly using reification doesn't syntactically convert to rdfstar, e.g. with ex1r.ttl:
>  
> {code:java}
> @prefix : <http://www.example.org/> .
> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> :employee38 :jobTitle "Assistant Designer" .
>  [a rdf:Statement ;
>  rdf:subject :employee38 ;
>  rdf:predicate :jobTitle ;
>  rdf:object "Assistant Designer" ;
>  :accordingTo :employee22
>  ] .
> {code}
>  
> I can't seem to convert this into rdfstar syntax using riot
>  



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