a csvw:Table;
+
+<CSVWTable> a csvw:Table;
csvw:tableSchema [
csvw:columns [
csvw:name "Column";
csvw:datatype xsd:integer;
];
- ];
-.
-```
+ ].
+
The `csvw:datatype` must be used for the natural mapping of datatypes in RDF from CSV values.
diff --git a/csvw/section/overview.md b/csvw/section/overview.md
new file mode 100644
index 0000000..0699c93
--- /dev/null
+++ b/csvw/section/overview.md
@@ -0,0 +1,21 @@
+# Document Conventions {#document-convention}
+
+The following namespace prefixes are used throughout the rest of the document unless otherwise stated.
+
+| Prefix | Namespace |
+| ------- | --------------------------------- |
+| `rml:` | http://w3id.org/rml/ |
+| `csvw:` | https://www.w3.org/ns/csvw# |
+| `xsd:` | http://www.w3.org/2001/XMLSchema# |
+| `ex:` | http://example.org/ |
+| `:` | http://example.org/ |
+
+The examples are contained in color-coded boxes. We use the Turtle syntax [[Turtle]] to write RDF.
+
+
+# This box contains an example input data
+
+
+
+# This box contains an example mapping
+
diff --git a/csvw/section/reference-formulation.md b/csvw/section/reference-formulation.md
index c4808da..44e455a 100644
--- a/csvw/section/reference-formulation.md
+++ b/csvw/section/reference-formulation.md
@@ -6,6 +6,7 @@ A CSVW reference formulation (`rml:CSVWReferenceFormulation`) is a reference formulation identified with the IRI `rml:CSVW`. It has no specific properties.
+
## Iterator
The iterator for a logical source with the [=CSVW reference formulation=] is always row-based over a table.
@@ -15,20 +16,81 @@ The [=CSV row=] that is the result of evaluating the expression for expression maps associated with a logical source with the [=CSV reference formulation=] SHOULD be expressed as [=CSV column=] names of a [=CSV row=].
+An expression for expression maps associated with a logical source with the CSV reference formulation SHOULD be expressed as [=CSV column=] names of a [=CSV row=].
An expression is evaluated against a logical iteration which is a [=CSV value=].
The result of evaluating the expression is a [=CSV row=], which MUST be transformed to a list of [=CSV values=] that forms the expression evaluation result. The order of the [=CSV row=] MUST be preserved in the expression evaluation result.
-## CSV derivates
-CSVW allows to specify how a CSV should be parsed and read in terms of NULL values, separator, encoding, etc.
-These CSVW properties must be used by the engine to correctly read the CSV file.
+## CSVW metadata
+CSVW provides metadata which helps in parsing the CSV in terms of NULL values, separator, encoding, etc.
+These CSVW metadata must be used by the engine to correctly parse the CSV file.
+[[CSVW-Namespace]] vocabulary is used by this spec to define the metadata that
+helps with parsing the CSV file.
+
+
+### No headers
+CSVW enables parsing CSV files without a header row.
+Parsing CSV files with `1..N` columns with `csv:header` set to `false` will
+produce a table with the column names "1" to "N" respectively.
+
+
+Provided with the following input CSV file with 4 columns:
+
+647,434244.172304,428652.920455
+646,434546.276382,428380.451633
+6212,434644.819095,428412.411432
+651,434758.675879,428527.599874
+650,434821.652431,428439.025039
+...
+
+
+and the following RML mapping containing the CSVW reference formulation definitions for
+the aforementioned CSV file:
+
+<CSVWTable> a csvw:Table;
+ csvw:null "";
+ csvw:separator ";";
+ csvw:dialect [
+ csvw:header "false"^^xsd:boolean;
+ ];
+
+
+
+It is the same as working with the following CSV table where the headers are
+named "1", "2", "3", and "4":
+
+1,2,3,4 #numbered header row
+647,434244.172304,428652.920455
+646,434546.276382,428380.451633
+6212,434644.819095,428412.411432
+651,434758.675879,428527.599874
+650,434821.652431,428439.025039
+...
+
+
+
+
+### Default properties
+While the default reference formulation identifier (`rml:CSVW`) specifies the
+use of the CSVW reference formulation, it does not by itself describe how to
+parse a given CSV file.
+
+Thus, a default set of CSVW properties and corresponding values is defined
+to ensure consistent behaviour across implementations.
+These defaults provide a minimal, functional CSVW configuration suitable for
+parsing standard CSV files in the absence of explicit definition of
+CSVW properties.
+
+
+See https://www.w3.org/TR/2015/REC-tabular-metadata-20151217/#dialect-descriptions
+for the actual default values for CSVW dialect metadata.
-```
- a csvw:Table;
- csvw:separator ";";
- csvw:null "";
- csvw:encoding "utf-16";
-.
-```
+
+<CSVWTable> a csvw:Table;
+ csvw:null "";
+ csvw:separator ";";
+ csvw:dialect [
+ # Default CSVW dialect options
+ ];
+