gpt4 book ai didi

java - Jena 模型将我的 RDF 类型显式声明转换为隐式声明并弄乱了格式

转载 作者:行者123 更新时间:2023-11-30 01:59:16 26 4
gpt4 key购买 nike

我有以下代码,它创建具有一些设置属性的 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 类型属性被转换为某种隐式声明,并以我认为“漂亮”的格式呈现。有办法绕过这个吗?

最佳答案

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

默认输出非常漂亮的 RDF/XML。

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

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

关于java - Jena 模型将我的 RDF 类型显式声明转换为隐式声明并弄乱了格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53439861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com