R10 People: identification, names and hypotheses

How the research recognises that an entry belongs to the person sought, what it does with two records of one person, how it keeps competing explanations (hypotheses), and how it records names and the people an entry names. Describes the research 1.27.0 and the Strom app 3.23.0; changes from a later version carry its number. Each rule says what is enforced by the code and what is only a rule of the method.

R10.1 A namesake is not the person sought

An entry belongs to the person sought only when more than the name identifies them. Two people of the same name in one village are common.

  • Method only:
    • a person is identified by year, place, house number, occupation, spouse and parents. Most cases are decided by the mother's maiden name;
    • two entries that give the same name other parents (another mother) are two persons, even in the same house and with the same father's name. The difference is not explained by a scribe's error and is not decided by a majority (R5.1.1);
    • the person sought is the one named by the entry about their own family. The others are separate persons; “the same woman?” is a hypothesis (R10.3) with what would decide it;
    • a source outside the registers (a newspaper, a directory, the web): it is enough when the name, place and time agree and one more detail (house, occupation, spouse, age, a relative). Otherwise a hypothesis.
  • Why: two people of the same name in one village are common; the mother's maiden name decides most cases (the method).
  • Controls: terminal (agent). The app shows hypotheses at a person in What the research knows → Hypotheses (S3.5).
  • Since: research 1.0.0; a source outside the registers 1.10.0

R10.2 Two records of one person: merging

When two records in the research turn out to be one person, they are merged. The second record does not disappear: it stays retracted, with a note saying into whom it was merged.

  • Enforced by the code (strom person merge <zůstává> <druhý> --reason "…"):
    • a merge needs a reason;
    • names, facts, notes, families and all references (tasks, hypotheses, godparents…) pass to the person who stays;
    • facts are not merged: two births after a merge are two. strom points out which facts are now there twice; the better one is kept with its citations, the other is retracted with a reason;
    • it refuses to merge persons of different sex (when neither has an unknown sex), the partners of one family, an ancestor with a descendant, and persons with different parents. When they are the same parents in two records, the families are merged first (strom family merge).
  • Method only: a person from an imported family tree who is already researched in the research is merged into the researched person; that person keeps their documents (R11.3).
  • Why: strom never chooses quietly between two facts: the evidence decides which one stands. The other is retracted with a reason, so what stood where stays visible.
  • Controls: terminal: strom person merge, strom family merge. Possible duplicates in the tree are reported by the app in the Tree check (A5.6).
  • Since: research 1.0.0

R10.3 A hypothesis: competing explanations

When the records allow more than one explanation (whose child it is, whether two entries are one person, whether it is a married couple), the research does not choose silently. It records a hypothesis: the question and its versions A, B, C… with what speaks for each and what against.

  • Enforced by the code:
    • a hypothesis has at least two versions and concerns at least one person or record (--about);
    • the letter of a version belongs to one claim for good. A new claim gets the next free letter; a letter once used is not used again. A version can be added only to an open hypothesis;
    • a version can say what it would connect: a child of a family or of parents, two records of one person, a couple, siblings. Nothing is connected in the tree by that; the connection is recorded only after the hypothesis is decided.
  • Method only: what would decide the hypothesis is a task (strom task add … --about H…), not a detour in another task. The connection of a version is recorded only when the claim states it beyond doubt; a namesake stays out.
  • Controls: terminal: strom hypothesis add "<otázka>" --about P… --variant "…" --variant "…", hypothesis argue, hypothesis variant, hypothesis link, hypothesis show, hypothesis list. The app shows the versions and lets them be drawn into the tree for the view only (S3.5, S3.5.1).
  • Since: research 1.0.0; connections of versions and a new version for an open hypothesis 1.14.0

R10.3.1 Deciding a hypothesis

