diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-02-23 14:03:37 -0500 | 
|---|---|---|
| committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-03-28 10:25:11 -0400 | 
| commit | 93f7278586f7b943ae49c00cd14559a2f4b99561 (patch) | |
| tree | 07fb38f61c61281551690f6aad7c81241b50c17b | |
| parent | a0c4ce779d35cab39c62ca42ad3fe58a82faa1bb (diff) | |
Update dictionary schema to support pitch accent data
| -rw-r--r-- | ext/bg/data/dictionary-term-meta-bank-v3-schema.json | 64 | ||||
| -rw-r--r-- | test/data/dictionaries/valid-dictionary1/tag_bank_3.json | 4 | ||||
| -rw-r--r-- | test/data/dictionaries/valid-dictionary1/term_meta_bank_1.json | 36 | ||||
| -rw-r--r-- | test/test-database.js | 9 | 
4 files changed, 105 insertions, 8 deletions
| diff --git a/ext/bg/data/dictionary-term-meta-bank-v3-schema.json b/ext/bg/data/dictionary-term-meta-bank-v3-schema.json index 1cc0557f..8475db81 100644 --- a/ext/bg/data/dictionary-term-meta-bank-v3-schema.json +++ b/ext/bg/data/dictionary-term-meta-bank-v3-schema.json @@ -13,13 +13,71 @@              },              {                  "type": "string", -                "enum": ["freq"], -                "description": "Type of data. \"freq\" corresponds to frequency information." +                "enum": ["freq", "pitch"], +                "description": "Type of data. \"freq\" corresponds to frequency information; \"pitch\" corresponds to pitch information."              },              { -                "type": ["string", "number"],                  "description": "Data for the term/expression."              } +        ], +        "oneOf": [ +            { +                "items": [ +                    {}, +                    {"enum": ["freq"]}, +                    { +                        "type": ["string", "number"], +                        "description": "Frequency information for the term or expression." +                    } +                ] +            }, +            { +                "items": [ +                    {}, +                    {"enum": ["pitch"]}, +                    { +                        "type": ["object"], +                        "description": "Pitch accent information for the term or expression.", +                        "required": [ +                            "reading", +                            "pitches" +                        ], +                        "additionalProperties": false, +                        "properties": { +                            "reading": { +                                "type": "string", +                                "description": "Reading for the term or expression." +                            }, +                            "pitches": { +                                "type": "array", +                                "description": "List of different pitch accent information for the term and reading combination.", +                                "additionalItems": { +                                    "type": "object", +                                    "required": [ +                                        "position" +                                    ], +                                    "additionalProperties": false, +                                    "properties": { +                                        "position": { +                                            "type": "integer", +                                            "description": "Mora position of the pitch accent downstep. A value of 0 indicates that the word does not have a downstep (heiban).", +                                            "minimum": 0 +                                        }, +                                        "tags": { +                                            "type": "array", +                                            "description": "List of tags for this pitch accent.", +                                            "items": { +                                                "type": "string", +                                                "description": "Tag for this pitch accent. This typically corresponds to a certain type of part of speech." +                                            } +                                        } +                                    } +                                } +                            } +                        } +                    } +                ] +            }          ]      }  }
\ No newline at end of file diff --git a/test/data/dictionaries/valid-dictionary1/tag_bank_3.json b/test/data/dictionaries/valid-dictionary1/tag_bank_3.json new file mode 100644 index 00000000..572221fe --- /dev/null +++ b/test/data/dictionaries/valid-dictionary1/tag_bank_3.json @@ -0,0 +1,4 @@ +[ +    ["ptag1", "pcategory1", 0, "ptag1 notes", 0], +    ["ptag2", "pcategory2", 0, "ptag2 notes", 0] +]
\ No newline at end of file diff --git a/test/data/dictionaries/valid-dictionary1/term_meta_bank_1.json b/test/data/dictionaries/valid-dictionary1/term_meta_bank_1.json index 78096502..26922394 100644 --- a/test/data/dictionaries/valid-dictionary1/term_meta_bank_1.json +++ b/test/data/dictionaries/valid-dictionary1/term_meta_bank_1.json @@ -1,5 +1,39 @@  [      ["打", "freq", 1],      ["打つ", "freq", 2], -    ["打ち込む", "freq", 3] +    ["打ち込む", "freq", 3], +    [ +        "打ち込む", +        "pitch", +        { +            "reading": "うちこむ", +            "pitches": [ +                {"position": 0}, +                {"position": 3} +            ] +        } +    ], +    [ +        "打ち込む", +        "pitch", +        { +            "reading": "ぶちこむ", +            "pitches": [ +                {"position": 0}, +                {"position": 3} +            ] +        } +    ], +    [ +        "お手前", +        "pitch", +        { +            "reading": "おてまえ", +            "pitches": [ +                {"position": 2, "tags": ["ptag1"]}, +                {"position": 2, "tags": ["ptag2"]}, +                {"position": 0, "tags": ["ptag2"]} +            ] +        } +    ]  ]
\ No newline at end of file diff --git a/test/test-database.js b/test/test-database.js index 833aa75d..dbd67257 100644 --- a/test/test-database.js +++ b/test/test-database.js @@ -231,8 +231,8 @@ async function testDatabase1() {              true          );          vm.assert.deepStrictEqual(counts, { -            counts: [{kanji: 2, kanjiMeta: 2, terms: 32, termMeta: 3, tagMeta: 12}], -            total: {kanji: 2, kanjiMeta: 2, terms: 32, termMeta: 3, tagMeta: 12} +            counts: [{kanji: 2, kanjiMeta: 2, terms: 32, termMeta: 6, tagMeta: 14}], +            total: {kanji: 2, kanjiMeta: 2, terms: 32, termMeta: 6, tagMeta: 14}          });          // Test find* functions @@ -648,9 +648,10 @@ async function testFindTermMetaBulk1(database, titles) {                  }              ],              expectedResults: { -                total: 1, +                total: 3,                  modes: [ -                    ['freq', 1] +                    ['freq', 1], +                    ['pitch', 2]                  ]              }          }, |