Façade-X Schema vocabulary
Copyright
©
2026
the Contributors to the Façade-X Schema vocabulary
Specification, published by the
Data Façades Community Group under the
W3C Community Contributor License Agreement (CLA). A human-readable
summary
is available.
This document specifies the Façade-X Schema vocabulary.
This specification was published by the Data Façades Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Contributor License Agreement (CLA) there is a limited opt-out and other conditions apply. Learn more about W3C Community and Business Groups.
This is version 0.1 of this document, released on 2026-10-06, at https://w3c-facade-x.github.io/facade-x-specs/0.1/schema.html. This version will not change. The latest release is always at https://w3c-facade-x.github.io/facade-x-specs/schema.html. The editor's draft, which may include changes made after this release, is at https://w3c-facade-x.github.io/facade-x-specs/dev/schema.html. The issues addressed in this release, and those still open, are listed in the release notes.
This document is currently in active development.
GitHub Issues are preferred for discussion of this specification.
This document is one of seven Façade-X specification documents produced by the Data Façades Community Group:
This section is non-normative.
| Prefix | Namespace | Description |
|---|---|---|
| fx | http://sparql.xyz/facade-x/ns/ | The Façade-X RDF vocabulary: configuration and primitives |
| xyz | http://sparql.xyz/facade-x/data/ | The Façade-X RDF vocabulary: namespace for derived data |
| rdf | http://www.w3.org/1999/02/22-rdf-syntax-ns# | [rdf-schema] |
| rdfs | http://www.w3.org/2000/01/rdf-schema# | [rdf-schema] |
| xsd | http://www.w3.org/2001/XMLSchema# | [xmlschema-2] |
For example, for containers, the only properties allowed are:
ANY rdf:type fx:Slot, rdf:type
Or, there can be only one fx:Root ...
At the moment, we do it with a Generator meta-data descriptors and a string template, e.g. xyz:[source string].
The namespace used for the Façade-X Vocabulary is: http://sparql.xyz/facade-x/ns/
Container | Slot | SlotString | SlotNumber | Type | Value | Root
The class of containers
The class of slots
The class of slots in the source data that are numbers
The class of slots in the source data that are strings
The class of types in the source data
The class of values in the source data
The type of the main container. There can only be a single container of type fx:Root.
In Façade-X, named graphs are used to associate each data source with its container hierarchy. When a resource is processed, each of its data sources is assigned a distinct graph IRI. All triples belonging to that data source — its root container, slots, and values — are placed within the corresponding named graph. This allows multiple data sources to coexist within the same RDF dataset without ambiguity: the graph IRI acts as the identity of the data source, and querying or reasoning over a specific source is simply a matter of selecting its graph. For resources that contain a single data source, a single named graph is produced; for resources such as spreadsheets that contain multiple data sources (e.g. one per sheet), a named graph is produced for each.
The following provides a representation of the Façade-X vocabulary in OWL 2 Manchester Syntax. It is derived directly from the term definitions in the Façade-X Vocabulary section above.
Prefix: fx: <http://sparql.xyz/facade-x/ns/>
Prefix: xyz: <http://sparql.xyz/facade-x/data/>
Prefix: rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Prefix: owl: <http://www.w3.org/2002/07/owl#>
Ontology: <http://sparql.xyz/facade-x/ns/>
## Classes
Class: fx:Container
Annotations:
rdfs:label "Container",
rdfs:comment "The class of containers."
SubClassOf:
rdfs:Class
DisjointWith:
fx:Slot,
fx:Value,
fx:Type
Class: fx:Slot
Annotations:
rdfs:label "Slot",
rdfs:comment "The class of slots. Any instance of fx:Slot is a property
with domain fx:Container and range fx:Container or fx:Value."
SubClassOf:
rdfs:Property,
rdfs:domain value fx:Container,
rdfs:range value (fx:Container or fx:Value)
DisjointWith:
fx:Container,
fx:Value,
fx:Type
Class: fx:SlotNumber
Annotations:
rdfs:label "SlotNumber",
rdfs:comment "The class of slots whose key is a cardinal number.
Any instance of fx:SlotNumber is also an instance of
fx:Slot and of rdfs:ContainerMembershipProperty."
SubClassOf:
fx:Slot,
rdfs:ContainerMembershipProperty
DisjointWith:
fx:SlotString
Class: fx:SlotString
Annotations:
rdfs:label "SlotString",
rdfs:comment "The class of slots whose key is a string.
Any instance of fx:SlotString is also an instance of fx:Slot."
SubClassOf:
fx:Slot
DisjointWith:
fx:SlotNumber
Class: fx:Type
Annotations:
rdfs:label "Type",
rdfs:comment "The class of types in the source data."
SubClassOf:
rdfs:Class
DisjointWith:
fx:Container,
fx:Slot,
fx:Value
Class: fx:Value
Annotations:
rdfs:label "Value",
rdfs:comment "The class of values in the source data."
SubClassOf:
rdfs:Literal
DisjointWith:
fx:Container,
fx:Slot,
fx:Type
Class: fx:Root
Annotations:
rdfs:label "Root",
rdfs:comment "The type of the main container. There can only be a single container of type fx:Root."
SubClassOf:
fx:Container
DisjointWith:
fx:Slot,
fx:Value,
fx:Type
This section is non-normative.