From 65be065d4370a736a5d324456a2004134e2c7140 Mon Sep 17 00:00:00 2001
From: "Daniel W. Hieber" Following the recommended data format in your own project is as easy as making sure you include the required properties in your data, and format them in the recommended ways. For example, if you wish to create a JSON object representing a phrase, you should follow the Sentence schema by making sure you include the Note that most schemas have a strongly-recommended (but optional) Check DLx's general contributing guidelines. Check out the Contributing Guidelines for this project. This repo is maintained by: Validate against: http://json-schema.org/schema# Schema ID: Schema ID: The Access Rights object provides information for archives on who should be allowed to access the current resource. Some access protocols used by language archives are already supported, and custom protocols may be used as, e.g. The Access Rights object provides information for archives on who should be allowed to access the current resource. Some access protocols used by language archives are already supported, and custom protocols may be used as, e.g. Notes about access rights for this resource, or any other special considerations regarding who should have Access. Notes about access rights for this resource, or any other special considerations regarding who should have Access. This attribute should be a MultiLangString rather than an Array of Note objects. Validate against: http://json-schema.org/schema# Schema ID: Schema ID: A postal Address. A postal Address The type of object. Must be set to The type of object (must be set to The street address, not including apartment or unit number. The street address, not including apartment or unit numberUsing the Schemas
transcription
, translation
, and words
properties on the JSON object. And if you want to include additional data, check to see whether there is already a recommended property you can use. For example, if you wish to indicate the time within the audio file that the phrase begins and ends, you would use the startTime
and endTime
properties, each of which is a number formatted in seconds and milliseconds (SS.MMM).type
property indicating the schema that that object adheres to.Want to Contribute?
-Maintainers
@@ -268,7 +268,7 @@
Maintainers
diff --git a/docs/schemas/Abbreviation.html b/docs/schemas/Abbreviation.html
index 6e7d5928..c3fd470d 100644
--- a/docs/schemas/Abbreviation.html
+++ b/docs/schemas/Abbreviation.html
@@ -75,7 +75,7 @@ Description
Home
Schemas
-
diff --git a/docs/schemas/Access.html b/docs/schemas/Access.html
index 3da618ef..c196e563 100644
--- a/docs/schemas/Access.html
+++ b/docs/schemas/Access.html
@@ -25,12 +25,12 @@ Access Rights
http://cdn.digitallinguistics.io/schemas/Access-2.0.1.json
http://cdn.digitallinguistics.io/schemas/Access-2.0.2.json
Description
- online: false
or permission: 'researcher only'
, etc. Note: The Access object does not have a type
property.online: false
or permission: "researcher only"
, etc. Note: The Access object does not have a type
property.Access Notes:
"notes"
Description
- Allowed Values (
enum
)Home
Schemas
-
diff --git a/docs/schemas/Address.html b/docs/schemas/Address.html
index 3b27359d..9d0a3f1f 100644
--- a/docs/schemas/Address.html
+++ b/docs/schemas/Address.html
@@ -25,12 +25,12 @@ Address
http://cdn.digitallinguistics.io/schemas/Address-1.1.0.json
http://cdn.digitallinguistics.io/schemas/Address-1.1.1.json
Description
- Type:
"type"
Description
- Address
.Address
)Street Address:
"streetAddress"
Description
-
"apartmentNumber"
Description
- The apartment or unit number, along with any abbreviations, e.g. Apt 20
.
+ The apartment or unit number, along with any abbreviations, e.g. Apt 20
@@ -245,7 +245,7 @@ Postal Box Number: "postalBoxNumber"
Description
-
The postal box number.
+ The postal box number
@@ -299,7 +299,7 @@ Locality / City: "locality"
Description
- The locality or city for this Address.
+ The locality or city for this Address
@@ -353,7 +353,7 @@ Region / State: "region"
Description
- The region or state for this Address.
+ The region or state for this Address
@@ -407,7 +407,7 @@ Country: "country"
Description
- The country this address is located in.
+ The country this address is located in
@@ -461,7 +461,7 @@ Postal Code: "postalCode"
Description
- The postal code for this address (as a string rather than a number).
+ The postal code for this address (as a string rather than a number)
@@ -520,7 +520,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Bundle.html b/docs/schemas/Bundle.html
index 8a24ac76..4a1b14ff 100644
--- a/docs/schemas/Bundle.html
+++ b/docs/schemas/Bundle.html
@@ -25,7 +25,7 @@ Bundle
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Bundle-1.1.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Bundle-1.1.1.json
@@ -83,7 +83,7 @@ Type: "type"
Description
- The type of object. Must be set to Bundle
.
+ The type of object (must be set to Bundle
)
@@ -140,7 +140,7 @@ Abbreviation: "abbreviation"
Description
- An abbreviation for this bundle.
+ An abbreviation for this bundle
@@ -161,6 +161,11 @@ Access Rights: "access"
+
+ Description
+ An object describing the acess rights for this bundle
+
+
Must be an instance of the Access schema.
@@ -179,6 +184,11 @@ Date Created: "dateCreated"
+
+ Description
+ The date that this bundle was created
+
+
Must be an instance of the DateCreated schema.
@@ -197,6 +207,11 @@ Date Modified: "dateModified"
+
+ Description
+ The date that this bundle was last modified
+
+
Must be an instance of the DateModified schema.
@@ -220,7 +235,7 @@ Locations: "locations"
Description
- An array of locations included in this bundle (usually locations that were visited during a day or session).
+ An array of locations included in this bundle (usually locations that were visited during a day or session)
@@ -268,6 +283,11 @@ Location
+
+ Description
+ An object describing a location associated with this bundle
+
+
Must be an instance of the Location schema.
@@ -300,7 +320,7 @@ Media: "media"
Description
- An array of media files included in this bundle.
+ An array of media files included in this bundle
@@ -348,6 +368,11 @@ Media File
+
+ Description
+ An object describing a media file in this bundle
+
+
Must be an instance of the Media schema.
@@ -377,7 +402,7 @@ Name: "name"
Description
- A name for this bundle.
+ A name for this bundle, optionally in multiple languages
@@ -403,7 +428,7 @@ Notes: "notes"
Description
- A collection of notes about this bundle.
+ A collection of notes about this bundle
@@ -451,6 +476,11 @@ Note
+
+ Description
+ A note about this bundle
+
+
Must be an instance of the Note schema.
@@ -483,7 +513,7 @@ Persons: "persons"
Description
- An array of persons included in this bundle.
+ An array of persons associated with this bundle
@@ -531,6 +561,11 @@ Person
+
+ Description
+ A person associated with this bundle
+
+
Must be an instance of the Person schema.
@@ -558,6 +593,11 @@ Tags: "tags"
+
+ Description
+ A hash containing tags for this bundle
+
+
Must be an instance of the Tags schema.
@@ -629,6 +669,11 @@ Text
+
+ Description
+ A Text included in this bundle
+
+
Must be an instance of the Text schema.
@@ -656,6 +701,11 @@ URL: "url"
+
+ Description
+ The URL where this bundle may be accessed
+
+
Must be an instance of the URL schema.
@@ -684,7 +734,7 @@ URL: "url"
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/DateCreated.html b/docs/schemas/DateCreated.html
index edd748d0..bc0811f9 100644
--- a/docs/schemas/DateCreated.html
+++ b/docs/schemas/DateCreated.html
@@ -75,7 +75,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/DateModified.html b/docs/schemas/DateModified.html
index 0acfbcc5..88460aab 100644
--- a/docs/schemas/DateModified.html
+++ b/docs/schemas/DateModified.html
@@ -75,7 +75,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/DateRecorded.html b/docs/schemas/DateRecorded.html
index 1c156bf6..1eb0ed07 100644
--- a/docs/schemas/DateRecorded.html
+++ b/docs/schemas/DateRecorded.html
@@ -75,7 +75,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/GeoJSON.html b/docs/schemas/GeoJSON.html
index 2143025f..1354a8c0 100644
--- a/docs/schemas/GeoJSON.html
+++ b/docs/schemas/GeoJSON.html
@@ -25,12 +25,12 @@ GeoJSON Object
Validate against: http://json-schema.org/schema#
- Schema ID: https://raw.githubusercontent.com/dwhieb/geojson-schema/master/geojson-schema.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/GeoJSON-1.0.1.json
Description
- This object represents a geometry, feature, or collection of features.
+ This object represents a geometry, feature, or collection of features. It should be structured according to the GeoJSON schema.
@@ -252,7 +252,7 @@ Geometry: "geometry"
Description
- A geometry is a GeoJSON object where the type member's value is one of the following strings: Point
, MultiPoint
, LineString
, MultiLineString
, Polygon
, MultiPolygon
, or GeometryCollection
.
+ A geometry is a GeoJSON object where the type member’s value is one of the following strings: Point
, MultiPoint
, LineString
, MultiLineString
, Polygon
, MultiPolygon
, or GeometryCollection
.
@@ -3384,7 +3384,7 @@ Coordinate Reference System (CRS): "crs"
Description
- The coordinate reference system (CRS) of a GeoJSON object is determined by its crs
member (referred to as the CRS object below). If an object has no crs member, then its parent or grandparent object's crs member may be acquired. If no crs member can be so acquired, the default CRS shall apply to the GeoJSON object.
+ The coordinate reference system (CRS) of a GeoJSON object is determined by its crs
member (referred to as the CRS object below). If an object has no crs member, then its parent or grandparent object’s crs member may be acquired. If no crs member can be so acquired, the default CRS shall apply to the GeoJSON object.
-
The default CRS is a geographic coordinate reference system, using the WGS84 datum, and with longitude and latitude units of decimal degrees.
@@ -4409,7 +4409,7 @@ Items
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Language.html b/docs/schemas/Language.html
index 1489d6f3..9ce38386 100644
--- a/docs/schemas/Language.html
+++ b/docs/schemas/Language.html
@@ -25,7 +25,7 @@ Language
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Language-6.0.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Language-6.0.1.json
@@ -83,7 +83,7 @@ Type: "type"
Description
- The type of object. Must be set to Language
.
+ The type of object (must be set to Language
)
@@ -140,7 +140,7 @@ Abbreviation: "abbreviation"
Description
- A short, human-readable abbreviation for this Language.
+ A short, human-readable abbreviation for this Language
@@ -166,7 +166,7 @@ Additional Names: "additionalNames"
Description
- An Array of additional names for this Language. Only use this property if the 'name' property is not sufficent to describe the various names for this language.
+ An Array of additional names for this Language. Only use this property if the "name" property is not sufficent to describe the various names for this language.
@@ -274,7 +274,7 @@ Autonym: "autonym"
Description
- The autonym for this language, optionally in multiple orthographies.
+ The autonym for this language, optionally in multiple orthographies
@@ -297,7 +297,7 @@ Date Created: "dateCreated"
Description
- The date and optionally time that this Language object was created.
+ The date and optionally time that this Language object was created
@@ -320,7 +320,7 @@ Date Modified: "dateModified"
Description
- The date an optionally time that this Language object was last modified.
+ The date an optionally time that this Language object was last modified
@@ -346,7 +346,7 @@ Glottolog Code: "glottolog"
Description
- The Glottolog code for this language variety, as a String in the format abcd1234.
+ The Glottolog code for this language variety, as a String in the format abcd1234
@@ -401,7 +401,7 @@ ISO 639-3 Code: "iso"
Description
- The ISO 639-3 code for this language variety, as a 3-letter String.
+ The ISO 639-3 code for this language variety, as a 3-letter String
@@ -456,7 +456,7 @@ Locations: "locations"
Description
- Geographic locations where this language variety is spoken, optionally with geographic coordinate data.
+ Geographic locations where this language variety is spoken, optionally with geographic coordinate data
@@ -504,6 +504,11 @@ Location
+
+ Description
+ A Location object describing a location where this language variety is spoken
+
+
Must be an instance of the Location schema.
@@ -559,7 +564,7 @@ Orthographies: "orthographies"
Description
- A collection of orthographies used to represent this Language.
+ A collection of orthographies used to represent this Language
@@ -607,6 +612,11 @@ Orthography
+
+ Description
+ An orthography used to represent this language
+
+
Must be an instance of the Orthography schema.
@@ -639,7 +649,7 @@ Phonemes: "phonemes"
Description
- The phonological inventory for this language, i.e. a collection of phonemes.
+ The phonological inventory for this language, i.e. a collection of phonemes
@@ -684,6 +694,11 @@ Phoneme
+
+ Description
+ A Phoneme object
+
+
Must be an instance of the Phoneme schema.
@@ -713,7 +728,7 @@ URL: "url"
Description
- A URL where the JSON data for this language can be found.
+ A URL where the JSON data for this language can be found
@@ -744,7 +759,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Lexeme.html b/docs/schemas/Lexeme.html
index 70ad3557..76d38e95 100644
--- a/docs/schemas/Lexeme.html
+++ b/docs/schemas/Lexeme.html
@@ -25,7 +25,7 @@ Lexeme
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Lexeme-2.1.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Lexeme-2.1.1.json
@@ -97,7 +97,7 @@ Type: "type"
Description
- The type of object. Must be set to Lexeme
.
+ The type of object (must be set to Lexeme
)
@@ -157,7 +157,7 @@ Allomorphs: "allomorphs"
Description
- A list of allomorphs of this Lexeme.
+ A list of allomorphs of this Lexeme
@@ -211,7 +211,7 @@ Allomorph
Description
- An allomorph of this Lexeme.
+ An allomorph of this Lexeme
@@ -341,7 +341,7 @@ Environment
Description
- A formalization of a (morpho)phonologial environemnt, e.g. _k
.
+ A formalization of a (morpho)phonologial environemnt, e.g. _k
@@ -502,7 +502,7 @@ Referenced Lexeme
Description
- The referenced component.
+ The referenced component
@@ -534,7 +534,7 @@ Date Created: "dateCreated"
Description
- The date and optionally time that this lexeme was created, in internet date-time format.
+ The date and optionally time that this lexeme was created, in internet date-time format
@@ -557,7 +557,7 @@ Date Modified: "dateModified"
Description
- The date and optionally time that this lexeme was last modified, in internet date-time format.
+ The date and optionally time that this lexeme was last modified, in internet date-time format
@@ -631,6 +631,11 @@ Example Sentence
+
+ Description
+ A Sentence object containing the example sentence
+
+
Must be an instance of the Sentence schema.
@@ -684,6 +689,11 @@ Tags
+
+ Description
+ The Features object must be a Tags object.
+
+
Must be an instance of the schema.
@@ -834,6 +844,11 @@ Lexicon Reference
+
+ Description
+ A reference to a lexeme
+
+
Must be an instance of the LexemeReference schema.
@@ -944,7 +959,7 @@ Lexical Relations: "lexicalRelations"
Description
- A list of the lexical relations that this lexeme has to other lexemes or variants.
+ A list of the lexical relations that this lexeme has to other lexemes or variants
@@ -1026,7 +1041,7 @@ Literal Meaning: "literalMeaning"
Description
- The literal meaning of the lexeme, optionally in multiple languages.
+ The literal meaning of the lexeme, optionally in multiple languages
@@ -1075,7 +1090,7 @@ Notes: "notes"
Description
- A collection of notes about this Lexeme.
+ A collection of notes about this Lexeme
@@ -1125,7 +1140,7 @@ Note
Description
- A note about this lexeme, optionally in multiple orthographies.
+ A note about this lexeme, optionally in multiple orthographies
@@ -1210,7 +1225,7 @@ Reference
Description
- A bibliographic Reference.
+ A bibliographic Reference
@@ -1245,7 +1260,7 @@ Sources: "sources"
Description
- A list of attested sources for this lexeme or variant.
+ A list of attested sources for this lexeme or variant
@@ -1361,7 +1376,7 @@ Syllable Structure: "syllableStructure"
Description
- An abstract representation of the syllable structure of this form, e.g. CVC
.
+ An abstract representation of the syllable structure of this form, e.g. CVC
@@ -1412,7 +1427,7 @@ Tags: "tags"
Description
- A collection of tags for this lexeme or variant.
+ A collection of tags for this lexeme or variant
@@ -1489,7 +1504,7 @@ URL: "url"
Description
- The URL where this lexeme or variant is located.
+ The URL where this lexeme or variant is located
@@ -1538,7 +1553,7 @@ Variants: "variants"
Description
- A list of variants of this Lexeme.
+ A list of variants of this Lexeme
@@ -1620,7 +1635,7 @@ Variant Type: "variantType"
Description
- If this lexeme is a variant of another lexeme or sense, this field can be used to specify the type of variant. Possible values might be a person's name (representing an idiolectal variant), or simply idiolectal
, or dialectal
(or the name of the dialect), or rapid speech
, etc.
+ If this lexeme is a variant of another lexeme or sense, this field can be used to specify the type of variant. Possible values might be a person’s name (representing an idiolectal variant), or simply idiolectal
, or dialectal
(or the name of the dialect), or rapid speech
, etc.
@@ -1646,7 +1661,7 @@ Senses: "senses"
Description
- A collection of senses for this Lexeme.
+ A collection of senses for this Lexeme
@@ -1699,7 +1714,7 @@ Sense
Description
- One of the meanings for this Lexeme. For example, the lexeme run
might have two senses: one with a definition of 'run in a race', and the other with a definition 'run water in a sink'.
+ One of the meanings for this Lexeme. For example, the lexeme run
might have two senses: one with a definition of "run in a race", and the other with a definition "run water in a sink".
@@ -1752,7 +1767,7 @@ Argument Structure: "argumentStructure"
Description
- An abstract representation of the argument structure for this sense.
+ An abstract representation of the argument structure for this sense
@@ -1826,7 +1841,7 @@ Definition: "definition"
Description
- The definition for this particular sense, optionally in multiple languages.
+ The definition for this particular sense, optionally in multiple languages
@@ -1923,6 +1938,11 @@ Example Sentence
+
+ Description
+ An example Sentence for this sense
+
+
Must be an instance of the Sentence schema.
@@ -1952,7 +1972,7 @@ Gloss: "gloss"
Description
- A Leipzig-style gloss for this sense.
+ A Leipzig-style gloss for this sense
@@ -2136,7 +2156,7 @@ Media Item
Description
- A media item associated with this lexeme.
+ A media item associated with this lexeme
@@ -2171,7 +2191,7 @@ Notes: "notes"
Description
- A collection of notes about this sense.
+ A collection of notes about this sense
@@ -2219,6 +2239,11 @@ Note
+
+ Description
+ A Note about this sense
+
+
Must be an instance of the Note schema.
@@ -2251,7 +2276,7 @@ Bibliographic References: "references"
Description
- A collection of bibliographic references about this particular sense.
+ A collection of bibliographic references about this particular sense
@@ -2299,6 +2324,11 @@ Reference
+
+ Description
+ A bibliographic reference pertaining to this sense
+
+
Must be an instance of the Reference schema.
@@ -2331,7 +2361,7 @@ Scientific Name: "scientificName"
Description
- The scientific name for this item.
+ The scientific name for this item
@@ -2385,7 +2415,7 @@ Sources: "sources"
Description
- A list of attested sources for this sense.
+ A list of attested sources for this sense
@@ -2498,7 +2528,7 @@ Tags: "tags"
Description
- A collection of tags for this Lexeme.
+ A collection of tags for this Lexeme
@@ -2572,6 +2602,11 @@ Usage
+
+ Description
+ An appropriate usage for this sense, optionally in multiple orthographies
+
+
Must be an instance of the MultiLangString schema.
@@ -2627,7 +2662,7 @@ Variants: "variants"
Description
- A list of variants of this sense.
+ A list of variants of this sense
@@ -2709,7 +2744,7 @@ Variant Type: "variantType"
Description
- If sense is a variant of another sense, this field can be used to specify the type of variant. Possible values might be a person's name (representing an idiolectal variant), or simply idiolectal
, or dialectal
(or the name of the dialect), or rapid speech
, etc.
+ If sense is a variant of another sense, this field can be used to specify the type of variant. Possible values might be a person’s name (representing an idiolectal variant), or simply idiolectal
, or dialectal
(or the name of the dialect), or rapid speech
, etc.
@@ -2771,7 +2806,7 @@ Default Value
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/LexemeReference.html b/docs/schemas/LexemeReference.html
index 5e0c86dd..78cf52fd 100644
--- a/docs/schemas/LexemeReference.html
+++ b/docs/schemas/LexemeReference.html
@@ -25,7 +25,7 @@ Lexeme Reference
Validate against: http://json-schema.org/schema
- Schema ID: http://cdn.digitallinguistics.io/schemas/LexemeReference-2.0.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/LexemeReference-2.0.1.json
@@ -83,7 +83,7 @@ Type: "type"
Description
- The type of object. Must be set to LexemeReference
.
+ The type of object (must be set to LexemeReference
)
@@ -143,7 +143,7 @@ Referenced Lexeme (Key): "lexeme"
Description
- The key of the lexeme being referenced.
+ The key of the lexeme being referenced
@@ -195,7 +195,7 @@ Referenced Lexeme (URL): "lexemeURL"
Description
-
The URL of the lexeme being referenced.
+ The URL of the lexeme being referenced
@@ -218,7 +218,7 @@ Referenced Lexicon (Key/Abbr): "lexicon"
Description
- The abbreviation of the lexicon being referenced.
+ The abbreviation of the lexicon being referenced
@@ -241,7 +241,7 @@ Referenced Lexicon (URL): "lexiconURL"
Description
- The URL of the lexicon being referenced.
+ The URL of the lexicon being referenced
@@ -341,7 +341,7 @@ Variant Type: "variantType"
Description
- If this reference is to a variant of a lexeme or sense, this field can be used to specify the type of variant. Possible values might be a person's name (representing an idiolectal variant), or simply idiolectal
, or dialectal
(or the name of the dialect), or rapid speech
, etc.
+ If this reference is to a variant of a lexeme or sense, this field can be used to specify the type of variant. Possible values might be a person’s name (representing an idiolectal variant), or simply idiolectal
, or dialectal
(or the name of the dialect), or rapid speech
, etc.
@@ -372,7 +372,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Lexicon.html b/docs/schemas/Lexicon.html
index 6efd6141..853f8db0 100644
--- a/docs/schemas/Lexicon.html
+++ b/docs/schemas/Lexicon.html
@@ -25,7 +25,7 @@ Lexicon
Validate against: http://json-schema.org/schema
- Schema ID: http://cdn.digitallinguistics.io/schemas/Lexicon-1.1.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Lexicon-1.1.1.json
@@ -86,7 +86,7 @@ Type: "type"
Description
- The type of object. Must be set to Lexicon
.
+ The type of object (must be set to Lexicon
)
@@ -143,7 +143,7 @@ Abbreviation: "abbreviation"
Description
- A human-readable abbreviation for this Lexicon.
+ A human-readable abbreviation for this Lexicon
@@ -166,7 +166,7 @@ Access Rights: "access"
Description
- An object describing who has what kinds of access rights to this Lexicon.
+ An object describing who has what kinds of access rights to this Lexicon
@@ -242,7 +242,7 @@ Contributor
Description
- A contributor to this Lexicon.
+ A contributor to this Lexicon
@@ -278,7 +278,7 @@ Date Created: "dateCreated"
Description
- The date that this lexicon was created.
+ The date that this lexicon was created
@@ -301,7 +301,7 @@ Date Modified: "dateModified"
Description
- The date that this lexicon was last modified.
+ The date that this lexicon was last modified
@@ -696,7 +696,7 @@ Default Value
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Location.html b/docs/schemas/Location.html
index c4a2e6bd..b874f465 100644
--- a/docs/schemas/Location.html
+++ b/docs/schemas/Location.html
@@ -25,12 +25,12 @@ Location
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Location-2.1.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Location-2.2.0.json
Description
- A location, optionally with accompanying geographic coordinate data.
+ A location, optionally with accompanying geographic coordinate data
@@ -83,7 +83,7 @@ Type: "type"
Description
- The type of object. Must be set to Location
.
+ The type of object (must be set to Location
)
@@ -140,7 +140,7 @@ Abbreviation: "abbreviation"
Description
- An abbreviation for this Location.
+ An abbreviation for this Location
@@ -184,6 +184,11 @@ Address: "address"
+
+ Description
+ An address associated with this location
+
+
Must be an instance of the Address schema.
@@ -202,6 +207,11 @@ Date Created: "dateCreated"
+
+ Description
+ The date that this Location object was created
+
+
Must be an instance of the DateCreated schema.
@@ -220,6 +230,11 @@ Date Modified: "dateModified"
+
+ Description
+ The date that this Location was last modified
+
+
Must be an instance of the DateModified schema.
@@ -244,7 +259,7 @@ Description
- Must be an instance of the geojson schema.
+ Must be an instance of the GeoJSON schema.
@@ -263,7 +278,7 @@ Name: "name"
Description
- A name for this location, e.g. Susan's House
or Valley High School
, or Shenandoah River
.
+ A name for this location, e.g. Susan’s House
or Valley High School
, or Shenandoah River
@@ -289,7 +304,7 @@ Notes: "notes"
Description
- A collection of notes about this Location.
+ A collection of notes about this Location
@@ -337,6 +352,11 @@ Note
+
+ Description
+ A note about this location
+
+
Must be an instance of the Note schema.
@@ -369,7 +389,7 @@ Bibliographic References: "references"
Description
- A collection of bibliographic references about this Location.
+ A collection of bibliographic references about this Location
@@ -417,6 +437,11 @@ Reference
+
+ Description
+ A bibliographic reference about this location
+
+
Must be an instance of the Reference schema.
@@ -444,6 +469,11 @@ Tags: "tags"
+
+ Description
+ A set of tags for this Location
+
+
Must be an instance of the Tags schema.
@@ -464,7 +494,7 @@ URL: "url"
Description
- The URL where information about this location can be retrieved.
+ The URL where information about this location can be retrieved
@@ -495,7 +525,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Media.html b/docs/schemas/Media.html
index 350c9d28..b0feab93 100644
--- a/docs/schemas/Media.html
+++ b/docs/schemas/Media.html
@@ -25,7 +25,7 @@ Media File
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Media-2.0.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Media-2.0.1.json
@@ -83,7 +83,7 @@ Type: "type"
Description
- The type of object. Must be set to Media
.
+ The type of object (must be set to Media
)
@@ -140,7 +140,7 @@ Abbreviation: "abbreviation"
Description
- An abbreviation for referring to this file.
+ An abbreviation for referring to this file
@@ -161,6 +161,11 @@ Access Rights: "access"
+
+ Description
+ Access rights for this media file
+
+
Must be an instance of the Access schema.
@@ -181,7 +186,7 @@ Content: "content"
Description
- A description of the content of this file, optionally in multiple languages or orthographies.
+ A description of the content of this file, optionally in multiple languages or orthographies
@@ -258,7 +263,7 @@ Creator: "creator"
Description
- The person who created this specific file.
+ The person who created this specific file
@@ -407,7 +412,7 @@ Filename: "filename"
Description
- The filename for this media item without spaces, but including the extension.
+ The filename for this media item without spaces, but including the extension
@@ -618,6 +623,11 @@ Language (Abbreviation)
+
+ Description
+ The abbreviation for this language
+
+
Must be an instance of the Abbreviation schema.
@@ -650,7 +660,7 @@ Length (in Time / Pages): "length"
<
Description
- The length of the file, in seconds and milliseconds if an audio/video file (in SS.MM
format), or pages if a document.
+ The length of the file, in seconds and milliseconds if an audio/video file (in SS.MM
format), or pages if a document
@@ -701,7 +711,7 @@ Location: "location"
Description
- The location where the content in this media file was recorded or produced.
+ The location where the content in this media file was recorded or produced
@@ -827,7 +837,7 @@ Original Media Item: "original"
Description
-
The URL of the media object (not the URL to the media file itself) that this file is derived from.
+ The URL of the Media object (not the URL to the media file itself) that this file is derived from
@@ -1038,7 +1048,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Morpheme.html b/docs/schemas/Morpheme.html
index 80b4edea..0b4964d1 100644
--- a/docs/schemas/Morpheme.html
+++ b/docs/schemas/Morpheme.html
@@ -25,7 +25,7 @@ Morpheme
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Morpheme-1.2.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Morpheme-1.2.1.json
@@ -84,7 +84,7 @@ Type: "type"
Description
- The type of object. Must be set to Morpheme
.
+ The type of object (must be set to Morpheme
)
@@ -141,7 +141,7 @@ Gloss: "gloss"
Description
- A gloss for this morpheme, optionally in multiple languages.
+ A gloss for this morpheme, optionally in multiple languages
@@ -164,7 +164,7 @@ Lexeme: "lexeme"
Description
- A Lexeme Reference to an item in a lexicon where more information about this morpheme may be found.
+ A Lexeme Reference to an item in a lexicon where more information about this morpheme may be found
@@ -190,7 +190,7 @@ Notes: "notes"
Description
- A collection of notes about this morpheme token.
+ A collection of notes about this morpheme token
@@ -238,6 +238,11 @@ Note
+
+ Description
+ A note about this morpheme
+
+
Must be an instance of the Note schema.
@@ -267,7 +272,7 @@ Tags: "tags"
Description
- A set of tags for this morpheme token.
+ A set of tags for this morpheme token
@@ -328,7 +333,7 @@ Default Value
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/MultiLangString.html b/docs/schemas/MultiLangString.html
index df0c1cba..a7819aed 100644
--- a/docs/schemas/MultiLangString.html
+++ b/docs/schemas/MultiLangString.html
@@ -30,7 +30,7 @@ Multi-Language Text / String
Description
- A piece of text in multiple languages. This is typically used for analyses rather than transcriptions of data (for that, see the Transcription schema). For example, a translation might be given in both English and Spanish; or the part of speech for a lexeme might be given as both English 'noun' and Spanish 'nombre'. Each key must be the abbreviation for a language (see the Abbreviation schema), and the value for that key is the string of text in that language. Note: MultiLangStrings do not have a type
property.
+ A piece of text in multiple languages. This is typically used for analyses rather than transcriptions of data (for that, see the Transcription schema). For example, a translation might be given in both English and Spanish; or the part of speech for a lexeme might be given as both English "noun" and Spanish "nombre". Each key must be the abbreviation for a language (see the Abbreviation schema), and the value for that key is the string of text in that language. Note: MultiLangStrings do not have a type
property.
@@ -137,7 +137,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Note.html b/docs/schemas/Note.html
index cec928b9..e351a43a 100644
--- a/docs/schemas/Note.html
+++ b/docs/schemas/Note.html
@@ -25,7 +25,7 @@ Note
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Note-2.1.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Note-2.1.1.json
@@ -83,7 +83,7 @@ Type: "type"
Description
- The type of object. Must be set to Note
.
+ The type of object (must be set to Note
)
@@ -140,7 +140,7 @@ Date Created: "dateCreated"
Description
- The date and optionally time that this note was created, in internet date-time format.
+ The date and optionally time that this note was created, in internet date-time format
@@ -163,7 +163,7 @@ Date Modified: "dateModified"
Description
- The date and optionally time that this note was last modified, in internet date-time format.
+ The date and optionally time that this note was last modified, in internet date-time format
@@ -189,7 +189,7 @@ Note Language: "language"
Description
- A language code or language name of the language that this note is written in.
+ A language code or language name of the language that this note is written in
@@ -266,7 +266,7 @@ Note Text: "text"
Description
- The text of the note itself.
+ The text of the note itself
@@ -320,7 +320,7 @@ Note Type: "noteType"
Description
- The type of Note.
+ The type of Note
@@ -393,7 +393,7 @@ Allowed Values (enum
)
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Orthography.html b/docs/schemas/Orthography.html
index a3fefb79..f0fea4c3 100644
--- a/docs/schemas/Orthography.html
+++ b/docs/schemas/Orthography.html
@@ -25,7 +25,7 @@ Orthography
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Orthography-1.3.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Orthography-1.3.2.json
@@ -84,7 +84,7 @@ Type: "type"
Description
- The type of object. Must be set to Orthography
.
+ The type of object (must be set to Orthography
)
@@ -141,7 +141,7 @@ Abbreviation: "abbreviation"
Description
- An abbreviation for this Orthography.
+ An abbreviation for this Orthography
@@ -289,7 +289,7 @@ Grapheme
Description
- An object representing a grapheme.
+ An object representing a grapheme
@@ -507,7 +507,7 @@ Grapheme Name: "name"
Description
- The name of this grapheme, if any.
+ The name of this grapheme, if any
@@ -697,7 +697,7 @@ Orthography Name: "name"
Description
- The name of this orthography (e.g. Practical
, Phonemic
), optionally in multiple languages (e.g. both Phonemic
and Fonémica
).
+ The name of this orthography (e.g. Practical
, Phonemic
), optionally in multiple languages (e.g. both Phonemic
and Fonémica
)
@@ -723,7 +723,7 @@ Notes: "notes"
Description
- A collection of notes about this Orthography.
+ A collection of notes about this Orthography
@@ -771,6 +771,11 @@ Note
+
+ Description
+ A note about this orthography
+
+
Must be an instance of the Note schema.
@@ -917,6 +922,11 @@ Tags: "tags"
+
+ Description
+ A set of tags for this orthography
+
+
Must be an instance of the Tags schema.
@@ -945,7 +955,7 @@ Tags: "tags"
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Person.html b/docs/schemas/Person.html
index dc445acc..66eb24d5 100644
--- a/docs/schemas/Person.html
+++ b/docs/schemas/Person.html
@@ -25,7 +25,7 @@ Person
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Person-1.2.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Person-1.2.1.json
@@ -84,7 +84,7 @@ Type: "type"
Description
- The type of object. Must be set to Person
.
+ The type of object (must be set to Person
)
@@ -162,6 +162,11 @@ Access Rights: "access"
+
+ Description
+ The access rights for information about this person
+
+
Must be an instance of the Access schema.
@@ -180,6 +185,11 @@ Address: "address"
+
+ Description
+ The address for this person
+
+
Must be an instance of the Address schema.
@@ -203,7 +213,7 @@ Birth Date: "birthDate"
Description
- This person's birth date, in internet date time format.
+ This person’s birth date, in internet date time format
@@ -255,7 +265,7 @@ Birth Place: "birthPlace"
Description
- This person's place of birth, as a location object.
+ This person’s place of birth, as a Location object
@@ -281,7 +291,7 @@ Email: "email"
Description
- This person's email.
+ This person’s email
@@ -336,7 +346,7 @@ Family Name(s) / Last Name(s): "familyName
Description
- This person's family name(s) (last name(s)).
+ This person’s family name(s) (last name(s))
@@ -390,7 +400,7 @@ Gender: "gender"
Description
- This person's self-reported gender identity.
+ This person’s self-reported gender identity
@@ -444,7 +454,7 @@ Given Name(s) / First Name(s): "givenName"
Description
- This person's given name(s) (first name(s)), including middle name(s), if any.
+ This person’s given name(s) (first name(s)), including middle name(s), if any
@@ -566,6 +576,11 @@ Language
+
+ Description
+ Each item in the "languages" Array must be a valid Language Object.
+
+
Must be an instance of the schema.
@@ -624,7 +639,7 @@ Age Learned
Description
- The age at which this person learned this Language.
+ The age at which this person learned this language
@@ -678,7 +693,7 @@ Notes
Description
- Notes about this person's use of this Language.
+ Notes about this person’s use of this language
@@ -785,6 +800,96 @@ Items
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -833,7 +938,7 @@ Proficiency
Description
- The proficiency level of this person in this Language.
+ The proficiency level of this person in this Language
@@ -887,7 +992,7 @@ Years Known
Description
- The number of years this person has known this Language.
+ The number of years this person has known this Language
@@ -999,7 +1104,7 @@ Notes: "notes"
Description
- An array of notes about this person.
+ An array of notes about this person
@@ -1049,7 +1154,7 @@ Note
Description
- A note about this person.
+ A note about this person
@@ -1084,7 +1189,7 @@ Phone Number: "phone"
Description
- A phone number for this Person.
+ A phone number for this Person
@@ -1138,7 +1243,7 @@ Pseudonym: "pseudonym"
Description
- A pseudonym for this Person.
+ A pseudonym for this Person
@@ -1192,7 +1297,7 @@ Roles: "roles"
Description
- An array of the roles that this person has in the context of the associated data, e.g. speaker
or transcriber
.
+ An array of the roles that this person has in the context of the associated data, e.g. speaker
or transcriber
@@ -1245,7 +1350,7 @@ Role
Description
- The role that this person has in the context of the associated data, e.g. speaker
or transcriber
.
+ The role that this person has in the context of the associated data, e.g. speaker
or transcriber
@@ -1303,6 +1408,11 @@ Tags: "tags"
+
+ Description
+ A set of tags for this Person
+
+
Must be an instance of the Tags schema.
@@ -1321,6 +1431,11 @@ URL: "url"
+
+ Description
+ The URL where the JSON data for this Person may be accessed
+
+
Must be an instance of the URL schema.
@@ -1349,7 +1464,7 @@ URL: "url"
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Phoneme.html b/docs/schemas/Phoneme.html
index 75abfe77..59fa7bc2 100644
--- a/docs/schemas/Phoneme.html
+++ b/docs/schemas/Phoneme.html
@@ -25,7 +25,7 @@ Phoneme
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Phoneme-2.1.1.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Phoneme-2.1.2.json
@@ -83,7 +83,7 @@ Type: "type"
Description
- The type of object. Must be set to Phoneme
.
+ The type of object (must be set to Phoneme
)
@@ -255,6 +255,11 @@ Allophone
+
+ Description
+ An allophone of this phoneme. Allophones are formatted exactly the same way as Phoneme Objects.
+
+
Must be an instance of the # schema.
@@ -516,7 +521,7 @@ Height: "height"
Description
- The height of a vowel.
+ The height of a vowel
@@ -582,7 +587,7 @@ IPA Transcription: "ipa"
Description
- The IPA representation of this Phoneme.
+ The IPA representation of this phoneme / allophone. Transcriptions of phonemes should contain only the phonemically contrastive sounds. Transcriptions of allophones should contain only the regularly-conditioned alternations.
@@ -636,7 +641,7 @@ Length: "length"
Description
- The length of this phoneme, whether for consonants (e.g. short
vs. geminate
) or vowels.
+ The length of this phoneme, whether for consonants (e.g. short
vs. geminate
) or vowels
@@ -701,7 +706,7 @@ Manner of Articulation: "manner"
Description
-
The manner of articulation, for consonants. Only one manner of articulation may be listed. Additional manners must be listed under the features
attribute. For example, the lateral fricative ɬ
might have a manner
set to fricative
and a feature lateral
, or vice versa, depending on the linguist's analysis.
+ The manner of articulation, for consonants. Only one manner of articulation may be listed. Additional manners must be listed under the features
attribute. For example, the lateral fricative ɬ
might have a manner
set to fricative
and a feature lateral
, or vice versa, depending on the linguist’s analysis.
@@ -768,7 +773,7 @@ Notes: "notes"
Description
- Notes about this Phoneme.
+ Notes about this Phoneme
@@ -816,6 +821,11 @@ Note
+
+ Description
+ A Note about this Phoneme
+
+
Must be an instance of the Note schema.
@@ -966,6 +976,11 @@ Reference
+
+ Description
+ A bibliographic reference
+
+
Must be an instance of the Reference schema.
@@ -1056,6 +1071,11 @@ Tags: "tags"
+
+ Description
+ A set of tags for this phoneme
+
+
Must be an instance of the Tags schema.
@@ -1202,7 +1222,7 @@ Voicing: "voicing"
Description
- Whether the phoneme is voiced, voiceless, or partially voiced.
+ Whether the phoneme is voiced, voiceless, or partially voiced
@@ -1269,7 +1289,7 @@ Allowed Values (enum
)
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Reference.html b/docs/schemas/Reference.html
index 62b70d52..0c09b067 100644
--- a/docs/schemas/Reference.html
+++ b/docs/schemas/Reference.html
@@ -25,7 +25,7 @@ Bibliographic Reference
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Reference-2.0.2.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Reference-2.0.3.json
@@ -55,7 +55,7 @@ Person: "person"
Description
- An object representing a Person.
+ An object representing a Person
@@ -102,7 +102,7 @@ First Name: "firstName"
Description
- The first name(s) of this author.
+ The first name(s) of this author
@@ -156,7 +156,7 @@ Last Name: "lastName"
Description
- The last name(s) of this author.
+ The last name(s) of this author
@@ -259,7 +259,7 @@ Authors: "authors"
Description
- An array of authors for this Reference.
+ An array of authors for this Reference
@@ -302,8 +302,16 @@ Items
+
+ Author
+
+
+ Description
+ A Person Object representing an author
+
+
Must be an instance of the #person schema.
@@ -336,7 +344,7 @@ City: "city"
Description
- The city in which this reference was published.
+ The city in which this reference was published
@@ -390,7 +398,7 @@ Edition: "edition"
Description
- The edition of this Reference.
+ The edition of this Reference, formatted as an integer
@@ -444,7 +452,7 @@ Editors: "editors"
Description
- An array of editors for this Reference.
+ An array of editors for this Reference
@@ -497,7 +505,7 @@ Editor
Description
- An object representing an editor.
+ An object representing an editor
@@ -544,7 +552,7 @@ First Name: "firstName"
Description
- The first name(s) of this editor.
+ The first name(s) of this editor
@@ -598,7 +606,7 @@ Last Name: "lastName"
Description
- The last name(s) of this editor.
+ The last name(s) of this editor
@@ -676,7 +684,7 @@ Issue: "issue"
Description
- The publication issue.
+ The publication issue
@@ -730,7 +738,7 @@ Pages: "pages"
Description
- The page numbers of this Reference.
+ The page numbers of this Reference
@@ -784,7 +792,7 @@ Publication: "publication"
Description
- The publication where this item was published.
+ The publication where this item was published
@@ -838,7 +846,7 @@ Publisher (or Institution): "publisher"
Description
- The name of the publisher of this reference, or the institution where it was published.
+ The name of the publisher of this reference, or the institution where it was published
@@ -892,7 +900,7 @@ Series: "series"
Description
- The series in which this publication was published.
+ The series in which this publication was published
@@ -946,7 +954,7 @@ Title: "title"
Description
- The title of this publication.
+ The title of this publication
@@ -1000,7 +1008,7 @@ Translators: "translators"
Description
- An array of translations for this Reference.
+ An array of translations for this Reference
@@ -1077,7 +1085,7 @@ Publication Type: "type"
Description
- The type of publication.
+ The type of publication
@@ -1150,7 +1158,7 @@ URL: "url"
Description
- A URL for this Reference.
+ A URL for this Reference
@@ -1205,7 +1213,7 @@ Volume: "volume"
Description
- The volume number for this publication.
+ The volume number for this publication
@@ -1259,7 +1267,7 @@ Year: "year"
Description
- The year this item was published.
+ The year this item was published
@@ -1321,7 +1329,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Sentence.html b/docs/schemas/Sentence.html
index c1d74ce2..0054158a 100644
--- a/docs/schemas/Sentence.html
+++ b/docs/schemas/Sentence.html
@@ -25,7 +25,7 @@ Sentence
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Sentence-1.1.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Sentence-1.1.1.json
@@ -106,7 +106,7 @@ Type: "type"
Description
- The type of object. Must be set to Sentence
.
+ The type of object (must be set to Sentence
)
@@ -298,7 +298,7 @@ Notes: "notes"
Description
- A collection of notes about this Sentence.
+ A collection of notes about this Sentence
@@ -348,7 +348,7 @@ Note
Description
- A note about this Sentence, optionally in multiple orthographies.
+ A note about this Sentence, optionally in multiple orthographies
@@ -455,6 +455,11 @@ Tags: "tags"
+
+ Description
+ A set of tags for this Sentence
+
+
Must be an instance of the Tags schema.
@@ -699,7 +704,7 @@ URL: "url"
Description
- The URL where this Sentence can be retrieved in JSON format.
+ The URL where this Sentence can be retrieved in JSON format
@@ -725,7 +730,7 @@ Words: "words"
Description
- A collection of the word tokens contained in this Sentence.
+ A collection of the word tokens contained in this Sentence
@@ -773,6 +778,11 @@ Word
+
+ Description
+ A Word Object
+
+
Must be an instance of the Word schema.
@@ -810,7 +820,7 @@ Word
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Tags.html b/docs/schemas/Tags.html
index 0624d1e3..b7e2d98d 100644
--- a/docs/schemas/Tags.html
+++ b/docs/schemas/Tags.html
@@ -273,7 +273,7 @@ Validates Against (oneOf
)
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Text.html b/docs/schemas/Text.html
index 7367ff13..da3ca20b 100644
--- a/docs/schemas/Text.html
+++ b/docs/schemas/Text.html
@@ -25,7 +25,7 @@ Text
Validate against: http://json-schema.org/schema#
- Schema ID: http://cdn.digitallinguistics.io/schemas/Text-2.1.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Text-2.1.1.json
@@ -84,7 +84,7 @@ Type: "type"
Description
- The type of object. Must be set to Text
.
+ The type of object (must be set to Text
)
@@ -139,6 +139,11 @@ Abbreviation: "abbreviation"
+
+ Description
+ An abbreviation for this Text
+
+
Must be an instance of the Abbreviation schema.
@@ -157,6 +162,11 @@ Access Rights: "access"
+
+ Description
+ An Object describing the acess rights to this Text
+
+
Must be an instance of the Access schema.
@@ -180,7 +190,7 @@ Contributors: "contributors"
Description
- A collection of people who contributed to the creation or analysis of this text in some way.
+ A collection of people who contributed to the creation or analysis of this text in some way
@@ -225,6 +235,11 @@ Contributor
+
+ Description
+ A Person Object that describes this contributor
+
+
Must be an instance of the Contributor schema.
@@ -252,6 +267,11 @@ Date Created: "dateCreated"
+
+ Description
+ The date that this Text was created in the database (not the date it was recorded; see the "dateRecorded" property instead)
+
+
Must be an instance of the DateCreated schema.
@@ -270,6 +290,11 @@ Date Modified: "dateModified"
+
+ Description
+ The date that this Text Object was last modified (not the date that the recording of the text was modified)
+
+
Must be an instance of the DateModified schema.
@@ -288,6 +313,11 @@ Date Recorded: "dateRecorded"
+
+ Description
+ The date that this text was recorded
+
+
Must be an instance of the DateRecorded schema.
@@ -311,7 +341,7 @@ Discourse Type: "discourseType"
Description
- The type of discourse event, e.g. monologue, dialogue, or song.
+ The type of discourse event, e.g. monologue, dialogue, or song
@@ -363,7 +393,7 @@ Genre: "genre"
Description
- The genre of the text, e.g. folktale, personal narrative, or expository.
+ The genre of the text, e.g. folktale, personal narrative, or expository
@@ -386,7 +416,7 @@ Location: "location"
Description
- The location where this text was recorded.
+ The location where this text was recorded
@@ -460,6 +490,11 @@ Media Items
+
+ Description
+ An object describing a media file
+
+
Must be an instance of the Media schema.
@@ -492,7 +527,7 @@ Notes: "notes"
Description
- A collection of notes about this Text.
+ A collection of notes about this Text
@@ -540,6 +575,11 @@ Note
+
+ Description
+ A Note Object
+
+
Must be an instance of the Note schema.
@@ -563,7 +603,7 @@ Note
- Sentences: "sentences"
+ References: "references"
@@ -572,7 +612,7 @@ Sentences: "sentences"
Description
- A collection of all the Sentences contained in this Text. The DLx specification imposes no requirements regarding how the linguist should segment the text into Sentences. The linguist may decide to segment their text based on intonation units, turns, or any other appropriate linguistic subdivision. The order of Sentences in the collection must reflect their actual order in the Text. Sentences do not have to be JSON unique - a Sentence may be repeated in a text, for example.,
+ A list of any bibliographic references concerning or relating to this Text
@@ -600,7 +640,6 @@ Description
- Min items: 1
@@ -614,12 +653,17 @@ Items
- Sentence
+ Reference
+
+ Description
+ A bibliographic reference about this text
+
+
- Must be an instance of the Sentence schema.
+ Must be an instance of the Reference schema.
@@ -641,7 +685,7 @@ Sentence
- References: "references"
+ Sentences: "sentences"
@@ -650,7 +694,7 @@ References: "references"
Description
- A list of any bibliographic references concerning or relating to this Text.
+ A collection of all the Sentences contained in this Text. The DLx specification imposes no requirements regarding how the linguist should segment the text into Sentences. The linguist may decide to segment their text based on intonation units, turns, or any other appropriate linguistic subdivision. The order of Sentences in the collection must reflect their actual order in the Text. Sentences do not have to be JSON unique - a Sentence may be repeated in a text, for example.,
@@ -678,6 +722,7 @@ Description
+ Min items: 1
@@ -691,12 +736,17 @@ Items
- Reference
+ Sentence
+
+ Description
+ A Sentence Object
+
+
- Must be an instance of the Reference schema.
+ Must be an instance of the Sentence schema.
@@ -722,6 +772,11 @@ Status: "status"
+
+ Description
+ The status of this text (in a fieldwork workflow)
+
+
Must be an instance of the status schema.
@@ -740,6 +795,11 @@ Tags: "tags"
+
+ Description
+ A set of tags associated with this Text
+
+
Must be an instance of the Tags schema.
@@ -781,6 +841,11 @@ URL: "url"
+
+ Description
+ The URL where this data can be retrieved in JSON format
+
+
Must be an instance of the URL schema.
@@ -809,7 +874,7 @@ URL: "url"
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Transcription.html b/docs/schemas/Transcription.html
index 78b44010..b601b358 100644
--- a/docs/schemas/Transcription.html
+++ b/docs/schemas/Transcription.html
@@ -137,7 +137,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Url.html b/docs/schemas/Url.html
index 809a1ae0..e952b92c 100644
--- a/docs/schemas/Url.html
+++ b/docs/schemas/Url.html
@@ -75,7 +75,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/docs/schemas/Word.html b/docs/schemas/Word.html
index 2fcd872f..ad2779ca 100644
--- a/docs/schemas/Word.html
+++ b/docs/schemas/Word.html
@@ -25,12 +25,12 @@ Word
Validate against: http://json-schema.org/schema
- Schema ID: http://cdn.digitallinguistics.io/schemas/Word-2.3.0.json
+ Schema ID: http://cdn.digitallinguistics.io/schemas/Word-2.3.1.json
Description
- A Word object represents a specific token in a text, rather than to an abstract lexeme (see the Lexeme object for that).
+ A Word object represents a specific token in a text, rather than an abstract lexeme (see the Lexeme object for that).
@@ -270,6 +270,11 @@ Morpheme
+
+ Description
+ An Object representing this morphem
+
+
Must be an instance of the Morpheme schema.
@@ -302,7 +307,7 @@ Notes: "notes"
Description
- A collection of notes about this token.
+ A collection of notes about this token
@@ -350,6 +355,11 @@ Note
+
+ Description
+ A Note about this token
+
+
Must be an instance of the Note schema.
@@ -382,7 +392,7 @@ Phonemes: "phonemes"
Description
- An array of the phones (phoneme tokens) in this word, in IPA.
+ An array of the phones (phoneme tokens) in this word, in IPA
@@ -542,7 +552,7 @@ Notes: "notes"
Description
- A collection of notes about this phone.
+ A collection of notes about this phone
@@ -590,6 +600,11 @@ Note
+
+ Description
+ A note about this phone. Useful for one-time observations of interesting allophonic variation in the data.
+
+
Must be an instance of the Note schema.
@@ -673,7 +688,7 @@ Tags: "tags"
Description
- A set of tags for this phone.
+ A set of tags for this phone
@@ -720,7 +735,7 @@ Tags: "tags"
Description
- A set of tags for this word token.
+ A set of tags for this word token
@@ -743,7 +758,7 @@ Transcription: "transcription"
Description
- A transcription of this word, optionally in multiple orthographies.
+ A transcription of this word, optionally in multiple orthographies
@@ -789,7 +804,7 @@ URL: "url"
Description
- A URL where this word may be accessed.
+ A URL where this word may be accessed
@@ -820,7 +835,7 @@ Description
Home
Schemas
- - Abbreviation
- Access Rights
- Address
- Bundle
- Date Created
- Date Modified
- Date Recorded
- Language
- GeoJSON Object
- Lexeme
- Lexicon
- Lexeme Reference
- Location
- Morpheme
- Media File
- Multi-Language Text / String
- Note
- Orthography
- Person
- Phoneme
- Bibliographic Reference
- Sentence
- Tags
- Text
- Transcription
- URL
- Word
+ - Abbreviation
- Access Rights
- Address
- Date Modified
- Bundle
- Date Created
- Date Recorded
- Language
- Lexeme Reference
- Lexicon
- Location
- Media File
- Morpheme
- Multi-Language Text / String
- Note
- Orthography
- Person
- Sentence
- Bibliographic Reference
- Tags
- Text
- Transcription
- URL
- Word
- GeoJSON Object
- Phoneme
- Lexeme
diff --git a/package-lock.json b/package-lock.json
index d73e554b..76e1581c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,19 +1,29 @@
{
"name": "@digitallinguistics/spec",
- "version": "0.19.0",
+ "version": "0.21.0",
"lockfileVersion": 1,
+ "requires": true,
"dependencies": {
"ajv": {
"version": "4.11.8",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
"integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "co": "^4.6.0",
+ "json-stable-stringify": "^1.0.1"
+ }
},
"align-text": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ }
},
"amdefine": {
"version": "1.0.1",
@@ -21,34 +31,28 @@
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
"dev": true
},
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
"argparse": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
"integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
},
"asn1": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
- "dev": true
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
},
"assert-plus": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true
},
"async": {
@@ -57,42 +61,68 @@
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
"dev": true
},
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
"aws-sign2": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
"dev": true
},
"aws4": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
"dev": true
},
"azure-storage": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/azure-storage/-/azure-storage-2.2.2.tgz",
- "integrity": "sha1-yD+/PE5eYf7P048XS+aBEzw/nhU=",
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/azure-storage/-/azure-storage-2.10.1.tgz",
+ "integrity": "sha512-rnFo1uMIPtilusRCpK91tfY3P4Q7qRsDNwriXdp+OeTIGkGt0cTxL4mhqYfNPYPK+WBQmBdGWhOk+iROM05dcw==",
+ "dev": true,
+ "requires": {
+ "browserify-mime": "~1.2.9",
+ "extend": "~1.2.1",
+ "json-edm-parser": "0.1.2",
+ "md5.js": "1.3.4",
+ "readable-stream": "~2.0.0",
+ "request": "^2.86.0",
+ "underscore": "~1.8.3",
+ "uuid": "^3.0.0",
+ "validator": "~9.4.1",
+ "xml2js": "0.2.8",
+ "xmlbuilder": "0.4.3"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
"bcrypt-pbkdf": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"dev": true,
- "optional": true
- },
- "bl": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz",
- "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=",
- "dev": true
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
},
- "boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
- "dev": true
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
},
"browserify-mime": {
"version": "1.2.9",
@@ -108,9 +138,9 @@
"optional": true
},
"caseless": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
- "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true
},
"center-align": {
@@ -118,13 +148,11 @@
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
"dev": true,
- "optional": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
},
"cliui": {
"version": "2.1.0",
@@ -132,6 +160,11 @@
"integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
"dev": true,
"optional": true,
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ },
"dependencies": {
"wordwrap": {
"version": "0.0.2",
@@ -149,10 +182,13 @@
"dev": true
},
"combined-stream": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
- "dev": true
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
+ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
},
"commander": {
"version": "2.11.0",
@@ -160,30 +196,25 @@
"integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
"dev": true
},
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true
},
- "cryptiles": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
- "dev": true
- },
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"dev": true,
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
+ "requires": {
+ "assert-plus": "^1.0.0"
}
},
"decamelize": {
@@ -200,11 +231,15 @@
"dev": true
},
"ecc-jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"dev": true,
- "optional": true
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
},
"entities": {
"version": "1.1.1",
@@ -212,12 +247,6 @@
"integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
"dev": true
},
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
"extend": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz",
@@ -230,6 +259,18 @@
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
"dev": true
},
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -237,29 +278,31 @@
"dev": true
},
"form-data": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz",
- "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
"dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "^2.1.12"
+ },
"dependencies": {
- "async": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
- "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
- "dev": true
+ "combined-stream": {
+ "version": "1.0.6",
+ "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
}
}
},
- "generate-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
- "dev": true
- },
- "generate-object-property": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
"getpass": {
@@ -267,56 +310,96 @@
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"dev": true,
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"handlebars": {
"version": "4.0.10",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz",
"integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=",
- "dev": true
- },
- "har-validator": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
- "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "async": "^1.4.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.4.4",
+ "uglify-js": "^2.6"
+ }
},
- "has-ansi": {
+ "har-schema": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
"dev": true
},
+ "har-validator": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
+ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.3.0",
+ "har-schema": "^2.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ }
+ }
+ },
"hash-base": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
"integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
- "dev": true
- },
- "hawk": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
- "dev": true
- },
- "hoek": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
},
"http-signature": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
- "dev": true
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
},
"inherits": {
"version": "2.0.3",
@@ -330,18 +413,6 @@
"integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
"dev": true
},
- "is-my-json-valid": {
- "version": "2.16.0",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz",
- "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=",
- "dev": true
- },
- "is-property": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
- "dev": true
- },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
@@ -360,6 +431,22 @@
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
"dev": true
},
+ "jasmine": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.2.0.tgz",
+ "integrity": "sha512-qv6TZ32r+slrQz8fbx2EhGbD9zlJo3NwPrpLK1nE8inILtZO9Fap52pyHk7mNTh4tG50a+1+tOiWVT3jO5I0Sg==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.6",
+ "jasmine-core": "~3.2.0"
+ }
+ },
+ "jasmine-core": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.2.1.tgz",
+ "integrity": "sha512-pa9tbBWgU0EE4SWgc85T4sa886ufuQdsgruQANhECYjwqgV4z7Vw/499aCaP8ZH79JDS4vhm8doDG9HO4+e4sA==",
+ "dev": true
+ },
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
@@ -371,13 +458,21 @@
"version": "2.0.0-alpha.10",
"resolved": "https://registry.npmjs.org/jschemer/-/jschemer-2.0.0-alpha.10.tgz",
"integrity": "sha1-TF4bFe1h1ZuzPCvQPyuyS7KV1/U=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "commander": "^2.9.0",
+ "handlebars": "^4.0.6",
+ "markdown-it": "^8.2.2"
+ }
},
"json-edm-parser": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/json-edm-parser/-/json-edm-parser-0.1.2.tgz",
"integrity": "sha1-HmCw/vG8CvZ7wNFG393lSGzWFbQ=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "jsonparse": "~1.2.0"
+ }
},
"json-schema": {
"version": "0.2.3",
@@ -385,11 +480,20 @@
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
"dev": true
},
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
"json-stable-stringify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
"integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "jsonify": "~0.0.0"
+ }
},
"json-stringify-safe": {
"version": "5.0.1",
@@ -409,31 +513,26 @@
"integrity": "sha1-XAxWhRBxYOcv50ib3eoLRMK8Z70=",
"dev": true
},
- "jsonpointer": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
- "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
- "dev": true
- },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
"dev": true,
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
}
},
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
},
"lazy-cache": {
"version": "1.0.4",
@@ -446,13 +545,10 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz",
"integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
- "dev": true
- },
- "lodash": {
- "version": "4.17.4",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "uc.micro": "^1.0.1"
+ }
},
"longest": {
"version": "1.0.1",
@@ -464,13 +560,24 @@
"version": "8.3.1",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.3.1.tgz",
"integrity": "sha1-L0tiKUjM3Bk9ZvPKLUMSWsSscyM=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "entities": "~1.1.1",
+ "linkify-it": "^2.0.0",
+ "mdurl": "^1.0.1",
+ "uc.micro": "^1.0.3"
+ }
},
"md5.js": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
"integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
},
"mdurl": {
"version": "1.0.1",
@@ -479,16 +586,28 @@
"dev": true
},
"mime-db": {
- "version": "1.29.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz",
- "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=",
+ "version": "1.36.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
+ "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==",
"dev": true
},
"mime-types": {
- "version": "2.1.16",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz",
- "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=",
- "dev": true
+ "version": "2.1.20",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
+ "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
+ "dev": true,
+ "requires": {
+ "mime-db": "~1.36.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
},
"minimist": {
"version": "0.0.10",
@@ -497,27 +616,40 @@
"dev": true
},
"oauth-sign": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"dev": true
},
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
"optimist": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
+ }
},
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
},
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"dev": true
},
"process-nextick-args": {
@@ -526,6 +658,12 @@
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
"dev": true
},
+ "psl": {
+ "version": "1.1.29",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
+ "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
+ "dev": true
+ },
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
@@ -533,16 +671,24 @@
"dev": true
},
"qs": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz",
- "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
"readable-stream": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
},
"repeat-string": {
"version": "1.6.1",
@@ -551,21 +697,37 @@
"dev": true
},
"request": {
- "version": "2.74.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz",
- "integrity": "sha1-dpPKdou7DqXIzgjAhKRe+gW4kqs=",
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
"dev": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
"dependencies": {
"extend": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
- "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
- "dev": true
- },
- "node-uuid": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
- "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"dev": true
}
}
@@ -575,31 +737,37 @@
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
"dev": true,
- "optional": true
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.1"
+ }
},
"safe-buffer": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
- "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
- "sax": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.2.tgz",
- "integrity": "sha1-c1/6o5oc/4/7lZjwIjq9sDqfsuo=",
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
- "sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "sax": {
+ "version": "0.5.8",
+ "resolved": "http://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
+ "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
"dev": true
},
"source-map": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
- "dev": true
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
},
"sprintf-js": {
"version": "1.0.3",
@@ -608,17 +776,20 @@
"dev": true
},
"sshpk": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
- "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
+ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
"dev": true,
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
}
},
"string_decoder": {
@@ -627,35 +798,24 @@
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
"dev": true
},
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- },
"tough-cookie": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
- "dev": true
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "dev": true,
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ }
},
"tunnel-agent": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
- "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
- "dev": true
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
},
"tweetnacl": {
"version": "0.14.5",
@@ -676,6 +836,11 @@
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
"dev": true,
"optional": true,
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ },
"dependencies": {
"source-map": {
"version": "0.5.6",
@@ -706,15 +871,15 @@
"dev": true
},
"uuid": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
"dev": true
},
"validator": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/validator/-/validator-3.35.0.tgz",
- "integrity": "sha1-PwcklALB/I/Ak8MsbkPXKnnModw=",
+ "version": "9.4.1",
+ "resolved": "http://registry.npmjs.org/validator/-/validator-9.4.1.tgz",
+ "integrity": "sha512-YV5KjzvRmSyJ1ee/Dm5UED0G+1L4GZnLN3w6/T+zZm8scVua4sOhYKWTUrKa0H/tMiJyO9QLHMPN+9mB/aMunA==",
"dev": true
},
"verror": {
@@ -722,13 +887,10 @@
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"dev": true,
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
}
},
"window-size": {
@@ -744,30 +906,49 @@
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
"dev": true
},
- "xml2js": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.7.tgz",
- "integrity": "sha1-GDhRi7AXQcrgh4urSRXklMMjBq8=",
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
+ "xml2js": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz",
+ "integrity": "sha1-m4FpCTFjH/CdGVdUn69U9PmAs8I=",
+ "dev": true,
+ "requires": {
+ "sax": "0.5.x"
+ }
+ },
"xmlbuilder": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.4.3.tgz",
"integrity": "sha1-xGFLp04K0ZbmCcknLNnh3bKKilg=",
"dev": true
},
- "xtend": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
- "dev": true
+ "yamljs": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz",
+ "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "glob": "^7.0.5"
+ }
},
"yargs": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
"dev": true,
- "optional": true
+ "optional": true,
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ }
}
}
}
diff --git a/package.json b/package.json
index 658f98c7..5fce78c7 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@digitallinguistics/spec",
- "version": "0.20.0",
+ "version": "0.21.0",
"description": "The DLx format for representing linguistic data in JSON",
"keywords": [
"DLx",
@@ -16,23 +16,29 @@
"contributors": [
{
"name": "Daniel W. Hieber",
- "url": "http://danielhieber.com"
+ "url": "https://danielhieber.com"
}
],
"config": {
"access": "public"
},
"repository": "https://github.com/digitallinguistics/spec.git",
+ "engines": {
+ "node": ">=10.10.0"
+ },
"dependencies": {},
"devDependencies": {
"ajv": "^4.11.8",
- "azure-storage": "^2.2.2",
- "jasmine": "^2.5.3",
- "jschemer": "^2.0.0-alpha.10"
+ "azure-storage": "^2.10.1",
+ "jasmine": "^3.2.0",
+ "jschemer": "^2.0.0-alpha.10",
+ "yamljs": "^0.3.0"
},
"main": "schemas",
"scripts": {
- "docs": "jschemer schemas -o docs -r README.md -i index.js",
+ "build": "npm run convert & npm run docs & npm test",
+ "convert": "node build/convert.js",
+ "docs": "jschemer schemas/json -o docs -r README.md -i index.js",
"test": "jasmine JASMINE_CONFIG_PATH=test/jasmine.json",
"upload": "node build/upload.js"
}
diff --git a/schemas/index.js b/schemas/index.js
deleted file mode 100644
index 21cb3265..00000000
--- a/schemas/index.js
+++ /dev/null
@@ -1,28 +0,0 @@
-module.exports = {
- Abbreviation: require('./Abbreviation'),
- Access: require('./Access'),
- Address: require('./Address'),
- Bundle: require('./Bundle'),
- DateCreated: require('./DateCreated'),
- DateModified: require('./DateModified'),
- DateRecorded: require('./DateRecorded'),
- Language: require('./Language'),
- Lexeme: require('./Lexeme'),
- LexemeReference: require('./LexemeReference'),
- Lexicon: require('./Lexicon'),
- Location: require('./Location'),
- Media: require('./Media'),
- Morpheme: require('./Morpheme'),
- MultiLangString: require('./MultiLangString'),
- Note: require('./Note'),
- Orthography: require('./Orthography'),
- Person: require('./Person'),
- Phoneme: require('./Phoneme'),
- Reference: require('./Reference'),
- Sentence: require('./Sentence'),
- Tags: require('./Tags'),
- Text: require('./Text'),
- Transcription: require('./Transcription'),
- URL: require('./URL'),
- Word: require('./Word'),
-};
diff --git a/schemas/Abbreviation.json b/schemas/json/Abbreviation.json
similarity index 99%
rename from schemas/Abbreviation.json
rename to schemas/json/Abbreviation.json
index 990ccc22..17d09b57 100644
--- a/schemas/Abbreviation.json
+++ b/schemas/json/Abbreviation.json
@@ -5,4 +5,4 @@
"type": "string",
"description": "A human-readable abbreviation, containing on letters `a-z`, `A-Z`, and numbers `0-9` (no spaces allowed).",
"pattern": "^[(a-z)|(A-Z)|(0-9)]+$"
-}
+}
\ No newline at end of file
diff --git a/schemas/Access.json b/schemas/json/Access.json
similarity index 83%
rename from schemas/Access.json
rename to schemas/json/Access.json
index 3183bd89..c6a8f273 100644
--- a/schemas/Access.json
+++ b/schemas/json/Access.json
@@ -1,28 +1,23 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Access-2.0.1.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Access-2.0.2.json",
"title": "Access Rights",
"type": "object",
- "description": "The Access Rights object provides information for archives on who should be allowed to access the current resource. Some access protocols used by language archives are already supported, and custom protocols may be used as, e.g. `online: false` or `permission: 'researcher only'`, etc. Note: The Access object does not have a `type` property.",
-
+ "description": "The Access Rights object provides information for archives on who should be allowed to access the current resource. Some access protocols used by language archives are already supported, and custom protocols may be used as, e.g. `online: false` or `permission: \"researcher only\"`, etc. **Note:** The Access object does not have a `type` property.",
"additionalProperties": {
"type": "string"
},
-
"properties": {
-
"notes": {
"title": "Access Notes",
- "description": "Notes about access rights for this resource, or any other special considerations regarding who should have Access.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "Notes about access rights for this resource, or any other special considerations regarding who should have Access. This attribute should be a MultiLangString rather than an Array of Note objects."
},
-
"AILLA": {
"title": "AILLA Access Level",
- "description": "For users who are depositing their materials at The Archive of the Indigenous Languages of Latin America (AAILA) in Texas, an `AILLA` attribute may be added, and its value set to one of the access levels set forth by the archive.",
"type": "string",
+ "description": "For users who are depositing their materials at The Archive of the Indigenous Languages of Latin America (AAILA) in Texas, an `AILLA` attribute may be added, and its value set to one of the access levels set forth by the archive.",
"enum": [
"public access",
"password",
@@ -30,11 +25,10 @@
"depositor control"
]
},
-
"ELAR": {
"title": "ELAR Access Level",
- "description": "For users who are depositing their materials at the Endangered Language Archive (ELAR) in London, an `ELAR` attribute may be added, and its value set to one of the access levels set forth by the archive.",
"type": "string",
+ "description": "For users who are depositing their materials at the Endangered Language Archive (ELAR) in London, an `ELAR` attribute may be added, and its value set to one of the access levels set forth by the archive.",
"enum": [
"User",
"Researcher",
@@ -42,7 +36,5 @@
"Subscriber"
]
}
-
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/Address.json b/schemas/json/Address.json
similarity index 65%
rename from schemas/Address.json
rename to schemas/json/Address.json
index ec7000b8..8c7c9379 100644
--- a/schemas/Address.json
+++ b/schemas/json/Address.json
@@ -1,61 +1,53 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Address-1.1.0.json",
+ "id": "http://cdn.digitallinguistics.io/schemas/Address-1.1.1.json",
"title": "Address",
"type": "object",
- "description": "A postal Address.",
+ "description": "A postal Address",
"additionalProperties": true,
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Address`.",
- "enum": ["Address"]
+ "description": "The type of object (must be set to `Address`)",
+ "enum": [
+ "Address"
+ ]
},
-
"streetAddress": {
"title": "Street Address",
"type": "string",
- "description": "The street address, not including apartment or unit number."
+ "description": "The street address, not including apartment or unit number"
},
-
"apartmentNumber": {
"title": "Apartment / Unit Number",
"type": "string",
- "description": "The apartment or unit number, along with any abbreviations, e.g. `Apt 20`."
+ "description": "The apartment or unit number, along with any abbreviations, e.g. `Apt 20`"
},
-
"postalBoxNumber": {
"title": "Postal Box Number",
"type": "string",
- "description": "The postal box number."
+ "description": "The postal box number"
},
-
"locality": {
"title": "Locality / City",
"type": "string",
- "description": "The locality or city for this Address."
+ "description": "The locality or city for this Address"
},
-
"region": {
"title": "Region / State",
"type": "string",
- "description": " The region or state for this Address."
+ "description": " The region or state for this Address"
},
-
"country": {
"title": "Country",
"type": "string",
- "description": "The country this address is located in."
+ "description": "The country this address is located in"
},
-
"postalCode": {
"title": "Postal Code",
"type": "string",
- "description": "The postal code for this address (as a string rather than a number)."
+ "description": "The postal code for this address (as a string rather than a number)"
}
-
}
-}
+}
\ No newline at end of file
diff --git a/schemas/Bundle.json b/schemas/json/Bundle.json
similarity index 64%
rename from schemas/Bundle.json
rename to schemas/json/Bundle.json
index 71e8770e..033044ff 100644
--- a/schemas/Bundle.json
+++ b/schemas/json/Bundle.json
@@ -1,99 +1,106 @@
{
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Bundle-1.1.0.json",
+ "id": "http://cdn.digitallinguistics.io/schemas/Bundle-1.1.1.json",
"title": "Bundle",
"type": "object",
"description": "A bundle is a collection of related resources and derivative products. For example, many field linguists will put all the data from a single day or elicitation session in one bundle, as well as any transcriptions and pedagogical outputs derived from that session. Bundles are purely organizational objects containing references to the included items.",
- "additionalProperties": true,
"required": [
"name"
],
-
+ "additionalProperties": true,
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Bundle`.",
- "enum": ["Bundle"]
+ "description": "The type of object (must be set to `Bundle`)",
+ "enum": [
+ "Bundle"
+ ]
},
-
"abbreviation": {
"title": "Abbreviation",
- "description": "An abbreviation for this bundle.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "An abbreviation for this bundle"
},
-
"access": {
"title": "Access Rights",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json",
+ "description": "An object describing the acess rights for this bundle"
},
-
"dateCreated": {
"title": "Date Created",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json",
+ "description": "The date that this bundle was created"
},
-
"dateModified": {
"title": "Date Modified",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json",
+ "description": "The date that this bundle was last modified"
},
-
"locations": {
"title": "Locations",
"type": "array",
- "description": "An array of locations included in this bundle (usually locations that were visited during a day or session).",
+ "description": "An array of locations included in this bundle (usually locations that were visited during a day or session)",
"uniqueItems": true,
"items": {
"title": "Location",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Location.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Location.json",
+ "description": "An object describing a location associated with this bundle"
}
},
-
"media": {
"title": "Media",
"type": "array",
- "description": "An array of media files included in this bundle.",
+ "description": "An array of media files included in this bundle",
"uniqueItems": true,
"items": {
"title": "Media File",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Media.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Media.json",
+ "description": "An object describing a media file in this bundle"
}
},
-
"name": {
"title": "Name",
- "description": "A name for this bundle.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "A name for this bundle, optionally in multiple languages"
},
-
"notes": {
"title": "Notes",
"type": "array",
- "description": "A collection of notes about this bundle.",
+ "description": "A collection of notes about this bundle",
"uniqueItems": true,
"items": {
"title": "Note",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A note about this bundle"
}
},
-
"persons": {
"title": "Persons",
"type": "array",
- "description": "An array of persons included in this bundle.",
+ "description": "An array of persons associated with this bundle",
"uniqueItems": true,
"items": {
"title": "Person",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Person.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Person.json",
+ "description": "A person associated with this bundle"
}
},
-
"tags": {
"title": "Tags",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A hash containing tags for this bundle"
},
-
"texts": {
"title": "Texts",
"type": "array",
@@ -101,15 +108,16 @@
"uniqueItems": true,
"items": {
"title": "Text",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Text.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Text.json",
+ "description": "A Text included in this bundle"
}
},
-
"url": {
"title": "URL",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL where this bundle may be accessed"
}
-
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/DateCreated.json b/schemas/json/DateCreated.json
similarity index 99%
rename from schemas/DateCreated.json
rename to schemas/json/DateCreated.json
index 9cac5888..f9637610 100644
--- a/schemas/DateCreated.json
+++ b/schemas/json/DateCreated.json
@@ -1,8 +1,8 @@
{
"$schema": "http://json-schema.org/schema#",
"id": "http://cdn.digitallinguistics.io/schemas/DateCreated-1.0.0.json",
- "type": "string",
"title": "Date Created",
+ "type": "string",
"description": "The date this database object was created, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime) (*not* the date it was recorded; for that, see `dateRecorded`).",
"format": "date-time"
-}
+}
\ No newline at end of file
diff --git a/schemas/DateModified.json b/schemas/json/DateModified.json
similarity index 99%
rename from schemas/DateModified.json
rename to schemas/json/DateModified.json
index 3c607405..e26d3ece 100644
--- a/schemas/DateModified.json
+++ b/schemas/json/DateModified.json
@@ -1,8 +1,8 @@
{
"$schema": "http://json-schema.org/schema#",
"id": "http://cdn.digitallinguistics.io/schemas/DateModified-1.0.0.json",
- "type": "string",
"title": "Date Modified",
+ "type": "string",
"description": "The date (and optionally time) that this object was last modified, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime).",
"format": "date-time"
-}
+}
\ No newline at end of file
diff --git a/schemas/DateRecorded.json b/schemas/json/DateRecorded.json
similarity index 99%
rename from schemas/DateRecorded.json
rename to schemas/json/DateRecorded.json
index cd10094f..f3c21946 100644
--- a/schemas/DateRecorded.json
+++ b/schemas/json/DateRecorded.json
@@ -1,8 +1,8 @@
{
"$schema": "http://json-schema.org/schema#",
"id": "http://cdn.digitallinguistics.io/schemas/DateRecorded-1.0.0.json",
- "type": "string",
"title": "Date Recorded",
+ "type": "string",
"description": "The date this item was recorded, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime).",
"format": "date-time"
-}
+}
\ No newline at end of file
diff --git a/schemas/GeoJSON.json b/schemas/json/GeoJSON.json
similarity index 63%
rename from schemas/GeoJSON.json
rename to schemas/json/GeoJSON.json
index 1810909e..943f5871 100644
--- a/schemas/GeoJSON.json
+++ b/schemas/json/GeoJSON.json
@@ -1,15 +1,14 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "https://raw.githubusercontent.com/dwhieb/geojson-schema/master/geojson-schema.json",
+ "id": "http://cdn.digitallinguistics.io/schemas/GeoJSON-1.0.1.json",
"title": "GeoJSON Object",
"type": "object",
- "description": "This object represents a geometry, feature, or collection of features.",
+ "description": "This object represents a geometry, feature, or collection of features. It should be structured according to the [GeoJSON schema](http://geojson.org/).",
"additionalProperties": true,
- "required": ["type"],
-
+ "required": [
+ "type"
+ ],
"properties": {
-
"type": {
"title": "Type",
"type": "string",
@@ -26,16 +25,19 @@
"FeatureCollection"
]
},
-
"crs": {
"title": "Coordinate Reference System (CRS)",
- "description": "The coordinate reference system (CRS) of a GeoJSON object is determined by its `crs` member (referred to as the CRS object below). If an object has no crs member, then its parent or grandparent object's crs member may be acquired. If no crs member can be so acquired, the default CRS shall apply to the GeoJSON object.\n\n* The default CRS is a geographic coordinate reference system, using the WGS84 datum, and with longitude and latitude units of decimal degrees.\n\n* The value of a member named `crs` must be a JSON object (referred to as the CRS object below) or JSON null. If the value of CRS is null, no CRS can be assumed.\n\n* The crs member should be on the top-level GeoJSON object in a hierarchy (in feature collection, feature, geometry order) and should not be repeated or overridden on children or grandchildren of the object.\n\n* A non-null CRS object has two mandatory members: `type` and `properties`.\n\n* The value of the type member must be a string, indicating the type of CRS object.\n\n* The value of the properties member must be an object.\n\n* CRS shall not change coordinate ordering.",
-
+ "description": "The coordinate reference system (CRS) of a GeoJSON object is determined by its `crs` member (referred to as the CRS object below). If an object has no crs member, then its parent or grandparent object’s crs member may be acquired. If no crs member can be so acquired, the default CRS shall apply to the GeoJSON object.\n\n* The default CRS is a geographic coordinate reference system, using the WGS84 datum, and with longitude and latitude units of decimal degrees.\n\n* The value of a member named `crs` must be a JSON object (referred to as the CRS object below) or JSON null. If the value of CRS is null, no CRS can be assumed.\n\n* The crs member should be on the top-level GeoJSON object in a hierarchy (in feature collection, feature, geometry order) and should not be repeated or overridden on children or grandchildren of the object.\n\n* A non-null CRS object has two mandatory members: `type` and `properties`.\n\n* The value of the type member must be a string, indicating the type of CRS object.\n\n* The value of the properties member must be an object.\n\n* CRS shall not change coordinate ordering.",
"oneOf": [
- { "type": "null" },
+ {
+ "type": "null"
+ },
{
"type": "object",
- "required": ["type", "properties"],
+ "required": [
+ "type",
+ "properties"
+ ],
"properties": {
"type": {
"title": "CRS Type",
@@ -50,16 +52,20 @@
}
}
],
-
"not": {
"anyOf": [
-
{
"properties": {
- "type": { "enum": ["name"] },
+ "type": {
+ "enum": [
+ "name"
+ ]
+ },
"properties": {
"not": {
- "required": ["name"],
+ "required": [
+ "name"
+ ],
"properties": {
"name": {
"type": "string",
@@ -70,41 +76,40 @@
}
}
},
-
{
"properties": {
- "type": { "enum": ["link"] },
+ "type": {
+ "enum": [
+ "link"
+ ]
+ },
"properties": {
"not": {
"title": "Link Object",
"type": "object",
- "required": ["href"],
+ "required": [
+ "href"
+ ],
"properties": {
-
"href": {
"title": "href",
"type": "string",
"description": "The value of the required `href` member must be a dereferenceable URI.",
"format": "uri"
},
-
"type": {
"title": "Link Object Type",
"type": "string",
"description": "The value of the optional `type` member must be a string that hints at the format used to represent CRS parameters at the provided URI. Suggested values are: `proj4`, `ogcwkt`, `esriwkt`, but others can be used."
}
-
}
}
}
}
}
-
]
}
-
},
-
"bbox": {
"title": "Bounding Box",
"type": "array",
@@ -114,152 +119,243 @@
"type": "number"
}
}
-
},
-
"oneOf": [
-
{
"title": "Point",
"description": "For type `Point`, the `coordinates` member must be a single position.",
- "required": ["coordinates"],
+ "required": [
+ "coordinates"
+ ],
"properties": {
- "type": { "enum": ["Point"] },
+ "type": {
+ "enum": [
+ "Point"
+ ]
+ },
"coordinates": {
"allOf": [
- { "$ref": "#/definitions/coordinates" },
- { "$ref": "#/definitions/position" }
+ {
+ "$ref": "#/definitions/coordinates"
+ },
+ {
+ "$ref": "#/definitions/position"
+ }
]
}
},
- "allOf": [{ "$ref": "#/definitions/geometry" }]
+ "allOf": [
+ {
+ "$ref": "#/definitions/geometry"
+ }
+ ]
},
-
{
"title": "Multi Point Geometry",
"description": "For type `MultiPoint`, the `coordinates` member must be an array of positions.",
- "required": ["coordinates"],
+ "required": [
+ "coordinates"
+ ],
"properties": {
- "type": { "enum": ["MultiPoint"] },
+ "type": {
+ "enum": [
+ "MultiPoint"
+ ]
+ },
"coordinates": {
"allOf": [
- { "$ref": "#/definitions/coordinates" },
{
- "items": { "$ref": "#/definitions/position" }
+ "$ref": "#/definitions/coordinates"
+ },
+ {
+ "items": {
+ "$ref": "#/definitions/position"
+ }
}
]
}
},
- "allOf": [{ "$ref": "#/definitions/geometry" }]
+ "allOf": [
+ {
+ "$ref": "#/definitions/geometry"
+ }
+ ]
},
-
{
"title": "Line String",
"description": "For type `LineString`, the `coordinates` member must be an array of two or more positions.\n\nA LinearRing is closed LineString with 4 or more positions. The first and last positions are equivalent (they represent equivalent points). Though a LinearRing is not explicitly represented as a GeoJSON geometry type, it is referred to in the Polygon geometry type definition.",
- "required": ["coordinates"],
+ "required": [
+ "coordinates"
+ ],
"properties": {
- "type": { "enum": ["LineString"] },
- "coordinates": { "$ref": "#/definitions/lineStringCoordinates" }
+ "type": {
+ "enum": [
+ "LineString"
+ ]
+ },
+ "coordinates": {
+ "$ref": "#/definitions/lineStringCoordinates"
+ }
},
- "allOf": [{ "$ref": "#/definitions/geometry" }]
+ "allOf": [
+ {
+ "$ref": "#/definitions/geometry"
+ }
+ ]
},
-
{
"title": "MultiLineString",
"description": "For type `MultiLineString`, the `coordinates` member must be an array of LineString coordinate arrays.",
- "required": ["coordinates"],
+ "required": [
+ "coordinates"
+ ],
"properties": {
- "type": { "enum": ["MultiLineString"] },
+ "type": {
+ "enum": [
+ "MultiLineString"
+ ]
+ },
"coordinates": {
"allOf": [
- { "$ref": "#/definitions/coordinates" },
{
- "items": { "$ref": "#/definitions/lineStringCoordinates" }
+ "$ref": "#/definitions/coordinates"
+ },
+ {
+ "items": {
+ "$ref": "#/definitions/lineStringCoordinates"
+ }
}
]
}
},
- "allOf": [{ "$ref": "#/definitions/geometry" }]
+ "allOf": [
+ {
+ "$ref": "#/definitions/geometry"
+ }
+ ]
},
-
{
"title": "Polygon",
"description": "For type `Polygon`, the `coordinates` member must be an array of LinearRing coordinate arrays. For Polygons with multiple rings, the first must be the exterior ring and any others must be interior rings or holes.",
- "required": ["coordinates"],
+ "required": [
+ "coordinates"
+ ],
"properties": {
- "type": { "enum": ["Polygon"] },
- "coordinates": { "$ref": "#/definitions/polygonCoordinates" }
+ "type": {
+ "enum": [
+ "Polygon"
+ ]
+ },
+ "coordinates": {
+ "$ref": "#/definitions/polygonCoordinates"
+ }
},
- "allOf": [{ "$ref": "#/definitions/geometry" }]
+ "allOf": [
+ {
+ "$ref": "#/definitions/geometry"
+ }
+ ]
},
-
{
"title": "Multi-Polygon Geometry",
"description": "For type `MultiPolygon`, the `coordinates` member must be an array of Polygon coordinate arrays.",
- "required": ["coordinates"],
+ "required": [
+ "coordinates"
+ ],
"properties": {
- "type": { "enum": ["MultiPolygon"] },
+ "type": {
+ "enum": [
+ "MultiPolygon"
+ ]
+ },
"coordinates": {
"allOf": [
- { "$ref": "#/definitions/coordinates" },
{
- "items": { "$ref": "#/definitions/polygonCoordinates" }
+ "$ref": "#/definitions/coordinates"
+ },
+ {
+ "items": {
+ "$ref": "#/definitions/polygonCoordinates"
+ }
}
]
}
},
- "allOf": [{ "$ref": "#/definitions/geometry" }]
+ "allOf": [
+ {
+ "$ref": "#/definitions/geometry"
+ }
+ ]
},
-
{
"title": "Geometry Collection",
"description": "A GeoJSON object with type `GeometryCollection` is a geometry object which represents a collection of geometry objects.\n\nA geometry collection must have a member with the name `geometries`. The value corresponding to `geometries` is an array. Each element in this array is a GeoJSON geometry object.",
- "required": ["geometries"],
+ "required": [
+ "geometries"
+ ],
"properties": {
- "type": { "enum": ["GeometryCollection"] },
+ "type": {
+ "enum": [
+ "GeometryCollection"
+ ]
+ },
"geometries": {
"title": "Geometries",
"type": "array",
- "items": { "$ref": "#/definitions/geometry" }
+ "items": {
+ "$ref": "#/definitions/geometry"
+ }
}
},
- "allOf": [{ "$ref": "#/definitions/geometry" }]
+ "allOf": [
+ {
+ "$ref": "#/definitions/geometry"
+ }
+ ]
+ },
+ {
+ "$ref": "#/definitions/feature"
},
-
- { "$ref": "#/definitions/feature" },
-
{
"title": "Feature Collection",
"description": "A GeoJSON object with the type `FeatureCollection` is a feature collection object.\n\nAn object of type `FeatureCollection` must have a member with the name `features`. The value corresponding to `features` is an array. Each element in the array is a feature object as defined above.",
- "required": ["features"],
+ "required": [
+ "features"
+ ],
"properties": {
- "type": { "enum": ["FeatureCollection"] },
+ "type": {
+ "enum": [
+ "FeatureCollection"
+ ]
+ },
"features": {
"title": "Features",
"type": "array",
- "items": { "$ref": "#/definitions/feature" }
+ "items": {
+ "$ref": "#/definitions/feature"
+ }
}
}
}
-
],
-
"definitions": {
-
"coordinates": {
"title": "Coordinates",
"type": "array",
"items": {
"oneOf": [
- { "type": "array" },
- { "type": "number" }
+ {
+ "type": "array"
+ },
+ {
+ "type": "number"
+ }
]
}
},
-
"geometry": {
"title": "Geometry",
- "description": "A geometry is a GeoJSON object where the type member's value is one of the following strings: `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, or `GeometryCollection`.",
+ "description": "A geometry is a GeoJSON object where the type member’s value is one of the following strings: `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, or `GeometryCollection`.",
"properties": {
"type": {
"enum": [
@@ -274,71 +370,85 @@
}
}
},
-
"feature": {
"title": "Feature",
"description": "A GeoJSON object with the type `Feature` is a feature object.\n\n* A feature object must have a member with the name `geometry`. The value of the geometry member is a geometry object as defined above or a JSON null value.\n\n* A feature object must have a member with the name `properties`. The value of the properties member is an object (any JSON object or a JSON null value).\n\n* If a feature has a commonly used identifier, that identifier should be included as a member of the feature object with the name `id`.",
- "required": ["geometry", "properties"],
-
+ "required": [
+ "geometry",
+ "properties"
+ ],
"properties": {
-
- "type": { "enum": ["Feature"] },
-
+ "type": {
+ "enum": [
+ "Feature"
+ ]
+ },
"geometry": {
"title": "Geometry",
"oneOf": [
- { "$ref": "#/definitions/geometry" },
- { "type": "null" }
+ {
+ "$ref": "#/definitions/geometry"
+ },
+ {
+ "type": "null"
+ }
]
},
-
"properties": {
"title": "Properties",
"oneOf": [
- { "type": "object" },
- { "type": "null" }
+ {
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
]
},
-
"id": {}
-
}
},
-
"linearRingCoordinates": {
"title": "Linear Ring Coordinates",
"description": "A LinearRing is closed LineString with 4 or more positions. The first and last positions are equivalent (they represent equivalent points). Though a LinearRing is not explicitly represented as a GeoJSON geometry type, it is referred to in the Polygon geometry type definition.",
"allOf": [
- { "$ref": "#/definitions/lineStringCoordinates" },
+ {
+ "$ref": "#/definitions/lineStringCoordinates"
+ },
{
"minItems": 4
}
]
},
-
"lineStringCoordinates": {
"title": "Line String Coordinates",
"description": "For type `LineString`, the `coordinates` member must be an array of two or more positions.",
"allOf": [
- { "$ref": "#/definitions/coordinates" },
+ {
+ "$ref": "#/definitions/coordinates"
+ },
{
"minLength": 2,
- "items": { "$ref": "#/definitions/position" }
+ "items": {
+ "$ref": "#/definitions/position"
+ }
}
]
},
-
"polygonCoordinates": {
"title": "Polygon Coordinates",
"description": "For type `Polygon`, the `coordinates` member must be an array of LinearRing coordinate arrays. For Polygons with multiple rings, the first must be the exterior ring and any others must be interior rings or holes.",
"allOf": [
- { "$ref": "#/definitions/coordinates" },
{
- "items": { "$ref": "#/definitions/linearRingCoordinates" }
+ "$ref": "#/definitions/coordinates"
+ },
+ {
+ "items": {
+ "$ref": "#/definitions/linearRingCoordinates"
+ }
}
]
},
-
"position": {
"title": "Position",
"type": "array",
@@ -349,7 +459,5 @@
"type": "number"
}
}
-
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/Language.json b/schemas/json/Language.json
similarity index 72%
rename from schemas/Language.json
rename to schemas/json/Language.json
index 0e155c5b..aebf7996 100644
--- a/schemas/Language.json
+++ b/schemas/json/Language.json
@@ -1,118 +1,114 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Language-6.0.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Language-6.0.1.json",
"title": "Language",
"type": "object",
"description": "DLx uses the term *language* broadly to refer to any speech variety - whether a language, dialect, idiolect, or even a historical variety. The DLx `Language` object groups together all the information about the language, including writing systems, its phonological inventory, and metadata (e.g. names and language codes).",
-
- "required": ["name"],
-
+ "required": [
+ "name"
+ ],
"additionalProperties": true,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Language`.",
- "enum": ["Language"]
+ "description": "The type of object (must be set to `Language`)",
+ "enum": [
+ "Language"
+ ]
},
-
"abbreviation": {
"title": "Abbreviation",
- "description": "A short, human-readable abbreviation for this Language.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "A short, human-readable abbreviation for this Language"
},
-
"additionalNames": {
"title": "Additional Names",
"type": "array",
- "description": "An Array of additional names for this Language. Only use this property if the 'name' property is not sufficent to describe the various names for this language.",
+ "description": "An Array of additional names for this Language. Only use this property if the \"name\" property is not sufficent to describe the various names for this language.",
"uniqueItems": true,
"items": {
"title": "Additional Language Name",
"type": "string"
}
},
-
"autonym": {
"title": "Autonym",
- "description": "The autonym for this language, optionally in multiple orthographies.",
+ "type": "object",
+ "description": "The autonym for this language, optionally in multiple orthographies",
"$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json"
},
-
"dateCreated": {
"title": "Date Created",
- "description": "The date and optionally time that this Language object was created.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json"
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json",
+ "type": "string",
+ "description": "The date and optionally time that this Language object was created"
},
-
"dateModified": {
"title": "Date Modified",
- "description": "The date an optionally time that this Language object was last modified.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json",
+ "description": "The date an optionally time that this Language object was last modified"
},
-
"glottolog": {
"title": "Glottolog Code",
"type": "string",
- "description": "The Glottolog code for this language variety, as a String in the format abcd1234.",
+ "description": "The Glottolog code for this language variety, as a String in the format abcd1234",
"pattern": "^[a-z]{4}[0-9]{4}$"
},
-
"iso": {
"title": "ISO 639-3 Code",
"type": "string",
- "description": "The ISO 639-3 code for this language variety, as a 3-letter String.",
+ "description": "The ISO 639-3 code for this language variety, as a 3-letter String",
"pattern": "^[a-z]{3}$"
},
-
"locations": {
"title": "Locations",
"type": "array",
+ "description": "Geographic locations where this language variety is spoken, optionally with geographic coordinate data",
"uniqueItems": true,
- "description": "Geographic locations where this language variety is spoken, optionally with geographic coordinate data.",
"items": {
"title": "Location",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Location.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Location.json",
+ "description": "A Location object describing a location where this language variety is spoken"
}
},
-
"name": {
"title": "Language Name",
- "description": "The name of this Language, optionally in multiple languages. Use the `additionalNames` field to list other names for this Language.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "The name of this Language, optionally in multiple languages. Use the `additionalNames` field to list other names for this Language."
},
-
"orthographies": {
"title": "Orthographies",
"type": "array",
+ "description": "A collection of orthographies used to represent this Language",
"uniqueItems": true,
- "description": "A collection of orthographies used to represent this Language.",
"items": {
"title": "Orthography",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Orthography.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Orthography.json",
+ "description": "An orthography used to represent this language"
}
},
-
"phonemes": {
"title": "Phonemes",
"type": "array",
- "description": "The phonological inventory for this language, i.e. a collection of phonemes.",
+ "description": "The phonological inventory for this language, i.e. a collection of phonemes",
"items": {
"title": "Phoneme",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Phoneme.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Phoneme.json",
+ "description": "A Phoneme object"
}
},
-
"url": {
"title": "URL",
- "description": "A URL where the JSON data for this language can be found.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "A URL where the JSON data for this language can be found"
}
-
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/Lexeme.json b/schemas/json/Lexeme.json
similarity index 80%
rename from schemas/Lexeme.json
rename to schemas/json/Lexeme.json
index bb9bbd38..39ecd119 100644
--- a/schemas/Lexeme.json
+++ b/schemas/json/Lexeme.json
@@ -1,353 +1,293 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Lexeme-2.1.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Lexeme-2.1.1.json",
"title": "Lexeme",
"type": "object",
"description": "A *lexeme* is the set of all forms that share the same meaning. A lexeme is used broadly by DLx to refer to any collection of related senses and forms, whether the item is an individual word, a morpheme, or even a fully-inflected phrase. In other words, DLx lexeme objects can be used to describe anything that constitutes a lexical unit or construction. A lexeme will often have multiple *senses* or meanings, and those are listed in the `senses` field. It is up to the linguist to decide when two meanings are related, and therefore part of the same lexeme, or when they belong in different lexemes. A lexeme will also often have multiple variants. For example, the lexeme `run` in English has two base forms: `run` and `ran`. The `run` form is listed as the headword or *lemma*, and `ran` is listed as a past tense variant. The `variants` field should *not* be used to list all the inflectional forms of a Lexeme.",
-
"required": [
"lemma",
"senses"
],
-
"additionalProperties": true,
-
"dependencies": {
- "variantType": ["variantOf"]
+ "variantType": [
+ "variantOf"
+ ]
},
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Lexeme`.",
- "enum": ["Lexeme"]
+ "description": "The type of object (must be set to `Lexeme`)",
+ "enum": [
+ "Lexeme"
+ ]
},
-
"allomorphs": {
-
"title": "Allomorphs",
"type": "array",
- "description": "A list of allomorphs of this Lexeme.",
-
+ "description": "A list of allomorphs of this Lexeme",
"minItems": 1,
"uniqueItems": true,
-
"items": {
-
"title": "Allomorph",
"type": "object",
- "description": "An allomorph of this Lexeme.",
-
+ "description": "An allomorph of this Lexeme",
"required": [
"environments",
"transcription"
],
-
"additionalProperties": true,
-
"properties": {
-
"transcription": {
"title": "Transcription",
- "description": "A transcription of this allomorph, optionally in multiple orthographies. Do not include any leading or trailing tokens (e.g. hyphens, equal signs).",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json",
+ "description": "A transcription of this allomorph, optionally in multiple orthographies. Do not include any leading or trailing tokens (e.g. hyphens, equal signs)."
},
-
"environments": {
-
"title": "Environments",
"type": "array",
"description": "A list of (morpho)phonological environments in which this allomorph occurs. May be an empty array.",
-
"uniqueItems": true,
-
"items": {
"title": "Environment",
"type": "string",
- "description": "A formalization of a (morpho)phonologial environemnt, e.g. `_k`."
+ "description": "A formalization of a (morpho)phonologial environemnt, e.g. `_k`"
}
-
}
-
}
-
}
-
},
-
"citationForm": {
"title": "Citation Form",
- "description": "The citation form of a lexeme is the form given when spoken in isolation, which may be different from its lemma form. For example, in English the citation form of a verb is typically the infinitive, e.g. `to run`, even though `run` is typically used as its lemma form. The citation form usually serves as the headword in a dictionary as well. It may be represented in multiple orthographies. Do not include leading or trailing tokens (e.g. hyphens, equal signs) in this field.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json",
+ "description": "The citation form of a lexeme is the form given when spoken in isolation, which may be different from its lemma form. For example, in English the citation form of a verb is typically the infinitive, e.g. `to run`, even though `run` is typically used as its lemma form. The citation form usually serves as the headword in a dictionary as well. It may be represented in multiple orthographies. Do not include leading or trailing tokens (e.g. hyphens, equal signs) in this field."
},
-
"components": {
-
"title": "Components",
"type": "array",
"description": "A list of the morphemes or other lexical entries contained within the current form. For example, the form `gentlemen` in an English lexicon might have references to the form `gentle`, and the form `men` within the lexeme for `man`. Components may reference either an entire lexeme or a specific variant. Components do not have to be unique (useful when the same morpheme appears twice in a word).",
-
"minItems": 1,
"uniqueItems": false,
-
"items": {
"title": "Referenced Lexeme",
- "description": "The referenced component.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json",
+ "description": "The referenced component"
}
-
},
-
"dateCreated": {
"title": "Date Created",
- "description": "The date and optionally time that this lexeme was created, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime).",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json",
+ "description": "The date and optionally time that this lexeme was created, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime)"
},
-
"dateModified": {
"title": "Date Modified",
- "description": "The date and optionally time that this lexeme was last modified, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime).",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json",
+ "description": "The date and optionally time that this lexeme was last modified, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime)"
},
-
"examples": {
-
"title": "Examples",
"type": "array",
"description": "A collection of examples illustrating this lexeme in use. Each example is a Sentence from a Text.",
-
"uniqueItems": true,
-
"items": {
"title": "Example Sentence",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Sentence.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Sentence.json",
+ "description": "A Sentence object containing the example sentence"
}
-
},
-
"features": {
-
"title": "Features",
"type": "object",
"description": "A set of inflectional features for this morpheme (used primarily with grammatical morphemes). Each property should be the name of a feature type (e.g. `case`, `person`, `number`, `gender`, `nounClass`, etc.), and its value should be the value for that feature, as a string (e.g. `nominative`, `1`, `singular`, `masculine`, etc.). Features may be written more than once, in a different Language. For example, a morpheme may have the feature `\"case\": \"accusative\"` (English) as well as `\"caso\": \"acusativo\"` (Spanish).",
-
"allOf": [
{
"title": "Tags",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "The Features object must be a Tags object."
},
{
"additionalProperties": {
"title": "Feature",
- "type": "string"
+ "type": "string",
+ "description": "Individual features must be represented as Strings."
}
}
]
},
-
"includedIn": {
-
"title": "Included In",
"type": "array",
"description": "A list of references to lexemes or variants that this item is included in. For example, the lexeme `‑s` (English plural for nouns) would have a reference to the lexeme `pants`, among others.",
-
"uniqueItems": true,
-
"items": {
"title": "Lexicon Reference",
- "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json",
+ "description": "A reference to a lexeme"
}
-
},
-
"key": {
"title": "Lexeme Key",
"type": "string",
"description": "A human-readable key that uniquely identifies this lexeme or variant within its Lexicon. Best practice is for the key to consist of the lemma form of the word in the default orthography, and if the word is a homonym, the homonym number. However, any value is acceptable as long as it is unique within the Lexicon. (Keys do not need to be unique across lexicons.)",
"pattern": "^[^ ]+$"
},
-
"lemma": {
"title": "Lemma",
- "description": "A *lemma* is the particular form conventionally used to represent a particular Lexeme. It may differ drastically from the citation form or headword form. For example, the form `be` is typically used as the lemma form of the English verb `to be`, with its variants `am`, `are`, `is`, etc. Lemmas may be represented in multiple orthographies. Do not include any leading or trailing tokens (e.g. hyphens, equal signs).",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json",
+ "description": "A *lemma* is the particular form conventionally used to represent a particular Lexeme. It may differ drastically from the citation form or headword form. For example, the form `be` is typically used as the lemma form of the English verb `to be`, with its variants `am`, `are`, `is`, etc. Lemmas may be represented in multiple orthographies. Do not include any leading or trailing tokens (e.g. hyphens, equal signs)."
},
-
"lexicalRelations": {
-
"title": "Lexical Relations",
"type": "array",
- "description": "A list of the lexical relations that this lexeme has to other lexemes or variants.",
-
+ "description": "A list of the lexical relations that this lexeme has to other lexemes or variants",
"uniqueItems": true,
-
"items": {
"title": "Lexical Relation (Lexeme Reference)",
- "description": "A lexical relation between two lexemes or senses. A LexicalRelation object is just a LexemeReference object, but with the `relation` property required.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json",
+ "description": "A lexical relation between two lexemes or senses. A LexicalRelation object is just a LexemeReference object, but with the `relation` property required."
}
-
},
-
"literalMeaning": {
"title": "Literal Meaning",
- "description": "The literal meaning of the lexeme, optionally in multiple languages.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "The literal meaning of the lexeme, optionally in multiple languages"
},
-
"morphemeType": {
"title": "Morpheme Type",
- "description": "The type of morpheme or complex construction that this lexeme is. Examples: `root`, `stem`, `bipartite stem`, `enclitic`, `prefix`, `inflected word`, `phrase`, `circumfix`.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "The type of morpheme or complex construction that this lexeme is. Examples: `root`, `stem`, `bipartite stem`, `enclitic`, `prefix`, `inflected word`, `phrase`, `circumfix`."
},
-
"notes": {
-
"title": "Notes",
"type": "array",
- "description": "A collection of notes about this Lexeme.",
-
+ "description": "A collection of notes about this Lexeme",
"uniqueItems": true,
-
"items": {
"title": "Note",
- "description": "A note about this lexeme, optionally in multiple orthographies.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A note about this lexeme, optionally in multiple orthographies"
}
-
},
-
"references": {
-
"title": "Bibliographic References",
"type": "array",
"description": "A collection of bibliographic references relating to this lexeme or variant. For example, a particular lexeme may have been discussed in detail in a published article.",
-
"uniqueItems": true,
-
"items": {
"title": "Reference",
- "description": "A bibliographic Reference.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json",
+ "description": "A bibliographic Reference"
}
-
},
-
"sources": {
-
"title": "Sources",
"type": "array",
- "description": "A list of attested sources for this lexeme or variant.",
-
+ "description": "A list of attested sources for this lexeme or variant",
"uniqueItems": true,
-
"items": {
"title": "Source",
"type": "string",
"description": "An attested source for this lexeme or variant. This will often be the initials of a speaker, but could also be the abbreviation of the story the lexeme was found it, or other types of sources."
}
-
},
-
"syllableStructure": {
"title": "Syllable Structure",
"type": "string",
- "description": "An abstract representation of the syllable structure of this form, e.g. `CVC`."
+ "description": "An abstract representation of the syllable structure of this form, e.g. `CVC`"
},
-
"tags": {
"title": "Tags",
- "description": "A collection of tags for this lexeme or variant.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A collection of tags for this lexeme or variant"
},
-
"tone": {
"title": "Tone",
"type": "string",
"description": "An abstract representation of the tonal pattern of this lexeme or variant. Examples: `HLH`, `323`, etc."
},
-
"url": {
"title": "URL",
- "description": "The URL where this lexeme or variant is located.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL where this lexeme or variant is located"
},
-
"variantOf": {
"title": "Variant Of",
- "description": "When this lexeme is a variant of another lexeme, this field should contain a reference to the other Lexeme. Lexemes may only be variants of one other Lexeme.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json",
+ "description": "When this lexeme is a variant of another lexeme, this field should contain a reference to the other Lexeme. Lexemes may only be variants of one other Lexeme."
},
-
"variants": {
-
"title": "Variants",
"type": "array",
- "description": "A list of variants of this Lexeme.",
-
+ "description": "A list of variants of this Lexeme",
"uniqueItems": true,
-
"items": {
"title": "Referenced Variant (Lexeme Reference)",
- "description": "A reference to the variant of this lexeme. A Variant is simply a Lexeme Reference object, but with the `variantType` required.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json",
+ "description": "A reference to the variant of this lexeme. A Variant is simply a Lexeme Reference object, but with the `variantType` required."
}
-
},
-
"variantType": {
"title": "Variant Type",
- "description": "If this lexeme is a variant of another lexeme or sense, this field can be used to specify the type of variant. Possible values might be a person's name (representing an idiolectal variant), or simply `idiolectal`, or `dialectal` (or the name of the dialect), or `rapid speech`, etc.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "If this lexeme is a variant of another lexeme or sense, this field can be used to specify the type of variant. Possible values might be a person’s name (representing an idiolectal variant), or simply `idiolectal`, or `dialectal` (or the name of the dialect), or `rapid speech`, etc."
},
-
"senses": {
-
"title": "Senses",
"type": "array",
- "description": "A collection of senses for this Lexeme.",
-
+ "description": "A collection of senses for this Lexeme",
"uniqueItems": true,
-
"items": {
-
"title": "Sense",
"type": "object",
- "description": "One of the meanings for this Lexeme. For example, the lexeme `run` might have two senses: one with a definition of 'run in a race', and the other with a definition 'run water in a sink'.",
-
- "required": ["gloss"],
+ "description": "One of the meanings for this Lexeme. For example, the lexeme `run` might have two senses: one with a definition of \"run in a race\", and the other with a definition \"run water in a sink\".",
+ "required": [
+ "gloss"
+ ],
"additionalProperties": true,
-
"properties": {
-
"argumentStructure": {
"title": "Argument Structure",
"type": "string",
- "description": "An abstract representation of the argument structure for this sense."
+ "description": "An abstract representation of the argument structure for this sense"
},
-
"category": {
"title": "Lexical Category (Part of Speech, Morphosyntactic Class, etc.)",
- "description": "The lexical category, part of speech, or morphosyntactic class for this Lexeme. If the current lexeme is an affix or other grammatical morpheme morpheme, this field should be used to describe the category that the morpheme attaches to. For example, the English verb suffix `‑s` would have this this property set to `verb`, and the English derivational suffix `‑ize` would have this property set to `noun`.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "The lexical category, part of speech, or morphosyntactic class for this Lexeme. If the current lexeme is an affix or other grammatical morpheme morpheme, this field should be used to describe the category that the morpheme attaches to. For example, the English verb suffix `‑s` would have this this property set to `verb`, and the English derivational suffix `‑ize` would have this property set to `noun`."
},
-
"definition": {
"title": "Definition",
- "description": "The definition for this particular sense, optionally in multiple languages.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "The definition for this particular sense, optionally in multiple languages"
},
-
"derives": {
"title": "Derived Category",
- "description": "If this lexeme is a derivational morpheme, this field indicates the type of lexical category, part of speech, or morphosyntactic class that is derived when this morpheme is applied. For example, the English derivational suffix `‑er` would have this property set to `noun`.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "If this lexeme is a derivational morpheme, this field indicates the type of lexical category, part of speech, or morphosyntactic class that is derived when this morpheme is applied. For example, the English derivational suffix `‑er` would have this property set to `noun`."
},
-
"examples": {
"title": "Examples",
"type": "array",
@@ -355,164 +295,135 @@
"uniqueItems": true,
"items": {
"title": "Example Sentence",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Sentence.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Sentence.json",
+ "description": "An example Sentence for this sense"
}
},
-
"gloss": {
"title": "Gloss",
- "description": "A Leipzig-style gloss for this sense.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "A Leipzig-style gloss for this sense"
},
-
"inflectionClass": {
"title": "Inflectional Class",
- "description": "If this lexeme is a root or stem, this field indicates the inflectional class that the sense takes. If this lexeme is an inflectional morpheme, this field indicates the inflectional class that the morpheme belongs to. If this lexeme is a derivational morpheme, this field indicates the inflectional class of the derived form.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "If this lexeme is a root or stem, this field indicates the inflectional class that the sense takes. If this lexeme is an inflectional morpheme, this field indicates the inflectional class that the morpheme belongs to. If this lexeme is a derivational morpheme, this field indicates the inflectional class of the derived form."
},
-
"lexicalRelations": {
-
"title": "Lexical Relations",
"type": "array",
"description": "A collection of lexical relations between this sense and other senses in this lexicon or other lexicons.",
-
"uniqueItems": true,
-
"items": {
"title": "Lexical Relation (Lexeme Reference)",
- "description": "A lexical relation between two lexemes or senses. A LexicalRelation object is just a LexemeReference object, but with the `relation` property required.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json",
+ "description": "A lexical relation between two lexemes or senses. A LexicalRelation object is just a LexemeReference object, but with the `relation` property required."
}
-
},
-
"media": {
-
"title": "Media",
"type": "array",
"description": "Media items associated with this lexeme, such as recordings of the word, pictures of the item the word refers to, or videos of the action being performed.",
-
"uniqueItems": true,
-
"items": {
"title": "Media Item",
- "description": "A media item associated with this lexeme.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Media.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Media.json",
+ "description": "A media item associated with this lexeme"
}
-
},
-
"notes": {
-
"title": "Notes",
"type": "array",
- "description": "A collection of notes about this sense.",
-
+ "description": "A collection of notes about this sense",
"uniqueItems": true,
-
"items": {
"title": "Note",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A Note about this sense"
}
-
},
-
"references": {
-
"title": "Bibliographic References",
"type": "array",
- "description": "A collection of bibliographic references about this particular sense.",
-
+ "description": "A collection of bibliographic references about this particular sense",
"uniqueItems": true,
-
"items": {
"title": "Reference",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json",
+ "description": "A bibliographic reference pertaining to this sense"
}
-
},
-
"scientificName": {
"title": "Scientific Name",
"type": "string",
- "description": "The scientific name for this item."
+ "description": "The scientific name for this item"
},
-
"sources": {
-
"title": "Sources",
"type": "array",
- "description": "A list of attested sources for this sense.",
-
+ "description": "A list of attested sources for this sense",
"uniqueItems": true,
-
"items": {
"title": "Source",
"type": "string",
"description": "An attested source for this sense. This will often be the initials of a speaker, but could also be the abbreviation of the story the lexeme was found it, or other types of sources."
}
-
},
-
"tags": {
"title": "Tags",
- "description": "A collection of tags for this Lexeme.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A collection of tags for this Lexeme"
},
-
"usages": {
-
"title": "Usages",
"type": "array",
"description": "A list of the appropriate usages for this sense. Examples include `formal`, `medicinal`, `informal`, etc.",
-
"uniqueItems": true,
-
"items": {
"title": "Usage",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "An appropriate usage for this sense, optionally in multiple orthographies"
}
-
},
-
"variantOf": {
"title": "Variant Of",
- "description": "If this sense is a variant of another sense, a reference to the other sense should go here. For example, sometimes two speakers may use the same word with a slightly different set of senses. In American English, for instance, *Coke* is a specific brand of soda for most speakers, but a generic term for soda for other speakers. The generic sense would therefore be listed as a dialectal variant of the specific sense.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json",
+ "description": "If this sense is a variant of another sense, a reference to the other sense should go here. For example, sometimes two speakers may use the same word with a slightly different set of senses. In American English, for instance, *Coke* is a specific brand of soda for most speakers, but a generic term for soda for other speakers. The generic sense would therefore be listed as a dialectal variant of the specific sense."
},
-
"variants": {
"title": "Variants",
"type": "array",
- "description": "A list of variants of this sense.",
-
+ "description": "A list of variants of this sense",
"uniqueItems": true,
-
"items": {
"title": "Referenced Variant (Lexeme Reference)",
- "description": "A reference to the variant of this sense. A Variant is simply a Lexeme Reference object, but with the `variantType` required.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json",
+ "description": "A reference to the variant of this sense. A Variant is simply a Lexeme Reference object, but with the `variantType` required."
}
},
-
"variantType": {
"title": "Variant Type",
- "description": "If sense is a variant of another sense, this field can be used to specify the type of variant. Possible values might be a person's name (representing an idiolectal variant), or simply `idiolectal`, or `dialectal` (or the name of the dialect), or `rapid speech`, etc.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "If sense is a variant of another sense, this field can be used to specify the type of variant. Possible values might be a person’s name (representing an idiolectal variant), or simply `idiolectal`, or `dialectal` (or the name of the dialect), or `rapid speech`, etc."
}
-
}
-
}
-
}
-
},
-
"default": {
"lemma": {},
"senses": []
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/LexemeReference.json b/schemas/json/LexemeReference.json
similarity index 73%
rename from schemas/LexemeReference.json
rename to schemas/json/LexemeReference.json
index 52003b51..e695a8e9 100644
--- a/schemas/LexemeReference.json
+++ b/schemas/json/LexemeReference.json
@@ -1,67 +1,62 @@
{
-
"$schema": "http://json-schema.org/schema",
- "id": "http://cdn.digitallinguistics.io/schemas/LexemeReference-2.0.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/LexemeReference-2.0.1.json",
"title": "Lexeme Reference",
"type": "object",
"description": "A reference to a Lexeme in a Lexicon. May point to either a top-level Lexeme or a variant.",
-
- "required": ["lexeme"],
-
+ "required": [
+ "lexeme"
+ ],
"additionalProperties": false,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `LexemeReference`.",
- "enum": ["LexemeReference"]
+ "description": "The type of object (must be set to `LexemeReference`)",
+ "enum": [
+ "LexemeReference"
+ ]
},
-
"lexeme": {
"title": "Referenced Lexeme (Key)",
"type": "string",
- "description": "The key of the lexeme being referenced.",
+ "description": "The key of the lexeme being referenced",
"pattern": "^[^ ]+$"
},
-
"lexemeURL": {
"title": "Referenced Lexeme (URL)",
- "description": "The URL of the lexeme being referenced.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL of the lexeme being referenced"
},
-
"lexicon": {
"title": "Referenced Lexicon (Key/Abbr)",
- "description": "The abbreviation of the lexicon being referenced.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "The abbreviation of the lexicon being referenced"
},
-
"lexiconURL": {
"title": "Referenced Lexicon (URL)",
- "description": "The URL of the lexicon being referenced.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL of the lexicon being referenced"
},
-
"relation": {
"title": "Relation Type",
- "description": "The type of lexical relation that holds between the current item and the referenced Lexeme. Can also be used for general cross-references (a `compare` relation) or historical relationships (a `derivedFrom` or `originOf` relation). Examples: `antonym`, `synonym`, `cognate`, `derivedFrom`, `originOf`, `compare`, `partOf`, `hypernymOf`, `hyponymOf`. The value of this field must be a valid Abbreviation. This property is sometimes required (for example, when the LexemeReference is part of the `lexicalRelations` field of the Lexeme).",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "The type of lexical relation that holds between the current item and the referenced Lexeme. Can also be used for general cross-references (a `compare` relation) or historical relationships (a `derivedFrom` or `originOf` relation). Examples: `antonym`, `synonym`, `cognate`, `derivedFrom`, `originOf`, `compare`, `partOf`, `hypernymOf`, `hyponymOf`. The value of this field must be a valid Abbreviation. This property is sometimes required (for example, when the LexemeReference is part of the `lexicalRelations` field of the Lexeme)."
},
-
"sense": {
"title": "Referenced Sense (Num)",
"type": "integer",
"description": "The number of the sense being referenced. The sense number is its index in the `senses` array on the Lexeme."
},
-
"variantType": {
"title": "Variant Type",
- "description": "If this reference is to a variant of a lexeme or sense, this field can be used to specify the type of variant. Possible values might be a person's name (representing an idiolectal variant), or simply `idiolectal`, or `dialectal` (or the name of the dialect), or `rapid speech`, etc.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "If this reference is to a variant of a lexeme or sense, this field can be used to specify the type of variant. Possible values might be a person’s name (representing an idiolectal variant), or simply `idiolectal`, or `dialectal` (or the name of the dialect), or `rapid speech`, etc."
}
-
}
-}
+}
\ No newline at end of file
diff --git a/schemas/Lexicon.json b/schemas/json/Lexicon.json
similarity index 80%
rename from schemas/Lexicon.json
rename to schemas/json/Lexicon.json
index 67bcbf12..ea2dd74d 100644
--- a/schemas/Lexicon.json
+++ b/schemas/json/Lexicon.json
@@ -1,154 +1,128 @@
{
-
"$schema": "http://json-schema.org/schema",
- "id": "http://cdn.digitallinguistics.io/schemas/Lexicon-1.1.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Lexicon-1.1.1.json",
"title": "Lexicon",
"type": "object",
"description": "A lexicon is a collection of the linguistic signs, or *lexemes*, of a particular language at a particular point in time. Each entry in the lexicon provides information on the formal, semantic, behavioral/syntagmatic, and pragmatic/sociocultural properties of a single Lexeme. Each lexeme in turn includes a number of *senses* - the different meanings that a lexeme can have - as well as *variants* - the different formal realizations of the word (e.g. *ran* vs. *run).\n\nLexicons differ from dictionaries in that dictionaries may be thought of as lexicons that have been filtered and formatted for a specific audience. Lexicons, on the other hand, contain the raw, unfiltered data, and do not contain information about presentational format. This distinction allows for the creation of many different dictionaries, with different audiences, from a single Lexicon.",
-
"additionalProperties": true,
-
"required": [
"language",
"lexemes",
"name"
],
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Lexicon`.",
- "enum": ["Lexicon"]
+ "description": "The type of object (must be set to `Lexicon`)",
+ "enum": [
+ "Lexicon"
+ ]
},
-
"abbreviation": {
"title": "Abbreviation",
- "description": "A human-readable abbreviation for this Lexicon.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "A human-readable abbreviation for this Lexicon"
},
-
"access": {
"title": "Access Rights",
- "description": "An object describing who has what kinds of access rights to this Lexicon.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json",
+ "description": "An object describing who has what kinds of access rights to this Lexicon"
},
-
"contributors": {
-
"title": "Contributors",
"type": "array",
"description": "A collection of people who contributed to the creation or curation of this lexicon in some way.",
-
"uniqueItems": true,
-
"items": {
"title": "Contributor",
- "description": "A contributor to this Lexicon.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Contributor.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Contributor.json",
+ "description": "A contributor to this Lexicon"
},
-
"default": []
-
},
-
"dateCreated": {
"title": "Date Created",
- "description": "The date that this lexicon was created.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json",
+ "description": "The date that this lexicon was created"
},
-
"dateModified": {
"title": "Date Modified",
- "description": "The date that this lexicon was last modified.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json",
+ "description": "The date that this lexicon was last modified"
},
-
"language": {
"title": "Language",
- "description": "A language object describing the language of the items in this Lexicon. The language object must contain at least the `name` property.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Language.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Language.json",
+ "description": "A language object describing the language of the items in this Lexicon. The language object must contain at least the `name` property."
},
-
"lexemes": {
-
"title": "Lexemes",
"type": "array",
"description": "The collection of lexemes in this Lexicon.",
-
"uniqueItems": true,
-
"items": {
"title": "Lexeme",
+ "type": "object",
"description": "A lexeme in this Lexicon.",
"$ref": "http://cdn.digitallinguistics.io/schemas/Lexeme.json"
}
-
},
-
"name": {
"title": "Name",
- "description": "A name for this lexicon, e.g. `Tlahuapa Mixtec`, `Ancient Greek`, `Portuguese (Brazilian)`, etc.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "A name for this lexicon, e.g. `Tlahuapa Mixtec`, `Ancient Greek`, `Portuguese (Brazilian)`, etc."
},
-
"notes": {
-
"title": "Notes",
"type": "array",
"description": "A collection of notes about this Lexicon.",
-
"uniqueItems": true,
-
"items": {
"title": "Note",
- "description": "A note about this Lexicon.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A note about this Lexicon."
},
-
"default": []
-
},
-
"references": {
-
"title": "Bibliographic References",
"type": "array",
"description": "A collection of any bibliographic references concerning or relating to this Lexicon.",
-
"uniqueItems": true,
-
"items": {
"title": "Reference",
- "description": "A bibliographic reference concerning this Lexicon.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json",
+ "description": "A bibliographic reference concerning this Lexicon."
},
-
"default": []
-
},
-
"tags": {
"title": "Tags",
- "description": "A set of tags for this Lexicon.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags for this Lexicon."
},
-
"url": {
"title": "URL",
- "description": "A unique URL for this Lexicon.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "A unique URL for this Lexicon."
}
-
},
-
"default": {
"access": {},
"language": {},
"lexemes": [],
"name": ""
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/Location.json b/schemas/json/Location.json
similarity index 59%
rename from schemas/Location.json
rename to schemas/json/Location.json
index 05180139..d174df65 100644
--- a/schemas/Location.json
+++ b/schemas/json/Location.json
@@ -1,99 +1,99 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Location-2.1.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Location-2.2.0.json",
"title": "Location",
"type": "object",
- "description": "A location, optionally with accompanying geographic coordinate data.",
-
+ "description": "A location, optionally with accompanying geographic coordinate data",
"required": [
"name"
],
-
"additionalProperties": true,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Location`.",
- "enum": ["Location"]
+ "description": "The type of object (must be set to `Location`)",
+ "enum": [
+ "Location"
+ ]
},
-
"abbreviation": {
"title": "Abbreviation",
- "description": "An abbreviation for this Location.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "An abbreviation for this Location"
},
-
"access": {
"title": "Access Rights",
- "description": "Since locations sometimes contain personal information like addresses, it is important to consider the proper access management policy for them.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json",
+ "description": "Since locations sometimes contain personal information like addresses, it is important to consider the proper access management policy for them."
},
-
"address": {
"title": "Address",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Address.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Address.json",
+ "description": "An address associated with this location"
},
-
"dateCreated": {
"title": "Date Created",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json",
+ "description": "The date that this Location object was created"
},
-
"dateModified": {
"title": "Date Modified",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json",
+ "description": "The date that this Location was last modified"
},
-
"geoJSON": {
"title": "GeoJSON Geometry Object",
- "description": "A GeoJSON object describing this Location. Must adhere to the GeoJSON format: http://geojson.org/.",
- "$ref": "http://json.schemastore.org/geojson"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/GeoJSON.json",
+ "description": "A GeoJSON object describing this Location. Must adhere to the GeoJSON format: http://geojson.org/."
},
-
"name": {
"title": "Name",
- "description": "A name for this location, e.g. `Susan's House` or `Valley High School`, or `Shenandoah River`.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "A name for this location, e.g. `Susan’s House` or `Valley High School`, or `Shenandoah River`"
},
-
"notes": {
"title": "Notes",
"type": "array",
- "description": "A collection of notes about this Location.",
+ "description": "A collection of notes about this Location",
"uniqueItems": true,
"items": {
"title": "Note",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A note about this location"
}
},
-
"references": {
"title": "Bibliographic References",
"type": "array",
- "description": "A collection of bibliographic references about this Location.",
+ "description": "A collection of bibliographic references about this Location",
"uniqueItems": true,
"items": {
"title": "Reference",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json",
+ "description": "A bibliographic reference about this location"
}
},
-
"tags": {
"title": "Tags",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags for this Location"
},
-
"url": {
"title": "URL",
- "description": "The URL where information about this location can be retrieved.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL where information about this location can be retrieved"
}
-
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/Media.json b/schemas/json/Media.json
similarity index 82%
rename from schemas/Media.json
rename to schemas/json/Media.json
index eade2e57..1035789c 100644
--- a/schemas/Media.json
+++ b/schemas/json/Media.json
@@ -1,97 +1,90 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Media-2.0.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Media-2.0.1.json",
"title": "Media File",
"type": "object",
"description": "An object containing information about a media file. The file itself should be stored at the URL indicated in the `mediaURL` field. Media files generally contain primary data. Examples might include audio/video recordings, scans of archival materials, photos taken during fieldwork, or scans of field notes.",
-
- "required": ["filename"],
-
+ "required": [
+ "filename"
+ ],
"additionalProperties": true,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Media`.",
- "enum": ["Media"]
+ "description": "The type of object (must be set to `Media`)",
+ "enum": [
+ "Media"
+ ]
},
-
"abbreviation": {
"title": "Abbreviation",
- "description": "An abbreviation for referring to this file.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "An abbreviation for referring to this file"
},
-
"access": {
"title": "Access Rights",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json",
+ "description": "Access rights for this media file"
},
-
"content": {
"title": "Content",
- "description": "A description of the content of this file, optionally in multiple languages or orthographies.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/mulitLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/mulitLangString.json",
+ "description": "A description of the content of this file, optionally in multiple languages or orthographies"
},
-
"contentType": {
"title": "MIME Content Type",
"type": "string",
"description": "The media type of the file. Examples: `audio/wav`, `application/pdf`, `video/mpeg`"
},
-
"creator": {
"title": "Creator",
- "description": "The person who created this specific file.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Person.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Person.json",
+ "description": "The person who created this specific file"
},
-
"dateCreated": {
"title": "Date Created",
- "description": "The date that this metadata object was originally created. *Not* the date the media file was created. For that, see the `dateRecorded` property.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json",
+ "description": "The date that this metadata object was originally created. *Not* the date the media file was created. For that, see the `dateRecorded` property."
},
-
"dateModified": {
"title": "Date Modified",
- "description": "The date and optionally time that this metadata was last modified. *Not* the date that the media file was modified.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json",
+ "description": "The date and optionally time that this metadata was last modified. *Not* the date that the media file was modified."
},
-
"dateRecorded": {
"title": "Date Recorded",
- "description": "The date that this media file was recorded or photographed. Or, if the file is a scan of field notes, the date that the scan was made. *Not* the date that this metadata object was created. For that, see the `dateCreated` property.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateRecorded.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateRecorded.json",
+ "description": "The date that this media file was recorded or photographed. Or, if the file is a scan of field notes, the date that the scan was made. *Not* the date that this metadata object was created. For that, see the `dateCreated` property."
},
-
"endTime": {
"title": "End Time",
"type": "number",
"description": "Within an audiovisual file, the time at which the relevant linguistic data ends. Programs may use this field in different ways. For example, if the camera recorded for five minutes after the speaker finished talking, the `End Time` would be the time 5 minutes before the end of the file. The time stamp should be in seconds and milliseconds, separated by a period, e.g. `12.573`, or `1.2`, or `167.78012`, etc."
},
-
"filename": {
"title": "Filename",
"type": "string",
- "description": "The filename for this media item without spaces, but including the extension.",
+ "description": "The filename for this media item without spaces, but including the extension",
"pattern": "^[^ ]+\\.[^ ]+"
},
-
"fileSize": {
"title": "File Size",
"type": "integer",
"description": "The size of the file, in bytes."
},
-
"format": {
"title": "Format (File Extension)",
"type": "string",
"description": "The format (file extension) of the media file, without a period. Examples: `wav`, `mp4`, `pdf`"
},
-
"languages": {
"title": "Languages",
"type": "array",
@@ -99,45 +92,44 @@
"uniqueItems": true,
"items": {
"title": "Language (Abbreviation)",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "The abbreviation for this language"
}
},
-
"length": {
"title": "Length (in Time / Pages)",
"type": "number",
- "description": "The length of the file, in seconds and milliseconds if an audio/video file (in `SS.MM` format), or pages if a document."
+ "description": "The length of the file, in seconds and milliseconds if an audio/video file (in `SS.MM` format), or pages if a document"
},
-
"location": {
"title": "Location",
- "description": "The location where the content in this media file was recorded or produced.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Location.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Location.json",
+ "description": "The location where the content in this media file was recorded or produced"
},
-
"mediaURL": {
"title": "Media URL",
- "description": "The URL where the media file can be found.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL where the media file can be found."
},
-
"notes": {
"title": "Notes",
"type": "array",
- "uniqueItems": true,
"description": "A collection of notes about this media item.",
+ "uniqueItems": true,
"items": {
"title": "Note",
"$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
}
},
-
"original": {
"title": "Original Media Item",
- "description": "The URL of the media object (*not* the URL to the media file itself) that this file is derived from.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL of the Media object (*not* the URL to the media file itself) that this file is derived from"
},
-
"people": {
"title": "Persons in File",
"type": "array",
@@ -148,25 +140,22 @@
"$ref": "http://cdn.digitallinguistics.io/schemas/Person.json"
}
},
-
"startTime": {
"title": "Start Time",
"type": "number",
"description": "Within an audiovisual file, the time at which the relevant linguistic data starts, or the time at which an offset should be calibrated from. This may also be used to synchronize the starting point of multiple media files associated with a single Text. For example, if the camera started recording five minutes before the speaker began speaking, the `Start Time` might be 5 minutes from the start of the file (so 300.00 seconds). The time stamp should be in seconds and milliseconds, separated by a period, e.g. `12.573`, or `1.2`, or `167.78012`, etc."
},
-
"tags": {
"title": "Tags",
- "description": "A set of tags for this media item",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags for this media item"
},
-
"url": {
"title": "URL",
- "description": "The URL where this media data can be retrieved. *NOT* the URL of the media file itself (for that, see the `mediaURL` attribute).",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL where this media data can be retrieved. *NOT* the URL of the media file itself (for that, see the `mediaURL` attribute)."
}
-
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/Morpheme.json b/schemas/json/Morpheme.json
similarity index 76%
rename from schemas/Morpheme.json
rename to schemas/json/Morpheme.json
index f744623f..c548be52 100644
--- a/schemas/Morpheme.json
+++ b/schemas/json/Morpheme.json
@@ -1,69 +1,62 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Morpheme-1.2.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Morpheme-1.2.1.json",
"title": "Morpheme",
"type": "object",
"description": "A *morpheme token* is a particular instance of a morpheme in a text. In DLx, the primary function of the Morpheme object is to provide a concise, short description of each token of a morpheme in a corpus - its form, its gloss, and a reference to an item in a lexicon where more information can be found.",
-
"required": [
"transcription",
"gloss"
],
-
"additionalProperties": true,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Morpheme`.",
- "enum": ["Morpheme"]
+ "description": "The type of object (must be set to `Morpheme`)",
+ "enum": [
+ "Morpheme"
+ ]
},
-
"gloss": {
"title": "Gloss",
- "description": "A gloss for this morpheme, optionally in multiple languages.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "A gloss for this morpheme, optionally in multiple languages"
},
-
"lexeme": {
"title": "Lexeme",
- "description": "A Lexeme Reference to an item in a lexicon where more information about this morpheme may be found.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/LexemeReference.json",
+ "description": "A Lexeme Reference to an item in a lexicon where more information about this morpheme may be found"
},
-
"notes": {
"title": "Notes",
"type": "array",
- "description": "A collection of notes about this morpheme token.",
+ "description": "A collection of notes about this morpheme token",
"uniqueItems": true,
"items": {
"title": "Note",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A note about this morpheme"
}
-
},
-
"tags": {
"title": "Tags",
- "description": "A set of tags for this morpheme token.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags for this morpheme token"
},
-
"transcription": {
"title": "Transcription",
- "description": "A transcription of this morpheme token. Should be a transcription of this particular token/allomorph, rather than an abstract representation of the morpheme. Do not include any leading or trailing tokens such as hyphens or equal signs.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json",
+ "description": "A transcription of this morpheme token. Should be a transcription of this particular token/allomorph, rather than an abstract representation of the morpheme. Do not include any leading or trailing tokens such as hyphens or equal signs."
}
-
},
-
"default": {
"form": {},
"gloss": {}
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/MultiLangString.json b/schemas/json/MultiLangString.json
similarity index 69%
rename from schemas/MultiLangString.json
rename to schemas/json/MultiLangString.json
index bdde3dc2..de675672 100644
--- a/schemas/MultiLangString.json
+++ b/schemas/json/MultiLangString.json
@@ -1,14 +1,10 @@
{
-
"$schema": "http://json-schema.org/schema#",
"id": "http://cdn.digitallinguistics.io/schemas/MultiLangString-2.0.1.json",
-
"title": "Multi-Language Text / String",
"type": "object",
- "description": "A piece of text in multiple languages. This is typically used for analyses rather than transcriptions of data (for that, see the Transcription schema). For example, a translation might be given in both English and Spanish; or the part of speech for a lexeme might be given as both English 'noun' and Spanish 'nombre'. Each key must be the abbreviation for a language (see the Abbreviation schema), and the value for that key is the string of text in that language. Note: MultiLangStrings do not have a `type` property.",
-
+ "description": "A piece of text in multiple languages. This is typically used for analyses rather than transcriptions of data (for that, see the Transcription schema). For example, a translation might be given in both English and Spanish; or the part of speech for a lexeme might be given as both English \"noun\" and Spanish \"nombre\". Each key must be the abbreviation for a language (see the Abbreviation schema), and the value for that key is the string of text in that language. **Note:** MultiLangStrings do not have a `type` property.",
"additionalProperties": true,
-
"patternProperties": {
"^[(a-z)|(A-Z)|(0-9)]+$": {
"title": "Text",
@@ -16,5 +12,4 @@
"description": "The string of text in the specified language."
}
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/Note.json b/schemas/json/Note.json
similarity index 76%
rename from schemas/Note.json
rename to schemas/json/Note.json
index ef2b19da..ae90e607 100644
--- a/schemas/Note.json
+++ b/schemas/json/Note.json
@@ -1,58 +1,54 @@
{
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Note-2.1.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Note-2.1.1.json",
"title": "Note",
"type": "object",
"description": "A note about this resource. Notes may also include `type` and `language` attributes.",
-
- "required": ["text"],
-
+ "required": [
+ "text"
+ ],
"additionalProperties": false,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Note`.",
- "enum": ["Note"]
+ "description": "The type of object (must be set to `Note`)",
+ "enum": [
+ "Note"
+ ]
},
-
"dateCreated": {
"title": "Date Created",
- "description": "The date and optionally time that this note was created, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime).",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json",
+ "description": "The date and optionally time that this note was created, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime)"
},
-
"dateModified": {
"title": "Date Modified",
- "description": "The date and optionally time that this note was last modified, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime).",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json",
+ "description": "The date and optionally time that this note was last modified, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime)"
},
-
"language": {
"title": "Note Language",
"type": "string",
- "description": "A language code or language name of the language that this note is written in."
+ "description": "A language code or language name of the language that this note is written in"
},
-
"source": {
"title": "Source (Person)",
- "description": "The abbreviation of the person who is the source of the information in this Note. This is not necessarily the person who wrote it. For example, a linguist could make a note based on something that a speaker reports, in which case the speaker should be listed as the source.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "The abbreviation of the person who is the source of the information in this Note. This is not necessarily the person who wrote it. For example, a linguist could make a note based on something that a speaker reports, in which case the speaker should be listed as the source."
},
-
"text": {
"title": "Note Text",
"type": "string",
- "description": "The text of the note itself."
+ "description": "The text of the note itself"
},
-
"noteType": {
"title": "Note Type",
"type": "string",
- "description": "The type of Note.",
+ "description": "The type of Note",
"enum": [
"note-to-self",
"general",
@@ -65,6 +61,5 @@
"sociocultural"
]
}
-
}
-}
+}
\ No newline at end of file
diff --git a/schemas/Orthography.json b/schemas/json/Orthography.json
similarity index 88%
rename from schemas/Orthography.json
rename to schemas/json/Orthography.json
index 933f0f23..40a9598f 100644
--- a/schemas/Orthography.json
+++ b/schemas/json/Orthography.json
@@ -1,34 +1,29 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Orthography-1.3.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Orthography-1.3.2.json",
"title": "Orthography",
"type": "object",
"description": "An orthography is a way of representing a particular language variety in writing. An orthography can include a set of acceptable graphemes (characters), punctuation, and word separators.",
-
"required": [
"graphemes",
"name"
],
-
"additionalProperties": true,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Orthography`.",
- "enum": ["Orthography"]
+ "description": "The type of object (must be set to `Orthography`)",
+ "enum": [
+ "Orthography"
+ ]
},
-
"abbreviation": {
"title": "Abbreviation",
- "description": "An abbreviation for this Orthography.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "An abbreviation for this Orthography"
},
-
"direction": {
"title": "Text Direction",
"type": "string",
@@ -43,7 +38,6 @@
],
"default": "ltr-ttb"
},
-
"graphemes": {
"title": "Graphemes",
"type": "array",
@@ -51,14 +45,14 @@
"uniqueItems": true,
"default": [],
"items": {
-
"title": "Grapheme",
"type": "object",
- "description": "An object representing a grapheme.",
- "required": ["form"],
+ "description": "An object representing a grapheme",
+ "required": [
+ "form"
+ ],
"additionalProperties": false,
"properties": {
-
"allographs": {
"title": "Allographs",
"type": "array",
@@ -69,19 +63,16 @@
"type": "string"
}
},
-
"form": {
"title": "Grapheme Form",
"type": "string",
"description": "The written form of this grapheme. Graphemes should include their diacritics. For example, `c` and `č` should be considered separate graphemes, unless they are allographs. Do not include graphemes for characters that only occur as part of a digraph (or trigraph, etc.). For example, standard Swahili orthography has a grapheme `ch`, but no grapheme `c` by itself, so `c` would not be listed as a grapheme, only `ch`."
},
-
"name": {
"title": "Grapheme Name",
"type": "string",
- "description": "The name of this grapheme, if any."
+ "description": "The name of this grapheme, if any"
},
-
"pronunciations": {
"title": "Pronunciations",
"type": "array",
@@ -92,31 +83,29 @@
"type": "string"
}
}
-
}
-
}
},
-
"name": {
"title": "Orthography Name",
- "description": "The name of this orthography (e.g. `Practical`, `Phonemic`), optionally in multiple languages (e.g. both `Phonemic` and `Fonémica`).",
+ "type": "object",
"$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "The name of this orthography (e.g. `Practical`, `Phonemic`), optionally in multiple languages (e.g. both `Phonemic` and `Fonémica`)",
"default": {}
},
-
"notes": {
"title": "Notes",
"type": "array",
- "description": "A collection of notes about this Orthography.",
+ "description": "A collection of notes about this Orthography",
"uniqueItems": true,
"items": {
"title": "Note",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A note about this orthography"
},
"default": []
},
-
"punctuation": {
"title": "Punctuation",
"type": "array",
@@ -128,12 +117,12 @@
},
"default": []
},
-
"tags": {
"title": "Tags",
+ "type": "object",
"$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags for this orthography",
"default": {}
}
-
}
-}
+}
\ No newline at end of file
diff --git a/schemas/Person.json b/schemas/json/Person.json
similarity index 66%
rename from schemas/Person.json
rename to schemas/json/Person.json
index 9aca82c9..e326f005 100644
--- a/schemas/Person.json
+++ b/schemas/json/Person.json
@@ -1,190 +1,167 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Person-1.2.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Person-1.2.1.json",
"title": "Person",
"type": "object",
"description": "An object providing information about a Person",
-
"required": [
"familyName",
"givenName"
],
-
"additionalProperties": true,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Person`.",
- "enum": ["Person"]
+ "description": "The type of object (must be set to `Person`)",
+ "enum": [
+ "Person"
+ ]
},
-
"abbreviation": {
"title": "Abbreviation",
- "description": "An abbreviation for this person (typically their initials). If a pseudonym is used for this person, use the initials of the pseudonym rather than their actual initials.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "An abbreviation for this person (typically their initials). If a pseudonym is used for this person, use the initials of the pseudonym rather than their actual initials."
},
-
"access": {
"title": "Access Rights",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json",
+ "description": "The access rights for information about this person"
},
-
"address": {
"title": "Address",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Address.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Address.json",
+ "description": "The address for this person"
},
-
"birthDate": {
"title": "Birth Date",
"type": "string",
- "format": "date-time",
- "description": "This person's birth date, in [internet date time format](https://www.w3.org/TR/NOTE-datetime)."
+ "description": "This person’s birth date, in [internet date time format](https://www.w3.org/TR/NOTE-datetime)",
+ "format": "date-time"
},
-
"birthPlace": {
"title": "Birth Place",
- "description": "This person's place of birth, as a location object.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Location.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Location.json",
+ "description": "This person’s place of birth, as a Location object"
},
-
"email": {
"title": "Email",
"type": "string",
- "format": "email",
- "description": "This person's email."
+ "description": "This person’s email",
+ "format": "email"
},
-
"familyName": {
"title": "Family Name(s) / Last Name(s)",
"type": "string",
- "description": "This person's family name(s) (last name(s))."
+ "description": "This person’s family name(s) (last name(s))"
},
-
"gender": {
"title": "Gender",
"type": "string",
- "description": "This person's self-reported gender identity."
+ "description": "This person’s self-reported gender identity"
},
-
"givenName": {
"title": "Given Name(s) / First Name(s)",
"type": "string",
- "description": "This person's given name(s) (first name(s)), including middle name(s), if any."
+ "description": "This person’s given name(s) (first name(s)), including middle name(s), if any"
},
-
"languages": {
-
"title": "Languages Spoken",
"type": "array",
"description": "A list of the languages that this person speaks. Each item should be a DLx Language object, optionally with a few additional properties such as `ageLearned`, etc., Because the DLx Language object consist minimally of just the language name, not all details about the language need to be provided here.",
-
"uniqueItems": true,
-
"items": {
-
"title": "Language Spoken",
-
"allOf": [
-
{
"title": "Language",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Language.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Language.json",
+ "description": "Each item in the \"languages\" Array must be a valid Language Object."
},
-
{
-
"additionalProperties": true,
-
"properties": {
-
"ageLearned": {
"title": "Age Learned",
"type": "integer",
- "description": "The age at which this person learned this Language."
+ "description": "The age at which this person learned this language"
},
-
"notes": {
"title": "Notes",
"type": "array",
"uniqueItems": true,
- "description": "Notes about this person's use of this Language.",
+ "description": "Notes about this person’s use of this language",
"items": {
"title": "Note",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A note about this person’s use of this language"
}
},
-
"proficiency": {
"title": "Proficiency",
"type": "string",
- "description": "The proficiency level of this person in this Language."
+ "description": "The proficiency level of this person in this Language"
},
-
"yearsKnown": {
"title": "Years Known",
"type": "integer",
- "description": "The number of years this person has known this Language."
+ "description": "The number of years this person has known this Language"
}
-
}
}
-
]
-
}
-
},
-
"notes": {
"title": "Notes",
"type": "array",
- "description": "An array of notes about this person.",
+ "description": "An array of notes about this person",
"uniqueItems": true,
"items": {
"title": "Note",
- "description": "A note about this person.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A note about this person"
}
},
-
"phone": {
"title": "Phone Number",
"type": "string",
- "description": "A phone number for this Person."
+ "description": "A phone number for this Person"
},
-
"pseudonym": {
"title": "Pseudonym",
"type": "string",
- "description": "A pseudonym for this Person."
+ "description": "A pseudonym for this Person"
},
-
"roles": {
"title": "Roles",
"type": "array",
- "description": "An array of the roles that this person has in the context of the associated data, e.g. `speaker` or `transcriber`.",
+ "description": "An array of the roles that this person has in the context of the associated data, e.g. `speaker` or `transcriber`",
"uniqueItems": true,
"items": {
"title": "Role",
"type": "string",
- "description": "The role that this person has in the context of the associated data, e.g. `speaker` or `transcriber`."
+ "description": "The role that this person has in the context of the associated data, e.g. `speaker` or `transcriber`"
}
},
-
"tags": {
"title": "Tags",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags for this Person"
},
-
"url": {
"title": "URL",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL where the JSON data for this Person may be accessed"
}
-
}
-}
+}
\ No newline at end of file
diff --git a/schemas/Phoneme.json b/schemas/json/Phoneme.json
similarity index 85%
rename from schemas/Phoneme.json
rename to schemas/json/Phoneme.json
index 9ee09721..48299a95 100644
--- a/schemas/Phoneme.json
+++ b/schemas/json/Phoneme.json
@@ -1,25 +1,22 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Phoneme-2.1.1.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Phoneme-2.1.2.json",
"title": "Phoneme",
"type": "object",
"description": "An object representing a single phoneme in a language, and its allophones.",
-
- "required": ["ipa"],
-
+ "required": [
+ "ipa"
+ ],
"additionalProperties": true,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Phoneme`.",
- "enum": ["Phoneme"]
+ "description": "The type of object (must be set to `Phoneme`)",
+ "enum": [
+ "Phoneme"
+ ]
},
-
"airstream": {
"title": "Airstream Mechanism",
"type": "string",
@@ -32,18 +29,18 @@
"pulmonic"
]
},
-
"allophones": {
"title": "Allophones",
"type": "array",
- "uniqueItems": true,
"description": "A list of allophones of this phoneme, following the same format as for Phoneme objects.",
+ "uniqueItems": true,
"items": {
"title": "Allophone",
- "$ref": "#"
+ "type": "object",
+ "$ref": "#",
+ "description": "An allophone of this phoneme. Allophones are formatted exactly the same way as Phoneme Objects."
}
},
-
"backness": {
"title": "Backness",
"type": "string",
@@ -56,12 +53,11 @@
"back"
]
},
-
"features": {
"title": "Features",
"type": "array",
- "uniqueItems": true,
"description": "A list of the phonemically distinctive features of this Phoneme. These are what are listed under `diacritics` in the IPA chart. For example, if a language distinguishes between a palatalized `/t/` and a plain `/t/`, the first should include the feature `palatalized` and the second `plain` (or no features). Note that most features are also a manner of articulation as well, so it up to the linguist to decide when a given phonetic detail is a manner, or when it is a feature (i.e. a diacritic). For example, a language might distinguish phonemically between a palatal plosive `/c/` and a palatalized plosive `/tʲ/`. The first would list `palatal` as its place of articulation, while the second would list `palatalized` as a distinctive feature. Do not include features here if they are already used for manner, unless your analysis is that this feature is *both* a manner and a feature of this phoneme, e.g. a palatalized palatal stop. This field is used primarily for consonants, but may also apply to vowels as well (e.g. the `close` and `open` features).",
+ "uniqueItems": true,
"items": {
"title": "Feature",
"type": "string",
@@ -114,11 +110,10 @@
]
}
},
-
"height": {
"title": "Height",
"type": "string",
- "description": "The height of a vowel.",
+ "description": "The height of a vowel",
"enum": [
"close",
"near-close",
@@ -129,17 +124,15 @@
"open"
]
},
-
"ipa": {
"title": "IPA Transcription",
"type": "string",
- "description": "The IPA representation of this Phoneme."
+ "description": "The IPA representation of this phoneme / allophone. Transcriptions of phonemes should contain only the phonemically contrastive sounds. Transcriptions of allophones should contain only the regularly-conditioned alternations."
},
-
"length": {
"title": "Length",
"type": "string",
- "description": "The length of this phoneme, whether for consonants (e.g. `short` vs. `geminate`) or vowels.",
+ "description": "The length of this phoneme, whether for consonants (e.g. `short` vs. `geminate`) or vowels",
"enum": [
"extra short",
"short",
@@ -149,11 +142,10 @@
"geminate"
]
},
-
"manner": {
"title": "Manner of Articulation",
"type": "string",
- "description": "The manner of articulation, for consonants. Only one manner of articulation may be listed. Additional manners must be listed under the `features` attribute. For example, the lateral fricative `ɬ` might have a `manner` set to `fricative` and a feature `lateral`, or vice versa, depending on the linguist's analysis.",
+ "description": "The manner of articulation, for consonants. Only one manner of articulation may be listed. Additional manners must be listed under the `features` attribute. For example, the lateral fricative `ɬ` might have a `manner` set to `fricative` and a feature `lateral`, or vice versa, depending on the linguist’s analysis.",
"enum": [
"approximate",
"flap",
@@ -165,18 +157,18 @@
"trill"
]
},
-
"notes": {
"title": "Notes",
- "description": "Notes about this Phoneme.",
"type": "array",
+ "description": "Notes about this Phoneme",
"uniqueItems": true,
"items": {
"title": "Note",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A Note about this Phoneme"
}
},
-
"place": {
"title": "Place of Articulation",
"type": "string",
@@ -200,17 +192,17 @@
"epiglottal"
]
},
-
"references": {
"title": "Bibliographic References",
"type": "array",
"uniqueItems": true,
"items": {
"title": "Reference",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json",
+ "description": "A bibliographic reference"
}
},
-
"rounding": {
"title": "Rounding",
"type": "string",
@@ -222,46 +214,44 @@
"unrounded"
]
},
-
"tags": {
"title": "Tags",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags for this phoneme"
},
-
"target1": {
"title": "Dipthong / Triphthong Target 1",
- "description": "For diphthongs or triphthongs, this should be a Phoneme object representing the features of the first target in the pronunciation of the diphthong/triphthong.",
- "$ref": "#"
+ "type": "object",
+ "$ref": "#",
+ "description": "For diphthongs or triphthongs, this should be a Phoneme object representing the features of the first target in the pronunciation of the diphthong/triphthong."
},
-
"target2": {
"title": "Dipthong / Triphthong Target 2",
- "description": "For diphthongs or thriphthongs, this should be a Phoneme object representing the features of the second target in the pronunciation of the diphthong/triphthong.",
- "$ref": "#"
+ "type": "object",
+ "$ref": "#",
+ "description": "For diphthongs or thriphthongs, this should be a Phoneme object representing the features of the second target in the pronunciation of the diphthong/triphthong."
},
-
"target3": {
"title": "Triphthong Target 3",
- "description": "For triphthongs, this should be a Phoneme object representing the features of the third target in the pronunciation of the triphthong.",
- "$ref": "#"
+ "type": "object",
+ "$ref": "#",
+ "description": "For triphthongs, this should be a Phoneme object representing the features of the third target in the pronunciation of the triphthong."
},
-
"tone": {
"title": "Tone",
"type": "string",
"description": "An abstract representation of the tone of this phoneme, e.g. `H`, `13`, `falling`, etc."
},
-
"voicing": {
"title": "Voicing",
"type": "string",
- "description": "Whether the phoneme is voiced, voiceless, or partially voiced.",
+ "description": "Whether the phoneme is voiced, voiceless, or partially voiced",
"enum": [
"semivoiced",
"voiced",
"voiceless"
]
}
-
}
-}
+}
\ No newline at end of file
diff --git a/schemas/Reference.json b/schemas/json/Reference.json
similarity index 69%
rename from schemas/Reference.json
rename to schemas/json/Reference.json
index 0ce00f28..811db308 100644
--- a/schemas/Reference.json
+++ b/schemas/json/Reference.json
@@ -1,130 +1,123 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Reference-2.0.2.json",
+ "id": "http://cdn.digitallinguistics.io/schemas/Reference-2.0.3.json",
"title": "Bibliographic Reference",
"type": "object",
"description": "A bibliographic Reference. Note: The `type` field in a reference refers to the type of reference, not the type of DLx object.",
- "required": ["title"],
-
+ "required": [
+ "title"
+ ],
"additionalProperties": true,
-
"definitions": {
"person": {
"title": "Person",
"type": "object",
- "description": "An object representing a Person.",
+ "description": "An object representing a Person",
"additionalProperties": false,
"properties": {
"firstName": {
"title": "First Name",
"type": "string",
- "description": "The first name(s) of this author."
+ "description": "The first name(s) of this author"
},
"lastName": {
"title": "Last Name",
"type": "string",
- "description": "The last name(s) of this author."
+ "description": "The last name(s) of this author"
}
}
}
},
-
"properties": {
-
"authors": {
"title": "Authors",
"type": "array",
- "description": "An array of authors for this Reference.",
+ "description": "An array of authors for this Reference",
"uniqueItems": true,
- "items": { "$ref": "#/definitions/person" }
+ "items": {
+ "title": "Author",
+ "type": "object",
+ "$ref": "#/definitions/person",
+ "description": "A Person Object representing an author"
+ }
},
-
"city": {
"title": "City",
"type": "string",
- "description": "The city in which this reference was published."
+ "description": "The city in which this reference was published"
},
-
"edition": {
"title": "Edition",
"type": "integer",
- "description": "The edition of this Reference."
+ "description": "The edition of this Reference, formatted as an integer"
},
-
"editors": {
"title": "Editors",
"type": "array",
- "description": "An array of editors for this Reference.",
+ "description": "An array of editors for this Reference",
"uniqueItems": true,
"items": {
"title": "Editor",
"type": "object",
- "description": "An object representing an editor.",
+ "description": "An object representing an editor",
"additionalProperties": false,
"properties": {
"firstName": {
"title": "First Name",
"type": "string",
- "description": "The first name(s) of this editor."
+ "description": "The first name(s) of this editor"
},
"lastName": {
"title": "Last Name",
"type": "string",
- "description": "The last name(s) of this editor."
+ "description": "The last name(s) of this editor"
}
}
}
},
-
"issue": {
"title": "Issue",
"type": "string",
- "description": "The publication issue."
+ "description": "The publication issue"
},
-
"pages": {
"title": "Pages",
"type": "string",
- "description": "The page numbers of this Reference."
+ "description": "The page numbers of this Reference"
},
-
"publication": {
"title": "Publication",
"type": "string",
- "description": "The publication where this item was published."
+ "description": "The publication where this item was published"
},
-
"publisher": {
"title": "Publisher (or Institution)",
"type": "string",
- "description": "The name of the publisher of this reference, or the institution where it was published."
+ "description": "The name of the publisher of this reference, or the institution where it was published"
},
-
"series": {
"title": "Series",
"type": "string",
- "description": "The series in which this publication was published."
+ "description": "The series in which this publication was published"
},
-
"title": {
"title": "Title",
"type": "string",
- "description": "The title of this publication."
+ "description": "The title of this publication"
},
-
"translators": {
"title": "Translators",
"type": "array",
- "description": "An array of translations for this Reference.",
+ "description": "An array of translations for this Reference",
"uniqueItems": true,
- "items": { "$ref": "#/definitions/person" }
+ "items": {
+ "$ref": "#/definitions/person"
+ }
},
-
"type": {
"title": "Publication Type",
"type": "string",
- "description": "The type of publication.",
+ "description": "The type of publication",
"enum": [
"journal article",
"book",
@@ -142,27 +135,23 @@
"film"
]
},
-
"url": {
"title": "URL",
"type": "string",
- "format": "uri",
- "description": "A URL for this Reference."
+ "description": "A URL for this Reference",
+ "format": "uri"
},
-
"volume": {
"title": "Volume",
"type": "integer",
- "description": "The volume number for this publication."
+ "description": "The volume number for this publication"
},
-
"year": {
"title": "Year",
"type": "integer",
- "description": "The year this item was published.",
+ "description": "The year this item was published",
"minimum": 0,
"exclusiveMinimum": true
}
-
}
-}
+}
\ No newline at end of file
diff --git a/schemas/Sentence.json b/schemas/json/Sentence.json
similarity index 85%
rename from schemas/Sentence.json
rename to schemas/json/Sentence.json
index ddf95deb..7e59f4af 100644
--- a/schemas/Sentence.json
+++ b/schemas/json/Sentence.json
@@ -1,105 +1,97 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Sentence-1.1.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Sentence-1.1.1.json",
"title": "Sentence",
"type": "object",
"description": "The term *sentence* is intentially ambiguous, and refers to any unit of a text above the word level. The DLx framework imposes no requirements regarding this size of this unit or how segmentation of the text into units should be accomplished. The user may choose to segment a text based on intonation units, turns, or any other appropriate subdivision. A DLx Sentence consists minimally of a transcription, a translation, and an array of words (though the words array may be empty).",
-
"required": [
"transcription",
"translation",
"words"
],
-
"dependencies": {
- "startTime": ["endTime"],
- "endTime": ["startTime"]
+ "startTime": [
+ "endTime"
+ ],
+ "endTime": [
+ "startTime"
+ ]
},
-
"additionalProperties": true,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Sentence`.",
- "enum": ["Sentence"]
+ "description": "The type of object (must be set to `Sentence`)",
+ "enum": [
+ "Sentence"
+ ]
},
-
"endTime": {
"title": "End Time",
"type": "number",
"description": "The time that the speaker finishes producing this Sentence within the media file(s) associated with this Text. The timestamp should be formatted in SS.MMM (seconds and milliseconds)."
},
-
"key": {
"title": "Key",
"type": "string",
"description": "A key which uniquely identifies this Sentence within the Text. The key for a Sentence consists of the abbreviation of the Text, a period, and then the number of this Sentence within the Text (index starts at 1). For example, the third Sentence of a Text with the abbreviation `A` would be `A.3`. Keys should be unique within a corpus.",
"pattern": "^[(a-z)|(A-Z)|(0-9)]+\\.[0-9]{1,3}$"
},
-
"language": {
"title": "Language",
"type": "string",
- "description": "The key for the Language used in this Sentence, e.g. `spa` or `eng`. If the text is labeled with a Language, all its Sentences are assumed to be the same Language unless labeled otherwise. Likewise, if a Sentence is given a Language, all its words are assumed to be the same Language unless the word is labeled otherwise.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "The key for the Language used in this Sentence, e.g. `spa` or `eng`. If the text is labeled with a Language, all its Sentences are assumed to be the same Language unless labeled otherwise. Likewise, if a Sentence is given a Language, all its words are assumed to be the same Language unless the word is labeled otherwise."
},
-
"notes": {
-
"title": "Notes",
"type": "array",
- "description": "A collection of notes about this Sentence.",
-
+ "description": "A collection of notes about this Sentence",
"uniqueItems": true,
-
"items": {
"title": "Note",
- "description": "A note about this Sentence, optionally in multiple orthographies.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A note about this Sentence, optionally in multiple orthographies"
}
-
},
-
"speaker": {
"title": "Speaker",
"type": "string",
- "description": "The abbreviation of person who produced (uttered, signed, spoke, sung) this Sentence. The value of this field must match the abbreviation of one of the persons listed in the `contributors` array of the Text. If the text has a single contributor with the role of `speaker`, that speaker is assumed to be the speaker for all Sentences in the Text. If multiple contributors with a `speaker` role are included in a text, each Sentence must have its `speaker` attribute specified.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "The abbreviation of person who produced (uttered, signed, spoke, sung) this Sentence. The value of this field must match the abbreviation of one of the persons listed in the `contributors` array of the Text. If the text has a single contributor with the role of `speaker`, that speaker is assumed to be the speaker for all Sentences in the Text. If multiple contributors with a `speaker` role are included in a text, each Sentence must have its `speaker` attribute specified."
},
-
"startTime": {
"title": "Start Time",
"type": "number",
"description": "The time that the speaker begins producing this Sentence within the media file(s) associated with this Text. The timestamp should be formatted in SS.MMM (seconds and milliseconds)."
},
-
"tags": {
"title": "Tags",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags for this Sentence"
},
-
"transcript": {
"title": "Transcript",
- "description": "A transcript of this Sentence, including things like prosodic markup, overlap, pauses, and various other discourse features. This field is intended for use by those doing discourse or conversation analysis, who need to mark up their text without affecting the phonemic transcription (in the `transcription` property). The transcript may be in multiple languages/orthographies, or representational systems (e.g. you might have a `CA` transcript and a `DT` transcript, for discourse transcripts using Conversation Analysis and Discourse Transcription conventions respectively).",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json",
+ "description": "A transcript of this Sentence, including things like prosodic markup, overlap, pauses, and various other discourse features. This field is intended for use by those doing discourse or conversation analysis, who need to mark up their text without affecting the phonemic transcription (in the `transcription` property). The transcript may be in multiple languages/orthographies, or representational systems (e.g. you might have a `CA` transcript and a `DT` transcript, for discourse transcripts using Conversation Analysis and Discourse Transcription conventions respectively)."
},
-
"transcription": {
"title": "Transcription",
- "description": "The transcriptions for this Sentence, optionally in multiple orthographies. This field is intended for use with purely phonemic / morphophonemic transcriptions. Punctuation should generally be avoided. To add punctuation and other discourse-level transcriptional features, use the `transcript` property.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json",
+ "description": "The transcriptions for this Sentence, optionally in multiple orthographies. This field is intended for use with purely phonemic / morphophonemic transcriptions. Punctuation should generally be avoided. To add punctuation and other discourse-level transcriptional features, use the `transcript` property."
},
-
"translation": {
"title": "Translation",
"description": "The translations for this Sentence, optionally in multiple languages. Also includes an optional `type` attribute, for specifying things like `free` or `literal` translation.",
"allOf": [
- { "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"},
+ {
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ },
{
"properties": {
"type": {
@@ -111,23 +103,23 @@
}
]
},
-
"url": {
"title": "URL",
- "description": "The URL where this Sentence can be retrieved in JSON format.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL where this Sentence can be retrieved in JSON format"
},
-
"words": {
"title": "Words",
"type": "array",
- "description": "A collection of the word tokens contained in this Sentence.",
+ "description": "A collection of the word tokens contained in this Sentence",
"uniqueItems": false,
"items": {
"title": "Word",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Word.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Word.json",
+ "description": "A Word Object"
}
}
-
}
-}
+}
\ No newline at end of file
diff --git a/schemas/Tags.json b/schemas/json/Tags.json
similarity index 87%
rename from schemas/Tags.json
rename to schemas/json/Tags.json
index 5aa38e25..fcd6c861 100644
--- a/schemas/Tags.json
+++ b/schemas/json/Tags.json
@@ -1,19 +1,22 @@
{
"$schema": "http://json-schema.org/schema#",
"id": "http://cdn.digitallinguistics.io/schemas/Tags-1.0.2.json",
-
"title": "Tags",
"type": "object",
"description": "A tag is a piece of metadata that can be applied to almost any DLx object. The tags object contains a set of tags for this resource as pairs of attributes and values. For example, a researcher might tag a suffix with the attribute `person`, and a value of `3`, to indicate that the particular suffix is 3rd Person. If no value is needed, the value may also be set to `true` or `false` (but not `null`), however users are encouraged to use both attribute and value for every tag, since this helps identify the larger category that the tag value belongs to. Note: The Tags object does not have a `type` property.",
-
"additionalProperties": {
"title": "Tag",
"description": "A single tag, as an attribute-value pair.",
"oneOf": [
- { "type": "string" },
- { "type": "boolean" },
- { "type": "number" }
+ {
+ "type": "string"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ }
]
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/Text.json b/schemas/json/Text.json
similarity index 70%
rename from schemas/Text.json
rename to schemas/json/Text.json
index 7cb825de..e7b66030 100644
--- a/schemas/Text.json
+++ b/schemas/json/Text.json
@@ -1,84 +1,83 @@
{
-
"$schema": "http://json-schema.org/schema#",
- "id": "http://cdn.digitallinguistics.io/schemas/Text-2.1.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Text-2.1.1.json",
"title": "Text",
"type": "object",
"description": "A *text* is the fundamental unit of documentation. It represents a linguistic performance of a stretch of discourse in context. This may include a wide variety of linguistic genres: an elicitation session, a conversation, a narrative, a song, etc. In technical terms, a text is an interlinearized set of sentences with one or more transcriptions, translations, and optionally Leipzig-style glosses.",
-
"required": [
"sentences",
"title"
],
-
"additionalProperties": true,
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
- "description": "The type of object. Must be set to `Text`.",
- "enum": ["Text"]
+ "description": "The type of object (must be set to `Text`)",
+ "enum": [
+ "Text"
+ ]
},
-
"abbreviation": {
"title": "Abbreviation",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Abbreviation.json",
+ "description": "An abbreviation for this Text"
},
-
"access": {
"title": "Access Rights",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Access.json",
+ "description": "An Object describing the acess rights to this Text"
},
-
"contributors": {
"title": "Contributors",
"type": "array",
- "description": "A collection of people who contributed to the creation or analysis of this text in some way.",
+ "description": "A collection of people who contributed to the creation or analysis of this text in some way",
"items": {
"title": "Contributor",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Contributor.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Contributor.json",
+ "description": "A Person Object that describes this contributor"
}
},
-
"dateCreated": {
"title": "Date Created",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateCreated.json",
+ "description": "The date that this Text was created in the database (**not** the date it was recorded; see the \"dateRecorded\" property instead)"
},
-
"dateModified": {
"title": "Date Modified",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateModified.json",
+ "description": "The date that this Text Object was last modified (**not** the date that the recording of the text was modified)"
},
-
"dateRecorded": {
"title": "Date Recorded",
- "$ref": "http://cdn.digitallinguistics.io/schemas/DateRecorded.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/DateRecorded.json",
+ "description": "The date that this text was recorded"
},
-
"discourseType": {
"title": "Discourse Type",
"type": "string",
- "description": "The type of discourse event, e.g. monologue, dialogue, or song.",
+ "description": "The type of discourse event, e.g. monologue, dialogue, or song",
"minLength": 1
},
-
"genre": {
"title": "Genre",
"type": "string",
- "description": "The genre of the text, e.g. folktale, personal narrative, or expository.",
- "minLength": 1,
- "$ref": "http://cdn.digitallinguistics.io/schemas/genre.json"
+ "$ref": "http://cdn.digitallinguistics.io/schemas/genre.json",
+ "description": "The genre of the text, e.g. folktale, personal narrative, or expository",
+ "minLength": 1
},
-
"location": {
"title": "Location",
- "description": "The location where this text was recorded.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Location.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Location.json",
+ "description": "The location where this text was recorded"
},
-
"media": {
"title": "Media",
"type": "array",
@@ -86,63 +85,69 @@
"description": "An array of objects containing information about the media files associated with this Text. Usually this will include the WAV or video file that was originally recorded for the text, but can also include any derivative media files (such as MP3) as well. Media associated with a text are automatically considered to be part of the same database bundle as the Text.",
"items": {
"title": "Media Items",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Media.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Media.json",
+ "description": "An object describing a media file"
}
},
-
"notes": {
"title": "Notes",
"type": "array",
- "description": "A collection of notes about this Text.",
+ "description": "A collection of notes about this Text",
"uniqueItems": true,
"items": {
"title": "Note",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A Note Object"
+ }
+ },
+ "references": {
+ "title": "References",
+ "type": "array",
+ "description": "A list of any bibliographic references concerning or relating to this Text",
+ "items": {
+ "title": "Reference",
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json",
+ "description": "A bibliographic reference about this text"
}
},
-
"sentences": {
"title": "Sentences",
"type": "array",
"description": "A collection of all the Sentences contained in this Text. The DLx specification imposes no requirements regarding how the linguist should segment the text into Sentences. The linguist may decide to segment their text based on intonation units, turns, or any other appropriate linguistic subdivision. The order of Sentences in the collection must reflect their actual order in the Text. Sentences do *not* have to be JSON unique - a Sentence may be repeated in a text, for example.,",
+ "minItems": 1,
"items": {
"title": "Sentence",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Sentence.json"
- },
- "minItems": 1
- },
-
- "references": {
- "title": "References",
- "type": "array",
- "description": "A list of any bibliographic references concerning or relating to this Text.",
- "items": {
- "title": "Reference",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Reference.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Sentence.json",
+ "description": "A Sentence Object"
}
},
-
"status": {
"title": "Status",
- "$ref": "http://cdn.digitallinguistics.io/schemas/status.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/status.json",
+ "description": "The status of this text (in a fieldwork workflow)"
},
-
"tags": {
"title": "Tags",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags associated with this Text"
},
-
"title": {
"title": "Title",
- "description": "A title is a human-readable prose description of the content of the Text. The `title` object contains all the titles of the text, in one or more languages. Each attribute in the `title` object should be the abbreviation of a language, and its value should be the title of the text in that language.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "A title is a human-readable prose description of the content of the Text. The `title` object contains all the titles of the text, in one or more languages. Each attribute in the `title` object should be the abbreviation of a language, and its value should be the title of the text in that language."
},
-
"url": {
"title": "URL",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "The URL where this data can be retrieved in JSON format"
}
-
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/Transcription.json b/schemas/json/Transcription.json
similarity index 99%
rename from schemas/Transcription.json
rename to schemas/json/Transcription.json
index d5615ecb..c0a70979 100644
--- a/schemas/Transcription.json
+++ b/schemas/json/Transcription.json
@@ -1,14 +1,10 @@
{
-
"$schema": "http://json-schema.org/schema#",
"id": "http://cdn.digitallinguistics.io/schemas/Transcription-1.0.1.json",
-
"title": "Transcription",
"type": "object",
"description": "A transcription of a piece of data in a language, optionally in multiple orthographies. For example, a transcription might be written in both a practical orthography and in IPA. Each key must be the abbreviation for an orthography (see the Abbreviation schema), and the value for that key is the transcription of the data in that particular orthography. Note: The Transcription object does not have a `type` property.",
-
"additionalProperties": false,
-
"patternProperties": {
"^[(a-z)|(A-Z)|(0-9)]+$": {
"title": "Text",
@@ -16,5 +12,4 @@
"description": "The transcription for the specified orthography."
}
}
-
-}
+}
\ No newline at end of file
diff --git a/schemas/URL.json b/schemas/json/URL.json
similarity index 82%
rename from schemas/URL.json
rename to schemas/json/URL.json
index d877df16..b5e92daf 100644
--- a/schemas/URL.json
+++ b/schemas/json/URL.json
@@ -3,6 +3,6 @@
"id": "http://cdn.digitallinguistics.io/schemas/URL-1.0.0.json",
"title": "URL",
"type": "string",
- "format": "uri",
- "description": "A URL where this resource can be retrieved. The resource does not have to be publicly available at this URL; it may require permissions to Access. Best practice is to make the resource available at this URL in JSON format."
-}
+ "description": "A URL where this resource can be retrieved. The resource does not have to be publicly available at this URL; it may require permissions to Access. Best practice is to make the resource available at this URL in JSON format.",
+ "format": "uri"
+}
\ No newline at end of file
diff --git a/schemas/Word.json b/schemas/json/Word.json
similarity index 79%
rename from schemas/Word.json
rename to schemas/json/Word.json
index e98185fa..721eec47 100644
--- a/schemas/Word.json
+++ b/schemas/json/Word.json
@@ -1,41 +1,35 @@
{
-
"$schema": "http://json-schema.org/schema",
- "id": "http://cdn.digitallinguistics.io/schemas/Word-2.3.0.json",
-
+ "id": "http://cdn.digitallinguistics.io/schemas/Word-2.3.1.json",
"title": "Word",
"type": "object",
- "description": "A Word object represents a specific token in a text, rather than to an abstract lexeme (see the Lexeme object for that).",
-
+ "description": "A Word object represents a specific token in a text, rather than an abstract lexeme (see the Lexeme object for that).",
"additionalProperties": true,
-
"required": [
"morphemes",
"transcription"
],
-
"properties": {
-
"type": {
"title": "Type",
"type": "string",
"description": "The type of object. Must be set to `Word`.",
- "enum": ["Word"]
+ "enum": [
+ "Word"
+ ]
},
-
"gloss": {
"title": "Gloss",
- "description": "A Leipzig-style gloss for this Word. This does not need to be supplied if it can be generated automatically from the glosses at the morpheme level. May be in multiple languages.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "A Leipzig-style gloss for this Word. This does not need to be supplied if it can be generated automatically from the glosses at the morpheme level. May be in multiple languages."
},
-
"key": {
"title": "Key",
"type": "string",
"description": "A key that uniquely identifies this word token within the Text. The key for a Word consists of the abbreviation of the text, a period, the number of Sentence within the text, another period, and then the number of this word within the Sentence (indexing starts at 1). For example, for the fourth word of the third Sentence of a text with the abbreviation `A`, the key would be `A.3.4`. Keys should be unique within a corpus.",
"pattern": "^[(a-z)|(A-Z)|(0-9)]+\\.[0-9]{1,3}\\.[0-9]{1,2}$"
},
-
"morphemes": {
"title": "Morphemes / Components",
"type": "array",
@@ -43,90 +37,91 @@
"uniqueItems": false,
"items": {
"title": "Morpheme",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Morpheme.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Morpheme.json",
+ "description": "An Object representing this morphem"
}
},
-
"notes": {
"title": "Notes",
"type": "array",
- "description": "A collection of notes about this token.",
+ "description": "A collection of notes about this token",
"uniqueItems": true,
"items": {
"title": "Note",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A Note about this token"
}
},
-
"phonemes": {
"title": "Phonemes",
"type": "array",
- "description": "An array of the phones (phoneme tokens) in this word, in IPA.",
+ "description": "An array of the phones (phoneme tokens) in this word, in IPA",
"uniqueItems": false,
"items": {
"title": "Phone (Phoneme Token)",
"type": "object",
"description": "An IPA representation of this phoneme. The `phoneme` field is required, but the `allophone` field is optional, for use only when you need to specify that this phoneme is being realized as a particular phoneme. Both `phoneme` and `allophone` must be in IPA rather than a practical orthography.",
- "required": ["phoneme"],
+ "required": [
+ "phoneme"
+ ],
"additionalProperties": true,
"properties": {
-
"allophone": {
"title": "Allophone",
"type": "string",
"description": "This property may be used to specify which allophone this particular phoneme token is. Must be written in IPA."
},
-
"notes": {
"title": "Notes",
"type": "array",
- "description": "A collection of notes about this phone.",
+ "description": "A collection of notes about this phone",
"uniqueItems": true,
"items": {
"title": "Note",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Note.json",
+ "description": "A note about this phone. Useful for one-time observations of interesting allophonic variation in the data."
}
},
-
"phoneme": {
"title": "Phoneme",
"type": "string",
"description": "An IPA representation of this phoneme token. Must be a representation of the abstract phoneme rather than the particular allophone (use the `allophone` property for that insetad)."
},
-
"tags": {
"title": "Tags",
- "description": "A set of tags for this phone.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags for this phone"
}
-
}
}
},
-
"tags": {
"title": "Tags",
- "description": "A set of tags for this word token.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Tags.json",
+ "description": "A set of tags for this word token"
},
-
"transcription": {
"title": "Transcription",
- "description": "A transcription of this word, optionally in multiple orthographies.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/Transcription.json",
+ "description": "A transcription of this word, optionally in multiple orthographies"
},
-
"translation": {
"title": "Translation",
- "description": "A translation of this word, optionally in multiple languages. Note that the translation is not the same as a gloss. Use the translation field for free, natural language translations of a word; use the gloss field for Leipzig-style glosses only.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json"
+ "type": "object",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/MultiLangString.json",
+ "description": "A translation of this word, optionally in multiple languages. Note that the translation is not the same as a gloss. Use the translation field for free, natural language translations of a word; use the gloss field for Leipzig-style glosses only."
},
-
"url": {
"title": "URL",
- "description": "A URL where this word may be accessed.",
- "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json"
+ "type": "string",
+ "$ref": "http://cdn.digitallinguistics.io/schemas/URL.json",
+ "description": "A URL where this word may be accessed"
}
-
}
-}
+}
\ No newline at end of file
diff --git a/schemas/json/index.js b/schemas/json/index.js
new file mode 100644
index 00000000..3e05941c
--- /dev/null
+++ b/schemas/json/index.js
@@ -0,0 +1,29 @@
+module.exports = {
+ Abbreviation: require('./Abbreviation'),
+ Access: require('./Access'),
+ Address: require('./Address'),
+ Bundle: require('./Bundle'),
+ DateCreated: require('./DateCreated'),
+ DateModified: require('./DateModified'),
+ DateRecorded: require('./DateRecorded'),
+ GeoJSON: require('./GeoJSON'),
+ Language: require('./Language'),
+ Lexeme: require('./Lexeme'),
+ LexemeReference: require('./LexemeReference'),
+ Lexicon: require('./Lexicon'),
+ Location: require('./Location'),
+ Media: require('./Media'),
+ Morpheme: require('./Morpheme'),
+ MultiLangString: require('./MultiLangString'),
+ Note: require('./Note'),
+ Orthography: require('./Orthography'),
+ Person: require('./Person'),
+ Phoneme: require('./Phoneme'),
+ Reference: require('./Reference'),
+ Sentence: require('./Sentence'),
+ Tags: require('./Tags'),
+ Text: require('./Text'),
+ Transcription: require('./Transcription'),
+ URL: require('./URL'),
+ Word: require('./Word'),
+};
\ No newline at end of file
diff --git a/schemas/template.yml b/schemas/template.yml
new file mode 100644
index 00000000..b708fd1c
--- /dev/null
+++ b/schemas/template.yml
@@ -0,0 +1,43 @@
+# This is a template for new schema files.
+# Attributes in schema files should follow the order and formatting shown here.
+
+$schema: 'http://json-schema.org/draft-04/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/SchemaName-1.0.0.json'
+title: SchemaName
+type: string
+
+# The "description" field for a top-level schema should contain complete sentences, ending in periods.
+# The "description" field for subschemas does not need to be a complete sentence, but if it is, it should
+# also end in a period.
+# Use capitals (e.g. `Language`) when referring to the schema or programming object, and lowercase when referring to the actual thing (e.g. `language`).
+description: 'This is a description of the schema.'
+
+required:
+ - notes
+
+additionalProperties:
+ type: string
+
+properties:
+
+ # The "type" attribute should be listed first
+ # Other attributes should be listed in alphabetical order below
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `SchemaName`)'
+ enum:
+ - SchemaName
+
+ # Attributes with a "$ref" should still list the "title", "type", and "description". The "description" field should contain details about how the attribute should be interpreted or used in the context of the current schema
+ abbreviation:
+ title: Abbreviation
+ type: String
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'Some details about how the "abbreviation" field is to be interpreted or used in the SchemaName schema'
+
+ notes:
+ title: Notes
+ type: String
+ $ref: http://cdn.digitallinguistics.io/schemas/Note.json
+ description: 'Notes about this SchemaName'
diff --git a/schemas/yaml/Abbreviation.yml b/schemas/yaml/Abbreviation.yml
new file mode 100644
index 00000000..d3ae9401
--- /dev/null
+++ b/schemas/yaml/Abbreviation.yml
@@ -0,0 +1,8 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Abbreviation-1.0.0.json'
+title: Abbreviation
+type: string
+
+description: 'A human-readable abbreviation, containing on letters `a-z`, `A-Z`, and numbers `0-9` (no spaces allowed).'
+
+pattern: '^[(a-z)|(A-Z)|(0-9)]+$'
diff --git a/schemas/yaml/Access.yml b/schemas/yaml/Access.yml
new file mode 100644
index 00000000..ac831848
--- /dev/null
+++ b/schemas/yaml/Access.yml
@@ -0,0 +1,37 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Access-2.0.2.json'
+title: 'Access Rights'
+type: object
+
+description: 'The Access Rights object provides information for archives on who should be allowed to access the current resource. Some access protocols used by language archives are already supported, and custom protocols may be used as, e.g. `online: false` or `permission: "researcher only"`, etc. **Note:** The Access object does not have a `type` property.'
+
+additionalProperties:
+ type: string
+
+properties:
+
+ notes:
+ title: 'Access Notes'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'Notes about access rights for this resource, or any other special considerations regarding who should have Access. This attribute should be a MultiLangString rather than an Array of Note objects.'
+
+ AILLA:
+ title: 'AILLA Access Level'
+ type: string
+ description: 'For users who are depositing their materials at The Archive of the Indigenous Languages of Latin America (AAILA) in Texas, an `AILLA` attribute may be added, and its value set to one of the access levels set forth by the archive.'
+ enum:
+ - 'public access'
+ - 'password'
+ - 'time limit'
+ - 'depositor control'
+
+ ELAR:
+ title: 'ELAR Access Level'
+ type: string
+ description: 'For users who are depositing their materials at the Endangered Language Archive (ELAR) in London, an `ELAR` attribute may be added, and its value set to one of the access levels set forth by the archive.'
+ enum:
+ - 'User'
+ - 'Researcher'
+ - 'Community Member'
+ - 'Subscriber'
diff --git a/schemas/yaml/Address.yml b/schemas/yaml/Address.yml
new file mode 100644
index 00000000..c4fb9fbf
--- /dev/null
+++ b/schemas/yaml/Address.yml
@@ -0,0 +1,52 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Address-1.1.1.json'
+title: Address
+type: object
+
+description: 'A postal Address'
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Address`)'
+ enum:
+ - Address
+
+ streetAddress:
+ title: 'Street Address'
+ type: string
+ description: 'The street address, not including apartment or unit number'
+
+ apartmentNumber:
+ title: 'Apartment / Unit Number'
+ type: string
+ description: 'The apartment or unit number, along with any abbreviations, e.g. `Apt 20`'
+
+ postalBoxNumber:
+ title: 'Postal Box Number'
+ type: string
+ description: 'The postal box number'
+
+ locality:
+ title: 'Locality / City'
+ type: string
+ description: 'The locality or city for this Address'
+
+ region:
+ title: 'Region / State'
+ type: string
+ description: ' The region or state for this Address'
+
+ country:
+ title: Country
+ type: string
+ description: 'The country this address is located in'
+
+ postalCode:
+ title: 'Postal Code'
+ type: string
+ description: 'The postal code for this address (as a string rather than a number)'
diff --git a/schemas/yaml/Bundle.yml b/schemas/yaml/Bundle.yml
new file mode 100644
index 00000000..5846ebef
--- /dev/null
+++ b/schemas/yaml/Bundle.yml
@@ -0,0 +1,117 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Bundle-1.1.1.json'
+title: Bundle
+type: object
+
+description: 'A bundle is a collection of related resources and derivative products. For example, many field linguists will put all the data from a single day or elicitation session in one bundle, as well as any transcriptions and pedagogical outputs derived from that session. Bundles are purely organizational objects containing references to the included items.'
+
+required:
+ - name
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Bundle`)'
+ enum:
+ - Bundle
+
+ abbreviation:
+ title: Abbreviation
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'An abbreviation for this bundle'
+
+ access:
+ title: 'Access Rights'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Access.json'
+ description: 'An object describing the acess rights for this bundle'
+
+ dateCreated:
+ title: 'Date Created'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateCreated.json'
+ description: 'The date that this bundle was created'
+
+ dateModified:
+ title: 'Date Modified'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateModified.json'
+ description: 'The date that this bundle was last modified'
+
+ locations:
+ title: Locations
+ type: array
+ description: 'An array of locations included in this bundle (usually locations that were visited during a day or session)'
+ uniqueItems: true
+ items:
+ title: Location
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Location.json'
+ description: 'An object describing a location associated with this bundle'
+
+ media:
+ title: Media
+ type: array
+ description: 'An array of media files included in this bundle'
+ uniqueItems: true
+ items:
+ title: 'Media File'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Media.json'
+ description: 'An object describing a media file in this bundle'
+
+ name:
+ title: Name
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'A name for this bundle, optionally in multiple languages'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this bundle'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A note about this bundle'
+
+ persons:
+ title: Persons
+ type: array
+ description: 'An array of persons associated with this bundle'
+ uniqueItems: true
+ items:
+ title: Person
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Person.json'
+ description: 'A person associated with this bundle'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A hash containing tags for this bundle'
+
+ texts:
+ title: Texts
+ type: array
+ description: 'An array of texts included in this bundle.'
+ uniqueItems: true
+ items:
+ title: Text
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Text.json'
+ description: 'A Text included in this bundle'
+
+ url:
+ title: URL
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL where this bundle may be accessed'
diff --git a/schemas/yaml/DateCreated.yml b/schemas/yaml/DateCreated.yml
new file mode 100644
index 00000000..581bf1e6
--- /dev/null
+++ b/schemas/yaml/DateCreated.yml
@@ -0,0 +1,8 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/DateCreated-1.0.0.json'
+title: 'Date Created'
+type: string
+
+description: 'The date this database object was created, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime) (*not* the date it was recorded; for that, see `dateRecorded`).'
+
+format: date-time
diff --git a/schemas/yaml/DateModified.yml b/schemas/yaml/DateModified.yml
new file mode 100644
index 00000000..5996856e
--- /dev/null
+++ b/schemas/yaml/DateModified.yml
@@ -0,0 +1,8 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/DateModified-1.0.0.json'
+title: 'Date Modified'
+type: string
+
+description: 'The date (and optionally time) that this object was last modified, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime).'
+
+format: date-time
diff --git a/schemas/yaml/DateRecorded.yml b/schemas/yaml/DateRecorded.yml
new file mode 100644
index 00000000..03e0068b
--- /dev/null
+++ b/schemas/yaml/DateRecorded.yml
@@ -0,0 +1,8 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/DateRecorded-1.0.0.json'
+title: 'Date Recorded'
+type: string
+
+description: 'The date this item was recorded, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime).'
+
+format: date-time
diff --git a/schemas/yaml/GeoJSON.yml b/schemas/yaml/GeoJSON.yml
new file mode 100644
index 00000000..f8b6bbc1
--- /dev/null
+++ b/schemas/yaml/GeoJSON.yml
@@ -0,0 +1,291 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/GeoJSON-1.0.1.json'
+title: 'GeoJSON Object'
+type: object
+
+description: 'This object represents a geometry, feature, or collection of features. It should be structured according to the [GeoJSON schema](http://geojson.org/).'
+
+additionalProperties: true
+
+required:
+ - type
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of GeoJSON object.'
+ enum:
+ - Point
+ - MultiPoint
+ - LineString
+ - MultiLineString
+ - Polygon
+ - MultiPolygon
+ - GeometryCollection
+ - Feature
+ - FeatureCollection
+
+ crs:
+ title: 'Coordinate Reference System (CRS)'
+ description: "The coordinate reference system (CRS) of a GeoJSON object is determined by its `crs` member (referred to as the CRS object below). If an object has no crs member, then its parent or grandparent object’s crs member may be acquired. If no crs member can be so acquired, the default CRS shall apply to the GeoJSON object.\n\n* The default CRS is a geographic coordinate reference system, using the WGS84 datum, and with longitude and latitude units of decimal degrees.\n\n* The value of a member named `crs` must be a JSON object (referred to as the CRS object below) or JSON null. If the value of CRS is null, no CRS can be assumed.\n\n* The crs member should be on the top-level GeoJSON object in a hierarchy (in feature collection, feature, geometry order) and should not be repeated or overridden on children or grandchildren of the object.\n\n* A non-null CRS object has two mandatory members: `type` and `properties`.\n\n* The value of the type member must be a string, indicating the type of CRS object.\n\n* The value of the properties member must be an object.\n\n* CRS shall not change coordinate ordering."
+ oneOf:
+ - type: 'null'
+ - type: object
+ required:
+ - type
+ - properties
+ properties:
+ type:
+ title: 'CRS Type'
+ type: string
+ description: 'The value of the type member must be a string, indicating the type of CRS object.'
+ minLength: 1
+ properties:
+ title: 'CRS Properties'
+ type: object
+ not:
+ anyOf:
+ - properties:
+ type:
+ enum:
+ - name
+ properties:
+ not:
+ required:
+ - name
+ properties:
+ name:
+ type: string
+ minLength: 1
+ - properties:
+ type:
+ enum:
+ - link
+ properties:
+ not:
+ title: 'Link Object'
+ type: object
+ required:
+ - href
+ properties:
+ href:
+ title: href
+ type: string
+ description: 'The value of the required `href` member must be a dereferenceable URI.'
+ format: uri
+ type:
+ title: 'Link Object Type'
+ type: string
+ description: 'The value of the optional `type` member must be a string that hints at the format used to represent CRS parameters at the provided URI. Suggested values are: `proj4`, `ogcwkt`, `esriwkt`, but others can be used.'
+
+ bbox:
+ title: 'Bounding Box'
+ type: array
+ description: 'To include information on the coordinate range for geometries, features, or feature collections, a GeoJSON object may have a member named `bbox`. The value of the bbox member must be a 2*n array where n is the number of dimensions represented in the contained geometries, with the lowest values for all axes followed by the highest values. The axes order of a bbox follows the axes order of geometries. In addition, the coordinate reference system for the bbox is assumed to match the coordinate reference system of the GeoJSON object of which it is a member.'
+ minItems: 4
+ items:
+ type: number
+
+oneOf:
+
+ - title: Point
+ description: 'For type `Point`, the `coordinates` member must be a single position.'
+ required:
+ - coordinates
+ properties:
+ type:
+ enum:
+ - Point
+ coordinates:
+ allOf:
+ - $ref: '#/definitions/coordinates'
+ - $ref: '#/definitions/position'
+ allOf:
+ - $ref: '#/definitions/geometry'
+
+ - title: 'Multi Point Geometry'
+ description: 'For type `MultiPoint`, the `coordinates` member must be an array of positions.'
+ required:
+ - coordinates
+ properties:
+ type:
+ enum:
+ - MultiPoint
+ coordinates:
+ allOf:
+ - $ref: '#/definitions/coordinates'
+ - items:
+ $ref: '#/definitions/position'
+ allOf:
+ - $ref: '#/definitions/geometry'
+
+ - title: 'Line String'
+ description: "For type `LineString`, the `coordinates` member must be an array of two or more positions.\n\nA LinearRing is closed LineString with 4 or more positions. The first and last positions are equivalent (they represent equivalent points). Though a LinearRing is not explicitly represented as a GeoJSON geometry type, it is referred to in the Polygon geometry type definition."
+ required:
+ - coordinates
+ properties:
+ type:
+ enum:
+ - LineString
+ coordinates:
+ $ref: '#/definitions/lineStringCoordinates'
+ allOf:
+ - $ref: '#/definitions/geometry'
+
+ - title: MultiLineString
+ description: 'For type `MultiLineString`, the `coordinates` member must be an array of LineString coordinate arrays.'
+ required:
+ - coordinates
+ properties:
+ type:
+ enum:
+ - MultiLineString
+ coordinates:
+ allOf:
+ - $ref: '#/definitions/coordinates'
+ - items:
+ $ref: '#/definitions/lineStringCoordinates'
+ allOf:
+ - $ref: '#/definitions/geometry'
+
+ - title: Polygon
+ description: 'For type `Polygon`, the `coordinates` member must be an array of LinearRing coordinate arrays. For Polygons with multiple rings, the first must be the exterior ring and any others must be interior rings or holes.'
+ required:
+ - coordinates
+ properties:
+ type:
+ enum:
+ - Polygon
+ coordinates:
+ $ref: '#/definitions/polygonCoordinates'
+ allOf:
+ - $ref: '#/definitions/geometry'
+
+ - title: 'Multi-Polygon Geometry'
+ description: 'For type `MultiPolygon`, the `coordinates` member must be an array of Polygon coordinate arrays.'
+ required:
+ - coordinates
+ properties:
+ type:
+ enum:
+ - MultiPolygon
+ coordinates:
+ allOf:
+ - $ref: '#/definitions/coordinates'
+ - items:
+ $ref: '#/definitions/polygonCoordinates'
+ allOf:
+ - $ref: '#/definitions/geometry'
+
+ - title: 'Geometry Collection'
+ description: "A GeoJSON object with type `GeometryCollection` is a geometry object which represents a collection of geometry objects.\n\nA geometry collection must have a member with the name `geometries`. The value corresponding to `geometries` is an array. Each element in this array is a GeoJSON geometry object."
+ required:
+ - geometries
+ properties:
+ type:
+ enum:
+ - GeometryCollection
+ geometries:
+ title: Geometries
+ type: array
+ items:
+ $ref: '#/definitions/geometry'
+ allOf:
+ - $ref: '#/definitions/geometry'
+
+ - $ref: '#/definitions/feature'
+
+ - title: 'Feature Collection'
+ description: "A GeoJSON object with the type `FeatureCollection` is a feature collection object.\n\nAn object of type `FeatureCollection` must have a member with the name `features`. The value corresponding to `features` is an array. Each element in the array is a feature object as defined above."
+ required:
+ - features
+ properties:
+ type:
+ enum:
+ - FeatureCollection
+ features:
+ title: Features
+ type: array
+ items:
+ $ref: '#/definitions/feature'
+
+definitions:
+
+ coordinates:
+ title: Coordinates
+ type: array
+ items:
+ oneOf:
+ - type: array
+ - type: number
+
+ geometry:
+ title: Geometry
+ description: 'A geometry is a GeoJSON object where the type member’s value is one of the following strings: `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, or `GeometryCollection`.'
+ properties:
+ type:
+ enum:
+ - Point
+ - MultiPoint
+ - LineString
+ - MultiLineString
+ - Polygon
+ - MultiPolygon
+ - GeometryCollection
+
+ feature:
+ title: Feature
+ description: "A GeoJSON object with the type `Feature` is a feature object.\n\n* A feature object must have a member with the name `geometry`. The value of the geometry member is a geometry object as defined above or a JSON null value.\n\n* A feature object must have a member with the name `properties`. The value of the properties member is an object (any JSON object or a JSON null value).\n\n* If a feature has a commonly used identifier, that identifier should be included as a member of the feature object with the name `id`."
+ required:
+ - geometry
+ - properties
+ properties:
+ type:
+ enum:
+ - Feature
+ geometry:
+ title: Geometry
+ oneOf:
+ - $ref: '#/definitions/geometry'
+ - type: 'null'
+ properties:
+ title: Properties
+ oneOf:
+ - type: object
+ - type: 'null'
+ id: {}
+
+ linearRingCoordinates:
+ title: 'Linear Ring Coordinates'
+ description: 'A LinearRing is closed LineString with 4 or more positions. The first and last positions are equivalent (they represent equivalent points). Though a LinearRing is not explicitly represented as a GeoJSON geometry type, it is referred to in the Polygon geometry type definition.'
+ allOf:
+ - $ref: '#/definitions/lineStringCoordinates'
+ - minItems: 4
+
+ lineStringCoordinates:
+ title: 'Line String Coordinates'
+ description: 'For type `LineString`, the `coordinates` member must be an array of two or more positions.'
+ allOf:
+ - $ref: '#/definitions/coordinates'
+ - minLength: 2
+ items:
+ $ref: '#/definitions/position'
+
+ polygonCoordinates:
+ title: 'Polygon Coordinates'
+ description: 'For type `Polygon`, the `coordinates` member must be an array of LinearRing coordinate arrays. For Polygons with multiple rings, the first must be the exterior ring and any others must be interior rings or holes.'
+ allOf:
+ - $ref: '#/definitions/coordinates'
+ - items:
+ $ref: '#/definitions/linearRingCoordinates'
+
+ position:
+ title: Position
+ type: array
+ description: "A position is the fundamental geometry construct. The `coordinates` member of a geometry object is composed of one position (in the case of a Point geometry), an array of positions (LineString or MultiPoint geometries), an array of arrays of positions (Polygons, MultiLineStrings), or a multidimensional array of positions (MultiPolygon).\n\nA position is represented by an array of numbers. There must be at least two elements, and may be more. The order of elements must follow x, y, z order (easting, northing, altitude for coordinates in a projected coordinate reference system, or longitude, latitude, altitude for coordinates in a geographic coordinate reference system). Any number of additional elements are allowed -- interpretation and meaning of additional elements is beyond the scope of this specification."
+ minItems: 2
+ additionalItems: true
+ items:
+ type: number
diff --git a/schemas/yaml/Language.yml b/schemas/yaml/Language.yml
new file mode 100644
index 00000000..168b1b0e
--- /dev/null
+++ b/schemas/yaml/Language.yml
@@ -0,0 +1,109 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Language-6.0.1.json'
+title: Language
+type: object
+
+description: 'DLx uses the term *language* broadly to refer to any speech variety - whether a language, dialect, idiolect, or even a historical variety. The DLx `Language` object groups together all the information about the language, including writing systems, its phonological inventory, and metadata (e.g. names and language codes).'
+
+required:
+ - name
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Language`)'
+ enum:
+ - Language
+
+ abbreviation:
+ title: Abbreviation
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'A short, human-readable abbreviation for this Language'
+
+ additionalNames:
+ title: 'Additional Names'
+ type: array
+ description: 'An Array of additional names for this Language. Only use this property if the "name" property is not sufficent to describe the various names for this language.'
+ uniqueItems: true
+ items:
+ title: 'Additional Language Name'
+ type: string
+
+ autonym:
+ title: Autonym
+ type: object
+ description: 'The autonym for this language, optionally in multiple orthographies'
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Transcription.json'
+
+ dateCreated:
+ title: 'Date Created'
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateCreated.json'
+ type: string
+ description: 'The date and optionally time that this Language object was created'
+
+ dateModified:
+ title: 'Date Modified'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateModified.json'
+ description: 'The date an optionally time that this Language object was last modified'
+
+ glottolog:
+ title: 'Glottolog Code'
+ type: string
+ description: 'The Glottolog code for this language variety, as a String in the format abcd1234'
+ pattern: '^[a-z]{4}[0-9]{4}$'
+
+ iso:
+ title: 'ISO 639-3 Code'
+ type: string
+ description: 'The ISO 639-3 code for this language variety, as a 3-letter String'
+ pattern: '^[a-z]{3}$'
+
+ locations:
+ title: Locations
+ type: array
+ description: 'Geographic locations where this language variety is spoken, optionally with geographic coordinate data'
+ uniqueItems: true
+ items:
+ title: Location
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Location.json'
+ description: 'A Location object describing a location where this language variety is spoken'
+
+ name:
+ title: 'Language Name'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'The name of this Language, optionally in multiple languages. Use the `additionalNames` field to list other names for this Language.'
+
+ orthographies:
+ title: Orthographies
+ type: array
+ description: 'A collection of orthographies used to represent this Language'
+ uniqueItems: true
+ items:
+ title: Orthography
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Orthography.json'
+ description: 'An orthography used to represent this language'
+
+ phonemes:
+ title: Phonemes
+ type: array
+ description: 'The phonological inventory for this language, i.e. a collection of phonemes'
+ items:
+ title: Phoneme
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Phoneme.json'
+ description: 'A Phoneme object'
+
+ url:
+ title: URL
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'A URL where the JSON data for this language can be found'
diff --git a/schemas/yaml/Lexeme.yml b/schemas/yaml/Lexeme.yml
new file mode 100644
index 00000000..406a2069
--- /dev/null
+++ b/schemas/yaml/Lexeme.yml
@@ -0,0 +1,408 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Lexeme-2.1.1.json'
+title: Lexeme
+type: object
+
+description: 'A *lexeme* is the set of all forms that share the same meaning. A lexeme is used broadly by DLx to refer to any collection of related senses and forms, whether the item is an individual word, a morpheme, or even a fully-inflected phrase. In other words, DLx lexeme objects can be used to describe anything that constitutes a lexical unit or construction. A lexeme will often have multiple *senses* or meanings, and those are listed in the `senses` field. It is up to the linguist to decide when two meanings are related, and therefore part of the same lexeme, or when they belong in different lexemes. A lexeme will also often have multiple variants. For example, the lexeme `run` in English has two base forms: `run` and `ran`. The `run` form is listed as the headword or *lemma*, and `ran` is listed as a past tense variant. The `variants` field should *not* be used to list all the inflectional forms of a Lexeme.'
+
+required:
+ - lemma
+ - senses
+
+additionalProperties: true
+
+dependencies:
+ variantType:
+ - variantOf
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Lexeme`)'
+ enum:
+ - Lexeme
+
+ allomorphs:
+
+ title: Allomorphs
+ type: array
+
+ description: 'A list of allomorphs of this Lexeme'
+
+ minItems: 1
+ uniqueItems: true
+
+ items:
+ title: Allomorph
+ type: object
+ description: 'An allomorph of this Lexeme'
+ required:
+ - environments
+ - transcription
+ additionalProperties: true
+ properties:
+ transcription:
+ title: Transcription
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Transcription.json'
+ description: 'A transcription of this allomorph, optionally in multiple orthographies. Do not include any leading or trailing tokens (e.g. hyphens, equal signs).'
+ environments:
+ title: Environments
+ type: array
+ description: 'A list of (morpho)phonological environments in which this allomorph occurs. May be an empty array.'
+ uniqueItems: true
+ items:
+ title: Environment
+ type: string
+ description: 'A formalization of a (morpho)phonologial environemnt, e.g. `_k`'
+
+ citationForm:
+ title: 'Citation Form'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Transcription.json'
+ description: 'The citation form of a lexeme is the form given when spoken in isolation, which may be different from its lemma form. For example, in English the citation form of a verb is typically the infinitive, e.g. `to run`, even though `run` is typically used as its lemma form. The citation form usually serves as the headword in a dictionary as well. It may be represented in multiple orthographies. Do not include leading or trailing tokens (e.g. hyphens, equal signs) in this field.'
+
+ components:
+ title: Components
+ type: array
+ description: 'A list of the morphemes or other lexical entries contained within the current form. For example, the form `gentlemen` in an English lexicon might have references to the form `gentle`, and the form `men` within the lexeme for `man`. Components may reference either an entire lexeme or a specific variant. Components do not have to be unique (useful when the same morpheme appears twice in a word).'
+ minItems: 1
+ uniqueItems: false
+ items:
+ title: 'Referenced Lexeme'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/LexemeReference.json'
+ description: 'The referenced component'
+
+ dateCreated:
+ title: 'Date Created'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateCreated.json'
+ description: 'The date and optionally time that this lexeme was created, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime)'
+
+ dateModified:
+ title: 'Date Modified'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateModified.json'
+ description: 'The date and optionally time that this lexeme was last modified, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime)'
+
+ examples:
+ title: Examples
+ type: array
+ description: 'A collection of examples illustrating this lexeme in use. Each example is a Sentence from a Text.'
+ uniqueItems: true
+ items:
+ title: 'Example Sentence'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Sentence.json'
+ description: 'A Sentence object containing the example sentence'
+
+ features:
+ title: Features
+ type: object
+ description: 'A set of inflectional features for this morpheme (used primarily with grammatical morphemes). Each property should be the name of a feature type (e.g. `case`, `person`, `number`, `gender`, `nounClass`, etc.), and its value should be the value for that feature, as a string (e.g. `nominative`, `1`, `singular`, `masculine`, etc.). Features may be written more than once, in a different Language. For example, a morpheme may have the feature `"case": "accusative"` (English) as well as `"caso": "acusativo"` (Spanish).'
+ allOf:
+ - title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'The Features object must be a Tags object.'
+ - additionalProperties:
+ title: Feature
+ type: string
+ description: 'Individual features must be represented as Strings.'
+
+ includedIn:
+ title: 'Included In'
+ type: array
+ description: 'A list of references to lexemes or variants that this item is included in. For example, the lexeme `‑s` (English plural for nouns) would have a reference to the lexeme `pants`, among others.'
+ uniqueItems: true
+ items:
+ title: 'Lexicon Reference'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/LexemeReference.json'
+ description: 'A reference to a lexeme'
+
+ key:
+ title: 'Lexeme Key'
+ type: string
+ description: 'A human-readable key that uniquely identifies this lexeme or variant within its Lexicon. Best practice is for the key to consist of the lemma form of the word in the default orthography, and if the word is a homonym, the homonym number. However, any value is acceptable as long as it is unique within the Lexicon. (Keys do not need to be unique across lexicons.)'
+ pattern: '^[^ ]+$'
+
+ lemma:
+ title: Lemma
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Transcription.json'
+ description: 'A *lemma* is the particular form conventionally used to represent a particular Lexeme. It may differ drastically from the citation form or headword form. For example, the form `be` is typically used as the lemma form of the English verb `to be`, with its variants `am`, `are`, `is`, etc. Lemmas may be represented in multiple orthographies. Do not include any leading or trailing tokens (e.g. hyphens, equal signs).'
+
+ lexicalRelations:
+ title: 'Lexical Relations'
+ type: array
+ description: 'A list of the lexical relations that this lexeme has to other lexemes or variants'
+ uniqueItems: true
+ items:
+ title: 'Lexical Relation (Lexeme Reference)'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/LexemeReference.json'
+ description: 'A lexical relation between two lexemes or senses. A LexicalRelation object is just a LexemeReference object, but with the `relation` property required.'
+
+ literalMeaning:
+ title: 'Literal Meaning'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'The literal meaning of the lexeme, optionally in multiple languages'
+
+ morphemeType:
+ title: 'Morpheme Type'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'The type of morpheme or complex construction that this lexeme is. Examples: `root`, `stem`, `bipartite stem`, `enclitic`, `prefix`, `inflected word`, `phrase`, `circumfix`.'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this Lexeme'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A note about this lexeme, optionally in multiple orthographies'
+
+ references:
+ title: 'Bibliographic References'
+ type: array
+ description: 'A collection of bibliographic references relating to this lexeme or variant. For example, a particular lexeme may have been discussed in detail in a published article.'
+ uniqueItems: true
+ items:
+ title: Reference
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Reference.json'
+ description: 'A bibliographic Reference'
+
+ sources:
+ title: Sources
+ type: array
+ description: 'A list of attested sources for this lexeme or variant'
+ uniqueItems: true
+ items:
+ title: Source
+ type: string
+ description: 'An attested source for this lexeme or variant. This will often be the initials of a speaker, but could also be the abbreviation of the story the lexeme was found it, or other types of sources.'
+
+ syllableStructure:
+ title: 'Syllable Structure'
+ type: string
+ description: 'An abstract representation of the syllable structure of this form, e.g. `CVC`'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A collection of tags for this lexeme or variant'
+
+ tone:
+ title: Tone
+ type: string
+ description: 'An abstract representation of the tonal pattern of this lexeme or variant. Examples: `HLH`, `323`, etc.'
+
+ url:
+ title: URL
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL where this lexeme or variant is located'
+
+ variantOf:
+ title: 'Variant Of'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/LexemeReference.json'
+ description: 'When this lexeme is a variant of another lexeme, this field should contain a reference to the other Lexeme. Lexemes may only be variants of one other Lexeme.'
+
+ variants:
+ title: Variants
+ type: array
+ description: 'A list of variants of this Lexeme'
+ uniqueItems: true
+ items:
+ title: 'Referenced Variant (Lexeme Reference)'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/LexemeReference.json'
+ description: 'A reference to the variant of this lexeme. A Variant is simply a Lexeme Reference object, but with the `variantType` required.'
+
+ variantType:
+ title: 'Variant Type'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'If this lexeme is a variant of another lexeme or sense, this field can be used to specify the type of variant. Possible values might be a person’s name (representing an idiolectal variant), or simply `idiolectal`, or `dialectal` (or the name of the dialect), or `rapid speech`, etc.'
+
+ senses:
+
+ title: Senses
+ type: array
+
+ description: 'A collection of senses for this Lexeme'
+
+ uniqueItems: true
+
+ items:
+
+ title: Sense
+ type: object
+
+ description: 'One of the meanings for this Lexeme. For example, the lexeme `run` might have two senses: one with a definition of "run in a race", and the other with a definition "run water in a sink".'
+
+ required:
+ - gloss
+
+ additionalProperties: true
+
+ properties:
+
+ argumentStructure:
+ title: 'Argument Structure'
+ type: string
+ description: 'An abstract representation of the argument structure for this sense'
+
+ category:
+ title: 'Lexical Category (Part of Speech, Morphosyntactic Class, etc.)'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'The lexical category, part of speech, or morphosyntactic class for this Lexeme. If the current lexeme is an affix or other grammatical morpheme morpheme, this field should be used to describe the category that the morpheme attaches to. For example, the English verb suffix `‑s` would have this this property set to `verb`, and the English derivational suffix `‑ize` would have this property set to `noun`.'
+
+ definition:
+ title: Definition
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'The definition for this particular sense, optionally in multiple languages'
+
+ derives:
+ title: 'Derived Category'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'If this lexeme is a derivational morpheme, this field indicates the type of lexical category, part of speech, or morphosyntactic class that is derived when this morpheme is applied. For example, the English derivational suffix `‑er` would have this property set to `noun`.'
+
+ examples:
+ title: Examples
+ type: array
+ description: 'A collection of examples of this sense in use. Each example is a Sentence.'
+ uniqueItems: true
+ items:
+ title: 'Example Sentence'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Sentence.json'
+ description: 'An example Sentence for this sense'
+
+ gloss:
+ title: Gloss
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'A Leipzig-style gloss for this sense'
+
+ inflectionClass:
+ title: 'Inflectional Class'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'If this lexeme is a root or stem, this field indicates the inflectional class that the sense takes. If this lexeme is an inflectional morpheme, this field indicates the inflectional class that the morpheme belongs to. If this lexeme is a derivational morpheme, this field indicates the inflectional class of the derived form.'
+
+ lexicalRelations:
+ title: 'Lexical Relations'
+ type: array
+ description: 'A collection of lexical relations between this sense and other senses in this lexicon or other lexicons.'
+ uniqueItems: true
+ items:
+ title: 'Lexical Relation (Lexeme Reference)'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/LexemeReference.json'
+ description: 'A lexical relation between two lexemes or senses. A LexicalRelation object is just a LexemeReference object, but with the `relation` property required.'
+
+ media:
+ title: Media
+ type: array
+ description: 'Media items associated with this lexeme, such as recordings of the word, pictures of the item the word refers to, or videos of the action being performed.'
+ uniqueItems: true
+ items:
+ title: 'Media Item'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Media.json'
+ description: 'A media item associated with this lexeme'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this sense'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A Note about this sense'
+
+ references:
+ title: 'Bibliographic References'
+ type: array
+ description: 'A collection of bibliographic references about this particular sense'
+ uniqueItems: true
+ items:
+ title: Reference
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Reference.json'
+ description: 'A bibliographic reference pertaining to this sense'
+
+ scientificName:
+ title: 'Scientific Name'
+ type: string
+ description: 'The scientific name for this item'
+
+ sources:
+ title: Sources
+ type: array
+ description: 'A list of attested sources for this sense'
+ uniqueItems: true
+ items:
+ title: Source
+ type: string
+ description: 'An attested source for this sense. This will often be the initials of a speaker, but could also be the abbreviation of the story the lexeme was found it, or other types of sources.'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A collection of tags for this Lexeme'
+
+ usages:
+ title: Usages
+ type: array
+ description: 'A list of the appropriate usages for this sense. Examples include `formal`, `medicinal`, `informal`, etc.'
+ uniqueItems: true
+ items:
+ title: Usage
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'An appropriate usage for this sense, optionally in multiple orthographies'
+
+ variantOf:
+ title: 'Variant Of'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/LexemeReference.json'
+ description: 'If this sense is a variant of another sense, a reference to the other sense should go here. For example, sometimes two speakers may use the same word with a slightly different set of senses. In American English, for instance, *Coke* is a specific brand of soda for most speakers, but a generic term for soda for other speakers. The generic sense would therefore be listed as a dialectal variant of the specific sense.'
+
+ variants:
+ title: Variants
+ type: array
+ description: 'A list of variants of this sense'
+ uniqueItems: true
+ items:
+ title: 'Referenced Variant (Lexeme Reference)'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/LexemeReference.json'
+ description: 'A reference to the variant of this sense. A Variant is simply a Lexeme Reference object, but with the `variantType` required.'
+
+ variantType:
+ title: 'Variant Type'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'If sense is a variant of another sense, this field can be used to specify the type of variant. Possible values might be a person’s name (representing an idiolectal variant), or simply `idiolectal`, or `dialectal` (or the name of the dialect), or `rapid speech`, etc.'
+default:
+ lemma: {}
+ senses: []
diff --git a/schemas/yaml/LexemeReference.yml b/schemas/yaml/LexemeReference.yml
new file mode 100644
index 00000000..ec66afd0
--- /dev/null
+++ b/schemas/yaml/LexemeReference.yml
@@ -0,0 +1,61 @@
+$schema: 'http://json-schema.org/schema'
+id: 'http://cdn.digitallinguistics.io/schemas/LexemeReference-2.0.1.json'
+title: 'Lexeme Reference'
+type: object
+
+description: 'A reference to a Lexeme in a Lexicon. May point to either a top-level Lexeme or a variant.'
+
+required:
+ - lexeme
+
+additionalProperties: false
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `LexemeReference`)'
+ enum:
+ - LexemeReference
+
+ lexeme:
+ title: 'Referenced Lexeme (Key)'
+ type: string
+ description: 'The key of the lexeme being referenced'
+ pattern: '^[^ ]+$'
+
+ lexemeURL:
+ title: 'Referenced Lexeme (URL)'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL of the lexeme being referenced'
+
+ lexicon:
+ title: 'Referenced Lexicon (Key/Abbr)'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'The abbreviation of the lexicon being referenced'
+
+ lexiconURL:
+ title: 'Referenced Lexicon (URL)'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL of the lexicon being referenced'
+
+ relation:
+ title: 'Relation Type'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'The type of lexical relation that holds between the current item and the referenced Lexeme. Can also be used for general cross-references (a `compare` relation) or historical relationships (a `derivedFrom` or `originOf` relation). Examples: `antonym`, `synonym`, `cognate`, `derivedFrom`, `originOf`, `compare`, `partOf`, `hypernymOf`, `hyponymOf`. The value of this field must be a valid Abbreviation. This property is sometimes required (for example, when the LexemeReference is part of the `lexicalRelations` field of the Lexeme).'
+
+ sense:
+ title: 'Referenced Sense (Num)'
+ type: integer
+ description: 'The number of the sense being referenced. The sense number is its index in the `senses` array on the Lexeme.'
+
+ variantType:
+ title: 'Variant Type'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'If this reference is to a variant of a lexeme or sense, this field can be used to specify the type of variant. Possible values might be a person’s name (representing an idiolectal variant), or simply `idiolectal`, or `dialectal` (or the name of the dialect), or `rapid speech`, etc.'
diff --git a/schemas/yaml/Lexicon.yml b/schemas/yaml/Lexicon.yml
new file mode 100644
index 00000000..3c2d1858
--- /dev/null
+++ b/schemas/yaml/Lexicon.yml
@@ -0,0 +1,123 @@
+$schema: 'http://json-schema.org/schema'
+id: 'http://cdn.digitallinguistics.io/schemas/Lexicon-1.1.1.json'
+title: Lexicon
+type: object
+
+description: "A lexicon is a collection of the linguistic signs, or *lexemes*, of a particular language at a particular point in time. Each entry in the lexicon provides information on the formal, semantic, behavioral/syntagmatic, and pragmatic/sociocultural properties of a single Lexeme. Each lexeme in turn includes a number of *senses* - the different meanings that a lexeme can have - as well as *variants* - the different formal realizations of the word (e.g. *ran* vs. *run).\n\nLexicons differ from dictionaries in that dictionaries may be thought of as lexicons that have been filtered and formatted for a specific audience. Lexicons, on the other hand, contain the raw, unfiltered data, and do not contain information about presentational format. This distinction allows for the creation of many different dictionaries, with different audiences, from a single Lexicon."
+
+additionalProperties: true
+
+required:
+ - language
+ - lexemes
+ - name
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Lexicon`)'
+ enum:
+ - Lexicon
+
+ abbreviation:
+ title: Abbreviation
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'A human-readable abbreviation for this Lexicon'
+
+ access:
+ title: 'Access Rights'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Access.json'
+ description: 'An object describing who has what kinds of access rights to this Lexicon'
+
+ contributors:
+ title: Contributors
+ type: array
+ description: 'A collection of people who contributed to the creation or curation of this lexicon in some way.'
+ uniqueItems: true
+ items:
+ title: Contributor
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Contributor.json'
+ description: 'A contributor to this Lexicon'
+ default: []
+
+ dateCreated:
+ title: 'Date Created'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateCreated.json'
+ description: 'The date that this lexicon was created'
+
+ dateModified:
+ title: 'Date Modified'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateModified.json'
+ description: 'The date that this lexicon was last modified'
+
+ language:
+ title: Language
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Language.json'
+ description: 'A language object describing the language of the items in this Lexicon. The language object must contain at least the `name` property.'
+
+ lexemes:
+ title: Lexemes
+ type: array
+ description: 'The collection of lexemes in this Lexicon.'
+ uniqueItems: true
+ items:
+ title: Lexeme
+ type: object
+ description: 'A lexeme in this Lexicon.'
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Lexeme.json'
+
+ name:
+ title: Name
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'A name for this lexicon, e.g. `Tlahuapa Mixtec`, `Ancient Greek`, `Portuguese (Brazilian)`, etc.'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this Lexicon.'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A note about this Lexicon.'
+ default: []
+
+ references:
+ title: 'Bibliographic References'
+ type: array
+ description: 'A collection of any bibliographic references concerning or relating to this Lexicon.'
+ uniqueItems: true
+ items:
+ title: Reference
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Reference.json'
+ description: 'A bibliographic reference concerning this Lexicon.'
+ default: []
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags for this Lexicon.'
+
+ url:
+ title: URL
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'A unique URL for this Lexicon.'
+
+default:
+ access: {}
+ language: {}
+ lexemes: []
+ name: ""
diff --git a/schemas/yaml/Location.yml b/schemas/yaml/Location.yml
new file mode 100644
index 00000000..b2fce3c5
--- /dev/null
+++ b/schemas/yaml/Location.yml
@@ -0,0 +1,96 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Location-2.2.0.json'
+title: Location
+type: object
+
+description: 'A location, optionally with accompanying geographic coordinate data'
+
+required:
+ - name
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Location`)'
+ enum:
+ - Location
+
+ abbreviation:
+ title: Abbreviation
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'An abbreviation for this Location'
+
+ access:
+ title: 'Access Rights'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Access.json'
+ description: 'Since locations sometimes contain personal information like addresses, it is important to consider the proper access management policy for them.'
+
+ address:
+ title: Address
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Address.json'
+ description: 'An address associated with this location'
+
+ dateCreated:
+ title: 'Date Created'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateCreated.json'
+ description: 'The date that this Location object was created'
+
+ dateModified:
+ title: 'Date Modified'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateModified.json'
+ description: 'The date that this Location was last modified'
+
+ geoJSON:
+ title: 'GeoJSON Geometry Object'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/GeoJSON.json'
+ description: 'A GeoJSON object describing this Location. Must adhere to the GeoJSON format: http://geojson.org/.'
+
+ name:
+ title: Name
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'A name for this location, e.g. `Susan’s House` or `Valley High School`, or `Shenandoah River`'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this Location'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A note about this location'
+
+ references:
+ title: 'Bibliographic References'
+ type: array
+ description: 'A collection of bibliographic references about this Location'
+ uniqueItems: true
+ items:
+ title: Reference
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Reference.json'
+ description: 'A bibliographic reference about this location'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags for this Location'
+
+ url:
+ title: URL
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL where information about this location can be retrieved'
diff --git a/schemas/yaml/Media.yml b/schemas/yaml/Media.yml
new file mode 100644
index 00000000..1d0475db
--- /dev/null
+++ b/schemas/yaml/Media.yml
@@ -0,0 +1,157 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Media-2.0.1.json'
+title: 'Media File'
+type: object
+
+description: 'An object containing information about a media file. The file itself should be stored at the URL indicated in the `mediaURL` field. Media files generally contain primary data. Examples might include audio/video recordings, scans of archival materials, photos taken during fieldwork, or scans of field notes.'
+
+required:
+ - filename
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Media`)'
+ enum:
+ - Media
+
+ abbreviation:
+ title: Abbreviation
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'An abbreviation for referring to this file'
+
+ access:
+ title: 'Access Rights'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Access.json'
+ description: 'Access rights for this media file'
+
+ content:
+ title: Content
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/mulitLangString.json'
+ description: 'A description of the content of this file, optionally in multiple languages or orthographies'
+
+ contentType:
+ title: 'MIME Content Type'
+ type: string
+ description: 'The media type of the file. Examples: `audio/wav`, `application/pdf`, `video/mpeg`'
+
+ creator:
+ title: Creator
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Person.json'
+ description: 'The person who created this specific file'
+
+ dateCreated:
+ title: 'Date Created'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateCreated.json'
+ description: 'The date that this metadata object was originally created. *Not* the date the media file was created. For that, see the `dateRecorded` property.'
+
+ dateModified:
+ title: 'Date Modified'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateModified.json'
+ description: 'The date and optionally time that this metadata was last modified. *Not* the date that the media file was modified.'
+
+ dateRecorded:
+ title: 'Date Recorded'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateRecorded.json'
+ description: 'The date that this media file was recorded or photographed. Or, if the file is a scan of field notes, the date that the scan was made. *Not* the date that this metadata object was created. For that, see the `dateCreated` property.'
+
+ endTime:
+ title: 'End Time'
+ type: number
+ description: 'Within an audiovisual file, the time at which the relevant linguistic data ends. Programs may use this field in different ways. For example, if the camera recorded for five minutes after the speaker finished talking, the `End Time` would be the time 5 minutes before the end of the file. The time stamp should be in seconds and milliseconds, separated by a period, e.g. `12.573`, or `1.2`, or `167.78012`, etc.'
+
+ filename:
+ title: Filename
+ type: string
+ description: 'The filename for this media item without spaces, but including the extension'
+ pattern: '^[^ ]+\.[^ ]+'
+
+ fileSize:
+ title: 'File Size'
+ type: integer
+ description: 'The size of the file, in bytes.'
+
+ format:
+ title: 'Format (File Extension)'
+ type: string
+ description: 'The format (file extension) of the media file, without a period. Examples: `wav`, `mp4`, `pdf`'
+
+ languages:
+ title: Languages
+ type: array
+ description: 'An array of the languages that are used in this media file, as abbreviations'
+ uniqueItems: true
+ items:
+ title: 'Language (Abbreviation)'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'The abbreviation for this language'
+
+ length:
+ title: 'Length (in Time / Pages)'
+ type: number
+ description: 'The length of the file, in seconds and milliseconds if an audio/video file (in `SS.MM` format), or pages if a document'
+
+ location:
+ title: Location
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Location.json'
+ description: 'The location where the content in this media file was recorded or produced'
+
+ mediaURL:
+ title: 'Media URL'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL where the media file can be found.'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this media item.'
+ uniqueItems: true
+ items:
+ title: Note
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+
+ original:
+ title: 'Original Media Item'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL of the Media object (*not* the URL to the media file itself) that this file is derived from'
+
+ people:
+ title: 'Persons in File'
+ type: array
+ description: 'A list of all the people who appear in this file. Often a list of speakers.'
+ uniqueItems: true
+ items:
+ title: Person
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Person.json'
+
+ startTime:
+ title: 'Start Time'
+ type: number
+ description: 'Within an audiovisual file, the time at which the relevant linguistic data starts, or the time at which an offset should be calibrated from. This may also be used to synchronize the starting point of multiple media files associated with a single Text. For example, if the camera started recording five minutes before the speaker began speaking, the `Start Time` might be 5 minutes from the start of the file (so 300.00 seconds). The time stamp should be in seconds and milliseconds, separated by a period, e.g. `12.573`, or `1.2`, or `167.78012`, etc.'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags for this media item'
+
+ url:
+ title: URL
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL where this media data can be retrieved. *NOT* the URL of the media file itself (for that, see the `mediaURL` attribute).'
diff --git a/schemas/yaml/Morpheme.yml b/schemas/yaml/Morpheme.yml
new file mode 100644
index 00000000..63b93f08
--- /dev/null
+++ b/schemas/yaml/Morpheme.yml
@@ -0,0 +1,60 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Morpheme-1.2.1.json'
+title: Morpheme
+type: object
+
+description: 'A *morpheme token* is a particular instance of a morpheme in a text. In DLx, the primary function of the Morpheme object is to provide a concise, short description of each token of a morpheme in a corpus - its form, its gloss, and a reference to an item in a lexicon where more information can be found.'
+
+required:
+ - transcription
+ - gloss
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Morpheme`)'
+ enum:
+ - Morpheme
+
+ gloss:
+ title: Gloss
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'A gloss for this morpheme, optionally in multiple languages'
+
+ lexeme:
+ title: Lexeme
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/LexemeReference.json'
+ description: 'A Lexeme Reference to an item in a lexicon where more information about this morpheme may be found'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this morpheme token'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A note about this morpheme'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags for this morpheme token'
+
+ transcription:
+ title: Transcription
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Transcription.json'
+ description: 'A transcription of this morpheme token. Should be a transcription of this particular token/allomorph, rather than an abstract representation of the morpheme. Do not include any leading or trailing tokens such as hyphens or equal signs.'
+
+default:
+ form: {}
+ gloss: {}
diff --git a/schemas/yaml/MultiLangString.yml b/schemas/yaml/MultiLangString.yml
new file mode 100644
index 00000000..1b8526f9
--- /dev/null
+++ b/schemas/yaml/MultiLangString.yml
@@ -0,0 +1,14 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/MultiLangString-2.0.1.json'
+title: 'Multi-Language Text / String'
+type: object
+
+description: 'A piece of text in multiple languages. This is typically used for analyses rather than transcriptions of data (for that, see the Transcription schema). For example, a translation might be given in both English and Spanish; or the part of speech for a lexeme might be given as both English "noun" and Spanish "nombre". Each key must be the abbreviation for a language (see the Abbreviation schema), and the value for that key is the string of text in that language. **Note:** MultiLangStrings do not have a `type` property.'
+
+additionalProperties: true
+
+patternProperties:
+ '^[(a-z)|(A-Z)|(0-9)]+$':
+ title: Text
+ type: string
+ description: 'The string of text in the specified language.'
diff --git a/schemas/yaml/Note.yml b/schemas/yaml/Note.yml
new file mode 100644
index 00000000..f73a36f6
--- /dev/null
+++ b/schemas/yaml/Note.yml
@@ -0,0 +1,63 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Note-2.1.1.json'
+title: Note
+type: object
+
+description: 'A note about this resource. Notes may also include `type` and `language` attributes.'
+
+required:
+ - text
+
+additionalProperties: false
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Note`)'
+ enum:
+ - Note
+
+ dateCreated:
+ title: 'Date Created'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateCreated.json'
+ description: 'The date and optionally time that this note was created, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime)'
+
+ dateModified:
+ title: 'Date Modified'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateModified.json'
+ description: 'The date and optionally time that this note was last modified, in [internet date-time format](https://www.w3.org/TR/NOTE-datetime)'
+
+ language:
+ title: 'Note Language'
+ type: string
+ description: 'A language code or language name of the language that this note is written in'
+
+ source:
+ title: 'Source (Person)'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'The abbreviation of the person who is the source of the information in this Note. This is not necessarily the person who wrote it. For example, a linguist could make a note based on something that a speaker reports, in which case the speaker should be listed as the source.'
+
+ text:
+ title: 'Note Text'
+ type: string
+ description: 'The text of the note itself'
+
+ noteType:
+ title: 'Note Type'
+ type: string
+ description: 'The type of Note'
+ enum:
+ - note-to-self
+ - general
+ - anthropology
+ - discourse
+ - encyclopedic
+ - grammar
+ - phonology
+ - semantics
+ - sociocultural
diff --git a/schemas/yaml/Orthography.yml b/schemas/yaml/Orthography.yml
new file mode 100644
index 00000000..c0726660
--- /dev/null
+++ b/schemas/yaml/Orthography.yml
@@ -0,0 +1,124 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Orthography-1.3.2.json'
+title: Orthography
+type: object
+
+description: 'An orthography is a way of representing a particular language variety in writing. An orthography can include a set of acceptable graphemes (characters), punctuation, and word separators.'
+
+required:
+ - graphemes
+ - name
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Orthography`)'
+ enum:
+ - Orthography
+
+ abbreviation:
+ title: Abbreviation
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'An abbreviation for this Orthography'
+
+ direction:
+ title: 'Text Direction'
+ type: string
+ description: 'The direction that this orthography is typically written in. If an orthography can be written in more than one direction, you should create a second Orthography for each direction it can be written in. The value of the `direction` field consists of two parts: the horizontal direction and the vertical direction, separated by a hyphen. Horizontal direction may be `ltr` (left-to-right), `rtl` (right-to-left), or `boustrophedon` (alternately left-to-right and right-to-left). Vertical direction may be either `ttb` (top-to-bottom) or `btt` (bottom-to-top).'
+ enum:
+ - ltr-ttb
+ - rtl-ttb
+ - ltr-btt
+ - rtl-btt
+ - boustrophedon-ttb
+ - boustrophedon-btt
+ default: ltr-ttb
+
+ graphemes:
+ title: Graphemes
+ type: array
+ description: 'A collection of graphemes, i.e. units of writing within a writing system, for this Orthography. Each grapheme is an attribute, and the value of that attribute is an object containing information about it. Punctuation characters should not be included in this collection (see the `punctuation` attribute instead).'
+ uniqueItems: true
+ default: []
+ items:
+
+ title: Grapheme
+ type: object
+
+ description: 'An object representing a grapheme'
+
+ required:
+ - form
+
+ additionalProperties: false
+
+ properties:
+
+ allographs:
+ title: Allographs
+ type: array
+ description: 'A list of all the allographs (graphical / writing variants) of the current grapheme. For example, `T` in an English orthography would have the allograph `t`.'
+ uniqueItems: true
+ items:
+ title: Allograph
+ type: string
+
+ form:
+ title: 'Grapheme Form'
+ type: string
+ description: 'The written form of this grapheme. Graphemes should include their diacritics. For example, `c` and `č` should be considered separate graphemes, unless they are allographs. Do not include graphemes for characters that only occur as part of a digraph (or trigraph, etc.). For example, standard Swahili orthography has a grapheme `ch`, but no grapheme `c` by itself, so `c` would not be listed as a grapheme, only `ch`.'
+
+ name:
+ title: 'Grapheme Name'
+ type: string
+ description: 'The name of this grapheme, if any'
+
+ pronunciations:
+ title: Pronunciations
+ type: array
+ uniqueItems: true
+ description: 'A list of the possible pronunciations of this grapheme, in IPA. It may be difficult or impossible to fill in this field for all orthographies (like English).'
+ items:
+ title: Pronunciation
+ type: string
+
+ name:
+ title: 'Orthography Name'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'The name of this orthography (e.g. `Practical`, `Phonemic`), optionally in multiple languages (e.g. both `Phonemic` and `Fonémica`)'
+ default: {}
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this Orthography'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A note about this orthography'
+ default: []
+
+ punctuation:
+ title: Punctuation
+ type: array
+ description: 'A list of all the punctuation characters in this orthography, including white space and non-breaking characters.'
+ uniqueItems: true
+ items:
+ title: 'Punctuation Character'
+ type: string
+ default: []
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags for this orthography'
+ default: {}
diff --git a/schemas/yaml/Person.yml b/schemas/yaml/Person.yml
new file mode 100644
index 00000000..a522724a
--- /dev/null
+++ b/schemas/yaml/Person.yml
@@ -0,0 +1,156 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Person-1.2.1.json'
+title: Person
+type: object
+
+description: 'An object providing information about a Person'
+
+required:
+ - familyName
+ - givenName
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Person`)'
+ enum:
+ - Person
+
+ abbreviation:
+ title: Abbreviation
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'An abbreviation for this person (typically their initials). If a pseudonym is used for this person, use the initials of the pseudonym rather than their actual initials.'
+
+ access:
+ title: 'Access Rights'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Access.json'
+ description: 'The access rights for information about this person'
+
+ address:
+ title: Address
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Address.json'
+ description: 'The address for this person'
+
+ birthDate:
+ title: 'Birth Date'
+ type: string
+ description: 'This person’s birth date, in [internet date time format](https://www.w3.org/TR/NOTE-datetime)'
+ format: date-time
+
+ birthPlace:
+ title: 'Birth Place'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Location.json'
+ description: 'This person’s place of birth, as a Location object'
+
+ email:
+ title: Email
+ type: string
+ description: 'This person’s email'
+ format: email
+
+ familyName:
+ title: 'Family Name(s) / Last Name(s)'
+ type: string
+ description: 'This person’s family name(s) (last name(s))'
+
+ gender:
+ title: Gender
+ type: string
+ description: 'This person’s self-reported gender identity'
+
+ givenName:
+ title: 'Given Name(s) / First Name(s)'
+ type: string
+ description: 'This person’s given name(s) (first name(s)), including middle name(s), if any'
+
+ languages:
+ title: 'Languages Spoken'
+ type: array
+ description: 'A list of the languages that this person speaks. Each item should be a DLx Language object, optionally with a few additional properties such as `ageLearned`, etc., Because the DLx Language object consist minimally of just the language name, not all details about the language need to be provided here.'
+ uniqueItems: true
+ items:
+ title: 'Language Spoken'
+ allOf:
+ - title: Language
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Language.json'
+ description: 'Each item in the "languages" Array must be a valid Language Object.'
+ - additionalProperties: true
+ properties:
+
+ ageLearned:
+ title: 'Age Learned'
+ type: integer
+ description: 'The age at which this person learned this language'
+
+ notes:
+ title: Notes
+ type: array
+ uniqueItems: true
+ description: 'Notes about this person’s use of this language'
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A note about this person’s use of this language'
+
+ proficiency:
+ title: Proficiency
+ type: string
+ description: 'The proficiency level of this person in this Language'
+
+ yearsKnown:
+ title: 'Years Known'
+ type: integer
+ description: 'The number of years this person has known this Language'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'An array of notes about this person'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A note about this person'
+
+ phone:
+ title: 'Phone Number'
+ type: string
+ description: 'A phone number for this Person'
+
+ pseudonym:
+ title: Pseudonym
+ type: string
+ description: 'A pseudonym for this Person'
+
+ roles:
+ title: Roles
+ type: array
+ description: 'An array of the roles that this person has in the context of the associated data, e.g. `speaker` or `transcriber`'
+ uniqueItems: true
+ items:
+ title: Role
+ type: string
+ description: 'The role that this person has in the context of the associated data, e.g. `speaker` or `transcriber`'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags for this Person'
+
+ url:
+ title: URL
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL where the JSON data for this Person may be accessed'
diff --git a/schemas/yaml/Phoneme.yml b/schemas/yaml/Phoneme.yml
new file mode 100644
index 00000000..081a7b83
--- /dev/null
+++ b/schemas/yaml/Phoneme.yml
@@ -0,0 +1,243 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Phoneme-2.1.2.json'
+title: Phoneme
+type: object
+
+description: 'An object representing a single phoneme in a language, and its allophones.'
+
+required:
+ - ipa
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Phoneme`)'
+ enum:
+ - Phoneme
+
+ airstream:
+ title: 'Airstream Mechanism'
+ type: string
+ description: 'The airstream mechanism used to pronounce this Phoneme. `Pulmonic` (egressive) sounds are created by pushing air out of the lungs. `Ejective` sounds are glottalic egressive sounds where the air column is compressed by upward movement of the glottis. `Implosive` sounds are glottalic ingressives where air is pulled in by a downward movement of the glottis. `Click` sounds, i.e. lingual / velaric ingressive sounds, pull air in with a downward movement of the tongue.'
+ enum:
+ - click
+ - ejective
+ - implosive
+ - ingressive
+ - pulmonic
+
+ allophones:
+ title: Allophones
+ type: array
+ description: 'A list of allophones of this phoneme, following the same format as for Phoneme objects.'
+ uniqueItems: true
+ items:
+ title: Allophone
+ type: object
+ $ref: '#'
+ description: 'An allophone of this phoneme. Allophones are formatted exactly the same way as Phoneme Objects.'
+
+ backness:
+ title: Backness
+ type: string
+ description: 'Describes the backness of a vowel.'
+ enum:
+ - front
+ - near-front
+ - central
+ - near-back
+ - back
+
+ features:
+ title: Features
+ type: array
+ description: 'A list of the phonemically distinctive features of this Phoneme. These are what are listed under `diacritics` in the IPA chart. For example, if a language distinguishes between a palatalized `/t/` and a plain `/t/`, the first should include the feature `palatalized` and the second `plain` (or no features). Note that most features are also a manner of articulation as well, so it up to the linguist to decide when a given phonetic detail is a manner, or when it is a feature (i.e. a diacritic). For example, a language might distinguish phonemically between a palatal plosive `/c/` and a palatalized plosive `/tʲ/`. The first would list `palatal` as its place of articulation, while the second would list `palatalized` as a distinctive feature. Do not include features here if they are already used for manner, unless your analysis is that this feature is *both* a manner and a feature of this phoneme, e.g. a palatalized palatal stop. This field is used primarily for consonants, but may also apply to vowels as well (e.g. the `close` and `open` features).'
+ uniqueItems: true
+ items:
+ title: Feature
+ type: string
+ description: 'A phonemically distinctive feature, taken from the set of features (diacritics) in the IPA chart.'
+ enum:
+ - 'advanced'
+ - 'advanced tongue root'
+ - 'affricativized'
+ - 'alveolar'
+ - 'apical'
+ - 'aspirated'
+ - 'breathy'
+ - 'centralized'
+ - 'close'
+ - 'creaky'
+ - 'dental'
+ - 'fortis'
+ - 'fricativized'
+ - 'labialized'
+ - 'laminal'
+ - 'lateral release'
+ - 'lax'
+ - 'lenis'
+ - 'lightly aspirated'
+ - 'linguolabial'
+ - 'lowered'
+ - 'mid-centralized'
+ - 'nasal release'
+ - 'nasalized'
+ - 'no release'
+ - 'non-syllabic'
+ - 'open'
+ - 'palatalized'
+ - 'pharyngealized'
+ - 'plain'
+ - 'raised'
+ - 'retracted'
+ - 'retracted tongue root'
+ - 'retroflexed'
+ - 'rhotic'
+ - 'rounded'
+ - 'sibilant'
+ - 'syllabic'
+ - 'tense'
+ - 'unrounded'
+ - 'velarized'
+ - 'voiced'
+ - 'voiceless'
+ - 'weakly aspirated'
+
+ height:
+ title: Height
+ type: string
+ description: 'The height of a vowel'
+ enum:
+ - close
+ - near-close
+ - close-mid
+ - mid
+ - open-mid
+ - near-open
+ - open
+
+ ipa:
+ title: 'IPA Transcription'
+ type: string
+ description: 'The IPA representation of this phoneme / allophone. Transcriptions of phonemes should contain only the phonemically contrastive sounds. Transcriptions of allophones should contain only the regularly-conditioned alternations.'
+
+ length:
+ title: Length
+ type: string
+ description: 'The length of this phoneme, whether for consonants (e.g. `short` vs. `geminate`) or vowels'
+ enum:
+ - 'extra short'
+ - 'short'
+ - 'half long'
+ - 'long'
+ - 'extra long'
+ - 'geminate'
+
+ manner:
+ title: 'Manner of Articulation'
+ type: string
+ description: 'The manner of articulation, for consonants. Only one manner of articulation may be listed. Additional manners must be listed under the `features` attribute. For example, the lateral fricative `ɬ` might have a `manner` set to `fricative` and a feature `lateral`, or vice versa, depending on the linguist’s analysis.'
+ enum:
+ - approximate
+ - flap
+ - fricative
+ - lateral
+ - nasal
+ - plosive
+ - tap
+ - trill
+
+ notes:
+ title: Notes
+ type: array
+ description: 'Notes about this Phoneme'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A Note about this Phoneme'
+
+ place:
+ title: 'Place of Articulation'
+ type: string
+ description: 'The place of articulation for consonants. Only one place of articulation may be listed. Additional places must be listed as features under the `features` attribute. For example, a palatalized alveolar `/tʲ/` would list `alveolar` under `manner`, and `palatalized` under `features`.'
+ enum:
+ - bilabial
+ - labiodental
+ - labiovelar
+ - dental
+ - alveolar
+ - lateral
+ - post-alveolar
+ - alveo-palatal
+ - palato-alveolar
+ - retroflex
+ - palatal
+ - velar
+ - uvular
+ - pharyngeal
+ - glottal
+ - epiglottal
+
+ references:
+ title: 'Bibliographic References'
+ type: array
+ uniqueItems: true
+ items:
+ title: Reference
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Reference.json'
+ description: 'A bibliographic reference'
+
+ rounding:
+ title: Rounding
+ type: string
+ description: 'A description of the roundedness of a vowel. Only one type of roundedness may be listed. Rounded vowels may be listed as simply `rounded`, or more specifically as `protruded` or `compressed`.'
+ enum:
+ - compressed
+ - protruded
+ - rounded
+ - unrounded
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags for this phoneme'
+
+ target1:
+ title: 'Dipthong / Triphthong Target 1'
+ type: object
+ $ref: '#'
+ description: 'For diphthongs or triphthongs, this should be a Phoneme object representing the features of the first target in the pronunciation of the diphthong/triphthong.'
+
+ target2:
+ title: 'Dipthong / Triphthong Target 2'
+ type: object
+ $ref: '#'
+ description: 'For diphthongs or thriphthongs, this should be a Phoneme object representing the features of the second target in the pronunciation of the diphthong/triphthong.'
+
+ target3:
+ title: 'Triphthong Target 3'
+ type: object
+ $ref: '#'
+ description: 'For triphthongs, this should be a Phoneme object representing the features of the third target in the pronunciation of the triphthong.'
+
+ tone:
+ title: Tone
+ type: string
+ description: 'An abstract representation of the tone of this phoneme, e.g. `H`, `13`, `falling`, etc.'
+
+ voicing:
+ title: Voicing
+ type: string
+ description: 'Whether the phoneme is voiced, voiceless, or partially voiced'
+ enum:
+ - semivoiced
+ - voiced
+ - voiceless
diff --git a/schemas/yaml/Reference.yml b/schemas/yaml/Reference.yml
new file mode 100644
index 00000000..4fd16d98
--- /dev/null
+++ b/schemas/yaml/Reference.yml
@@ -0,0 +1,147 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Reference-2.0.3.json'
+title: 'Bibliographic Reference'
+type: object
+
+description: 'A bibliographic Reference. Note: The `type` field in a reference refers to the type of reference, not the type of DLx object.'
+
+required:
+ - title
+
+additionalProperties: true
+
+definitions:
+
+ person:
+ title: Person
+ type: object
+ description: 'An object representing a Person'
+ additionalProperties: false
+ properties:
+ firstName:
+ title: 'First Name'
+ type: string
+ description: 'The first name(s) of this author'
+ lastName:
+ title: 'Last Name'
+ type: string
+ description: 'The last name(s) of this author'
+
+properties:
+
+ authors:
+ title: Authors
+ type: array
+ description: 'An array of authors for this Reference'
+ uniqueItems: true
+ items:
+ title: Author
+ type: object
+ $ref: '#/definitions/person'
+ description: 'A Person Object representing an author'
+
+ city:
+ title: City
+ type: string
+ description: 'The city in which this reference was published'
+
+ edition:
+ title: Edition
+ type: integer
+ description: 'The edition of this Reference, formatted as an integer'
+
+ editors:
+ title: Editors
+ type: array
+ description: 'An array of editors for this Reference'
+ uniqueItems: true
+ items:
+ title: Editor
+ type: object
+ description: 'An object representing an editor'
+ additionalProperties: false
+ properties:
+ firstName:
+ title: 'First Name'
+ type: string
+ description: 'The first name(s) of this editor'
+ lastName:
+ title: 'Last Name'
+ type: string
+ description: 'The last name(s) of this editor'
+
+ issue:
+ title: Issue
+ type: string
+ description: 'The publication issue'
+
+ pages:
+ title: Pages
+ type: string
+ description: 'The page numbers of this Reference'
+
+ publication:
+ title: Publication
+ type: string
+ description: 'The publication where this item was published'
+
+ publisher:
+ title: 'Publisher (or Institution)'
+ type: string
+ description: 'The name of the publisher of this reference, or the institution where it was published'
+
+ series:
+ title: Series
+ type: string
+ description: 'The series in which this publication was published'
+
+ title:
+ title: Title
+ type: string
+ description: 'The title of this publication'
+
+ translators:
+ title: Translators
+ type: array
+ description: 'An array of translations for this Reference'
+ uniqueItems: true
+ items:
+ $ref: '#/definitions/person'
+
+ type:
+ title: 'Publication Type'
+ type: string
+ description: 'The type of publication'
+ enum:
+ - 'journal article'
+ - 'book'
+ - 'generic'
+ - 'book section'
+ - 'conference proceedings'
+ - 'working paper'
+ - 'report'
+ - 'web page'
+ - 'thesis'
+ - 'magazine article'
+ - 'newspaper article'
+ - 'television broadcast'
+ - 'encyclopedia article'
+ - 'film'
+
+ url:
+ title: URL
+ type: string
+ description: 'A URL for this Reference'
+ format: uri
+
+ volume:
+ title: Volume
+ type: integer
+ description: 'The volume number for this publication'
+
+ year:
+ title: Year
+ type: integer
+ description: 'The year this item was published'
+ minimum: 0
+ exclusiveMinimum: true
diff --git a/schemas/yaml/Sentence.yml b/schemas/yaml/Sentence.yml
new file mode 100644
index 00000000..d581a415
--- /dev/null
+++ b/schemas/yaml/Sentence.yml
@@ -0,0 +1,113 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Sentence-1.1.1.json'
+title: Sentence
+type: object
+
+description: 'The term *sentence* is intentially ambiguous, and refers to any unit of a text above the word level. The DLx framework imposes no requirements regarding this size of this unit or how segmentation of the text into units should be accomplished. The user may choose to segment a text based on intonation units, turns, or any other appropriate subdivision. A DLx Sentence consists minimally of a transcription, a translation, and an array of words (though the words array may be empty).'
+
+required:
+ - transcription
+ - translation
+ - words
+
+dependencies:
+ startTime:
+ - endTime
+ endTime:
+ - startTime
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Sentence`)'
+ enum:
+ - Sentence
+
+ endTime:
+ title: 'End Time'
+ type: number
+ description: 'The time that the speaker finishes producing this Sentence within the media file(s) associated with this Text. The timestamp should be formatted in SS.MMM (seconds and milliseconds).'
+
+ key:
+ title: Key
+ type: string
+ description: 'A key which uniquely identifies this Sentence within the Text. The key for a Sentence consists of the abbreviation of the Text, a period, and then the number of this Sentence within the Text (index starts at 1). For example, the third Sentence of a Text with the abbreviation `A` would be `A.3`. Keys should be unique within a corpus.'
+ pattern: '^[(a-z)|(A-Z)|(0-9)]+\.[0-9]{1,3}$'
+
+ language:
+ title: Language
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'The key for the Language used in this Sentence, e.g. `spa` or `eng`. If the text is labeled with a Language, all its Sentences are assumed to be the same Language unless labeled otherwise. Likewise, if a Sentence is given a Language, all its words are assumed to be the same Language unless the word is labeled otherwise.'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this Sentence'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A note about this Sentence, optionally in multiple orthographies'
+
+ speaker:
+ title: Speaker
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'The abbreviation of person who produced (uttered, signed, spoke, sung) this Sentence. The value of this field must match the abbreviation of one of the persons listed in the `contributors` array of the Text. If the text has a single contributor with the role of `speaker`, that speaker is assumed to be the speaker for all Sentences in the Text. If multiple contributors with a `speaker` role are included in a text, each Sentence must have its `speaker` attribute specified.'
+
+ startTime:
+ title: 'Start Time'
+ type: number
+ description: 'The time that the speaker begins producing this Sentence within the media file(s) associated with this Text. The timestamp should be formatted in SS.MMM (seconds and milliseconds).'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags for this Sentence'
+
+ transcript:
+ title: Transcript
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Transcription.json'
+ description: 'A transcript of this Sentence, including things like prosodic markup, overlap, pauses, and various other discourse features. This field is intended for use by those doing discourse or conversation analysis, who need to mark up their text without affecting the phonemic transcription (in the `transcription` property). The transcript may be in multiple languages/orthographies, or representational systems (e.g. you might have a `CA` transcript and a `DT` transcript, for discourse transcripts using Conversation Analysis and Discourse Transcription conventions respectively).'
+
+ transcription:
+ title: Transcription
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Transcription.json'
+ description: 'The transcriptions for this Sentence, optionally in multiple orthographies. This field is intended for use with purely phonemic / morphophonemic transcriptions. Punctuation should generally be avoided. To add punctuation and other discourse-level transcriptional features, use the `transcript` property.'
+
+ translation:
+ title: Translation
+ description: 'The translations for this Sentence, optionally in multiple languages. Also includes an optional `type` attribute, for specifying things like `free` or `literal` translation.'
+ allOf:
+ - $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ - properties:
+ type:
+ title: 'Translation Type'
+ type: string
+ description: 'The type of translation. Typical values are `free` or `literal`, but other values may be supplied.'
+
+ url:
+ title: URL
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL where this Sentence can be retrieved in JSON format'
+
+ words:
+ title: Words
+ type: array
+ description: 'A collection of the word tokens contained in this Sentence'
+ uniqueItems: false
+ items:
+ title: Word
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Word.json'
+ description: 'A Word Object'
diff --git a/schemas/yaml/Tags.yml b/schemas/yaml/Tags.yml
new file mode 100644
index 00000000..845dd651
--- /dev/null
+++ b/schemas/yaml/Tags.yml
@@ -0,0 +1,14 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Tags-1.0.2.json'
+title: Tags
+type: object
+
+description: 'A tag is a piece of metadata that can be applied to almost any DLx object. The tags object contains a set of tags for this resource as pairs of attributes and values. For example, a researcher might tag a suffix with the attribute `person`, and a value of `3`, to indicate that the particular suffix is 3rd Person. If no value is needed, the value may also be set to `true` or `false` (but not `null`), however users are encouraged to use both attribute and value for every tag, since this helps identify the larger category that the tag value belongs to. Note: The Tags object does not have a `type` property.'
+
+additionalProperties:
+ title: Tag
+ description: 'A single tag, as an attribute-value pair.'
+ oneOf:
+ - type: string
+ - type: boolean
+ - type: number
diff --git a/schemas/yaml/Text.yml b/schemas/yaml/Text.yml
new file mode 100644
index 00000000..23c3ae59
--- /dev/null
+++ b/schemas/yaml/Text.yml
@@ -0,0 +1,147 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Text-2.1.1.json'
+title: Text
+type: object
+
+description: 'A *text* is the fundamental unit of documentation. It represents a linguistic performance of a stretch of discourse in context. This may include a wide variety of linguistic genres: an elicitation session, a conversation, a narrative, a song, etc. In technical terms, a text is an interlinearized set of sentences with one or more transcriptions, translations, and optionally Leipzig-style glosses.'
+
+required:
+ - sentences
+ - title
+
+additionalProperties: true
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object (must be set to `Text`)'
+ enum:
+ - Text
+
+ abbreviation:
+ title: Abbreviation
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Abbreviation.json'
+ description: 'An abbreviation for this Text'
+
+ access:
+ title: 'Access Rights'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Access.json'
+ description: 'An Object describing the acess rights to this Text'
+
+ contributors:
+ title: Contributors
+ type: array
+ description: 'A collection of people who contributed to the creation or analysis of this text in some way'
+ items:
+ title: Contributor
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Contributor.json'
+ description: 'A Person Object that describes this contributor'
+
+ dateCreated:
+ title: 'Date Created'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateCreated.json'
+ description: 'The date that this Text was created in the database (**not** the date it was recorded; see the "dateRecorded" property instead)'
+
+ dateModified:
+ title: 'Date Modified'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateModified.json'
+ description: 'The date that this Text Object was last modified (**not** the date that the recording of the text was modified)'
+
+ dateRecorded:
+ title: 'Date Recorded'
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/DateRecorded.json'
+ description: 'The date that this text was recorded'
+
+ discourseType:
+ title: 'Discourse Type'
+ type: string
+ description: 'The type of discourse event, e.g. monologue, dialogue, or song'
+ minLength: 1
+
+ genre:
+ title: Genre
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/genre.json'
+ description: 'The genre of the text, e.g. folktale, personal narrative, or expository'
+ minLength: 1
+
+ location:
+ title: Location
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Location.json'
+ description: 'The location where this text was recorded'
+
+ media:
+ title: Media
+ type: array
+ uniqueItems: true
+ description: 'An array of objects containing information about the media files associated with this Text. Usually this will include the WAV or video file that was originally recorded for the text, but can also include any derivative media files (such as MP3) as well. Media associated with a text are automatically considered to be part of the same database bundle as the Text.'
+ items:
+ title: 'Media Items'
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Media.json'
+ description: 'An object describing a media file'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this Text'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A Note Object'
+
+ references:
+ title: References
+ type: array
+ description: 'A list of any bibliographic references concerning or relating to this Text'
+ items:
+ title: Reference
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Reference.json'
+ description: 'A bibliographic reference about this text'
+
+ sentences:
+ title: Sentences
+ type: array
+ description: 'A collection of all the Sentences contained in this Text. The DLx specification imposes no requirements regarding how the linguist should segment the text into Sentences. The linguist may decide to segment their text based on intonation units, turns, or any other appropriate linguistic subdivision. The order of Sentences in the collection must reflect their actual order in the Text. Sentences do *not* have to be JSON unique - a Sentence may be repeated in a text, for example.,'
+ minItems: 1
+ items:
+ title: Sentence
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Sentence.json'
+ description: 'A Sentence Object'
+
+ status:
+ title: Status
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/status.json'
+ description: 'The status of this text (in a fieldwork workflow)'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags associated with this Text'
+
+ title:
+ title: Title
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'A title is a human-readable prose description of the content of the Text. The `title` object contains all the titles of the text, in one or more languages. Each attribute in the `title` object should be the abbreviation of a language, and its value should be the title of the text in that language.'
+
+ url:
+ title: URL
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'The URL where this data can be retrieved in JSON format'
diff --git a/schemas/yaml/Transcription.yml b/schemas/yaml/Transcription.yml
new file mode 100644
index 00000000..ecca420c
--- /dev/null
+++ b/schemas/yaml/Transcription.yml
@@ -0,0 +1,14 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/Transcription-1.0.1.json'
+title: Transcription
+type: object
+
+description: 'A transcription of a piece of data in a language, optionally in multiple orthographies. For example, a transcription might be written in both a practical orthography and in IPA. Each key must be the abbreviation for an orthography (see the Abbreviation schema), and the value for that key is the transcription of the data in that particular orthography. Note: The Transcription object does not have a `type` property.'
+
+additionalProperties: false
+
+patternProperties:
+ '^[(a-z)|(A-Z)|(0-9)]+$':
+ title: Text
+ type: string
+ description: 'The transcription for the specified orthography.'
diff --git a/schemas/yaml/URL.yml b/schemas/yaml/URL.yml
new file mode 100644
index 00000000..24d13f89
--- /dev/null
+++ b/schemas/yaml/URL.yml
@@ -0,0 +1,6 @@
+$schema: 'http://json-schema.org/schema#'
+id: 'http://cdn.digitallinguistics.io/schemas/URL-1.0.0.json'
+title: URL
+type: string
+description: 'A URL where this resource can be retrieved. The resource does not have to be publicly available at this URL; it may require permissions to Access. Best practice is to make the resource available at this URL in JSON format.'
+format: uri
diff --git a/schemas/yaml/Word.yml b/schemas/yaml/Word.yml
new file mode 100644
index 00000000..5b0a2d86
--- /dev/null
+++ b/schemas/yaml/Word.yml
@@ -0,0 +1,129 @@
+$schema: 'http://json-schema.org/schema'
+id: 'http://cdn.digitallinguistics.io/schemas/Word-2.3.1.json'
+title: Word
+type: object
+
+description: 'A Word object represents a specific token in a text, rather than an abstract lexeme (see the Lexeme object for that).'
+
+additionalProperties: true
+
+required:
+ - morphemes
+ - transcription
+
+properties:
+
+ type:
+ title: Type
+ type: string
+ description: 'The type of object. Must be set to `Word`.'
+ enum:
+ - Word
+
+ gloss:
+ title: Gloss
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'A Leipzig-style gloss for this Word. This does not need to be supplied if it can be generated automatically from the glosses at the morpheme level. May be in multiple languages.'
+
+ key:
+ title: Key
+ type: string
+ description: 'A key that uniquely identifies this word token within the Text. The key for a Word consists of the abbreviation of the text, a period, the number of Sentence within the text, another period, and then the number of this word within the Sentence (indexing starts at 1). For example, for the fourth word of the third Sentence of a text with the abbreviation `A`, the key would be `A.3.4`. Keys should be unique within a corpus.'
+ pattern: '^[(a-z)|(A-Z)|(0-9)]+\.[0-9]{1,3}\.[0-9]{1,2}$'
+
+ morphemes:
+ title: 'Morphemes / Components'
+ type: array
+ description: 'A collection of the components (morphemes, lexicon items) in this Word. Components may be repeated if the same morpheme appears twice in the Word.'
+ uniqueItems: false
+ items:
+ title: Morpheme
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Morpheme.json'
+ description: 'An Object representing this morphem'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this token'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A Note about this token'
+
+ phonemes:
+
+ title: Phonemes
+ type: array
+
+ description: 'An array of the phones (phoneme tokens) in this word, in IPA'
+
+ uniqueItems: false
+
+ items:
+
+ title: 'Phone (Phoneme Token)'
+ type: object
+
+ description: 'An IPA representation of this phoneme. The `phoneme` field is required, but the `allophone` field is optional, for use only when you need to specify that this phoneme is being realized as a particular phoneme. Both `phoneme` and `allophone` must be in IPA rather than a practical orthography.'
+
+ required:
+ - phoneme
+
+ additionalProperties: true
+
+ properties:
+
+ allophone:
+ title: Allophone
+ type: string
+ description: 'This property may be used to specify which allophone this particular phoneme token is. Must be written in IPA.'
+
+ notes:
+ title: Notes
+ type: array
+ description: 'A collection of notes about this phone'
+ uniqueItems: true
+ items:
+ title: Note
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Note.json'
+ description: 'A note about this phone. Useful for one-time observations of interesting allophonic variation in the data.'
+
+ phoneme:
+ title: Phoneme
+ type: string
+ description: 'An IPA representation of this phoneme token. Must be a representation of the abstract phoneme rather than the particular allophone (use the `allophone` property for that insetad).'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags for this phone'
+
+ tags:
+ title: Tags
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Tags.json'
+ description: 'A set of tags for this word token'
+
+ transcription:
+ title: Transcription
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/Transcription.json'
+ description: 'A transcription of this word, optionally in multiple orthographies'
+
+ translation:
+ title: Translation
+ type: object
+ $ref: 'http://cdn.digitallinguistics.io/schemas/MultiLangString.json'
+ description: 'A translation of this word, optionally in multiple languages. Note that the translation is not the same as a gloss. Use the translation field for free, natural language translations of a word; use the gloss field for Leipzig-style glosses only.'
+
+ url:
+ title: URL
+ type: string
+ $ref: 'http://cdn.digitallinguistics.io/schemas/URL.json'
+ description: 'A URL where this word may be accessed'
diff --git a/test/.eslintrc.yml b/test/.eslintrc.yml
new file mode 100644
index 00000000..f5088d07
--- /dev/null
+++ b/test/.eslintrc.yml
@@ -0,0 +1,13 @@
+extends: 'C:\Users\dwhieb\Coding\dev\.eslintrc.yml'
+parserOptions:
+ sourceType: script
+env:
+ browser: false
+ jasmine: true
+ node: true
+
+rules:
+ max-nested-callbacks:
+ - warn
+ - 4
+ new-cap: off
diff --git a/test/Abbreviation.test.js b/test/Abbreviation.test.js
index fed35ec2..8ceac9a6 100644
--- a/test/Abbreviation.test.js
+++ b/test/Abbreviation.test.js
@@ -1,22 +1,27 @@
-/* eslint-disable
- func-names,
- prefer-arrow-callback,
-*/
+// IMPORTS
+const { AJV } = require(`./utilities`);
-const ajv = require('./ajv');
-const { Abbreviation } = require('../schemas');
-const validate = ajv.compile(Abbreviation);
+// VARIABLES
+let ajv;
+let validate;
-describe(`Abbreviation`, function() {
+// VALID SAMPLE DATA
+const data = `chiti`;
- it(`validates properly-formatted data`, function() {
- const data = `chiti`;
+describe(`Abbreviation`, () => {
+
+ beforeAll(async function setup() {
+ ajv = await AJV();
+ validate = d => ajv.validate(`Abbreviation`, d);
+ });
+
+ it(`validates`, () => {
const valid = validate(data);
- if (validate.errors) fail(JSON.stringify(validate.errors, null, 2));
- expect(valid).toBe(true);
+ if (valid) expect(valid).toBe(true);
+ else fail(ajv.errorsText());
});
- it(`invalidates incorrectly-formatted data`, function() {
+ it(`invalidates`, () => {
const badAbbr = `bad abbr`;
expect(validate(badAbbr)).toBe(false);
diff --git a/test/Access.test.js b/test/Access.test.js
index 400cd065..f1f9a91d 100644
--- a/test/Access.test.js
+++ b/test/Access.test.js
@@ -1,34 +1,29 @@
-/* eslint-disable
- func-names,
- prefer-arrow-callback,
-*/
-
-const ajv = require('./ajv');
-const { Access } = require('../schemas');
-const validate = ajv.compile(Access);
-
-describe(`Access`, function() {
-
- it(`validates properly-formatted data`, function() {
-
- const data = {
- AILLA: `password`,
- ELAR: `Community Member`,
- notes: { eng: `Speaker also requested that this text only be shared with family members.` },
- speaker: `family`,
- };
-
- const valid = validate(data);
- if (validate.errors) fail(JSON.stringify(validate.errors, null, 2));
- expect(valid).toBe(true);
-
+// IMPORTS
+const { AJV } = require(`./utilities`);
+
+// VARIABLES
+let ajv;
+let validate;
+
+// VALID SAMPLE DATA
+const data = {
+ AILLA: `password`,
+ ELAR: `Community Member`,
+ notes: { eng: `Speaker also requested that this text only be shared with family members.` },
+ speaker: `family`,
+};
+
+describe(`Access`, () => {
+
+ beforeAll(async function setup() {
+ ajv = await AJV();
+ validate = d => ajv.validate(`Access`, d);
});
- it(`invalidates incorrectly-formatted data`, function() {
-
- const data = { family: true };
- expect(validate(data)).toBe(false);
-
+ it(`validates`, () => {
+ const valid = validate(data);
+ if (valid) expect(valid).toBe(true);
+ else fail(ajv.errorsText());
});
});
diff --git a/test/Address.test.js b/test/Address.test.js
index 127267dd..e1ce28aa 100644
--- a/test/Address.test.js
+++ b/test/Address.test.js
@@ -1,42 +1,39 @@
-/* eslint-disable
- func-names,
- prefer-arrow-callback,
-*/
+// IMPORTS
+const { AJV } = require(`./utilities`);
-const ajv = require('./ajv');
-const { Address } = require('../schemas');
-const validate = ajv.compile(Address);
+// VARIABLES
+let ajv;
+let validate;
+// VALID SAMPLE DATA
const data = {
apartmentNumber: `B`,
- country: `United States`,
- locality: `New York`,
+ country: `United States`,
+ locality: `New York`,
postalBoxNumber: `1234`,
- postalCode: `12345-1234`,
- region: `New York`,
- streetAddress: `555 Market St`,
- type: `Address`,
+ postalCode: `12345-1234`,
+ region: `New York`,
+ streetAddress: `555 Market St`,
+ type: `Address`,
};
-describe(`Address`, function() {
+describe(`Address`, () => {
- it(`validates properly-formatted data`, function() {
- const valid = validate(data);
- if (validate.errors) fail(JSON.stringify(validate.errors, null, 2));
- expect(valid).toBe(true);
+ beforeAll(async function setup() {
+ ajv = await AJV();
+ validate = d => ajv.validate(`Address`, d);
});
- it(`invalidates incorrectly-formatted data`, function() {
-
- const badApt = { apartmentNumber: 12 };
- expect(validate(badApt)).toBe(false);
-
- const badPOBox = { postalBoxNumber: 1234 };
- expect(validate(badPOBox)).toBe(false);
-
- const badPostalCode = { postalCode: 12345 };
- expect(validate(badPostalCode)).toBe(false);
+ it(`validates`, () => {
+ const valid = validate(data);
+ if (valid) expect(valid).toBe(true);
+ else fail(ajv.errorsText());
+ });
+ it(`invalidates: bad type`, () => {
+ const badType = { type: `bad type` };
+ const badData = { ...data, ...badType };
+ expect(validate(badData)).toBe(false);
});
});
diff --git a/test/Language.test.js b/test/Language.test.js
index b6e4ef78..1e9f02dd 100644
--- a/test/Language.test.js
+++ b/test/Language.test.js
@@ -1,17 +1,15 @@
-/* eslint-disable
- array-element-newline,
- func-names,
- prefer-arrow-callback,
-*/
+// IMPORTS
+const { AJV } = require(`./utilities`);
-const ajv = require('./ajv');
-const { Language } = require('../schemas');
-const validate = ajv.compile(Language);
+// VARIABLES
+let ajv;
+let validate;
+// VALID SAMPLE DATA
const data = {
abbreviation: `chiti`,
additionalNames: [`Sitimaxa`],
- autonym: {
+ autonym: {
apa: `Sitimaša`,
ipa: `Sitimaʃa`,
modern: `Sitimaxa`,
@@ -21,29 +19,31 @@ const data = {
defaultOrthography: `modern`,
glottolog: `chit1248`,
iso: `iso`,
- locations: [{ name: { eng: `Charenton` } }],
- name: { eng: `Chitimacha` },
- orthographies: [],
- phonemes: [],
- type: `Language`,
- url: `https://api.digitallinguistics.io/languages/chitimacha/`,
+ locations: [{ name: { eng: `Charenton` } }],
+ name: { eng: `Chitimacha` },
+ orthographies: [],
+ phonemes: [],
+ type: `Language`,
+ url: `https://api.digitallinguistics.io/languages/chitimacha/`,
};
-describe(`Language`, function() {
+describe(`Language`, () => {
- it(`validates properly-formatted data`, function() {
- const valid = validate(data);
- if (validate.errors) fail(JSON.stringify(validate.errors, null, 2));
- expect(valid).toBe(true);
+ beforeAll(async function setup() {
+ ajv = await AJV();
+ validate = d => ajv.validate(`Language`, d);
});
- it(`invalidates incorrectly-formatted data`, function() {
-
- const badName = { name: `Chitimacha` };
- const missingName = {};
- expect(validate(missingName)).toBe(false);
- expect(validate(badName)).toBe(false);
+ it(`validates`, () => {
+ const valid = validate(data);
+ if (valid) expect(valid).toBe(true);
+ else fail(ajv.errorsText());
+ });
+ it(`invalidates: bad type`, () => {
+ const badType = { type: `bad type` };
+ const badData = { ...data, ...badType };
+ expect(validate(badData)).toBe(false);
});
});
diff --git a/test/Orthography.test.js b/test/Orthography.test.js
index e672a905..823ff6e1 100644
--- a/test/Orthography.test.js
+++ b/test/Orthography.test.js
@@ -1,51 +1,50 @@
-/* eslint-disable
- array-bracket-newline,
- array-element-newline,
- func-names,
- prefer-arrow-callback,
-*/
+// IMPORTS
+const { AJV } = require(`./utilities`);
-const ajv = require('./ajv');
-const { Orthography } = require('../schemas');
-const validate = ajv.compile(Orthography);
+// VARIABLES
+let ajv;
+let validate;
+// VALID SAMPLE DATA
const data = {
abbreviation: `mod`,
- direction: `ltr-ttb`,
- graphemes: [
+ direction: `ltr-ttb`,
+ graphemes: [
{
- allographs: [`a`],
- form: `A`,
+ allographs: [`a`],
+ form: `A`,
pronunciations: [`a`],
},
{
- form: `aa`,
+ form: `aa`,
pronunciations: [`aː`],
},
{
- allographs: [`b`],
- form: `B`,
+ allographs: [`b`],
+ form: `B`,
pronunciations: [`pˀ`],
},
{
- allographs: [`c`],
- form: `C`,
+ allographs: [`c`],
+ form: `C`,
pronunciations: [`t͡ʃ`],
},
{
- allographs: [`d`],
- form: `D`,
+ allographs: [`d`],
+ form: `D`,
pronunciations: [`tˀ`],
},
],
- name: { eng: `Modern` },
- notes: [{
- dateCreated: `2017-07-24T17:41:18.539Z`,
- dateModified: `2017-07-24T17:41:18.539Z`,
- language: `eng`,
- noteType: `general`,
- text: `This orthography was originally created by Julian Granberry for the Chitimacha Tribe, and was based in part on the phonemic orthography utilized by Morris Swadesh. Daniel W. Hieber later suggested minor changes that were implemented during the Chitimacha Rosetta Stone project.`,
- }],
+ name: { eng: `Modern` },
+ notes: [
+ {
+ dateCreated: `2017-07-24T17:41:18.539Z`,
+ dateModified: `2017-07-24T17:41:18.539Z`,
+ language: `eng`,
+ noteType: `general`,
+ text: `This orthography was originally created by Julian Granberry for the Chitimacha Tribe, and was based in part on the phonemic orthography utilized by Morris Swadesh. Daniel W. Hieber later suggested minor changes that were implemented during the Chitimacha Rosetta Stone project.`,
+ },
+ ],
punctuation: [
`!`,
`"`,
@@ -58,31 +57,24 @@ const data = {
type: `Orthography`,
};
-describe(`Orthography`, function() {
+describe(`Orthography`, () => {
- it(`validates properly-formatted data`, function() {
- const valid = validate(data);
- if (validate.errors) fail(JSON.stringify(validate.errors, null, 2));
- expect(valid).toBe(true);
+ beforeAll(async function setup() {
+ ajv = await AJV();
+ validate = d => ajv.validate(`Orthography`, d);
});
- it(`invalidates incorrectly-formatted data`, function() {
-
- const badGraphemes = {
- graphemes: [`a`, `aa`, `b`, `c`, `d`],
- name: { eng: `mod` },
- };
-
- expect(validate(badGraphemes)).toBe(false);
-
- const badType = {
- graphemes: [],
- name: {},
- type: `orthography`,
- };
+ it(`validates`, () => {
+ const valid = validate(data);
+ if (valid) expect(valid).toBe(true);
+ else fail(ajv.errorsText());
+ });
- expect(validate(badType)).toBe(false);
+ it(`invalidates: bad type`, () => {
+ const badType = { type: `bad type` };
+ const badData = { ...data, ...badType };
+ expect(validate(badData)).toBe(false);
});
});
diff --git a/test/URL.test.js b/test/URL.test.js
index 98ff6eeb..c995a5d8 100644
--- a/test/URL.test.js
+++ b/test/URL.test.js
@@ -1,22 +1,31 @@
/* eslint-disable
- func-names,
- prefer-arrow-callback,
+ no-shadow,
*/
-const ajv = require('./ajv');
-const { URL } = require('../schemas');
-const validate = ajv.compile(URL);
+// IMPORTS
+const { AJV } = require(`./utilities`);
-describe(`URL`, function() {
+// VARIABLES
+let ajv;
+let validate;
- it(`validates properly-formatted data`, function() {
- const data = `https://api.digitallinguistics.io/languages/12345/`;
+// VALID SAMPLE DATA
+const data = `https://api.digitallinguistics.io/languages/12345/`;
+
+describe(`URL`, () => {
+
+ beforeAll(async function setup() {
+ ajv = await AJV();
+ validate = d => ajv.validate(`URL`, d);
+ });
+
+ it(`validates`, () => {
const valid = validate(data);
- if (validate.errors) fail(JSON.stringify(validate.errors, null, 2));
- expect(valid).toBe(true);
+ if (valid) expect(valid).toBe(true);
+ else fail(ajv.errorsText());
});
- it(`invalidates incorrectly-formatted data`, function() {
+ it(`invalidates`, () => {
const badURL = `12345`;
expect(validate(badURL)).toBe(false);
diff --git a/test/ajv.js b/test/ajv.js
deleted file mode 100644
index 25da26b6..00000000
--- a/test/ajv.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/* eslint-disable
- guard-for-in
-*/
-
-const AJV = require('ajv');
-const schemas = require('../schemas');
-
-const ajv = new AJV();
-
-Object.values(schemas).forEach(schema => {
- const id = schema.id.replace(/-(.+)(\.json)/, `$2`);
- ajv.addSchema(schema, id);
-});
-
-const geojson = require('../schemas/GeoJSON.json');
-
-ajv.addSchema(geojson, `http://json.schemastore.org/geojson`);
-
-module.exports = ajv;
diff --git a/test/async.js b/test/async.js
deleted file mode 100644
index 7d370092..00000000
--- a/test/async.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = asyncFunc => done => asyncFunc().then(done).catch(done.fail);
diff --git a/test/jasmine.json b/test/jasmine.json
index c3b281d7..6d2473d5 100644
--- a/test/jasmine.json
+++ b/test/jasmine.json
@@ -1,8 +1,7 @@
{
"spec_dir": "test",
"spec_files": [
- "*.test.js"
+ "*.js"
],
- "stopSpecOnExpectationFailure": false,
- "random": true
+ "stopSpecOnExpectationFailure": false
}
diff --git a/test/schemas.test.js b/test/schemas.test.js
deleted file mode 100644
index 51fd142c..00000000
--- a/test/schemas.test.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/* eslint-disable
- func-names,
- guard-for-in,
- prefer-arrow-callback,
-*/
-
-const AJV = require('ajv');
-const schemas = require('../schemas');
-
-const ajv = new AJV();
-
-describe('schemas: ', function() {
-
- for (const schema in schemas) {
-
- it(`${schema} is valid against JSON Schema Draft 4`, function() {
-
- const valid = ajv.validateSchema(schemas[schema]);
-
- if (valid) expect(valid).toBe(true);
- else fail(ajv.errorsText());
-
- });
-
- }
-
-});
diff --git a/test/utilities/ajv.js b/test/utilities/ajv.js
new file mode 100644
index 00000000..7e9fe98a
--- /dev/null
+++ b/test/utilities/ajv.js
@@ -0,0 +1,45 @@
+// IMPORTS
+const AJV = require(`ajv`);
+const getSchemas = require(`./getSchemas`);
+
+// SETUP
+const ajv = new AJV({ extendRefs: true });
+
+// VARIABLES
+let schemasLoaded = false;
+
+/**
+ * Adds each of the schemas to AJV
+ * @return {Promise}
+ */
+async function loadSchemas() {
+
+ if (schemasLoaded) return ajv;
+
+ const schemas = await getSchemas();
+
+ for (const [, schema] of schemas) {
+
+ // Extract the ID from the "id" property of the schema
+ const IDRegExp = /schemas\/(?.+)-/;
+ const { id } = IDRegExp.exec(schema.id).groups;
+
+ // Remove version number from ID for local testing purposes
+ schema.id = schema.id.replace(/-.+?(\.json)/, `$1`);
+
+ try {
+ ajv.addSchema(schema, id);
+ } catch (e) {
+ console.error(`${id} schema is invalid.`);
+ console.error(e);
+ }
+
+ }
+
+ schemasLoaded = true;
+ return ajv;
+
+}
+
+// EXPORT
+module.exports = loadSchemas;
diff --git a/test/utilities/getSchemas.js b/test/utilities/getSchemas.js
new file mode 100644
index 00000000..b02a2887
--- /dev/null
+++ b/test/utilities/getSchemas.js
@@ -0,0 +1,31 @@
+// IMPORTS
+const path = require(`path`);
+const { readdir } = require(`fs`).promises;
+const yamljs = require(`yamljs`);
+
+// VARIABLES
+const schemasPath = path.join(__dirname, `../../schemas/yaml`);
+let schemas;
+
+/**
+ * Retrieves the schemas from /schemas/yaml, converts them to JSON, and returns a Map of the schemas. This function is a singleton: the schemas are only loaded once.
+ * @return {Promise