2012-04-30 8 views
1

私はこのxmlファイルを持っていますが、xpathとModelFactoryを使ってRDFトリプルをJavaでどのように作成できますか?XMLから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> 
+0

http://stackoverflow.com/questions/10062994/extract-information-from-xml-file-as-rdf-triples –

+0

の可能重複あなたは一例として、RDFの、タートルファイルを書き込むことができますあなたは入手したいですか? – castagna

+0

ありがとう、私は怒って投稿した次のRDFを取得したいと思います – Lucy

答えて

4
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); 

このモデルをrdfデータベース(トリプル)に保存することができます。

+0

返信用jaxを使用して感謝Raxit、私の仕事をするようですが、私は持っているファイルからRDFを作成するjenaを使用する方法がわかりません。なぜならxmlファイルの各タグに3つのプロパティがあるから、私はこの時点でちょっと混乱しています。私のXMLファイルにあなたの例を適用してください。ありがとう – Lucy

+0

こんにちは、私の返信を申し訳ありません。あなたは答えを得たのですか、それともまだRDFファイルの上に値を設定したいのですか? – Raxit

+0

こんにちはRaxit、はい、私はそれを解決しました。 – Lucy

1

Grddl実行可能なアプローチであるかもしれません、イエナは非常に簡単ですimplementationを持っています使用する。それ以外の場合は、基本的なXSLTスクリプトだけで簡単にそのスニペットをRDFに変換できます。地獄、おそらくちょうど基本的なSAXリスナーを作成し、そこに変換を行うことができます。あなたのためにそれを行う魔法のことはありません、あなたはいくつかの仕事を入れなければならないでしょうが、利用可能なオプションがあります。

1
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); 
} 
} 
関連する問題