corpus-sync / fra-01
nominal

Record format

What arrives, and what it becomes

Providers publish in whatever their platform emits. Everything is crosswalked to unqualified Dublin Core on ingest; the original payload is retained alongside it and served on request.

Response shape

GetRecord · metadataPrefix=oai_dc
<record>
  <header>
    <identifier>oai:corpus-sync.cloud:4b19f2ac</identifier>
    <datestamp>2026-08-24T18:06:11Z</datestamp>
    <setSpec>legal-comparative</setSpec>
  </header>
  <metadata>
    <oai_dc:dc>
      <dc:title>normalized, whitespace collapsed</dc:title>
      <dc:creator>one element per contributor, family-first</dc:creator>
      <dc:date>ISO 8601, year granularity when day is absent</dc:date>
      <dc:language>ISO 639-3</dc:language>
      <dc:identifier>DOI preferred, handle as fallback</dc:identifier>
      <dc:source>originating provider</dc:source>
    </oai_dc:dc>
  </metadata>
</record>

Crosswalk

source field → target
SourceFormatTargetNote
245$a $bMARCXMLdc:titleSubfields joined with a colon
100$a, 700$aMARCXMLdc:creatorRelator codes dropped
260$c, 264$cMARCXMLdc:dateBrackets and approximations stripped
datacite:titlesDataCite 4dc:titlePrimary title only
datacite:publicationYearDataCite 4dc:dateYear granularity
mods:nameMODS 3.7dc:creatorPersonal names only; corporate go to dc:contributor

Normalization

Names

Contributor strings are split on the first comma and reassembled family-first. Initials keep their periods. Nothing is transliterated: names arrive in the script the provider used and stay in it.

Dates

Where a provider supplies a range, the earliest year wins and the range is preserved in dc:coverage. Uncertain dates lose their qualifiers, which is lossy and known.

Duplicates

Two records merge when DOIs match, or when title and first creator match after case folding and punctuation removal. Merges are recorded and reversible.

Known gaps

  • Qualified Dublin Core is accepted but flattened; qualifiers are not preserved.
  • Rights statements are copied verbatim and not interpreted.
  • Subject vocabularies are not reconciled across providers.
  • Records without a resolvable identifier are held but excluded from merge candidates.

Corrections to the crosswalk are welcome at ops@corpus-sync.cloud.