Package com.astrolabsoftware.FinkBrowser.Januser


package com.astrolabsoftware.FinkBrowser.Januser
Fink-specific graph model, mutation recipes, and traversal analyses.

Recipe composition

  • FinkGremlinRecipies contains mutation and lifecycle operations, including classification replacement and overlap regeneration.
  • FinkGremlinRecipiesGT contains Groovy traversal and analysis operations.
  • FinkGremlinRecipiesG combines both APIs without adding a second lifecycle or graph state.

Core graph model

An object vertex is identified by objectId. An OCol vertex represents one logical classification collection, identified by survey, classifier, flavor, and cls. A deepcontains edge points from an OCol to an object and stores the numeric classification weight and optional per-instance data. An overlaps edge points from a destination OCol to the source OCol it interprets and stores the numeric intersection.

Logical identity does not imply physical uniqueness. Existing databases can contain duplicate physical vertices or parallel edges. Recipes must preserve their documented first/max/order behavior unless an explicit data migration establishes stronger uniqueness constraints.

Label and transaction invariants

Every valid Fink vertex and edge mirrors its native label in the indexed lbl property. Selection by lbl supports indexes. New registration endpoint reuse validates both labels; existing cleanup and correlation paths intentionally retain their historical lbl-only selection so malformed-data compatibility and ordering do not change.

classifySource owns one rollback-capable transaction for cleanup and all replacement registrations. A nested registerOCol call joins that operation and does not commit independently. A standalone registerOCol call owns its commit call and rolls back failure only when the attached context advertises rollback-capable transactions. Temporary endpoint caches are operation-local, are published only after successful initialization, and are cleared on both success and failure.

Traversal compatibility

Read-side Groovy recipes are expressed as standard, lambda-free Gremlin bytecode where practical. Java mutation recipes also use host-side element methods such as Vertex.addEdge; those operations require live provider elements and are not made remote-safe merely by attaching a remote traversal source.