5. ./DATABLE
inhoud
• Bestand van binnen bekeken
– over enen en nullen
– structuur, identificatie en validatie
– risicofactoren
• CAD bestanden
– kenmerken
– formaten en hun risicofactoren
13. ./DATABLE
ASCII vs Binair bestand
ASCII
• human readable
• omvangrijk bestand
Binair
• enen en nullen
• compact
14. ./DATABLE
ASCII vs. Binair bestand
ASCII
• 8 bits = 1 karakter
• human readable
• omvangrijk bestand
• voorbeelden:
– TXT
– XML, HTML, SVG
– DXF
– Word (.docx)
Binair
• enen en nullen
• niet human readable
• compact
• voorbeelden:
– JPG
– .exe
– DWG
– Word (.doc)
15. ./DATABLE
Compressie
Datacompressie is een manier om informatie
met minder bits te coderen.
+ compacter bestand
- extra operatie op bestand
- veel verschillende algoritmes
- steeds binair
- soms gegevensverlies (lossy JPG, DWF)
16. ./DATABLE
Compressie
Lossless: proces is omkeerbaar
voorbeeld: zip, lzw, tar, …
Lossy is onomkeerbaar
voorbeeld: jpg
Compressiealgoritme kan op gehele bestand
of op deel ervan worden toegepast.
17. ./DATABLE
File system en files
Een bestandssysteem bepaalt hoe bestanden
worden opgeslagen en teruggevonden op een
gegevensdrager.
Elk besturingssysteem ondersteunt één of
meerdere bestandssystemen.
19. ./DATABLE
File system en files
file system gebruik opmerkingen
FAT32 Windows, Mac max file size 4GB
HFS+ Mac
NTFS Windows, Mac Mac: read only
ISO 9660 cd-rom, Mac, Windows file name length: 8+3
Amiga FFS Amiga OS 1.3
… …
20. ./DATABLE
Structuur van een bestand
• Header
– byte order (Endianess)
– magic number
– metadata
• Content (sections, blocks, packets, streams)
• Blobs
• Trailer
• Integrity checks (CRC)
25. ./DATABLE
Format preservation risico’s
(1)
• disclosure:
– specificatie niet beschikbaar
– specificatie in privé beheer
• adoption
– weinig gebruikers of ontwikkelaars
– weinig tools of besturingssystemen
• transparency:
– intransparante opbouw verhindert validatie
– compressie of encryptie
26. ./DATABLE
Format preservation risico’s
(2)
• self-documentation
– interpretatie afhankelijk van externe bron
– geen embedded metadata
• external dependencies
– afhankelijk van hardware of OS
• patents
• technical protection mechanisms
– DRM
29. ./DATABLE
Voorbeeld
bestandsspecificatie: PDF/A1
• ISO 19005-1:2005 Document
management -- Electronic document file
format for long-term preservation -- Part
1: Use of PDF 1.4 (PDF/A-1)
• Beheerd door ISO:
– tegen betaling beschikbaar
– open procedure
– review process
31. ./DATABLE
Bestandsidentificatie
Bestandsidentificatie is het bepalen aan welk
formaat een bestand beantwoordt.
• aan de hand van extensie of magic number
• uitgevoerd door besturingssysteem of tool
• te onderscheiden van karakterisering:
extractie van bepaalde eigenschappen
32. ./DATABLE
Bestandsidentificatie
Een file name extension is een suffix op de
bestandsnaam waarmee het formaat kan
worden geidentificeerd, maar:
• een extensie kan gewijzigd worden
• verschillende bestandsformaten delen
zelfde extensies
• extensie zegt niets of niet veel over versie
van het bestand
33. ./DATABLE
Bestandsidentificatie
Een file signature (magic number) is een
tekenreeks in de header van een bestand
waarmee het formaat kan worden bepaald.
• File format registries
– PRONOM
– fileinfo.com
• File identification tools
– FILE Command (Linux)
– TrID
– DROID
42. ./DATABLE
CAD in ontwerppraktijk
• “Ontwerpen gebeurt met potlood en papier.
Het uittekenen doet een medewerker met de
computer.”
• “We importeren een AutoCAD-tekening in
Sketchup en zetten het om naar 3D. Het
resultaat wordt afgedrukt en met viltstift
bijgewerkt. We scannen dit weer en bewerken
het verder in Photoshop.”
• “We scripten alles.”
55. ./DATABLE
CAD Design standards
• “huisstijl”
• ISO 16792:2006 geometric dimensions
and tolerances
• ISO 13567 organizing and naming CAD
layers
56. ./DATABLE
CAD software markt
• competitieve markt
• allianties (ODA vs. Autodesk)
• veel nieuwe releases met nieuwe features
• uitwisselbaarheid vs. marktprotectie
• verticale integratie
57. ./DATABLE
CAD bestanden:
eigenschappen
• Geometrie: blocks & objects
• Intelligence:
– layers
– attributes
• Structuur:
– embedded raster images
– xrefs
• Look & feel
– modelspace vs paper space
– print-to-pdf
• pcp- en pc2-files, de (vroeger plotstyle tables)
• paperspace
• Metadata
Introductie
we zijn gewend te werken met bestanden en bestandsformaten op computers, en meestal loopt dit goed en doet een computer wat we verwachten. Soms loopt het echter mis: je computer interpreteert het bestand verkeerd of kan er helemaal niets mee. Om de oorzaken te begrijpen gaan we bekijken hoe een bestand in het algemeen er uit ziet en wat er vereist is om dit door een computer te begrijpen. Daarbij komen een aantal risico’s aan het licht. Deze risicofactoren zijn groter naarmate de gebruikte bestandsformaten complexer zijn en naarmate ze ouder zijn. Digital preservation komt vaak neer op het herkennen van deze risico’s en het zoeken naar oplossingen om de risico’s te minimaliseren.
Problemen manifesteren zich op twee manieren:
een bestand wordt fout weergegeven: in dit voorbeeld zijn enkele visueel vast te stellen eigenschappen verdwenen (zoals kleuren) verdwenen.
in hetzelfde voorbeeld is een component van plaats veranderd (de centrale trap staat nu buiten het gebouw)
(3) erger is dit probleem, waar een bestand – om wat voor reden dan ook - helemaal niet meer leesbaar is.
Om deze drie problemen te tackelen, is inzicht nodig in de opbouw van een bestand en de factoren die een bestand leesbaar maken voor een computer.
In deze sessie bespreken we eerst een aantal algemene aspecten van een computer file of bestand. Daaruit kunnen we telkens enkele risicofactoren voor digital preservation uit afleiden.
In een tweede deel gaan we dieper in op CAD bestanden en de specifieke kenmerken en risico’s die ermee gepaard gaan.
Brainstorm: waaraan denk je bij het woord “bestand”?
wat is het precies?
waaraan herken je het?
welke soorten zijn er?
hoe gebruik je het?
…
Een bestand is in principe altijd binair: het bestaat uit bits (enen en nullen). In deze screenshot zie je een binaire weergave (boven de hexadecimale voorstelling)
Wanneer een bit wordt gewijzigd, verwijderd of toegevoegd, kan het bestand corrupt worden. Corrupt betekent dat de inhoud niet meer correct gerepresenteerd wordt, of dat het bestand onleesbaar is. Een ander woord is ‘bitrot’. De integriteit van het bestand (bit integriteit) is dus beschadigd.
Bitrot wordt meestal veroorzaakt tijdens het kopiëren van een bestand of door schade van de drager (chemisch verval, elektromagnetisch veld).
(DEMO: OxED op /Users/henkvanstappen/Dropbox/1_Projecten/2016_HNI_MVRDV/2_lespakket/4_samples/9938_inplanting_2007.dwg)
Opmerking:
Hexadecimale voorstelling: elke reeks van 4 bits wordt gerepresenteerd door cijfer of letter (0-9 A-F)
0100 0000 = 40
ASCII gebruikt reeksen van 8 bits om een letterteken voor te stellen:
0100 0000 = @
Daarmee is dus een eerste risicofactor geïdentificeerd: wanneer de bitstream beschadigd is, leidt dit tot informatieverlies.
Een maatregel om bitrot op te sporen is het gebruik van controlegetallen (vergelijkbaar met de laatste cijfers van je bankrekeningnummer of ISBN): het is een getal dat wordt berekend op basis van een reeks getallen of bits.
een parity bit is de achtste bit, berekend op de zeven voorgaande bits in een byte (geeft aan of het aantal 1-en even of oneven is)
een Cyclic Redundancy check (CRC) wordt onder meer gebruikt in sommige CAD-bestanden. Het biedt (soms) de mogelijkheid om foutcorrectie uit te voeren (wordt onder meer ook bij cd-rom gebruikt)
een MD5 checksum wordt doorgaans gebruikt op een volledig bestand of groep van bestanden. Een MD5 berekening genereert een (praktisch) unieke code. Wanneer je een MD5 berekent en een ander resultaat verkrijgt, betekent dit dus dat ergens in het bestand een wijziging is opgetreden. Vandaar dat MD5 een goed controle middel is om de integriteit van bestanden te controleren. Met MD5 kan je echter geen foutcorrectie uitvoeren: als er dus iets mis is me de integriteit, moet je beroep doen op een back-up.
Voorbeeld van een MD5 checksumberekening op het bestand dat we corrupt hebben gemaakt: een aanpassing van slechts 1 bit geeft een heel andere checksum.
MD5 wordt daarom vaak gebruikt in systemen of processen voor duurzame opslag. Hier een voorbeeld van een bag: dit is een ‘verpakking” waarin bestanden en hun metadata worden verpakt. Van elk onderdeel en van het geheel wordt een MD5 checksum gecreëerd om de bitintegriteit te verzekeren.
Bij het lezen van een bestand gebruikt een computer een bepaalde volgorde voor het inlezen van groepjes bytes. Wanneer die volgorde niet gerespecteerd wordt, klopt de informatie niet. Normaal gezien wordt deze volgorde (Endianess) aangegeven in de header.
Beeld: screenshot van dwg en dxf met 0xED.
ASCII is een manier om karakters (letters, cijfers, tekens) te coderen aan de hand van een combinatie van 8 bits. Bestanden die enkel uit een opeenvolging van dergelijke ASCII tekens bestaan, zijn dus ‘leesbaar’ alsof het een tekst is. Doordat het bestand ‘mensleesbaar’ is, is het ook transparanter en gemakkelijker te interpreteren. Nadeel van ASCII bestanden is dat ze vaak veel omvangrijker zijn dan hun binaire tegenhanger: zo is een DXF gemakkelijk 5x groter dan een DXF.
We komen later nog terug op dit risico.
optioneel: over risico’s van compressie
optioneel: over risico’s van compressie
Optioneel: file system (bijvoorbeeld FAT32, NTFS) zorgen voor de indeling van de drager in blokken waar (delen van) bestanden worden weggeschreven. Elk deel wordt geïndexeerd en is zo terugvindbaar. Een file system identificeert dus de files op een harde schijf.
RISICO: wanneer een file system niet wordt ondersteund, is het bestand niet terug te vinden.
Optioneel: file system (bijvoorbeeld FAT32, NTFS) zorgen voor de indeling van de drager in blokken waar (delen van) bestanden worden weggeschreven. Elk deel wordt geïndexeerd en is zo terugvindbaar. Een file system identificeert dus de files op een harde schijf.
RISICO: wanneer een file system niet wordt ondersteund, is het bestand niet terug te vinden.
Onderdelen van een typisch bestand
magic number: geeft indicatie van bestandsformaat
byte order: indicatie van leesrichting van bytes
metadata: ingebedde gegevens over het bestand (zie ook verder)
content: de eigenlijke inhoud van het bestand. Deze is vaak opgedeeld in verschillende secties of onderdelen.
blobs: binaire bestanden binnen ASCII bestand (bijvoorbeeld jpeg in tekst)
trailer: soms wordt een bestand afgelsoten met een trailer, die extra gegevens bevat over de inhoud van het bestand (bijvoorbeeld PDF)
sommige bestandsformaten voorzien in interne integrity checks, vaak in de vorm van een CRC. Een voorbeeld hiervan is het CAD-formaat DWG (niet in DXF!)
Een voorbeeld van een dxf file: de structuur is relatief eenvoudig te herkennen: het is een ASCII-gebaseerd formaat.
De structuur van een multipage TIFF file: het bestand begint met een header. Omdat het een multipage-tiff is (met meerdere afbeeldingen in één bestand) volgen dan een aantal tagslists met de metadata van elk beeld. Daarna volgt een verwijzing naar de plaats waar het beeld zelf begint.
MPEG is een bestandsformaat voor video: Het bestaat uit verschillende streams (voor beeld, geluid, ondertiteling). Een stuk complexer dus…
CSV: https://tools.ietf.org/pdf/rfc4180.pdf
CSV is een van de eenvoudigste bestandsformaten. De specificatie wordt op 2 pagina’s toegelicht. Dit formaat is zeer eenvoudig en daarom wel geschikt voor archiveringstoepassingen – toch bestaat er geen officiële standaard.
TIFF: http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf
Hoe zou je dit beoordelen met betrekking tot duurzaamheid?
http://www.iso.org/iso/catalogue_detail?csnumber=38920
Hoe zou je dit beoordelen met betrekking tot duurzaamheid?
brainstorm: hoe zou je het deze formaten beoordelen op vlak van duurzaamheid?
Bestanden worden vaak geïdentificeerd op basis van de extensie. Dit is echter niet erg betrouwbaar:
een extensie kan gewijzigd worden
verschillende bestandsformaten delen zelfde extensies
extensie zegt niets of niet veel over versie van het bestand
Bestanden worden vaak geïdentificeerd op basis van de extensie. Dit is echter niet erg betrouwbaar:
een extensie kan gewijzigd worden
verschillende bestandsformaten delen zelfde extensies
extensie zegt niets of niet veel over versie van het bestand
DROID identificeert bestanden op basis van het magic number. Als dat niet lukt, wordt het formaat geïdentificeerd aan de hand van de extensie. Die laatste methode is echter veel minder betrouwbaar. Enkele voorbeelden:
TP 175 BMW Center/1 PHASE panels/SWADECOM.PRE: geidentificeerd als een presentatieformaat van Freelance Graphics (Lotus).
TP 175 BMW Center/1 PHASE panels ACQ038/BMWDIREC/XTRAS/MIX/TIFFIMPO.RTE: geïdentificeerd als Revit template
TP 054 Nieuw Leyden/EWR 2.8/01 Drawings/runes shortcuts/formZ Short Cuts.sct: geïdentificeerd als SAS for MS-DOS Catalog, maar behoor ttot FormZ software.
Een veel gebruikte typologie van bestandsformaten
Gevraagd: geef enkele voorbeelden bij elke categorie
-> veel formaten kunnen ondergebracht worden bij meerdere categorieeen (bijvoorbeeld CSV: tekst en database; .doc is eigenlijk xml
-> indeling is slechts hulpmiddel
MIMEtypes:
application
text
image
video
audio
model
Punten, lijnen, vlakken en volumes kunnen op twee manieren voorgesteld worden:
(1) als een verzameling beeldpunten (pixels) in een vlak (raster) of ruimte (puntenwolk);
(2) als punten, lijnen, vlakken of volumes met bepaalde afmetingen, relatieve positie en eigenschappen (vectoren). CAD is steeds gebaseerd op vectoren
brainstorm:
Wat zijn de te bewaren eigenschappen?
Is dat bij elk bestand hetzelfde?
Is dat bij elk archief/elke architect hetzelfde?
is dat voor elke gebruiker hetzelfde?
Zijn er prioriteiten?