@mattias Tack, då kan man förstås fundera över varför DIGG inte verkar ha känt till den specifikationen.
Jag är osäker på om schemalänken fanns på sidan för datasetet förut, men den säger hur som helst ingenting om teckenkodning, separatortecken eller datatyper, det är som synes bara en lista över kolumnnamn.
https://lankadedata.se/spec/leverantorsreskontra/schema.json
Det är bra att det finns en manuell specifikation för leverantörsreskontra som beskriver fältvärden och sådant, men den svarar inte heller inte på de frågor jag ställde angående CSV-formatet. Hur ska jag veta som datakonsument hur jag ska avkoda filen?
I specifikationens punkt 3 om CSV-formatet står det:
För den här specifikationen innebär det att implementatörer rekommenderas även stödja semikolonseparerade filer.
För att särskilja data som är semikolonseparerade från kommaseparerade måste första raden se ut som:
kopare_id;kopare;verifikationsnummer;leverantor;leverantor_id;konto_nr;konto_text;belopp;datum;forvaltning;faktura_nr;grund;avtal;kommun_id,s_kod_nr
(Här har det dessutom smugit sig in en felskrivning där sista separatorn är ett kommatecken.)
Jag tycker det verkar märkligt. Är det jag som datakonsument som ska vara "implementatören" och stödja andra format än det standardiserade?
Det framgår inte tydligt hur jag ska lösa det från konsumentsidan.
Det står "för att särskilja data måste första raden se ut som ...", men ingen hänvisning till hur detta stöds eller implementeras i bibliotek eller programvaror. Ni verkar här uppmuntra dataleverantörer att lägga ut variationer som avviker från standardformatet och lämnar till konsumenten att tolka detta utifrån filinnehållet istället för att deklarera formatet i metadata.
Sedan blir det ju en motsägelse då man bryter mot specifikationen om man lägger ut en svenskspråkig Excel-export med semikolonavskiljare för fält och kommatecken för decimaltal?
Denna specifikation kräver dock att man använder punkt i decimaltal (se 2.1).
Antingen bör ni väl hålla er till standardiserad CSV enligt RFC eller deklarera i metadata all information om avvikelser som behövs för automatisk inläsning?
Så vitt jag kan se beskrivs det faktiskt i dokumentationen ni hänvisar till hur detta ska göras:
https://www.w3.org/TR/tabular-metadata/#dialect-descriptions
https://www.w3.org/TR/tabular-data-primer/#dialects
6.5 What about CSV that isn't standard CSV?
A lot of what's called "CSV" that's published on the web isn't actually CSV. It might use something other than commas (such as tabs or semi-colons) as separators between values, or might have multiple header lines.
The metadata that's described here can be used with files that contain tabular data but that aren't CSV. You can provide guidance to processors that are trying to parse those files through the dialect property on a table description.
EXAMPLE 126
{
"@context": "http://www.w3.org/ns/csvw",
"url": "http://example.org/data/unemployment.tsv",
"dialect": {
"delimiter": "\t",
"headerRowCount": 3
}
}
I datasetet på dataportalen så talar ni dock bara om att jag ska ignorera blanktecken runt fältvärden:
"dialect": {"trim": true},