diff --git a/enumeration-set/extension/enumset-Confidence.yaml b/enumeration-set/extension/enumset-Confidence.yaml new file mode 100644 index 00000000..405c542a --- /dev/null +++ b/enumeration-set/extension/enumset-Confidence.yaml @@ -0,0 +1,16 @@ +%YAML 1.2 +--- +lang: en-US + +type: enumeration set + +uri: https://github.com/glamberson/gedcom-evidence/enumset-Confidence + +enumeration values: + - "https://github.com/glamberson/gedcom-evidence/enum-High" + - "https://github.com/glamberson/gedcom-evidence/enum-Medium" + - "https://github.com/glamberson/gedcom-evidence/enum-Low" + - "https://github.com/glamberson/gedcom-evidence/enum-Hypothesis" + +contact: "https://github.com/glamberson/gedcom-evidence" +... diff --git a/enumeration-set/gedcom-evidence/enumset-Confidence.yaml b/enumeration-set/gedcom-evidence/enumset-Confidence.yaml new file mode 100644 index 00000000..405c542a --- /dev/null +++ b/enumeration-set/gedcom-evidence/enumset-Confidence.yaml @@ -0,0 +1,16 @@ +%YAML 1.2 +--- +lang: en-US + +type: enumeration set + +uri: https://github.com/glamberson/gedcom-evidence/enumset-Confidence + +enumeration values: + - "https://github.com/glamberson/gedcom-evidence/enum-High" + - "https://github.com/glamberson/gedcom-evidence/enum-Medium" + - "https://github.com/glamberson/gedcom-evidence/enum-Low" + - "https://github.com/glamberson/gedcom-evidence/enum-Hypothesis" + +contact: "https://github.com/glamberson/gedcom-evidence" +... diff --git a/enumeration/extension/enum-High.yaml b/enumeration/extension/enum-High.yaml new file mode 100644 index 00000000..879f5414 --- /dev/null +++ b/enumeration/extension/enum-High.yaml @@ -0,0 +1,19 @@ +%YAML 1.2 +--- +lang: en-US + +type: enumeration + +uri: https://github.com/glamberson/gedcom-evidence/enum-High + +extension tags: _HIGH + +specification: + - High Confidence + - Strong confidence in evidence relevance and interpretation + +value of: + - https://github.com/glamberson/gedcom-evidence/enumset-Confidence + +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/enumeration/extension/enum-Hypothesis.yaml b/enumeration/extension/enum-Hypothesis.yaml new file mode 100644 index 00000000..734c1bb4 --- /dev/null +++ b/enumeration/extension/enum-Hypothesis.yaml @@ -0,0 +1,19 @@ +%YAML 1.2 +--- +lang: en-US + +type: enumeration + +uri: https://github.com/glamberson/gedcom-evidence/enum-Hypothesis + +extension tags: _HYPOTHESIS + +specification: + - Hypothesis + - Speculative connection requiring further research + +value of: + - https://github.com/glamberson/gedcom-evidence/enumset-Confidence + +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/enumeration/extension/enum-Low.yaml b/enumeration/extension/enum-Low.yaml new file mode 100644 index 00000000..8922fc59 --- /dev/null +++ b/enumeration/extension/enum-Low.yaml @@ -0,0 +1,19 @@ +%YAML 1.2 +--- +lang: en-US + +type: enumeration + +uri: https://github.com/glamberson/gedcom-evidence/enum-Low + +extension tags: _LOW + +specification: + - Low Confidence + - Weak confidence, significant uncertainty + +value of: + - https://github.com/glamberson/gedcom-evidence/enumset-Confidence + +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/enumeration/extension/enum-Medium.yaml b/enumeration/extension/enum-Medium.yaml new file mode 100644 index 00000000..2657ea5a --- /dev/null +++ b/enumeration/extension/enum-Medium.yaml @@ -0,0 +1,19 @@ +%YAML 1.2 +--- +lang: en-US + +type: enumeration + +uri: https://github.com/glamberson/gedcom-evidence/enum-Medium + +extension tags: _MEDIUM + +specification: + - Medium Confidence + - Moderate confidence, some uncertainty remains + +value of: + - https://github.com/glamberson/gedcom-evidence/enumset-Confidence + +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/enumeration/gedcom-evidence/enum-High.yaml b/enumeration/gedcom-evidence/enum-High.yaml new file mode 100644 index 00000000..e7fe87ea --- /dev/null +++ b/enumeration/gedcom-evidence/enum-High.yaml @@ -0,0 +1,14 @@ +%YAML 1.2 +--- +lang: en-US +type: enumeration +uri: https://github.com/glamberson/gedcom-evidence/enum-High +extension tags: + - _HIGH +specification: + - High Confidence + - Strong confidence in evidence relevance and interpretation +value of: + - https://github.com/glamberson/gedcom-evidence/enumset-Confidence +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/enumeration/gedcom-evidence/enum-Hypothesis.yaml b/enumeration/gedcom-evidence/enum-Hypothesis.yaml new file mode 100644 index 00000000..21384694 --- /dev/null +++ b/enumeration/gedcom-evidence/enum-Hypothesis.yaml @@ -0,0 +1,14 @@ +%YAML 1.2 +--- +lang: en-US +type: enumeration +uri: https://github.com/glamberson/gedcom-evidence/enum-Hypothesis +extension tags: + - _HYPOTHESIS +specification: + - Hypothesis + - Speculative connection requiring further research +value of: + - https://github.com/glamberson/gedcom-evidence/enumset-Confidence +contact: https://github.com/glamberson/gedcom-evidence +... \ No newline at end of file diff --git a/enumeration/gedcom-evidence/enum-Low.yaml b/enumeration/gedcom-evidence/enum-Low.yaml new file mode 100644 index 00000000..c2f11e46 --- /dev/null +++ b/enumeration/gedcom-evidence/enum-Low.yaml @@ -0,0 +1,14 @@ +%YAML 1.2 +--- +lang: en-US +type: enumeration +uri: https://github.com/glamberson/gedcom-evidence/enum-Low +extension tags: + - _LOW +specification: + - Low Confidence + - Weak confidence, significant uncertainty +value of: + - https://github.com/glamberson/gedcom-evidence/enumset-Confidence +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/enumeration/gedcom-evidence/enum-Medium.yaml b/enumeration/gedcom-evidence/enum-Medium.yaml new file mode 100644 index 00000000..5b1fbe97 --- /dev/null +++ b/enumeration/gedcom-evidence/enum-Medium.yaml @@ -0,0 +1,14 @@ +%YAML 1.2 +--- +lang: en-US +type: enumeration +uri: https://github.com/glamberson/gedcom-evidence/enum-Medium +extension tags: + - _MEDIUM +specification: + - Medium Confidence + - Moderate confidence, some uncertainty remains +value of: + - https://github.com/glamberson/gedcom-evidence/enumset-Confidence +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/extension/gedcom-evidence/VERSION b/extension/gedcom-evidence/VERSION new file mode 100644 index 00000000..def9a015 --- /dev/null +++ b/extension/gedcom-evidence/VERSION @@ -0,0 +1 @@ +0.1.5 \ No newline at end of file diff --git a/fix_yaml_format.py b/fix_yaml_format.py new file mode 100755 index 00000000..cee8a979 --- /dev/null +++ b/fix_yaml_format.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python3 +import yaml +import sys +import os + +def fix_yaml_file(filepath): + """Fix YAML file formatting issues""" + with open(filepath, 'r') as f: + content = yaml.safe_load(f) + + # Fix extension tags to be an array if it's a string + if 'extension tags' in content and isinstance(content['extension tags'], str): + content['extension tags'] = [content['extension tags']] + + # Ensure specification items are properly formatted + if 'specification' in content and isinstance(content['specification'], list): + # Already a list, good + pass + + # Reorder keys to match standard format + ordered_keys = [ + 'lang', 'type', 'uri', 'standard tag', 'extension tags', + 'specification', 'label', 'payload', 'enumeration values', + 'substructures', 'superstructures', 'contact' + ] + + ordered_content = {} + # First add keys in the preferred order + for key in ordered_keys: + if key in content: + ordered_content[key] = content[key] + + # Then add any remaining keys + for key in content: + if key not in ordered_content: + ordered_content[key] = content[key] + + # Write back with proper formatting + with open(filepath, 'w') as f: + f.write('%YAML 1.2\n---\n') + + for i, (key, value) in enumerate(ordered_content.items()): + if i > 0 and key in ['type', 'uri', 'extension tags', 'specification', + 'label', 'payload', 'substructures', 'superstructures']: + f.write('\n') + + if key == 'specification' and isinstance(value, list) and len(value) > 1: + f.write(f'{key}:\n') + f.write(f' - {value[0]}\n') + f.write(' - |\n') + # Split long descriptions into lines + desc_lines = value[1].strip().split('\n') + for line in desc_lines: + f.write(f' {line}\n') + elif isinstance(value, list): + f.write(f'{key}:\n') + for item in value: + f.write(f' - "{item}"\n' if key == 'enumeration values' else f' - {item}\n') + elif isinstance(value, dict): + f.write(f'{key}:\n') + for k, v in value.items(): + f.write(f' "{k}": "{v}"\n') + elif value is None: + f.write(f'{key}: null\n') + elif key == 'payload' and '@' in str(value): + # Quote payloads that contain @ symbols + f.write(f'{key}: "{value}"\n') + elif key == 'superstructures' and value is None: + # Empty superstructures should be {} + f.write(f'{key}: {{}}\n') + else: + f.write(f'{key}: {value}\n') + + f.write('...\n') + +if __name__ == '__main__': + if len(sys.argv) < 2: + print("Usage: fix_yaml_format.py [...]") + sys.exit(1) + + for filepath in sys.argv[1:]: + print(f"Fixing {filepath}") + try: + fix_yaml_file(filepath) + print(f" ✓ Fixed") + except Exception as e: + print(f" ✗ Error: {e}") \ No newline at end of file diff --git a/gedcom-evidence/VERSION b/gedcom-evidence/VERSION new file mode 100644 index 00000000..9faa1b7a --- /dev/null +++ b/gedcom-evidence/VERSION @@ -0,0 +1 @@ +0.1.5 diff --git a/record/gedcom-evidence/record-EVID.yaml b/record/gedcom-evidence/record-EVID.yaml new file mode 100644 index 00000000..3523013e --- /dev/null +++ b/record/gedcom-evidence/record-EVID.yaml @@ -0,0 +1,35 @@ +%YAML 1.2 +--- +lang: en-US + +type: structure + +uri: https://github.com/glamberson/gedcom-evidence/record-EVID + +extension tags: + - _EVID + +specification: + - Evidence Container Record + - | + An _EVID record represents a piece of evidence as an independent object, separate from any specific conclusion or individual. This allows "floating evidence" that can be associated with multiple potential individuals or left unassociated until identity can be determined. Evidence containers preserve original source information exactly as found, including names, dates, places, and relationships, without forcing premature identity conclusions. This solves the "Which John Smith?" problem by allowing evidence to exist independently until research determines the correct association. + +label: Evidence Container Record + +payload: null + +substructures: + "https://gedcom.io/terms/v7/CHAN": "{0:1}" + "https://gedcom.io/terms/v7/EXID": "{0:M}" + "https://gedcom.io/terms/v7/NOTE": "{0:M}" + "https://gedcom.io/terms/v7/SNOTE": "{0:M}" + "https://gedcom.io/terms/v7/SOUR": "{1:M}" + "https://gedcom.io/terms/v7/UID": "{0:M}" + "https://github.com/glamberson/gedcom-evidence/_CONF": "{0:1}" + "https://github.com/glamberson/gedcom-evidence/_FIND": "{0:M}" + "https://github.com/glamberson/gedcom-evidence/_ID": "{0:M}" + +superstructures: {} + +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/record/gedcom-evidence/record-_RDOC.yaml b/record/gedcom-evidence/record-_RDOC.yaml new file mode 100644 index 00000000..d2440859 --- /dev/null +++ b/record/gedcom-evidence/record-_RDOC.yaml @@ -0,0 +1,33 @@ +%YAML 1.2 +--- +lang: en-US + +type: structure + +uri: https://github.com/glamberson/gedcom-evidence/record-_RDOC + +extension tags: + - _RDOC + +specification: + - Research Documentation Record + - | + A record documenting research reasoning, analysis, and decisions. _RDOC records capture the "why" behind associations between evidence and individuals, including proof arguments and conflict resolution. This supports the Genealogical Proof Standard by documenting reasonably exhaustive searches, complete source citations, analysis and correlation, resolution of conflicts, and soundly reasoned conclusions. + +label: Research Documentation Record + +payload: null + +substructures: + "https://gedcom.io/terms/v7/CHAN": "{0:1}" + "https://gedcom.io/terms/v7/DATE": "{0:1}" + "https://gedcom.io/terms/v7/EXID": "{0:M}" + "https://gedcom.io/terms/v7/NOTE": "{0:M}" + "https://gedcom.io/terms/v7/SNOTE": "{0:M}" + "https://gedcom.io/terms/v7/UID": "{0:M}" + "https://github.com/glamberson/gedcom-evidence/_RACT": "{0:M}" + +superstructures: {} + +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/structure/extension/_CONC.yaml b/structure/extension/_CONC.yaml new file mode 100644 index 00000000..e911f67c --- /dev/null +++ b/structure/extension/_CONC.yaml @@ -0,0 +1,30 @@ +%YAML 1.2 +--- +lang: en-US + +type: structure + +uri: https://github.com/glamberson/gedcom-evidence/_CONC + +extension tags: + - _CONC + +specification: + - Evidence Conclusion + - | + A reference from an individual or family to evidence that supports conclusions about that person or family. This creates the reverse link from conclusions to supporting evidence. _CONC structures allow individuals and families to document which evidence supports their existence and characteristics, completing the bidirectional relationship between evidence and conclusions. + +label: Evidence Conclusion + +payload: "@@" + +substructures: + "https://gedcom.io/terms/v7/NOTE": "{0:M}" + "https://gedcom.io/terms/v7/QUAY": "{0:1}" + "https://github.com/glamberson/gedcom-evidence/_RDOC": "{0:M}" + +superstructures: + "https://gedcom.io/terms/v7/record-FAM": "{0:M}" + "https://gedcom.io/terms/v7/record-INDI": "{0:M}" +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/structure/extension/_CONF.yaml b/structure/extension/_CONF.yaml new file mode 100644 index 00000000..b5301c6f --- /dev/null +++ b/structure/extension/_CONF.yaml @@ -0,0 +1,27 @@ +%YAML 1.2 +--- +lang: en-US + +type: structure + +uri: https://github.com/glamberson/gedcom-evidence/_CONF + +extension tags: + - _CONF + +specification: + - Evidence Confidence + - | + Overall confidence assessment for a piece of evidence. This differs from QUAY (quality of data) by assessing the researcher's confidence in the evidence's relevance and interpretation. Confidence levels can change as additional evidence is discovered and analysis progresses. + +label: Evidence Confidence + +payload: https://github.com/glamberson/gedcom-evidence/enumset-Confidence + +substructures: + "https://gedcom.io/terms/v7/NOTE": "{0:M}" + +superstructures: + "https://github.com/glamberson/gedcom-evidence/_EVID": "{0:1}" +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/structure/extension/_EVID.yaml b/structure/extension/_EVID.yaml new file mode 100644 index 00000000..042cbd13 --- /dev/null +++ b/structure/extension/_EVID.yaml @@ -0,0 +1,28 @@ +%YAML 1.2 +--- +lang: en-US + +type: structure + +uri: https://github.com/glamberson/gedcom-evidence/_EVID + +extension tags: + - _EVID + +specification: + - Evidence Reference + - | + A reference from an individual to an evidence container record, indicating that this evidence may support conclusions about this individual. The reference includes a confidence level indicating how strongly the evidence supports the association with this specific individual. + +label: Evidence Reference + +payload: XREF + +substructures: + "https://github.com/glamberson/gedcom-evidence/_CONF": "{0:1}" + "https://gedcom.io/terms/v7/NOTE": "{0:M}" + +superstructures: + "https://gedcom.io/terms/v7/record-INDI": "{0:M}" +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/structure/extension/_FIND.yaml b/structure/extension/_FIND.yaml new file mode 100644 index 00000000..2d931e09 --- /dev/null +++ b/structure/extension/_FIND.yaml @@ -0,0 +1,39 @@ +%YAML 1.2 +--- +lang: en-US + +type: structure + +uri: https://github.com/glamberson/gedcom-evidence/_FIND + +extension tags: + - _FIND + +specification: + - Evidence Finding + - | + A specific finding or fact extracted from evidence. _FIND structures + represent individual pieces of information found in sources, such as + names, dates, places, ages, relationships, or occupations. + Findings preserve the exact information as it appears in the source, + including original spelling, formatting, and context, allowing researchers + to maintain data fidelity throughout the research process. + +label: Evidence Finding + +payload: null + +substructures: + "https://gedcom.io/terms/v7/AGE": "{0:1}" + "https://gedcom.io/terms/v7/DATE": "{0:1}" + "https://gedcom.io/terms/v7/NOTE": "{0:M}" + "https://gedcom.io/terms/v7/PLAC": "{0:1}" + "https://gedcom.io/terms/v7/TEXT": "{0:1}" + "https://gedcom.io/terms/v7/TYPE": "{1:1}" + "https://github.com/glamberson/gedcom-evidence/_ID": "{0:M}" + +superstructures: + "https://github.com/glamberson/gedcom-evidence/_EVID": "{0:M}" + +contact: https://github.com/glamberson/gedcom-evidence +... \ No newline at end of file diff --git a/structure/extension/_ID.yaml b/structure/extension/_ID.yaml new file mode 100644 index 00000000..898a24a2 --- /dev/null +++ b/structure/extension/_ID.yaml @@ -0,0 +1,30 @@ +%YAML 1.2 +--- +lang: en-US + +type: structure + +uri: https://github.com/glamberson/gedcom-evidence/_ID + +extension tags: + - _ID + +specification: + - Evidence Identifier + - | + An identifier reference from evidence to an individual, family, or other record. This creates a bidirectional link between evidence and conclusions, allowing evidence to be associated with multiple potential individuals. The _ID structure supports gradual refinement of identity as research progresses, with confidence levels and research documentation. + +label: Evidence Identifier + +payload: "@@ | @@ | @@" + +substructures: + "https://gedcom.io/terms/v7/NOTE": "{0:M}" + "https://gedcom.io/terms/v7/QUAY": "{0:1}" + "https://github.com/glamberson/gedcom-evidence/_RDOC": "{0:M}" + +superstructures: + "https://github.com/glamberson/gedcom-evidence/_EVID": "{0:M}" + "https://github.com/glamberson/gedcom-evidence/_FIND": "{0:M}" +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/structure/extension/_RACT.yaml b/structure/extension/_RACT.yaml new file mode 100644 index 00000000..d74d3e8d --- /dev/null +++ b/structure/extension/_RACT.yaml @@ -0,0 +1,34 @@ +%YAML 1.2 +--- +lang: en-US + +type: structure + +uri: https://github.com/glamberson/gedcom-evidence/_RACT + +extension tags: + - _RACT + +specification: + - Research Activity + - | + A record of a specific research activity, including searches performed, sources consulted, and findings. _RACT records support research logs and document the research process over time. Research activities can reference evidence found, conclusions drawn, and documentation of negative searches (sources checked that yielded no relevant information). + +label: Research Activity + +payload: null + +substructures: + "https://gedcom.io/terms/v7/CHAN": "{0:1}" + "https://gedcom.io/terms/v7/DATE": "{0:1}" + "https://gedcom.io/terms/v7/NOTE": "{0:M}" + "https://gedcom.io/terms/v7/SNOTE": "{0:M}" + "https://gedcom.io/terms/v7/SOUR": "{0:M}" + "https://gedcom.io/terms/v7/TYPE": "{0:1}" + "https://gedcom.io/terms/v7/UID": "{0:M}" + "https://github.com/glamberson/gedcom-evidence/_RDOC": "{0:M}" + +superstructures: {} + +contact: https://github.com/glamberson/gedcom-evidence +... diff --git a/structure/extension/_RDOC.yaml b/structure/extension/_RDOC.yaml new file mode 100644 index 00000000..458118a2 --- /dev/null +++ b/structure/extension/_RDOC.yaml @@ -0,0 +1,31 @@ +%YAML 1.2 +--- +lang: en-US + +type: structure + +uri: https://github.com/glamberson/gedcom-evidence/_RDOC + +extension tags: + - _RDOC + +specification: + - Research Documentation + - | + Documentation of research reasoning, analysis, and decisions. _RDOC structures capture the "why" behind associations between evidence and individuals, including proof arguments and conflict resolution. This supports the Genealogical Proof Standard by documenting reasonably exhaustive searches, complete source citations, analysis and correlation, resolution of conflicts, and soundly reasoned conclusions. + +label: Research Documentation + +payload: XREF + +substructures: + "https://gedcom.io/terms/v7/DATE": "{0:1}" + "https://gedcom.io/terms/v7/NOTE": "{0:M}" + "https://gedcom.io/terms/v7/SNOTE": "{0:M}" + +superstructures: + "https://github.com/glamberson/gedcom-evidence/_CONC": "{0:M}" + "https://github.com/glamberson/gedcom-evidence/_ID": "{0:M}" + "https://github.com/glamberson/gedcom-evidence/_RACT": "{0:M}" +contact: https://github.com/glamberson/gedcom-evidence +...