아파치 제나(Apache Jena)는 Java용 오픈 소스 시맨틱 웹 프레임워크로, RDF 그래프에서 데이터를 추출하거나 기록하는 API를 제공한다. 그래프는 추상적인 모델로 표현되는데 ,파일, 데이터베이스, URL, 또는 이들의 조합에서 데이터를 공급받는다. SPARQL을 통해 질의할 수 있으며, 다른 시맨틱 웹 프레임워크와는 달리 OWL(Web Ontology Language)을 지원한다.
jena는 apache-jena와 apache-jena-fuseki 두 가지 release를 제공한다. apache-jena는 기본적인 API와 SPARQL 엔진, TDB를 command line tools로 제공하고, apche-jena-fuseki는 Jena SPARQL server를 제공한다.
여기서는 Eclipse와 Jena Api를 연동하는 방법을 설명한다.
- java version: java 11.0.2 2019-01-15 LTS
- eclipse version: 2019-06 (4.12.0)
- jena version: apache-jena-2.7.1
1. Java Project 생성
File - New - Other
Java Project 생성
Project name 입력 후 Finish
Project 오른쪽 클릭 후 New - Class
Name 입력 - public static void main(String[] args) 항목 체크(나중에 알아서 만들어줘도 됨) - Finish
여기까지 Java Project 생성이 끝났다.
2. Apache-Jena 다운로드
Jena는 2.7.1 버전을 사용했다.
2.7.1 버전은 이곳에서 다운로드 받을 수 있다.
다운로드 받으면 여러 개의 파일들이 존재하지만, 사진 속 빨간 네모 박스 안의 파일들로만 Java 라이브러리를 만들어 사용할 것이다.
3. Jena 라이브러리 생성
Window - Preferences
Java - Build Path - User Libraries
New - Library name 입력 후 OK
Add External JARs - lib 폴더 안의 모든 파일 열기
jena-arq-2.9.1.jar - Source attachment(None) 더블클릭 - External location - External File 후 jena-arq jar 파일 선택
jena-arq-2.9.1.jar - Javadoc location(None) 더블클릭 - Browse - javadoc-arq 폴더 선택
jena-core, jena-tdb, jena-iri도 jena-arq와 같은 방법으로 Source와 Javadoc의 경로를 설정해준 뒤 Apply and Close 버튼을 클릭하면 Jena 라이브러리가 생성된다.
4. Project에 라이브러리 Import
프로젝트 우클릭 - Build Path - Add Libraries
User Library - Jena 라이브러리 check - Finish
이렇게 하면 프로젝트 폴더에 Jena 라이브러리가 생성된 것을 볼 수 있을 것이다. 이제 Jena를 사용할 준비가 되었다.
5. Test Code
RDF/XML format으로 작성된 rdf 파일을 읽어 출력하는 예제이다. 읽어오는 sample 파일은 다음과 같다.
<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://somewhere/JohnSmith'>
<vcard:FN>John Smith</vcard:FN>
<vcard:N rdf:nodeID="A0"/>
</rdf:Description>
<rdf:Description rdf:nodeID="A0">
<vcard:Given>John</vcard:Given>
<vcard:Family>Smith</vcard:Family>
</rdf:Description>
</rdf:RDF>
test 코드는 다음과 같다.
package jena;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
public class test {
public static void main(String[] args) {
Model m = ModelFactory.createDefaultModel();
m.read("file:./test.rdf", "RDF/XML");
m.write(System.out, "RDF/XML");
}
}
코드 실행 시 다음과 같이 출력된다면 Jena 라이브러리가 설치된 것이다.