May 05 2009

[JENA] Tutorial03

Resource, Property, Value(Resource)를 구현한 내용을 N-Triples 형태로 보도록 하자.
Tutorial02 소스에 출력부분을 추가하면 된다.

// list the statements in the Model
StmtIterator iter = model.listStatements();

// print out the predicate, subject and object of each statement
while(iter.hasNext()) {
Statement stmt  = iter.nextStatement();      // get next statement
Resource subject = stmt.getSubject();       // get the subject
Property predicate = stmt.getPredicate();   // get the predicate
RDFNode object  = stmt.getObject();         // get the object
System.out.println();
System.out.println(”ⓡ ” + subject.toString());
System.out.println(”ⓟ ” + predicate.toString());
if(object instanceof Resource) {
System.out.println(”ⓥ ” + object.toString());
} else {
System.out.println(”ⓡ ” + “”" + object.toString() + “”");
}
}

get을 이용하여 해당 위치의 값을 가져와서 화면에 출력해주는 내용이다.
출력되는 화면은 N-Triples 형태로 출력된다.

본래의 소스에서 출력형태를 보기 쉽도록 약간 수정하였다.
ⓡ은 Resource, ⓟ는 Property, ⓥ는 Value를 의미한다.
Value위치의 값이 Value가 될 경우 “”안에 표기되어 출력된다.
총 4개의 N-Triples로 구성된 것을 알 수 있다.

다시 말하면 기본 R-P-V 형태이지만 R-P-R형태로 자원이 자원을 가리킬 수 있도록 의미를 부여한다.
알아볼 수 없는 문자들은 Namespace가 지정돼지 않았기 때문에 Jena에서 임의적으로 부여한 것이다.

import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.vocabulary.*;

public class Test extends Object
{
static String personURI = “http://hacks.wo.to/ju0e”;
static String givenName = “Ju-young”;
static String familyName = “Noh”;
static String fullName = givenName + ” ” + familyName;
public static void main(String args[]) {
Model model = ModelFactory.createDefaultModel();
Resource ju0e = model.createResource(personURI)
.addProperty(VCARD.FN, fullName)
.addProperty(VCARD.N,
model.createResource()
.addProperty(VCARD.Given, givenName)
.addProperty(VCARD.Family, familyName));
StmtIterator iter = model.listStatements();
while(iter.hasNext()) {
Statement stmt = iter.nextStatement();
Resource subject = stmt.getSubject();
Property predicate = stmt.getPredicate();
RDFNode object = stmt.getObject();
System.out.println();
System.out.println(”ⓡ ” + subject.toString());
System.out.println(”ⓟ ” + predicate.toString());
if(object instanceof Resource) {
System.out.println(”ⓡ ” + object.toString());
} else {
System.out.println(”ⓥ ” + “”" + object.toString() + “”");
}
}
}
}

댓글 없음

댓글이 없습니다.

이 글의 댓글을 위한 RSS 피드 TrackBack URI

댓글 남기기

Spam Protection by WP-SpamFree

WordPress Themes