Pokes
Graph Store can be poked with a graph-update, which can:
Add and remove a graph
-
[%add-graph =resource =graph mark=(unit mark) overwrite=?] -
[%remove-graph =resource]
Add and remove a node
-
[%add-nodes =resource nodes=(map index node)] -
[%remove-posts =resource indices=(set index)]
Add and remove signatures
-
[%add-signatures =uid =signatures] -
[%remove-signatures =uid =signatures]
Add and remove tags
-
[%add-tag =term =uid] -
[%remove-tag =term =uid]
Archive and unarchive a graph
-
[%archive-graph =resource] -
[%unarchive-graph =resource]
Manually process an update log on a resource
[%run-updates =resource =update-log]
Scries
What follows is a summary of the scries available in graph-store.
Export State
Obtain a vase of the current state of graph-store as a noun.
- Path:
/x/export - Output Type:
network:store
Fetch keys
Fetch the resources of all graphs that graph-store is currently tracking.
- Path:
/x/keys - Output Type:
update:store,%keys
Fetch tag queries
Fetch the available tag queries from graph-store.
- Path:
/x/tag-queries - Output Type:
tag-queries
Fetch tags
Fetch all available tags from graph-store.
- Path:
/x/tag-queries/tags - Output Type:
(list term)
Fetch the update log by resource
This returns the full update log for the graph associated with the given resource.
- Path:
/x/update-log/[ship]/[name] - Inputs
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource.
- ship (
- Output Type:
update-log:store
Fetch time of the latest log entry by resource
Fetch the time of the latest log entry by resource, if the update-log for the given resource exists.
- Path:
/x/update-log/[ship]/[name]/latest - Inputs
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource.
- ship (
- Output Type:
(unit time)
Fetch a subset of the update log
- Path:
/x/update-log/[ship]/[name]/subset/[start]/[end] - Inputs
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource. - start and end (
@da) - All logs after start and before end are to be included in the result.
- ship (
- Output Type:
update-log:store
Fetch a specific graph by resource
Returns the full graph for a given resource.
- Path:
/x/graph/[ship]/[name] - Inputs:
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource.
- ship (
- Output Type:
update:store,%add-graph
Request the mark of a graph
Returns the mark associated a given graph, if one exists.
- Path:
/x/graph/[ship]/[name]/mark - Inputs:
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource.
- ship (
- Output Type:
(unit mark)
Request a subset of the graph
Returns a subset of nodes from a graph, with or without descendants, optionally filtering for ones that fall between the start and end indexes.
- Path:
/x/graph/[ship]/[name]/subset/[mode]/[start?]/[end?] - Inputs:
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource. - mode (
?(%kith %lone)) -%kithto include descendants,%loneto exclude. - start and end (
(unit atom)) - Atoms used to start and end the subset. If these are unable to be parsed, the subset will start at the smallest node.
- ship (
- Output Type:
update:store%add-nodes
Check if node exists
Returns a flag, %.y if the node exists and %.n otherwise.
- Path:
/x/graph/[ship]/[name]/node/exists/[index+] - Inputs:
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource. - [index+]
(list atom)- The index of the node to check. The index should be appended to the path as a list.
- ship (
- Output Type:
flag
Request a node
Returns an %add-nodes update containing the node that was requested.
- Path:
/x/graph/[ship]/[name]/node/index/[mode]/[index+] - Inputs
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource. - mode (
?(%kith %lone)) -%kithto include descendants,%loneto exclude - [index+]
(list atom)- The index of the node being requested. The index should be appended to the path as a list.
- ship (
- Output Type:
update:store%add-nodes
Request a node's children
Returns a subset of a node's children, with or without descendants, optionally filtering for ones that fall between the start and end indexes.
-
Path:
/x/graph/[ship]/[name]/node/children/[mode]/[start?]/[end?]/[index+] -
Inputs
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource. - mode (
?(%kith %lone)) -%kithto include descendants,%loneto exclude. - start and end (
(unit atom)) - Atoms used to start and end the subset. If these are unable to be parsed, the subset will start at the smallest node. - [index+]
(list atom)- The index of the node being requested. The index should be appended to the path as a list.
- ship (
-
Output Type:
update:store%add-nodes
Request a node's siblings
- Path:
/x/graph/[ship]/[name]/node/siblings/[direction]/[mode]/[count]/[index+] - Inputs
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource. - direction (
?(%older %newer %oldest %newest))-%newer- Load the siblings with keys larger than the requested node.%older- Load the siblings with keys smaller than the requested node.%newest- Load the siblings with the largest keys.%oldest- Load the siblings with the largest keys.
- mode (
?(%kith %lone)) -%kithto include descendants,%loneto exclude. - count (
atom) - A limit to the number of nodes to return. - [index+]
(list atom)- The index of the node being requested. The index should be appended to the path as a list.
- ship (
- Output Type:
update:store%add-nodes
Request a node's firstborn child
-
Path:
/x/graph/[ship]/[name]/node/firstborn/[index+] -
Inputs:
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource. - [index+]
(list atom)- The index of the node being requested. The index should be appended to the path as a list.
- ship (
-
Output:
update:store%add-nodes
Request nodes, depth first
-
Path:
/x/graph/[ship]/[name]/depth-first/[count]/[start] -
Mark:
%graph-update-3 -
Input
- ship (
ship) - The ship of the resource. - name (
@tas) - The name of the resource. - count (
(unit atom)) - A limit to the number of nodes to return. - start (
(unit atom)) - The index fragment to start at.
- ship (
-
Output Type:
update:store%add-nodes
Agent State
The following is the definition of the agent state, known as network.
+$ network
$: =graphs
=tag-queries
=update-logs
archive=graphs
~
==
Briefly,
graphsrepresents all graphs that graph store is aware of an is storing data about.tag-queriesis how graph store implements its tagging system, and uses it to keep track of associations between tags and the respective index.update-logsis where graph-store stores the update-log that backs each graph, keyed by resource.archiveis where graph-store stores archived graphs. These are graphs which can no longer be updated through%run-updates.
For more information on these types, please take a look at the data structure overview.