A hypothesis is decided for one version, or abandoned when none can be decided. Who decides it is a choice of the research (R10.3.2): The AI decides (the agent decides itself, only by a cited record; the default when no choice is saved), or The user decides (the agent only proposes the decision). A person decides in the terminal, or in the Strom app by choosing a version that the research terminal confirms (R10.3.3).

  • Enforced by the code:
    • with The user decides, a decision is a person's step. When the agent runs strom hypothesis decide (also inside strom batch), strom refuses it;
    • the agent proposes the decision: a version and the text of the decision (strom hypothesis propose), or abandoning (--abandon). A new proposal replaces the previous one. The work does not wait for the answer;
    • the proposal waits in What waits in the group Hypotheses to decide (R6.3.4): a person decides as proposed, otherwise (another version or none, with a reason), or leaves the hypothesis as it is. A proposal not taken stays in a note of the hypothesis;
    • with The user decides, an open hypothesis without a proposal waits in the same group too, in the terminal and in the Strom app that decides hypotheses (S3.5.2): a person decides it (a version or none), or leaves it open. A hypothesis left open shows up in What waits again once the agent proposes how to decide it;
    • a decision and a proposal need the text of the decision (--decision); abandoning is --abandon;
    • a hypothesis whose versions say what they would connect is decided and proposed only with the version named (--variant B). Without it strom refuses and writes nothing;
    • deciding again (and proposing again) is possible only with a reason (--reason). The previous decision stays in a note of the hypothesis, also with the fact that the agent decided it. A decided or abandoned hypothesis offers Change the decision in the menu;
    • what a person's decision connects (a child of a family, a couple) strom writes at once, in the same step (R10.3.3). What could not be written, and the sources of the chosen version that no fact of its persons cites, the agent gets at the start of its next work as the first task.
  • Method only: the agent proposes a decision when the records point to one version, and tells the person in one sentence. A decided hypothesis that a new record overturns the agent proposes again, with a reason. What the agent held back while the person was only a hypothesis it records at the person once the hypothesis is decided.
  • Why: a new decision needs a reason because decisions change in the open: the previous one stays readable and the new one says what changed it (usually a new record).
  • Controls: terminal: the strom menu → What waits → Hypotheses to decide → Decide as proposed, Decide otherwise, Leave it as it is (the proposal not taken); at an open hypothesis without a proposal Decide, Leave it open; at a decided or abandoned one Change the decision (text and reason required). The same screen is in the person review: Add to the research → Review one person → Hypotheses about the person (n). By command strom hypothesis decide H… --proposed, --keep-open, or --variant B --decision "…" (again with --reason "…"). The agent: strom hypothesis propose H… --variant B --decision "…". App: What the research knows → the hypothesis → Choose at a version (S3.5.2); with an older research Decide in the research, at a decided one Change in the research (S3.5).
  • Since: research 1.0.0; the list of sources not recorded 1.12.0
  • From research 1.28.0: only a person decides, the agent proposes; the code enforces the named version (formerly method only). Hypotheses the agent decided before stay as they were.
  • From research 1.29.0: who decides is a choice of the research (R10.3.2); without a saved choice the AI decides, also in a research set up earlier. What waits also offers open hypotheses without a proposal (Decide, Leave it open) and the menu Change the decision. Up to 1.28.0 an open hypothesis without a proposal was not in What waits and was decided only by the command strom hypothesis decide.
  • From app 3.25.0: Decide in the research and Change in the research in What the research knows, where the research on this computer offers them.
  • From research 1.31.0: strom writes the links of a person's decision at once; before, the agent wrote them in its next work. A hypothesis can also be decided in the Strom app 3.27.0 (R10.3.3).

R10.3.2 Who decides the hypotheses: the user or the AI

The research's choice Who decides the hypotheses sets who decides a hypothesis. The AI decides is the default: the agent decides itself once a cited record points to one version; its decision is marked and a person can change it at any time. The user decides: the agent only proposes and the decision waits in What waits. Back to the user deciding: strom config set hypotheses.decide person.

  • Enforced by the code:
    • without a saved choice the AI decides: in a new research, in a research set up earlier (up to version 1.28.0 the choice did not exist), in a setup without a terminal and when an agent runs the setup. A saved choice (The user decides and The AI decides alike) stays. Switching does not change hypotheses already decided;
    • the setup (strom setup) offers The AI decides (recommended) first, with the sentence "Recommended: the AI decides – the research goes on without hypotheses waiting; each of its decisions is marked and can be changed." Enter takes it without a further confirmation. The user decides, when chosen, is saved, and the next strom setup offers it as the current choice;
    • where The user decides is saved, only a person in the terminal turns The AI decides on again: the question explains what it means and asks for a second yes. The same holds for removing the saved choice (strom config unset hypotheses.decide), because without it the AI decides. strom refuses both to the agent. Going back to The user decides is possible at any time, without confirmation;
    • with The user decides saved and 10 or more open hypotheses in the tree, the app offers the switch in one sentence in What the research knows, the section Hypotheses: "N open hypotheses wait for a person to decide; with "The AI decides" the agent decides them itself, each with its reason." Switch to "The AI decides" opens the research in the terminal, where the choice is confirmed with a second yes; the app does not turn the AI on. Hide hides the offer for this research for good (in this browser). The offer is only at a research on this computer that knows the choice and offers the link into the research (S3.5);
    • the choice applies to the research on this computer. One research can have its own (--for-tree); the choice from the app is written only for that research;
    • the agent decides only a version that a cited source of the research (S…) supports. Without one strom refuses and offers a proposal (strom hypothesis propose);
    • a version that would connect a branch of 10 or more people off the tree to it the agent decides only with two cited sources and no objection against it; otherwise it only proposes it;
    • the agent never changes a person's decision; when a new record overturns it, the agent proposes it again (R10.3.1);
    • a hypothesis that cannot be decided the agent abandons with the text of the decision;
    • the agent's decision carries a mark and the day. Terminal: at the hypothesis Decided by the agent (day)., in the list of changes "H… decided by the agent: …" and "H… abandoned by the agent: …". App: What the research knows → decided by the agent with the day and the reason;
    • what the agent's decision connects the agent records on the tree at once;
    • when a person changes the agent's decision, the mark goes and the previous decision stays in a note of the hypothesis;
    • in a Strom archive the choice does not exist.
  • Method only: the agent tells the person in one sentence what it decided.
  • Controls: terminal: the setup strom setup, the step Who decides the hypotheses — the uncertain links between people? (only when a person runs the setup in the terminal; without a terminal it does not ask and the saved choice applies, without one The AI decides; the recommendation is only here, the menu Settings offers the current choice); the menu Settings → Language, agent, model, what the agent may do alone, stories… (the setup) → Who decides the hypotheses: …; strom config set hypotheses.decide person|agent [--for-tree], the value in force is shown by strom config where. Back to the user deciding: strom config set hypotheses.decide person. App: Research → Other actions → Research for this tree… → Who decides hypotheses: The user decides is written to the research at once, The AI decides the research confirms in the terminal (Confirm in the research). The row shows only with a research that knows the choice. The offer in What the research knows → Hypotheses: Switch to "The AI decides", Hide.
  • Since: research 1.29.0, app 3.25.0

