DataScript Tools

About DataScript

There are dozens of languages for modelling abstract datatypes. For some of these, the binary representation of the defined types is implementation dependent and of no concern. Others do provide a binary encoding, but there is usually no way to retrofit an abstract specification to an existing binary format.

DataScript is a formal language for modelling binary datatypes, bitstreams or file formats. Using a formal language for defining such binary datatypes resolves all ambiguities typically found in textual or tabular specifications.

In addition, one can automatically generate encoders and decoders for a given binary format from such a formal specification, so that application developers do not have to worry about serialization and can focus on application logic instead.

After evaluating different data modelling languages and toolsets, DataScript was selected by the authors as the most promising approach for formally defining a car navigation database format.

About the dstools Project

This project is a spin-off of the Physical Storage Format Standardization Initiative (PSI), a joint effort of about 20 partner companies in the automotive industry to standardize a car navigation database format.

After evaluating different data modelling languages and toolsets, including ASN.1, CSN.1, UML, XML Schema and others, DataScript was selected by the PSI as the closest match to our requirements.

While the initial DataScript reference implementation by Godmar Back provided a great start, we found that some language extensions were desirable to better support our specific requirements. For this reason, we branched off our own project from Back's reference implementation.

As a major addition to the DataScript language, we introduced relational extensions, which permit the definition of hybrid data models, where the high-level access structures are implemented by relational tables and indices, whereas the bulk data are stored in single columns as BLOBs with a format defined in DataScript, hence the name Relational DataScript or rds. rds is currently built on top of the SQLite embedded database.

Authors

Project Manager

Contributors

Last updated: 29 Nov 2007