<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://neowiki.dev/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NeoWiki</id>
	<title>NeoWiki Demo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://neowiki.dev/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NeoWiki"/>
	<link rel="alternate" type="text/html" href="https://neowiki.dev/wiki/Special:Contributions/NeoWiki"/>
	<updated>2026-05-02T11:23:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=NeoWiki&amp;diff=175</id>
		<title>NeoWiki</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=NeoWiki&amp;diff=175"/>
		<updated>2026-04-30T12:36:32Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=170</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=170"/>
		<updated>2026-04-24T22:46:26Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:1200px; font-size: 1.15rem&amp;quot;&amp;gt;&lt;br /&gt;
Welcome to the NeoWiki demo wiki!&lt;br /&gt;
&lt;br /&gt;
NeoWiki turns your wiki into a collaborative graph database by letting you store and query structured information.&lt;br /&gt;
Information is stored in versioned document form inside wiki pages. The latest version is also stored in&lt;br /&gt;
graph databases, via which it can be queried.&lt;br /&gt;
&lt;br /&gt;
NeoWiki is in the experimental proof-of-concept phase. It is not production-ready, public interfaces will change,&lt;br /&gt;
big structural changes will happen, and key functionality is still missing.&lt;br /&gt;
&lt;br /&gt;
This demo exists to gather feedback to inform further development.&lt;br /&gt;
&lt;br /&gt;
You can find [https://github.com/ProfessionalWiki/NeoWiki/tree/master/docs technical documentation] in the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki NeoWiki git repository]. You can also&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki/issues view the issue tracker] or&lt;br /&gt;
[https://professional.wiki/en/contact contact Professional Wiki] (the maintainer of NeoWiki).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Discover NeoWiki Step by Step ==&lt;br /&gt;
&lt;br /&gt;
Terminology is explained in [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/Glossary.md the glossary].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a reader:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View a Subject: [[Professional Wiki]]&lt;br /&gt;
* View a Schema: [[Schema:Company]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As an editor:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Edit a Subject: [[Professional Wiki]] (login required)&lt;br /&gt;
* Edit a Schema: either via a Subject using it, i.e. [[Professional Wiki]], or directly on the Schema page, i.e. [[Schema:Company]]&lt;br /&gt;
* Create a Subject: Create a new page with any content, then click &amp;quot;Create subject&amp;quot; in the NeoWiki section of the sidebar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a developer:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View Subject JSON: [[Special:NeoJson/ACME_Inc]] (developer UI, normal users will not see JSON. [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/SubjectFormat.md View docs])&lt;br /&gt;
* Query the graph database: [[Cypher|Cypher raw example]]&lt;br /&gt;
* Read values in wikitext: [[Value parser function]]&lt;br /&gt;
* Read values in Lua: [[Lua Data Access]]&lt;br /&gt;
* [[#REST_API_endpoints|Explore the REST API]]&lt;br /&gt;
&lt;br /&gt;
== European Museums ==&lt;br /&gt;
&lt;br /&gt;
A dataset of European museums, artists, and artworks showcasing cross-schema relations and rich property types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Museums:&#039;&#039;&#039; [[Musee dOrsay|Musée d&#039;Orsay]], [[Rijksmuseum]], [[Kunsthistorisches Museum]], [[Museo del Prado]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artists:&#039;&#039;&#039; [[Claude Monet]], [[Vincent van Gogh]], [[Johannes Vermeer]], [[Diego Velazquez|Diego Velázquez]], [[Gustav Klimt]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artworks:&#039;&#039;&#039; [[Water Lilies]], [[Starry Night Over the Rhone|Starry Night Over the Rhône]], [[The Milkmaid]], [[Las Meninas]], [[The Kiss]], [[The Art of Painting]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exhibitions:&#039;&#039;&#039; [[Impressionist Masters]], [[Dutch Golden Age Highlights]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cities:&#039;&#039;&#039; [[Paris]], [[Amsterdam]], [[Vienna]], [[Madrid]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; [[Museum Collection]]&lt;br /&gt;
&lt;br /&gt;
== Demo Pages ==&lt;br /&gt;
&lt;br /&gt;
* Simple page with automatic infobox and edit form: [[NeoWiki]], [[ProWiki]]&lt;br /&gt;
* Subject with relations: [[Professional Wiki]]&lt;br /&gt;
* Multiple subjects per page: [[ACME Inc]]&lt;br /&gt;
* Wikibase Statement emulation: [[Berlin]]&lt;br /&gt;
* Displaying data from other pages: [[Company Infoboxes]]&lt;br /&gt;
* [[Reactive UI example]]&lt;br /&gt;
&lt;br /&gt;
== Schemas and Layouts ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schemas&#039;&#039;&#039; define the structure of your data. For instance, you can define that an Employee has a compensation&lt;br /&gt;
in EUR with a value between 0 and 1000000.&lt;br /&gt;
&lt;br /&gt;
* [[Schema:Company]], [[Schema:Product]], [[Schema:Employee]]&lt;br /&gt;
* [[Schema:Museum]], [[Schema:Artist]], [[Schema:Artwork]], [[Schema:Exhibition]], [[Schema:Attendance]]&lt;br /&gt;
* [[Special:Schemas|View all schemas]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Layouts&#039;&#039;&#039; customize how Subjects are displayed by selecting which properties to show and in what order.&lt;br /&gt;
&lt;br /&gt;
* [[Layout:CompanyOverview]]&lt;br /&gt;
* [[Special:Layouts|View all layouts]]&lt;br /&gt;
&lt;br /&gt;
== REST API Endpoints ==&lt;br /&gt;
&lt;br /&gt;
An auto-generated OpenAPI 3.0 spec describes the REST API:&lt;br /&gt;
&lt;br /&gt;
* [{{SERVER}}{{SCRIPTPATH}}/rest.php/specs/v0/module/- NeoWiki OpenAPI spec] — &amp;lt;code&amp;gt;/rest.php/specs/v0/module/-&amp;lt;/code&amp;gt;&lt;br /&gt;
* [{{SERVER}}{{SCRIPTPATH}}/rest.php/specs/v0/discovery Module discovery] — &amp;lt;code&amp;gt;/rest.php/specs/v0/discovery&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example endpoint URL: &amp;lt;code&amp;gt;{{SERVER}}{{SCRIPTPATH}}/rest.php/neowiki/v0/subject/s1demo4sssssss1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Read Endpoints ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Gets the JSON definition of a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/schema/{schemaName}&amp;lt;/code&amp;gt; Gets the JSON definition of a schema&lt;br /&gt;
&lt;br /&gt;
=== Write Endpoints ===&lt;br /&gt;
&lt;br /&gt;
These require a CSRF token, first obtained via &amp;lt;code&amp;gt;api.php?action=query&amp;amp;format=json&amp;amp;meta=tokens&amp;amp;type=csrf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/mainSubject&amp;lt;/code&amp;gt; Creates a new main subject&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/childSubjects&amp;lt;/code&amp;gt; Creates a new child subject&lt;br /&gt;
* &amp;lt;code&amp;gt;PATCH /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Updates a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;DELETE /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Deletes a subject&lt;br /&gt;
&lt;br /&gt;
These endpoints are designed for the NeoWiki frontend. They are not a complete general purpose API yet.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=169</id>
		<title>Professional Wiki</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=169"/>
		<updated>2026-04-24T19:41:35Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Schema:Company&amp;diff=167</id>
		<title>Schema:Company</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Schema:Company&amp;diff=167"/>
		<updated>2026-04-24T19:01:03Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;propertyDefinitions&amp;quot;: {&lt;br /&gt;
		&amp;quot;Founded at&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Websites&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;url&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Main product&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has main product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Products&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Status&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;select&amp;quot;,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa1&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Active&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa2&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Inactive&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa3&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Acquired&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa4&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Dissolved&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;World domination progress&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: 0&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=ACME_Inc&amp;diff=164</id>
		<title>ACME Inc</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=ACME_Inc&amp;diff=164"/>
		<updated>2026-04-23T18:19:16Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Main Subject of this page is the Company ACME Inc, shown in the infobox.&lt;br /&gt;
&lt;br /&gt;
The page also contains Child Subjects which are Products.&lt;br /&gt;
&lt;br /&gt;
TODO: show a table here, for now see the &amp;quot;View or edit JSON&amp;quot; developer link in the NeoWiki section of the sidebar&lt;br /&gt;
&lt;br /&gt;
You can have as many Child Subjects on a page as you want. For instance you could also define Employees.&lt;br /&gt;
&lt;br /&gt;
TODO: show a table here, for now see the &amp;quot;View or edit JSON&amp;quot; developer link in the NeoWiki section of the sidebar&lt;br /&gt;
&lt;br /&gt;
It is up to you to choose if you define products, employees and other business objects on their own pages or if you&lt;br /&gt;
define multiple subjects on a single page.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=163</id>
		<title>Professional Wiki</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=163"/>
		<updated>2026-04-23T18:19:16Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Schema:Company&amp;diff=162</id>
		<title>Schema:Company</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Schema:Company&amp;diff=162"/>
		<updated>2026-04-23T18:19:16Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;propertyDefinitions&amp;quot;: {&lt;br /&gt;
		&amp;quot;Founded at&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Websites&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;url&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Main product&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has main product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Products&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Status&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;select&amp;quot;,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa1&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Active&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa2&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Inactive&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa3&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Acquired&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa4&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Dissolved&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;World domination progress&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: 0&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Module:NeoWikiDemo&amp;diff=154</id>
		<title>Module:NeoWikiDemo</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Module:NeoWikiDemo&amp;diff=154"/>
		<updated>2026-04-20T11:27:48Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
local nw = require( &#039;mw.neowiki&#039; )&lt;br /&gt;
&lt;br /&gt;
function p.value( frame )&lt;br /&gt;
	local property = frame.args[1]&lt;br /&gt;
	local page = frame.args[&#039;page&#039;]&lt;br /&gt;
&lt;br /&gt;
	local options = nil&lt;br /&gt;
	if page then&lt;br /&gt;
		options = { page = page }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local v = nw.getValue( property, options )&lt;br /&gt;
&lt;br /&gt;
	return tostring( v or &#039;&#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.values( frame )&lt;br /&gt;
	local property = frame.args[1]&lt;br /&gt;
	local page = frame.args[&#039;page&#039;]&lt;br /&gt;
	local separator = frame.args[&#039;separator&#039;] or &#039;, &#039;&lt;br /&gt;
&lt;br /&gt;
	local options = nil&lt;br /&gt;
	if page then&lt;br /&gt;
		options = { page = page }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local all = nw.getAll( property, options )&lt;br /&gt;
&lt;br /&gt;
	if not all then&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	for _, item in ipairs( all ) do&lt;br /&gt;
		parts[#parts + 1] = tostring( item )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat( parts, separator )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.subject( frame )&lt;br /&gt;
	local page = frame.args[1]&lt;br /&gt;
	local s = nw.getMainSubject( page )&lt;br /&gt;
&lt;br /&gt;
	if not s then&lt;br /&gt;
		return &#039;No subject found&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	rows[#rows + 1] = &#039;{| class=&amp;quot;wikitable&amp;quot;&#039;&lt;br /&gt;
	rows[#rows + 1] = &#039;! Property !! Type !! Value(s)&#039;&lt;br /&gt;
&lt;br /&gt;
	for name, stmt in pairs( s.statements ) do&lt;br /&gt;
		local vals = {}&lt;br /&gt;
		for _, v in ipairs( stmt.values ) do&lt;br /&gt;
			if type( v ) == &#039;table&#039; then&lt;br /&gt;
				vals[#vals + 1] = v.label or v.target or tostring( v )&lt;br /&gt;
			else&lt;br /&gt;
				vals[#vals + 1] = tostring( v )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		rows[#rows + 1] = &#039;|-&#039;&lt;br /&gt;
		rows[#rows + 1] = &#039;| &#039; .. name .. &#039; || &#039; .. stmt.type .. &#039; || &#039; .. table.concat( vals, &#039;, &#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	rows[#rows + 1] = &#039;|}&#039;&lt;br /&gt;
	return table.concat( rows, &#039;\n&#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.children( frame )&lt;br /&gt;
	local page = frame.args[1]&lt;br /&gt;
	local children = nw.getChildSubjects( page )&lt;br /&gt;
&lt;br /&gt;
	if not children or #children == 0 then&lt;br /&gt;
		return &#039;No child subjects&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	for _, child in ipairs( children ) do&lt;br /&gt;
		parts[#parts + 1] = &amp;quot;&#039;&#039;&#039;&amp;quot; .. child.label .. &amp;quot;&#039;&#039;&#039; (&amp;quot; .. child.schema .. &amp;quot;)&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat( parts, &#039;, &#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderRowsAsTable( rows, columns )&lt;br /&gt;
	if #rows == 0 then&lt;br /&gt;
		return &#039;No results&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not columns then&lt;br /&gt;
		columns = {}&lt;br /&gt;
		for k in pairs( rows[1] ) do&lt;br /&gt;
			columns[#columns + 1] = k&lt;br /&gt;
		end&lt;br /&gt;
		table.sort( columns )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local out = { &#039;{| class=&amp;quot;wikitable&amp;quot;&#039;, &#039;! &#039; .. table.concat( columns, &#039; !! &#039; ) }&lt;br /&gt;
&lt;br /&gt;
	for _, row in ipairs( rows ) do&lt;br /&gt;
		local cells = {}&lt;br /&gt;
		for _, col in ipairs( columns ) do&lt;br /&gt;
			local v = row[col]&lt;br /&gt;
			cells[#cells + 1] = v == nil and &#039;&#039; or tostring( v )&lt;br /&gt;
		end&lt;br /&gt;
		out[#out + 1] = &#039;|-&#039;&lt;br /&gt;
		out[#out + 1] = &#039;| &#039; .. table.concat( cells, &#039; || &#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	out[#out + 1] = &#039;|}&#039;&lt;br /&gt;
	return table.concat( out, &#039;\n&#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.query( frame )&lt;br /&gt;
	return renderRowsAsTable( nw.query( frame.args[1] ) )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.productsFoundedSince( frame )&lt;br /&gt;
	local year = tonumber( frame.args[1] ) or 2000&lt;br /&gt;
&lt;br /&gt;
	return renderRowsAsTable( nw.query(&lt;br /&gt;
		&#039;MATCH (n:Product) WHERE n.`Available since` &amp;gt;= $year &#039; ..&lt;br /&gt;
			&#039;RETURN n.name AS name, n.`Available since` AS year ORDER BY year&#039;,&lt;br /&gt;
		{ year = year }&lt;br /&gt;
	) )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function propertyDetails( prop )&lt;br /&gt;
	local details = {}&lt;br /&gt;
&lt;br /&gt;
	if prop.type == &#039;select&#039; then&lt;br /&gt;
		local labels = {}&lt;br /&gt;
		for _, option in ipairs( prop.options ) do&lt;br /&gt;
			labels[#labels + 1] = option.label&lt;br /&gt;
		end&lt;br /&gt;
		details[#details + 1] = &#039;options: &#039; .. table.concat( labels, &#039;, &#039; )&lt;br /&gt;
	elseif prop.type == &#039;number&#039; then&lt;br /&gt;
		if prop.minimum ~= nil then&lt;br /&gt;
			details[#details + 1] = &#039;min: &#039; .. tostring( prop.minimum )&lt;br /&gt;
		end&lt;br /&gt;
		if prop.maximum ~= nil then&lt;br /&gt;
			details[#details + 1] = &#039;max: &#039; .. tostring( prop.maximum )&lt;br /&gt;
		end&lt;br /&gt;
		if prop.precision ~= nil then&lt;br /&gt;
			details[#details + 1] = &#039;precision: &#039; .. tostring( prop.precision )&lt;br /&gt;
		end&lt;br /&gt;
	elseif prop.type == &#039;relation&#039; then&lt;br /&gt;
		details[#details + 1] = &#039;targetSchema: &#039; .. prop.targetSchema&lt;br /&gt;
		details[#details + 1] = &#039;relation: &#039; .. prop.relation&lt;br /&gt;
	elseif prop.type == &#039;text&#039; or prop.type == &#039;url&#039; then&lt;br /&gt;
		if prop.multiple then&lt;br /&gt;
			details[#details + 1] = &#039;multiple: true&#039;&lt;br /&gt;
		end&lt;br /&gt;
		if prop.uniqueItems then&lt;br /&gt;
			details[#details + 1] = &#039;uniqueItems: true&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat( details, &#039;, &#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.schema( frame )&lt;br /&gt;
	local schema = nw.getSchema( frame.args[1] )&lt;br /&gt;
&lt;br /&gt;
	if not schema then&lt;br /&gt;
		return &#039;Schema not found&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	for _, prop in ipairs( schema.properties ) do&lt;br /&gt;
		rows[#rows + 1] = {&lt;br /&gt;
			Name = prop.name,&lt;br /&gt;
			Type = prop.type,&lt;br /&gt;
			Required = prop.required and &#039;Yes&#039; or &#039;No&#039;,&lt;br /&gt;
			Details = propertyDetails( prop ),&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return renderRowsAsTable( rows, { &#039;Name&#039;, &#039;Type&#039;, &#039;Required&#039;, &#039;Details&#039; } )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Lua_Data_Access&amp;diff=153</id>
		<title>Lua Data Access</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Lua_Data_Access&amp;diff=153"/>
		<updated>2026-04-20T11:27:47Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page demonstrates the &amp;lt;code&amp;gt;mw.neowiki&amp;lt;/code&amp;gt; Lua API for accessing NeoWiki structured data from templates and modules.&lt;br /&gt;
&lt;br /&gt;
The examples use [[Module:NeoWikiDemo]], a demo module included with NeoWiki.&lt;br /&gt;
&lt;br /&gt;
== Reading Property Values ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mw.neowiki.getValue()&amp;lt;/code&amp;gt; returns a single scalar value. &amp;lt;code&amp;gt;mw.neowiki.getAll()&amp;lt;/code&amp;gt; returns all values as a table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! getValue !! getAll&lt;br /&gt;
|-&lt;br /&gt;
| Founded at || {{#invoke:NeoWikiDemo|value|Founded at|page=ACME Inc}} || {{#invoke:NeoWikiDemo|values|Founded at|page=ACME Inc}}&lt;br /&gt;
|-&lt;br /&gt;
| Websites || {{#invoke:NeoWikiDemo|value|Websites|page=ACME Inc}} || {{#invoke:NeoWikiDemo|values|Websites|page=ACME Inc}}&lt;br /&gt;
|-&lt;br /&gt;
| Products (relations) || {{#invoke:NeoWikiDemo|value|Products|page=ACME Inc}} || {{#invoke:NeoWikiDemo|values|Products|page=ACME Inc}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Full Subject Data ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mw.neowiki.getMainSubject()&amp;lt;/code&amp;gt; returns all data for a Subject as a Lua table, enabling templates to render complete data views.&lt;br /&gt;
&lt;br /&gt;
=== Professional Wiki ===&lt;br /&gt;
&lt;br /&gt;
{{#invoke:NeoWikiDemo|subject|Professional Wiki}}&lt;br /&gt;
&lt;br /&gt;
=== ACME Inc ===&lt;br /&gt;
&lt;br /&gt;
{{#invoke:NeoWikiDemo|subject|ACME Inc}}&lt;br /&gt;
&lt;br /&gt;
== Child Subjects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mw.neowiki.getChildSubjects()&amp;lt;/code&amp;gt; returns all non-main Subjects on a page.&lt;br /&gt;
&lt;br /&gt;
Child subjects on [[ACME Inc]]: {{#invoke:NeoWikiDemo|children|ACME Inc}}&lt;br /&gt;
&lt;br /&gt;
== Running Cypher Queries ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mw.neowiki.query()&amp;lt;/code&amp;gt; runs a read-only Cypher query and returns each row as a Lua table keyed&lt;br /&gt;
by the &amp;lt;code&amp;gt;RETURN&amp;lt;/code&amp;gt; aliases. Use it when a single-property lookup is not enough — for example&lt;br /&gt;
to join Subjects, sort results, or list all Subjects of a given type.&lt;br /&gt;
&lt;br /&gt;
=== Listing all Companies ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cypher&amp;quot;&amp;gt;&lt;br /&gt;
MATCH (n:Company) RETURN n.name, n.id&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#invoke:NeoWikiDemo|query|MATCH (n:Company) RETURN n.name, n.id}}&lt;br /&gt;
&lt;br /&gt;
=== Parameterised query: Products available since a given year ===&lt;br /&gt;
&lt;br /&gt;
Templates should always pass values via the &amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt; table instead of concatenating into the query string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
nw.query(&lt;br /&gt;
    &#039;MATCH (n:Product) WHERE n.`Available since` &amp;gt;= $year &#039; ..&lt;br /&gt;
        &#039;RETURN n.name AS name, n.`Available since` AS year ORDER BY year&#039;,&lt;br /&gt;
    { year = 2010 }&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Products available since 2010: {{#invoke:NeoWikiDemo|productsFoundedSince|2010}}&lt;br /&gt;
&lt;br /&gt;
== Inspecting a Schema ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mw.neowiki.getSchema()&amp;lt;/code&amp;gt; returns a Schema definition as a Lua table, including all property names, types, and type-specific attributes. This enables templates to render or validate any schema without hardcoding property names.&lt;br /&gt;
&lt;br /&gt;
=== Company ===&lt;br /&gt;
&lt;br /&gt;
{{#invoke:NeoWikiDemo|schema|Company}}&lt;br /&gt;
&lt;br /&gt;
=== Employee ===&lt;br /&gt;
&lt;br /&gt;
{{#invoke:NeoWikiDemo|schema|Employee}}&lt;br /&gt;
&lt;br /&gt;
== Module Source ==&lt;br /&gt;
&lt;br /&gt;
The demo module uses these &amp;lt;code&amp;gt;mw.neowiki&amp;lt;/code&amp;gt; functions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local nw = require( &#039;mw.neowiki&#039; )&lt;br /&gt;
&lt;br /&gt;
-- Read a single value (always returns a scalar or nil)&lt;br /&gt;
nw.getValue( &#039;Founded at&#039; )             --&amp;gt; 2005&lt;br /&gt;
nw.getValue( &#039;Products&#039; )               --&amp;gt; &amp;quot;Foo&amp;quot; (first value only)&lt;br /&gt;
&lt;br /&gt;
-- Read all values (always returns a 1-indexed table or nil)&lt;br /&gt;
nw.getAll( &#039;Products&#039; )                 --&amp;gt; { &amp;quot;Foo&amp;quot;, &amp;quot;Bar&amp;quot;, &amp;quot;Baz&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
-- Get full subject data&lt;br /&gt;
local s = nw.getMainSubject( &#039;ACME Inc&#039; )&lt;br /&gt;
s.id, s.label, s.schema, s.statements&lt;br /&gt;
&lt;br /&gt;
-- Get child subjects&lt;br /&gt;
local children = nw.getChildSubjects( &#039;ACME Inc&#039; )&lt;br /&gt;
&lt;br /&gt;
-- Run a read-only Cypher query&lt;br /&gt;
local rows = nw.query(&lt;br /&gt;
    &#039;MATCH (n:Product) WHERE n.`Available since` &amp;gt;= $year RETURN n.name, n.`Available since`&#039;,&lt;br /&gt;
    { year = 2010 }&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[Module:NeoWikiDemo]] for the full source.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=152</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=152"/>
		<updated>2026-04-20T11:27:46Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:1200px; font-size: 1.15rem&amp;quot;&amp;gt;&lt;br /&gt;
Welcome to the NeoWiki demo wiki!&lt;br /&gt;
&lt;br /&gt;
NeoWiki turns your wiki into a collaborative graph database by letting you store and query structured information.&lt;br /&gt;
Information is stored in versioned document form inside wiki pages. The latest version is also stored in&lt;br /&gt;
graph databases, via which it can be queried.&lt;br /&gt;
&lt;br /&gt;
NeoWiki is in the experimental proof-of-concept phase. It is not production-ready, public interfaces will change,&lt;br /&gt;
big structural changes will happen, and key functionality is still missing.&lt;br /&gt;
&lt;br /&gt;
This demo exists to gather feedback to inform further development.&lt;br /&gt;
&lt;br /&gt;
You can find [https://github.com/ProfessionalWiki/NeoWiki/tree/master/docs technical documentation] in the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki NeoWiki git repository]. You can also&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki/issues view the issue tracker] or&lt;br /&gt;
[https://professional.wiki/en/contact contact Professional Wiki] (the maintainer of NeoWiki).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Discover NeoWiki Step by Step ==&lt;br /&gt;
&lt;br /&gt;
Terminology is explained in [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/Glossary.md the glossary].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a reader:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View a Subject: [[Professional Wiki]]&lt;br /&gt;
* View a Schema: [[Schema:Company]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As an editor:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Edit a Subject: [[Professional Wiki]] (login required)&lt;br /&gt;
* Edit a Schema: either via a Subject using it, i.e. [[Professional Wiki]], or directly on the Schema page, i.e. [[Schema:Company]]&lt;br /&gt;
* Create a Subject: Create a new page with any content, then click &amp;quot;Create subject&amp;quot; in the NeoWiki section of the sidebar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a developer:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View Subject JSON: [[Special:NeoJson/ACME_Inc]] (developer UI, normal users will not see JSON. [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/SubjectFormat.md View docs])&lt;br /&gt;
* Query the graph database: [[Cypher|Cypher raw example]]&lt;br /&gt;
* Read values in wikitext: [[Value parser function]]&lt;br /&gt;
* Read values in Lua: [[Lua Data Access]]&lt;br /&gt;
* [[#REST_API_endpoints|Explore the REST API]]&lt;br /&gt;
&lt;br /&gt;
== European Museums ==&lt;br /&gt;
&lt;br /&gt;
A dataset of European museums, artists, and artworks showcasing cross-schema relations and rich property types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Museums:&#039;&#039;&#039; [[Musee dOrsay|Musée d&#039;Orsay]], [[Rijksmuseum]], [[Kunsthistorisches Museum]], [[Museo del Prado]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artists:&#039;&#039;&#039; [[Claude Monet]], [[Vincent van Gogh]], [[Johannes Vermeer]], [[Diego Velazquez|Diego Velázquez]], [[Gustav Klimt]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artworks:&#039;&#039;&#039; [[Water Lilies]], [[Starry Night Over the Rhone|Starry Night Over the Rhône]], [[The Milkmaid]], [[Las Meninas]], [[The Kiss]], [[The Art of Painting]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exhibitions:&#039;&#039;&#039; [[Impressionist Masters]], [[Dutch Golden Age Highlights]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cities:&#039;&#039;&#039; [[Paris]], [[Amsterdam]], [[Vienna]], [[Madrid]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; [[Museum Collection]]&lt;br /&gt;
&lt;br /&gt;
== Demo Pages ==&lt;br /&gt;
&lt;br /&gt;
* Simple page with automatic infobox and edit form: [[NeoWiki]], [[ProWiki]]&lt;br /&gt;
* Subject with relations: [[Professional Wiki]]&lt;br /&gt;
* Multiple subjects per page: [[ACME Inc]]&lt;br /&gt;
* Wikibase Statement emulation: [[Berlin]]&lt;br /&gt;
* Displaying data from other pages: [[Company Infoboxes]]&lt;br /&gt;
* [[Reactive UI example]]&lt;br /&gt;
&lt;br /&gt;
== Schemas and Layouts ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schemas&#039;&#039;&#039; define the structure of your data. For instance, you can define that an Employee has a compensation&lt;br /&gt;
in EUR with a value between 0 and 1000000.&lt;br /&gt;
&lt;br /&gt;
* [[Schema:Company]], [[Schema:Product]], [[Schema:Employee]]&lt;br /&gt;
* [[Schema:Museum]], [[Schema:Artist]], [[Schema:Artwork]], [[Schema:Exhibition]], [[Schema:Attendance]]&lt;br /&gt;
* [[Special:Schemas|View all schemas]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Layouts&#039;&#039;&#039; customize how Subjects are displayed by selecting which properties to show and in what order.&lt;br /&gt;
&lt;br /&gt;
* [[Layout:CompanyOverview]]&lt;br /&gt;
* [[Special:Layouts|View all layouts]]&lt;br /&gt;
&lt;br /&gt;
== REST API Endpoints ==&lt;br /&gt;
&lt;br /&gt;
We will have OpenAPI docs later. For now, you can find a complete and up-to-date list by looking at the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki/blob/master/extension.json MediaWiki API route definitions].&lt;br /&gt;
Search for &amp;quot;RestRoutes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example URL: https://neowiki.dev/w/rest.php/neowiki/v0/subject/s1demo4sssssss1&lt;br /&gt;
&lt;br /&gt;
=== Read Endpoints ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Gets the JSON definition of a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/schema/{schemaName}&amp;lt;/code&amp;gt; Gets the JSON definition of a schema&lt;br /&gt;
&lt;br /&gt;
=== Write Endpoints ===&lt;br /&gt;
&lt;br /&gt;
These require a CSRF token, first obtained via &amp;lt;code&amp;gt;api.php?action=query&amp;amp;format=json&amp;amp;meta=tokens&amp;amp;type=csrf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/mainSubject&amp;lt;/code&amp;gt; Creates a new main subject&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/childSubjects&amp;lt;/code&amp;gt; Creates a new child subject&lt;br /&gt;
* &amp;lt;code&amp;gt;PATCH /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Updates a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;DELETE /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Deletes a subject&lt;br /&gt;
&lt;br /&gt;
These endpoints are designed for the NeoWiki frontend. They are not a complete general purpose API yet.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=ACME_Inc&amp;diff=151</id>
		<title>ACME Inc</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=ACME_Inc&amp;diff=151"/>
		<updated>2026-04-20T11:27:46Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Main Subject of this page is the Company ACME Inc, shown in the infobox.&lt;br /&gt;
&lt;br /&gt;
The page also contains Child Subjects which are Products.&lt;br /&gt;
&lt;br /&gt;
TODO: show a table here, for now see the &amp;quot;View or edit JSON&amp;quot; developer link in the NeoWiki section of the sidebar&lt;br /&gt;
&lt;br /&gt;
You can have as many Child Subjects on a page as you want. For instance you could also define Employees.&lt;br /&gt;
&lt;br /&gt;
TODO: show a table here, for now see the &amp;quot;View or edit JSON&amp;quot; developer link in the NeoWiki section of the sidebar&lt;br /&gt;
&lt;br /&gt;
It is up to you to choose if you define products, employees and other business objects on their own pages or if you&lt;br /&gt;
define multiple subjects on a single page.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=150</id>
		<title>Professional Wiki</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=150"/>
		<updated>2026-04-20T11:27:45Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Schema:Company&amp;diff=149</id>
		<title>Schema:Company</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Schema:Company&amp;diff=149"/>
		<updated>2026-04-20T11:27:45Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;propertyDefinitions&amp;quot;: {&lt;br /&gt;
		&amp;quot;Founded at&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Websites&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;url&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Main product&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has main product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Products&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Status&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;select&amp;quot;,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa1&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Active&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa2&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Inactive&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa3&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Acquired&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaaa4&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Dissolved&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;World domination progress&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: 0&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Schema:Everything&amp;diff=148</id>
		<title>Schema:Everything</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Schema:Everything&amp;diff=148"/>
		<updated>2026-04-20T11:27:45Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;description&amp;quot;: &amp;quot;Everything currently almost supported, maybe.&amp;quot;,&lt;br /&gt;
	&amp;quot;propertyDefinitions&amp;quot;: {&lt;br /&gt;
		&amp;quot;string/text&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/text (required)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/text (many)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/text (duplicates)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true,&lt;br /&gt;
			&amp;quot;uniqueItems&amp;quot;: false&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/text (default)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;Default value&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/url&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;url&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/url (many)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;url&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;number/number&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;number/number (w precision)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
			&amp;quot;precision&amp;quot;: 2&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;number/number (w bounds)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
			&amp;quot;minimum&amp;quot;: 42,&lt;br /&gt;
			&amp;quot;maximum&amp;quot;: 100&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;select/select&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;select&amp;quot;,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaab1&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Draft&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaab2&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Review&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaab3&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Approved&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaab4&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Archived&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			]&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;select/select (required)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;select&amp;quot;,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaac1&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Low&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaac2&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Medium&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaac3&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;High&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaac4&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Critical&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;select/select (many)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;select&amp;quot;,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaad1&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Red&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaad2&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Green&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaad3&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Blue&amp;quot;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					&amp;quot;id&amp;quot;: &amp;quot;o1demo1aaaaaad4&amp;quot;,&lt;br /&gt;
					&amp;quot;label&amp;quot;: &amp;quot;Yellow&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;relation/relation&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;relation/relation (many)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Value_parser_function&amp;diff=142</id>
		<title>Value parser function</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Value_parser_function&amp;diff=142"/>
		<updated>2026-04-16T13:39:47Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page demonstrates the &amp;lt;code&amp;gt;neowiki_value&amp;lt;/code&amp;gt; parser function for reading values from Subjects.&lt;br /&gt;
&lt;br /&gt;
== Reading from the Current Page&#039;s Subject ==&lt;br /&gt;
&lt;br /&gt;
When used on a page with a Subject, &amp;lt;code&amp;gt;neowiki_value&amp;lt;/code&amp;gt; reads from that page&#039;s main Subject by default.&lt;br /&gt;
Visit [[ACME Inc]] to see these values in the infobox.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Syntax !! Result&lt;br /&gt;
|-&lt;br /&gt;
| Founded at || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#neowiki_value: Founded at | page=ACME Inc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{#neowiki_value: Founded at | page=ACME Inc}}&lt;br /&gt;
|-&lt;br /&gt;
| Websites || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#neowiki_value: Websites | page=ACME Inc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{#neowiki_value: Websites | page=ACME Inc}}&lt;br /&gt;
|-&lt;br /&gt;
| Products || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#neowiki_value: Products | page=ACME Inc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{#neowiki_value: Products | page=ACME Inc}}&lt;br /&gt;
|-&lt;br /&gt;
| World domination progress || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#neowiki_value: World domination progress | page=ACME Inc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{#neowiki_value: World domination progress | page=ACME Inc}}%&lt;br /&gt;
|-&lt;br /&gt;
| Missing property || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#neowiki_value: Nonexistent | page=ACME Inc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || (empty) {{#neowiki_value: Nonexistent | page=ACME Inc}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Custom Separator ==&lt;br /&gt;
&lt;br /&gt;
Multi-valued properties use &amp;lt;code&amp;gt;, &amp;lt;/code&amp;gt; as separator by default. Use &amp;lt;code&amp;gt;separator=&amp;lt;/code&amp;gt; to change it:&lt;br /&gt;
&lt;br /&gt;
* Default: {{#neowiki_value: Products | page=ACME Inc}}&lt;br /&gt;
* Semicolons: {{#neowiki_value: Products | page=ACME Inc | separator=;}}&lt;br /&gt;
* Pipe: {{#neowiki_value: Products | page=ACME Inc | separator={{!}}}}&lt;br /&gt;
&lt;br /&gt;
== Cross-Page Lookups ==&lt;br /&gt;
&lt;br /&gt;
Read values from any page using the &amp;lt;code&amp;gt;page=&amp;lt;/code&amp;gt; parameter:&lt;br /&gt;
&lt;br /&gt;
* Professional Wiki was founded at: {{#neowiki_value: Founded at | page=Professional Wiki}}&lt;br /&gt;
* ACME Inc was founded at: {{#neowiki_value: Founded at | page=ACME Inc}}&lt;br /&gt;
&lt;br /&gt;
== Inline Usage ==&lt;br /&gt;
&lt;br /&gt;
The parser function can be used inline in running text:&lt;br /&gt;
&lt;br /&gt;
{{#neowiki_value: Products | page=Professional Wiki}} are products of Professional Wiki, which was founded in {{#neowiki_value: Founded at | page=Professional Wiki}}.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=141</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=141"/>
		<updated>2026-04-16T13:39:47Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:1200px; font-size: 1.15rem&amp;quot;&amp;gt;&lt;br /&gt;
Welcome to the NeoWiki demo wiki!&lt;br /&gt;
&lt;br /&gt;
NeoWiki turns your wiki into a collaborative graph database by letting you store and query structured information.&lt;br /&gt;
Information is stored in versioned document form inside wiki pages. The latest version is also stored in&lt;br /&gt;
graph databases, via which it can be queried.&lt;br /&gt;
&lt;br /&gt;
NeoWiki is in the experimental proof-of-concept phase. It is not production-ready, public interfaces will change,&lt;br /&gt;
big structural changes will happen, and key functionality is still missing.&lt;br /&gt;
&lt;br /&gt;
This demo exists to gather feedback to inform further development.&lt;br /&gt;
&lt;br /&gt;
You can find [https://github.com/ProfessionalWiki/NeoWiki/tree/master/docs technical documentation] in the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki NeoWiki git repository]. You can also&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki/issues view the issue tracker] or&lt;br /&gt;
[https://professional.wiki/en/contact contact Professional Wiki] (the maintainer of NeoWiki).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Discover NeoWiki Step by Step ==&lt;br /&gt;
&lt;br /&gt;
Terminology is explained in [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/Glossary.md the glossary].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a reader:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View a Subject: [[Professional Wiki]]&lt;br /&gt;
* View a Schema: [[Schema:Company]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As an editor:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Edit a Subject: [[Professional Wiki]] (login required)&lt;br /&gt;
* Edit a Schema: either via a Subject using it, i.e. [[Professional Wiki]], or directly on the Schema page, i.e. [[Schema:Company]]&lt;br /&gt;
* Create a Subject: Create a new page with any content and click &amp;quot;Create subject&amp;quot;. That button is there just for the PoC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a developer:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View Subject JSON: [[Special:NeoJson/ACME_Inc]] (developer UI, normal users will not see JSON. [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/SubjectFormat.md View docs])&lt;br /&gt;
* Query the graph database: [[Cypher|Cypher raw example]]&lt;br /&gt;
* Read values in wikitext: [[Value parser function]]&lt;br /&gt;
* Read values in Lua: [[Lua Data Access]]&lt;br /&gt;
* [[#REST_API_endpoints|Explore the REST API]]&lt;br /&gt;
&lt;br /&gt;
== European Museums ==&lt;br /&gt;
&lt;br /&gt;
A dataset of European museums, artists, and artworks showcasing cross-schema relations and rich property types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Museums:&#039;&#039;&#039; [[Musee dOrsay|Musée d&#039;Orsay]], [[Rijksmuseum]], [[Kunsthistorisches Museum]], [[Museo del Prado]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artists:&#039;&#039;&#039; [[Claude Monet]], [[Vincent van Gogh]], [[Johannes Vermeer]], [[Diego Velazquez|Diego Velázquez]], [[Gustav Klimt]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artworks:&#039;&#039;&#039; [[Water Lilies]], [[Starry Night Over the Rhone|Starry Night Over the Rhône]], [[The Milkmaid]], [[Las Meninas]], [[The Kiss]], [[The Art of Painting]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exhibitions:&#039;&#039;&#039; [[Impressionist Masters]], [[Dutch Golden Age Highlights]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cities:&#039;&#039;&#039; [[Paris]], [[Amsterdam]], [[Vienna]], [[Madrid]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; [[Museum Collection]]&lt;br /&gt;
&lt;br /&gt;
== Demo Pages ==&lt;br /&gt;
&lt;br /&gt;
* Simple page with automatic infobox and edit form: [[NeoWiki]], [[ProWiki]]&lt;br /&gt;
* Subject with relations: [[Professional Wiki]]&lt;br /&gt;
* Multiple subjects per page: [[ACME Inc]]&lt;br /&gt;
* Wikibase Statement emulation: [[Berlin]]&lt;br /&gt;
* Displaying data from other pages: [[Company Infoboxes]]&lt;br /&gt;
* [[Reactive UI example]]&lt;br /&gt;
&lt;br /&gt;
== Schemas and Layouts ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schemas&#039;&#039;&#039; define the structure of your data. For instance, you can define that an Employee has a compensation&lt;br /&gt;
in EUR with a value between 0 and 1000000.&lt;br /&gt;
&lt;br /&gt;
* [[Schema:Company]], [[Schema:Product]], [[Schema:Employee]]&lt;br /&gt;
* [[Schema:Museum]], [[Schema:Artist]], [[Schema:Artwork]], [[Schema:Exhibition]], [[Schema:Attendance]]&lt;br /&gt;
* [[Special:Schemas|View all schemas]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Layouts&#039;&#039;&#039; customize how Subjects are displayed by selecting which properties to show and in what order.&lt;br /&gt;
&lt;br /&gt;
* [[Layout:CompanyOverview]]&lt;br /&gt;
* [[Special:Layouts|View all layouts]]&lt;br /&gt;
&lt;br /&gt;
== REST API Endpoints ==&lt;br /&gt;
&lt;br /&gt;
We will have OpenAPI docs later. For now, you can find a complete and up-to-date list by looking at the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki/blob/master/extension.json MediaWiki API route definitions].&lt;br /&gt;
Search for &amp;quot;RestRoutes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example URL: https://neowiki.dev/w/rest.php/neowiki/v0/subject/s1demo4sssssss1&lt;br /&gt;
&lt;br /&gt;
=== Read Endpoints ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Gets the JSON definition of a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/schema/{schemaName}&amp;lt;/code&amp;gt; Gets the JSON definition of a schema&lt;br /&gt;
&lt;br /&gt;
=== Write Endpoints ===&lt;br /&gt;
&lt;br /&gt;
These require a CSRF token, first obtained via &amp;lt;code&amp;gt;api.php?action=query&amp;amp;format=json&amp;amp;meta=tokens&amp;amp;type=csrf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/mainSubject&amp;lt;/code&amp;gt; Creates a new main subject&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/childSubjects&amp;lt;/code&amp;gt; Creates a new child subject&lt;br /&gt;
* &amp;lt;code&amp;gt;PATCH /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Updates a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;DELETE /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Deletes a subject&lt;br /&gt;
&lt;br /&gt;
These endpoints are designed for the NeoWiki frontend. They are not a complete general purpose API yet.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Property_Values&amp;diff=140</id>
		<title>Property Values</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Property_Values&amp;diff=140"/>
		<updated>2026-04-09T10:57:42Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page demonstrates the &amp;lt;code&amp;gt;neowiki_value&amp;lt;/code&amp;gt; parser function for reading individual property values from Subjects.&lt;br /&gt;
&lt;br /&gt;
== Reading from the Current Page&#039;s Subject ==&lt;br /&gt;
&lt;br /&gt;
When used on a page with a Subject, &amp;lt;code&amp;gt;neowiki_value&amp;lt;/code&amp;gt; reads from that page&#039;s main Subject by default.&lt;br /&gt;
Visit [[ACME Inc]] to see these values in the infobox.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Syntax !! Result&lt;br /&gt;
|-&lt;br /&gt;
| Founded at || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#neowiki_value: Founded at | page=ACME Inc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{#neowiki_value: Founded at | page=ACME Inc}}&lt;br /&gt;
|-&lt;br /&gt;
| Websites || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#neowiki_value: Websites | page=ACME Inc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{#neowiki_value: Websites | page=ACME Inc}}&lt;br /&gt;
|-&lt;br /&gt;
| Products || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#neowiki_value: Products | page=ACME Inc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{#neowiki_value: Products | page=ACME Inc}}&lt;br /&gt;
|-&lt;br /&gt;
| World domination progress || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#neowiki_value: World domination progress | page=ACME Inc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || {{#neowiki_value: World domination progress | page=ACME Inc}}%&lt;br /&gt;
|-&lt;br /&gt;
| Missing property || &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#neowiki_value: Nonexistent | page=ACME Inc}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || (empty) {{#neowiki_value: Nonexistent | page=ACME Inc}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Custom Separator ==&lt;br /&gt;
&lt;br /&gt;
Multi-valued properties use &amp;lt;code&amp;gt;, &amp;lt;/code&amp;gt; as separator by default. Use &amp;lt;code&amp;gt;separator=&amp;lt;/code&amp;gt; to change it:&lt;br /&gt;
&lt;br /&gt;
* Default: {{#neowiki_value: Products | page=ACME Inc}}&lt;br /&gt;
* Semicolons: {{#neowiki_value: Products | page=ACME Inc | separator=;}}&lt;br /&gt;
* Pipe: {{#neowiki_value: Products | page=ACME Inc | separator={{!}}}}&lt;br /&gt;
&lt;br /&gt;
== Cross-Page Lookups ==&lt;br /&gt;
&lt;br /&gt;
Read values from any page using the &amp;lt;code&amp;gt;page=&amp;lt;/code&amp;gt; parameter:&lt;br /&gt;
&lt;br /&gt;
* Professional Wiki was founded at: {{#neowiki_value: Founded at | page=Professional Wiki}}&lt;br /&gt;
* ACME Inc was founded at: {{#neowiki_value: Founded at | page=ACME Inc}}&lt;br /&gt;
&lt;br /&gt;
== Inline Usage ==&lt;br /&gt;
&lt;br /&gt;
The parser function can be used inline in running text:&lt;br /&gt;
&lt;br /&gt;
{{#neowiki_value: Products | page=Professional Wiki}} are products of Professional Wiki, which was founded in {{#neowiki_value: Founded at | page=Professional Wiki}}.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=139</id>
		<title>Professional Wiki</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=139"/>
		<updated>2026-04-09T10:57:42Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Module:NeoWikiDemo&amp;diff=135</id>
		<title>Module:NeoWikiDemo</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Module:NeoWikiDemo&amp;diff=135"/>
		<updated>2026-04-07T16:09:53Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
local nw = require( &#039;mw.neowiki&#039; )&lt;br /&gt;
&lt;br /&gt;
function p.value( frame )&lt;br /&gt;
	local property = frame.args[1]&lt;br /&gt;
	local page = frame.args[&#039;page&#039;]&lt;br /&gt;
&lt;br /&gt;
	local options = nil&lt;br /&gt;
	if page then&lt;br /&gt;
		options = { page = page }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local v = nw.getValue( property, options )&lt;br /&gt;
&lt;br /&gt;
	return tostring( v or &#039;&#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.values( frame )&lt;br /&gt;
	local property = frame.args[1]&lt;br /&gt;
	local page = frame.args[&#039;page&#039;]&lt;br /&gt;
	local separator = frame.args[&#039;separator&#039;] or &#039;, &#039;&lt;br /&gt;
&lt;br /&gt;
	local options = nil&lt;br /&gt;
	if page then&lt;br /&gt;
		options = { page = page }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local all = nw.getAll( property, options )&lt;br /&gt;
&lt;br /&gt;
	if not all then&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	for _, item in ipairs( all ) do&lt;br /&gt;
		parts[#parts + 1] = tostring( item )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat( parts, separator )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.subject( frame )&lt;br /&gt;
	local page = frame.args[1]&lt;br /&gt;
	local s = nw.getMainSubject( page )&lt;br /&gt;
&lt;br /&gt;
	if not s then&lt;br /&gt;
		return &#039;No subject found&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	rows[#rows + 1] = &#039;{| class=&amp;quot;wikitable&amp;quot;&#039;&lt;br /&gt;
	rows[#rows + 1] = &#039;! Property !! Type !! Value(s)&#039;&lt;br /&gt;
&lt;br /&gt;
	for name, stmt in pairs( s.statements ) do&lt;br /&gt;
		local vals = {}&lt;br /&gt;
		for _, v in ipairs( stmt.values ) do&lt;br /&gt;
			if type( v ) == &#039;table&#039; then&lt;br /&gt;
				vals[#vals + 1] = v.label or v.target or tostring( v )&lt;br /&gt;
			else&lt;br /&gt;
				vals[#vals + 1] = tostring( v )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		rows[#rows + 1] = &#039;|-&#039;&lt;br /&gt;
		rows[#rows + 1] = &#039;| &#039; .. name .. &#039; || &#039; .. stmt.type .. &#039; || &#039; .. table.concat( vals, &#039;, &#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	rows[#rows + 1] = &#039;|}&#039;&lt;br /&gt;
	return table.concat( rows, &#039;\n&#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.children( frame )&lt;br /&gt;
	local page = frame.args[1]&lt;br /&gt;
	local children = nw.getChildSubjects( page )&lt;br /&gt;
&lt;br /&gt;
	if not children or #children == 0 then&lt;br /&gt;
		return &#039;No child subjects&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	for _, child in ipairs( children ) do&lt;br /&gt;
		parts[#parts + 1] = &amp;quot;&#039;&#039;&#039;&amp;quot; .. child.label .. &amp;quot;&#039;&#039;&#039; (&amp;quot; .. child.schema .. &amp;quot;)&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat( parts, &#039;, &#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Lua_Data_Access&amp;diff=134</id>
		<title>Lua Data Access</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Lua_Data_Access&amp;diff=134"/>
		<updated>2026-04-07T16:09:53Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page demonstrates the &amp;lt;code&amp;gt;mw.neowiki&amp;lt;/code&amp;gt; Lua API for accessing NeoWiki structured data from templates and modules.&lt;br /&gt;
&lt;br /&gt;
The examples use [[Module:NeoWikiDemo]], a demo module included with NeoWiki.&lt;br /&gt;
&lt;br /&gt;
== Reading Property Values ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mw.neowiki.getValue()&amp;lt;/code&amp;gt; returns a single scalar value. &amp;lt;code&amp;gt;mw.neowiki.getAll()&amp;lt;/code&amp;gt; returns all values as a table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! getValue !! getAll&lt;br /&gt;
|-&lt;br /&gt;
| Founded at || {{#invoke:NeoWikiDemo|value|Founded at|page=ACME Inc}} || {{#invoke:NeoWikiDemo|values|Founded at|page=ACME Inc}}&lt;br /&gt;
|-&lt;br /&gt;
| Websites || {{#invoke:NeoWikiDemo|value|Websites|page=ACME Inc}} || {{#invoke:NeoWikiDemo|values|Websites|page=ACME Inc}}&lt;br /&gt;
|-&lt;br /&gt;
| Products (relations) || {{#invoke:NeoWikiDemo|value|Products|page=ACME Inc}} || {{#invoke:NeoWikiDemo|values|Products|page=ACME Inc}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Full Subject Data ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mw.neowiki.getMainSubject()&amp;lt;/code&amp;gt; returns all data for a Subject as a Lua table, enabling templates to render complete data views.&lt;br /&gt;
&lt;br /&gt;
=== Professional Wiki ===&lt;br /&gt;
&lt;br /&gt;
{{#invoke:NeoWikiDemo|subject|Professional Wiki}}&lt;br /&gt;
&lt;br /&gt;
=== ACME Inc ===&lt;br /&gt;
&lt;br /&gt;
{{#invoke:NeoWikiDemo|subject|ACME Inc}}&lt;br /&gt;
&lt;br /&gt;
== Child Subjects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mw.neowiki.getChildSubjects()&amp;lt;/code&amp;gt; returns all non-main Subjects on a page.&lt;br /&gt;
&lt;br /&gt;
Child subjects on [[ACME Inc]]: {{#invoke:NeoWikiDemo|children|ACME Inc}}&lt;br /&gt;
&lt;br /&gt;
== Module Source ==&lt;br /&gt;
&lt;br /&gt;
The demo module uses these &amp;lt;code&amp;gt;mw.neowiki&amp;lt;/code&amp;gt; functions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local nw = require( &#039;mw.neowiki&#039; )&lt;br /&gt;
&lt;br /&gt;
-- Read a single value (always returns a scalar or nil)&lt;br /&gt;
nw.getValue( &#039;Founded at&#039; )             --&amp;gt; 2005&lt;br /&gt;
nw.getValue( &#039;Products&#039; )               --&amp;gt; &amp;quot;Foo&amp;quot; (first value only)&lt;br /&gt;
&lt;br /&gt;
-- Read all values (always returns a 1-indexed table or nil)&lt;br /&gt;
nw.getAll( &#039;Products&#039; )                 --&amp;gt; { &amp;quot;Foo&amp;quot;, &amp;quot;Bar&amp;quot;, &amp;quot;Baz&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
-- Get full subject data&lt;br /&gt;
local s = nw.getMainSubject( &#039;ACME Inc&#039; )&lt;br /&gt;
s.id, s.label, s.schema, s.statements&lt;br /&gt;
&lt;br /&gt;
-- Get child subjects&lt;br /&gt;
local children = nw.getChildSubjects( &#039;ACME Inc&#039; )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[Module:NeoWikiDemo]] for the full source.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Company_Infoboxes&amp;diff=133</id>
		<title>Company Infoboxes</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Company_Infoboxes&amp;diff=133"/>
		<updated>2026-04-07T16:09:52Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows infoboxes with data from the [[Professional Wiki]] and [[ACME Inc]] pages.&lt;br /&gt;
&lt;br /&gt;
== Default Infobox ==&lt;br /&gt;
&lt;br /&gt;
Shows all properties in schema-defined order:&lt;br /&gt;
&lt;br /&gt;
{{#view: s1demo1aaaaaaa1}}&lt;br /&gt;
{{#view: s1demo5sssssss1}}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Reactive_UI_example&amp;diff=132</id>
		<title>Reactive UI example</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Reactive_UI_example&amp;diff=132"/>
		<updated>2026-04-07T16:09:52Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows Subjects defined on [[ACME Inc]].&lt;br /&gt;
&lt;br /&gt;
Data is displayed multiple times in different forms, demonstrating automatic and immediate update everywhere once you edit it in one location.&lt;br /&gt;
&lt;br /&gt;
{{#view: s1demo5aaaaaaa1}}&lt;br /&gt;
&lt;br /&gt;
{{#view: s1demo5aaaaaaa1 | CompanyOverview}}&lt;br /&gt;
&lt;br /&gt;
{{#view: s1demo5aaaaaaa1}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Placeholder Text&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How to explain? How to describe? Even the omniscient viewpoint quails.&lt;br /&gt;
&lt;br /&gt;
A singleton star, reddish and dim. A ragtag of asteroids, and a single planet, more like a moon. In this era the star hung near the galactic plane, just beyond the Beyond. The structures on the surface were gone from normal view, pulverized into regolith across a span of aeons. The treasure was far underground, beneath a network of passages, in a single room filled with black. Information at the quantum density, undamaged. Maybe five billion years had passed since the archive was lost to the nets.&lt;br /&gt;
&lt;br /&gt;
The curse of the mummy&#039;s tomb, a comic image from mankind&#039;s own prehistory, lost before time. They had laughed when they said it, laughed with joy at the treasure . . . and determined to be cautious just the same. They would live here a year or five, the little company from Straum, the archaeologist programmers, their families and schools. A year or five would be enough to handmake the protocols, to skim the top and identify the treasure&#039;s origin in time and space, to learn a secret or two that would make Straumli Realm rich. And when they were done, they would sell the location; perhaps build a network link (but chancier that—this was beyond the Beyond; who knew what Power might grab what they&#039;d found).&lt;br /&gt;
&lt;br /&gt;
So now there was a tiny settlement on the surface, and they called it the High Lab. It was really just humans playing with an old library. It should be safe, using their own automation, clean and benign. This library wasn&#039;t a living creature, or even possessed of automation (which here might mean something more, far more, than human). They would look and pick and choose, and be careful not to be burned. . . . Humans starting fires and playing with the flames.&lt;br /&gt;
&lt;br /&gt;
The archive informed the automation. Data structures were built, recipes followed. A local network was built, faster than anything on Straum, but surely safe. Nodes were added, modified by other recipes. The archive was a friendly place, with hierarchies of translation keys that led them along. Straum itself would be famous for this.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=131</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=131"/>
		<updated>2026-04-07T16:09:52Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:1200px; font-size: 1.15rem&amp;quot;&amp;gt;&lt;br /&gt;
Welcome to the NeoWiki demo wiki!&lt;br /&gt;
&lt;br /&gt;
NeoWiki turns your wiki into a collaborative graph database by letting you store and query structured information.&lt;br /&gt;
Information is stored in versioned document form inside wiki pages. The latest version is also stored in&lt;br /&gt;
graph databases, via which it can be queried.&lt;br /&gt;
&lt;br /&gt;
NeoWiki is in the experimental proof-of-concept phase. It is not production-ready, public interfaces will change,&lt;br /&gt;
big structural changes will happen, and key functionality is still missing.&lt;br /&gt;
&lt;br /&gt;
This demo exists to gather feedback to inform further development.&lt;br /&gt;
&lt;br /&gt;
You can find [https://github.com/ProfessionalWiki/NeoWiki/tree/master/docs technical documentation] in the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki NeoWiki git repository]. You can also&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki/issues view the issue tracker] or&lt;br /&gt;
[https://professional.wiki/en/contact contact Professional Wiki] (the maintainer of NeoWiki).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Discover NeoWiki Step by Step ==&lt;br /&gt;
&lt;br /&gt;
Terminology is explained in [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/Glossary.md the glossary].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a reader:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View a Subject: [[Professional Wiki]]&lt;br /&gt;
* View a Schema: [[Schema:Company]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As an editor:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Edit a Subject: [[Professional Wiki]] (login required)&lt;br /&gt;
* Edit a Schema: either via a Subject using it, i.e. [[Professional Wiki]], or directly on the Schema page, i.e. [[Schema:Company]]&lt;br /&gt;
* Create a Subject: Create a new page with any content and click &amp;quot;Create subject&amp;quot;. That button is there just for the PoC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a developer:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View Subject JSON: [[Special:NeoJson/ACME_Inc]] (developer UI, normal users will not see JSON. [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/SubjectFormat.md View docs])&lt;br /&gt;
* Query the graph database: [[Cypher|Cypher raw example]]&lt;br /&gt;
* [[#REST_API_endpoints|Explore the REST API]]&lt;br /&gt;
&lt;br /&gt;
== European Museums ==&lt;br /&gt;
&lt;br /&gt;
A dataset of European museums, artists, and artworks showcasing cross-schema relations and rich property types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Museums:&#039;&#039;&#039; [[Musee dOrsay|Musée d&#039;Orsay]], [[Rijksmuseum]], [[Kunsthistorisches Museum]], [[Museo del Prado]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artists:&#039;&#039;&#039; [[Claude Monet]], [[Vincent van Gogh]], [[Johannes Vermeer]], [[Diego Velazquez|Diego Velázquez]], [[Gustav Klimt]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artworks:&#039;&#039;&#039; [[Water Lilies]], [[Starry Night Over the Rhone|Starry Night Over the Rhône]], [[The Milkmaid]], [[Las Meninas]], [[The Kiss]], [[The Art of Painting]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exhibitions:&#039;&#039;&#039; [[Impressionist Masters]], [[Dutch Golden Age Highlights]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cities:&#039;&#039;&#039; [[Paris]], [[Amsterdam]], [[Vienna]], [[Madrid]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; [[Museum Collection]]&lt;br /&gt;
&lt;br /&gt;
== Other Demo Pages ==&lt;br /&gt;
&lt;br /&gt;
* Simple page with automatic infobox and edit form: [[NeoWiki]], [[ProWiki]]&lt;br /&gt;
* Subject with relations: [[Professional Wiki]]&lt;br /&gt;
* Multiple subjects per page: [[ACME Inc]]&lt;br /&gt;
* Wikibase Statement emulation: [[Berlin]]&lt;br /&gt;
* Displaying data from other pages: [[Company Infoboxes]]&lt;br /&gt;
* [[Reactive UI example]]&lt;br /&gt;
* Lua/Scribunto data access: [[Lua Data Access]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schemas&#039;&#039;&#039; allow you to define the structure of your data. For instance, you can define that a Employee has a&lt;br /&gt;
compensation in EUR with a value between 0 and 1000000.&lt;br /&gt;
&lt;br /&gt;
* [[Schema:Company]]&lt;br /&gt;
* [[Schema:Product]]&lt;br /&gt;
* [[Schema:Employee]]&lt;br /&gt;
* [[Schema:Museum]]&lt;br /&gt;
* [[Schema:Artist]]&lt;br /&gt;
* [[Schema:Artwork]]&lt;br /&gt;
* [[Schema:Exhibition]]&lt;br /&gt;
* [[Schema:Attendance]]&lt;br /&gt;
* [[Special:Schemas|View all schemas]]&lt;br /&gt;
&lt;br /&gt;
== REST API Endpoints ==&lt;br /&gt;
&lt;br /&gt;
We will have OpenAPI docs later. For now, you can find a complete and up-to-date list by looking at the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki/blob/master/extension.json MediaWiki API route definitions].&lt;br /&gt;
Search for &amp;quot;RestRoutes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example URL: https://neowiki.dev/w/rest.php/neowiki/v0/subject/s1demo4sssssss1&lt;br /&gt;
&lt;br /&gt;
=== Read Endpoints ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Gets the JSON definition of a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/schema/{schemaName}&amp;lt;/code&amp;gt; Gets the JSON definition of a schema&lt;br /&gt;
&lt;br /&gt;
=== Write Endpoints ===&lt;br /&gt;
&lt;br /&gt;
These require a CSRF token, first obtained via &amp;lt;code&amp;gt;api.php?action=query&amp;amp;format=json&amp;amp;meta=tokens&amp;amp;type=csrf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/mainSubject&amp;lt;/code&amp;gt; Creates a new main subject&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/childSubjects&amp;lt;/code&amp;gt; Creates a new child subject&lt;br /&gt;
* &amp;lt;code&amp;gt;PATCH /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Updates a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;DELETE /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Deletes a subject&lt;br /&gt;
&lt;br /&gt;
These endpoints are designed for the NeoWiki frontend. They are not a complete general purpose API yet.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=ACME_Inc&amp;diff=130</id>
		<title>ACME Inc</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=ACME_Inc&amp;diff=130"/>
		<updated>2026-04-07T16:09:52Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Main Subject of this page is the Company ACME Inc, shown in the infobox.&lt;br /&gt;
&lt;br /&gt;
The page also contains Child Subjects which are Products.&lt;br /&gt;
&lt;br /&gt;
TODO: show a table here, for now see the &amp;quot;View or edit JSON&amp;quot; developer UI at the bottom&lt;br /&gt;
&lt;br /&gt;
You can have as many Child Subjects on a page as you want. For instance you could also define Employees.&lt;br /&gt;
&lt;br /&gt;
TODO: show a table here, for now see the &amp;quot;View or edit JSON&amp;quot; developer UI at the bottom&lt;br /&gt;
&lt;br /&gt;
It is up to you to choose if you define products, employees and other business objects on their own pages or if you&lt;br /&gt;
define multiple subjects on a single page.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=129</id>
		<title>Professional Wiki</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=129"/>
		<updated>2026-04-07T16:09:51Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Musee_dOrsay&amp;diff=128</id>
		<title>Musee dOrsay</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Musee_dOrsay&amp;diff=128"/>
		<updated>2026-04-07T16:09:49Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Musée d&#039;Orsay is a museum in Paris, France, on the Left Bank of the Seine. It is housed in the former Gare d&#039;Orsay,&lt;br /&gt;
a Beaux-Arts railway station built between 1898 and 1900.&lt;br /&gt;
&lt;br /&gt;
The museum holds mainly French art dating from 1848 to 1914, including paintings, sculptures, furniture, and photography.&lt;br /&gt;
It is home to the world&#039;s largest collection of Impressionist and Post-Impressionist masterpieces by painters including&lt;br /&gt;
Monet, Manet, Degas, Renoir, Cézanne, Seurat, Sisley, Gauguin, and Van Gogh.&lt;br /&gt;
&lt;br /&gt;
{{#view: sEpfwLY8VcdQZJL}}&lt;br /&gt;
{{#view: sEpfwLY8WnceT2y}}&lt;br /&gt;
{{#view: sEpfwLY8XjJ8gE1}}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Schema:Company&amp;diff=126</id>
		<title>Schema:Company</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Schema:Company&amp;diff=126"/>
		<updated>2026-04-07T16:09:33Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;propertyDefinitions&amp;quot;: {&lt;br /&gt;
		&amp;quot;Founded at&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Websites&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;url&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Main product&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has main product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Products&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;Status&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;select&amp;quot;,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				&amp;quot;Active&amp;quot;,&lt;br /&gt;
				&amp;quot;Inactive&amp;quot;,&lt;br /&gt;
				&amp;quot;Acquired&amp;quot;,&lt;br /&gt;
				&amp;quot;Dissolved&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;World domination progress&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: 0&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Schema:Everything&amp;diff=125</id>
		<title>Schema:Everything</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Schema:Everything&amp;diff=125"/>
		<updated>2026-04-07T16:09:33Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;description&amp;quot;: &amp;quot;Everything currently almost supported, maybe.&amp;quot;,&lt;br /&gt;
	&amp;quot;propertyDefinitions&amp;quot;: {&lt;br /&gt;
		&amp;quot;string/text&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/text (required)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/text (many)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/text (duplicates)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true,&lt;br /&gt;
			&amp;quot;uniqueItems&amp;quot;: false&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/text (default)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;Default value&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/url&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;url&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;string/url (many)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;url&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;number/number&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;number/number (w precision)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
			&amp;quot;precision&amp;quot;: 2&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;number/number (w bounds)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
			&amp;quot;minimum&amp;quot;: 42,&lt;br /&gt;
			&amp;quot;maximum&amp;quot;: 100&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;select/select&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;select&amp;quot;,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				&amp;quot;Draft&amp;quot;,&lt;br /&gt;
				&amp;quot;Review&amp;quot;,&lt;br /&gt;
				&amp;quot;Approved&amp;quot;,&lt;br /&gt;
				&amp;quot;Archived&amp;quot;&lt;br /&gt;
			]&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;select/select (required)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;select&amp;quot;,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				&amp;quot;Low&amp;quot;,&lt;br /&gt;
				&amp;quot;Medium&amp;quot;,&lt;br /&gt;
				&amp;quot;High&amp;quot;,&lt;br /&gt;
				&amp;quot;Critical&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;select/select (many)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;select&amp;quot;,&lt;br /&gt;
			&amp;quot;options&amp;quot;: [&lt;br /&gt;
				&amp;quot;Red&amp;quot;,&lt;br /&gt;
				&amp;quot;Green&amp;quot;,&lt;br /&gt;
				&amp;quot;Blue&amp;quot;,&lt;br /&gt;
				&amp;quot;Yellow&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;relation/relation&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;relation/relation (many)&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;relation&amp;quot;,&lt;br /&gt;
			&amp;quot;relation&amp;quot;: &amp;quot;Has product&amp;quot;,&lt;br /&gt;
			&amp;quot;targetSchema&amp;quot;: &amp;quot;Product&amp;quot;,&lt;br /&gt;
			&amp;quot;multiple&amp;quot;: true&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Reactive_UI_example&amp;diff=124</id>
		<title>Reactive UI example</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Reactive_UI_example&amp;diff=124"/>
		<updated>2026-03-30T11:17:00Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows Subjects defined on [[ACME Inc]].&lt;br /&gt;
&lt;br /&gt;
Data is displayed multiple times in different forms, demonstrating automatic and immediate update everywhere once you edit it in one location.&lt;br /&gt;
&lt;br /&gt;
{{#view: s1demo1aaaaaaa1}}&lt;br /&gt;
&lt;br /&gt;
{{#view: s1demo1aaaaaaa4}}&lt;br /&gt;
{{#view: s1demo1aaaaaaa3}}&lt;br /&gt;
{{#view: s1demo1aaaaaaa2}}&lt;br /&gt;
{{#view: s1demo1aaaaaaa1}}&lt;br /&gt;
&lt;br /&gt;
== Placeholder Text ==&lt;br /&gt;
&lt;br /&gt;
How to explain? How to describe? Even the omniscient viewpoint quails.&lt;br /&gt;
&lt;br /&gt;
A singleton star, reddish and dim. A ragtag of asteroids, and a single planet, more like a moon. In this era the star hung near the galactic plane, just beyond the Beyond. The structures on the surface were gone from normal view, pulverized into regolith across a span of aeons. The treasure was far underground, beneath a network of passages, in a single room filled with black. Information at the quantum density, undamaged. Maybe five billion years had passed since the archive was lost to the nets.&lt;br /&gt;
&lt;br /&gt;
The curse of the mummy&#039;s tomb, a comic image from mankind&#039;s own prehistory, lost before time. They had laughed when they said it, laughed with joy at the treasure . . . and determined to be cautious just the same. They would live here a year or five, the little company from Straum, the archaeologist programmers, their families and schools. A year or five would be enough to handmake the protocols, to skim the top and identify the treasure&#039;s origin in time and space, to learn a secret or two that would make Straumli Realm rich. And when they were done, they would sell the location; perhaps build a network link (but chancier that—this was beyond the Beyond; who knew what Power might grab what they&#039;d found).&lt;br /&gt;
&lt;br /&gt;
So now there was a tiny settlement on the surface, and they called it the High Lab. It was really just humans playing with an old library. It should be safe, using their own automation, clean and benign. This library wasn&#039;t a living creature, or even possessed of automation (which here might mean something more, far more, than human). They would look and pick and choose, and be careful not to be burned. . . . Humans starting fires and playing with the flames.&lt;br /&gt;
&lt;br /&gt;
The archive informed the automation. Data structures were built, recipes followed. A local network was built, faster than anything on Straum, but surely safe. Nodes were added, modified by other recipes. The archive was a friendly place, with hierarchies of translation keys that led them along. Straum itself would be famous for this.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Rijksmuseum&amp;diff=123</id>
		<title>Rijksmuseum</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Rijksmuseum&amp;diff=123"/>
		<updated>2026-03-30T11:17:00Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Layout:CompanyOverview&amp;diff=121</id>
		<title>Layout:CompanyOverview</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Layout:CompanyOverview&amp;diff=121"/>
		<updated>2026-03-25T11:18:00Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;schema&amp;quot;: &amp;quot;Company&amp;quot;,&lt;br /&gt;
	&amp;quot;type&amp;quot;: &amp;quot;infobox&amp;quot;,&lt;br /&gt;
	&amp;quot;description&amp;quot;: &amp;quot;Shows only founding year and world domination progress&amp;quot;,&lt;br /&gt;
	&amp;quot;displayRules&amp;quot;: [&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;property&amp;quot;: &amp;quot;World domination progress&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;property&amp;quot;: &amp;quot;Founded at&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	]&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Museum_Collection&amp;diff=120</id>
		<title>Museum Collection</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Museum_Collection&amp;diff=120"/>
		<updated>2026-03-25T11:01:57Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows infoboxes with data from various museum and artwork pages, demonstrating cross-page subject display.&lt;br /&gt;
&lt;br /&gt;
== Museums ==&lt;br /&gt;
&lt;br /&gt;
{{#view: sEpfwJLnx3Kze3t}}&lt;br /&gt;
{{#view: sEpfwJLnxyQy6vR}}&lt;br /&gt;
{{#view: sEpfwJLnyuR5E4i}}&lt;br /&gt;
{{#view: sEpfwJLnzqsDMs5}}&lt;br /&gt;
&lt;br /&gt;
== Selected Artworks ==&lt;br /&gt;
&lt;br /&gt;
{{#view: sEpfwJLo6Si6kJo}}&lt;br /&gt;
{{#view: sEpfwJLo8KqKsUP}}&lt;br /&gt;
{{#view: sEpfwJLoABDZ18D}}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Company_Infoboxes&amp;diff=119</id>
		<title>Company Infoboxes</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Company_Infoboxes&amp;diff=119"/>
		<updated>2026-03-25T11:01:57Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows infoboxes with data from the [[Professional Wiki]] and [[ACME Inc]] pages.&lt;br /&gt;
&lt;br /&gt;
== Default Infobox ==&lt;br /&gt;
&lt;br /&gt;
Shows all properties in schema-defined order:&lt;br /&gt;
&lt;br /&gt;
{{#view: s1demo1aaaaaaa1}}&lt;br /&gt;
{{#view: s1demo5sssssss1}}&lt;br /&gt;
&lt;br /&gt;
== With a Layout ==&lt;br /&gt;
&lt;br /&gt;
The same subjects rendered through the [[Layout:CompanyOverview]] Layout, which only shows &amp;quot;World domination progress&amp;quot; and &amp;quot;Founded at&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
{{#view: s1demo1aaaaaaa1 | CompanyOverview}}&lt;br /&gt;
{{#view: s1demo5sssssss1 | CompanyOverview}}&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Reactive_UI_example&amp;diff=118</id>
		<title>Reactive UI example</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Reactive_UI_example&amp;diff=118"/>
		<updated>2026-03-25T11:01:57Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows Subjects defined on [[ACME Inc]].&lt;br /&gt;
&lt;br /&gt;
Data is displayed multiple times in different forms, demonstrating automatic and immediate update everywhere once you edit it in one location.&lt;br /&gt;
&lt;br /&gt;
{{#view: s1demo1aaaaaaa1}}&lt;br /&gt;
&lt;br /&gt;
{{#view: s1demo1aaaaaaa4}}&lt;br /&gt;
{{#view: s1demo1aaaaaaa3}}&lt;br /&gt;
{{#view: s1demo1aaaaaaa2}}&lt;br /&gt;
{{#view: s1demo1aaaaaaa1}}&lt;br /&gt;
&lt;br /&gt;
## Placeholder Text&lt;br /&gt;
&lt;br /&gt;
How to explain? How to describe? Even the omniscient viewpoint quails.&lt;br /&gt;
&lt;br /&gt;
A singleton star, reddish and dim. A ragtag of asteroids, and a single planet, more like a moon. In this era the star hung near the galactic plane, just beyond the Beyond. The structures on the surface were gone from normal view, pulverized into regolith across a span of aeons. The treasure was far underground, beneath a network of passages, in a single room filled with black. Information at the quantum density, undamaged. Maybe five billion years had passed since the archive was lost to the nets.&lt;br /&gt;
&lt;br /&gt;
The curse of the mummy&#039;s tomb, a comic image from mankind&#039;s own prehistory, lost before time. They had laughed when they said it, laughed with joy at the treasure . . . and determined to be cautious just the same. They would live here a year or five, the little company from Straum, the archaeologist programmers, their families and schools. A year or five would be enough to handmake the protocols, to skim the top and identify the treasure&#039;s origin in time and space, to learn a secret or two that would make Straumli Realm rich. And when they were done, they would sell the location; perhaps build a network link (but chancier that—this was beyond the Beyond; who knew what Power might grab what they&#039;d found).&lt;br /&gt;
&lt;br /&gt;
So now there was a tiny settlement on the surface, and they called it the High Lab. It was really just humans playing with an old library. It should be safe, using their own automation, clean and benign. This library wasn&#039;t a living creature, or even possessed of automation (which here might mean something more, far more, than human). They would look and pick and choose, and be careful not to be burned. . . . Humans starting fires and playing with the flames.&lt;br /&gt;
&lt;br /&gt;
The archive informed the automation. Data structures were built, recipes followed. A local network was built, faster than anything on Straum, but surely safe. Nodes were added, modified by other recipes. The archive was a friendly place, with hierarchies of translation keys that led them along. Straum itself would be famous for this.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Museum_Collection&amp;diff=105</id>
		<title>Museum Collection</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Museum_Collection&amp;diff=105"/>
		<updated>2026-03-24T14:44:46Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows infoboxes with data from various museum and artwork pages, demonstrating cross-page subject display.&lt;br /&gt;
&lt;br /&gt;
== Museums ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;sEpfwJLnx3Kze3t&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;sEpfwJLnxyQy6vR&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;sEpfwJLnyuR5E4i&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;sEpfwJLnzqsDMs5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Selected Artworks ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;sEpfwJLo6Si6kJo&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;sEpfwJLo8KqKsUP&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;sEpfwJLoABDZ18D&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Company_Infoboxes&amp;diff=104</id>
		<title>Company Infoboxes</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Company_Infoboxes&amp;diff=104"/>
		<updated>2026-03-24T14:44:46Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;s1demo1aaaaaaa1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;s1demo5sssssss1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page shows infoboxes with data from the [[Professional Wiki]] and [[ACME Inc]] pages.&lt;br /&gt;
&lt;br /&gt;
This is achieved with the following wikitext that references the IDs of the subjects:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;s1demo1aaaaaaa1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;s1demo5sssssss1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This syntax is temporary and will change as we move out of the proof-of-concept phase.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Reactive_UI_example&amp;diff=103</id>
		<title>Reactive UI example</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Reactive_UI_example&amp;diff=103"/>
		<updated>2026-03-24T14:44:46Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows Subjects defined on [[ACME Inc]].&lt;br /&gt;
&lt;br /&gt;
Data is displayed multiple times in different forms, demonstrating automatic and immediate update everywhere once you edit it in one location.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;s1demo1aaaaaaa1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;s1demo1aaaaaaa4&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;s1demo1aaaaaaa3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;s1demo1aaaaaaa2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-mw-neowiki-subject-id=&amp;quot;s1demo1aaaaaaa1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
## Placeholder Text&lt;br /&gt;
&lt;br /&gt;
How to explain? How to describe? Even the omniscient viewpoint quails.&lt;br /&gt;
&lt;br /&gt;
A singleton star, reddish and dim. A ragtag of asteroids, and a single planet, more like a moon. In this era the star hung near the galactic plane, just beyond the Beyond. The structures on the surface were gone from normal view, pulverized into regolith across a span of aeons. The treasure was far underground, beneath a network of passages, in a single room filled with black. Information at the quantum density, undamaged. Maybe five billion years had passed since the archive was lost to the nets.&lt;br /&gt;
&lt;br /&gt;
The curse of the mummy&#039;s tomb, a comic image from mankind&#039;s own prehistory, lost before time. They had laughed when they said it, laughed with joy at the treasure . . . and determined to be cautious just the same. They would live here a year or five, the little company from Straum, the archaeologist programmers, their families and schools. A year or five would be enough to handmake the protocols, to skim the top and identify the treasure&#039;s origin in time and space, to learn a secret or two that would make Straumli Realm rich. And when they were done, they would sell the location; perhaps build a network link (but chancier that—this was beyond the Beyond; who knew what Power might grab what they&#039;d found).&lt;br /&gt;
&lt;br /&gt;
So now there was a tiny settlement on the surface, and they called it the High Lab. It was really just humans playing with an old library. It should be safe, using their own automation, clean and benign. This library wasn&#039;t a living creature, or even possessed of automation (which here might mean something more, far more, than human). They would look and pick and choose, and be careful not to be burned. . . . Humans starting fires and playing with the flames.&lt;br /&gt;
&lt;br /&gt;
The archive informed the automation. Data structures were built, recipes followed. A local network was built, faster than anything on Straum, but surely safe. Nodes were added, modified by other recipes. The archive was a friendly place, with hierarchies of translation keys that led them along. Straum itself would be famous for this.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=102</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=102"/>
		<updated>2026-03-24T14:44:46Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:1200px; font-size: 1.15rem&amp;quot;&amp;gt;&lt;br /&gt;
Welcome to the NeoWiki demo wiki!&lt;br /&gt;
&lt;br /&gt;
NeoWiki turns your wiki into a collaborative graph database by letting you store and query structured information.&lt;br /&gt;
Information is stored in versioned document form inside wiki pages. The latest version is also stored in&lt;br /&gt;
graph databases, via which it can be queried.&lt;br /&gt;
&lt;br /&gt;
NeoWiki is in the experimental proof-of-concept phase. It is not production-ready, public interfaces will change,&lt;br /&gt;
big structural changes will happen, and key functionality is still missing.&lt;br /&gt;
&lt;br /&gt;
This demo exists to gather feedback to inform further development.&lt;br /&gt;
&lt;br /&gt;
You can find [https://github.com/ProfessionalWiki/NeoWiki/tree/master/docs technical documentation] in the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki NeoWiki git repository]. You can also&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki/issues view the issue tracker] or&lt;br /&gt;
[https://professional.wiki/en/contact contact Professional Wiki] (the maintainer of NeoWiki).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Discover NeoWiki Step by Step ==&lt;br /&gt;
&lt;br /&gt;
Terminology is explained in [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/Glossary.md the glossary].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a reader:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View a Subject: [[Professional Wiki]]&lt;br /&gt;
* View a Schema: [[Schema:Company]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As an editor:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Edit a Subject: [[Professional Wiki]] (login required)&lt;br /&gt;
* Edit a Schema: either via a Subject using it, i.e. [[Professional Wiki]], or directly on the Schema page, i.e. [[Schema:Company]]&lt;br /&gt;
* Create a Subject: Create a new page with any content and click &amp;quot;Create subject&amp;quot;. That button is there just for the PoC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a developer:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View Subject JSON: [[Special:NeoJson/ACME_Inc]] (developer UI, normal users will not see JSON. [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/SubjectFormat.md View docs])&lt;br /&gt;
* Query the graph database: [[Cypher|Cypher raw example]]&lt;br /&gt;
* [[#REST_API_endpoints|Explore the REST API]]&lt;br /&gt;
&lt;br /&gt;
== European Museums ==&lt;br /&gt;
&lt;br /&gt;
A dataset of European museums, artists, and artworks showcasing cross-schema relations and rich property types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Museums:&#039;&#039;&#039; [[Musee dOrsay|Musée d&#039;Orsay]], [[Rijksmuseum]], [[Kunsthistorisches Museum]], [[Museo del Prado]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artists:&#039;&#039;&#039; [[Claude Monet]], [[Vincent van Gogh]], [[Johannes Vermeer]], [[Diego Velazquez|Diego Velázquez]], [[Gustav Klimt]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artworks:&#039;&#039;&#039; [[Water Lilies]], [[Starry Night Over the Rhone|Starry Night Over the Rhône]], [[The Milkmaid]], [[Las Meninas]], [[The Kiss]], [[The Art of Painting]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exhibitions:&#039;&#039;&#039; [[Impressionist Masters]], [[Dutch Golden Age Highlights]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cities:&#039;&#039;&#039; [[Paris]], [[Amsterdam]], [[Vienna]], [[Madrid]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; [[Museum Collection]]&lt;br /&gt;
&lt;br /&gt;
== Other Demo Pages ==&lt;br /&gt;
&lt;br /&gt;
* Simple page with automatic infobox and edit form: [[NeoWiki]], [[ProWiki]]&lt;br /&gt;
* Subject with relations: [[Professional Wiki]]&lt;br /&gt;
* Multiple subjects per page: [[ACME Inc]]&lt;br /&gt;
* Wikibase Statement emulation: [[Berlin]]&lt;br /&gt;
* Displaying data from other pages: [[Company Infoboxes]]&lt;br /&gt;
* [[Reactive UI example]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schemas&#039;&#039;&#039; allow you to define the structure of your data. For instance, you can define that a Employee has a&lt;br /&gt;
compensation in EUR with a value between 0 and 1000000.&lt;br /&gt;
&lt;br /&gt;
* [[Schema:Company]]&lt;br /&gt;
* [[Schema:Product]]&lt;br /&gt;
* [[Schema:Employee]]&lt;br /&gt;
* [[Schema:Museum]]&lt;br /&gt;
* [[Schema:Artist]]&lt;br /&gt;
* [[Schema:Artwork]]&lt;br /&gt;
* [[Schema:Exhibition]]&lt;br /&gt;
* [[Schema:Attendance]]&lt;br /&gt;
* [[Special:Schemas|View all schemas]]&lt;br /&gt;
&lt;br /&gt;
== REST API Endpoints ==&lt;br /&gt;
&lt;br /&gt;
We will have OpenAPI docs later. For now, you can find a complete and up-to-date list by looking at the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki/blob/master/extension.json MediaWiki API route definitions].&lt;br /&gt;
Search for &amp;quot;RestRoutes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example URL: https://neowiki.dev/w/rest.php/neowiki/v0/subject/s1demo4sssssss1&lt;br /&gt;
&lt;br /&gt;
=== Read Endpoints ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Gets the JSON definition of a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/schema/{schemaName}&amp;lt;/code&amp;gt; Gets the JSON definition of a schema&lt;br /&gt;
&lt;br /&gt;
=== Write Endpoints ===&lt;br /&gt;
&lt;br /&gt;
These require a CSRF token, first obtained via &amp;lt;code&amp;gt;api.php?action=query&amp;amp;format=json&amp;amp;meta=tokens&amp;amp;type=csrf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/mainSubject&amp;lt;/code&amp;gt; Creates a new main subject&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/childSubjects&amp;lt;/code&amp;gt; Creates a new child subject&lt;br /&gt;
* &amp;lt;code&amp;gt;PATCH /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Updates a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;DELETE /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Deletes a subject&lt;br /&gt;
&lt;br /&gt;
These endpoints are designed for the NeoWiki frontend. They are not a complete general purpose API yet.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=101</id>
		<title>Professional Wiki</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=101"/>
		<updated>2026-03-24T14:44:44Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Museum_Collection&amp;diff=73</id>
		<title>Museum Collection</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Museum_Collection&amp;diff=73"/>
		<updated>2026-02-03T14:41:03Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page shows infoboxes with data from various museum and artwork pages, demonstrating cross-page subject display.&lt;br /&gt;
&lt;br /&gt;
== Museums ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-subject-id=&amp;quot;sEpfwJLnx3Kze3t&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-subject-id=&amp;quot;sEpfwJLnxyQy6vR&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-subject-id=&amp;quot;sEpfwJLnyuR5E4i&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-subject-id=&amp;quot;sEpfwJLnzqsDMs5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Selected Artworks ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-subject-id=&amp;quot;sEpfwJLo6Si6kJo&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-subject-id=&amp;quot;sEpfwJLo8KqKsUP&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ext-neowiki-view&amp;quot; data-subject-id=&amp;quot;sEpfwJLoABDZ18D&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=72</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Main_Page&amp;diff=72"/>
		<updated>2026-02-03T14:41:03Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width:1200px; font-size: 1.15rem&amp;quot;&amp;gt;&lt;br /&gt;
Welcome to the NeoWiki demo wiki!&lt;br /&gt;
&lt;br /&gt;
NeoWiki turns your wiki into a collaborative graph database by letting you store and query structured information.&lt;br /&gt;
Information is stored in versioned document form inside of wiki pages. The latest version is also stored in&lt;br /&gt;
graph databases via which it can be queried.&lt;br /&gt;
&lt;br /&gt;
NeoWiki is in the experimental proof of concept phase. It is not production ready, public interfaces will change,&lt;br /&gt;
big structural changes will happen, and key functionality is still missing.&lt;br /&gt;
&lt;br /&gt;
This demo exists to gather feedback to inform further development. ([https://professional.wiki/en/contact Contact Professional Wiki])&lt;br /&gt;
&lt;br /&gt;
You can find [https://github.com/ProfessionalWiki/NeoWiki/tree/master/docs technical documentation] in the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki NeoWiki git repository].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Discover NeoWiki Step by Step ==&lt;br /&gt;
&lt;br /&gt;
Terminology is explained in [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/Glossary.md the glossary].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a reader:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View a Subject: [[Professional Wiki]]&lt;br /&gt;
* View a Schema: [[Schema:Company]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As an editor:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Edit a Subject: [[Professional Wiki]] (login required)&lt;br /&gt;
* Edit a Schema: either via a Subject using it, i.e. [[Professional Wiki]], or directly on the Schema page, i.e. [[Schema:Company]]&lt;br /&gt;
* Create a Subject: Create a new page with any content and click &amp;quot;Create subject&amp;quot;. That button is there just for the PoC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;As a developer:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* View Subject JSON: [[Special:NeoJson/ACME_Inc]] (developer UI, normal users will not see JSON. [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/SubjectFormat.md View docs])&lt;br /&gt;
* Query the graph database: [[Cypher|Cypher raw example]]&lt;br /&gt;
* [[#REST_API_endpoints|Explore the REST API]]&lt;br /&gt;
&lt;br /&gt;
== European Museums ==&lt;br /&gt;
&lt;br /&gt;
A dataset of European museums, artists, and artworks showcasing cross-schema relations and rich property types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Museums:&#039;&#039;&#039; [[Musee dOrsay|Musée d&#039;Orsay]], [[Rijksmuseum]], [[Kunsthistorisches Museum]], [[Museo del Prado]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artists:&#039;&#039;&#039; [[Claude Monet]], [[Vincent van Gogh]], [[Johannes Vermeer]], [[Diego Velazquez|Diego Velázquez]], [[Gustav Klimt]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Artworks:&#039;&#039;&#039; [[Water Lilies]], [[Starry Night Over the Rhone|Starry Night Over the Rhône]], [[The Milkmaid]], [[Las Meninas]], [[The Kiss]], [[The Art of Painting]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exhibitions:&#039;&#039;&#039; [[Impressionist Masters]], [[Dutch Golden Age Highlights]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cities:&#039;&#039;&#039; [[Paris]], [[Amsterdam]], [[Vienna]], [[Madrid]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overview:&#039;&#039;&#039; [[Museum Collection]]&lt;br /&gt;
&lt;br /&gt;
== Other Demo Pages ==&lt;br /&gt;
&lt;br /&gt;
* Simple page with automatic infobox and edit form: [[NeoWiki]], [[ProWiki]]&lt;br /&gt;
* Subject with relations: [[Professional Wiki]]&lt;br /&gt;
* Multiple subjects per page: [[ACME Inc]]&lt;br /&gt;
* Wikibase Statement emulation: [[Berlin]]&lt;br /&gt;
* Displaying data from other pages: [[Company Infoboxes]]&lt;br /&gt;
* [[Reactive UI example]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schemas&#039;&#039;&#039; allow you to define the structure of your data. For instance, you can define that a Employee has a&lt;br /&gt;
compensation in EUR with a value between 0 and 1000000.&lt;br /&gt;
&lt;br /&gt;
* [[Schema:Company]]&lt;br /&gt;
* [[Schema:Product]]&lt;br /&gt;
* [[Schema:Employee]]&lt;br /&gt;
* [[Schema:Museum]]&lt;br /&gt;
* [[Schema:Artist]]&lt;br /&gt;
* [[Schema:Artwork]]&lt;br /&gt;
* [[Schema:Exhibition]]&lt;br /&gt;
* [[Schema:Attendance]]&lt;br /&gt;
* [{{fullurl:Special:AllPages|from=&amp;amp;to=&amp;amp;namespace=7474}} View all schemas]&lt;br /&gt;
&lt;br /&gt;
== REST API Endpoints ==&lt;br /&gt;
&lt;br /&gt;
We will have OpenAPI docs later. For now, you can find a complete and up-to-date list by looking at the&lt;br /&gt;
[https://github.com/ProfessionalWiki/NeoWiki/blob/master/extension.json MediaWiki API route definitions].&lt;br /&gt;
Search for &amp;quot;RestRoutes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Example URL: https://neowiki.dev/w/rest.php/neowiki/v0/subject/s1demo4sssssss1&lt;br /&gt;
&lt;br /&gt;
=== Read Endpoints ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Gets the JSON definition of a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;GET /neowiki/v0/schema/{schemaName}&amp;lt;/code&amp;gt; Gets the JSON definition of a schema&lt;br /&gt;
&lt;br /&gt;
=== Write Endpoints ===&lt;br /&gt;
&lt;br /&gt;
These require a CSRF token, first obtained via &amp;lt;code&amp;gt;api.php?action=query&amp;amp;format=json&amp;amp;meta=tokens&amp;amp;type=csrf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/mainSubject&amp;lt;/code&amp;gt; Creates a new main subject&lt;br /&gt;
* &amp;lt;code&amp;gt;POST /neowiki/v0/page/{pageId}/childSubjects&amp;lt;/code&amp;gt; Creates a new child subject&lt;br /&gt;
* &amp;lt;code&amp;gt;PATCH /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Updates a subject&lt;br /&gt;
* &amp;lt;code&amp;gt;DELETE /neowiki/v0/subject/{subjectId}&amp;lt;/code&amp;gt; Deletes a subject&lt;br /&gt;
&lt;br /&gt;
These endpoints are designed for the NeoWiki frontend. They are not a complete general purpose API yet.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Dutch_Golden_Age_Highlights&amp;diff=71</id>
		<title>Dutch Golden Age Highlights</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Dutch_Golden_Age_Highlights&amp;diff=71"/>
		<updated>2026-02-03T14:41:03Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Gustav_Klimt&amp;diff=70</id>
		<title>Gustav Klimt</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Gustav_Klimt&amp;diff=70"/>
		<updated>2026-02-03T14:41:02Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Kunsthistorisches_Museum&amp;diff=69</id>
		<title>Kunsthistorisches Museum</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Kunsthistorisches_Museum&amp;diff=69"/>
		<updated>2026-02-03T14:41:02Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Paris&amp;diff=68</id>
		<title>Paris</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Paris&amp;diff=68"/>
		<updated>2026-02-03T14:41:02Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Starry_Night_Over_the_Rhone&amp;diff=67</id>
		<title>Starry Night Over the Rhone</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Starry_Night_Over_the_Rhone&amp;diff=67"/>
		<updated>2026-02-03T14:41:02Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Impressionist_Masters&amp;diff=66</id>
		<title>Impressionist Masters</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Impressionist_Masters&amp;diff=66"/>
		<updated>2026-02-03T14:41:02Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=65</id>
		<title>Professional Wiki</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Professional_Wiki&amp;diff=65"/>
		<updated>2026-02-03T14:41:01Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Musee_dOrsay&amp;diff=64</id>
		<title>Musee dOrsay</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Musee_dOrsay&amp;diff=64"/>
		<updated>2026-02-03T14:41:01Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Musée d&#039;Orsay is a museum in Paris, France, on the Left Bank of the Seine. It is housed in the former Gare d&#039;Orsay, a Beaux-Arts railway station built between 1898 and 1900.&lt;br /&gt;
&lt;br /&gt;
The museum holds mainly French art dating from 1848 to 1914, including paintings, sculptures, furniture, and photography. It is home to the world&#039;s largest collection of Impressionist and Post-Impressionist masterpieces by painters including Monet, Manet, Degas, Renoir, Cézanne, Seurat, Sisley, Gauguin, and Van Gogh.&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
	<entry>
		<id>https://neowiki.dev/w/index.php?title=Vienna&amp;diff=63</id>
		<title>Vienna</title>
		<link rel="alternate" type="text/html" href="https://neowiki.dev/w/index.php?title=Vienna&amp;diff=63"/>
		<updated>2026-02-03T14:41:01Z</updated>

		<summary type="html">&lt;p&gt;NeoWiki: Importing NeoWiki demo data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>NeoWiki</name></author>
	</entry>
</feed>