Reading RDF
Tutorial 5 는 모델로부터 RDF에 있는 내용을 읽는법을 설명한다.
이미 만들어져 있는 RDF파일을 InputStream형태의 객체로 읽어 화면에 출력해주는 간단한 내용이다.
파일메니저를 이용하여 RDF파일을 읽는다.
InputStream in = FileManager.get().open(inputFileName);
만약 파일이 없다면 IllegalArgumentException오류를 발생하도록 한다.
if(in == null) {
throw new IllegalArgumentException(” RDF File not found”);
}
RDF/XML파일을 읽는 메소드로 RDF 내용을 읽어온다.
model.read(in, “”);
Tutorial04에서 표준으로 화면에 쓰는 메소드를 사용하여 읽어온 내용을 확인한다.
model.write(System.out);
[ SOURCE : vc-db-1.rdf ]
<rdf:RDF
xmlns:rdf=’http://www.w3.org/1999/02/22-rdf-syntax-ns#’
xmlns:vCard=’http://www.w3.org/2001/vcard-rdf/3.0#’
>
<rdf:Description rdf:about=”http://hacks.wo.to/ju0e/“>
<vCard:FN>Ju-young Noh</vCard:FN>
<vCard:N rdf:parseType=”Resource”>
<vCard:Family>Noh</vCard:Family>
<vCard:Given>Ju-young</vCard:Given>
</vCard:N>
</rdf:Description>
<rdf:Description rdf:about=”http://hacks.wo.to/phd/“>
<vCard:FN>Hae-dong Park</vCard:FN>
<vCard:N rdf:parseType=”Resource”>
<vCard:Family>Park</vCard:Family>
<vCard:Given>Hae-dong</vCard:Given>
</vCard:N>
</rdf:Description>
<rdf:Description rdf:about=”http://hacks.wo.to/hjy/“>
<vCard:FN>Jong-hyun</vCard:FN>
<vCard:N rdf:parseType=”Resource”>
<vCard:Family>Ha</vCard:Family>
<vCard:Given>Jong-hyun</vCard:Given>
</vCard:N>
</rdf:Description>
<rdf:Description rdf:about=”http://hacks.wo.to/kjw/“>
<vCard:FN>Jun-wook Kang</vCard:FN>
<vCard:N
vCard:Family=”Kang”
vCard:Given=”Jun-wook”/>
</rdf:Description>
</rdf:RDF>
[ SOURCE : Tutorial05.java ]
import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.util.*;
import java.io.*;
public class Test extends Object
{
static final String inputFileName = “data/vc-db-1.rdf”;
public static void main(String args[])
{
Model model = ModelFactory.createDefaultModel();
InputStream in = FileManager.get().open(inputFileName);
if(in == null)
{
throw new IllegalArgumentException(” File : ” + inputFileName + ” not found”);
}
model.read(in, “”);
model.write(System.out);
}
}
[ EXECUTE ]
<rdf:RDF
xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:vCard=”http://www.w3.org/2001/vcard-rdf/3.0#” >
<rdf:Description rdf:about=”http://hacks.wo.to/hjy/“>
<vCard:N rdf:nodeID=”A0″/>
<vCard:FN>Jong-hyun</vCard:FN>
</rdf:Description>
<rdf:Description rdf:about=”http://hacks.wo.to/phd/“>
<vCard:N rdf:nodeID=”A1″/>
<vCard:FN>Hae-dong Park</vCard:FN>
</rdf:Description>
<rdf:Description rdf:about=”http://hacks.wo.to/kjw/“>
<vCard:N rdf:nodeID=”A2″/>
<vCard:FN>Jun-wook Kang</vCard:FN>
</rdf:Description>
<rdf:Description rdf:nodeID=”A3″>
<vCard:Given>Ju-young</vCard:Given>
<vCard:Family>Noh</vCard:Family>
</rdf:Description>
<rdf:Description rdf:about=”http://hacks.wo.to/ju0e/“>
<vCard:N rdf:nodeID=”A3″/>
<vCard:FN>Ju-young Noh</vCard:FN>
</rdf:Description>
<rdf:Description rdf:nodeID=”A2″>
<vCard:Given>Jun-wook</vCard:Given>
<vCard:Family>Kang</vCard:Family>
</rdf:Description>
<rdf:Description rdf:nodeID=”A1″>
<vCard:Given>Hae-dong</vCard:Given>
<vCard:Family>Park</vCard:Family>
</rdf:Description>
<rdf:Description rdf:nodeID=”A0″>
<vCard:Given>Jong-hyun</vCard:Given>
<vCard:Family>Ha</vCard:Family>
</rdf:Description>
</rdf:RDF>