Feraston

FER / RESEARCH / SPEC

SCHEMA v3.2 · EXTRACTION

01 / STATEMENT

Feraston Research · Schema v3.2 · Extraction Specification

Extraction Specification

This specification defines the canonical extraction interface for Feraston Research records. Records may be extracted programmatically by authorized systems from PDF, HTML, and structured-text representations.

02 / SCOPE

Scope

SCOPE · CONFORMANCE REGISTRY

7 ITEMS
CONFORMANCE TARGET
Feraston Research Schema v3.2
DELIVERY FORMATS
PDF/A-2b, HTML, structured text
RECORD CLASS
Declared per record in TYPE
ACCESS CLASSIFICATION
EXECUTIVE | RESTRICTED | INTERNAL
DELIVERY MODE
Direct distribution; no public endpoint
RETENTION
Permanent, append-only post-finalization
EXTRACTION INTERFACE
Field-level extraction via canonical anchors

03 / CANONICAL FIELD ANCHORS

Canonical Field Anchors

Each extractable field is preceded by a canonical anchor. Anchors are case-sensitive and terminated by a colon. Extraction routines MUST locate fields by anchor and MUST NOT rely on positional offsets. A path is its container plus the anchor, lowercased. Anchors beyond those listed are captured as encountered.

ANCHOR · FIELD MAPPING

24 ANCHORS · 5 REGISTER PATHS

RECORD_CONTROL · 12 anchors

TYPE:STRING
record.typeINTELLIGENCE
RECORD_ID:IDENTIFIER
record.record_idFR-2026-03-04-V1
PRECEDING_RECORD:IDENTIFIER
record.preceding_recordFR-2026-02-25-V1
RECORD_SIGNATURE:UUID
record.record_signature9F3C8E7A-4A5B-4B74-9F3E-3D9D5F46F2B1
VERSION:STRING
record.version1.0
STATUS:ENUM
record.statusFINALIZED
ISSUED:DATE
record.issued2026-03-04
RECORD_MODE:STRING
record.record_modeAPPEND-ONLY
RETENTION_PERIOD:STRING
record.retention_periodPERMANENT
SCHEMA_VERSION:STRING
record.schema_version3.2
ACCESS_CLASSIFICATION:ENUM
record.access_classificationEXECUTIVE
ENTRY_COUNT:INTEGER
record.entry_count5

ENTRY · 9 anchors

ENTRY_ID:IDENTIFIER
record.entry[0].entry_idFR-2026-03-04-V1-E3
INGESTION_ID:UUID
record.entry[0].ingestion_id6D83685A-1F93-4780-9918-3E2F7C1C7E42
ENTITY:ARRAY
record.entry[0].entityBMW; HEXAGON; FIGURE AI
SUBJECT:STRING
record.entry[0].subjectHUMANOID ROBOT DEPLOYMENT FOLLOWING BODY-SHOP PILOTS
SUBJECT_CLASS:STRING
record.entry[0].subject_classDEPLOYMENT
DOMAIN:STRING
record.entry[0].domainROBOTICS INTEGRATION
GEOGRAPHY:ARRAY
record.entry[0].geographyGERMANY; UNITED STATES
[ANCHOR]:STRING
record.entry[0].[anchor]
FUNCTIONAL_DOMAIN:ARRAY
record.entry[0].functional_domainMANUFACTURING ENGINEERING AND INDUSTRIALIZATION; SYSTEMS AND INTEGRATION

ENTRY BODY · 3 anchors

DEFINITION:PROSE
record.entry[0].body.definitionBMW is deploying Hexagon’s AEON humanoid robots at its Leipzig assembly plant after trials with a Figure 02 unit in Spartanburg demonstrated body-shop handling performance.
STRUCTURE:PROSE
record.entry[0].body.structureIn the body-shop pilot, Figure 02 removed and positioned sheet metal, moving 90,000 parts and logging about 1.2 million steps over 1,250 operating hours in a constrained production setting.
EFFECT:PROSE
record.entry[0].body.effectNarrows feasible task candidates and informs definition of end-of-arm tooling, safety cases, control interfaces, and deployment boundaries before broader series rollout.

Register · 5 paths · keys named per record

REGISTER NAMESTRING
record.register[0].name
PROSE BODYPROSE
record.register[0].prose
ROW LABELSTRING
record.register[0].row[0].label
ROW VALUESTRING
record.register[0].row[0].value
BANDSTRING
record.register[0].row[0].band

04 / EXTRACTION RULES

Extraction Rules

EXTRACTION RULES · RULE REGISTRY

10 RULES
01

ANCHOR PRECEDENCE

MUSTMAY

Anchors MUST be matched at line start, with optional leading whitespace not exceeding two spaces. Anchors appearing within entry bodies are treated as literal content, not field markers. Anchors designated OPTIONAL under the active schema MAY be absent; their absence is not an extraction failure.

Applies to
ALL ANCHORS
02

