For Developers

This is where it gets technical. An overview of the architecture and technologies behind ChangingGraph.

Linky working on the technical details

Why a knowledge graph?

Data sitting in isolated databases is hard to link. A knowledge graph makes relationships the native data structure.

Comparison: Relational DB vs. Graph

Aspect Relational DB Knowledge Graph
Structure Rigid tables Flexible triples (subject-predicate-object)
Relationships Foreign keys, JOINs Native edges
Schema Schema changes are expensive Extensible without migration
Semantics No built-in meaning Ontologies define meaning
Interoperability Proprietary Open standards (RDF, SPARQL)

ActivityPub: more than microblogging

The Fediverse can do more than microblogging. Much more. But we act like Neanderthals clutching a rock, even though a power drill is sitting right next to us.

ActivityPub was specified for arbitrary object types — but almost every implementation reduces it to Notes and the Mastodon API. A flea-market item gets sent as a Note. A point of interest simply doesn't exist. The Client-to-Server API is effectively dead.

ChangingGraph changes that:


Technology stack

RDF (Resource Description Framework)

ChangingGraph is built on RDF — the W3C standard for linked data.

Core principle: everything is a triple.

<Apple> <isA> <Fruit> .
<Apple> <contains> <VitaminC> .
<VitaminC> <amount> "5mg/100g" .

SPARQL

The query language for RDF. Similar to SQL, but for graphs.

Example: find all food items high in vitamin C

SELECT ?food ?vitaminC WHERE {
  ?food a cg:Food ;
        cg:hasNutrient ?nutrient .
  ?nutrient cg:nutrientType "Vitamin C" ;
            cg:amount ?vitaminC .
  FILTER(?vitaminC > 20)
}

Ontologies

ChangingGraph uses existing ontologies and extends them:


Data sources

ChangingGraph integrates data from multiple sources:

Bundeslebensmittelschlüssel (BLS)

The German national food reference database, with ~7,000 food items and ~120 nutrients per item.

Open Food Facts (planned)

Crowd-sourced product database with barcodes and branded products.

Enrichment

All data is enriched with SKOS taxonomies and linked to Wikidata, ChEBI and FoodOn.


Architectural principles

Design goals:

Multi-repository design

Data is separated by domain:

Content-addressed storage

Versioning via content hashes — similar to Git.

Every change to the data creates a new version; older versions remain available.


For researchers

Long-term, ChangingGraph aims to enable research:


For developers

ChangingGraph is open to collaboration:

Open source as a goal: as soon as membership and donations make it sustainable.


Interested in collaboration or a technical exchange?

Contact: office@gsund.rocks