You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by rw...@apache.org on 2015/09/22 12:41:14 UTC

svn commit: r1704567 - in /stanbol/branches/release-0.12: ./ enhancement-engines/ enhancement-engines/textannotationnewmodel/src/main/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/ enhancement-engines/textannotationnewmodel/src/t...

Author: rwesten
Date: Tue Sep 22 10:41:10 2015
New Revision: 1704567

URL: http://svn.apache.org/viewvc?rev=1704567&view=rev
Log:
merged STANBOL-1441 form trunk to 0.12

Modified:
    stanbol/branches/release-0.12/   (props changed)
    stanbol/branches/release-0.12/enhancement-engines/   (props changed)
    stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/main/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/TextAnnotationsNewModelEngine.java
    stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/test/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/TextAnnotationNewModelEngineTest.java
    stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/test/resources/enhancement-results.rdf

Propchange: stanbol/branches/release-0.12/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 22 10:41:10 2015
@@ -1,2 +1,2 @@
 /stanbol/branches/stanbol-solr4:1455112-1458685
-/stanbol/trunk:1543372-1543373,1543405,1546706,1547070,1547313,1547718,1548212,1548552,1550654,1551133,1551879,1551886,1556839,1557037,1557995,1559644-1559645,1564229,1633587,1634576,1638109,1685046,1685794,1685824,1686224,1689339,1702947
+/stanbol/trunk:1543372-1543373,1543405,1546706,1547070,1547313,1547718,1548212,1548552,1550654,1551133,1551879,1551886,1556839,1557037,1557995,1559644-1559645,1564229,1633587,1634576,1638109,1685046,1685794,1685824,1686224,1689339,1702947,1704533

Propchange: stanbol/branches/release-0.12/enhancement-engines/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 22 10:41:10 2015
@@ -3,4 +3,4 @@
 /stanbol/branches/STANBOL-913:1443935-1448276
 /stanbol/branches/stanbol-nlp-processing/enhancer/engines:1388017-1413353
 /stanbol/branches/stanbol-solr4/enhancement-engines:1455112-1458685
-/stanbol/trunk/enhancement-engines:1543372-1543373,1546706,1547070,1547313,1547718,1548212,1550654,1556839,1557037,1633587,1634576,1702947
+/stanbol/trunk/enhancement-engines:1543372-1543373,1546706,1547070,1547313,1547718,1548212,1550654,1556839,1557037,1633587,1634576,1702947,1704533

Modified: stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/main/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/TextAnnotationsNewModelEngine.java
URL: http://svn.apache.org/viewvc/stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/main/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/TextAnnotationsNewModelEngine.java?rev=1704567&r1=1704566&r2=1704567&view=diff
==============================================================================
--- stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/main/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/TextAnnotationsNewModelEngine.java (original)
+++ stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/main/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/TextAnnotationsNewModelEngine.java Tue Sep 22 10:41:10 2015
@@ -18,22 +18,25 @@ package org.apache.stanbol.enhancer.engi
 
 import static org.apache.stanbol.enhancer.servicesapi.helper.ContentItemHelper.getBlob;
 import static org.apache.stanbol.enhancer.servicesapi.rdf.Properties.ENHANCER_END;
+import static org.apache.stanbol.enhancer.servicesapi.rdf.Properties.ENHANCER_SELECTED_TEXT;
+import static org.apache.stanbol.enhancer.servicesapi.rdf.Properties.ENHANCER_SELECTION_CONTEXT;
+import static org.apache.stanbol.enhancer.servicesapi.rdf.Properties.ENHANCER_SELECTION_HEAD;
 import static org.apache.stanbol.enhancer.servicesapi.rdf.Properties.ENHANCER_SELECTION_PREFIX;
 import static org.apache.stanbol.enhancer.servicesapi.rdf.Properties.ENHANCER_SELECTION_SUFFIX;
