我是RDF和Jena的新手。我想将.nt (N- TRIPLE)
文件加载到模型中。我试过read(inputStream, "N-TRIPLE")
但没有帮助。
它抛出
org.apache.jena.riot.RiotException: Element or attribute do not match QName production: QName::=(NCName':')?NCName.
有人能指出我出了什么问题吗?
以下是我尝试加载的N-TRiple
文件的链接:http://dbpedia.org/data/Berlin.ntriples
答案 0 :(得分:7)
read(inputStream, string)
使用字符串参数作为基URI,而不是语法语言。它正在尝试默认,即RDF / XML。检查Model#read(InputStream in, String base)和Model#read(InputStream in, String base, String lang)的javadoc以获取更多信息。
model.read(inputStream, null, "N-TRIPLES") ;
或
RDFDataMgr.read(model, inputStream, LANG.NTRIPLES) ;
如果您只是从文件(或URL)打开流,那么Apache Jena将整理细节。如,
RDFDataMgr.read(model, "file:///myfile.nt") ;
有各种相关的操作。请参阅Model和RDFDataMgr的javadoc。