4

我使用 JENA 库创建了一些 RDF 文件:Model model = ModelFactory.createDefaultModel();...现在我如何将其转换为字符串?

谢谢

4

2 回答 2

14

尝试这样的事情:

String syntax = "RDF/XML-ABBREV"; // also try "N-TRIPLE" and "TURTLE"
StringWriter out = new StringWriter();
model.write(out, syntax);
String result = out.toString();

这使用了 Jena 的内置编写器,这些编写器已经可以在各种受支持的 RDF 语法中输出 RDF 图,例如 RDF/XML 和 Turtle 和 N-Triples。如果您只想转储到System.out,那么它更容易:

model.write(System.out, "RDF/XML-ABBREV");
于 2012-04-12T08:52:55.840 回答
0

RDF 模型是一组语句。每次向模型添加属性时,都会创建一个语句……RDF 模型中的语句也称为“三重”,因为它有 3 个部分:主题(资源)、谓词(属性)和对象( RDFNode - 可以是资源)。您可以对这些对象调用 toString 方法,如下代码所示:

// list the statements in the Model
StmtIterator iter = model.listStatements();

// print out the predicate, subject and object of each statement
while (iter.hasNext()) {
    Statement stmt      = iter.nextStatement();  // get next statement
    Resource  subject   = stmt.getSubject();     // get the subject
    Property  predicate = stmt.getPredicate();   // get the predicate
    RDFNode   object    = stmt.getObject();      // get the object

    System.out.print(subject.toString());
    System.out.print(" " + predicate.toString() + " ");
    if (object instanceof Resource) {
       System.out.print(object.toString());
    } else {
        // object is a literal
        System.out.print(" \"" + object.toString() + "\"");
    }

    System.out.println(" .");
} 

请注意上面代码中的“toString”方法。

来源/参考:耶拿 - RDF(检查“声明”部分)。

于 2012-04-11T21:43:17.033 回答