- Rust 80%
- HTML 11%
- CSS 5.2%
- JavaScript 3.3%
- Shell 0.4%
Keep CLAUDE.md and .claude/ out of this public-mirrored repo (they were only saved by a per-machine global gitignore). Coordination lives in the parent coordination repo; contributor IRI-stability rules move to a public doc alongside url-design.org. Agent: coordinator@research-env |
||
|---|---|---|
| bin | ||
| docs | ||
| planning-history | ||
| src | ||
| static | ||
| templates | ||
| .dockerignore | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| concon.example.toml | ||
| Dockerfile | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| ontology.org | ||
| README.org | ||
| system.example.ttl | ||
Concon
Concon is a collaborative knowledge graph platform for teams: create and manage RDF datasets, share scientific papers, and query everything with SPARQL — with team-based roles and per-dataset visibility.
The name "Concón" is the Chilean name for an owl — a nod to OWL, the ontology language.
Architecture
Concon is an axum web application. Teams own knowledge graph datasets (RDF repositories) and query them over the SPARQL protocol; access is governed by team roles and per-dataset visibility (public / logged-in / team-only). Users, teams, roles, and dataset metadata live in a single RDF store managed with the Oxigraph library, and each dataset is its own Oxigraph store. Teams also have file catalogs for sharing documents (e.g. papers), and datasets can be published as Linked Data — an ontology-document view, per-entity dereferencing, and content negotiation — so Concon can host public resources. (The MLIPs ontology and knowledge graph is one such resource hosted on Concon, not the purpose of the platform.) Users authenticate with credentials to use the web application and to write to datasets; public datasets are queryable without login.
SPARQL query editor
Users can edit and execute SPARQL queries through an embedded YASGUI (Yet Another SPARQL GUI) interface. YASGUI is a client-side JavaScript library that provides syntax highlighting, autocompletion, prefix management, and multiple result views. It works with any standard SPARQL endpoint, making it a natural fit for our Oxigraph-backed datasets. The axum backend serves the YASGUI static assets and exposes each dataset's SPARQL endpoint.
Running
Local development
cargo run
The server starts on http://localhost:3000.
Docker
docker build -t concon .
docker run -p 3000:3000 concon
Testing
Unit tests
cargo test
Docker smoke tests
A smoke test script builds the Docker image, starts a container, tests all API endpoints, and cleans up:
./bin/test-docker.sh
Development roadmap
- Set up an environment to start a new axum project.
- Define an ontology for managing users, datasets, roles, permissions, and teams.
- Integrate YASGUI as the SPARQL query editor, served as static assets from the axum application.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Third-party assets vendored under static/vendor/ (jQuery, Foundation, YASGUI) remain under their own respective licenses.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.