2

好的,我有一个问题,我会很感激有人传播一些光。基本上我有下面的例子

<rdf:Description rdf:about="http://test.com">
<hasX></hasX>
<hasY></hasY>
<hasA></hasA>
<hasA></hasA>
<hasA></hasA>
</rdf:Description>

我正在尝试制作以下内容:

<rdf:Description rdf:about="http://test.com">
<hasX></hasX>
<hasY></hasY>
<hasZ>
<hasA></hasA>
<hasA></hasA>
<hasA></hasA>
</hasZ>
</rdf:Description>

我已经尝试将属性添加到属性然后是资源,声明新资源,添加文字,这些的每一种可能的组合,但是我得到的结果是生成一个新的 rdf:description 块,其中包含我想要的数据,在外面原始 rdf:description 使其一文不值。

我真的不想让其他<rdf:Description rdf:about="">人来描述这些A标签。

这是一个小测试示例

String NS = "http://example.com/test";      
Model m = ModelFactory.createDefaultModel();
Resource r = m.createResource("http://meetup/nyc");

Property p = m.createProperty(XmlParser.NS + "hasData");
Property p2 = m.createProperty(XmlParser.NS + "hasData");
Property p3 = m.createProperty(XmlParser.NS + "hasData");

r.addProperty(p, "somedata");
r.addProperty(p2, "somedata2");
r.addProperty(p3, "somedata3");

m.write(System.out);
4

2 回答 2

2

正如其他响应者所说,不要考虑 XML 树结构。但是,如果在 XML 树中查看图形有助于您理解模型,请将输出语法更改为紧凑的 RDF/XML 形式:

m.write( System.out, "RDF/XML-ABBREV" );
于 2012-05-19T22:41:23.620 回答
2

从模型创建 aResource不会自动将其添加到该模型。我通常通过addModel 类的一种方法将三元组添加到模型中:

    String NS = "http://example.com/test#";
    Model m = ModelFactory.createDefaultModel();
    Resource r = m.createResource("http://meetup/nyc");

    Property p = m.createProperty(NS + "hasData");

    m.add(r, p, "somedata");
    m.add(r, p, "more data");

    m.write(System.out);

这将创建:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
           xmlns:j.0="http://example.com/test#" > 
     <rdf:Description rdf:about="http://meetup/nyc">
         <j.0:hasData>more data</j.0:hasData>
         <j.0:hasData>somedata</j.0:hasData>
      </rdf:Description>
   </rdf:RDF>
于 2012-05-19T07:08:19.713 回答