+import static org.apache.stanbol.enhancer.servicesapi.rdf.Properties.ENHANCER_SELECTION_TAIL;
 import static org.apache.stanbol.enhancer.servicesapi.rdf.Properties.ENHANCER_START;
 import static org.apache.stanbol.enhancer.servicesapi.rdf.Properties.RDF_TYPE;
 import static org.apache.stanbol.enhancer.servicesapi.rdf.TechnicalClasses.ENHANCER_TEXTANNOTATION;
 
 import java.io.IOException;
 import java.util.Collections;
-import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
 import org.apache.clerezza.rdf.core.Language;
-import org.apache.clerezza.rdf.core.Literal;
 import org.apache.clerezza.rdf.core.LiteralFactory;
 import org.apache.clerezza.rdf.core.MGraph;
 import org.apache.clerezza.rdf.core.NonLiteral;
@@ -124,7 +127,7 @@ public class TextAnnotationsNewModelEngi
         } catch (IOException e) {
             throw new EngineException(this, contentItem, "Unable to read Plain Text Blob", e);
         }
-        Map<NonLiteral,Literal[]> prefixSuffixMap = new HashMap<NonLiteral,Literal[]>();
+        Set<Triple> addedTriples = new HashSet<Triple>();
         MGraph metadata = contentItem.getMetadata();
         //extract all the necessary information within a read lock
         contentItem.getLock().readLock().lock();
@@ -134,7 +137,8 @@ public class TextAnnotationsNewModelEngi
                 NonLiteral ta = it.next().getSubject();
                 boolean hasPrefix = metadata.filter(ta, ENHANCER_SELECTION_PREFIX, null).hasNext();
                 boolean hasSuffix = metadata.filter(ta, ENHANCER_SELECTION_SUFFIX, null).hasNext();
-                if(hasPrefix && hasSuffix){
+                boolean hasSelected = metadata.filter(ta, ENHANCER_SELECTED_TEXT, null).hasNext();
+                if(hasPrefix && hasSuffix && hasSelected){
                     continue; //this TextAnnotation already uses the new model
                 }
                 Integer start;
@@ -143,6 +147,10 @@ public class TextAnnotationsNewModelEngi
                     if(start == null){
                         log.debug("unable to add fise:selection-prefix to TextAnnotation {} "
                             + "because fise:start is not present",ta);
+                    } else if(start < 0){
+                        log.warn("fise:start {} of TextAnnotation {} < 0! "
+                                + "Will not transform this TextAnnotation", start, ta);
+                        start = 0;
                     }
                 } else {
                     start = null;
@@ -153,36 +161,57 @@ public class TextAnnotationsNewModelEngi
                     if(end == null){
                         log.debug("unable to add fise:selection-suffix to TextAnnotation {} "
                             + "because fise:end is not present",ta);
+                    } else if(end > text.length()) {
+                        log.warn("fise:end {} of TextAnnotation {} > as the content length {}! "
+                                + "Will not transform this TextAnnotation",
+                                end, ta, text.length());
+                        end = null;
+                    } else if(start != null && end < start){
+                        log.warn("fise:end {} < fise:start {} of TextAnnotation {}! "
+                                + "Will not transform this TextAnnotation",
+                                end, start, ta);
+                        end = null;
+                        start = null;
                     }
                 } else {
                     end = null;
                 }
