type Query { dictionary: Dictionary! } "A whole shenikan dictionary." type Dictionary { glyphs: [Glyph!]! dialects: [Dialect!]! dms: [DerivationalMorphology!]! dmPentas: [DMPenta!]! words: [Word!]! pentas: [Penta!]! icosas: [Icosa!]! } "A glyph in a shenikan dictionary." type Glyph { kind: GlyphKind! ortho: String! attrs: [GlyphAttribute!]! } "The kind of a glyph." enum GlyphKind { "A bare vowel cluster." VOWEL "A consonant cluster." CLUSTER "A punctuation mark." PUNCTUATION "A numeric or symbolic glyph." NUMERIC "A complete syllable cluster." SYLLABLE } # TODO: group these into, e.g. consonant height, to enforce mutex appropriately? "The determining attributes of a glyph." enum GlyphAttribute { # Vowel Attributes "Marks an outer vowel. (valid for VOWEL/SYLLABLE glyphs)" OUTER "Marks a slashed vowel. (valid for VOWEL/SYLLABLE glyphs)" SLASHED "Marks an inner vowel. (valid for VOWEL/SYLLABLE glyphs)" INNER # Consonant Cluster Attributes (and Punctuation Attributes???) "Marks a left consonant cluster or punctuation. (valid for CLUSTER/VOWEL/PUNCTUATION glyphs)" LEFT "Marks a center consonant cluster. (valid for CLUSTER/VOWEL glyphs)" CENTER "Marks a right consonant cluster or punctuation. (valid for CLUSTER/VOWEL/PUNCTUATION glyphs)" RIGHT "Marks a top consonant cluster. (valid for CLUSTER/VOWEL glyphs)" TOP "Marks a middle consonant cluster. (valid for CLUSTER/VOWEL glyphs)" MIDDLE "Marks a bottom consonant cluster. (valid for CLUSTER/VOWEL glyphs)" BOTTOM "Marks a tall consonant cluster. (valid for CLUSTER/VOWEL glyphs)" TALL "Marks a wide consonant cluster. (valid for CLUSTER/VOWEL glyphs)" WIDE "Marks a tall and wide consonant cluster. (valid for CLUSTER/VOWEL glyphs)" BOTH # Numeric Attributes "Marks a circular number. (valid for NUMERIC glyphs)" CIRCLE "Marks a dash number. (valid for NUMERIC glyphs)" DASH "Marks a vee number. (valid for NUMERIC glyphs)" VEE "Marks a hump number. (valid for NUMERIC glyphs)" HUMP "Marks a dot number. (valid for NUMERIC glyphs)" DOT } "A shenikan dialect" type Dialect { name: String! replacements: [Replacement!]! } "A consonant cluster replacement for a dialect" type Replacement { old: String! new: String! } "A shenikan derivational morphology" type DerivationalMorphology { spelling: String! definitions: [Definition!]! } "A shenikan-english definition" type Definition { pos: PartOfSpeech! short: String! long: String } "A part of speech" enum PartOfSpeech { NOUN PRONOUN VERB ADJECTIVE ADVERB ADPOSITION CONJUNCTION SYNTAX } "A pentascale of derivational morphologies" type DMPenta { spelling: String! name: String extremes: Extremes } "The extremes of a pentascale" type Extremes { i: String u: String } "A shenikan word" type Word { spelling: String! definitions: [Definition!]! derivations: [Derivation!]! } "A shenikan derivation" type Derivation { root: String! via: [String!]! } "A pentascale of words" type Penta { spelling: String! name: String extremes: Extremes } "An icosapentascale of words" type Icosa { spelling: String! name: String extremes: DoubleExtremes } "The extremes of an icosapentascale" type DoubleExtremes { ix: String ux: String xi: String xu: String }