【问题标题】:create RDF from XML从 XML 创建 RDF
【发布时间】:2012-04-30 14:11:24
【问题描述】:

我有这个 xml 文件,如何在 java 中使用 xpath 和 ModelFactory 从它创建 RDF 三元组?

<xml>
<person>
<name>Joe</name>
<website url="www.example1.com">contact1</website >
<vote>20</vote>
</person>
<person>
<name>Anna</name>
<website url="www.example2.com">contact2</website>
<vote>80</vote>
</person>
</xml>

感谢您的帮助


感谢重播,我想获取以下RDF

 <rdf:Description rdf:about="http://www.example.com/xml">
<j.0:hasCritic>Joe</j.0:hasCritic>
     <rdf:Description rdf:about=Joe >
     <j.0:haswebsite>"www.example1.com"</j.0:haswebsite>
      <j.0:hascontact>contact1</j.0:hascontact>
      <j.0:hasvote>80</j.0:hasvote>
  </rdf:Description>
  <j.0:hasCritic>Anna</j.0:hasCritic>
     <rdf:Description rdf:about=Anna>
     <j.0:haswebsite>"www.example2.com"</j.0:haswebsite>
      <j.0:hascontact>contact2</j.0:hascontact>
      <j.0:hasvote>20</j.0:hasvote>
</rdf:Description>

【问题讨论】:

标签: xml rdf semantic-web


【解决方案1】:
You can use jena api for creating RDf model. Just parse xml file using dom parser and create Resourse , Property or Literal using Jena API. After creating this simply add into model.

Example:-
Model rdfModel = ModelFactory.createDefaultModel();
Resource resourse = rdfModel.createResource(Resourse Text);
Property property = rdfModel.createProperty(Property Text);
Literal literal = rdfModel.createLiteral(Literal Text);
resourse.addLiteral(property,literal);

使用 Jena API,您可以将此模型存储到 rdf 数据库(三重)。

【讨论】:

  • 感谢 Raxit 的回复,使用 jena 似乎可以完成我的工作,但我不确定如何使用 jena 从我拥有的文件中创建 RDF。因为在 xml 文件中每个 标签都有三个属性,所以我现在有点困惑。您能否将您的示例应用于我的 xml 文件?谢谢
  • 您好,很抱歉我的回复。你得到答案了吗,或者你仍然想在 RDF 文件上方填充..
【解决方案2】:

Grddl 可能是一种可行的方法,Jena 有一个implementation,使用起来非常简单。否则,只需一个基本的 XSLT 脚本就可以很容易地将 sn-p 转换为 RDF。天哪,您甚至可以只编写一个基本的 SAX 侦听器并在那里进行转换。没有什么神奇的东西可以为你做这件事,你必须付出一些努力,但有一些可用的选择。

【讨论】:

    【解决方案3】:
    package tutorial;
    import com.hp.hpl.jena.rdf.model.Model;
    import com.hp.hpl.jena.rdf.model.ModelFactory;
    import com.hp.hpl.jena.rdf.model.Property;
    import com.hp.hpl.jena.rdf.model.Resource;
    
    public class Test01 {
    public static void main(String[] args) {
    Model m = ModelFactory.createDefaultModel();
    String NS = "<http://www.example.com/>";
    
    Resource r1 = m.createResource( NS+"xml" );
    Resource r2 = m.createResource( NS+"Joe" );
    Resource r3 = m.createResource( NS+"Anna" );            
    Property p1 = m.createProperty( NS+"hasCritic1" );
    Property p2 = m.createProperty( NS+"hasCritic2" ); 
    Property p3 = m.createProperty( NS+"hasWebsite" );
    Property p4 = m.createProperty( NS+"hasContact" );
    Property p5 = m.createProperty( NS+"hasVote" );
    
    r1.addProperty(p1,r2);
    r1.addProperty(p2,r3);
    r2.addProperty(p3,"<http://www.example1.com>");
    r2.addProperty(p4,"contact1");
    r2.addProperty(p5,"80");
    r3.addProperty(p3,"<http://www.example2.com>");
    r3.addProperty(p4,"contact2");
    r3.addProperty(p5,"20");
    m.write( System.out );
    } 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多