Introduction to Neolace

This guide provides a brief overview of Neolace: what it is, and what it does.


Neolace is a platform for collaboratively building a collection of knowledge. Commons terms for this sort of platform are "knowledge graph", "knowledge base", or "semantic knowledge base", although those terms can also have different meanings.

If you've used a wiki like Wikipedia or Confluence before, the interface of Neolace should look familiar. Like a wiki, every Neolace site is organized into a set of pages called entries that are inter-linked. However, as you'll read below, Neolace offers some powerful features that wikis do not have.


Every Neolace Site is primarily a collection of entries. Each entry usually corresponds to knowledge about some "thing" in the real world, but an entry can also represent a piece of content, like a page of text or an image. The page you are reading right now (GIntroduction to Neolace) is an entry.

Each Entry has Properties; for example an entry about "Canada" would state that it has a "Total Area" of "9,984,670 km2" - in this case, "Total Area" is the Property and "9,984,670 km2" is the Property Value. Property Values can also be relationships; in the Canada example, it could have the "Capital" property with the value "Ottawa, Ontario" where "Ottawa, Ontario" is another entry.

Every Entry is of exactly one Entry Type, and its Entry Type determines which Properties it can have. The Entry Type of this Entry you are reading right now is Guide. Each Entry can also have Content Features, depending on its Entry Type. Content Features include Article Text, Image, Hero Image, and Files. The most important one is Article Text, which gives each entry a long-form article in Markdown format. The text you are reading right now is the Article Text of GIntroduction to Neolace, because this Entry's Entry Type (Guide) specifies that every Guide Entry should contain Article Text.

Every Neolace Site has a Schema, which determines what Entry Types and Properties are allowed, and how they relate to each other.

Say goodbye to inconsistencies

With a traditional wiki, whenever something changes (e.g. a company releases their earnings for the year), many different pages might be outdated, and someone needs to manually go through each page ("MegaSoft Corp", "List of Large Software Companies", "Companies with Upcoming Earnings Reports", etc.) and enter the latest data. If this tedious process is done imperfectly, it results in inconsistencies or leaves some pages out of date.

Neolace avoids this problem using lookups. Each fact is only entered into Neolace once, and anywhere else that needs to reference that fact does it using a "lookup" to automatically insert the current value into the document. When the original fact is updated, every other entry that uses a "lookup" for that fact will be instantly updated. For example, on the MegaSoft Corp entry it might list their revenue for the year as "$12 billion". On another page, like "List of Large Software Companies", the information about companies and their earnings is generated by a lookup, which essentially tells Neolace to "find the latest information about software companies, and list the current revenue numbers of the largest ones." Thanks to lookups, Neolace always shows the latest information on every entry, and pages like "List of Large Software Companies" never have to be manually updated.

Get more from less

Relationship properties between Entries in Neolace can be meaningful ("semantic"), and Neolace can automatically infer facts, properties, and relationships from those meaningful relationships. For example, if you have an Entry for "Car" that says "has 4 wheels" and you have an entry for "Tesla Model S" which says it is a car, then Neolace can tell you that the Tesla Model S has 4 wheels, despite the fact that nobody entered that fact in directly.

Collaborate effectively with a change review process

Neolace has a change review process, which means that any additions or edits to the site must first be reviewed by an editor or authorized user before they are published. This is similar to the "pull requests" feature on GitHub, which revolutionized collaborative software development.

It works like this: first a user clicks "Edit" and makes changes to an Entry. Then, they publish those changes as a Draft. The Draft is then reviewed by one or more editors or other users. If they request changes, the original user must make those changes. Once the draft is ready, it is approved and published. Then everyone will see the changes live on the site.

This workflow has a number of advantages:

  1. It allows sites to accept contributions from the general public, but still review them for quality or accuracy before publishing.
  2. Even for edits from site staff, it provides a built-in workflow for reviewing work before it is published, which is often a requirement.
  3. It allows re-organizing many Entries all at once; a single Draft can contain changes to many entries and even to the Site's Schema.

Stay in sync with other systems

Neolace isn't just designed for humans to use. Everything in Neolace is easily machine-readable. What's more, Connectors can be used to import read-only data from other systems. You can connect a Neolace site to other databases, documentation, and more, and it will automatically keep Entries up to date with relevant content from those systems.

© Copyright 2022 MacDonald Thoughtstuff Inc. All documentation text and multimedia on this site are licensed under the CC BY-SA 4.0 license.