-                if(end != null || start != null){
-                    prefixSuffixMap.put(ta, new Literal[]{
-                            start == null ? null : new PlainLiteralImpl(text.substring(
-                                Math.max(0,start-prefixSuffixSize), start), lang),
-                            end == null ? null : new PlainLiteralImpl(text.substring(
-                                end,Math.min(text.length(), end+prefixSuffixSize)),lang)
-                    });
+                if(!hasPrefix && start != null){
+                    addedTriples.add(new TripleImpl(ta, ENHANCER_SELECTION_PREFIX, 
+                            new PlainLiteralImpl(text.substring(Math.max(0,start-prefixSuffixSize), start), lang)));
+                }
+                if(!hasSuffix && end != null){
+                    addedTriples.add(new TripleImpl(ta, ENHANCER_SELECTION_SUFFIX,
+                            new PlainLiteralImpl(text.substring(end,Math.min(text.length(), end+prefixSuffixSize)),lang)));
+                }
+                if(!hasSelected && start != null && end != null){
+                    //This adds missing fise:selected or fise:head/fise:tail if the selected text is to long
+                    int length = end - start;
+                    if(length > 3*prefixSuffixSize){ //add prefix/suffix
+                        addedTriples.add(new TripleImpl(ta, ENHANCER_SELECTION_HEAD, 
+                                new PlainLiteralImpl(text.substring(start, start+prefixSuffixSize), lang)));
+                        addedTriples.add(new TripleImpl(ta, ENHANCER_SELECTION_TAIL,
+                                new PlainLiteralImpl(text.substring(end-prefixSuffixSize,end),lang)));
+                    } else { //add missing fise:selected
+                        String selection = text.substring(start, end);
+                        addedTriples.add(new TripleImpl(ta, ENHANCER_SELECTED_TEXT,
+                                new PlainLiteralImpl(selection,lang)));
+                        //check if we should also add an selection context
+                        if(!metadata.filter(ta, ENHANCER_SELECTION_CONTEXT, null).hasNext()){
+                            addedTriples.add(new TripleImpl(ta, ENHANCER_SELECTION_CONTEXT, 
+                                    new PlainLiteralImpl(EnhancementEngineHelper.getSelectionContext(text, selection, start),lang)));
+                        }
+                    }
                 }
             }
         } finally {
             contentItem.getLock().readLock().unlock();
         }
         //finally write the prefix/suffix triples within a write lock
