Inkw.el (Intermediate Knowledge in emacs)
Install with Pen | |
---|---|
Pen.el on GitHub | https://github.com/semiosis/pen.el/ |
Tutorial | https://mullikine.github.io/posts/pen-el-tutorial/ |
Inkw.el | https://github.com/semiosis/ink.el |
- Moire’s blog on Quantifying Curation
- https://generative.ink/posts/quantifying-curation/
Introducing Inkw.el (Ink/Inkwell)

The purpose of Inkw.el
is to encode within
its text properties information about its own
provenance. What was the intended meaning
behind parts of the text? Annotations made by
the writer are encoded in Ink. Where did the
text originate? Data of a LM’s influence is
also included.
It was created for Pen.el
. It is generated
when you generate text with Pen.el
in order
to encode how the text was generated.
Inkw.el
is used by Pen.el
when
interpretation of the meaning of text is
required. Knowledge of which LM has generated
a given text snippet, the language of the text
(understood by said model) and the context
within that language are all important when
interpreting the meaning of that text, and it
is for that reason that tasks and metaprompts
may employ the ink
format.
Demo
You can see the text highlighted if it has been generated, and the text contains metadata on how it was generated. You can right click the text to go to the prompt that generated it, for example.
The file format .ink
automatically generates
a view buffer running ink-source-mode
.
ink-mode
and ink-source-mode
work in
tandem and try to remain in sync with each
other when either is saved. Saving a .ink
file will record all of its metadata.
Further explanations
Quantifying curation is also important. After
using many different LMs to assist in creating a
document, the text may be analysed by reading
information contained in the ink
format.
This is a text format that is designed for easy editing via emacs, like normal text.
It is loaded and emacs text properties encode the state of the buffer, plus functions for regenerating text.
The prototype will be in emacs lisp using text properties.
- This is a document format that contains and evaluates to the document as it is meant to be viewed.
- It also contains annotations for the transformations, inputs and outputs of those transformations.

Example
Here is some ink text as the value for the
task:
key in a yaml file.
The text contains information on the engine, language and topic required to interpret the meaning of the task.
|
|
Goals
- Encode state as well as metadata about what model generated the text.
- Retain information on the completion functions used to generate the document so parts can be re-evaluated at will.
- Become a file format for encoding meta-documents.
- A meta-document is like a template.
- YASnippet compatibility (may be used as snippets).
Example prompt
Here, the task is encoded in Ink.
If (in future) the prompt disappears, the task will remain and it will be important to associate the task with a LM so the user knows what the task means.
|
|