Fenris Wolf commited on 2017-04-17 12:01:43
Zeige 8 geänderte Dateien mit 157 Einfügungen und 14 Löschungen.
... | ... |
@@ -26,8 +26,16 @@ |
26 | 26 |
</mkdir> |
27 | 27 |
<concat destfile="build/model.js"> |
28 | 28 |
<filelist dir="."> |
29 |
+ <file name="source/model/concept.js"> |
|
30 |
+ </file> |
|
31 |
+ <file name="source/model/wordfragment.js"> |
|
32 |
+ </file> |
|
29 | 33 |
<file name="source/model/word.js"> |
30 | 34 |
</file> |
35 |
+ <file name="source/model/translation.js"> |
|
36 |
+ </file> |
|
37 |
+ <file name="source/model/transition.js"> |
|
38 |
+ </file> |
|
31 | 39 |
</filelist> |
32 | 40 |
</concat> |
33 | 41 |
</target> |
... | ... |
@@ -0,0 +1,24 @@ |
1 |
+ |
|
2 |
+/** |
|
3 |
+ * @author fenris |
|
4 |
+ */ |
|
5 |
+class Concept |
|
6 |
+{ |
|
7 |
+ |
|
8 |
+ /** |
|
9 |
+ * @param {string} type the type of the concept; can be 'verb','noun','attribute','other' |
|
10 |
+ * @param {string} description a text describing the concept; default: null |
|
11 |
+ * @param {Array<string>} tags a list of strings with which the concept is tagged; default: [] |
|
12 |
+ */ |
|
13 |
+ constructor(type, description, tags) |
|
14 |
+ { |
|
15 |
+ if (description == undefined) description = null; |
|
16 |
+ if (tags == undefined) tags = []; |
|
17 |
+ |
|
18 |
+ this.type = type; |
|
19 |
+ this.description = description; |
|
20 |
+ this.tags = tags; |
|
21 |
+ } |
|
22 |
+ |
|
23 |
+} |
|
24 |
+ |
... | ... |
@@ -0,0 +1,32 @@ |
1 |
+ |
|
2 |
+/** |
|
3 |
+ * @author fenris |
|
4 |
+ */ |
|
5 |
+class Transition |
|
6 |
+{ |
|
7 |
+ |
|
8 |
+ /** |
|
9 |
+ */ |
|
10 |
+ constructor(from, to) |
|
11 |
+ { |
|
12 |
+ this.from = from; |
|
13 |
+ this.to = to; |
|
14 |
+ } |
|
15 |
+ |
|
16 |
+ |
|
17 |
+ /** |
|
18 |
+ */ |
|
19 |
+ use(word) |
|
20 |
+ { |
|
21 |
+ if (word.language == this.from.language) |
|
22 |
+ { |
|
23 |
+ |
|
24 |
+ } |
|
25 |
+ else |
|
26 |
+ { |
|
27 |
+ throw (new Error("not applicable")); |
|
28 |
+ } |
|
29 |
+ } |
|
30 |
+ |
|
31 |
+} |
|
32 |
+ |
... | ... |
@@ -0,0 +1,20 @@ |
1 |
+ |
|
2 |
+/** |
|
3 |
+ * @author fenris |
|
4 |
+ */ |
|
5 |
+class Translation |
|
6 |
+{ |
|
7 |
+ |
|
8 |
+ /** |
|
9 |
+ */ |
|
10 |
+ constructor(concept, word, score) |
|
11 |
+ { |
|
12 |
+ if (score == undefined) score = 1.0; |
|
13 |
+ |
|
14 |
+ this.concept = concept; |
|
15 |
+ this.word = word; |
|
16 |
+ this.score = score; |
|
17 |
+ } |
|
18 |
+ |
|
19 |
+} |
|
20 |
+ |
... | ... |
@@ -2,22 +2,15 @@ |
2 | 2 |
/** |
3 | 3 |
* @author fenris |
4 | 4 |
*/ |
5 |
-class Word |
|
5 |
+class Word extends Wordfragment |
|
6 | 6 |
{ |
7 |
+ |
|
8 |
+ /** |
|
9 |
+ */ |
|
7 | 10 |
constructor(language, representation, pronunciation) |
8 | 11 |
{ |
9 |
- this.language = language; |
|
10 |
- this.representation = representation; |
|
11 |
- this.pronunciation = pronunciation |
|
12 |
+ super(language, representation, pronunciation); |
|
12 | 13 |
} |
13 | 14 |
|
14 |
- toString() |
|
15 |
- { |
|
16 |
- let parts = []; |
|
17 |
- if (this.language != null) parts.push("[" + this.language + "]"); |
|
18 |
- if (this.representation != null) parts.push("\"" + this.representation + "\""); |
|
19 |
- if (this.pronunciation != null) parts.push("(" + this.pronunciation + ")"); |
|
20 |
- return parts.join(" "); |
|
21 |
- } |
|
22 | 15 |
} |
23 | 16 |
|
... | ... |
@@ -0,0 +1,30 @@ |
1 |
+ |
|
2 |
+/** |
|
3 |
+ * @author fenris |
|
4 |
+ */ |
|
5 |
+class Wordfragment |
|
6 |
+{ |
|
7 |
+ |
|
8 |
+ /** |
|
9 |
+ */ |
|
10 |
+ constructor(language, representation, pronunciation) |
|
11 |
+ { |
|
12 |
+ this.language = language; |
|
13 |
+ this.representation = representation; |
|
14 |
+ this.pronunciation = pronunciation; |
|
15 |
+ } |
|
16 |
+ |
|
17 |
+ |
|
18 |
+ /** |
|
19 |
+ */ |
|
20 |
+ toString() |
|
21 |
+ { |
|
22 |
+ let parts = []; |
|
23 |
+ if (this.language != null) parts.push("[" + this.language + "]"); |
|
24 |
+ if (this.representation != null) parts.push("\"" + this.representation + "\""); |
|
25 |
+ if (this.pronunciation != null) parts.push("(" + this.pronunciation + ")"); |
|
26 |
+ return parts.join(" "); |
|
27 |
+ } |
|
28 |
+ |
|
29 |
+} |
|
30 |
+ |
... | ... |
@@ -4,10 +4,27 @@ |
4 | 4 |
*/ |
5 | 5 |
function main() |
6 | 6 |
{ |
7 |
+ let concepts = [ |
|
8 |
+ new Concept("noun", "bread; food made of flour", ["food"]), |
|
9 |
+ ]; |
|
7 | 10 |
let words = [ |
8 |
- new Word("de", "Brot", "/bʁoːt/"), |
|
9 | 11 |
new Word("pg", "braudą", "/ˈbrɑu̯.ðɑ̃/"), |
10 |
- ] |
|
12 |
+ new Word("de", "Brot", "/bʁoːt/"), |
|
13 |
+ new Word("nb", "brød", "/brøː/"), |
|
14 |
+ ]; |
|
15 |
+ let translations = [ |
|
16 |
+ new Translations(concept[0], words[0]), |
|
17 |
+ new Translations(concept[0], words[1]), |
|
18 |
+ ]; |
|
19 |
+ let wordfragments = [ |
|
20 |
+ new Wordfragment("pg", "au", "/ɑu̯/"), |
|
21 |
+ new Wordfragment("de", "o", "/oː/"), |
|
22 |
+ new Wordfragment("nb", "ø", "/øː/"), |
|
23 |
+ ]; |
|
24 |
+ let transitions = [ |
|
25 |
+ new Transition(wordfragments[0], wordfragments[1]), |
|
26 |
+ new Transition(wordfragments[0], wordfragments[2]), |
|
27 |
+ ]; |
|
11 | 28 |
|
12 | 29 |
words.forEach(word => console.info(word.toString())); |
13 | 30 |
} |
... | ... |
@@ -0,0 +1,19 @@ |
1 |
+ |
|
2 |
+/** |
|
3 |
+ * @author fenris |
|
4 |
+ */ |
|
5 |
+class SQLWrapper |
|
6 |
+{ |
|
7 |
+ |
|
8 |
+ /** |
|
9 |
+ * @param {any} core the core value |
|
10 |
+ * @param {Object} meta an object containing meta information like the database-id |
|
11 |
+ */ |
|
12 |
+ constructor(core, meta) |
|
13 |
+ { |
|
14 |
+ this.core = core; |
|
15 |
+ this.meta = meta; |
|
16 |
+ } |
|
17 |
+ |
|
18 |
+} |
|
19 |
+ |
|
0 | 20 |