-        if(!prefixSuffixMap.isEmpty()){
+        if(!addedTriples.isEmpty()){
             contentItem.getLock().writeLock().lock();
             try {
-                for(Entry<NonLiteral,Literal[]> entry : prefixSuffixMap.entrySet()){
-                    if(entry.getValue()[0] != null){
-                        metadata.add(new TripleImpl(entry.getKey(), 
-                            ENHANCER_SELECTION_PREFIX, entry.getValue()[0]));
-                    } //else prefix already present
-                    if(entry.getValue()[1] != null){
-                        metadata.add(new TripleImpl(entry.getKey(), 
-                            ENHANCER_SELECTION_SUFFIX, entry.getValue()[1]));
-                    } //else suffix already present
-                }
+                metadata.addAll(addedTriples);
             } finally {
                 contentItem.getLock().writeLock().unlock();
             }

Modified: stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/test/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/TextAnnotationNewModelEngineTest.java
URL: http://svn.apache.org/viewvc/stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/test/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/TextAnnotationNewModelEngineTest.java?rev=1704567&r1=1704566&r2=1704567&view=diff
==============================================================================
--- stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/test/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/TextAnnotationNewModelEngineTest.java (original)
+++ stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/test/java/org/apache/stanbol/enhancer/engines/textannotationnewmodel/impl/TextAnnotationNewModelEngineTest.java Tue Sep 22 10:41:10 2015
@@ -90,9 +90,11 @@ public class TextAnnotationNewModelEngin
         Assert.assertTrue(id instanceof UriRef);
         ciUri = (UriRef)id;
         //validate that the enhancements in the file are valid
-        EnhancementStructureHelper.validateAllTextAnnotations(
-            origEnhancements, SINGLE_SENTENCE, null,
-            false); //those do not yet contain fise:selection-prefix/suffix values
+        //NOTE: the input data are no longer fully valid to test some features of this engine
+        //      because of that this initial test is deactivated
+//        EnhancementStructureHelper.validateAllTextAnnotations(
+//            origEnhancements, SINGLE_SENTENCE, null,
+//            false); //those do not yet contain fise:selection-prefix/suffix values
 
         //init the engine
         engine = new TextAnnotationsNewModelEngine();

Modified: stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/test/resources/enhancement-results.rdf
URL: http://svn.apache.org/viewvc/stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/test/resources/enhancement-results.rdf?rev=1704567&r1=1704566&r2=1704567&view=diff
==============================================================================
--- stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/test/resources/enhancement-results.rdf (original)
+++ stanbol/branches/release-0.12/enhancement-engines/textannotationnewmodel/src/test/resources/enhancement-results.rdf Tue Sep 22 10:41:10 2015
@@ -67,20 +67,7 @@
     <j.8:long rdf:datatype="http://www.w3.org/2001/XMLSchema#double">174.0</j.8:long>
     <j.8:long rdf:datatype="http://www.w3.org/2001/XMLSchema#double">174.45</j.8:long>
     <rdfs:comment xml:lang="en">New Zealand is an island country located in the southwestern Pacific Ocean. The country geographically comprises two main landmasses ‒ that of the North and South Islands ‒ as well as numerous smaller islands. New Zealand is situated some 1,500 kilometres (900 mi) east of Australia across the Tasman Sea and roughly 1,000 kilometres (600 mi) south of the Pacific island nations of New Caledonia, Fiji, and Tonga.</rdfs:comment>
-    <rdfs:comment xml:lang="he">ניו זילנד היא מדינת איים בדרום-מערב האוקיינוס השקט המורכבת משני איים גדולים הנקראים האי הצפוני והאי הדרומי, וכן מספר איים קטנים יותר. ניו זילנד ידועה כמדינה מבודדת - היא רחוקה כ-2,000 קילומטרים מאוסטרליה, כשביניהן חוצץ ים טסמן. שכנותיה הקרובות ביותר מצפון הן קלדוניה החדשה, פיג'י וטונג×
 ”. בניו זילנד חיים כארבעה מיליון תושבים על שטח של 268,680 קמ"ר. שפתה הרשמית בפועל היא אנגלית. המתיישבים הראשונים בה היו המאורים, אנשים ממוצא פולינזי כהה-עור.</rdfs:comment>
-    <rdfs:comment xml:lang="ja">ニュージーランド(英語: New Zealand)は、南西太平洋のポリネシアに位置する立憲君主制国家。島国であり、2つの主要な島と、多くの小さな島々からなる。北西に2,000km離れてオーストラリア大陸と対する。南方の南極大陸とは2,600km離れている。北はトンガ、ニューカレドニア、フィジーがある。イギリス連邦加盟国であり、英連邦王国の一国である。</rdfs:comment>
-    <rdfs:comment xml:lang="zh">紐西蘭(英语:New Zealand),舊譯鳥施仑;毛利語音譯「奧特亞羅瓦」(Aotearoa,意為「長白雲之鄉」)、又譯纽西兰,位於太平洋西南部,是個島嶼國家,相距澳大利亞約1,600海里。紐西蘭兩大島嶼以庫克海峽分隔,南岛鄰近南極洲,北島與斐濟及湯加相望。紐西蘭人自稱 Kiwi。</rdfs:comment>
-    <rdfs:comment xml:lang="da">New Zealand er en stat beliggende i Stillehavet på den sydlige halvkugle, opkaldt efter den nederlandske provins Zeeland. Polynesiske nybyggere ankom til New Zealand omkring 1280 og etablerede den maorianske kultur. Det Maorianske navn "Aotearoa" bliver oversat med "Land of the long white cloud" ("Den lange hvide skys land"). Dette navn blev givet pga. den lange hvide sky polyneserne så i horisonten ved NZ, da de nærmede sig.</rdfs:comment>
-    <rdfs:comment xml:lang="ru">Но́вая Зела́ндия — государство в юго-западной части Тихого океана, расположенное на двух крупных островах и большом количестве (приблизительно 700) прилегающих более мелких островов. Столица страны — город Веллингтон. Население Новой Зеландии составляет около 4 377 000 человек. ГÐ�
 �сударство построено на принципах конституционной монархии и парламентской демократии и входит в число развитых стран мира.</rdfs:comment>
     <rdfs:comment xml:lang="de">Neuseeland ist ein geographisch isolierter Inselstaat im südlichen Pazifik. Er besteht aus einer Nord- und einer Südinsel sowie zahlreichen kleineren Inseln. Die nächstgelegenen Staaten befinden sich im Westen mit Australien (die Westküsten der beiden Hauptinseln Neuseelands sind zwischen 1530 km und rund 2100 km von der Ostküste Australiens und Tasmaniens entfernt), im Norden mit den Inselstaaten Neukaledonien, Tonga, Fidschi und als Kontinent die Antarktis im Süden.</rdfs:comment>
-    <rdfs:comment xml:lang="tr">Yeni Zelanda, Güney Büyük Okyanus'da bir ada ülkesidir. Güney Yarımkürede, Okyanusya'daki Güney Pasifik adaları arasında, Avustralya'nın yaklaşık 1.200 mil (2.000 km) güney doğusunda yer almaktadır. Başlıca iki büyük (North Island ve South Island) ve birçok küçük adadan oluşur. Yeni Zelanda'nın başkenti Wellington'dur. Üzeri kar kaplı dağ manzaraları ile bilinen bir ülkedir. En büyük ve en kozmopolit şehri Auckland'dır.</rdfs:comment>
-    <rdfs:comment xml:lang="pt">Nova Zelândia é um país insular no sudoeste do Oceano Pacífico formado por duas massas de terra principais e por numerosas ilhas menores, sendo as mais notáveis as ilhas Stewart e Chatham. O nome indígena na língua maori para a Nova Zelândia é Aotearoa, normalmente traduzido como "A Terra da Grande Nuvem Branca". Os domínios da Nova Zelândia também incluem as Ilhas Cook e Niue (que se auto-governam mas em associação livre); Tokelau; e a Dependência de Ross.</rdfs:comment>
-    <rdfs:comment xml:lang="nl">Nieuw-Zeeland is een land in het zuidwesten van de Grote Oceaan. Het bestaat uit twee grote eilanden en een aantal kleinere eilanden. Nieuw-Zeeland is een constitutionele monarchie, lid van het Gemenebest van Naties (het vroegere Britse Gemenebest). Daarmee is Elizabeth II het staatshoofd. Zij wordt vertegenwoordigd door een gouverneur-generaal.</rdfs:comment>
-    <rdfs:comment xml:lang="es">Nueva Zelanda o Nueva Zelandia es un país insular de Oceanía que se localiza en el suroeste del Océano Pacífico formado por dos grandes islas: la Isla Norte y la Isla Sur, junto a otras islas menores, destacándose entre ellas la Isla Stewart y las Islas Chatham. El Reino de Nueva Zelanda también incluye a las Islas Cook y Niue (Estados autónomos en libre asociación); Tokelau y la Dependencia Ross (reclamación territorial en la Antártida).</rdfs:comment>
-    <rdfs:comment xml:lang="it">La Nuova Zelanda è uno stato insulare dell'Oceania, posto nell'oceano Pacifico meridionale. Lo Stato è formato da due isole principali, l'Isola del Nord e l'Isola del Sud, e da numerose isole minori come l'isola di Stewart e le isole Chatham. Il mar di Tasman la separa dall'Australia, situata circa 2000 km a nord-ovest. Aotearoa è l'antico nome dato dal popolo Maori all'odierna terra della Nuova Zelanda.</rdfs:comment>
-    <rdfs:comment xml:lang="fr">La Nouvelle-Zélande, en anglais New Zealand, en maori de Nouvelle-Zélande Aotearoa, est un pays de l'Océanie, au sud-ouest de l'océan Pacifique, constitué de deux îles principales, et de nombreuses îles beaucoup plus petites, notamment l'île Stewart et les îles Chatham. Située à environ 2 000 km de l'Australie dont elle est séparée par la mer de Tasman, la Nouvelle-Zélande est très isolée géographiquement.</rdfs:comment>
-    <rdfs:comment xml:lang="sv">Nya Zeeland är en östat i sydvästra Stilla havet som består av två landmassor och ett flertal mindre öar. Landet ligger cirka 1500 km öster om Australien över Tasmanska havet och ungefär 1000 km söder om Stillahavsöarna Nya Kaledonien, Fiji och Tonga. På grund av sin avlägsenhet var det en av de sista länderna som beboddes av människor.</rdfs:comment>
-    <rdfs:comment xml:lang="ar">نيوزيلندا هي دولة جزيرة في جنوب غرب المحيط الهادئ وتتألّف من جزيرتين، وعدد من الجزر الصغيرة، أبرزها جزيرة ستيوارت/راكيورا وجزر تشاتام. الاسم الأصلي لنيوزيلندا بلغة الماوري هو أوتياروا والتي تعني أرض السحابة البيضاء الطويلة. تضم نيوزيلندا أيضاً جزر كوك ونييوي (ذاتية الحكم ولكÙ�
 � بارتباط حر) وتوكلو وتابعية روس (مطالب نيوزيلندا الإقليمية في القارة القطبية الجنوبية).</rdfs:comment>
   </rdf:Description>
   <rdf:Description rdf:about="urn:enhancement-93c701ad-fb39-5d29-a621-a57453b07017">
     <j.7:extracted-from rdf:resource="urn:content-item-sha1-fff85e4522cb26954c406ae21d6bdfef7c0c4514"/>
@@ -169,11 +156,13 @@
     <j.7:start rdf:datatype="http://www.w3.org/2001/XMLSchema#int">72</j.7:start>
   </rdf:Description>
   <rdf:Description rdf:about="urn:enhancement-d8823eed-7d8c-01c6-258d-97d8e03f3f02">
-    <j.7:selection-context xml:lang="en">Dr Patrick Marshall (1869 - November 1950) was a geologist who lived in New Zealand and worked at the University of Otago.</j.7:selection-context>
     <j.2:type rdf:resource="http://dbpedia.org/ontology/Organisation"/>
     <j.7:extracted-from rdf:resource="urn:content-item-sha1-fff85e4522cb26954c406ae21d6bdfef7c0c4514"/>
     <j.7:confidence rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0.6517408806512694</j.7:confidence>
+    <!-- to test if the TextAnnotationNewModel engine does add selected-texts if necessary -
     <j.7:selected-text xml:lang="en">University of Otago</j.7:selected-text>
+    <j.7:selection-context xml:lang="en">Dr Patrick Marshall (1869 - November 1950) was a geologist who lived in New Zealand and worked at the University of Otago.</j.7:selection-context>
+    -->
     <rdf:type rdf:resource="http://fise.iks-project.eu/ontology/Enhancement"/>
     <rdf:type rdf:resource="http://fise.iks-project.eu/ontology/TextAnnotation"/>
     <j.7:end rdf:datatype="http://www.w3.org/2001/XMLSchema#int">121</j.7:end>
@@ -279,9 +268,7 @@
     <j.8:lat rdf:datatype="http://www.w3.org/2001/XMLSchema#double">-45.865555</j.8:lat>
     <j.0:score rdf:datatype="http://www.w3.org/2001/XMLSchema#float">14.382699</j.0:score>
     <j.8:long rdf:datatype="http://www.w3.org/2001/XMLSchema#double">170.51389</j.8:long>
-    <rdfs:comment xml:lang="ja">オタゴ大学(—だいがく、英語: University of Otago 、マオリ語: Te Whare Wānanga o Otāgo)は、ニュージーランド南島ダニーデンに所在する大学。</rdfs:comment>
     <rdfs:comment xml:lang="de">Die University of Otago, (Te Whare Wananga o Otago in maori) ist die älteste Universität Neuseelands und befindet sich in Dunedin, der Hauptstadt der Region Otago. Ihr Wahlspruch: "sapere aude" ziert das Wappen und Symbol der Universität.</rdfs:comment>
-    <rdfs:comment xml:lang="zh">奥塔哥大学,位于新西兰南岛的但尼丁市。成立于1869年,是新西兰最古老的大学。奥塔哥大学被评为2007年新西兰最好的大学。奥塔哥大学有全新西兰第一所医学院和唯一的牙医学校,是南岛的医学研究中心,也是第一个将试管婴儿付诸实际的医学中心。</rdfs:comment>
     <rdfs:comment xml:lang="en">The University of Otago (Māori: 'Te Whare Wānanga o Otāgo') in Dunedin is New Zealand's oldest university. It had over 22,000 students enrolled during 2010. The university has New Zealand's highest average research quality and in New Zealand is second only to the University of Auckland in the number of A rated academic researchers it employs. It topped the New Zealand Performance Based Research Fund evaluation in 2006.</rdfs:comment>
     <rdfs:comment xml:lang="fr">L'université d'Otago (en anglais University of Otago, en maori Te Whare Wānanga o Otāgo) est la plus ancienne université de Nouvelle-Zélande. Située à Dunedin, sur l'île du Sud, elle accueille plus de étudiants. L'université est connue à travers le pays pour son style de vie étudiante unique et plus particulièrement sa culture de colocation avec des étudiants partageant des maisons à l'apparence "semi-délabrée" ayant chacune un nom et une vie domestique propre.</rdfs:comment>
     <rdfs:comment xml:lang="pt">A Universidade de Otago em Dunedin é a universidade da Nova Zelândia com mais de 20.000 estudantes inscritos durante o ano de 2006. Foi fundada em 1869 por um comitê que incluía Thomas Burns. A universidade possui a maior qualidade média de pesquisa da Nova Zelândia e é a segunda universidade que emprega mais pesquisadores acadêmicos de nota "A" do país, ficando logo atrás da Universidade de Auckland.</rdfs:comment>
@@ -299,4 +286,16 @@
     <j.2:creator rdf:datatype="http://www.w3.org/2001/XMLSchema#string">org.apache.stanbol.enhancer.engines.opennlp.impl.NamedEntityExtractionEnhancementEngine</j.2:creator>
     <j.7:start rdf:datatype="http://www.w3.org/2001/XMLSchema#int">3</j.7:start>
   </rdf:Description>
+  <!-- added a sentiment annotation for testing fise:selection-head and fise:selection-tail -->
+  <rdf:Description rdf:about="urn:enhancement-ea3ddffc-1534-038a-9b93-075e9d2fc446">
+    <j.7:end rdf:datatype="http://www.w3.org/2001/XMLSchema#int">122</j.7:end>
+    <j.7:extracted-from rdf:resource="urn:content-item-sha1-fff85e4522cb26954c406ae21d6bdfef7c0c4514"/>
+    <j.7:sentiment rdf:datatype="http://www.w3.org/2001/XMLSchema#double">-0.15883773909271365</j.7:sentiment>
+    <j.7:start rdf:datatype="http://www.w3.org/2001/XMLSchema#int">0</j.7:start>
+    <j.2:created rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2015-09-22T09:03:22.393Z</j.2:created>
+    <j.2:creator rdf:datatype="http://www.w3.org/2001/XMLSchema#string">org.apache.stanbol.enhancer.engines.test.SomeSentimentEngine</j.2:creator>
+    <j.2:type rdf:resource="http://fise.iks-project.eu/ontology/Sentiment"/>
+    <rdf:type rdf:resource="http://fise.iks-project.eu/ontology/Enhancement"/>
+    <rdf:type rdf:resource="http://fise.iks-project.eu/ontology/TextAnnotation"/>
+  </rdf:Description>
 </rdf:RDF>
\ No newline at end of file