Compare
NeoWiki vs Semantic MediaWiki
Both extend MediaWiki. The question is what sits underneath the page when you store a fact, and how that decision compounds.
Semantic MediaWiki has been the answer for structured knowledge in MediaWiki for twenty years. It is powerful, and a generation of institutions depends on it. NeoWiki picks a different bottom of the stack: structured data with native schemas, projected to real graph databases, because the things modern knowledge work reaches for at scale (federation, SPARQL, AI grounding, schema-defined constraints) want a different storage model. The two tools answer the same question with different commitments at the foundation layer.
Where the work lives
Both extend the same MediaWiki underneath. The commitment difference shows up in the three layers above it: how authors put structure in, where that structure lives, and how it comes back out.
NeoWiki
Authoring
Schema-driven forms and REST API
Storage
Versioned JSON on pages, optionally projected to Neo4j, SPARQL stores, or both
Query
Cypher or SPARQL
Semantic MediaWiki
Authoring
Wikitext and Page Forms (no API)
Storage
Versioned wikitext + property tables in SQL
Query
SMW Query (#ask)
MediaWiki
| NeoWiki | Semantic MediaWiki | |
|---|---|---|
| Storage | Structured JSON in MediaWiki revision slots. | Property values inline in wikitext ([[Property::value]]), parsed at save time. |
| Schemas | Native schemas with types, constraints, and defaults. | Property pages declare types one at a time. |
| Editing | Form-based editing built in, derived from your schema. | Page Forms is a separate extension layer. |
| Page model | Several Subjects per page as a native concept; subject-first mode when records should stand alone. | One subject per page; subobjects for extras. |
| Query | Cypher or SPARQL over a graph database. | SMW Query (#ask) over a SQL-backed store. |
Forms without the form definitions
In Page Forms, the form is its own artifact: a form-definition page written by hand and kept in sync with templates and properties. In NeoWiki the form is derived from the schema at edit time. Define the type once and every subject of that type gets a typed editor, with validation and autocompletion for linked subjects, and nothing extra to maintain.
Same question, different mechanics
Find every person born after 1900, with their birth year and field. Both wikis can do it. The shape of the answer is what differs.
mediawiki
{{#ask:
[[Category:Person]]
[[Has birth date::>1900]]
| ?Has birth date
| ?Has field
}}cypher
MATCH (p:Person)
WHERE p.birthDate > date('1900-01-01')
RETURN p, p.birthDate, p.fieldsparql
SELECT ?person ?born ?field
WHERE {
?person a :Person ;
:birthDate ?born ;
:field ?field .
FILTER(?born > "1900-01-01"^^xsd:date)
}If you're already on SMW
NeoWiki is not a drop-in replacement. The data model differs at the storage layer, so SMW property assertions don't auto-translate to NeoWiki schemas. Migration is a scoping conversation: we look at your property structure, your query patterns, and the data you have accumulated, and shape the path. That's a consulting engagement, not a button.
If you are starting greenfield and choosing between the two, the trade is between SMW's twenty years of stability and NeoWiki's foundation for federation, schema-driven editing, and AI grounding. Different tools for different time horizons.
Twenty years of stability.
A different foundation.