| { |
| "$defs": { |
| "ArticleClassificationOutcome": { |
| "description": "Semantic article-level outcome when processing completes.", |
| "enum": [ |
| "classified", |
| "pending_review", |
| "not_classified" |
| ], |
| "title": "ArticleClassificationOutcome", |
| "type": "string" |
| }, |
| "ArticleProcessingStatus": { |
| "description": "Workflow execution state for one article.", |
| "enum": [ |
| "completed", |
| "partial", |
| "failed", |
| "skipped" |
| ], |
| "title": "ArticleProcessingStatus", |
| "type": "string" |
| }, |
| "ClassificationFinalStatus": { |
| "description": "Final automated status for one classification candidate.", |
| "enum": [ |
| "accepted", |
| "reduced_to_ancestor", |
| "review_required", |
| "rejected" |
| ], |
| "title": "ClassificationFinalStatus", |
| "type": "string" |
| }, |
| "ClassificationRecord": { |
| "additionalProperties": false, |
| "description": "Article output record for one GCMD classification or retained diagnostic candidate.", |
| "properties": { |
| "UUID": { |
| "minLength": 1, |
| "title": "Uuid", |
| "type": "string" |
| }, |
| "branch_id": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Branch Id" |
| }, |
| "canonical_path": { |
| "minLength": 1, |
| "title": "Canonical Path", |
| "type": "string" |
| }, |
| "classifier_evidence": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Classifier Evidence" |
| }, |
| "confidence": { |
| "anyOf": [ |
| { |
| "$ref": "#/$defs/ConfidenceMetadata" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null |
| }, |
| "deterministic_validation": { |
| "$ref": "#/$defs/DeterministicValidationResult" |
| }, |
| "errors": { |
| "items": { |
| "$ref": "#/$defs/OutputError" |
| }, |
| "title": "Errors", |
| "type": "array" |
| }, |
| "final_status": { |
| "$ref": "#/$defs/ClassificationFinalStatus" |
| }, |
| "level": { |
| "enum": [ |
| "Topic", |
| "Term", |
| "Variable_Level_1", |
| "Variable_Level_2", |
| "Variable_Level_3" |
| ], |
| "title": "Level", |
| "type": "string" |
| }, |
| "name": { |
| "minLength": 1, |
| "title": "Name", |
| "type": "string" |
| }, |
| "original_candidate": { |
| "anyOf": [ |
| { |
| "$ref": "#/$defs/OriginalCandidateReference" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null |
| }, |
| "parent_uuid": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Parent Uuid" |
| }, |
| "path_components": { |
| "items": { |
| "type": "string" |
| }, |
| "minItems": 1, |
| "title": "Path Components", |
| "type": "array" |
| }, |
| "reason_for_stopping": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Reason For Stopping" |
| }, |
| "review_required": { |
| "default": false, |
| "title": "Review Required", |
| "type": "boolean" |
| }, |
| "review_status": { |
| "anyOf": [ |
| { |
| "$ref": "#/$defs/ReviewStatus" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null |
| }, |
| "semantic_validation": { |
| "anyOf": [ |
| { |
| "$ref": "#/$defs/SemanticValidationResult" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null |
| }, |
| "support_type": { |
| "anyOf": [ |
| { |
| "$ref": "#/$defs/SupportType" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null |
| }, |
| "term": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Term" |
| }, |
| "topic": { |
| "minLength": 1, |
| "title": "Topic", |
| "type": "string" |
| }, |
| "warnings": { |
| "items": { |
| "$ref": "#/$defs/OutputWarning" |
| }, |
| "title": "Warnings", |
| "type": "array" |
| } |
| }, |
| "required": [ |
| "UUID", |
| "name", |
| "level", |
| "canonical_path", |
| "path_components", |
| "topic", |
| "deterministic_validation", |
| "final_status" |
| ], |
| "title": "ClassificationRecord", |
| "type": "object" |
| }, |
| "ConfidenceMetadata": { |
| "additionalProperties": false, |
| "description": "Optional, uncalibrated confidence signals from routing stages.", |
| "properties": { |
| "final": { |
| "anyOf": [ |
| { |
| "maximum": 1.0, |
| "minimum": 0.0, |
| "type": "number" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Final" |
| }, |
| "term": { |
| "anyOf": [ |
| { |
| "maximum": 1.0, |
| "minimum": 0.0, |
| "type": "number" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Term" |
| }, |
| "topic": { |
| "anyOf": [ |
| { |
| "maximum": 1.0, |
| "minimum": 0.0, |
| "type": "number" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Topic" |
| }, |
| "variable_level_1": { |
| "anyOf": [ |
| { |
| "maximum": 1.0, |
| "minimum": 0.0, |
| "type": "number" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Variable Level 1" |
| }, |
| "variable_level_2": { |
| "anyOf": [ |
| { |
| "maximum": 1.0, |
| "minimum": 0.0, |
| "type": "number" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Variable Level 2" |
| }, |
| "variable_level_3": { |
| "anyOf": [ |
| { |
| "maximum": 1.0, |
| "minimum": 0.0, |
| "type": "number" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Variable Level 3" |
| } |
| }, |
| "title": "ConfidenceMetadata", |
| "type": "object" |
| }, |
| "DeterministicValidationResult": { |
| "additionalProperties": false, |
| "description": "Vocabulary validation result for a proposed final classification.", |
| "properties": { |
| "errors": { |
| "items": { |
| "$ref": "#/$defs/OutputError" |
| }, |
| "title": "Errors", |
| "type": "array" |
| }, |
| "valid": { |
| "title": "Valid", |
| "type": "boolean" |
| }, |
| "warnings": { |
| "items": { |
| "$ref": "#/$defs/OutputWarning" |
| }, |
| "title": "Warnings", |
| "type": "array" |
| } |
| }, |
| "required": [ |
| "valid" |
| ], |
| "title": "DeterministicValidationResult", |
| "type": "object" |
| }, |
| "OriginalCandidateReference": { |
| "additionalProperties": false, |
| "description": "Reference to an earlier candidate retained for reductions or diagnostics.", |
| "properties": { |
| "UUID": { |
| "minLength": 1, |
| "title": "Uuid", |
| "type": "string" |
| }, |
| "canonical_path": { |
| "minLength": 1, |
| "title": "Canonical Path", |
| "type": "string" |
| }, |
| "level": { |
| "anyOf": [ |
| { |
| "enum": [ |
| "Topic", |
| "Term", |
| "Variable_Level_1", |
| "Variable_Level_2", |
| "Variable_Level_3" |
| ], |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Level" |
| }, |
| "name": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Name" |
| }, |
| "path_components": { |
| "items": { |
| "type": "string" |
| }, |
| "title": "Path Components", |
| "type": "array" |
| } |
| }, |
| "required": [ |
| "UUID", |
| "canonical_path" |
| ], |
| "title": "OriginalCandidateReference", |
| "type": "object" |
| }, |
| "OutputError": { |
| "additionalProperties": false, |
| "description": "Structured failure associated with an article or classification.", |
| "properties": { |
| "DOI": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Doi" |
| }, |
| "code": { |
| "minLength": 1, |
| "title": "Code", |
| "type": "string" |
| }, |
| "details": { |
| "anyOf": [ |
| { |
| "additionalProperties": true, |
| "type": "object" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Details" |
| }, |
| "index": { |
| "anyOf": [ |
| { |
| "type": "integer" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Index" |
| }, |
| "message": { |
| "minLength": 1, |
| "title": "Message", |
| "type": "string" |
| }, |
| "retry_count": { |
| "anyOf": [ |
| { |
| "minimum": 0, |
| "type": "integer" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Retry Count" |
| }, |
| "stage": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Stage" |
| } |
| }, |
| "required": [ |
| "code", |
| "message" |
| ], |
| "title": "OutputError", |
| "type": "object" |
| }, |
| "OutputWarning": { |
| "additionalProperties": false, |
| "description": "Non-fatal warning associated with an article or classification.", |
| "properties": { |
| "DOI": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Doi" |
| }, |
| "code": { |
| "minLength": 1, |
| "title": "Code", |
| "type": "string" |
| }, |
| "details": { |
| "anyOf": [ |
| { |
| "additionalProperties": true, |
| "type": "object" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Details" |
| }, |
| "index": { |
| "anyOf": [ |
| { |
| "type": "integer" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Index" |
| }, |
| "message": { |
| "minLength": 1, |
| "title": "Message", |
| "type": "string" |
| }, |
| "stage": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Stage" |
| } |
| }, |
| "required": [ |
| "code", |
| "message" |
| ], |
| "title": "OutputWarning", |
| "type": "object" |
| }, |
| "ProcessingMetadata": { |
| "additionalProperties": false, |
| "description": "Reproducibility and runtime metadata for an article result.", |
| "properties": { |
| "abstract_available": { |
| "anyOf": [ |
| { |
| "type": "boolean" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Abstract Available" |
| }, |
| "application_version": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Application Version" |
| }, |
| "article_fingerprint": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Article Fingerprint" |
| }, |
| "cache_used": { |
| "default": false, |
| "title": "Cache Used", |
| "type": "boolean" |
| }, |
| "completed_at": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Completed At" |
| }, |
| "configuration_hash": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Configuration Hash" |
| }, |
| "estimated_cost": { |
| "anyOf": [ |
| { |
| "minimum": 0.0, |
| "type": "number" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Estimated Cost" |
| }, |
| "input_tokens": { |
| "anyOf": [ |
| { |
| "minimum": 0, |
| "type": "integer" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Input Tokens" |
| }, |
| "model_calls": { |
| "anyOf": [ |
| { |
| "minimum": 0, |
| "type": "integer" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Model Calls" |
| }, |
| "model_name": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Model Name" |
| }, |
| "model_parameters": { |
| "additionalProperties": true, |
| "title": "Model Parameters", |
| "type": "object" |
| }, |
| "model_provider": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Model Provider" |
| }, |
| "output_tokens": { |
| "anyOf": [ |
| { |
| "minimum": 0, |
| "type": "integer" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Output Tokens" |
| }, |
| "processed_at": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Processed At" |
| }, |
| "processing_time_seconds": { |
| "anyOf": [ |
| { |
| "minimum": 0.0, |
| "type": "number" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Processing Time Seconds" |
| }, |
| "prompt_versions": { |
| "additionalProperties": { |
| "type": "string" |
| }, |
| "title": "Prompt Versions", |
| "type": "object" |
| }, |
| "run_id": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Run Id" |
| }, |
| "started_at": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Started At" |
| }, |
| "title_available": { |
| "anyOf": [ |
| { |
| "type": "boolean" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Title Available" |
| }, |
| "vocabulary_hash": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Vocabulary Hash" |
| }, |
| "vocabulary_version": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Vocabulary Version" |
| } |
| }, |
| "title": "ProcessingMetadata", |
| "type": "object" |
| }, |
| "ReviewStatus": { |
| "description": "Human-review workflow state.", |
| "enum": [ |
| "not_required", |
| "pending", |
| "completed" |
| ], |
| "title": "ReviewStatus", |
| "type": "string" |
| }, |
| "SemanticValidationResult": { |
| "additionalProperties": false, |
| "description": "Draft semantic-validation result shape for future pipeline stages.", |
| "properties": { |
| "decision": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Decision" |
| }, |
| "deepest_supported_path": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Deepest Supported Path" |
| }, |
| "deepest_supported_uuid": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Deepest Supported Uuid" |
| }, |
| "errors": { |
| "items": { |
| "$ref": "#/$defs/OutputError" |
| }, |
| "title": "Errors", |
| "type": "array" |
| }, |
| "evidence": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Evidence" |
| }, |
| "support_level": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "Support Level" |
| }, |
| "unsupported_components": { |
| "items": { |
| "type": "string" |
| }, |
| "title": "Unsupported Components", |
| "type": "array" |
| } |
| }, |
| "title": "SemanticValidationResult", |
| "type": "object" |
| }, |
| "SupportType": { |
| "description": "Uncalibrated model support category for a candidate selection.", |
| "enum": [ |
| "explicit", |
| "inferred", |
| "mixed" |
| ], |
| "title": "SupportType", |
| "type": "string" |
| } |
| }, |
| "additionalProperties": false, |
| "description": "Structured output for one article, preserving source fields exactly.", |
| "properties": { |
| "Abstract": { |
| "title": "Abstract", |
| "type": "string" |
| }, |
| "DOI": { |
| "title": "Doi", |
| "type": "string" |
| }, |
| "Title": { |
| "title": "Title", |
| "type": "string" |
| }, |
| "Year": { |
| "title": "Year", |
| "type": "integer" |
| }, |
| "classification_outcome": { |
| "anyOf": [ |
| { |
| "$ref": "#/$defs/ArticleClassificationOutcome" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null |
| }, |
| "classifications": { |
| "items": { |
| "$ref": "#/$defs/ClassificationRecord" |
| }, |
| "title": "Classifications", |
| "type": "array" |
| }, |
| "errors": { |
| "items": { |
| "$ref": "#/$defs/OutputError" |
| }, |
| "title": "Errors", |
| "type": "array" |
| }, |
| "no_classification_reason": { |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ], |
| "default": null, |
| "title": "No Classification Reason" |
| }, |
| "processing_metadata": { |
| "$ref": "#/$defs/ProcessingMetadata" |
| }, |
| "processing_status": { |
| "$ref": "#/$defs/ArticleProcessingStatus" |
| }, |
| "review_status": { |
| "$ref": "#/$defs/ReviewStatus", |
| "default": "not_required" |
| }, |
| "warnings": { |
| "items": { |
| "$ref": "#/$defs/OutputWarning" |
| }, |
| "title": "Warnings", |
| "type": "array" |
| } |
| }, |
| "required": [ |
| "DOI", |
| "Title", |
| "Year", |
| "Abstract", |
| "processing_status" |
| ], |
| "title": "ArticleResult", |
| "type": "object" |
| } |
|
|