143 lines
3.4 KiB
GraphQL
143 lines
3.4 KiB
GraphQL
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
|
|
}
|