Last active
November 22, 2020 01:28
-
-
Save tylershuster/4e3195c952495e9746e53937b5f73a06 to your computer and use it in GitHub Desktop.
Notes on @loganallenc's graph store
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|% | |
+$ resource [=ship =term] :: A resource is a ship and a term. | |
+$ resources (set resource) :: Resources are a set of resources | |
:: | |
+$ network :: A network is like a social network...think subreddits or twitter lists or are.na collections. A node may occupy many positions in a network by being under multiple graphs | |
$: graphs=(map resource (unit graph)) :: A list of resources (like [~zod %rants]) to a graph (a map of entities to nodes). Like on ~marpem/%permaculture, ~radbur-sivmus has a collection of saved posts about soil health | |
tags=(set term) :: tags, which are the terms used in the network (a list of communities, perhaps, or more generally the way people categorize things on the network) | |
tag-queries=(map term resources) :: tag-queries are terms mapped to resources. So %my-posts = (set resource), or /r/permaculture = (set resource) | |
== | |
:: | |
+$ entity :: An entity is | |
$% [%ship =ship] :: either a single ship | |
[%ships ships=(set ship)] :: or a set of ships. Like multisig, or a group | |
:: [%ring ...] | |
== | |
:: | |
+$ graph (map entity (unit nodes)) :: A graph is entities mapped to nodes (a ship or multiple ships related to a time series of nodes) | |
+$ nodes (ordered-map time (unit node)) :: A set of nodes maps timepoints to nodes that may or may not exist | |
:: | |
+$ index (list time) :: An index is a list of times. Facilitiates traversal of node timelines | |
+$ uid [=resource =entity =index] :: A uid is the base identifier that places content within a community (resource), on an entity, and associates it with one or more times (created, updated, etc) | |
+$ hash @uvI :: a UUID that allows deep linking to a node without knowing its community or anything else | |
+$ signature ... :: attestation of action (approval, viewing, creating) | |
+$ signatures (set signature) :: set of attestation | |
:: | |
+$ node :: A node is the most common unit of content, but not the most basic | |
$: author=ship :: a node has one author | |
=hash :: and a hash, a UUID | |
=index :: the index specifies a list of times (created, updated, &c). Not sure how to indicate what those times represent | |
=signatures :: a node can be signed by one or more people | |
contents=(list content) :: a node can have one or more pieces of content | |
replies=(unit nodes) :: nodes can be replies to other nodes | |
== | |
:: | |
+$ content | |
$% [%text =cord] :: the text content of the 'content' - the body, or the caption | |
[%url =cord] :: A link, such as to a picture (think posting pictures on FB). | |
[%reference =uid] :: A reference to another piece of content (think retweeting/sharing) | |
:: [%cage =cage] | |
== | |
:: | |
+$ action | |
$% [%add-network =network] :: create a network on your ship | |
[%remove-network ~] :: remove it | |
:: | |
[%add-graph =resource =graph] :: adds a resource to a graph | |
[%remove-graph =resource] :: a resource can only be part of one graph? | |
:: | |
[%add-tag =term =resources] :: Tags a set of resources with a term | |
[%remove-tag =term =resources] :: undoes | |
:: | |
[%add-nodes =resource =entity nodes=(unit nodes)] :: Adds zero or more nodes as a resource to an entity? | |
[%remove-nodes =resource =entity] :: removes nodes given a resource and entity | |
:: | |
[%add-node =uid =node] :: adds a node given a uid. The uid says what resource (community), entity (owner), and index (list of times) are associated with the node | |
[%remove-node =uid] :: removes a node by its uid | |
:: | |
[%add-signatures =uid =signatures] :: signs content by uid | |
[%remove-signatures =uid =signatures] :: unsigns specific signatures by uid | |
== | |
:: | |
+$ update action :: alias | |
-- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment