Extend the built-in Wolfram Knowledgebase with your own entities structured, computable representations of knowledge.

Create a basic entity store

Make an entity store of pets and their birth dates:

Out[1]=

Get Fidos birth date:

Add your entity store to the list of searched entity stores

To make the entities in your entity store behave like built-in entities, register the entity store:

Now the entities in your entity store work just like the built-in ones:

Add entity classes to your store

You may want to define classes that your entities belong to. For example, add classes Dogs and Cats to the Pet entity store:

If you change an entity store, you need to unregister the old store and register the new one in its place:

Find out what classes of pets there are:

Find out what dogs there are:

Add computed properties to your store

An entitys properties can either be specified in its property list or be computed from those properties. Add an Age property that is computed from a pets birth date:

Unregister the old store and replace it with the updated one:

Find Felixs age:

  • Properties can be grouped into classes with a "PropertyClass" entry.

Change values in your store

You can change values in an entity store by assigning to an entity property. Here is Fidos birthdate:

In[13]:=
Click for copyable input
Out[13]=

Change the birthdate:

Out[14]=

The birthdate has been updated in the entity store:

  • You do not have to re-register an entity store when you change the values of entities within it.

Add entities to your store

To add a new entity to an entity store, assign a value to one of its properties:

The new entity has been added to the entity store:

  • You do not have to re-register an entity store when you add entities to it.

Add more types to your store

An entity store can have more than one type. If there is more than one, enclose the types in a list:

Unregister the old store and replace it with the updated one:

Make a map showing the location of the big oak:

In[20]:=
Click for copyable input
Out[20]=

Notes

Add labels to entities and properties to control how they are displayed. Without a label, an entity is displayed using the entity name:
In[21]:=
Click for copyable input
In[22]:=
Click for copyable input
Out[22]=
If an entity has a label, the label is displayed instead of the entity name:
  • Labels can be any expressions at all, including images or graphics.
Entity stores can be updated by assigning values to their elements.
In[25]:=
Click for copyable input
Out[25]=
In[26]:=
Click for copyable input
Out[26]=
In[27]:=
Click for copyable input
Out[27]=
In[28]:=
Click for copyable input
Out[28]=
In[29]:=
Click for copyable input
Out[29]=