Copyright © 2014-2017 Allotrope Foundation, All Rights Reserved. Confidential Draft.
The Allotrope Data Format (ADF) [ADF] consists of several APIs and taxonomies. This document constitutes the specification for the ADF Data Description (ADF-DD). It defines how to store meta data of Data Package and Data Cubes along with experimental or process data and contextual meta data. ADF-DD is based on semantic web and linked data concepts using the RDF Data Model.
THESE MATERIALS ARE PROVIDED "AS IS" AND ALLOTROPE EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES OF NON-INFRINGEMENT, TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current Allotrope publications and the latest revision of this technical report can be found in the Allotrope technical reports index at http://purl.allotrope.org/TR/.
This document is part of a set of specifications on the Allotrope Data Format [ADF]
This document was published by the Allotrope Foundation as a First Public Working Draft. This document is intended to become an Allotrope Recommendation. If you wish to make comments regarding this document, please send them to firstname.lastname@example.org. All comments are welcome.
Publication as a First Public Working Draft does not imply endorsement by the Allotrope Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
The Allotrope Data Format (ADF) defines an interface for storing scientific observations from analytical chemistry. It is intended for long-term stability of archived analytical data and fast real-time access to it. The ADF Data Description (ADF-DD) API defines an interface for storing functional and technical meta data.
The document is structured as follows: Next, the role of the ADF Data Description within the high-level structure of ADF is shown. Then, the requirements are listed, the core graph operations (query, insert, delete) are described.
Examples of the different operations are given in the Developer's Guide [ADF-DD-DG].
Within this specification, the following namespace prefix bindings are used:
Within this document the definitions of MUST, SHOULD and MAY are used as defined in [rfc2119].
Within this document, decimal numbers will use a dot "." as the decimal mark.
The following figure illustrates the high-level structure of the Allotrope Data Format (ADF) [ADF] API stack:
This document focuses on the ADF Data Description API.
This section introduces the key requirements to the Allotrope Data Format Data Description (ADF-DD) API. They are summarized in the following list:
The Data Description API MUST provide functions for the core operations on the RDF graph - i.e. the data stored in the ADF triple store (ADF-QS) [ADF-QS].
The API of Apache Jena [APACHE-JENA] constitutes the ADF Data Description API. In the following sections, the core functions of the API are described, examples are given in the ADF Data Description API Developer's Guide [ADF-DD-DG]. For a complete description of the API, please consult the JavaDoc API documentation and the sources listed in the References section.
In Apache Jena, an RDF graph [RDF] is called a model and is represented by the Model interface [APACHE-JENA], [JENA-INTRO]. Basically, the Jena Model that represents the RDF graph consists of a set of statements (also called triples), where each statement consists of a subject, predicate and object. The following sections describe the basic operations on the RDF graph. For more details on the Jena API, it is referred to [APACHE-JENA] and [JENA-INTRO].
The RDF graph MAY be queried by iterating over its statements or by executing SPARQL [SPARQL] queries on it.
The ADF-DD API MUST provide methods to modify the RDF Graph. 'Modify' means adding, removing and updating statements. Modification MUST be possible via the API and via SPARQL 1.1 UPDATE queries.
Statements MAY be created and inserted into the RDF graph either via the API method or via a SPARQL query using the INSERT operation. Note that in an RDF graph a statement is uniquely identified by its subject, predicate and object. Thus, if a statement already exists, no new statement MAY be created.
To remove statements from an RDF graph, the API method for removal MAY be used or a SPARQL query using the DELETE operation. For the latter, the removal with a SPARQL update query MAY optionally be based on a condition specified in a WHERE clause.
Updating statements in an RDF graph MAY be realized by combining INSERT and DELETE operations in one SPARQL Update query.
|0.3.0||2015-04-30||Initial Working Draft version|