Merge "Show tooltips for annotations in table view"
diff --git a/.gitignore b/.gitignore
index 87ea481..2dbe719 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,7 @@
public
kalamar.*.conf
kalamar.conf.json
+kalamar.conf.js
script/hypnotoad.pid
.sass-cache
dev/css
diff --git a/Gruntfile.js b/Gruntfile.js
index 830a0eb..b556928 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -15,42 +15,29 @@
*/
module.exports = function(grunt) {
-
var config;
-
- try {
- config = grunt.file.readJSON('kalamar.conf.json');
- }
- catch(err) {
- console.log("Error: " + err);
- config = {};
- };
-
- if (config["include"] === undefined) {
- config["include"] = [
- 'hint/foundries/base',
- 'hint/foundries/dereko'
- ];
+ var includeFile = 'default';
+ if (grunt.file.exists('kalamar.conf.js')) {
+ includeFile = 'root/kalamar.conf';
};
// Generate requireJS files for l10n
var reqTasks = [];
for (var i in {'en' : 0, 'de' : 1}) {
- var includeFiles = config["include"].slice();
- includeFiles.push('app/' + i);
-
reqTasks.push({
options: {
+
// optimize: "uglify",
baseUrl: 'dev/js/src',
paths : {
- 'lib': '../lib'
+ 'lib': '../lib',
+ 'root' : '../../..'
},
- wrap:true,
+ wrap: true,
// dir : 'public/js',
name: 'lib/almond',
- include : includeFiles,
+ include : [includeFile, "app/" + i],
out: 'public/js/kalamar-<%= pkg.version %>-' + i + '.js'
}
})
diff --git a/dev/demo/alldemo.js b/dev/demo/alldemo.js
index 226ee28..e2ce107 100644
--- a/dev/demo/alldemo.js
+++ b/dev/demo/alldemo.js
@@ -604,7 +604,7 @@
KorAP.currentQuery = queryExample;
-require(['app/en', 'init'], function (lang, init) {
+require(['app/en', 'init', 'hint/foundries/cnx'], function (lang) {
KorAP.hintArray = hintArray;
// Set current virtual collection
diff --git a/dev/demo/match-table.html b/dev/demo/match-table.html
new file mode 100644
index 0000000..f687f68
--- /dev/null
+++ b/dev/demo/match-table.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Match table demo</title>
+ <meta charset="utf-8" />
+ <script data-main="match-tabledemo.js" src="../js/lib/require.js" async="async"></script>
+ <link type="text/css" rel="stylesheet" href="../css/kalamar.css" />
+ </head>
+ <body>
+ <main>
+ <div id="search">
+ <ol class="align-left">
+ <li class="active">
+ <div class="meta">xx</div>
+ <div class="match-main">
+ <div class="match-wrap">
+ <div class="snippet startMore endMore">
+ <span class="context-left">In diesem Beispiel ist zu sehen, dass die beiden Variablen a und b lediglich ihre Werte an die Funktion </span><mark><mark class="class-2 level-1">Dies </mark><mark class="class-1 level-0"><mark class="class-2 level-1"><mark class="class-3 level-2">ist</mark> ein</mark> Test</mark></mark><span class="context-right"> übergeben, aber im Gegensatz zu einem Referenzparamter dabei unverändert bleiben.</span></div>
+ </div>
+ </div>
+ <p class="ref"><strong>Wertparameter</strong> by Hubi,Zwobot,4; published on 2005-03-28 as WWW.03313 (WPD)</p>
+ <div class="matchinfo">
+ <div class="matchtable" id="matchtable"></div>
+ </div>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </body>
+</html>
diff --git a/dev/demo/match-tabledemo.js b/dev/demo/match-tabledemo.js
new file mode 100644
index 0000000..fe422ef
--- /dev/null
+++ b/dev/demo/match-tabledemo.js
@@ -0,0 +1,62 @@
+requirejs.config({
+ baseUrl: '../js/src',
+ paths : {
+ 'lib': '../lib'
+ }
+});
+
+window.KorAP = window.KorAP || {};
+
+require(['match/table',
+ 'lib/domReady',
+ 'hint/foundries/opennlp',
+ 'hint/foundries/cnx',
+ 'hint/foundries/mate'
+ ], function (matchTableClass, domReady) {
+
+ var snippet = "<span title=\"cnx/l:meist\">" +
+ " <span title=\"cnx/p:ADV\">" +
+ " <span title=\"cnx/syn:@PREMOD\">" +
+ " <span title=\"mate/l:meist\">" +
+ " <span title=\"mate/p:ADV\">" +
+ " <span title=\"opennlp/p:ADV\">meist</span>" +
+ " </span>" +
+ " </span>" +
+ " </span>" +
+ " </span>" +
+ "</span>" +
+ "<span title=\"cnx/l:deutlich\">" +
+ " <span title=\"cnx/p:A\">" +
+ " <span title=\"cnx/syn:@PREMOD\">" +
+ " <span title=\"mate/l:deutlich\">" +
+ " <span title=\"mate/m:degree:pos\">" +
+ " <span title=\"mate/p:ADJD\">" +
+ " <span title=\"opennlp/p:ADJD\">deutlich</span>" +
+ " </span>" +
+ " </span>" +
+ " </span>" +
+ " </span>" +
+ " </span>" +
+ "</span>" +
+ "<span title=\"cnx/l:fähig\">" +
+ " <span title=\"cnx/l:leistung\">" +
+ " <span title=\"cnx/p:A\">" +
+ " <span title=\"cnx/syn:@NH\">" +
+ " <span title=\"mate/l:leistungsfähig\">" +
+ " <span title=\"mate/m:degree:comp\">" +
+ " <span title=\"mate/p:ADJD\">" +
+ " <span title=\"opennlp/p:ADJD\">leistungsfähiger</span>" +
+ " </span>" +
+ " </span>" +
+ " </span>" +
+ " </span>" +
+ " </span>" +
+ " </span>" +
+ "</span>";
+
+
+ domReady(function () {
+ var mt = matchTableClass.create(snippet);
+ document.getElementById('matchtable').appendChild(mt.element());
+ });
+});
diff --git a/dev/js/src/default.js b/dev/js/src/default.js
new file mode 100644
index 0000000..905751c
--- /dev/null
+++ b/dev/js/src/default.js
@@ -0,0 +1,4 @@
+require([
+ "hint/foundries/base",
+ "hint/foundries/dereko"
+]);
diff --git a/dev/js/src/hint.js b/dev/js/src/hint.js
index 2ebc395..19c360f 100644
--- a/dev/js/src/hint.js
+++ b/dev/js/src/hint.js
@@ -42,7 +42,7 @@
")?" +
")?" +
")$";
- KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+ // KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
/**
* Return keycode based on event
@@ -78,6 +78,12 @@
this._alert = alertClass.create();
this._active = null;
+ // No annotation helper available
+ if (!KorAP.annotationHelper) {
+ console.log("No annotationhelper defined");
+ return;
+ };
+
// Get input field
var qfield = param["inputField"] || document.getElementById("q-field");
if (!qfield)
diff --git a/dev/js/src/hint/foundries.js b/dev/js/src/hint/foundries.js
new file mode 100644
index 0000000..6f2ac02
--- /dev/null
+++ b/dev/js/src/hint/foundries.js
@@ -0,0 +1,3 @@
+define(function () {
+ return (KorAP.annotationHelper = KorAP.annotationHelper || { '-' : [] });
+});
diff --git a/dev/js/src/hint/foundries/base.js b/dev/js/src/hint/foundries/base.js
index 0bb26fc..29dc414 100644
--- a/dev/js/src/hint/foundries/base.js
+++ b/dev/js/src/hint/foundries/base.js
@@ -1,11 +1,11 @@
-var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+define(["hint/foundries"], function (ah) {
+ ah["-"].push(
+ ["Base Annotation", "base/s=", "Structure"]
+ );
-ah["-"].push(
- ["Base Annotation", "base/s=", "Structure"]
-);
-
-ah["base/s="] = [
- ["s", "s", "Sentence"],
- ["p", "p", "Paragraph"],
- ["t", "t", "Text"]
-];
+ ah["base/s="] = [
+ ["s", "s", "Sentence"],
+ ["p", "p", "Paragraph"],
+ ["t", "t", "Text"]
+ ];
+});
diff --git a/dev/js/src/hint/foundries/cnx.js b/dev/js/src/hint/foundries/cnx.js
index 0c6f8cb..608d4e6 100644
--- a/dev/js/src/hint/foundries/cnx.js
+++ b/dev/js/src/hint/foundries/cnx.js
@@ -1,63 +1,63 @@
-var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+define(["hint/foundries"], function (ah) {
+ ah["-"].push(
+ ["Connexor", "cnx/", "Constituency, Lemma, Morphology, Part-of-Speech, Syntax"]
+ );
-ah["-"].push(
- ["Connexor", "cnx/", "Constituency, Lemma, Morphology, Part-of-Speech, Syntax"]
-);
+ ah["cnx/"] = [
+ ["Constituency", "c="],
+ ["Lemma", "l="],
+ ["Morphology", "m="],
+ ["Part-of-Speech", "p="],
+ ["Syntax", "syn="]
+ ];
-ah["cnx/"] = [
- ["Constituency", "c="],
- ["Lemma", "l="],
- ["Morphology", "m="],
- ["Part-of-Speech", "p="],
- ["Syntax", "syn="]
-];
+ ah["cnx/c="] = [
+ ["np", "np ", "Nominal Phrase"]
+ ];
-ah["cnx/c="] = [
- ["np", "np ", "Nominal Phrase"]
-];
+ // http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/morph.html
+ ah["cnx/m="] = [
+ ["Abbr","Abbr ", "Nouns: Abbreviation"],
+ ["CMP","CMP ", "Adjective: Comparative"],
+ ["IMP", "IMP ", "Mood: Imperative"],
+ ["IND", "IND ", "Mood: Indicative"],
+ ["INF", "INF ", "Infinitive"],
+ ["ORD","ORD ", "Numeral: Ordinal"],
+ ["PAST", "PAST ", "Tense: past"],
+ ["PCP", "PCP ", "Participle"],
+ ["PERF", "PERF ", "Perfective Participle"],
+ ["PL","PL ", "Nouns: Plural"],
+ ["PRES", "PRES ", "Tense: present"],
+ ["PROG", "PROG ", "Progressive Participle"],
+ ["Prop","Prop ", "Nouns: Proper Noun"],
+ ["SUB", "SUB ", "Mood: Subjunctive"],
+ ["SUP","SUP ", "Adjective: Superlative"]
+ ];
-// http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/morph.html
-ah["cnx/m="] = [
- ["Abbr","Abbr ", "Nouns: Abbreviation"],
- ["CMP","CMP ", "Adjective: Comparative"],
- ["IMP", "IMP ", "Mood: Imperative"],
- ["IND", "IND ", "Mood: Indicative"],
- ["INF", "INF ", "Infinitive"],
- ["ORD","ORD ", "Numeral: Ordinal"],
- ["PAST", "PAST ", "Tense: past"],
- ["PCP", "PCP ", "Participle"],
- ["PERF", "PERF ", "Perfective Participle"],
- ["PL","PL ", "Nouns: Plural"],
- ["PRES", "PRES ", "Tense: present"],
- ["PROG", "PROG ", "Progressive Participle"],
- ["Prop","Prop ", "Nouns: Proper Noun"],
- ["SUB", "SUB ", "Mood: Subjunctive"],
- ["SUP","SUP ", "Adjective: Superlative"]
-];
+ // http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/morph.html
+ ah["cnx/p="] = [
+ ["A", "A ", "Adjective"],
+ ["ADV", "ADV ", "Adverb"],
+ ["CC", "CC ", "Coordination Marker"],
+ ["CS", "CS ", "Clause Marker"],
+ ["DET", "DET ", "Determiner"],
+ ["INTERJ", "INTERJ ", "Interjection"],
+ ["N", "N ", "Noun"],
+ ["NUM", "NUM ", "Numeral"],
+ ["PREP", "PREP ", "Preposition"],
+ ["PRON", "PRON ", "Pro-Nominal"],
+ ["V", "V ", "Verb"]
+ ];
-// http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/morph.html
-ah["cnx/p="] = [
- ["A", "A ", "Adjective"],
- ["ADV", "ADV ", "Adverb"],
- ["CC", "CC ", "Coordination Marker"],
- ["CS", "CS ", "Clause Marker"],
- ["DET", "DET ", "Determiner"],
- ["INTERJ", "INTERJ ", "Interjection"],
- ["N", "N ", "Noun"],
- ["NUM", "NUM ", "Numeral"],
- ["PREP", "PREP ", "Preposition"],
- ["PRON", "PRON ", "Pro-Nominal"],
- ["V", "V ", "Verb"]
-];
-
-// http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/syntax.html
-ah["cnx/syn="] = [
- ["@ADVL", "@ADVL ", "Adverbial Head"],
- ["@AUX", "@AUX ", "Auxiliary Verb"],
- ["@CC", "@CC ", "Coordination"]
- ["@MAIN", "@MAIN ", "Main Verb"],
- ["@NH", "@NH ", "Nominal Head"],
- ["@POSTMOD", "@POSTMOD ", "Postmodifier"],
- ["@PREMARK", "@PREMARK ", "Preposed Marker"],
- ["@PREMOD", "@POSTMOD ", "Premodifier"]
-];
+ // http://www.ids-mannheim.de/cosmas2/projekt/referenz/connexor/syntax.html
+ ah["cnx/syn="] = [
+ ["@ADVL", "@ADVL ", "Adverbial Head"],
+ ["@AUX", "@AUX ", "Auxiliary Verb"],
+ ["@CC", "@CC ", "Coordination"]
+ ["@MAIN", "@MAIN ", "Main Verb"],
+ ["@NH", "@NH ", "Nominal Head"],
+ ["@POSTMOD", "@POSTMOD ", "Postmodifier"],
+ ["@PREMARK", "@PREMARK ", "Preposed Marker"],
+ ["@PREMOD", "@POSTMOD ", "Premodifier"]
+ ];
+});
diff --git a/dev/js/src/hint/foundries/corenlp.js b/dev/js/src/hint/foundries/corenlp.js
index b591c62..b3c931c 100644
--- a/dev/js/src/hint/foundries/corenlp.js
+++ b/dev/js/src/hint/foundries/corenlp.js
@@ -1,6 +1,4 @@
-require(["hint/foundries/stts"], function (sttsArray) {
- var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
-
+define(["hint/foundries","hint/foundries/stts"], function (ah, sttsArray) {
var namedEntities = [
["I-LOC", "I-LOC ", "Location"],
["I-MISC", "I-MISC ", "Miscellaneous"],
diff --git a/dev/js/src/hint/foundries/dereko.js b/dev/js/src/hint/foundries/dereko.js
index c8afe08..939fade 100644
--- a/dev/js/src/hint/foundries/dereko.js
+++ b/dev/js/src/hint/foundries/dereko.js
@@ -1,5 +1,5 @@
-var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
-
-ah["-"].push(
- ["DeReKo", "dereko/s=", "Structure"]
-);
+define(["hint/foundries"], function (ah) {
+ ah["-"].push(
+ ["DeReKo", "dereko/s=", "Structure"]
+ );
+});
diff --git a/dev/js/src/hint/foundries/drukola.js b/dev/js/src/hint/foundries/drukola.js
index 2fec26d..1850fc3 100644
--- a/dev/js/src/hint/foundries/drukola.js
+++ b/dev/js/src/hint/foundries/drukola.js
@@ -1,105 +1,105 @@
-var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+define(["hint/foundries"], function (ah) {
+ ah["-"].push(
+ ["DRuKoLa", "drukola/", "Lemma, Morphology, Part-of-Speech"]
+ );
-ah["-"].push(
- ["DRuKoLa", "drukola/", "Lemma, Morphology, Part-of-Speech"]
-);
+ ah["drukola/"] = [
+ ["Lemma", "l="],
+ ["Morphology", "m="],
+ ["Part-of-Speech", "p="]
+ ];
-ah["drukola/"] = [
- ["Lemma", "l="],
- ["Morphology", "m="],
- ["Part-of-Speech", "p="]
-];
+ ah["drukola/m="] = [
+ ["CTAG", "ctag:"]
+ ];
-ah["drukola/m="] = [
- ["CTAG", "ctag:"]
-];
+ ah["drukola/m=ctag:"] = [
+ ["A","A ","Adjective"],
+ ["Y","Y ","Abbreviation"],
+ ["AN","AN ","Adjective, Indefinite"],
+ ["APRY","APRY ","Adjective, Plural, Direct, Definite"],
+ ["APN","APN ","Adjective, Plural, Indefinite"],
+ ["APOY","APOY ","Adjective, Plural, Oblique, Definite"],
+ ["APON","APON ","Adjective, Plural, Oblique, Indefinite"],
+ ["ASRY","ASRY ","Adjective, Singular, Direct, Definite"],
+ ["ASN","ASN ","Adjective, Singular, Indefinite"],
+ ["ASOY","ASOY ","Adjective, Singular, Oblique, Definite"],
+ ["ASON","ASON ","Adjective, Singular, Oblique, Indefinite"],
+ ["ASVY","ASVY ","Adjective, Singular, Vocative, Definite"],
+ ["ASVN","ASVN ","Adjective, Singular, Vocative, Indefinite"],
+ ["R","R ","Adverb"],
+ ["RC","RC ","Adverb, Portmanteau"],
+ ["TS","TS ","Article, Definite or Possessive, Singular"],
+ ["TP","TP ","Article, Indefinite or Possessive, Plural"],
+ ["TPR","TPR ","Article, non-Possessive, Plural, Direct"],
+ ["TPO","TPO ","Article, non-Possessive, Plural, Oblique"],
+ ["TSR","TSR ","Article, non-Possessive, Singular, Direct"],
+ ["TSO","TSO ","Article, non-Possessive, Singular, Oblique"],
+ ["NPRY","NPRY ","Common Noun, Plural, Direct, Definite"],
+ ["NPN","NPN ","Common Noun, Plural, Indefinite"],
+ ["NPOY","NPOY ","Common Noun, Plural, Oblique, Definite"],
+ ["NPVY","NPVY ","Common Noun, Plural, Vocative, Definite"],
+ ["NN","NN ","Common Noun, singular"],
+ ["NSY","NSY ","Common Noun, Singular, Definite"],
+ ["NSRY","NSRY ","Common Noun, Singular, Direct, Definite"],
+ ["NSRN","NSRN ","Common Noun, Singular, Direct, Indefinite"],
+ ["NSN","NSN ","Common Noun, Singular, Indefinite"],
+ ["NSOY","NSOY ","Common Noun, Singular, Oblique, Definite"],
+ ["NSON","NSON ","Common Noun, Singular, Oblique, Indefinite"],
+ ["NSVY","NSVY ","Common Noun, Singular, Vocative, Definite"],
+ ["NSVN","NSVN ","Common Noun, Singular, Vocative, Indefinite"],
+ ["CR","CR ","Conjunctio, portmanteau"],
+ ["C","C ","Conjunction"],
+ ["QF","QF ","Future Particle"],
+ ["QN","QN ","Infinitival Particle"],
+ ["I","I ","Interjection"],
+ ["QZ","QZ ","Negative Particle"],
+ ["M","M ","Numeral"],
+ ["PP","PP ","Personal Pronoun"],
+ ["PPP","PPP ","Personal Pronoun, Plural"],
+ ["PPPA","PPPA ","Personal Pronoun, Plural, Acc."],
+ ["PPPD","PPPD ","Personal Pronoun, Plural, Dative"],
+ ["PPPR","PPPR ","Personal Pronoun, Plural, Direct"],
+ ["PPPO","PPPO ","Personal Pronoun, Plural, Oblique"],
+ ["PPS","PPS ","Personal Pronoun, Singular"],
+ ["PPSA","PPSA ","Personal Pronoun, Singular, Accusative"],
+ ["PPSD","PPSD ","Personal Pronoun, Singular, Dative"],
+ ["PPSR","PPSR ","Personal Pronoun, Singular, Direct"],
+ ["PPSN","PPSN ","Personal Pronoun, Singular, Nominative"],
+ ["PPSO","PPSO ","Personal Pronoun, Singular, Oblique"],
+ ["S","S ","Preposition"],
+ ["DMPR","DMPR ","Pronoun or Determiner, Demonstrative, Plural, Direct"],
+ ["DMPO","DMPO ","Pronoun or Determiner, Demonstrative, Plural, Oblique"],
+ ["DMSR","DMSR ","Pronoun or Determiner, Demonstrative, Singular, Direct"],
+ ["DMSO","DMSO ","Pronoun or Determiner, Demonstrative, Singular, Oblique"],
+ ["PS","PS ","Pronoun or Determiner, Poss or Emph"],
+ ["PSS","PSS ","Pronoun or Determiner, Poss or Emph, Singular"],
+ ["RELR","RELR ","Pronoun or Determiner, Relative, Direct"],
+ ["RELO","RELO ","Pronoun or Determiner, Relative, Oblique"],
+ ["NP","NP ","Proper Noun"],
+ ["PI","PI ","Quantifier Pronoun or Determiner"],
+ ["PXA","PXA ","Reflexive Pronoun, Accusative"],
+ ["PXD","PXD ","Reflexive Pronoun, Dative"],
+ ["X","X ","Residual"],
+ ["QS","QS ","Subjunctive Particle"],
+ ["VA","VA ","Verb, Auxiliary"],
+ ["VA1","VA1 ","Verb, Auxiliary, 1st person"],
+ ["VA2P","VA2P ","Verb, Auxiliary, 2nd person, Plural"],
+ ["VA2S","VA2S ","Verb, Auxiliary, 2nd person, Singular"],
+ ["VA3","VA3 ","Verb, Auxiliary, 3rd person"],
+ ["VA3P","VA3P ","Verb, Auxiliary, 3rd person, Plural"],
+ ["VA3S","VA3S ","Verb, Auxiliary, 3rd person, Singular"],
+ ["VA1P","VA1P ","Verb, Auxiliary,1st person, Plural"],
+ ["VA1S","VA1S ","Verb, Auxiliary,1st person, Singular"],
+ ["VG","VG ","Verb, Gerund"],
+ ["VN","VN ","Verb, Infinitive"],
+ ["V1","V1 ","Verb, Main, 1st person"],
+ ["V2","V2 ","Verb, Main, 2nd person"],
+ ["V3","V3 ","Verb, Main, 3rd person"],
+ ["VPPF","VPPF ","Verb, Participle, Plural, Feminine"],
+ ["VPPM","VPPM ","Verb, Participle, Plural, Masculine"],
+ ["VPSF","VPSF ","Verb, Participle, Singular, Feminine"],
+ ["VPSM","VPSM ","Verb, Participle, Singular, Masculine"]
+ ];
-ah["drukola/m=ctag:"] = [
- ["A","A ","Adjective"],
- ["Y","Y ","Abbreviation"],
- ["AN","AN ","Adjective, Indefinite"],
- ["APRY","APRY ","Adjective, Plural, Direct, Definite"],
- ["APN","APN ","Adjective, Plural, Indefinite"],
- ["APOY","APOY ","Adjective, Plural, Oblique, Definite"],
- ["APON","APON ","Adjective, Plural, Oblique, Indefinite"],
- ["ASRY","ASRY ","Adjective, Singular, Direct, Definite"],
- ["ASN","ASN ","Adjective, Singular, Indefinite"],
- ["ASOY","ASOY ","Adjective, Singular, Oblique, Definite"],
- ["ASON","ASON ","Adjective, Singular, Oblique, Indefinite"],
- ["ASVY","ASVY ","Adjective, Singular, Vocative, Definite"],
- ["ASVN","ASVN ","Adjective, Singular, Vocative, Indefinite"],
- ["R","R ","Adverb"],
- ["RC","RC ","Adverb, Portmanteau"],
- ["TS","TS ","Article, Definite or Possessive, Singular"],
- ["TP","TP ","Article, Indefinite or Possessive, Plural"],
- ["TPR","TPR ","Article, non-Possessive, Plural, Direct"],
- ["TPO","TPO ","Article, non-Possessive, Plural, Oblique"],
- ["TSR","TSR ","Article, non-Possessive, Singular, Direct"],
- ["TSO","TSO ","Article, non-Possessive, Singular, Oblique"],
- ["NPRY","NPRY ","Common Noun, Plural, Direct, Definite"],
- ["NPN","NPN ","Common Noun, Plural, Indefinite"],
- ["NPOY","NPOY ","Common Noun, Plural, Oblique, Definite"],
- ["NPVY","NPVY ","Common Noun, Plural, Vocative, Definite"],
- ["NN","NN ","Common Noun, singular"],
- ["NSY","NSY ","Common Noun, Singular, Definite"],
- ["NSRY","NSRY ","Common Noun, Singular, Direct, Definite"],
- ["NSRN","NSRN ","Common Noun, Singular, Direct, Indefinite"],
- ["NSN","NSN ","Common Noun, Singular, Indefinite"],
- ["NSOY","NSOY ","Common Noun, Singular, Oblique, Definite"],
- ["NSON","NSON ","Common Noun, Singular, Oblique, Indefinite"],
- ["NSVY","NSVY ","Common Noun, Singular, Vocative, Definite"],
- ["NSVN","NSVN ","Common Noun, Singular, Vocative, Indefinite"],
- ["CR","CR ","Conjunctio, portmanteau"],
- ["C","C ","Conjunction"],
- ["QF","QF ","Future Particle"],
- ["QN","QN ","Infinitival Particle"],
- ["I","I ","Interjection"],
- ["QZ","QZ ","Negative Particle"],
- ["M","M ","Numeral"],
- ["PP","PP ","Personal Pronoun"],
- ["PPP","PPP ","Personal Pronoun, Plural"],
- ["PPPA","PPPA ","Personal Pronoun, Plural, Acc."],
- ["PPPD","PPPD ","Personal Pronoun, Plural, Dative"],
- ["PPPR","PPPR ","Personal Pronoun, Plural, Direct"],
- ["PPPO","PPPO ","Personal Pronoun, Plural, Oblique"],
- ["PPS","PPS ","Personal Pronoun, Singular"],
- ["PPSA","PPSA ","Personal Pronoun, Singular, Accusative"],
- ["PPSD","PPSD ","Personal Pronoun, Singular, Dative"],
- ["PPSR","PPSR ","Personal Pronoun, Singular, Direct"],
- ["PPSN","PPSN ","Personal Pronoun, Singular, Nominative"],
- ["PPSO","PPSO ","Personal Pronoun, Singular, Oblique"],
- ["S","S ","Preposition"],
- ["DMPR","DMPR ","Pronoun or Determiner, Demonstrative, Plural, Direct"],
- ["DMPO","DMPO ","Pronoun or Determiner, Demonstrative, Plural, Oblique"],
- ["DMSR","DMSR ","Pronoun or Determiner, Demonstrative, Singular, Direct"],
- ["DMSO","DMSO ","Pronoun or Determiner, Demonstrative, Singular, Oblique"],
- ["PS","PS ","Pronoun or Determiner, Poss or Emph"],
- ["PSS","PSS ","Pronoun or Determiner, Poss or Emph, Singular"],
- ["RELR","RELR ","Pronoun or Determiner, Relative, Direct"],
- ["RELO","RELO ","Pronoun or Determiner, Relative, Oblique"],
- ["NP","NP ","Proper Noun"],
- ["PI","PI ","Quantifier Pronoun or Determiner"],
- ["PXA","PXA ","Reflexive Pronoun, Accusative"],
- ["PXD","PXD ","Reflexive Pronoun, Dative"],
- ["X","X ","Residual"],
- ["QS","QS ","Subjunctive Particle"],
- ["VA","VA ","Verb, Auxiliary"],
- ["VA1","VA1 ","Verb, Auxiliary, 1st person"],
- ["VA2P","VA2P ","Verb, Auxiliary, 2nd person, Plural"],
- ["VA2S","VA2S ","Verb, Auxiliary, 2nd person, Singular"],
- ["VA3","VA3 ","Verb, Auxiliary, 3rd person"],
- ["VA3P","VA3P ","Verb, Auxiliary, 3rd person, Plural"],
- ["VA3S","VA3S ","Verb, Auxiliary, 3rd person, Singular"],
- ["VA1P","VA1P ","Verb, Auxiliary,1st person, Plural"],
- ["VA1S","VA1S ","Verb, Auxiliary,1st person, Singular"],
- ["VG","VG ","Verb, Gerund"],
- ["VN","VN ","Verb, Infinitive"],
- ["V1","V1 ","Verb, Main, 1st person"],
- ["V2","V2 ","Verb, Main, 2nd person"],
- ["V3","V3 ","Verb, Main, 3rd person"],
- ["VPPF","VPPF ","Verb, Participle, Plural, Feminine"],
- ["VPPM","VPPM ","Verb, Participle, Plural, Masculine"],
- ["VPSF","VPSF ","Verb, Participle, Singular, Feminine"],
- ["VPSM","VPSM ","Verb, Participle, Singular, Masculine"]
-];
-
+});
diff --git a/dev/js/src/hint/foundries/malt.js b/dev/js/src/hint/foundries/malt.js
index c81df9e..aa632b6 100644
--- a/dev/js/src/hint/foundries/malt.js
+++ b/dev/js/src/hint/foundries/malt.js
@@ -1,47 +1,47 @@
-var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+define(["hint/foundries"], function (ah) {
+ ah["-"].push(
+ ["Malt", "malt/", "Dependency"]
+ );
-ah["-"].push(
- ["Malt", "malt/", "Dependency"]
-);
+ ah["malt/"] = [
+ ["Dependency", "d="]
+ ];
-ah["malt/"] = [
- ["Dependency", "d="]
-];
-
-ah["malt/d="] = [
- ["-PUNCT-", "-PUNCT- "],
- ["-UNKNOWN-","-UNKNOWN- "],
- ["ADV","ADV "],
- ["APP","APP "],
- ["ATTR","ATTR "],
- ["AUX","AUX "],
- ["AVZ","AVZ "],
- ["CJ","CJ "],
- ["DET","DET "],
- ["EXPL","EXPL "],
- ["GMOD","GMOD "],
- ["GRAD","GRAD "],
- ["KOM","KOM "],
- ["KON","KON "],
- ["KONJ","KONJ "],
- ["NEB","NEB "],
- ["OBJA","OBJA "],
- ["OBJC","OBJC "],
- ["OBJD","OBJD "],
- ["OBJG","OBJG "],
- ["OBJI","OBJI "],
- ["OBJP","OBJP "],
- ["PAR","PAR "],
- ["PART","PART "],
- ["PN","PN "],
- ["PP","PP "],
- ["PRED","PRED "],
- ["REL","REL "],
- ["ROOT","ROOT "],
- ["S","S "],
- ["SUBJ","SUBJ "],
- ["SUBJC","SUBJC "],
- ["ZEIT","ZEIT "],
- ["gmod-app","gmod-app "],
- ["koord","koord "]
-];
+ ah["malt/d="] = [
+ ["-PUNCT-", "-PUNCT- "],
+ ["-UNKNOWN-","-UNKNOWN- "],
+ ["ADV","ADV "],
+ ["APP","APP "],
+ ["ATTR","ATTR "],
+ ["AUX","AUX "],
+ ["AVZ","AVZ "],
+ ["CJ","CJ "],
+ ["DET","DET "],
+ ["EXPL","EXPL "],
+ ["GMOD","GMOD "],
+ ["GRAD","GRAD "],
+ ["KOM","KOM "],
+ ["KON","KON "],
+ ["KONJ","KONJ "],
+ ["NEB","NEB "],
+ ["OBJA","OBJA "],
+ ["OBJC","OBJC "],
+ ["OBJD","OBJD "],
+ ["OBJG","OBJG "],
+ ["OBJI","OBJI "],
+ ["OBJP","OBJP "],
+ ["PAR","PAR "],
+ ["PART","PART "],
+ ["PN","PN "],
+ ["PP","PP "],
+ ["PRED","PRED "],
+ ["REL","REL "],
+ ["ROOT","ROOT "],
+ ["S","S "],
+ ["SUBJ","SUBJ "],
+ ["SUBJC","SUBJC "],
+ ["ZEIT","ZEIT "],
+ ["gmod-app","gmod-app "],
+ ["koord","koord "]
+ ];
+});
diff --git a/dev/js/src/hint/foundries/marmot.js b/dev/js/src/hint/foundries/marmot.js
index 0b80292..ca434dc 100644
--- a/dev/js/src/hint/foundries/marmot.js
+++ b/dev/js/src/hint/foundries/marmot.js
@@ -1,6 +1,4 @@
-require(["hint/foundries/stts"], function () {
- var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
-
+define(["hint/foundries","hint/foundries/stts"], function (ah, sttsArray) {
ah["-"].push(
["MarMoT", "marmot/", "Morphology, Part-of-Speech"]
);
diff --git a/dev/js/src/hint/foundries/mate.js b/dev/js/src/hint/foundries/mate.js
index d837fd7..c7cd2e9 100644
--- a/dev/js/src/hint/foundries/mate.js
+++ b/dev/js/src/hint/foundries/mate.js
@@ -1,4 +1,4 @@
-require(["hint/foundries/stts"], function (sttsArray) {
+define(["hint/foundries","hint/foundries/stts"], function (ah, sttsArray) {
var mateSttsArray = sttsArray.slice(0);
mateSttsArray.push(
["<root-POS>","<root-POS>","Root Part of Speech"]
diff --git a/dev/js/src/hint/foundries/opennlp.js b/dev/js/src/hint/foundries/opennlp.js
index 267bf8d..dc10dc9 100644
--- a/dev/js/src/hint/foundries/opennlp.js
+++ b/dev/js/src/hint/foundries/opennlp.js
@@ -1,7 +1,4 @@
-require(["hint/foundries/stts"], function (sttsArray) {
-
- var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
-
+define(["hint/foundries","hint/foundries/stts"], function (ah, sttsArray) {
ah["-"].push(
["OpenNLP", "opennlp/", "Part-of-Speech"]
);
diff --git a/dev/js/src/hint/foundries/schreibgebrauch.js b/dev/js/src/hint/foundries/schreibgebrauch.js
index 7cce57e..29eed70 100644
--- a/dev/js/src/hint/foundries/schreibgebrauch.js
+++ b/dev/js/src/hint/foundries/schreibgebrauch.js
@@ -1,6 +1,4 @@
-require(["hint/foundries/stts"], function (sttsArray) {
- var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
-
+define(["hint/foundries","hint/foundries/stts"], function (ah, sttsArray) {
var sgbrSttsArray = sttsArray.slice(0);
// Push specific information for Schreibgebrauch
diff --git a/dev/js/src/hint/foundries/treetagger.js b/dev/js/src/hint/foundries/treetagger.js
index 35fcfcc..3f94ebd 100644
--- a/dev/js/src/hint/foundries/treetagger.js
+++ b/dev/js/src/hint/foundries/treetagger.js
@@ -1,6 +1,4 @@
-require(["hint/foundries/stts"], function (sttsArray) {
- var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
-
+define(["hint/foundries","hint/foundries/stts"], function (ah, sttsArray) {
ah["-"].push(
["TreeTagger", "tt/", "Lemma, Part-of-Speech"]
);
diff --git a/dev/js/src/hint/foundries/xip.js b/dev/js/src/hint/foundries/xip.js
index cd9fc8a..ff7ac5e 100644
--- a/dev/js/src/hint/foundries/xip.js
+++ b/dev/js/src/hint/foundries/xip.js
@@ -1,12 +1,12 @@
-var ah = KorAP.annotationHelper = KorAP.annotationHelper || { "-" : [] };
+define(["hint/foundries"], function (ah) {
+ ah["-"].push(
+ ["Xerox Parser", "xip/", "Constituency, Lemma, Part-of-Speech"]
+ );
-ah["-"].push(
- ["Xerox Parser", "xip/", "Constituency, Lemma, Part-of-Speech"]
-);
-
-ah["xip/"] = [
- ["Constituency", "c="],
- // Inactive: ["Dependency", "d="],
- ["Lemma", "l="],
- ["Part-of-Speech", "p="]
-];
+ ah["xip/"] = [
+ ["Constituency", "c="],
+ // Inactive: ["Dependency", "d="],
+ ["Lemma", "l="],
+ ["Part-of-Speech", "p="]
+ ];
+});
diff --git a/dev/js/src/match/table.js b/dev/js/src/match/table.js
index f55dc6f..481e60a 100644
--- a/dev/js/src/match/table.js
+++ b/dev/js/src/match/table.js
@@ -170,32 +170,12 @@
var e = c.appendChild(d.createElement('div'));
e.appendChild(text);
};
-
- // These are andgroups
- /*
- if (name.some(function (item) { return item.indexOf(':') == -1 ? false : true})) {
- c.classList.add('matchkeyvalues');
- for (var n = 0; n < name.length; n++) {
- var text = d.createTextNode(name[n]);
- var e = c.appendChild(d.createElement('div'));
- e.appendChild(text);
- };
- }
-
- // Add alternatives
- else {
- for (var n = 0; n < name.length; n++) {
- c.appendChild(d.createTextNode(name[n]));
- if (n !== name.length - 1) {
- c.appendChild(d.createElement('br'));
- };
- };
- };
- */
}
else {
c.appendChild(d.createTextNode(name));
};
+
+ return c;
};
tr.addCell = addCell;
@@ -215,6 +195,8 @@
var foundryList = Object.keys(this._foundry).sort();
+ var ah = KorAP.annotationHelper || {};
+
for (var f = 0; f < foundryList.length; f++) {
var foundry = foundryList[f];
var layerList =
@@ -231,11 +213,35 @@
tr.addCell('th', foundry);
tr.addCell('th', layer);
+ var key = foundry + '/' + layer + '=';
+ var anno = ah[key];
+
for (var v = 0; v < this.length(); v++) {
- tr.addCell(
+
+ // Get the cell value
+ var value = this.getValue(v, foundry, layer);
+
+ // Add cell to row
+ var cell = tr.addCell(
'td',
- this.getValue(v, foundry, layer)
+ value
);
+
+ // Iterate over all annotations and add the descriptions
+ if (anno) {
+
+ // This is a classic hash-lookup-case, but we have
+ // to deal with lists ...
+ for (var i = 0; i < anno.length; i++) {
+ if (anno[i] &&
+ anno[i][0] &&
+ anno[i][2] &&
+ anno[i][0] == value) {
+ cell.setAttribute('title', anno[i][2]);
+ break;
+ };
+ };
+ };
};
};
};