A 100% RESTful API

Representational State Transfer, or REST, is the most convenient and modern way of implementing web services and exposing raw data on the web in a way that is easily understood by humans and yet conveniently machine/software parsable. Virtually every major language that is in common use today has libraries for doing HTTP communications (httplib2 or requests for Python, various HTTP clients for Java, LWP for Perl, and so forth). Because the OSDF API is completely RESTful, it is immediately compatible with every programming language that users and developers are likely to want to use for their research or development effort.

Data Validation with JSON-Schema

OSDF is flexible enough to store and retreive any JSON documents that users care to save. However, in many applications, developers and administrators may wish to impose structure and order on the data that they are working with. In these cases OSDF supports the use of JSON-Schema to validate incoming data for completeness and correctness. JSON-Schema is a specification for controlling the structure of JSON documents using JSON itself. Think of it as the analog of XML-Schema in the JSON world. Management of JSON-Schema documents in OSDF is also performed via specialized REST calls for maximum flexibility.

Connecting Data and Linkages

OSDF allows documents to connect to each other in order to allow data graphs to be constructed. When documents, or "nodes" as they are referred to in OSDF, are connected to each other, the edges between them can be assigned descriptive names. The end result is that the documents and relationships begin to capture and describe complex data more clearly than is typically possible in a traditional relational database. In addition, the API contains mechanisms to allow traversal of the graphs straightforward.

Powerful Queries Written with JSON

In addition to OSDF's graph capabilities, it also supports a powerful query/search capability that is also based on JSON. OSDF uses the ElasticSearch JSON Query DSL to allow developers to formulate complex queries without without having to deal with specialized database drivers. If you can create a JSON objects in your language of choice, you can query OSDF.

Permissions & Access Control

OSDF is designed to liberate data by making it more accessible, easier to parse and easier to query. However, sometimes a project may wish to restrict who can read, or who can modify the data. OSDF supports Access Control Lists (ACLs) and these ACLs are assigned and tracked on a per document basis to allow project administrators to have fine-grained control over who is able to read and/or modify their data.

Tracking Version History

Frequently projects need the ability to track changes to data over time. A project's user community may wish to inspect how the data has modified from version to version. OSDF version history features make make the retrieval of previous node/document version simple and straightforward.