Skip to content

Tools to merge/separate/manage entities as needed (graph operations) #2465

Open
@kepae

Description

This issue tracks design and development of editor features and tools to merge, separate, and curate entities with respect to one another as needed. More specifically, curating the graph of entities in the incident database.

Merging and separating entities is complicated.

Merging entities A and B means any of:

  • re-directing all of the references of one of these entities (A) to the other (B) , and deleting/tombstoning the entity (A).
  • creating a new entity, C, and redirecting + deleting/tombstoning entities A and B.
  • More advanced: grouping entities-to-be-merged A and B under a canonical entity group/"cluster" C, and processing redirects for entities A and B to the canonical cluster C (likely at build time).

Conversely, separating an entity A means reversing the above options, including steps such as: re-directing particular references as needed to individual new or existing entities, potentially deleting/tombstoning an existing entity A if it no longer has connections, etc.

See this code search to show other collection schemas and rules that reference entities by entity_id:
https://github.com/search?q=repo%3Aresponsible-ai-collaborative%2Faiid+path%3A%2F%5Esite%5C%2Frealm%5C%2Fdata_sources%5C%2Fmongodb-atlas%5C%2F%2F+entit&type=code

Motivation

  1. The curation and editing of entities becomes more complex as the number of incidents grows, and inevitably there will need to be re-working of entity relationships. Beyond day-to-day editing (e.g. addressing errata), hierarchical or re-directing operations might need to be taken when the related but contextually distinct entities grow, e.g.:
    image

  2. These tools will also enable curation of AI system entities as this concept becomes more defined in incident curation and exploring incident data. Easier curation of entities will ideally allow better interfaces that Issue, Hazard, Risk, Vulnerability, Audits, and Controversy Support #2047 describes.

When this becomes a priority, we can start to:

  • Add particular curation/graph metadata to entity records, such as date modified, tombstone status, similar entities, etc.
  • Implement re-direct logic for entity relationships so that incident citation pages, URLs, and other dependencies can render or re-direct to "canonical" entities. This would enable tombstoning and/or deleting old entity IDs for any scenario.
  • Design and create interface for editing entities #2536

Metadata

Assignees

No one assigned

    Labels

    Agile: EpicRelating to an Agile EpicPriority: LowWe may work on it, but there are likely other items in front.Type: EnhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions