【问题标题】:Jena Model converts my RDF type explicit declaration to implicit and messes with the formatJena 模型将我的 RDF 类型显式声明转换为隐式声明并与格式混淆
【发布时间】:2018-11-23 02:06:38
【问题描述】:

我有以下代码创建一个带有一些设置属性的 RDF 资源并在控制台上打印它。

    String uri = "http://krweb/";
    String name = "Giorgos Georgiou";
    String phone = "6976067554";
    String age = "27";
    String department = "ceid";
    String teaches = "java";

    Model model = ModelFactory.createOntologyModel();
    model.setNsPrefix("krweb", uri);

    Resource giorgosgeorgiou = model.createResource(uri+name.toLowerCase().replace(" ", ""), model.createResource(uri+"Professor"));

    Property has_name = model.createProperty(uri+"has_name");
    Property has_phone = model.createProperty(uri+"has_phone");
    Property has_age = model.createProperty(uri+"has_age");
    Property member_of = model.createProperty(uri+"member_of");
    Property teach = model.createProperty(uri+"teaches");

    giorgosgeorgiou.addProperty(teach, model.createResource(uri+teaches));
    giorgosgeorgiou.addProperty(member_of, model.createResource(uri+department));
    giorgosgeorgiou.addProperty(has_age,age);
    giorgosgeorgiou.addProperty(has_phone,phone);
    giorgosgeorgiou.addProperty(has_name,name);
   //giorgosgeorgiou.addProperty(RDF.type, model.createResource(uri+"Professor"));
    model.write(System.out,"RDF/XML");

我希望以这种格式打印模型:

<rdf:Description rdf:about="http://krweb/giorgosgeorgiou">
    <rdf:type rdf:resource="http://krweb/Professor"/>
    <krweb:has_name>Giorgos Georgiou</krweb:has_name>
    <krweb:has_phone>6976067554</krweb:has_phone>
    <krweb:has_age>27</krweb:has_age>
    <krweb:member_of rdf:resource="http://krweb/ceid"/>
    <krweb:teaches rdf:resource="http://krweb/java" />
</rdf:Description>

相反,我得到了这个:

  <krweb:Professor rdf:about="http://krweb/giorgosgeorgiou">
    <krweb:has_name>Giorgos Georgiou</krweb:has_name>
    <krweb:has_phone>6976067554</krweb:has_phone>
    <krweb:has_age>27</krweb:has_age>
    <krweb:member_of rdf:resource="http://krweb/ceid"/>
    <krweb:teaches rdf:resource="http://krweb/java"/>
  </krweb:Professor>

不知何故,rdf 类型属性被转换为一些隐式声明,并以我认为是“漂亮”的格式呈现。有没有办法绕过这个?

【问题讨论】:

  • 所有格式以及如何使用它们都在docs中进行了描述

标签: java rdf jena rdfs


【解决方案1】:

在内部,RDF 数据被保存为三元组 - 不知道它们在输入时是如何格式化的。

默认输出是漂亮的 RDF/XML。

要获得简单、扁平的格式,请使用RDFFormat.RDFXML_PLAIN

RDFDataMgr.write(System.out, model, RDFFormat.RDFXML_PLAIN);

【讨论】:

  • 我搜索了很多有关格式的信息,但没有找到任何相关信息。这正是我一直在寻找的。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-17
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
相关资源
最近更新 更多