Kival connects objects in two different ways: explicit relationships created deliberately between objects, and textual references derived from links written into object content.
Both connect stable object identities rather than copying surrounding knowledge into another place. This allows an object to change over time while its place in the wider workspace remains inspectable.
Explicit relationships
An explicit relationship is a directed connection from one object to another. The source and target are both objects in the same workspace.
Relationships are intentionally simple. Kival does not currently attach a relationship type or label to an edge; the edge records that the source object is connected to the target object. More specific meaning can be expressed in the objects and their authored content rather than encoded into a separate relationship schema.
Only one active relationship can exist for the same source and target pair at a time, and an object cannot create an explicit relationship to itself.
Relationships have their own identity, authorship, creation time, and lifecycle. Removing a relationship revokes the edge rather than changing either object's content history.
Textual references
Kival also derives connections from references written into an object's body. The current implementation recognizes two internal forms:
Wikilinks refer to an object by title.
Kival object links refer to an object through its Kival identity.
These references belong to the immutable source version in which they were written. When a new version becomes current, Kival derives the outgoing references for that version and marks references from older source versions as stale.
This makes the distinction important: an explicit relationship is deliberate graph state attached to the object, while a textual reference is evidence found in authored content.
Titles and wikilinks
Wikilinks are resolved against active objects in the same workspace. A title that uniquely identifies an active object can resolve to that object's stable identity.
Because titles can change and are not globally unique forever, wikilink resolution can change. If a title has no matching object, the reference is unresolved. If multiple active objects make the title ambiguous, Kival does not choose one arbitrarily.
Kival re-resolves affected current-version wikilinks when the workspace title namespace changes. This lets title-based references follow legitimate renames while avoiding silent guesses when a title becomes ambiguous.
Stable Kival object links do not depend on title resolution and therefore serve a different purpose when identity matters more than human-readable linking.
Backlinks
Connections are useful in both directions. For an object, Kival can show incoming explicit relationships and resolved textual references from other objects.
A textual backlink retains information about where the reference came from, including the source object, source version, raw target text, and its position in the source body. That makes a backlink more than a count: it can point back to the authored context that produced the connection.
Backlinks are access-aware. Kival does not reveal a relationship or reference through an object when the requesting user cannot inspect the necessary connected knowledge.
Graphs
Kival's graph views combine visible explicit relationships and resolved textual references to show how objects are connected across a workspace or around one object.
The graph is therefore a projection of knowledge Kival already stores rather than a separate source of truth. An explicit relationship can exist independently of body text; a textual reference exists because a particular object version contains it.
Keeping those origins distinct lets Kival preserve not just that two objects appear connected, but how the connection came to exist.