[
https://issues.apache.org/jira/browse/JENA-735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hendy Irawan updated JENA-735:
------------------------------
Component/s: (was: RIOT)
Web site
Description:
https://jena.apache.org/documentation/io/rdf-output.html mentioned:
bq. This page describes the RIOT (RDF I/O technology) output capabilities
introduced in Jena 2.10.1. ... There are two ways to write RDF data using
Apache Jena RIOT, either via the RDFDataMgr ... or using the model API:
{code}
model.write(output, "format") ;
{code}
It should be mentioned in the documentation that using the model API has
limited supported formats, and Jena users should use RDFDataMgr because it's
typesafe and it supports all formats.
The Model API (I'm using {{DefaultModel}}) method throws exception for
{{TURTLE_FLAT}} (it works for {{TURTLE}}):
{code}
05:14:19.797 [main] DEBUG o.a.j.riot.stream.JenaIOEnvironment - Failed to find
configuration:
location-mapping.ttl;location-mapping.rdf;location-mapping.n3;etc/location-mapping.rdf;etc/location-mapping.n3;etc/location-mapping.ttl
05:14:19.851 [main] INFO c.hendyirawan.wordnet.Wn30CoreToWn31 - Loading
WordNet 3.0 core file
'/media/ceefour/passport/Tech/Intelligent_Systems/WordNet3/wn30-core-synsets.tab'...
05:14:19.993 [main] INFO c.hendyirawan.wordnet.Wn30CoreToWn31 - Converted to
9920 RDF statements
05:14:19.993 [main] INFO c.hendyirawan.wordnet.Wn30CoreToWn31 - Saving TURTLE
to '/home/ceefour/git/wordnet-extras/wn31-core-synsets.ttl'...
Exception in thread "main" com.hp.hpl.jena.shared.NoWriterForLangException:
TURTLE_FLAT
at
com.hp.hpl.jena.rdf.model.impl.RDFWriterFImpl.getWriter(RDFWriterFImpl.java:125)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.getWriter(ModelCom.java:305)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.write(ModelCom.java:354)
at com.hendyirawan.wordnet.Wn30CoreToWn31.main(Wn30CoreToWn31.java:96)
{code}
Code:
{code}
Model model = ModelFactory.createDefaultModel();
model.setNsPrefix("wn31", "http://wordnet-rdf.princeton.edu/wn31/");
model.setNsPrefix("wordnet-ontology",
"http://wordnet-rdf.princeton.edu/ontology#");
model.setNsPrefix("olo", "http://purl.org/ontology/olo/core#");
Resource synsetRes =
model.createResource(model.getNsPrefixURI("wordnet-ontology") + "Synset");
Property indexProp = model.createProperty(model.getNsPrefixURI("olo"), "index");
File wn30coreFile = new File(args[0]);
log.info("Loading WordNet 3.0 core file '{}'...", wn30coreFile);
try (CSVReader reader = new CSVReader(new FileReader(wn30coreFile), '\t')) {
int index = 1;
while (true) {
String[] row = reader.readNext();
if (row == null) {
break;
}
String wn30sense = row[0];
char posLetter = wn30sense.charAt(9);
final Integer posNumeric =
Preconditions.checkNotNull(POS_NUMERIC.get(posLetter),
"Invalid part-of-speech letter code '%s' for
sense '%s'", posLetter, wn30sense);
String wn31sense = posNumeric + wn30sense;
final Resource wn31res =
model.createResource(model.getNsPrefixURI("wn31") + wn31sense);
model.add(wn31res, RDF.type, synsetRes);
model.addLiteral(wn31res, indexProp, index); // hacky usage,
but pragmatic :P
index++;
}
}
log.info("Converted to {} RDF statements",
Iterators.size(model.listStatements()));
File wn31TurtleFile = new File(args[1], "wn31-core-synsets.ttl");
log.info("Saving TURTLE to '{}'...", wn31TurtleFile);
model.write(new FileOutputStream(wn31TurtleFile), "TURTLE_FLAT");
{code}
was:
https://jena.apache.org/documentation/io/rdf-output.html mentioned:
bq. This page describes the RIOT (RDF I/O technology) output capabilities
introduced in Jena 2.10.1. ... There are two ways to write RDF data using
Apache Jena RIOT, either via the RDFDataMgr ... or using the model API:
{code}
model.write(output, "format") ;
{code}
The Model API (I'm using {{DefaultModel}}) method throws exception for
{{TURTLE_FLAT}} (it works for {{TURTLE}}):
{code}
05:14:19.797 [main] DEBUG o.a.j.riot.stream.JenaIOEnvironment - Failed to find
configuration:
location-mapping.ttl;location-mapping.rdf;location-mapping.n3;etc/location-mapping.rdf;etc/location-mapping.n3;etc/location-mapping.ttl
05:14:19.851 [main] INFO c.hendyirawan.wordnet.Wn30CoreToWn31 - Loading
WordNet 3.0 core file
'/media/ceefour/passport/Tech/Intelligent_Systems/WordNet3/wn30-core-synsets.tab'...
05:14:19.993 [main] INFO c.hendyirawan.wordnet.Wn30CoreToWn31 - Converted to
9920 RDF statements
05:14:19.993 [main] INFO c.hendyirawan.wordnet.Wn30CoreToWn31 - Saving TURTLE
to '/home/ceefour/git/wordnet-extras/wn31-core-synsets.ttl'...
Exception in thread "main" com.hp.hpl.jena.shared.NoWriterForLangException:
TURTLE_FLAT
at
com.hp.hpl.jena.rdf.model.impl.RDFWriterFImpl.getWriter(RDFWriterFImpl.java:125)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.getWriter(ModelCom.java:305)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.write(ModelCom.java:354)
at com.hendyirawan.wordnet.Wn30CoreToWn31.main(Wn30CoreToWn31.java:96)
{code}
Code:
{code}
Model model = ModelFactory.createDefaultModel();
model.setNsPrefix("wn31", "http://wordnet-rdf.princeton.edu/wn31/");
model.setNsPrefix("wordnet-ontology",
"http://wordnet-rdf.princeton.edu/ontology#");
model.setNsPrefix("olo", "http://purl.org/ontology/olo/core#");
Resource synsetRes =
model.createResource(model.getNsPrefixURI("wordnet-ontology") + "Synset");
Property indexProp = model.createProperty(model.getNsPrefixURI("olo"), "index");
File wn30coreFile = new File(args[0]);
log.info("Loading WordNet 3.0 core file '{}'...", wn30coreFile);
try (CSVReader reader = new CSVReader(new FileReader(wn30coreFile), '\t')) {
int index = 1;
while (true) {
String[] row = reader.readNext();
if (row == null) {
break;
}
String wn30sense = row[0];
char posLetter = wn30sense.charAt(9);
final Integer posNumeric =
Preconditions.checkNotNull(POS_NUMERIC.get(posLetter),
"Invalid part-of-speech letter code '%s' for
sense '%s'", posLetter, wn30sense);
String wn31sense = posNumeric + wn30sense;
final Resource wn31res =
model.createResource(model.getNsPrefixURI("wn31") + wn31sense);
model.add(wn31res, RDF.type, synsetRes);
model.addLiteral(wn31res, indexProp, index); // hacky usage,
but pragmatic :P
index++;
}
}
log.info("Converted to {} RDF statements",
Iterators.size(model.listStatements()));
File wn31TurtleFile = new File(args[1], "wn31-core-synsets.ttl");
log.info("Saving TURTLE to '{}'...", wn31TurtleFile);
model.write(new FileOutputStream(wn31TurtleFile), "TURTLE_FLAT");
{code}
> Cannot write using TURTLE_FLAT:
> com.hp.hpl.jena.shared.NoWriterForLangException: TURTLE_FLAT
> --------------------------------------------------------------------------------------------
>
> Key: JENA-735
> URL: https://issues.apache.org/jira/browse/JENA-735
> Project: Apache Jena
> Issue Type: Bug
> Components: Web site
> Affects Versions: Jena 2.11.2
> Reporter: Hendy Irawan
> Priority: Minor
>
> https://jena.apache.org/documentation/io/rdf-output.html mentioned:
> bq. This page describes the RIOT (RDF I/O technology) output capabilities
> introduced in Jena 2.10.1. ... There are two ways to write RDF data using
> Apache Jena RIOT, either via the RDFDataMgr ... or using the model API:
> {code}
> model.write(output, "format") ;
> {code}
> It should be mentioned in the documentation that using the model API has
> limited supported formats, and Jena users should use RDFDataMgr because it's
> typesafe and it supports all formats.
> The Model API (I'm using {{DefaultModel}}) method throws exception for
> {{TURTLE_FLAT}} (it works for {{TURTLE}}):
> {code}
> 05:14:19.797 [main] DEBUG o.a.j.riot.stream.JenaIOEnvironment - Failed to
> find configuration:
> location-mapping.ttl;location-mapping.rdf;location-mapping.n3;etc/location-mapping.rdf;etc/location-mapping.n3;etc/location-mapping.ttl
> 05:14:19.851 [main] INFO c.hendyirawan.wordnet.Wn30CoreToWn31 - Loading
> WordNet 3.0 core file
> '/media/ceefour/passport/Tech/Intelligent_Systems/WordNet3/wn30-core-synsets.tab'...
> 05:14:19.993 [main] INFO c.hendyirawan.wordnet.Wn30CoreToWn31 - Converted to
> 9920 RDF statements
> 05:14:19.993 [main] INFO c.hendyirawan.wordnet.Wn30CoreToWn31 - Saving
> TURTLE to '/home/ceefour/git/wordnet-extras/wn31-core-synsets.ttl'...
> Exception in thread "main" com.hp.hpl.jena.shared.NoWriterForLangException:
> TURTLE_FLAT
> at
> com.hp.hpl.jena.rdf.model.impl.RDFWriterFImpl.getWriter(RDFWriterFImpl.java:125)
> at com.hp.hpl.jena.rdf.model.impl.ModelCom.getWriter(ModelCom.java:305)
> at com.hp.hpl.jena.rdf.model.impl.ModelCom.write(ModelCom.java:354)
> at com.hendyirawan.wordnet.Wn30CoreToWn31.main(Wn30CoreToWn31.java:96)
> {code}
> Code:
> {code}
> Model model = ModelFactory.createDefaultModel();
> model.setNsPrefix("wn31", "http://wordnet-rdf.princeton.edu/wn31/");
> model.setNsPrefix("wordnet-ontology",
> "http://wordnet-rdf.princeton.edu/ontology#");
> model.setNsPrefix("olo", "http://purl.org/ontology/olo/core#");
> Resource synsetRes =
> model.createResource(model.getNsPrefixURI("wordnet-ontology") + "Synset");
> Property indexProp = model.createProperty(model.getNsPrefixURI("olo"),
> "index");
> File wn30coreFile = new File(args[0]);
> log.info("Loading WordNet 3.0 core file '{}'...", wn30coreFile);
> try (CSVReader reader = new CSVReader(new FileReader(wn30coreFile), '\t')) {
> int index = 1;
> while (true) {
> String[] row = reader.readNext();
> if (row == null) {
> break;
> }
> String wn30sense = row[0];
> char posLetter = wn30sense.charAt(9);
> final Integer posNumeric =
> Preconditions.checkNotNull(POS_NUMERIC.get(posLetter),
> "Invalid part-of-speech letter code '%s' for
> sense '%s'", posLetter, wn30sense);
> String wn31sense = posNumeric + wn30sense;
> final Resource wn31res =
> model.createResource(model.getNsPrefixURI("wn31") + wn31sense);
> model.add(wn31res, RDF.type, synsetRes);
> model.addLiteral(wn31res, indexProp, index); // hacky usage,
> but pragmatic :P
> index++;
> }
> }
> log.info("Converted to {} RDF statements",
> Iterators.size(model.listStatements()));
> File wn31TurtleFile = new File(args[1], "wn31-core-synsets.ttl");
> log.info("Saving TURTLE to '{}'...", wn31TurtleFile);
> model.write(new FileOutputStream(wn31TurtleFile), "TURTLE_FLAT");
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)