VALUE TERMINATION

Descriptive

Field values are terminated by the next valid anchor, by a section divider, or by end-of-record. Multi-line values preserve internal whitespace. Trailing whitespace is stripped.

Applies to
ALL FIELD VALUES
On failure
None
03

ENTRY DELIMITATION

Descriptive

Entries are delimited by the appearance of the ENTRY_ID: anchor. The first ENTRY_ID: occurrence within a record begins the first entry; each subsequent occurrence terminates the prior entry and begins the next.

Applies to
ENTRY_ID
On failure
None
04

UUID VALIDATION

MUST

RECORD_SIGNATURE and INGESTION_ID values MUST conform to RFC 4122 UUID format. Records failing UUID validation MUST be rejected and flagged for review; partial extraction is not permitted.

Applies to
RECORD_SIGNATUREINGESTION_ID
05

VERSION CHAINING

MUSTSHOULD

PRECEDING_RECORD values establish the issuance chain. Extraction routines SHOULD validate chain continuity by reconciling each PRECEDING_RECORD against a known prior RECORD_ID. A record that opens a series carries no preceding reference and is not reported as broken. Broken chains MUST be reported but do not invalidate the current record.

Applies to
PRECEDING_RECORD
On failure
CHAIN_BROKEN
06

STATUS HANDLING

MUST

Only records with STATUS: FINALIZED are eligible for downstream indexing. DRAFT records MUST NOT be extracted. SUPERSEDED records MUST be retained but excluded from active reference sets.

Applies to
STATUS
07

SCHEMA CONFORMANCE

MUST

Records emitting a SCHEMA VERSION other than the active schema MUST be routed to the appropriate schema handler. Cross-schema extraction is not permitted within a single pipeline pass.

Applies to
SCHEMA_VERSION
On failure
SCHEMA_MISMATCH
08

ACCESS CLASSIFICATION ENFORCEMENT

MUST

Extraction routines MUST honor the ACCESS_CLASSIFICATION field. Records classified RESTRICTED or INTERNAL MUST NOT be redistributed beyond the originating recipient system. Downstream indexing MUST preserve classification metadata.

Applies to
ACCESS_CLASSIFICATION
09

REGISTER DELIMITATION

MUST

A register is delimited by its name at line start. Within it, rows are matched as LABEL: VALUE until the next register or entry. A band applies to the rows that follow it until the next band; rows before any band carry none. A prose body is not row-parsed. Keys are record-specific, and MUST NOT be rejected as unrecognized.

Applies to
REGISTERS
On failure
None
10

ENTRY COUNT RECONCILIATION

MUST

The ENTRY_COUNT value declares the number of entries contained in the record. Extraction routines MUST reconcile ENTRY_COUNT against the number of entries delimited by ENTRY_ID: anchors. A mismatch MUST be reported for review and does not, on its own, invalidate the record.

Applies to
ENTRY_COUNT
On failure
None

05 / REFERENCE EXTRACTION

Reference Extraction

The following block illustrates a canonical extraction pass over a record fragment. The example is non-normative and provided for reference only.

REFERENCE · EXTRACTION PASS

FR-2026-03-04-V1 · ENTRY E3

RECORD_CONTROL · 12 fields

TYPE: INTELLIGENCE
→ record.type = "INTELLIGENCE"
RECORD_ID: FR-2026-03-04-V1
→ record.record_id = "FR-2026-03-04-V1"
PRECEDING_RECORD: FR-2026-02-25-V1
→ record.preceding_record = "FR-2026-02-25-V1"
RECORD_SIGNATURE: 9F3C8E7A-4A5B-4B74-9F3E-3D9D5F46F2B1
→ record.record_signature = "9F3C8E7A-4A5B-4B74-9F3E-3D9D5F46F2B1"
VERSION: 1.0
→ record.version = "1.0"
STATUS: FINALIZED
→ record.status = "FINALIZED"
ISSUED: 2026-03-04
→ record.issued = "2026-03-04"
RECORD_MODE: APPEND-ONLY
→ record.record_mode = "APPEND-ONLY"
RETENTION_PERIOD: PERMANENT
→ record.retention_period = "PERMANENT"
SCHEMA_VERSION: 3.2
→ record.schema_version = "3.2"
ACCESS_CLASSIFICATION: EXECUTIVE
→ record.access_classification = "EXECUTIVE"
ENTRY_COUNT: 5
→ record.entry_count = 5

RECORD_ENTRIES · entry E3 · 8 anchors

