Skip to content

Instantly share code, notes, and snippets.

@tylershuster
Last active November 22, 2020 01:28
Show Gist options
  • Save tylershuster/4e3195c952495e9746e53937b5f73a06 to your computer and use it in GitHub Desktop.
Save tylershuster/4e3195c952495e9746e53937b5f73a06 to your computer and use it in GitHub Desktop.
Notes on @loganallenc's graph store
|%
+$ 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