User guide


Installation instructions

Back to top

To be added...

[Information about how to install, i.e. refer to the Download page as well as the github account]

Back to top

Modules: Core, CLIconsole, threadleR

Back to top

To be added...

[Information about the overall architecture: Threadle.Core is a core dll, CLIconsole CLI console frontend, threadleR frontend on CLIconsole.]

Threadle.Core

[Describe what Core contains: Models, Methods, Processing, etc.]

Threadle.CLIconsole

[Describe what CLIconsole is: CLI-based frontend running Core, takes CLIconsole commands on input, converts to methods in Core. CLIconsole also has variable space: stores created networks etc. here (i.e. not stored in Core).]

Mention that CLIconsole (with Core) is what most users want - thus preinstalled binaries, build commands etc. However, Core can indeed be used stand-alone, included as dll or embedded as project in existing C# project.

threadleR (R library)

[Describe what threadleR is: frontend to CLIconsole. R library starting CLIconsole and exposing various R functions that sends CLI commands to CLIconsole, receives and translates return values. Easier integration with R. Mention NativeAOT: it is not that (yet).]

Back to top

Quick-start basics

Back to top

[Provide a quick-start guide on how to work with Threadle. Generate nodeset, network, layers, node attributes; add nodes, edges, edge attributes etc. Load and save.]

Back to top

Data structures

Back to top

[Intro to internal data structures: Nodesets (and internal nodal attributes), and Networks (and internal relational layers). Network: points to a Nodeset. Several Network can point to the same Nodeset; Nodeset independent (unaware of Networks).]

Nodesets

Back to top

[Describe what a Nodeset is: storing nodes, essentially collection of unsigned integers. Also manages node attributes. Saving/loading: in essence a data table. In the human-readable format (tsv file): a data table (slightly different column headers). Internally: nodes with and without attributes stored differently.]

Back to top

Nodal attributes

[Describe node attributes: node attribute definition manager internal to Nodeset. Through nodeset objects: define (and undefine) node attributes: name and value type. Four value types: int, float, bool, char (no strings). Setting, getting, removing node attributes: methods in Nodeset (actual attribute manager private).]

Back to top

Networks

[Describes the Network data structure. Each network refers (one-way) to a nodeset. Networks has layers of relations: either 1-mode or 2-mode. For 1-mode layers: binary or valued, directional or symmetric, with or without selfties. Adding, removing edges, hyperedges, affiliations done by calling Network object (so layers private inside).]

Back to top

Relational layers

[Describe layers in more details. Two types: 1-mode and 2-mode. 2-mode: collection of hyperedges, i.e. where each hyperedge represents an affiliation (aka event) in a bipartite/2-mode network. Methods for checkedge and get edge in network for layer: different implementations in 1-mode vs 2-mode. 2-mode networks: never projected, still, clever way to instantaneously obtain all node alters and check edges between nodes; values as if this layer was projected.]

Back to top

File IO: Load, save, import

[Info on loading and saving: implemented in Core, accessible from CLIconsole.]

Back to top

User settings

[Info on user settings: node cache, check multiedges, store outgoing etc. also verbose or not]

Back to top

Software architecture and class diagram

[Info about technical software architecture and class diagram; more dev-oriented.]

Back to top