어의망 기술: 제나의 사용(2)-더 많은 예시와 코드 분석(상, 예2-예5)

8619 단어 jena어의망
이미 졸업했고 논문도 제출해서 조금 수월해졌습니다. 지금도 RDF 관련 지식과 제나의 프로그래밍 기술을 통일적으로 정리하고 시리즈의 블로그를 작성하려고 합니다. 첫째, 자신에게 필기를 하는 것과 같고, 둘째, 자신이 배운 것을 공유하고 자원을 제공하여 모두가 함께 공부할 수 있도록 합니다.
이번에는 제나의 예시에서 다른 몇 개 프로그램의 코드를 설명하고 RDF의 관련 지식 개념을 약술한 다음에 OWL 단계를 진급할 예정이다.
자, 쓸데없는 말은 그만하고 코드를 올려라. 지난 블로그의 예1이다. 이 블로그는 예2부터 시작한다. 또한 편폭을 간소화하기 위해 예전의 몇몇 licenses는 붙이지 않는다.
예2.
이 예는 표준화된 모델을 만드는 과정을 실현했다. 먼저 모델을 실례화하고 모델 팩토리의 중createDefault모델 () 방법으로 표준적인 빈 모델을 만든 다음에 이 모델에 자원을 만들고 자원이 생기면 자원에 속성과 속성 값을 추가하며 모델을 사용했다.createlist 방법으로 출력합니다.
package jena.examples.rdf;

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

/**
 * Tutorial 2 resources as property values
 */
public class Tutorial02 extends Object {

	public static void main(String args[]) {
		// some definitions
		String personURI = "http://somewhere/JohnSmith";
		String givenName = "John";
		String familyName = "Smith";
		String fullName = givenName + " " + familyName;

		// create an empty model
		Model model = ModelFactory.createDefaultModel();

		// create the resource
		// and add the properties cascading style
		Resource johnSmith = model.createResource(personURI).addProperty(VCARD.FN, fullName)
				.addProperty(VCARD.N, model.createResource().addProperty(VCARD.Given, givenName).addProperty(VCARD.Family, familyName));
		System.out.println(model.createList());
	}
}

실행 결과는 다음과 같습니다.
http://www.w3.org/1999/02/22-rdf-syntax-ns#nil
예3.
package jena.examples.rdf ;

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


/** Tutorial 3 Statement attribute accessor methods
 */
public class Tutorial03 extends Object {
    public static void main (String args[]) {
    
        // some definitions
        String personURI    = "http://somewhere/JohnSmith";
        String givenName    = "John";
        String familyName   = "Smith";
        String fullName     = givenName + " " + familyName;
        // create an empty model
        Model model = ModelFactory.createDefaultModel();

        // create the resource
        //   and add the properties cascading style
        Resource johnSmith 
          = model.createResource(personURI)
                 .addProperty(VCARD.FN, fullName)
                 .addProperty(VCARD.N, 
                              model.createResource()
                                   .addProperty(VCARD.Given, givenName)
                                   .addProperty(VCARD.Family, familyName));
        
        // list the statements in the graph
        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.print(subject.toString());
            System.out.print(" " + predicate.toString() + " ");
            if (object instanceof Resource) {
                System.out.print(object.toString());
            } else {
                // object is a literal
                System.out.print(" \"" + object.toString() + "\"");
            }
            System.out.println(" .");
        }
    }
}
실행 결과는 다음과 같습니다.
http://somewhere/JohnSmith http://www.w3.org/2001/vcard-rdf/3.0#N -8efb898:14efd96f6a0:-7fff .
http://somewhere/JohnSmith http://www.w3.org/2001/vcard-rdf/3.0#FN  "John Smith".
-8efb898:14efd96f6a0:-7fff http://www.w3.org/2001/vcard-rdf/3.0#Family  "Smith".
-8efb898:14efd96f6a0:-7fff http://www.w3.org/2001/vcard-rdf/3.0#Given  "John".
예4.
이 예는 표준화된 모델을 만드는 과정을 실현했다. 먼저 하나의 모델을 실례화하고 모델 팩토리의 중create Default 모델 () 방법으로 표준적인 빈 모델을 만든 다음에 이 모델에 자원을 만들고 자원이 생기면 자원에 속성과 속성 값을 추가하는 것이 위에서 아래로의 사고방식으로 기본 모델을 실현하는 과정이다.물론 OWL에서 RDF에 대한 깊은 확장이 있습니다. 이 RDF 시리즈가 완성된 후에 저는 OWL 조작의 실제 과정과 관련 API의 총결을 계속 쓸 것입니다.
package jena.examples.rdf ;

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

/** Tutorial 4 - create a model and write it in XML form to standard out
 */
public class Tutorial04 extends Object {
    
    // some definitions
    static String tutorialURI  = "http://hostname/rdf/tutorial/";
    static String briansName   = "Brian McBride";
    static String briansEmail1 = "[email protected]";
    static String briansEmail2 = "[email protected]";
    static String title        = "An Introduction to RDF and the Jena API";
    static String date         = "23/01/2001";
    
    public static void main (String args[]) {
    
        // some definitions
        String personURI    = "http://somewhere/JohnSmith";
        String givenName    = "John";
        String familyName   = "Smith";
        String fullName     = givenName + " " + familyName;
        // create an empty model
        Model model = ModelFactory.createDefaultModel();

        // create the resource
        //   and add the properties cascading style
        Resource johnSmith 
          = model.createResource(personURI)
                 .addProperty(VCARD.FN, fullName)
                 .addProperty(VCARD.N, 
                              model.createResource()
                                   .addProperty(VCARD.Given, givenName)
                                   .addProperty(VCARD.Family, familyName));
        
        // now write the model in XML form to a file
        model.write(System.out);
    }
}

실행 결과는 다음과 같습니다.
        Smith     John             John Smith  
예5.
이 예는 RDF 읽기와 쓰기를 실현하고 경로에서 RDF 파일을 읽고 컨트롤러에서 표준 출력을 실현한다.
package jena.examples.rdf ;

import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.util.FileManager;

import java.io.*;

/** Tutorial 5 - read RDF XML from a file and write it to standard out
 */
public class Tutorial05 extends Object {

    /**
        NOTE that the file is loaded from the class-path and so requires that
        the data-directory, as well as the directory containing the compiled
        class, must be added to the class-path when running this and
        subsequent examples.
    */    
    static final String inputFileName  = "vc-db-1.rdf";
                              
    public static void main (String args[]) {
        // create an empty model
        Model model = ModelFactory.createDefaultModel();

        InputStream in = FileManager.get().open( inputFileName );
        if (in == null) {
            throw new IllegalArgumentException( "File: " + inputFileName + " not found");
        }
        
        // read the RDF/XML file
        model.read(in, "");
                    
        // write it to standard out
        model.write(System.out);            
    }
}
여기vc-db-1.rdf 파일이 존재하지 않습니다. rdf 파일을 아무렇게나 찾았습니다. 파일 이름을 'vc-db-1.rdf' 로 바꾸고 inputFileName 경로를 수정했습니다.나는 D 디스크 루트 디렉터리에 두었기 때문에 경로가 'D://vc-db-1.rdf' 로 바뀌었다.실행 결과는 다음과 같습니다.
            test3_INSTANCE_00003             test3_INSTANCE_00004     Ora Lassila      

좋은 웹페이지 즐겨찾기