R10.3.3 A hypothesis decided in the Strom app

A hypothesis whose versions connect only a child to a family or two people as a couple, or connect no one to the tree (where a person came from, say), can also be decided in the Strom app (S3.5.2). The app itself writes nothing: the choice opens the research terminal, which asks in one sentence and writes the decision as a person's decision. The links of the chosen version are on the tree at once.

  • Enforced by the code:
    • the link from the app carries only the number of the hypothesis, what is to happen (decide for a version, no version holds, leave open, reopen, accept proposals) and the letter of the version, no text. The terminal asks "The Strom app asks for: decide hypothesis H0001: variant B holds — …" and "Go on?" (Enter = yes), then for the reason: "Why? (Enter = “decided in the Strom app: variant B”, 0 = nothing changed)";
    • the decision is a person's decision with the note "decided in the Strom app" and the day; the agent cannot make it from the app. A hypothesis already decided the terminal names ("H0001 is decided: variant A holds …") and asks about the change;
    • the links of the chosen version strom writes in the same step, citing the first source that supports the version: "On the tree now: …". What the tree does not take it says as "Not written on the tree: …" with the reason (has birth parents in the family …; the earlier link stays, other work stands on it; it would make a circle among the ancestors) and "What is not on the tree, the agent writes in its next work." The same holds for a decision in the terminal and in What waits;
    • a version that connects no one writes only the decision; the confirmation says so first ("The tree does not change."). The terminal leaves the sentence out when the choice would take a link of an earlier decision off the tree;
    • a change to another version and no version holds at a decided hypothesis remove what the previous decision wrote; reopen (--reopen) removes the record and opens the hypothesis ("Taken off the tree: …");
    • other work on a link is a change of the link's family after it was written (a child, a fact, a citation, the partners), a merge of the link's family or persons and a new family with the link's persons; the persons' own facts, names and citations are not work. A decision whose record other work stands on cannot be reopened: "Other work stands on what the decision of hypothesis H0001 wrote on the tree (links: 2); a link cannot take it back. Another variant picked changes it." On a change such a link stays and the new one is not written; the terminal says so first ("The earlier link stays on the tree, other work stands on it: …; the new one is not written: …") and the default answer is no;
    • nor can a decision be reopened whose links the tree has but this decision did not write (the agent wrote them, say): "The decision of hypothesis H0001 is on the tree already (links: 2); a link cannot take it back. Another variant picked changes it." In place of Reopen the app says "Cannot be reopened: the link is already written in the research tree (2 links). Change is possible.";
    • two records of one person (same) and siblings without parents (siblings) are not decided from the app, even when only one version of the hypothesis is such: "H0001 cannot be decided by a pick in the app; it is decided here, on its whole screen.";
    • a version that joins 50 or more people to the tree says the number in the confirmation ("This joins 214 people to the tree.");
    • the agent's proposals can be accepted at once, at most 50 hypotheses with one confirmation: the terminal lists them ("The agent's proposals to take:"), names those left out ("Left aside:": no proposal any more, decided here) and says "✓ Decided as proposed: n."
  • Limits: the app offers the choice only with a research that can do it (the features hypothesis.decide.link and hypotheses.accept.link in the bridge's /status); otherwise Decide in the research stays. Who decides the hypotheses is still a choice of the research (R10.3.2). strom writes the links of a person's decision at once in a Strom archive too.
  • Controls: app: What the research knows → Hypotheses and Awaiting action → Hypotheses to decide (S3.5.2). Terminal: the link strom-research://hypothesis?… opens the research with the question; strom hypothesis decide H… --reopen --reason "…" returns the decision to open.
  • Since: research 1.31.0 with app 3.27.0

R10.4 A family outside the tree waits for a proven link

A family found in the records that no proven link joins to the tree is not researched further: neither its parents nor its children. First it must be proven that it belongs in the tree.

  • Method only: the agent records a hypothesis that would attach the family to a person of the tree (--about the person of the tree), and a task that verifies it and names it (--about H…). The agent researches a family outside the tree further only at the user's request.
  • Enforced by the code: the queue holds back the other tasks about people outside the tree. They return by themselves once the link is recorded (R2.2.3).
  • Why: work on a family that does not belong in the tree is lost work; the link decides, not the name (the method “The tree first, then above it”).
  • Controls: terminal: strom task list --off-tree. The app shows a family outside the tree at a person in Above the person (S3.3).
  • Since: research 1.9.0

R10.5 A person's names

A person can have more than one name: a birth name, a married name, a religious name, another one. Each name has its own record. Names are recorded as they stand in the entry; only dates are standardised.

  • Enforced by the code:
    • kinds of name: birth (birth), married (married), religious (religious), another name (alias), no kind;
    • a name without a surname (“Marie”) is completed by the full name from the entry, and the person is then shown by it. The same name again only adds a citation;
    • a woman is shown by her birth name; the married name stays beside it;
    • a title written with the name (“Ing.”, “MUDr.”, “ml.”) goes into the prefix or suffix of the name (--prefix, --suffix), not into the given name or the surname;
    • the name a person is shown by (a divorced woman back at her birth surname) is the user's choice, not a fact from a record: strom name primary. The person's identity (correcting the name, matching) stays with the birth name.
  • Method only:
    • a rank or office the entry states is a fact (TITL, OCCU), not part of the name;
    • a child the entry does not name (stillborn, died unbaptised) has no given name; a description is not written in place of the name;
    • a person whom a weaker record named differently keeps that name as a variant; the correct name is marked as the main one. Nothing is deleted;
    • a name read only in part: R8.6.
  • Why: a description in place of a name (“stillborn son”) would be shown and searched as a given name by the app and by GEDCOM, and name matching would take it for a name. That the child died without a name is a fact (a death, a note).
  • Controls: terminal: strom name add P… "Marie /Vlková/" --kind birth --cite S…, strom name primary P… "…" (--clear returns the birth name). Surname forms in the app: A4.5, A4.6.
  • Since: research 1.0.0; prefix and suffix 1.13.0; the name a person is shown by 1.27.0; an unnamed child 1.27.0

R10.5.1 A wrong name and a note are retracted

A name or a note that turns out to be wrong is not deleted. It is retracted with a reason and stays only in the history.

  • Enforced by the code:
    • a retracted name disappears from everything that shows, reads or matches names: strom person show, the agent's briefing, GEDCOM (the app does not show it after loading the tree), searching and matching;
    • the name a person is shown by can be retracted only when the person has another name as well. A typo in it is corrected with strom person edit --name;
    • a retracted name cannot be added again; it is brought back with strom name restore and a reason;
    • a note is corrected (strom note edit) or retracted (strom note retract) with a reason; it is brought back with strom note restore.
  • Controls: terminal: strom name retract P… "Josef /Horák/" --reason "…", strom person show P… --history.
  • Since: research 1.18.0

R10.6 People a record names

An entry names more people than the main person: godparents, witnesses, the midwife, the officiating priest, the informant, parents and grandparents. Everything the entry says about them is recorded at the first reading.

  • Method only:
    • everyone in a role goes to the event as the role and the name, with what the entry says about them in brackets: “godparent: Jan Horák (farmer, Lhota No. 12)”. A priest is the one who married or baptised;
    • a person in a role is linked to a person of the tree only when the entry says so. The same name is not enough;
    • what the entry says about each person it names (occupation, residence, house number) becomes their fact with the date of the entry, for grandparents too. An entry that names the parents (a grandchild's baptism) is secondary information for them (R3.2.1);
    • a place is only the municipality; the house number goes into its own field.
  • Why: godparents and witnesses are often relatives and prove a further link; by occupation and house the person is searched for further. Opening the same page again costs more than recording it at once (the method).
  • Controls: terminal: strom event add … --with "godparent:…" --house 13. App: a recurring godparent in the Leads of the Tree check (A5.5).
  • Since: research 1.0.0