The Graph Designer allows you to create, modify, and view the graph for a Resource Model or Branch. You are currently editing a {% if graph.isresource %}Resource Model{% else %}Branch{% endif %}, so note that the Graph Manager functions differently when editing a {% if graph.isresource %}Branch{% else %}Resource Model{% endif %}.
The interface is split into three sections, as shown in the image below.
Node List - This panel lists all of the nodes present in this {% if graph.isresource %}Resource Model's{% else %}Branch's{% endif %} graph. You can select a node in the Node List to open the Node Manager.
Graph This panel displays all nodes and their connections (called "properties"), showing the full branching structure. Every Graph will have a "top node" in the center, to which all other nodes will be connected. You can select a node in the Graph to open the Node Manager.
Node Manager This is where the action takes place. Within this panel you will be able to build the graph by adding new {% if graph.isresource %}Branches{% else %}nodes{% endif %}, or refine it by modifying nodes that already exists. Once you have selected a node, the Node Manager settings tab will look something like this:
Node Name - Used to identify this node within the graph interface. In other parts of app, custom labels can be used in place of this name. Node names need not be unique across a graph, but it will make everything easier if they are.
CRM Class - (only present if this {% if graph.isresource %}Resource Model{% else %}Branch{% endif %} uses an ontology) This setting defines what ontological class of data will be collected by this node. To learn more, read Ontologies in Arches.
Relationship from ... - (only present if this {% if graph.isresource %}Resource Model{% else %}Branch{% endif %} uses an ontology) Define what relationship this node has with its parent node (the one directly above it in the graph branch). A verbalization of your choice is shown below this setting.
Data type - Choose what type of data will be collected in this node. See below for more information.
Make Sub-Card - NEEDS TO BE UPDATED - when the card collection/card terminology is fully implemented. -----OLD This setting defines data collection grouping for this node. Read more about what this means in the Cards documentation.
To build the graph of a Branch, your main course of action will be adding nodes, naming them, and defining their data type. If your Branch uses an ontology, you'll also need to define the CRM class and property of each new node. When choosing classes and properties, the interface will automatically enforce preloaded ontological rules.
Below you can see a simple example of adding a node to a graph.
When editing a Resource Model's graph, you will be adding entire Branch's to the top node of the graph (the one in the middle). By adding Branches (instead of individual nodes) This encourages consistency between Resource Models by allowing you to reuse a single Branch many times.
As shown below, you must select the top node and then use to add a Branch. Once you have added a Branch, you may fine-tune the settings of its descendant nodes if desired. Note that any changes you make here will not be applied back to the original Branch.
Choosing a node's Data Type is the first step toward defining how that information will be collected. A few data types are intuitive (string
, number
, date
), but here's an explanation of the less familiar types.
geojson-feature-collection
Stores geographic coordinates, and is used to show a resource on the map.
concept
Constrains the node to store one of a series of choices provided by the Reference Data Manager. This data functionally operates like a dropdown list or pick list. You'll further be prompted to choose a Concept Collection, where you'll choose which series of concepts to use.
concept-list
Same as above, but the user will be able to select multiple concepts.
domain-value
Like 'concept', choose this to present the user with a dropdown menu. Unlike 'concept' this dropdown menu will not come from your system-wide controlled vocubulary, but from a list of values that you define here.
domain-value-list
Same as above, but the user will be able to select multiple domain-values.
boolean
Use this to record a simple "yes or no" or "true or false" value.
file-list
Allows this node to store one or mores files. Use this to upload images, documents, etc.
semantic
A 'semantic' node does not store data. Semantic nodes are used where necessary to make symbolic connections between nodes, generally in order to follow ontoligical rules. Note that the top node of every graph is a semantic node.