Hi Paolo http://www.w3.org/TeamSubmission/turtle/#sec-grammar seems to indicate that you are not allowed the hash character 0x23 in a qname. See section 3.6, items 30 and 31
Cheers Bill On 10 Oct 2011, at 20:57, Paolo Castagna wrote: > Hi Vadim, > thanks. > > But, is '#' a valid character in a qname? > http://www.w3.org/TeamSubmission/turtle/#qname > > Paolo > > 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/. >> >> 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 >>> >>
