Rdf 阿帕奇·耶拿获得;错误“暴动”;处理元件

Rdf 阿帕奇·耶拿获得;错误“暴动”;处理元件,rdf,jena,Rdf,Jena,我这里有一个RDF文件:其中有35696条记录。我正在尝试使用以下方法与Jena一起处理它: ./bin/sparql --data=/tmp/rdf.rdf --query=./basic.query 但我得到了: 21:25:27 ERROR riot :: Element type "j.0:target" must be followed by either attribute specifications, ">" or "/>". Fai

我这里有一个RDF文件:其中有35696条记录。我正在尝试使用以下方法与Jena一起处理它:

./bin/sparql --data=/tmp/rdf.rdf --query=./basic.query
但我得到了:

21:25:27 ERROR riot                 :: Element type "j.0:target" must be followed by either attribute specifications, ">" or "/>".
Failed to load data
我相信这个问题是一个特定的记录,但我不知道是哪一个,有人有办法检查这个问题,或者有命令生成问题的行号吗?

问题是数据不是RDF/XML(甚至不是XML) 输入的最大问题是它不是合法的RDF/XML,甚至不是合法的XML。有许多行包含格式错误的字符串,例如

$grep''rdf.rdf

谢谢不幸的是,我无法控制这些数据,但我将在未来控制这些数据。我相信数据是用CSV2RDF编码的,但我不确定。请注意,
Model.addLiteral(资源、属性、对象)
已被弃用。解决方法(如果真的可以这样称呼的话)是在使用
Model.createTypedLiteral(Object)
处理第三个参数后,执行与and相同的操作,并调用
Model.addLiteral(Resource,Property,Literal)
。在这两种情况下,杰娜都会妥善处理escaping@RobHall接得好
ModelCon.addLiteral(Resource,Property,Object)
被弃用(
Model
继承自
ModelCon
),但是
ModelCon.addLiteral(Resource,Property,long)
不是(对于使用原语的其他版本也是如此),所以实际上可以进行
com.addLiteral(hour,(long)通信[1]);,我想是吧?我会更新代码。@JoshuaTaylor你完全正确。在这一点上,我对Secumin唯一的一点建议是,创建一个实用程序来处理域的URI创建,而不是在创建资源时创建URI,这是非常方便的(Joshua知道这一点;他只是在确保示例高度可读性方面非常出色,而我所建议的示例代码并不是很好)。其基本原理是,对于这些类型的约定,维护使用中心位置的代码要容易得多。(我通常甚至为这些东西创建一个
Conventions.java
类)。@RobHall我创建了python实用程序来创建我自己的URI。一如既往地感谢你的建议。
<j.0:target rdf:resource="urn:cordeliabuvaledesilvaa"jajajajajajajajaja"/>