<?xml version="1.0" encoding="UTF-8"?>
<!--
YADS - JSON
This document describes YADS - A Description Service
in an Extended BNF for JavaScript Object Notation [1].
[1] http://www.ietf.org/rfc/rfc4627.txt
==
// From RDF Schema for YADS
Resource: yads-schema-2007-05-17
Comment: RDF Schema for YADS - A Description Service
Author: Tony Hammond <t.hammond@nature.com>
Revision: May 17, 2007 - Tony Hammond
==
(*
In the following, EBNF ISO/IEC 14977 : 1996(E) (for a draft
see eg <http://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf>) is
used to define a YADS resource description.
*)
(* Toplevel wrapper element *)
yads = "{", { groups }, "}" ;
(* Structural elements for aggregating resources and properties *)
groups = "[", group, { group } "]" ;
group = "{", ( item | nest ), "}" ;
item = ( resource | collection ), { property } ;
nest = ( resource , collection ), { property } ;
(* Structural element for aggregating structural elements *)
collection = "collection", ":", groups ;
(* Resource element as per RFC 3986 *)
resource = "resource", ":", any-uri ;
(* Property elements attributing metadata to resources *)
property = "property", ":", property-table ;
property-table = "{", properties, "}" ;
properties = property-pair [ ",", properties ] ;
property-pair = property-key, ":", property-value ;
property-key = any-cri ;
property-value = any-uri | string ;
(* Productions for "any-cri", "any-uri" and "string" terminals *)
any-cri = '"', chars, '"' ; (* per W3C WD, CURIE Syntax 1.0 *)
any-uri = '"', chars, '"' ; (* per RFC 3986 *)
string = '"', chars, '"' ; (* per RFC 4627, Sect. 2.5 *)
-->
<yads/>
|