UNPKG

aiwg

Version:

Cognitive architecture for AI-augmented software development with structured memory, ensemble validation, and closed-loop correction. FAIR-aligned artifacts, 84% cost reduction via human-in-the-loop, standards adopted by 100+ organizations.

680 lines (638 loc) 15.7 kB
# OAIS Archival Information Package Schema # Based on REF-061 OAIS Reference Model # Issues: #208 (AIP), #209 (DIP/BibTeX), #210 (Fixity) $schema: "https://json-schema.org/draft/2020-12/schema" $id: "https://aiwg.io/schemas/oais-archival/v1" title: "OAIS Archival Information Package Schema" description: | Schema for OAIS-compliant Archival Information Packages (AIP), Dissemination Information Packages (DIP), and fixity verification per REF-061 OAIS Reference Model. type: object required: - version - aip_config - dip_config - fixity_config properties: version: type: string pattern: "^\\d+\\.\\d+\\.\\d+$" default: "1.0.0" aip_config: $ref: "#/$defs/AIPConfig" dip_config: $ref: "#/$defs/DIPConfig" fixity_config: $ref: "#/$defs/FixityConfig" $defs: AIPConfig: type: object description: "Archival Information Package configuration" properties: enabled: type: boolean default: true storage_path: type: string default: "docs/references/aips/" structure: type: object description: "AIP directory structure" properties: manifest: type: string default: "manifest.xml" content_dir: type: string default: "content/" metadata_dir: type: string default: "metadata/" checksums_file: type: string default: "checksums.txt" metadata_schemas: type: object properties: mets: type: boolean default: true description: "Include METS manifest" dublin_core: type: boolean default: true description: "Include Dublin Core descriptive metadata" premis: type: boolean default: true description: "Include PREMIS preservation metadata" DIPConfig: type: object description: "Dissemination Information Package configuration" properties: enabled: type: boolean default: true export_path: type: string default: "docs/references/exports/" formats: type: array items: type: string default: - bibtex - ris - json - markdown filtering: type: object properties: by_topic: type: boolean default: true by_priority: type: boolean default: true by_year: type: boolean default: true FixityConfig: type: object description: "Fixity checking configuration" properties: enabled: type: boolean default: true algorithm: type: string enum: [sha256, sha512, md5] default: "sha256" verification: type: object properties: on_access: type: boolean default: false description: "Verify on every access" scheduled: type: boolean default: true description: "Scheduled verification" schedule: type: string default: "weekly" description: "cron schedule for verification" logging: type: object properties: log_path: type: string default: ".aiwg/logs/fixity/" retention_days: type: integer default: 365 # AIP structure schema aip_structure: type: object description: "Single AIP package structure" required: - ref_id - manifest - content - metadata properties: ref_id: type: string pattern: "^REF-\\d{3}$" path: type: string description: "Path to AIP directory" manifest: $ref: "#/$defs/METSManifest" content: type: object properties: files: type: array items: type: object properties: name: type: string mime_type: type: string size_bytes: type: integer checksum: type: string metadata: type: object properties: dublin_core: $ref: "#/$defs/DublinCore" premis: $ref: "#/$defs/PREMIS" provenance: $ref: "#/$defs/Provenance" checksums: type: object additionalProperties: type: string description: "filename -> checksum mapping" METSManifest: type: object description: "METS metadata schema" properties: mets_version: type: string default: "1.12" profile: type: string default: "AIWG-AIP-1.0" objid: type: string description: "Object identifier (REF-XXX)" label: type: string description: "Human-readable title" create_date: type: string format: date-time last_mod_date: type: string format: date-time file_sec: type: array items: type: object properties: id: type: string mimetype: type: string size: type: integer checksum: type: string checksum_type: type: string href: type: string struct_map: type: array items: type: object properties: type: type: string label: type: string fileid: type: string DublinCore: type: object description: "Dublin Core descriptive metadata" properties: title: type: string creator: type: array items: type: string subject: type: array items: type: string description: type: string publisher: type: string contributor: type: array items: type: string date: type: string type: type: string enum: [Article, Book, Report, Preprint] format: type: string identifier: type: string description: "DOI, arXiv ID, etc." source: type: string language: type: string default: "en" relation: type: array items: type: string coverage: type: string rights: type: string PREMIS: type: object description: "PREMIS preservation metadata" properties: object: type: object properties: objectIdentifier: type: string objectCategory: type: string enum: [file, representation, bitstream] objectCharacteristics: type: object properties: compositionLevel: type: integer fixity: type: object properties: messageDigestAlgorithm: type: string messageDigest: type: string messageDigestOriginator: type: string size: type: integer format: type: object properties: formatDesignation: type: string formatRegistry: type: string event: type: array items: type: object properties: eventIdentifier: type: string eventType: type: string enum: [creation, ingestion, migration, validation] eventDateTime: type: string format: date-time eventOutcome: type: string linkingAgentIdentifier: type: string agent: type: array items: type: object properties: agentIdentifier: type: string agentName: type: string agentType: type: string enum: [person, organization, software] Provenance: type: object description: "Acquisition and processing provenance" properties: acquisition: type: object properties: date: type: string format: date-time source: type: string method: type: string enum: [download, manual, api] agent: type: string processing: type: array items: type: object properties: date: type: string format: date-time action: type: string agent: type: string notes: type: string # DIP export schemas bibtex_entry: type: object required: - entry_type - cite_key - title - author - year properties: entry_type: type: string enum: [article, book, inproceedings, techreport, misc] cite_key: type: string title: type: string author: type: string year: type: integer journal: type: string booktitle: type: string volume: type: string number: type: string pages: type: string publisher: type: string doi: type: string url: type: string note: type: string keywords: type: string abstract: type: string bibtex_template: | @{entry_type}{{{cite_key}, title = {{{title}}}, author = {{{author}}}, year = {{{year}}}, {optional_fields} note = {{AIWG Reference {ref_id}. Priority: {priority}}} }} ris_entry: type: object properties: TY: type: string description: "Type" TI: type: string description: "Title" AU: type: array items: type: string description: "Authors" PY: type: string description: "Year" JO: type: string description: "Journal" VL: type: string description: "Volume" SP: type: string description: "Start page" EP: type: string description: "End page" DO: type: string description: "DOI" UR: type: string description: "URL" N1: type: string description: "Notes" # Fixity verification schema fixity_record: type: object required: - ref_id - timestamp - status properties: ref_id: type: string timestamp: type: string format: date-time status: type: string enum: [verified, failed, missing] algorithm: type: string files: type: array items: type: object properties: path: type: string expected: type: string actual: type: string match: type: boolean errors: type: array items: type: string fixity_report: type: object properties: timestamp: type: string format: date-time total_packages: type: integer verified: type: integer failed: type: integer missing: type: integer details: type: array items: $ref: "#/$defs/fixity_record" # CLI commands cli_commands: aip_create: command: "aiwg research package <ref-id>" description: "Create AIP for reference" options: - name: "--source" description: "Path to source PDF/file" - name: "--metadata" description: "Path to metadata YAML" aip_validate: command: "aiwg research validate <ref-id>" description: "Validate AIP completeness" aip_list: command: "aiwg research list-packages" description: "List all AIPs" dip_export: command: "aiwg research export" description: "Export references as DIP" options: - name: "--format" description: "Export format (bibtex, ris, json, markdown)" - name: "--topic" description: "Filter by topic" - name: "--priority" description: "Filter by priority" - name: "--output" description: "Output file path" fixity_check: command: "aiwg research verify-fixity" description: "Verify all package checksums" options: - name: "--ref" description: "Check specific reference only" - name: "--report" description: "Generate detailed report" fixity_generate: command: "aiwg research generate-checksums" description: "Generate checksums for all packages" # Agent protocol agent_protocol: create_aip: description: "Create Archival Information Package" steps: - validate_ref_id_format - create_aip_directory - copy_source_content - extract_metadata_from_source - generate_dublin_core - generate_premis_record - generate_mets_manifest - calculate_checksums - create_checksums_file - validate_aip_completeness - return_aip_path export_dip: description: "Generate Dissemination Information Package" steps: - load_all_aips - apply_filters - for_each_format: - if_bibtex: - extract_bibtex_fields - format_bibtex_entry - if_ris: - extract_ris_fields - format_ris_entry - if_json: - extract_json_fields - if_markdown: - generate_markdown_table - write_export_file - return_export_path verify_fixity: description: "Verify package checksums" steps: - load_aip_list - for_each_aip: - load_checksums_file - for_each_file: - calculate_current_checksum - compare_with_stored - record_result - update_premis_event - generate_fixity_report - if_failures: - alert_administrators - persist_verification_log # Storage paths storage: aips: "docs/references/aips/" exports: "docs/references/exports/" logs: ".aiwg/logs/archival/" reports: ".aiwg/reports/fixity/" # Research targets (from REF-061 OAIS) research_targets: aip_compliance: "Full OAIS AIP structure with METS/Dublin Core/PREMIS" dip_generation: "BibTeX and multi-format exports" fixity_assurance: "SHA-256 checksums with scheduled verification" preservation: "Long-term preservation of research corpus" # Example AIP structure example_aip: | docs/references/aips/REF-001-aip/ ├── manifest.xml # METS manifest ├── content/ │ └── paper.pdf # Original source document ├── metadata/ │ ├── dublin-core.xml # Descriptive metadata │ ├── premis.xml # Preservation metadata │ └── provenance.yaml # Acquisition/processing history └── checksums.txt # SHA-256 checksums # References references: research: - "@.aiwg/research/findings/REF-061-oais.md" implementation: - "#208" - "#209" - "#210" related: - "@docs/references/" - "@agentic/code/frameworks/sdlc-complete/schemas/flows/provenance-system.yaml" - "@agentic/code/frameworks/sdlc-complete/schemas/flows/revision-history.yaml"