使用Java程序将字符串转换为jena中的model或Statement?

时间:2011-04-15 10:07:53

标签: java rdf jena

我在java中使用jena为RDF编写了一个程序...我必须以字符串格式返回结果..然后在其他函数中我必须将其作为字符串格式并将其转换为模型或语句....这可能......如果是这样的话......有人可以用示例代码帮助我......

提前致谢

2 个答案:

答案 0 :(得分:5)

如果要序列化的RDF小于完整模型,则创建临时内存模型并将要写入的语句复制到其中。使用Model.write将这些语句转换为字符串(以RDF / XML,Turtle或N-triples格式)。如果要加载包含RDF的字符串,请创建包含字符串的java.io.StringReader对象,并将其传递给Model.read方法。

答案 1 :(得分:0)

值得注意的是,根据最新的JavaDoc,将Reader作为方法参数的两个Model.read()方法都说“使用此方法通常是一个错误。”。我不知道JavaDoc为什么这么说,但确实如此。我正在使用的另一种方法是传入一个InputStream,如图所示(其中'is'是InputStream):

// read(InputStream in, String base, String lang)...

memModel.read(is, null,"TTL");

如果您需要先将String转换为InputStream,可以使用:

InputStream is = new ByteArrayInputStream( str.getBytes() );