
rconceptnet
https://github.com/knadh/rconceptnet- Category
- Developer Tools
- Rank
- No. 1643Tools index
Previous survey · No. 1649 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- knadh
- GitHub
- 14 stars
- Latest release
- v0.1.0
- Date
About
Simple, performant ConceptNet CLI and server in Rust, backed by SQLite — fast local access to the ConceptNet knowledge graph.
What it does
rconceptnet turns downloaded ConceptNet assertions into a self-contained database you can search from a terminal or expose over HTTP. Queries accept a concept, language, relation filter, and result limit. Terminal output supports tables, relation-grouped trees, or JSON.
Why it's ranked here
The project has a narrow, convincing design: one binary imports compressed assertions, builds indexes, and serves weighted relationships without a separate database service. Its strongest case is operational simplicity. The main caution is that its usefulness remains bounded by an upstream corpus the README says has stalled.
What's good
Imports can filter one or more languages, read compressed input directly, and commit edges in large batches. Queries search both ends of each relationship, order matches by weight, and support relation filtering. Human output handles Unicode display widths, while JSON preserves labels, URIs, weights, and optional surface text.
Tradeoffs
The importer refuses to update an existing database, so refreshing data means creating another file. The HTTP server offers one GET endpoint, allows any origin, and silently converts database query failures into empty results. Published build targets cover Linux on two processor architectures. The underlying corpus has not been updated since 2019, according to the README.
How to use it well
Use it for local exploration, scripts, prototypes, or internal services that need read-only ConceptNet lookups with little infrastructure. Import only required languages to constrain the dataset, then choose JSON for automation and tree output for inspection. It does not provide corpus updates, incremental database refreshes, authentication, or a broader application framework.
Technical notes+
src/main.rs defines the import, query, and serve CLI surface through clap. src/import.rs streams gzip or plain input, caches concept and relation IDs in memory, commits every 50,000 imported edges, then creates indexes. src/db.rs opens query connections read-only with NO_MUTEX, applies cache and mmap pragmas, builds parameterized edge queries, and embeds src/queries.sql through yesqlr. src/serve.rs runs tiny_http over one SQLite connection, parses GET query parameters, adds wildcard CORS, and maps query errors to empty arrays. Cargo.toml enables bundled SQLite, release LTO, and optimization level 3. .goreleaser.yaml packages musl binaries for x86_64 and aarch64 Linux.
Observed
- License
- MIT License
- Primary language
- Rust
- Packaging
- Cargo project with downloadable precompiled release archives
- Interfaces
- Command-line importer and query tool, plus a JSON HTTP server
- Database
- SQLite is bundled through rusqlite
- Platform support
- Release configuration targets x86_64 and aarch64 Linux with musl
- Input formats
- Importer accepts gzip-compressed assertions or plain tab-separated input
Read from README.md, Makefile, Cargo.toml, src/main.rs, src/db.rs, src/model.rs, src/serve.rs, src/import.rs, src/display.rs, LICENSE, .goreleaser.yaml, src/queries.sql, .github/workflows/release.yml.
What it can do
Query ConceptNet knowledge graph locally
ConceptNet query parameters → Knowledge graph relationships and concepts
Serve ConceptNet data via HTTP API
HTTP requests with concept queries → JSON responses with semantic relationships
Search for semantic relationships between concepts
Two or more concept terms → Relationship paths and connection types
Retrieve concept definitions and properties
Concept name or identifier → Concept metadata and associated information
Access ConceptNet data without internet connection
Local SQLite database queries → Offline semantic knowledge results
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.