ENTRY_ID: FR-2026-03-04-V1-E3
→ record.entry[0].entry_id = "FR-2026-03-04-V1-E3"
INGESTION_ID: 6D83685A-1F93-4780-9918-3E2F7C1C7E42
→ record.entry[0].ingestion_id = "6D83685A-1F93-4780-9918-3E2F7C1C7E42"
ENTITY: BMW; HEXAGON; FIGURE AI
→ record.entry[0].entity = ["BMW", "HEXAGON", "FIGURE AI"]
SUBJECT: HUMANOID ROBOT DEPLOYMENT FOLLOWING BODY-SHOP PILOTS
→ record.entry[0].subject = "HUMANOID ROBOT DEPLOYMENT FOLLOWING BODY-SHOP PILOTS"
SUBJECT_CLASS: DEPLOYMENT
→ record.entry[0].subject_class = "DEPLOYMENT"
DOMAIN: ROBOTICS INTEGRATION
→ record.entry[0].domain = "ROBOTICS INTEGRATION"
GEOGRAPHY: GERMANY; UNITED STATES
→ record.entry[0].geography = ["GERMANY", "UNITED STATES"]
FUNCTIONAL_DOMAIN: MANUFACTURING ENGINEERING AND INDUSTRIALIZATION; SYSTEMS AND INTEGRATION
→ record.entry[0].functional_domain = ["MANUFACTURING ENGINEERING AND INDUSTRIALIZATION", "SYSTEMS AND INTEGRATION"]

Entry body · 3 sections

DEFINITION:BMW is deploying Hexagon’s AEON humanoid robots at its Leipzig assembly plant after trials with a Figure 02 unit in Spartanburg demonstrated body-shop handling performance.
→ record.entry[0].body.definition= "BMW is deploying Hexagon’s AEON humanoid robots at its Leipzig assembly plant after trials with a Figure 02 unit in Spartanburg demonstrated body-shop handling performance."
STRUCTURE:In the body-shop pilot, Figure 02 removed and positioned sheet metal, moving 90,000 parts and logging about 1.2 million steps over 1,250 operating hours in a constrained production setting.
→ record.entry[0].body.structure= "In the body-shop pilot, Figure 02 removed and positioned sheet metal, moving 90,000 parts and logging about 1.2 million steps over 1,250 operating hours in a constrained production setting."
EFFECT:Narrows feasible task candidates and informs definition of end-of-arm tooling, safety cases, control interfaces, and deployment boundaries before broader series rollout.
→ record.entry[0].body.effect= "Narrows feasible task candidates and informs definition of end-of-arm tooling, safety cases, control interfaces, and deployment boundaries before broader series rollout."

Specimen FR-2026-03-04-V1 · entry E3 of 5 · ENTRY_COUNT reports the whole record · prose shortened

06 / DELIMITER NORMALIZATION

Delimiter Normalization

Several anchors emit values as semicolon-delimited lists. Extraction routines MUST normalize these into array structures.

DELIMITER · NORMALIZATION RULES

4 FIELDS

ENTITY

Semicolon-delimited list of entity names; normalize to array of strings

Specimen E3 · inputBMW; HEXAGON; FIGURE AI
Output["BMW", "HEXAGON", "FIGURE AI"]

GEOGRAPHY

Semicolon-delimited list of ISO regions or jurisdictions; normalize to array of strings

Specimen E3 · inputGERMANY; UNITED STATES
Output["GERMANY", "UNITED STATES"]

FUNCTIONAL_DOMAIN

Semicolon-delimited list of canonical functional domains; normalize to array of strings

Specimen E3 · inputMANUFACTURING ENGINEERING AND INDUSTRIALIZATION; SYSTEMS AND INTEGRATION
Output["MANUFACTURING ENGINEERING AND INDUSTRIALIZATION", "SYSTEMS AND INTEGRATION"]

SUBJECT_CLASS

Single-value scalar; free-form controlled vocabulary; do not enumerate against a fixed set

Specimen E3 · inputDEPLOYMENT
Output"DEPLOYMENT"

07 / ERROR HANDLING

Error Handling

ERROR · CONDITION REGISTRY

6 CONDITIONS

ANCHOR_NOT_FOUND

HALTEDFLAGGEDRULE 01

An anchor designated REQUIRED is missing from the input. Extraction halts; record flagged for review. Absence of an OPTIONAL anchor is not reported.

UUID_VALIDATION_FAILED

REJECTEDRULE 04

RECORD_SIGNATURE or INGESTION_ID does not conform to RFC 4122. Record rejected; partial extraction not permitted.

SCHEMA_MISMATCH

ROUTEDorREJECTEDRULE 07

SCHEMA_VERSION does not match the active handler. Record routed to versioned handler or rejected.

CHAIN_BROKEN

WARNINGRULE 05

PRECEDING_RECORD does not match any known prior RECORD_ID. Reported as warning; record not invalidated.

STATUS_INELIGIBLE

RETAINEDEXCLUDEDRULE 06

Record STATUS is not FINALIZED. Record retained but excluded from active indexing.

ACCESS_VIOLATION

REJECTEDLOGGEDRULE 08

Extraction attempted by a system without authorization for the record's ACCESS_CLASSIFICATION. Extraction rejected; access attempt logged.

Cross-References

3 REFERENCES

Feraston Research Extraction Specification · Schema v3.2