본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

zelph

0

zelph는 C++로 작성된 의미 네트워크 시스템이자 추론 엔진으로, Janet 스크립트 레이어를 내장하고 있습니다.

논리 프로그래밍의미 네트워크지식 그래프추론 엔진

소개

zelph는 C++로 작성된 의미 네트워크 시스템이자 추론 엔진으로, Janet 스크립트 레이어를 내장하고 있습니다. 이 소프트웨어는 논리, 규칙, 수학을 그래프 내부의 동형 구조로 취급하여 정적 지식 베이스를 실행 가능한 그래프로 변환합니다. acrion innovations GmbH에서 개발하며, NLnet의 NGI0 Commons Fund 지원을 받아 오픈소스로 제공됩니다. Wikidata와 같은 대형 지식 그래프의 모순 탐지 및 제약 조건 통합에 특화되어 있습니다.

상세정보

의미 네트워크 및 추론 엔진

zelph는 규칙과 사실을 동일한 그래프 구조 내의 노드로 표현하여, 추론 과정을 그래프 재작성으로 수행합니다. 이는 전통적인 쿼리 기반 시스템과 달리, 규칙 자체가 데이터의 일부가 되도록 하여 동형성을 달성합니다.

동형성(homoiconicity)

zelph의 핵심 혁신은 논리, 규칙, 수학이 그래프 내부의 동형 구조로 존재한다는 점입니다. 이는 사용자가 일반적인 사실 하나를 추가함으로써 복잡한 추론 규칙을 간접적으로 활성화할 수 있게 합니다. 예를 들어, “is part of”가 전이 관계임을 선언하는 하나의 사실만으로, Wikidata의 모든 전이 관계에 대한 추론이 가능해집니다.

Wikidata 통합 및 모순 탐지

zelph는 Wikidata JSON 세트를 직접 가져와 내부 그래프로 변환하고, 이에 내장된 규칙을 실행하여 모순을 탐지합니다. 이는 1.7TB 규모의 Wikidata 덤프를 단일 머신에서 처리하여 9억 8300만 개 이상의 노드를 구축하고, 수천 건의 일관성 위반을 발견하는 데 사용되었습니다.

수학 및 심볼릭 연산

C++ 코어에는 산술 연산이 내장되어 있지 않지만, zelph 규칙을 통해 정수, 다항식, 상징적 미분 등 전체 수학 스택을 재구현할 수 있습니다. 이는 사용자가 규칙을 통해 수학적 증명을 수행하고, 야코비안 추측의 반례와 같은 복잡한 문제를 해결할 수 있음을 보여줍니다.

Janet 스크립트 레이어

zelph는 Janet 스크립트 언어를 내장하여, 사용자가 간단한 스크립트로 지식 베이스를 정의하고 질의할 수 있도록 합니다. 이는 C++ 핵심 엔진과의 상호작용을 용이하게 하며, 빠른 프로토타이핑과 커스터마이징을 지원합니다.

다중 플랫폼 지원 및 WebAssembly

zelph는 데스크톱 애플리케이션으로 실행될 수 있을 뿐만 아니라, WebAssembly로 컴파일되어 브라우저에서 바로 실행할 수 있습니다. 이는 설치 없이도 엔진의 기능을 체험할 수 있게 하며, 호스트 애플리케이션과의 C ABI 연동을 통해 Rust 및 기타 언어로의 바인딩도 가능하게 합니다.

다운로드·설치 방법

zelph는 공식 웹사이트에서 사전 컴파일된 바이너리를 제공하여, 별도의 빌드 과정 없이 바로 사용할 수 있습니다. Windows 사용자는 zelph.org에서 제공하는 ZIP 파일을 다운로드한 후 압축을 해제하고, 실행 파일을 직접 실행하면 됩니다. 또한, Chocolatey 패키지 관리자를 통해 chocolatey install zelph 명령어로 설치할 수 있습니다. macOS 및 Linux용 바이너리도 동일하게 제공되며, 소스 코드를 직접 빌드하려는 경우 GitHub 저장소에서 소스를 클론하고 C++ 컴파일 도구를 사용하여 빌드할 수 있습니다.

기본 사용법/명령어

설치 후, 터미널 또는 명령 프롬프트에서 zelph 명령을 실행하면 REPL(Read-Eval-Print Loop)이 시작됩니다. 여기서 사용자는 직접 규칙과 사실을 입력하여 추론을 수행할 수 있습니다. 예를 들어, 다음과 같이 입력하면 전이 관계의 추론을 확인할 수 있습니다:

zelph> "is part of" ~ "transitive relation"
zelph> (R ~ "transitive relation", X R Y, Y R Z) => (X R Z)
zelph> Canada "is part of" "American continent"
zelph> "American continent" "is part of" "Earth's surface"
(Canada "is part of" "Earth's surface") ⇐ {(Canada "is part of" "American continent") ("is part of" ~ "transitive relation") ("American continent" "is part of" "Earth's surface")}

이외에도, zelph --help 명령어를 통해 사용 가능한 모든 옵션과 서브커맨드를 확인할 수 있습니다. 브라우저 기반 사용을 원한다면, 공식 플레이그라운드에서 설치 없이 바로 엔진을 체험해볼 수 있습니다.

이런 경우에 유용합니다

zelph는 Wikidata와 같은 대형 지식 그래프의 품질 검증이 필요한 데이터 엔지니어 및 온톨로지 전문가에게 유용합니다. 특히, 내부 제약 조건과의 모순을 자동으로 탐지하여 데이터 정제 작업을 효율화하고자 하는 조직에 적합합니다. 또한, 논리 프로그래밍과 의미 웹 기술을 연구하는 학계나, 사용자 정의 추론 엔진을 내장형 솔루션으로 찾는 개발자도 이 도구를 활용할 수 있습니다. 수학 교육 분야에서는 규칙을 통해 구현된 정수 연산이나 상징적 미분을 보여주는 교육 도구로도 활용될 수 있습니다.

지원 환경·시스템 요구사항

zelph는 Windows, macOS, Linux 데스크톱에서 네이티브 바이너리로 실행 가능하며, WebAssembly를 통해 모든 현대 웹 브라우저에서 실행할 수 있습니다. 소스 코드로부터 빌드하려는 경우 C++17 이상을 지원하는 컴파일러와 Janet 라이브러리가 필요합니다. 그러나 공식 배포판은 사전 컴파일된 바이너리를 제공하므로, 일반 사용자는 별도의 개발 도구 없이 바로 사용할 수 있습니다.

최신 버전·업데이트

현재 버전은 1.0.1.1이며, 이 버전은 2026년 9월 기준으로 최신 안정 릴리즈입니다. 업데이트 내역은 GitHub 저장소의 릴리즈 페이지에서 확인할 수 있으며, 주요 변경 사항으로는 성능 최적화, Wikidata 가져오기 안정성 향상, Janet 스크립트 인터페이스 개선이 포함됩니다. 문서 사이트에서도 최신 버전에 맞는 사용 가이드가 제공됩니다.

제한 사항·확인 사항

zelph의 C++ 코어에는 내장된 산술 연산 기능이 없으므로, 수학 연산을 수행하려면 별도의 규칙을 통해 구현해야 합니다. 이는 사용자가 수학 관련 작업을 수행하고자 할 때 초기 규칙 정의를 필요로 하게 만듭니다. 또한, Wikidata 전용 기능은 풍부하지만, 다른 형식의 지식 그래프를 사용하려면 적절한 변환 스크립트를 작성해야 할 수 있습니다. 상용 라이선스가 필요한 폐쇄 소스 통합의 경우, acrion innovations GmbH와의 별도 계약이 필요합니다.

FAQ

  • zelph는 무료로 사용할 수 있나요?
    • 예, zelph는 AGPL-3.0-or-later 라이선스로 오픈소스로 제공되며, 누구나 무료로 다운로드하고 사용할 수 있습니다. 폐쇄 소스 환경에서의 사용을 원할 경우, acrion innovations GmbH에서 제공하는 상용 라이선스를 구매해야 합니다.
  • zelph는 인터넷 연결이 필요한가요?
    • 아니요, zelph는 로컬에서 완전히 실행되며, Wikidata 분석을 위해 다운로드한 덤프 파일을 사용할 경우에도 인터넷 연결이 필요하지 않습니다. 다만, 초기 데이터 다운로드나 문서 접근을 위해서는 인터넷이 필요할 수 있습니다.
  • Windows에서 zelph를 어떻게 시작하나요?
    • zelph.org에서 Windows용 ZIP 파일을 다운로드하고 압축을 해제한 후, 압축 해제된 폴더 내의 zelph.exe 파일을 더블클릭하거나 명령 프롬프트에서 실행하면 됩니다. Chocolatey를 사용 중이라면 chocolatey install zelph 명령어로도 설치할 수 있습니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.