[英]create RDF from XML
我有这个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>
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数据库(三重)中。
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 );
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.