그렘린 (프로그래밍 언어)

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

그렘린(Gremlin)은 아파치 소프트웨어 재단의 아파치 팅커팝(Apache TinkerPop)이 개발한 그래프 순회 언어이자 가상 머신이다. 그렘린은 OLTP 기반 그래프 데이터베이스, OLAP 기반 그래프 프로세서와 함께 동작한다.

그렘린의 오토마타함수형 언어 파운데이션은 그렘린이 자연스럽게 명령형, 선언형 쿼리, 호스트 언어 아그노스티시즘, 사용자 지정 도메인 특화 언어, 확장 가능한 컴파일러/옵티마이저, 싱글 및 멀티 실행 모델, hybrid depth- 및 breadth-first 평가, 튜링 완전을 지원할 수 있게 한다.[1]

역사[편집]

  • 2009-10-30 프로젝트 탄생, 팅커팝(TinkerPop)의 이름
  • 2009-12-25 v0.1 최초 릴리스
  • 2011-05-21 v1.0 출시
  • 2012-05-24 v2.0 출시
  • 2015-01-16 팅커팝이 아파치 인큐베이터 프로젝트가 됨
  • 2015-07-09 v3.0.0-incubating 출시
  • 2016-05-23 아파치 팅커팝이 최상위 프로젝트로 됨
  • 2016-07-18 v3.1.3 및 v3.2.1이 아파치 팅커팝으로 첫 출시
  • 2017-12-17 v3.3.1 출시

벤더 연동[편집]

그렘림은 아파치2-라이선스의 그래프 순회 언어이며 그래프 시스템 벤더들에 의해 사용할 수 있다. 일반적으로 두 종류의 그래프 시스템 벤더가 있다: OLTP 그래프 데이터베이스 및 OLAP 그래프 프로세서. 아래의 표는 그렘린을 지원하는 그래프 벤더를 요약한 것이다.

벤더 그래프 시스템
Neo4j 그래프 데이터베이스
OrientDB 그래프 데이터베이스
DataStax Enterprise (5.0+) 그래프 데이터베이스
Hadoop (Giraph) 그래프 프로세서
Hadoop (Spark) 그래프 프로세서
InfiniteGraph 그래프 데이터베이스
JanusGraph 그래프 데이터베이스
Cosmos DB 그래프 데이터베이스
Amazon Neptune 그래프 데이터베이스
Ontotext 그래프DB Triplestore

순회의 예[편집]

그렘린-그루비 환경에서 다음의 그렘린 쿼리 및 응답의 예는 MovieLens 데이터셋의 그래프 표현에 상대적이다.[2] 데이터셋에는 영화를 평가하는 사용자들이 포함되어 있다. 사용자는 각자 하나의 직업이 있으며 각 영화는 그와 연계된 하나 이상의 분류가 있다. MovieLens 그래프 스키마는 아래와 같다.

user--rated[stars:0-5]-->movie
user--occupation-->occupation
movie--category-->category

단순 순회[편집]

gremlin> g.V().label().groupCount()
==>[occupation:21, movie:3883, category:18, user:6040]
gremlin> g.V().hasLabel('movie').values('year').min()
==>1919
gremlin> g.V().has('movie','name','Die Hard').inE('rated').values('stars').mean()
==>4.121848739495798

각주[편집]

  1. Rodriguez, Marko A. (2015). 〈The Gremlin graph traversal machine and language (invited talk)〉. 《The Gremlin Graph Traversal Machine and Language》. 1쪽. ISBN 9781450339025. arXiv:1508.03843 [cs.DB]. doi:10.1145/2815072.2815073. 
  2. “The Gremlin Graph Traversal Language”. 2015년 8월 22일에 확인함. 

외부 링크[편집]