{
    "$defs": {
        "CitationLink": {
            "additionalProperties": false,
            "description": "A typed link (CiTO) from a Source to a Claim.",
            "properties": {
                "for_claim": {
                    "description": "Indicium-local link from an evidence line to the Claim it evaluates. Semantic alias of supports_claim with a distinct local RDF predicate. When both fields are supplied they should identify the same Claim; neither field is automatically copied to the other.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "link_type": {
                    "$ref": "#/$defs/LinkType"
                },
                "of_source": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/Source"
                        },
                        {
                            "type": "null"
                        }
                    ]
                }
            },
            "title": "CitationLink",
            "type": "object"
        },
        "Claim": {
            "additionalProperties": false,
            "description": "A scientific claim using the Bucur 5-slot SuperPattern.",
            "properties": {
                "asserted_by": {
                    "description": "IRI or identifier of the agent (human ORCID, pipeline run ID, etc.) that asserted this item.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "astra_insight_ref": {
                    "description": "Reference to the originating ASTRA insight in 'analysis_id/insight_id' format.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "claim_status": {
                    "$ref": "#/$defs/ClaimStatus"
                },
                "claim_type": {
                    "$ref": "#/$defs/ClaimType"
                },
                "context": {
                    "type": "string"
                },
                "domain_qualifier": {
                    "description": "Open-vocabulary qualifier contributed by a DomainAdapter (indicium-adapters), e.g. 'aligned_with' or 'differentially_expressed_in'. This is NOT the closed Bucur SuperPattern \u2014 values are snake_case domain terms. A Claim must carry at least one of {qualifier, domain_qualifier} (enforced by the supplemental QualifierPresenceShape, since `qualifier` itself is no longer required at the slot level).",
                    "pattern": "^[a-z][a-z0-9_]*$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "type": "string"
                },
                "object": {
                    "type": "string"
                },
                "predicate": {
                    "description": "Spec-required name for the CiTO/SEPIO predicate. Shares slot_uri with `relation`; ASB adapter targets this name. Either may be set; they MUST agree if both are populated (enforced by downstream adapter, not at schema level).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "qualifier": {
                    "$ref": "#/$defs/SuperPatternQualifier"
                },
                "relation": {
                    "type": "string"
                },
                "source_excerpt": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "source_task_kind": {
                    "$ref": "#/$defs/SourceTaskKind",
                    "description": "Provenance qualifier \u2014 how this Claim relates to the task in its source paper (reproduction / analysis / component_reconstruction / extension). Claim-level sibling of Evidence.workflow_coupling. Canonical replacement for the ASB-emitted asbext:source_task_kind extension field. Optional: producers omit it when a claim spans tasks of differing kinds."
                },
                "subject": {
                    "type": "string"
                },
                "super_pattern": {
                    "$ref": "#/$defs/SuperPatternQualifier",
                    "description": "Spec-required name for the Bucur SuperPattern qualifier. Aliases `qualifier`; the ASB adapter targets this name. Either may be set; both must agree if both are populated."
                },
                "superseded_by": {
                    "description": "URI of the Claim that supersedes this one. Must be set when claim_status is 'superseded'. Allows external Claim IRIs for cross-document lineage.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id",
                "context",
                "subject",
                "relation",
                "object"
            ],
            "title": "Claim",
            "type": "object"
        },
        "ClaimLink": {
            "additionalProperties": false,
            "description": "A typed semantic link between two Claims using CiTO predicates. Enables contradiction detection, argument graphs, and claim ledger navigation.",
            "properties": {
                "from_claim": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "link_type": {
                    "$ref": "#/$defs/LinkType"
                },
                "to_claim": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "title": "ClaimLink",
            "type": "object"
        },
        "ClaimStatus": {
            "description": "Lifecycle state of a Claim.",
            "enum": [
                "draft",
                "verified",
                "published",
                "retracted",
                "superseded"
            ],
            "title": "ClaimStatus",
            "type": "string"
        },
        "ClaimType": {
            "description": "",
            "enum": [
                "explicit",
                "implicit"
            ],
            "title": "ClaimType",
            "type": "string"
        },
        "Claim__identifier_optional": {
            "additionalProperties": false,
            "description": "A scientific claim using the Bucur 5-slot SuperPattern.",
            "properties": {
                "asserted_by": {
                    "description": "IRI or identifier of the agent (human ORCID, pipeline run ID, etc.) that asserted this item.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "astra_insight_ref": {
                    "description": "Reference to the originating ASTRA insight in 'analysis_id/insight_id' format.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "claim_status": {
                    "$ref": "#/$defs/ClaimStatus"
                },
                "claim_type": {
                    "$ref": "#/$defs/ClaimType"
                },
                "context": {
                    "type": "string"
                },
                "domain_qualifier": {
                    "description": "Open-vocabulary qualifier contributed by a DomainAdapter (indicium-adapters), e.g. 'aligned_with' or 'differentially_expressed_in'. This is NOT the closed Bucur SuperPattern \u2014 values are snake_case domain terms. A Claim must carry at least one of {qualifier, domain_qualifier} (enforced by the supplemental QualifierPresenceShape, since `qualifier` itself is no longer required at the slot level).",
                    "pattern": "^[a-z][a-z0-9_]*$",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "type": "string"
                },
                "object": {
                    "type": "string"
                },
                "predicate": {
                    "description": "Spec-required name for the CiTO/SEPIO predicate. Shares slot_uri with `relation`; ASB adapter targets this name. Either may be set; they MUST agree if both are populated (enforced by downstream adapter, not at schema level).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "qualifier": {
                    "$ref": "#/$defs/SuperPatternQualifier"
                },
                "relation": {
                    "type": "string"
                },
                "source_excerpt": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "source_task_kind": {
                    "$ref": "#/$defs/SourceTaskKind",
                    "description": "Provenance qualifier \u2014 how this Claim relates to the task in its source paper (reproduction / analysis / component_reconstruction / extension). Claim-level sibling of Evidence.workflow_coupling. Canonical replacement for the ASB-emitted asbext:source_task_kind extension field. Optional: producers omit it when a claim spans tasks of differing kinds."
                },
                "subject": {
                    "type": "string"
                },
                "super_pattern": {
                    "$ref": "#/$defs/SuperPatternQualifier",
                    "description": "Spec-required name for the Bucur SuperPattern qualifier. Aliases `qualifier`; the ASB adapter targets this name. Either may be set; both must agree if both are populated."
                },
                "superseded_by": {
                    "description": "URI of the Claim that supersedes this one. Must be set when claim_status is 'superseded'. Allows external Claim IRIs for cross-document lineage.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "context",
                "subject",
                "relation",
                "object"
            ],
            "title": "Claim",
            "type": "object"
        },
        "DataAsset": {
            "additionalProperties": false,
            "description": "A data artefact (dataset, supplementary file, or public repository deposit) from a scholarly publication. Carries content-type classification (dataset_type), file format, accession number, and hosting repository. Linked from Evidence.of_dataset when the evidence is grounded in data rather than a text passage.",
            "properties": {
                "accession": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "asset_id": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "content_url": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "data_format": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "dataset_type": {
                    "$ref": "#/$defs/DatasetType"
                },
                "identifier": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "is_supplementary": {
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "n_samples": {
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "repository": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "source_doi": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "title": "DataAsset",
            "type": "object"
        },
        "DatasetType": {
            "description": "Content-type classification of data artefacts in scholarly publications. Values map to dcat:Dataset; the enum value conveys the domain/format category of the data.",
            "enum": [
                "tabular",
                "sequence",
                "spectral",
                "image_stack",
                "network",
                "model",
                "generic"
            ],
            "title": "DatasetType",
            "type": "string"
        },
        "EcoCodeAsbSubset": {
            "description": "ASB-emitted subset of the Evidence Code Ontology (ECO). The full ECO is large; ASB only emits these 8 values. Downstream consumers can treat this as a closed enum for ASB-sourced Evidence records.",
            "enum": [
                "textual_quotation",
                "computational_evidence",
                "expert_curation",
                "inference_from_background_knowledge",
                "author_statement",
                "experimental_evidence",
                "combinatorial_evidence",
                "traceable_author_statement"
            ],
            "title": "EcoCodeAsbSubset",
            "type": "string"
        },
        "Evidence": {
            "additionalProperties": false,
            "description": "An evidence line linking a Claim to a Source (SEPIO EvidenceLine).",
            "properties": {
                "asserted_by": {
                    "description": "IRI or identifier of the agent (human ORCID, pipeline run ID, etc.) that asserted this item.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "confidence": {
                    "type": [
                        "number",
                        "null"
                    ]
                },
                "decision_context": {
                    "description": "ASTRA-style 'decision_id.option_id' tags scoping this evidence item to a specific methodological universe. Empty list = universally applicable.",
                    "items": {
                        "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*\\.[a-zA-Z_][a-zA-Z0-9_]*$",
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "eco_code": {
                    "$ref": "#/$defs/EcoCodeAsbSubset",
                    "description": "ASB-subset ECO classification of this evidence line. Carries an ECO IRI via the enum's `meaning`. Coexists with `evidence_type` (broader, lifecycle-oriented): `eco_code` is the canonical ASB-emitted vocabulary, `evidence_type` remains for back-compat."
                },
                "evidence_type": {
                    "$ref": "#/$defs/EvidenceType"
                },
                "for_claim": {
                    "description": "Indicium-local link from an evidence line to the Claim it evaluates. Semantic alias of supports_claim with a distinct local RDF predicate. When both fields are supplied they should identify the same Claim; neither field is automatically copied to the other.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "fragment_selector": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/FragmentSelector"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "of_dataset": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/DataAsset"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "of_figure": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/Figure"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "of_script": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/Script"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "of_source": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/Source"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "quote": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "quote_exact": {
                    "description": "Spec-required name for the verbatim text excerpt supporting a claim. Aliases `quote`; ASB adapter targets this name. SHACL-level constraint that exactly one of {quote, quote_exact} is set is deferred to v1.7.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "quote_location": {
                    "description": "Free-form locator for the quote \u2014 paragraph id, XPath pointer, page-offset string, or W3C OA fragment IRI. Use when the structured `text_selector` / `fragment_selector` classes are overkill (e.g. the ASB adapter passes a `paragraph_id` string from its source paper).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "source_type": {
                    "$ref": "#/$defs/SourceType"
                },
                "supports_claim": {
                    "description": "Claim evaluated by this evidence line. Uses SEPIO is_evidence_line_for, the inverse of has_evidence_line (proposition or assertion to evidence line). The historical JSON name does not encode supporting polarity: express supporting, disputing or inconclusive direction separately with sepio:0000183 on the evidence line. Semantic alias of the local for_claim link; when both are supplied they should identify the same Claim. The two JSON fields remain distinct and are not automatically copied.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "text_selector": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/TextQuoteSelector"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "workflow_coupling": {
                    "$ref": "#/$defs/WorkflowCoupling",
                    "description": "Reproducibility qualifier \u2014 coupling of the workflow that produced this evidence (Suter et al. 2025). Optional; set by producers that know the workflow structure."
                }
            },
            "title": "Evidence",
            "type": "object"
        },
        "EvidenceType": {
            "description": "",
            "enum": [
                "data",
                "citation",
                "knowledge",
                "inference",
                "speculation"
            ],
            "title": "EvidenceType",
            "type": "string"
        },
        "Figure": {
            "additionalProperties": false,
            "description": "A figure, table, or other display item from a scholarly publication. Carries optional FaBiO sub-type classification (via figure_type) and provenance (source_doi). Linked from Evidence.of_figure when the evidence is grounded in a visual artefact rather than a text passage.",
            "properties": {
                "caption": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "content_url": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "figure_id": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "figure_type": {
                    "$ref": "#/$defs/FigureType"
                },
                "fragment_selector": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/FragmentSelector"
                        },
                        {
                            "type": "null"
                        }
                    ]
                },
                "identifier": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "is_supplementary": {
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "media_type": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "page": {
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "panel_label": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "source_doi": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "title": "Figure",
            "type": "object"
        },
        "FigureType": {
            "description": "FaBiO-aligned classification of figure and display item types found in scholarly publications. Values map to FaBiO sub-classes of fabio:Figure and fabio:Table.",
            "enum": [
                "data_plot",
                "graph",
                "photograph",
                "plate",
                "diagram",
                "flowchart",
                "table",
                "generic"
            ],
            "title": "FigureType",
            "type": "string"
        },
        "FragmentSelector": {
            "additionalProperties": false,
            "description": "W3C FragmentSelector for PDF page location.",
            "properties": {
                "frag_page": {
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "frag_value": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "title": "FragmentSelector",
            "type": "object"
        },
        "IndiciumDocument": {
            "additionalProperties": false,
            "description": "Top-level container for a serialisable Indicium document. Holds all entity collections; enables full round-trip JSON/YAML/RDF I/O.",
            "properties": {
                "citation_links": {
                    "description": "All CitationLink edges in this document.",
                    "items": {
                        "$ref": "#/$defs/CitationLink"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "claim_links": {
                    "description": "All ClaimLink edges in this document.",
                    "items": {
                        "$ref": "#/$defs/ClaimLink"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "claims": {
                    "additionalProperties": {
                        "$ref": "#/$defs/Claim__identifier_optional"
                    },
                    "description": "All Claim entities in this document.",
                    "type": [
                        "object",
                        "null"
                    ]
                },
                "datasets": {
                    "description": "All DataAsset entities in this document.",
                    "items": {
                        "$ref": "#/$defs/DataAsset"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "evidences": {
                    "description": "All Evidence entities in this document.",
                    "items": {
                        "$ref": "#/$defs/Evidence"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "figures": {
                    "description": "All Figure entities in this document.",
                    "items": {
                        "$ref": "#/$defs/Figure"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "scripts": {
                    "description": "All Script entities in this document.",
                    "items": {
                        "$ref": "#/$defs/Script"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "software_entities": {
                    "description": "All SoftwareEntity records in this document.",
                    "items": {
                        "$ref": "#/$defs/SoftwareEntity"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "sources": {
                    "description": "All Source entities in this document.",
                    "items": {
                        "$ref": "#/$defs/Source"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "sssom_mappings": {
                    "additionalProperties": {
                        "$ref": "#/$defs/SSSOMMapping__identifier_optional"
                    },
                    "description": "SSSOM term mappings carried by this document.",
                    "type": [
                        "object",
                        "null"
                    ]
                }
            },
            "title": "IndiciumDocument",
            "type": "object"
        },
        "LinkType": {
            "description": "",
            "enum": [
                "supports",
                "disputes",
                "qualifies",
                "citesForInformation",
                "contradicts",
                "refines",
                "extends",
                "agreesWith",
                "disagreesWith",
                "updates",
                "corrects",
                "usesDataFrom",
                "usesMethodIn"
            ],
            "title": "LinkType",
            "type": "string"
        },
        "SSSOMMapping": {
            "additionalProperties": false,
            "description": "A term mapping in SSSOM form (Simple Standard for Sharing Ontological Mappings) carried by an Indicium document.",
            "properties": {
                "confidence": {
                    "type": [
                        "number",
                        "null"
                    ]
                },
                "derived_from": {
                    "description": "Identifiers of source mapping(s) this was inferred from (cthoyt 2026-05-29). Modelled; not yet populated by direct lexical matches.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "id": {
                    "type": "string"
                },
                "mapping_justification": {
                    "description": "SEMAPV justification (e.g. semapv:LexicalMatching).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "object_id": {
                    "description": "SSSOM object term (CURIE/IRI).",
                    "type": "string"
                },
                "object_label": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "predicate_id": {
                    "description": "SSSOM mapping predicate (e.g. skos:closeMatch).",
                    "type": "string"
                },
                "subject_id": {
                    "description": "SSSOM subject (CURIE/IRI).",
                    "type": "string"
                },
                "subject_label": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "id",
                "subject_id",
                "predicate_id",
                "object_id"
            ],
            "title": "SSSOMMapping",
            "type": "object"
        },
        "SSSOMMapping__identifier_optional": {
            "additionalProperties": false,
            "description": "A term mapping in SSSOM form (Simple Standard for Sharing Ontological Mappings) carried by an Indicium document.",
            "properties": {
                "confidence": {
                    "type": [
                        "number",
                        "null"
                    ]
                },
                "derived_from": {
                    "description": "Identifiers of source mapping(s) this was inferred from (cthoyt 2026-05-29). Modelled; not yet populated by direct lexical matches.",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "id": {
                    "type": "string"
                },
                "mapping_justification": {
                    "description": "SEMAPV justification (e.g. semapv:LexicalMatching).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "object_id": {
                    "description": "SSSOM object term (CURIE/IRI).",
                    "type": "string"
                },
                "object_label": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "predicate_id": {
                    "description": "SSSOM mapping predicate (e.g. skos:closeMatch).",
                    "type": "string"
                },
                "subject_id": {
                    "description": "SSSOM subject (CURIE/IRI).",
                    "type": "string"
                },
                "subject_label": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "subject_id",
                "predicate_id",
                "object_id"
            ],
            "title": "SSSOMMapping",
            "type": "object"
        },
        "Script": {
            "additionalProperties": false,
            "description": "A code artefact (script, notebook, or pipeline) from a scholarly publication. Carries role classification (script_type), programming language, repository URL, and optional pinned commit. Linked from Evidence.of_script when the evidence is grounded in code rather than a text passage or figure.",
            "properties": {
                "commit_sha": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "content_url": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "identifier": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "is_supplementary": {
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "language": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "purpose": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "repository_url": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "script_id": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "script_type": {
                    "$ref": "#/$defs/ScriptType"
                },
                "source_doi": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "title": "Script",
            "type": "object"
        },
        "ScriptType": {
            "description": "Role-based classification of code artefacts in scholarly publications. All values map to fabio:ComputerProgram; the enum value itself conveys the functional role within the paper's methodology.",
            "enum": [
                "analysis",
                "visualization",
                "workflow",
                "notebook",
                "utility",
                "generic"
            ],
            "title": "ScriptType",
            "type": "string"
        },
        "SoftwareEntity": {
            "additionalProperties": false,
            "description": "A software tool / package with stable identity, EDAM annotations, and optional bio.tools cross-reference. Distinct from `Script` (in-paper code artefact): SoftwareEntity is a globally identified tool (e.g. MZmine, OpenMS) that multiple papers may cite.",
            "properties": {
                "bio_tools_id": {
                    "description": "bio.tools registry ID for cross-reference / federation.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "canonical_url": {
                    "description": "Canonical homepage / source URL of the software entity.",
                    "format": "uri",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "edam_operation": {
                    "description": "EDAM operation IRI (e.g. http://edamontology.org/operation_3215).",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "edam_topics": {
                    "description": "EDAM topic IRIs (multivalued).",
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "identifier": {
                    "description": "Stable IRI (e.g. w3id.org/holobiomicslab/asb-tool/<slug>) or URN identifying the software entity.",
                    "type": "string"
                },
                "version": {
                    "description": "Version string (e.g. SemVer, git tag, release name).",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "identifier"
            ],
            "title": "SoftwareEntity",
            "type": "object"
        },
        "Source": {
            "additionalProperties": false,
            "description": "A cited source/paper with stable identity.",
            "properties": {
                "authors": {
                    "items": {
                        "type": "string"
                    },
                    "type": [
                        "array",
                        "null"
                    ]
                },
                "doi": {
                    "description": "DOI of this Source (paper, dataset, preprint). String form, no `doi:` prefix; canonical IRI is `https://doi.org/<value>`. Distinct from generic `identifier` so adapters can target it unambiguously.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "identifier": {
                    "type": "string"
                },
                "license_id": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "paragraph_id": {
                    "description": "Stable per-paragraph identifier within the Source (e.g. the `id` attribute of a JATS `<p>` element, or an ASB-emitted `p-<n>` synthetic id). Pairs with `Evidence.quote_location`.",
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "title": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "xpath_pointer": {
                    "description": "XPath expression locating a node within the Source's structured representation (JATS XML, TEI, HTML). Alternative to `paragraph_id` when finer granularity is needed.",
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "identifier"
            ],
            "title": "Source",
            "type": "object"
        },
        "SourceTaskKind": {
            "description": "Provenance qualifier on a Claim describing how the claim relates to the task carried out in its source paper. Claim-level sibling of WorkflowCoupling (Suter et al. 2025) in the reproducibility-provenance family, at claim\u2194source-task granularity rather than evidence-line\u2194workflow. Canonical replacement for the ASB-emitted asbext:source_task_kind extension field.",
            "enum": [
                "reproduction",
                "analysis",
                "component_reconstruction",
                "extension"
            ],
            "title": "SourceTaskKind",
            "type": "string"
        },
        "SourceType": {
            "description": "",
            "enum": [
                "text",
                "figure",
                "table",
                "image",
                "code",
                "data"
            ],
            "title": "SourceType",
            "type": "string"
        },
        "SuperPatternQualifier": {
            "description": "20-term Bucur et al. (K-CAP 2021) qualifier vocabulary.",
            "enum": [
                "causes",
                "prevents",
                "inhibits",
                "activates",
                "increases",
                "decreases",
                "correlates_with",
                "is_associated_with",
                "predicts",
                "interacts_with",
                "produces",
                "requires",
                "enables",
                "treats",
                "enhances",
                "reduces",
                "has_property",
                "is_part_of",
                "is_a",
                "consistent_with"
            ],
            "title": "SuperPatternQualifier",
            "type": "string"
        },
        "TextQuoteSelector": {
            "additionalProperties": false,
            "description": "W3C TextQuoteSelector. Exact text + optional disambiguation context. Matches ASTRA's existing oa:TextQuoteSelector alignment.",
            "properties": {
                "tqs_exact": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "tqs_prefix": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "tqs_suffix": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "title": "TextQuoteSelector",
            "type": "object"
        },
        "WorkflowCoupling": {
            "description": "Reproducibility-bearing coupling of the workflow that produced an evidence line (Suter et al. 2025, DOI 10.1016/j.future.2025.107974). 'tight' = shared in-memory state, individual tasks not independently reproducible; 'loose' = file/API communication, individually reproducible.",
            "enum": [
                "tight",
                "loose",
                "ad_hoc",
                "unknown"
            ],
            "title": "WorkflowCoupling",
            "type": "string"
        }
    },
    "$id": "https://w3id.org/indicium",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "additionalProperties": true,
    "description": "Top-level container for a serialisable Indicium document. Holds all entity collections; enables full round-trip JSON/YAML/RDF I/O.",
    "metamodel_version": "1.11.0",
    "properties": {
        "citation_links": {
            "description": "All CitationLink edges in this document.",
            "items": {
                "$ref": "#/$defs/CitationLink"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "claim_links": {
            "description": "All ClaimLink edges in this document.",
            "items": {
                "$ref": "#/$defs/ClaimLink"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "claims": {
            "additionalProperties": {
                "$ref": "#/$defs/Claim__identifier_optional"
            },
            "description": "All Claim entities in this document.",
            "type": [
                "object",
                "null"
            ]
        },
        "datasets": {
            "description": "All DataAsset entities in this document.",
            "items": {
                "$ref": "#/$defs/DataAsset"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "evidences": {
            "description": "All Evidence entities in this document.",
            "items": {
                "$ref": "#/$defs/Evidence"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "figures": {
            "description": "All Figure entities in this document.",
            "items": {
                "$ref": "#/$defs/Figure"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "scripts": {
            "description": "All Script entities in this document.",
            "items": {
                "$ref": "#/$defs/Script"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "software_entities": {
            "description": "All SoftwareEntity records in this document.",
            "items": {
                "$ref": "#/$defs/SoftwareEntity"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "sources": {
            "description": "All Source entities in this document.",
            "items": {
                "$ref": "#/$defs/Source"
            },
            "type": [
                "array",
                "null"
            ]
        },
        "sssom_mappings": {
            "additionalProperties": {
                "$ref": "#/$defs/SSSOMMapping__identifier_optional"
            },
            "description": "SSSOM term mappings carried by this document.",
            "type": [
                "object",
                "null"
            ]
        }
    },
    "title": "indicium",
    "type": "object",
    "version": "2.0.0"
}

