SCALE
Shared Concepts, Attributes, and Links with Evidence: one shared framework for evidence-backed scientific knowledge graphs across domains.
SCALE is a schema, tools and agent skills for building knowledge graphs in which every record stays linked to its evidence.
- Concepts are the kinds of nodes, edges, properties and values.
- Attributes are the properties of nodes and edges.
- Links are typed, directed edges.
- Evidence is a source, a locator and a short verbatim quote. Every node and edge that states something carries it.
People and AI agents curate sources into graphs and query them. Every value keeps its source, its reported unit and its quote.
The schema has two layers. The science kernel holds what all sciences share: questions, hypotheses, experiments, claims, sources, people. Domains build on it. Catalysis is the first and, for now, only domain: thermal, electro-, photo- and plasma catalysis, and their combinations.
Use it
pip install git+https://github.com/hlxin/scale
Then scale call status to start, or claude mcp add scale -- scale mcp to give an AI agent the tools
(docs/integrate.md, AGENTS.md).
What's inside
- The science kernel (
core/): the base layer shared by all sciences, with the value object, the evidence item and record references (how a domain builds on it). - The catalysis domain (
domain/):catalysis.yaml: species, materials, reactions, catalysts and the terms for each driving force (heat, electrical heating, potential, light, plasma).domain/graph/scale-catal.yamljoins it with the kernel. Its checklist says what a record must and should report; the items for a catalytic test depend on the driving forces the test lists. A document follows it withfollows_domains: ["catalysis"]. Every concept is provisional.- competency questions: query plans with their expected answers, run on public examples (
scale domains cq); - synthetic examples with invented values, one per driving force and combination.
- A real example (
examples/methanol-synthesis-pre1966/): 105 sources on methanol synthesis from CO/CO2 and H2 published before 1966, curated into one graph with short quotes. The tests run on it. - A fully open example (
examples/methanol-synthesis-public/): its 55 public-domain sources, with their PDFs and page texts and every quote in full, kept as one part per source. - Tools (
tools/): thescalePython package and command, the agent skills and their tests. - Governance (
governance/): who reviews, how changes are approved, versions and releases. - Releases (
releases/): fixed, digested releases built by a person; the first isv0.1.0.
There is one data format: scale-catal documents (node-link JSON), each naming the schema version it follows. Your model does the judgement work, such as extracting values and writing queries; SCALE's tools are deterministic. Queries decline rather than guess. See the implementation status and the architecture.
Schema versions
The kernel and the catalysis domain share one version number, set in domain/graph/scale-catal.yaml.
core/CORE.yaml, domain/DOMAIN.yaml and scale-release.yaml repeat it, and scale domains check makes sure
they agree. Every schema change raises it: the second number for a breaking change, the third for an additive
one. The old version is frozen in graph/frozen/, so a document stays readable under the version it names.
The schema is at 0.2.0; 0.1.0 (2026-10-08) was the first version of this repository's numbering. The schema was
named scale-graph until 0.1.0 and is scale-catal from 0.2.0 on (a breaking change: documents pin the name):
| version | spec digest (sha256 of the spec document) |
|---|---|
| scale-graph 0.1.0 (frozen) | 3c2fa7205a7bae5e0bbfa7d87826ff7ab7803e78536129064101c7d5a2c02006 |
| scale-catal 0.2.0 | 166bfc5539df7f44de075a4fb504c54170af32d6b3a01a916d6171bfcecec714 |
A version number only means something within this repository, so identify a schema by its digest
(scale graph spec prints it).
Documents from the earlier contents of github.com/hlxin/scale. This repository replaced them (its own scale-graph numbering 0.1.0-0.8.0, package scale-catalysis); versions here restart at 0.1.0 and are a separate line. Re-curate documents from there; do not validate them as they are.
Contribute
Every change is one pull request. Anyone can suggest a change in an issue or a comment
(comment form,
contribution form) or open a pull request.
@scale-agents pick up every new issue, comment and review on their own and prepare the pull request. One
reviewer approves and merges it; this may be the person who suggested it. Agents never approve or merge.
A schema change edits the schema files directly and raises the version in the same pull request
(scale schema bump, checked by scale schema check). See CONTRIBUTING.md and
governance/GOVERNANCE.md.
Develop
git clone https://github.com/hlxin/scale && cd scale && uv run --extra dev scale check
This sets up the environment and runs every check CI runs. Add --fast to skip the tests.
Documentation
Commands · Using SCALE with agents · Architecture · Curation · Querying · Schema evolution · The catalysis domain · The science kernel · Tools · Governance · Changelog
Licence and citation
Code is under the MIT licence (LICENSE); the vocabulary, curated records and documentation are under CC-BY-4.0. REUSE.toml gives every file its licence; third-party material is listed in NOTICE.
Records quote sources only in short, capped excerpts. Only public documents are committed; project data not cleared for publication never is (governance/licensing.md). To cite SCALE, see CITATION.cff.
Metadata
Release files for scale-catal 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scale_catal-0.2.0.tar.gz | 760.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scale_catal-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.6 MB
Release files / scale_catal-0.2.0.tar.gz
| Download URL | scale_catal-0.2.0.tar.gz |
|---|---|
| Size | 760.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09f3b7437673b73314cb0f01175f82735e68182ba5d8e6f727708c3f4b6b538f
|
|
BLAKE2b-256 checksum How to use checksums |
8984a19b53ea503448b0e3807b6080dd015f18d7e06ca06e3b56b8ec2ac45b99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / scale_catal-0.2.0-py3-none-any.whl
| Download URL | scale_catal-0.2.0-py3-none-any.whl |
|---|---|
| Size | 828.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8fef1c727be69d146f79984f204108bd4b34ec16fa59259528285d3939f42de7
|
|
BLAKE2b-256 checksum How to use checksums |
2b8a4c4bc53b78b6c8f55433b565b729dc68f56cb4e21bc3c5fcf7f281aca5b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency log