* description : Apache Jena
* author : 오션
* email : shlim@repia.com
* lastupdate : 2020-07-24
===== Apache Jena =====
* 2000년 영국 브리스톨(Bristol)의 HP Labs(HP 연구소) 연구원들이 개발하였습니다.
* 시맨틱 웹(semantic web) 애플리케이션을 구축하는 Java 프레임워크입니다.
* 공표된 W3C의 권고에 의거하며 RDF, RDFS, RDFa, OWL, SPARQL을 처리하는 코드를 개발하도록 도와주는 광범위한 Java 라이브러리를 제공합니다.
* Jena에는 OWL과 RDFS 온톨로지에 기초한 '규칙 기반 추론 엔진(a rule-based inference engine)'과 메모리 또는 디스크에 RDF triples(트리플즈)를 저장하는 다양한 저장 전략이 있습니다.
===== 의미 =====
==== OWL ====
* OWL : Web Ontology Language, [웹 온톨로지 랭귀지]
* 사물, 사물의 군집, 사물간의 관계에 대한 풍부하고 복잡한 지식을 나타내도록 설계된 '시맨틱 웹 언어(Semantic Web Language)'입니다.
* OWL은 컴퓨터 로직 기반 언어입니다.
* 컴퓨터 프로그램은 OWL로 표현된 지식을 이용하여 지식의 일관성을 증명하거나, 함축적인 지식을 명시적으로 만드는 것 등을 할 수 있습니다.
* :-) [[https://www.w3.org/2001/sw/wiki/OWL|OWL]]
==== RDF ====
* Resource Description Framework [리소스 디스크립션 프레임워크]\\
* RDF는 웹에서 데이터 교환을 위한 표준 모델입니다.
* RDF is a directed, labeled graph data format for representing information in the Web.
* ;-) [[https://www.w3.org/2001/sw/wiki/RDF|RDF]]
==== RDFS ====
* RDF Schema : RDF Vocabulary Description Language 1.0\\
* RDFS는 웹에서 단순한 RDF vocabularies를 표현하기 위한 범용 언어입니다.
* m( [[https://www.w3.org/2001/sw/wiki/RDFS|RDFS]]
==== RDFa ====
* RDFa : RDF in Attributes, [RDF 인 어트리븃츠]\\
* RDFa는 HTML5, XHTML, XML 애플리케이션에서 구조화된 데이터를 표현하는 속성(attributes) 설명서입니다.
* LOL [[https://www.w3.org/2001/sw/wiki/RDFa|RDFa]]
==== rule-based inference engine ====
==== SPARQL ====
* SPARQL : Query Language for RDF
* RDF 쿼리 언어입니다.
* 8-o [[https://www.w3.org/2001/sw/wiki/SPARQL|SPARQL]]
==== TDB ====
- RDF 저장과 쿼리를 위한 Jena의 구성요소입니다.
- 모든 Jena API를 지원합니다.
- 단일 머신에서 고성능 RDF store로 사용될 수 있습니다.
- 차세대 버전 TDB2와 구별하기 위하여 TDB를 TDB1이라고도 합니다.
- TDB1과 TDB2 데이터베이스는 호환되지 않습니다.
- TDB store는 제공되는 명령어 스크립트와 Jena API로 엑세스되고 관린될 수 있습니다.
- transactions를 사용하여 엑세스할 때, TDB 데이터세트는 데이터 손상, 예기치 못한 프로세스 종료와 시스템 충돌에서 보호됩니다.
- TDB 데이터세트는 한 번에 단일 JVM에서 직접 엑세스되어야 합니다.그렇지 않을 경우, 데이터 손상이 발생할 수 있습니다. TDB 1.1.0부터는 대부분의 환경에서 이를 방지하는 '다중 JVM 사용에 대한 자동 보호' 기능이 포함됩니다.
- 여러 애플리케이션간 TDB 데이터세트를 공유하려는 경우, Fuseki 컴포넌트를 사용하세요
- Fuseki 컴포넌트 :
* '영구 저장소(persistent storage)'로 TDB를 사용할 수 있는 SPARQL server를 제공합니다.
* HTTP로 쿼리, 업데이트, REST update를 위한 SPARQL 프로토콜을 제공합니다.
==== Triples ====
==== TURTLE ====
* Turtle ==> Terse RDF Triple Language (간결한 RDF 트리플 언어)
* RDF를 위한 구체적인 구문
* Turtle document ==> RDF 그래프를 텍스트로 표현한 것을 의미.
* 원문 : A Turtle document is a textual representations of an RDF graph.
==== XSD ====
* XML Schema Definition : XML 스키마 정의
* XML 문서의 구조와 포함할 수 있는 요소(element)와 속성(attribute)을 명시하여 해당 문서가 정의한 대로 잘 작성한 XML문서인지 유효성을 검사하는 방법
* [[http://tcpschool.com/xml/xml_xsd_intro|XSD 개요 by TCP SCHOOL.com]]
* [[http://terms.tta.or.kr/dictionary/dictionaryView.do?word_seq=060468-5|확장성 마크업 스키마 정의 언어]]
==== SOH ====
* SOH : SPARQL Over HTTP
* SPARQL 1.1로 작업하는 커맨드라인 스크립트 세트를 의미합니다.
* HTTP 엑세스를 제공하며 SPARQL1.1을 준수하는 어떤 시스템에서도 작동되며 서버 독립성을 가집니다.
===== Ref =====
[[https://jena.apache.org/about_jena/about.html|What is Jena?]]\\
{{ :wiki:util:jena_install_guide.pdf |Eclipse 사용자를 위한 Jena 프로젝트 시작 메뉴얼}}\\
{{tag>오션 Jena Java-framework Semantic-Web}}