| server | ||
| .gitignore | ||
| readme.md | ||
wgu
wgu (weird graphing utility) is a simple and accessible data/link analysis tool, equipped with a graph database using a modular object format.
it's made by queernerds, for queernerds, for protecting queernerds and queernerd communities. other use cases include investigative journalism, documentation and archivism, ARGs & treasure hunts, or anything that involves making sense of computer data.
how does this work?
wgu & the modular object format are specifically designed to be extremely versatile, and well, modular. the simplest way to think of wgu is like microsoft excel, except that data can be plotted to a graph (or to charts), if you choose.
this means that you can see how data connects and morphs (via transforms or functions) into new data.
object instances
almost all data within wgu are object instances. these are stored as json object literals while at rest, that serealize into the struct wgu::ObjectInstance.
data within object instances is categorized based on the data's origin (whether it's provided as the object's base input, calculated locally, or pulled in from elsewhere).
the inner structure of these categories depends on the object instance's object_type, and is defined in the object's template. alongside these categories, objects also contain metadata like logs, hashes, and timestamps
modularity & object templates
modules can expose object templates as TOML strings (wgu::modules::ModuleItem::Template, serealized into wgu::ObjectTemplate), and rustlang functions to validate inputs (... ModuleItem::Validator), or to calculate properties / make new objects (... ModuleItem::Function).
object templates can define several options for each property:
transforms: uses this property as an input of a new objectsubobjects: creates a parent-child relationship between this and at least one more object, based on the properties sharing a value and their transformationsconditions: values other properties need to hold for this property to be validduplicates: makes the property act as an array
for more information, see the wiki!
timeline
hopefully, soon?
i'll try my best,,,
license
i'll probably use agpl3 for all versions before v1.0.0, and hl3-full after that.