knowsys/nemo

A fast in-memory rule engine

Nemo – 빠르고 메모리 내 Datalog 엔진

무엇인가요

  • Nemo는 데이터를 쿼리하고 변환하기 위해 Datalog 프로그램(논리 규칙)을 작성할 수 있는 룰 엔진입니다. 완전히 메모리에서 실행되며, 속도를 위해 설계되었습니다.
  • Rust로 구현되어 있으며, 명령줄 도구(nmo), 언어 바인딩, 브라우저 기반 UI로 제공됩니다.

왜 중요한가요

  • Datalog은 지식 그래프 추론, 데이터 통합, 정적 분석 등에 자주 사용되는 선언형 언어입니다. Nemo는 저수준 시스템의 성능과 고수준 논리 기반 쿼리 언어의 사용 편의성을 결합하려는 목표를 가지고 있습니다.
  • 데이터 모델은 RDF 및 SPARQL와 호환되므로, 세미틱 웹 데이터셋용 가벼운 추론 엔진으로 사용할 수 있습니다.

주요 기능 (README에 기술됨)

카테고리 세부 사항
성능 및 확장성 메모리 내 실행, Rust로 작성, 대규모 분석 워크로드를 지원합니다.
선언형 규칙 언어 분층 부정, 산술, 집계, 존재 규칙(TGD)을 지원하는 Datalog 다이얼렉트입니다.
데이터 포맷 지원 입력/출력: CSV, TSV, 일반 DSV, N-Triples, Turtle, RDF/XML, N-Quads, TriG, 그리고 직접 SPARQL 엔드포인트 접근.
상호운용성 명령줄 클라이언트(nmo), 언어 바인딩, 브라우저에서 완전히 실행되는 웹 UI.
호환성 RDF/SPARQL 데이터 모델과 호환되며, 전통적인 논리 프로그래밍 의미론을 유지합니다.
오픈소스 Apache-2.0 및 MIT 이중 라이선스; 기여 환영합니다.

시작 방법

  1. 설치 – 릴리스 페이지에서 사전 컴파일된 바이너리를 다운로드하거나, cargo build -r로 소스에서 빌드 (Linux에서는 Rust 및 OpenSSL 개발 라이브러리 필요).
  2. 실행 – nmo --help로 CLI 옵션을 확인합니다. 예제 프로그램과 데이터셋은 별도의 nemo-examples 리포지토리에 있습니다.
  3. 탐색 – https://tools.iccl.inf.tu-dresden.de/nemo/ 에서 라이브 데모를 시도해 보세요. 브라우저에서 엔진이 직접 실행됩니다.
  4. 더 알아보기 – 전체 문서, 튜토리얼, API 참조는 https://knowsys.github.io/nemo-doc/ 에 있습니다.

일반적인 사용 사례

  • RDF 지식 그래프에서 추론 (예: 기존 데이터에서 새로운 삼항 조합을 추론).
  • CSV/TSV 소스와 세미틱 데이터를 규칙으로 결합하는 복잡한 데이터 통합 파이프라인.
  • 논리 프로그래밍, 규칙 추론, 지식 표현에 관한 학술 연구.

프로젝트 상태

  • README에 따르면 Nemo는 활발히 개발 중이며, 현재 릴리스는 불안정합니다. 자주 업데이트되며, 파괴적 변경이 있을 수 있습니다.

커뮤니티

  • GitHub에서의 논의, Gitter/Matrix 채팅룸, 활발한 문서 사이트.

결론 Nemo는 전통적인 논리 프로그래밍과 현대의 RDF/SPARQL 생태계를 연결하는 빠르고 Rust 기반의 Datalog 엔진을 제공하며, 구조화된 데이터에 대해 고성능 규칙 추론이 필요한 누구에게나 유용합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트