- From: David Booth <david@dbooth.org>
- Date: Tue, 08 Sep 2015 13:04:09 -0400
- To: Peter Amstutz <peter.amstutz@curoverse.com>, public-linked-json@w3.org
- CC: Eric Prud'hommeaux <eric@w3.org>
On 09/07/2015 09:33 PM, Peter Amstutz wrote: > I wanted to introduce a project I am working on, "Schema Salad": > https://github.com/common-workflow-language/schema_salad Sounds very interesting! You might want to look at Shape Expressions (ShEx) also, if you haven't seen it: http://www.w3.org/2013/ShEx/Primer ShEx is not JSON-specific, but can validate RDF or even transform it. David Booth > > Salad is a schema language for describing structured linked data > documents in JSON or YAML documents. A Salad schema provides rules for > preprocessing, structural validation, and link checking for documents > described by a Salad schema. Salad builds on JSON-LD and the Apache > Avro data serialization system, and extends Avro with features for > rich data modeling such as inheritance, template specialization, > object identifiers, and object references. Salad was developed to > provide a bridge between the record oriented data modeling supported > by Apache Avro and the Semantic Web. > > The JSON data model is an extremely popular way to represent > structured data. It is attractive because of it's relative simplicity > and is a natural fit with the standard types of many programming > languages. However, this simplicity means that basic JSON lacks > expressive features useful for working with complex data structures > and document formats, such as schemas, object references, and > namespaces. > > JSON-LD is a W3C standard providing a way to describe how to interpret > a JSON document as Linked Data by means of a "context". JSON-LD > provides a powerful solution for representing object references and > namespaces in JSON based on standard web URIs, but is not itself a > schema language. Without a schema providing a well defined structure, > it is difficult to process an arbitrary JSON-LD document as idiomatic > JSON because there are many ways to express the same data that are > logically equivalent but structurally distinct. > > Several schema languages exist for describing and validating JSON > data, such as the Apache Avro data serialization system, however none > understand linked data. As a result, to fully take advantage of > JSON-LD to build the next generation of linked data applications, one > must maintain separate JSON schema, JSON-LD context, RDF schema, and > human documentation, despite significant overlap of content and > obvious need for these documents to stay synchronized. > > Schema Salad is designed to address this gap. It provides a schema > language and processing rules for describing structured JSON content > permitting URI resolution and strict document validation. The schema > language supports linked data through annotations that describe the > linked data interpretation of the content, enables generation of > JSON-LD context and RDF schema, and production of RDF triples by > applying the JSON-LD context. The schema language also provides for > robust support of inline documentation. > > This is a work in progress, and any comments, suggestions, or pointers > to related/similar technologies would be very much appreciated. Here > are a couple of example schemas: > > https://github.com/common-workflow-language/schema_salad/blob/master/schema_salad/metaschema.yml > > https://github.com/common-workflow-language/common-workflow-language/blob/salad_schema/schemas/draft-3/cwl-avro.yml > > Thanks, > Peter > > > >
Received on Tuesday, 8 September 2015 17:04:40 UTC