java - 将 Java 对象转换为 RDF XML

标签 java rdf jena apache-jena

我想将 Java 对象转换为 RDF XML。我正在使用耶拿 API。我不想调用任何 REST 电话。

在REST方法中,我们可以这样写:

@Produces(OslcMediaType.APPLICATION_RDF_XML)

因此它以 RDF XML 格式发送响应。

我无法使用它,因为我已经使用了一种 REST 方法。我可以调用另一个 REST 调用将对象转换为 RDF。但我不想再调用一次 REST 电话。

是否有人有其他解决方案将 Java 对象转换为 RDF XML?

最佳答案

您可以为您的类创建自己的 RDF 序列化器,并且可以使用 Jena API。这是一个非常幼稚的例子:

public class Person {
    String name;
    int age;
    Person(String name){
        this.name = name;
    }
    String getIRI(){
        return "http://example.com/"+name;
    }
    String serialize(String syntax){
        Model model = ModelFactory.createDefaultModel();
        Resource resource = model.createResource(getIRI());
        // add the property
        resource.addProperty(FOAF.name, name);
        StringWriter out = new StringWriter();
        model.write(out, syntax);
        return out.toString();
    }
}

要序列化该类,请调用 Person p1 = new Person("Noor");. p1.serialize("RDF/XML-ABBREV")

关于java - 将 Java 对象转换为 RDF XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43650100/

相关文章:

java - 数字格式问题,新手项目

java - 如何禁止我的 Java 应用程序在 Windows 上运行?

c# - XML反序列化问题(带有命名空间的属性)

rdf - 微格式、rdf 或微数据

regex - SPARQL 正则表达式过滤器

java - 在耶拿阅读嵌套的 RDF 三元组

java - 耶拿多个 rdfs :label

java - 我可以用 Jython/Python 扩展 Jenkins 吗

java - jax-ws 服务中的 "Operation Connection.commit is not allowed during a global transaction"

geospatial - 使用 JENA FUSEKI 构建地理空间索引