-
Notifications
You must be signed in to change notification settings - Fork 18
Relative Keywords
What if each of us could name things in the way that makes sense to us, but still communicate on a global scale.
- If we can create a less expressive language between edn and full on clojure we can create a smoother transition from data to code which will be easier to port between languages. If we want simple rather than complex we need to use the language that has the right level of expressivity for the task at hand instead of only choosing between pre-parsed data and full turing completeness. Pure functions are a good example here, but we want to get a similar effect to monads without their rigidness (probably leveraging spec in some way)
- Namespaced edn using relative keywords could map into a complete graph based filesystem which could map directly to datoms
Namespaced keywords/symbols can be thought of as paths
:example.com/word => com -> example -> word
As can basic uri's
example.com/ns/word => com -> example -> ns -> word
Instead of creating a single Directed Acyclic Graph (DAG) create a complete naming graph. It is then straightforward to resolve two sources using relative naming schemes by choosing an objective naming node. This can allow different groups and individuals and contexts to use different naming schemas, but still refer to the same objects
There is no root node '/' only relative naming. So a user would have a link to './system' or './linux' or './$' or whatever and that would be how they access the root directory. Every folder in the './system' would have a link './~'. Then two systems could be put together using whichever alias schema makes since and the entire graph of connections would be explicit. You could use such a filesystem to navigate a database and also link two databases with automatic renaming