On 10/10/11 19:00, Vadim Eisenberg wrote:
Hi Paolo,
The hash sign '#' starts a comment in Turtle - so the content after it is
ignored by Turtle parsers.
BTW, you can validate Turtle here - http://www.rdfabout.com/demo/validator/.
And use exactly the RIOT parsers here:
http://www.sparql.org/data-validator.html
which is also includes in Fuseki.
Regards,
Vadim
On Mon, Oct 10, 2011 at 7:25 PM, Paolo Castagna<
[email protected]> wrote:
Hi,
I am not sure whether this is legal Turtle or not:
------
@prefix :<http://example.org/> .
@prefix foaf:<http://xmlns.com/foaf/0.1/> .
:alice#me
a foaf:Person ;
foaf:name "Alice" ;
foaf:mbox<mailto:[email protected]> ;
foaf:knows :bob#me ;
foaf:knows :charlie#me ;
foaf:knows :snoopy#me ;
.
------
When I try to parse it using Jena:
Model model = ModelFactory.createDefaultModel();
model.read(in, null, "TURTLE");
I get this exception:
Exception in thread "main" com.hp.hpl.jena.n3.turtle.TurtleParseException:
Encountered "<PNAME_LN> "foaf:knows "" at line 9, column 5.
Was expecting one of:
";" ...
"," ...
"." ...
at
com.hp.hpl.jena.n3.turtle.ParserTurtle.parse(ParserTurtle.java:41)
at
com.hp.hpl.jena.n3.turtle.TurtleReader.readWorker(TurtleReader.java:21)
at
com.hp.hpl.jena.n3.JenaReaderBase.readImpl(JenaReaderBase.java:101)
at com.hp.hpl.jena.n3.JenaReaderBase.read(JenaReaderBase.java:68)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:226)
[...]
If I try to parse it using RIOT:
RIOT.init() ;
Model model = ModelFactory.createDefaultModel();
model.read(in, null, "TURTLE");
I get this exception:
ERROR [main] (ErrorHandlerFactory.java:62) - [line: 9, col: 5 ] Triples not
terminated by DOT
Exception in thread "main" com.hp.hpl.jena.shared.JenaException:
org.openjena.riot.RiotException: [line: 9, col: 5 ] Triples not terminated
by DOT
at
org.openjena.riot.system.JenaReaderRIOT.readImpl(JenaReaderRIOT.java:132)
at
org.openjena.riot.system.JenaReaderRIOT.read(JenaReaderRIOT.java:79)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:226)
[...]
Caused by: org.openjena.riot.RiotException: [line: 9, col: 5 ] Triples not
terminated by DOT
at
org.openjena.riot.ErrorHandlerFactory$ErrorHandlerStd.fatal(ErrorHandlerFactory.java:110)
at org.openjena.riot.lang.LangBase.raiseException(LangBase.java:201)
at
org.openjena.riot.lang.LangBase.exceptionDirect(LangBase.java:194)
at org.openjena.riot.lang.LangBase.exception(LangBase.java:187)
at org.openjena.riot.lang.LangBase.expect(LangBase.java:179)
at org.openjena.riot.lang.LangBase.expectOrEOF(LangBase.java:170)
at
org.openjena.riot.lang.LangTurtle.expectEndOfTriples(LangTurtle.java:45)
at
org.openjena.riot.lang.LangTurtleBase.triples(LangTurtleBase.java:246)
at
org.openjena.riot.lang.LangTurtleBase.triplesSameSubject(LangTurtleBase.java:206)
at
org.openjena.riot.lang.LangTurtle.oneTopLevelElement(LangTurtle.java:34)
at
org.openjena.riot.lang.LangTurtleBase.runParser(LangTurtleBase.java:132)
at org.openjena.riot.lang.LangBase.parse(LangBase.java:71)
at
org.openjena.riot.system.JenaReaderTurtle2.readWorker(JenaReaderTurtle2.java:34)
at
org.openjena.riot.system.JenaReaderRIOT.readImpl(JenaReaderRIOT.java:120)
... 3 more
I would be tempted to say that it should be treated as legal Turtle:
http://www.w3.org/TeamSubmission/turtle/#qname
But it seems that '#' in the qname is treated a comment:
http://www.w3.org/TeamSubmission/turtle/#comment
I tried to use the directive @base instead of @prefix :<
http://example.org/> .
I have the same exceptions in both cases.
Perhaps the Turtle above is 'unusual' and I do not necessarily need to use
that.
But, since it occurred, I would like to understand if it's legal (and we
have a small bug) or not.
Thanks in advance,
Paolo