How to share things in Mentat

I keep thinking about how to enable support for sharing in Mentat.

This topic is complicated by the nature of what Mentat is (a semi-structured database) and that it has support for scripting and dynamic values baked in. This is security problem central (think Word macros only worse).

In the first place my intention is that sharing should be between individuals and at a granular level.

My current plan is to base this on a topic-based pub/sub platform like Apache Apollo. You can publish Things to a topic and receive Things via a topic (filtered by those you have given approval to).

For example you create a NetQuestion thing that poses a question you would like answered and it gets published (perhaps automatically be a workspace agent) to a topic.

Others connected to you receive the question and possibly one of their own agents looks for related Things in their database to assemble a NetResponse that they can publish. This also gets published to the topic.

I’m just brainstorming what I have in mind here - a way of sharing at a more granular level than the file and around an intent. And to people interested in similar topics to us.

What do you make of this idea?


A Thing is a named dictionary of attributes. Attributes range from things like numbers, strings, through to URLs and scripts.
An Agent is a type of Thing which has attributes specifying the events it hooks into and the Task that runs when a hook receives a compatible event.
A Task is a script (Javascript) that can use the Mentat API to - for example - create other Things.
A Workspace is a logical grouping of Things although Things can also contain other Things. A Workspace is kind of a Desktop.

This seems like a decent starting point.
Boringly I think problems will only become apparent once more than one person has stuff in a Mentat and you can see if the NetResponse works.

I think you are right in that there’s probably only so much abstract thinking that can be done about such a topic and a lot will come out via people using it (or not!)

My current plan is to release an alpha v1.0 in March of this year. That may include some vestigial sharing functions that we can start to play with.

Thanks for the thoughts.