java - jena 如何将默认前缀名称更改为我的前缀名称

标签 java jena semantic-web owl apache-jena

我已经生成了这个 RDF/XML 数据

  <rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:j.0="http://marco_student/" > 
  <rdf:Description rdf:nodeID="A0">
    <j.0:description>Departamento de Engenharia Civil</j.0:description>
    <j.0:abbreviation>DEC</j.0:abbreviation>
    <rdf:type rdf:resource="http://marco_student/Department"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A1">
    <j.0:description>Departamento de Engenharia Informática</j.0:description>
    <j.0:abbreviation>DEI</j.0:abbreviation>
    <rdf:type rdf:resource="http://marco_student/Department"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A2">
    <j.0:description>Departamento de Engenharia Electrotécnica</j.0:description>
    <j.0:abbreviation>DEE</j.0:abbreviation>
    <rdf:type rdf:resource="http://marco_student/Department"/>
  </rdf:Description>
</rdf:RDF>

使用此代码:

String myNameSpace = "http://william_student/";
            Resource departmentClass = ResourceFactory.createResource(myNameSpace+"Department");
            Property abbreviationProperty = ResourceFactory.createProperty(myNameSpace, "abbreviation");
            Property descriptionProperty = ResourceFactory.createProperty(myNameSpace, "description");
            Model departmentModel = ModelFactory.createDefaultModel();
            Resource departmentInstance1 = departmentModel.createResource();
            departmentInstance1.addProperty(RDF.type, departmentClass);
            departmentInstance1.addProperty(abbreviationProperty, "DEI");

我使用这个简单的代码写入文件

File file = new File("D:/departments.rdf");
            fos = new FileOutputStream(file);
            departmentModel.write(fos);

如您所见,在RDF生成的数据中,有j.0前缀:

我的问题:

如何替换默认前缀 j.0,但我的前缀如 vocabularyMarco

最佳答案

要编写 RDF/XML,所有属性都必须有一个 qname。当需要但未提供时,耶拿发明了“j.0”等。因此,在模型上设置您选择的前缀名称

model.setNsPrefix("vocabularyMarco", "http://marco_student/")

您的代码和数据在“http://william_student/ ”上不一致。

关于java - jena 如何将默认前缀名称更改为我的前缀名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28906015/

相关文章:

release - 到目前为止,Apache Jena 的所有发行说明

sparql - Fuseki中TBox和ABox与TDB和Pubby的分离

facebook - 一段时间内坐标周围的事件列表?

java - 文本文件的信息增益计算?

java - RestExpress - 无法看到 Infinispan 日志

java - 如何从泛型类中的私有(private)ArrayList中删除元素

mysql - Redis 用于语义 Web 应用程序 RDF quads 和 SparQL

java - 已签名的 Apk 不断崩溃

java - RDF/XML Jena getValue

java - 错误: cannot find symbol resultset