A semantic network and reasoning engine in which rules, facts and numbers are nodes of one graph, so a statement is itself a node. Importing the statements of the 1.7 TB Wikidata dump builds 983 million nodes on a single machine, and reasoning over them has surfaced thousands of consistency violations in the Wikidata ontology.
https://zelph.org β// readme
zelph
zelph is an innovative semantic network system and reasoning engine written in C++ with an embedded Janet scripting layer. It treats logic, rules, and mathematics not as external code, but as homoiconic structures within the graph itself.
By blending the flexibility of semantic webs (like Wikidata) with logic programming concepts (deep unification, constructive rules, negation as failure), zelph effectively transforms a static knowledge base into an executable graph.
Four lines are the entire concept:
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")}
The rule never mentions is part of. It quantifies over the relation itself, and the first line β an ordinary fact of the kind any dataset can carry β is what makes it apply here. Wikidata carries exactly this one, so this single rule covers every relation thatβ¦