[java] Java Apache Jena에서 제공하는 RDF 데이터 질의 언어는?

Java Apache Jena는 RDF( Resource Description Framework) 데이터를 처리하기 위한 많은 기능을 제공하는 오픈소스 프레임워크입니다. 이 프레임워크는 다양한 종류의 RDF 데이터를 읽고 쓰고 쿼리하는 기능을 제공하여 데이터의 효율적인 관리를 도와줍니다.

RDF 데이터를 쿼리하기 위해서는 SPARQL(Query Language for RDF)을 사용합니다. SPARQL은 RDF 데이터 그래프에서 원하는 정보를 추출하기 위한 질의 언어로, Apache Jena에서도 SPARQL을 지원합니다.

다음은 Java Apache Jena를 사용하여 SPARQL 쿼리를 실행하는 간단한 예제 코드입니다.

import org.apache.jena.query.Query;
import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.query.QueryFactory;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.query.ResultSet;
import org.apache.jena.rdf.model.Literal;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.util.FileManager;

public class SPARQLExample {
    public static void main(String[] args) {
        String rdfFile = "example.rdf";
        
        // RDF 파일 로드
        Model model = FileManager.get().loadModel(rdfFile);
        
        // SPARQL 쿼리 작성
        String queryString = "SELECT ?name WHERE { ?person <http://example.org/name> ?name }";
        
        // 쿼리 객체 생성
        Query query = QueryFactory.create(queryString);
        
        // 쿼리 실행
        try (QueryExecution qexec = QueryExecutionFactory.create(query, model)) {
            ResultSet results = qexec.execSelect();
            
            // 결과 처리
            while (results.hasNext()) {
                QuerySolution soln = results.nextSolution();
                Literal name = soln.getLiteral("name");
                System.out.println("Name: " + name.getString());
            }
        }
    }
}

위의 예제 코드는 “example.rdf”라는 RDF 파일에서 “http://example.org/name” 속성을 가진 리소스의 이름을 추출하는 SPARQL 쿼리를 실행합니다. 결과로 이름이 출력됩니다.

더 자세한 사용법과 RDF 데이터 처리를 위한 Apache Jena의 다양한 기능은 공식 문서(https://jena.apache.org/documentation/)를 참고하시기 바랍니다.