Skip to content

ResearchLog Entity

← Back to Entity Types

Overview

A ResearchLog entity records what a researcher has searched for, where, when, and what was (or was not) found. It treats negative evidence — "the source was searched and the target was not present" — as a first-class outcome, supporting the Genealogical Proof Standard requirement for a "reasonably exhaustive search."

Without a ResearchLog, this information lives in freeform notes or external spreadsheets and is not queryable. Researchers end up duplicating searches across sessions because there is no structured record that a given collection has already been checked.

File Format

All GENEALOGIX files use entity type keys at the top level:

yaml
# Any .glx file (commonly in research_logs/ directory)
research_logs:
  research-log-1860-census-jane-webb:
    title: "1860 census — locate Jane Webb"
    subject:
      person: person-jane-webb
    objective: "Confirm Jane Webb's birthplace via 1860 federal census"
    status: complete
    searches:
      - repository: repository-familysearch
        collection: "United States, Census, 1860"
        query: "Jane Webb, Hartford County, Wisconsin"
        result: found
        citation: citation-1860-census-webb-household
      - repository: repository-familysearch
        collection: "United States, Census, 1860"
        query: "Jane Miller, Hartford County, Wisconsin"
        result: not_found
        notes: "No matches under maiden name"
    conclusions: "Jane Webb located in 1860 Hartford County household; born Florida."

Key Points:

  • Entity ID is the map key (research-log-1860-census-jane-webb)
  • IDs can be descriptive or random, 1-64 alphanumeric/hyphens
  • Searches are embedded inside the log; they are not standalone entities

Core Concepts

Why a structured log

A ResearchLog answers four questions that a notes field cannot:

  1. What did we already search? Avoid repeating a fruitless query in the next session.
  2. Where are the gaps? A list of not_searched plans surfaces the next concrete steps.
  3. What is the negative evidence? "Source X searched, target absent" is a genealogical conclusion, not a non-result.
  4. How exhaustive was the search? A reviewer can audit how many distinct sources were checked.

Search results

Each Search records one query and its outcome. The standard outcomes are:

  • found — the target was located in the source
  • not_found — the source was searched and the target was not present (negative evidence)
  • inconclusive — a candidate record was located but cannot be confirmed
  • partial — some relevant information was located, but the objective was not fully met
  • not_searched — search is planned but has not yet been performed (use to record outstanding work alongside completed searches)

See Vocabularies - Search Result Types for the full vocabulary.

Status lifecycle

status tracks where the investigation stands:

  • open — defined but not started
  • in_progress — actively being worked
  • complete — objective met, conclusions documented
  • blocked — cannot proceed (waiting on access, missing records, etc.)

See Vocabularies - Research Log Status Types.

Fields

Required Fields

FieldTypeDescription
Entity ID (map key)stringUnique identifier (alphanumeric/hyphens, 1-64 chars)

A log with only an entity ID is a valid, minimal placeholder; objective and a populated searches list typically follow.

Optional Fields

FieldTypeDescription
titlestringOptional human-readable title for the log
subjectobjectTyped reference (person / event / relationship / place) to what is being investigated
datedateDate the research was performed (or session start)
researcherstringName or identifier of the researcher
objectivestringResearch question or goal
statusstringLifecycle status (validated against research_log_status_types vocabulary)
searchesarrayList of Search entries — one per search attempt
citationsarrayCitations produced by this log (denormalized from per-search refs)
conclusionsstringSummary of findings
propertiesobjectVocabulary-defined properties
notesstring | string[]Free-form notes about the log

Search entry fields

Each entry in searches is a structured record of one search attempt:

FieldTypeDescription
repositorystringReference to the Repository searched
sourcestringReference to the Source searched (when known to the archive)
collectionstringFree-form collection name (used when no Source entity exists yet, e.g., "United States, Census, 1860")
querystringSearch terms used
datedateDate this specific search was performed
resultstringOutcome (validated against search_result_types vocabulary)
citationstringReference to the Citation produced when result is found
notesstring | string[]Free-form notes about this attempt

Usage Patterns

Tracking negative evidence

yaml
research_logs:
  research-log-1850-census-john-doe:
    objective: "Establish whether John Doe was in Hartford County in 1850"
    status: complete
    searches:
      - repository: repository-familysearch
        collection: "United States, Census, 1850"
        query: "John Doe, Hartford County, Wisconsin"
        result: not_found
      - repository: repository-ancestry
        collection: "1850 U.S. Federal Census"
        query: "Doe, Hartford County"
        result: not_found
    conclusions: "John Doe is absent from the 1850 Hartford County census in two independent indexes; arrival post-1850 is consistent with the 1854 marriage record."

This documents a negative finding that is part of the evidence chain.

Brick-wall investigation in progress

yaml
research_logs:
  research-log-lucinda-norton-parents:
    title: "Lucinda Norton — parentage"
    subject:
      person: person-lucinda-norton
    objective: "Identify Lucinda Norton's parents (born ~1808 Connecticut)"
    status: in_progress
    researcher: "Isaac Schepp"
    searches:
      - repository: repository-familysearch
        collection: "Connecticut, Hartford, Vital Records"
        query: "Norton, Hartford County 1805-1815"
        result: inconclusive
        notes: "Multiple Norton families; cannot match to Lucinda without parent name"
    conclusions: "Strongest hypothesis: née Munson. Online sources exhausted; need on-site Litchfield County land records."
    notes:
      - "Continue with Litchfield County land records 1785-1810 next session"

Linking to citations

When a search produces a citable record, link the citation both inline (on the search entry) and at the log level for easy roll-up:

yaml
research_logs:
  research-log-1860-census-jane-webb:
    objective: "Locate Jane Webb in 1860 census"
    status: complete
    searches:
      - repository: repository-familysearch
        source: source-1860-census
        result: found
        citation: citation-1860-census-webb-household
    citations:
      - citation-1860-census-webb-household

File Organization

Note: File organization is flexible. Entities can be in any .glx file with any directory structure. Per-entity files are recommended for collaborative projects.

text
research_logs/
├── research-log-1860-census-jane-webb.glx
├── research-log-lucinda-norton-parents.glx
└── research-log-pohl-gons-parish-1610-1620.glx

Validation Rules

  • subject if present must reference an existing entity of the type indicated (Person, Event, Relationship, or Place)
  • status if present must be from the research log status types vocabulary
  • Each search's repository, source, and citation if present must reference existing entities
  • Each search's result if present must be from the search result types vocabulary
  • citations entries must reference existing Citation entities

ResearchLog tracks individual searches and their outcomes. It is intentionally distinct from related concepts being designed in parallel:

  • Research investigation (#660): a higher-level workflow tracker for a research question — leads, hypotheses, next steps. ResearchLog records what was searched; Research records what we are trying to figure out.
  • Study (issue #226, shipped in beta.11): defines the scope of a research project (e.g., a One Place Study). A Study contains many ResearchLogs.

CLI commands for adding and querying logs (glx log add, glx log list, glx log report) are out of scope for the entity-spec PR and tracked separately.

GEDCOM Mapping

ResearchLog has no direct GEDCOM equivalent. GEDCOM treats research process as freeform NOTE content; GLX promotes it to a structured, queryable entity.

Schema Reference

See research-log.schema.json for the complete JSON Schema definition.

See Also

Licensed under Apache License 2.0