PlotDirector/PlotLine/Docs/Features/NameIntelligence.md

2.6 KiB

Name Intelligence

Name Intelligence is PlotDirector's shared reference layer for recognised given-name forms, locale/era usage priors and relationship evidence between name forms. The reference tables are global application data: they do not contain user, project, book, character, alias or IsUsed state.

Reference Package

The bundled package is plotdirector-name-intelligence version 1.0.0 and lives in:

Data/Reference/Names/v1.0.0/

The app publishes the CSVs, manifest, validation report and data-contract documentation as content. Do not embed the 92,010 usage rows in migration SQL or C# constants.

Import

Administrators can validate or import the package from the Admin dashboard. The importer reads manifest.json, validates exact headers, stable-key uniqueness, controlled values, foreign keys, numeric ranges, gender-weight totals and contiguous usage bands before writing data. Imports run in manifest order:

  1. name_locales.csv
  2. given_names.csv
  3. name_relationships.csv
  4. name_usages.csv

Rows are upserted by stable keys through stored procedures and table-valued parameters. Re-running the same package is idempotent when the checksum matches; use the force re-import action after correcting a local package or applying a future package. Import history is stored in dbo.NameReferenceImports.

Consumer Semantics

Recognition is positive evidence, not a whitelist. Unknown names still pass through the existing deterministic, contextual and AI detection paths. Gender weights are ranking priors only; explicit manuscript evidence wins. Relationships are evidence that two forms can be related and must not auto-merge characters or aliases.

Birth-era lookup should use character birth year when known, then an estimated birth year, then story year, then the nearest/general profile. Locale estimates labelled as blended estimates should be shown as approximate and not described as demographic certainty.

Project Boundary

Used-name state is computed dynamically from existing Characters and CharacterAliases for an authorised scope. The global GivenNames rows never store ownership or usage. The Names Library page decorates results with current project/book/library usage without mutating reference rows.

Future Packages

A future package should be placed in a new versioned folder and the expected version in NameIntelligenceReferencePackage should be updated. Keep stable keys immutable; add new rows or update non-key fields instead of recycling identities. Validate and import through the admin path after applying the corresponding schema/procedure migration.