그렘린 (질의어)

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

그렘린
Gremlin
설계자Marko A. Rodriguez
개발자아파치 소프트웨어 재단의 아파치 팅커팝
발표일2009년(15년 전)(2009)
최근 버전그렘린 3.4.10[1]
운영 체제크로스 플랫폼 (멀티 플랫폼)
라이선스아파치 라이선스 2.0
웹사이트공식 사이트
방언
Gremlin‑Java8, Gremlin‑Groovy, Gremlin‑Python, Gremlin‑Scala, Gremlin‑Clojure, Gremlin‑PHP, Gremlin‑JavaScript, Gremlin‑Typeset
영향을 받은 언어
정규 표현식, XPath, 리플, SPARQL, SQL, 자바/JVM

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

역사 편집

  • 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 데이터셋의 그래프 표현에 상대적이다.[3] 데이터셋에는 영화를 평가하는 사용자들이 포함되어 있다. 사용자는 각자 하나의 직업이 있으며 각 영화는 그와 연계된 하나 이상의 분류가 있다. 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. “Gremlin 3.4.10”. 2021년 1월 18일에 확인함. 
  2. Rodriguez, Marko A. (2015). 〈The Gremlin graph traversal machine and language (invited talk)〉. 《The Gremlin Graph Traversal Machine and Language》. 1쪽. arXiv:1508.03843 [cs.DB]. doi:10.1145/2815072.2815073. ISBN 9781450339025. 
  3. “The Gremlin Graph Traversal Language”. 2015년 8월 22일에 확인함. 

외부 링크 편집