Façade-X Mappings

Mappings from source formats to Façade-X.

This page lists the Façade-X format mappings. A format mapping specifies how resources in one source format are represented as Façade-X data sources, using the metamodel and the Schema vocabulary.

This is the editor's draft of this document. It changes with every update to the specification sources and is not a stable release. The latest release, version 0.1, is at https://w3c-facade-x.github.io/facade-x-specs/mappings.html.

This document is currently in active development. The list of formats and the status of each mapping will change as drafts are added.

Set of Documents

This document is one of seven Façade-X specification documents produced by the Data Façades Community Group:

  1. Façade-X Overview
  2. Façade-X Primer
  3. Façade-X Schema vocabulary
  4. Façade-X Engine vocabulary
  5. Façade-X Data Access in SPARQL
  6. Façade-X Concepts and Metamodel Specification
  7. Façade-X Mappings (this document)

Introduction

Each format mapping specifies:

A format mapping is selected by the media type of the resource, given by fxe:media-type or inferred by the engine.

Issues

Common principles

The following principles apply to every format mapping, unless the mapping states otherwise.

Values are strings. Every value is a literal of type xsd:string, unless the source format defines its own value types. Engines MUST NOT infer types from the lexical form of a string.

Lexical forms are kept. The lexical form of a value is its form in the source; engines MUST NOT rewrite it. When the source format defines value types, the datatype of a value is chosen so that the literal is well-typed:

  1. the natural XML Schema datatype for the source type, when the source form is in its lexical space;
  2. otherwise, another XML Schema datatype whose lexical space accepts the source form;
  3. otherwise, xsd:string.

Each mapping specifies this decision for its value types (see issue #41).

Order is kept. Where the source format orders its members, the order is kept in the numbers of the container-membership properties rdf:_1, rdf:_2, …, starting from 1.

Names become slot IRIs. Where a source member has a name (a key, a column header, an element or attribute name), the slot is a property whose IRI is minted from that name and the value of fxe:namespace. The minting rules are shared by all mappings; see issue #9.

Container identity. Containers are blank nodes, unless fxe:blank-nodes is false. Deterministic container IRIs are discussed in issue #17.

Mapping options apply. The mapping options of the Engine vocabulary (for example fxe:trim-strings and fxe:null-string) apply to every format.

Formats

Format Media types Status Document Issue
CSV text/csv, text/tab-separated-values Draft CSV mapping #29
JSON application/json Draft JSON mapping #30
XML application/xml, text/xml Draft XML mapping #31
HTML text/html Not started — —
Markdown text/markdown Not started — —
YAML application/yaml Not started — —
Spreadsheets XLS, XLSX Not started — —
Text text/plain Not started — —
Folders and archives ZIP, TAR, file system Not started — —

Whether XML and HTML share a single mapping based on the Document Object Model is an open question (see the 2026-07-06 meeting).

Tests

Test cases for the format mappings are maintained in the facade-x-tests repository, organised by format.