A Rust library for managing theses backed with trove
Each thesis is either text or relation between two existing theses
- tagging
- aliasing
- plain text commands processing
- graph generation
- optional alias
- tags
- content: text or relation
Thesis identifier is 16 bytes fully determined by it's content (hash of text for text content and hash of binary representation of relation structure for relation content, hash function used is xxhash128) and represented in text and commands as url-safe non-padded base64 string, e.g. ZqavF73LC9OQwCptOMUf1w
Sequence of one or more non-whitespace characters, e.g. (R-r).0
Word characters sequence, e.g. absolute_truth
- raw text with references inserted in it, e.g.
[(R-r).0] относительно истинно
Thesis identifier or alias surrounded with square brackets, e.g. [lvKjiQU1MkRfVFyJrWEaog], [релятивизм]
Cyrillic/Latin text: letters, whitespaces and punctuation marks ,-:.'"
- thesis identifier from which it is
- relation kind
- thesis identifier to which it is
Supported relations kinds list is set in Sweater configuration file, e.g. see src/test_sweater_config.yml, so you can specify and use any relations kinds you like
An English words sequence without punctuation, e.g. may be, therefore
If there is more then one command to parse, they must be delimited with two or more line breaks, e.g. see src/example.txt
Two lines:
+optionally followed by space and alias for this thesis- text
e.g.
+ (R-r).0_true_relatively
[(R-r).0] относительно истинно
Four lines:
+optionally followed by space and alias for this thesis- thesis identifier or alias of thesis from which this relation is
- relation kind
- thesis identifier or alias of thesis to which this relation is
e.g.
+
(R-r).d
therefore
(R-r).0
Two lines:
-- thesis identifier or alias of thesis to remove
e.g.
+
(R-r).d
Note that this will also remove all related and referencing theses
Three or more lines:
#- thesis identifier or alias of thesis to which add tags
- tag to add
- ...
e.g.
#
(R-r).0
total
truth
Three or more lines:
^- thesis identifier or alias of thesis from which remove tags
- tag to remove
- ...
e.g.
^
(R-r).0
total
truth
Two lines:
+followed by space and alias to set for this thesis- thesis identifier or current alias of thesis for which to set alias from first line
Thesis can have no alias or one alias, so setting alias for already aliased thesis will replace it's alias. Internally theses are reference and relate to each other using theses identifiers, so replacing aliases won't break anything