Fenris Wolf authored on17/04/2017 12:01:43
Showing8 changed files
... ...
@@ -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>
34 42
new file mode 100644
... ...
@@ -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 25
new file mode 100644
... ...
@@ -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 33
new file mode 100644
... ...
@@ -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
 
24 17
new file mode 100644
... ...
@@ -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
 }
14 31
new file mode 100644
... ...
@@ -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
+