Jump to content

Main Page: Difference between revisions

From NeoWiki Demo
NeoWiki (talk | contribs)
Importing NeoWiki demo data
NeoWiki (talk | contribs)
Importing NeoWiki demo data
 
(7 intermediate revisions by the same user not shown)
Line 2: Line 2:
Welcome to the NeoWiki demo wiki!
Welcome to the NeoWiki demo wiki!


NeoWiki turns your wiki into a collaborative graph database by letting you store and query structured information. It is thus similar to Wikibase and Semantic MediaWiki. NeoWiki was developed as a more user-friendly and sustainable alternative to those two softwares.
NeoWiki turns your wiki into a collaborative graph database by letting you store and query structured information.
Information is stored in versioned document form inside wiki pages. The latest version is also stored in
graph databases, via which it can be queried.


NeoWiki is still alpha software. Various features are incomplete or missing. This demo wiki exists so you can see the current state of NeoWiki and imagine what you could do with a further developed version of the software.
NeoWiki is in the experimental proof-of-concept phase. It is not production-ready, public interfaces will change,
big structural changes will happen, and key functionality is still missing.
 
This demo exists to gather feedback to inform further development.
 
You can find [https://github.com/ProfessionalWiki/NeoWiki/tree/master/docs technical documentation] in the
[https://github.com/ProfessionalWiki/NeoWiki NeoWiki git repository]. You can also
[https://github.com/ProfessionalWiki/NeoWiki/issues view the issue tracker] or
[https://professional.wiki/en/contact contact Professional Wiki] (the maintainer of NeoWiki).
</div>
</div>


== Demo pages ==
== Discover NeoWiki Step by Step ==
 
Terminology is explained in [https://github.com/ProfessionalWiki/NeoWiki/blob/master/docs/Glossary.md the glossary].
 
'''As a reader:'''
 
* View a Subject: [[Professional Wiki]]
* View a Schema: [[Schema:Company]]
 
'''As an editor:'''
 
* Edit a Subject: [[Professional Wiki]] (login required)
* Edit a Schema: either via a Subject using it, i.e. [[Professional Wiki]], or directly on the Schema page, i.e. [[Schema:Company]]
* Create a Subject: Create a new page with any content, then click "Create subject" in the NeoWiki section of the sidebar.
 
'''As a developer:'''
 
* 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])
* Query the graph database: [[Cypher|Cypher raw example]]
* Read values in wikitext: [[Value parser function]]
* Read values in Lua: [[Lua Data Access]]
* [[#REST_API_endpoints|Explore the REST API]]
 
== European Museums ==
 
A dataset of European museums, artists, and artworks showcasing cross-schema relations and rich property types.
 
'''Museums:''' [[Musee dOrsay|Musée d'Orsay]], [[Rijksmuseum]], [[Kunsthistorisches Museum]], [[Museo del Prado]]
 
'''Artists:''' [[Claude Monet]], [[Vincent van Gogh]], [[Johannes Vermeer]], [[Diego Velazquez|Diego Velázquez]], [[Gustav Klimt]]
 
'''Artworks:''' [[Water Lilies]], [[Starry Night Over the Rhone|Starry Night Over the Rhône]], [[The Milkmaid]], [[Las Meninas]], [[The Kiss]], [[The Art of Painting]]
 
'''Exhibitions:''' [[Impressionist Masters]], [[Dutch Golden Age Highlights]]
 
'''Cities:''' [[Paris]], [[Amsterdam]], [[Vienna]], [[Madrid]]
 
'''Overview:''' [[Museum Collection]]
 
== Demo Pages ==


* Simple page with automatic infobox and edit form: [[NeoWiki]], [[ProWiki]]
* Simple page with automatic infobox and edit form: [[NeoWiki]], [[ProWiki]]
* Subject with relations: [[Professional Wiki]]
* Subject with relations: [[Professional Wiki]]
* Multiple subjects per page: [[F_capture_actuals]], [[ACME Inc]]
* Multiple subjects per page: [[ACME Inc]]
* Wikibase Statement emulation: [[Berlin]]
* Wikibase Statement emulation: [[Berlin]]
* Displaying data from other pages: [[Company Infoboxes]]
* Displaying data from other pages: [[Company Infoboxes]]
* [[Reactive UI example]]
* [[Reactive UI example]]
* [[Cypher query examples]]
* [[Lua examples]]
=== Schemas ===
Schemas allow you to define the structure of your data. For instance, you can define that a Employee has a
compensation in EUR with a value between 0 and 1000000.


A finished version of NeoWiki would contain a dedicated editor for creating and modifying schemas. For now, you have
== Schemas and Layouts ==
to edit the JSON directly.


You can create a new employee by doing to its schema page and clicking "create new employee" at the top. A finished
'''Schemas''' define the structure of your data. For instance, you can define that an Employee has a compensation
version of NeoWiki would allow you to create new subjects directly from the Visual Editor when editing a page.
in EUR with a value between 0 and 1000000.


* [[Schema:Company]]
* [[Schema:Company]], [[Schema:Product]], [[Schema:Employee]]
* [[Schema:Product]]
* [[Schema:Museum]], [[Schema:Artist]], [[Schema:Artwork]], [[Schema:Exhibition]], [[Schema:Attendance]]
* [[Schema:Employee]]
* [[Special:Schemas|View all schemas]]
* [[Schema:Everything]]
* [{{fullurl:Special:AllPages|from=&to=&namespace=7474}} View all schemas]


== How To ==
'''Layouts''' customize how Subjects are displayed by selecting which properties to show and in what order.


* '''Create a new Schema''': Create a new page with the prefix "Schema:" and the name of your schema. For instance, "Schema:MyExample". Creating and editing schemas requires elevated permissions. We can turn this off.
* [[Layout:CompanyOverview]]
* [[Special:Layouts|View all layouts]]


Technical
== REST API Endpoints ==


* '''View or edit Subject JSON directly''': NeoWiki can be used without understanding what JSON is, and the JSON is not normally shown. However, as a technical person, you can access it via the REST API or the "View or edit JSON" link at the bottom of pages with Subjects. The latter is a development utility that would not be available on production wikis.
An auto-generated OpenAPI 3.0 spec describes the REST API:
* '''View the data in Neo4j''': Head over to https://neo.professional.wiki:7474/


== REST API endpoints ==
* [{{SERVER}}{{SCRIPTPATH}}/rest.php/specs/v0/module/- NeoWiki OpenAPI spec] — <code>/rest.php/specs/v0/module/-</code>
* [{{SERVER}}{{SCRIPTPATH}}/rest.php/specs/v0/discovery Module discovery] — <code>/rest.php/specs/v0/discovery</code>


Example URL: https://neo.professional.wiki/w/rest.php/neowiki/v0/subject/12345678-0000-0000-0000-000000000001
Example endpoint URL: <code>{{SERVER}}{{SCRIPTPATH}}/rest.php/neowiki/v0/subject/s1demo4sssssss1</code>


=== Read endpoints ===
=== Read Endpoints ===


* <code>GET /neowiki/v0/subject/{subjectId}</code> Gets the JSON definition of a subject
* <code>GET /neowiki/v0/subject/{subjectId}</code> Gets the JSON definition of a subject
* <code>GET /neowiki/v0/schema/{schemaName}</code> Gets the JSON definition of a schema
* <code>GET /neowiki/v0/schema/{schemaName}</code> Gets the JSON definition of a schema


=== Write endpoints ===
=== Write Endpoints ===


These require a CSRF token, first obtained via <code>api.php?action=query&format=json&meta=tokens&type=csrf</code>
These require a CSRF token, first obtained via <code>api.php?action=query&format=json&meta=tokens&type=csrf</code>

Latest revision as of 22:46, 24 April 2026

Welcome to the NeoWiki demo wiki!

NeoWiki turns your wiki into a collaborative graph database by letting you store and query structured information. Information is stored in versioned document form inside wiki pages. The latest version is also stored in graph databases, via which it can be queried.

NeoWiki is in the experimental proof-of-concept phase. It is not production-ready, public interfaces will change, big structural changes will happen, and key functionality is still missing.

This demo exists to gather feedback to inform further development.

You can find technical documentation in the NeoWiki git repository. You can also view the issue tracker or contact Professional Wiki (the maintainer of NeoWiki).

Discover NeoWiki Step by Step

Terminology is explained in the glossary.

As a reader:

As an editor:

  • Edit a Subject: Professional Wiki (login required)
  • Edit a Schema: either via a Subject using it, i.e. Professional Wiki, or directly on the Schema page, i.e. Schema:Company
  • Create a Subject: Create a new page with any content, then click "Create subject" in the NeoWiki section of the sidebar.

As a developer:

European Museums

A dataset of European museums, artists, and artworks showcasing cross-schema relations and rich property types.

Museums: Musée d'Orsay, Rijksmuseum, Kunsthistorisches Museum, Museo del Prado

Artists: Claude Monet, Vincent van Gogh, Johannes Vermeer, Diego Velázquez, Gustav Klimt

Artworks: Water Lilies, Starry Night Over the Rhône, The Milkmaid, Las Meninas, The Kiss, The Art of Painting

Exhibitions: Impressionist Masters, Dutch Golden Age Highlights

Cities: Paris, Amsterdam, Vienna, Madrid

Overview: Museum Collection

Demo Pages

Schemas and Layouts

Schemas define the structure of your data. For instance, you can define that an Employee has a compensation in EUR with a value between 0 and 1000000.

Layouts customize how Subjects are displayed by selecting which properties to show and in what order.

REST API Endpoints

An auto-generated OpenAPI 3.0 spec describes the REST API:

Example endpoint URL: https://neowiki.dev/w/rest.php/neowiki/v0/subject/s1demo4sssssss1

Read Endpoints

  • GET /neowiki/v0/subject/{subjectId} Gets the JSON definition of a subject
  • GET /neowiki/v0/schema/{schemaName} Gets the JSON definition of a schema

Write Endpoints

These require a CSRF token, first obtained via api.php?action=query&format=json&meta=tokens&type=csrf

  • POST /neowiki/v0/page/{pageId}/mainSubject Creates a new main subject
  • POST /neowiki/v0/page/{pageId}/childSubjects Creates a new child subject
  • PATCH /neowiki/v0/subject/{subjectId} Updates a subject
  • DELETE /neowiki/v0/subject/{subjectId} Deletes a subject

These endpoints are designed for the NeoWiki frontend. They are not a complete general purpose API yet.