[Corpusreader-svn] SF.net SVN: corpusreader:[208] trunk/corpusreader/src
Status: Alpha
Brought to you by:
sylvainloiseau
|
From: <syl...@us...> - 2008-12-20 17:24:14
|
Revision: 208
http://corpusreader.svn.sourceforge.net/corpusreader/?rev=208&view=rev
Author: sylvainloiseau
Date: 2008-12-20 17:24:08 +0000 (Sat, 20 Dec 2008)
Log Message:
-----------
classes for handling syntex files + various utilities
Modified Paths:
--------------
trunk/corpusreader/src/main/java/tei/cr/Version.java
trunk/corpusreader/src/main/java/tei/cr/filters/MarkBalanced.java
trunk/corpusreader/src/main/java/tei/cr/utils/sax/StAX2SAXEvent.java
trunk/corpusreader/src/test/java/tei/cr/teiScheme/TestAGG.java
Added Paths:
-----------
trunk/corpusreader/src/main/java/tei/cr/utils/FileUtils.java
trunk/corpusreader/src/main/java/tei/cr/utils/syntex/
trunk/corpusreader/src/main/java/tei/cr/utils/syntex/SyntexBuffer.java
trunk/corpusreader/src/main/java/tei/cr/utils/syntex/SyntexVocabulary.java
trunk/corpusreader/src/test/java/tei/cr/utils/syntex/
trunk/corpusreader/src/test/java/tei/cr/utils/syntex/TestSyntexBuffer.java
trunk/corpusreader/src/test/resources/syntex.xml
Modified: trunk/corpusreader/src/main/java/tei/cr/Version.java
===================================================================
--- trunk/corpusreader/src/main/java/tei/cr/Version.java 2008-12-15 21:41:48 UTC (rev 207)
+++ trunk/corpusreader/src/main/java/tei/cr/Version.java 2008-12-20 17:24:08 UTC (rev 208)
@@ -11,7 +11,7 @@
// don't change this lines; regexp are used during build for updating the fields.
private static final String VERSION = "0.1"; // "8.2";
- private static final String RELEASE_DATE = "20081120-1938";
+ private static final String RELEASE_DATE = "20081219-1918";
private static final String PRODUCT_NAME = "CorpusReader";
private Version() {
Modified: trunk/corpusreader/src/main/java/tei/cr/filters/MarkBalanced.java
===================================================================
--- trunk/corpusreader/src/main/java/tei/cr/filters/MarkBalanced.java 2008-12-15 21:41:48 UTC (rev 207)
+++ trunk/corpusreader/src/main/java/tei/cr/filters/MarkBalanced.java 2008-12-20 17:24:08 UTC (rev 208)
@@ -25,7 +25,7 @@
// ************************************** //
private Stack openedElement = new Stack();
- private char[] codePoint = { '(', ')', '\xAB', '\xBB' };
+ private char[] codePoint = { '(', ')', '', '' };
private boolean[] isOpening = { true, false, true, false };
private String[] markup = { "parenthesis", "PRE laquo POST raquo" };
Added: trunk/corpusreader/src/main/java/tei/cr/utils/FileUtils.java
===================================================================
--- trunk/corpusreader/src/main/java/tei/cr/utils/FileUtils.java (rev 0)
+++ trunk/corpusreader/src/main/java/tei/cr/utils/FileUtils.java 2008-12-20 17:24:08 UTC (rev 208)
@@ -0,0 +1,28 @@
+package tei.cr.utils;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+final public class FileUtils {
+
+ public final static List<File> getFilesOfDirRec (String dirName) {
+ List<File> list = new ArrayList<File>();
+ File dir = new File(dirName);
+ if (!dir.isDirectory()) {
+ throw new IllegalArgumentException("\"" + dirName + "\" is not a directory.");
+ }
+ String[] files = dir.list();
+ for (int i = 0; i < files.length; i++) {
+ String fileName = dirName + "/" + files[i];
+ File f = new File(fileName);
+ if (f.isDirectory()) {
+ list.addAll(getFilesOfDirRec(fileName));
+ } else if (f.isFile()) {
+ list.add(f);
+ }
+ }
+ return list;
+ }
+
+}
Modified: trunk/corpusreader/src/main/java/tei/cr/utils/sax/StAX2SAXEvent.java
===================================================================
--- trunk/corpusreader/src/main/java/tei/cr/utils/sax/StAX2SAXEvent.java 2008-12-15 21:41:48 UTC (rev 207)
+++ trunk/corpusreader/src/main/java/tei/cr/utils/sax/StAX2SAXEvent.java 2008-12-20 17:24:08 UTC (rev 208)
@@ -6,6 +6,7 @@
import org.xml.sax.helpers.AttributesImpl;
import tei.cr.utils.xml.QNameUtils;
import java.util.Iterator;
+import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.events.Attribute;
@@ -17,6 +18,13 @@
*/
final public class StAX2SAXEvent {
+ public static void toContentHandler(List<XMLEvent> events, ContentHandler target)
+ throws SAXException {
+ for (int i = 0; i < events.size(); i++) {
+ toContentHandler(events.get(i), target);
+ }
+ }
+
public static void toContentHandler(XMLEvent event, ContentHandler target)
throws SAXException {
switch (event.getEventType()) {
@@ -87,7 +95,7 @@
case XMLStreamConstants.SPACE:
- // ??? diff\xE9rent de "characters.isSpace" ?
+ // ??? diffrent de "characters.isSpace" ?
break;
case XMLStreamConstants.START_DOCUMENT:
Added: trunk/corpusreader/src/main/java/tei/cr/utils/syntex/SyntexBuffer.java
===================================================================
--- trunk/corpusreader/src/main/java/tei/cr/utils/syntex/SyntexBuffer.java (rev 0)
+++ trunk/corpusreader/src/main/java/tei/cr/utils/syntex/SyntexBuffer.java 2008-12-20 17:24:08 UTC (rev 208)
@@ -0,0 +1,129 @@
+package tei.cr.utils.syntex;
+
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.NoSuchElementException;
+import javax.xml.stream.events.Attribute;
+import javax.xml.stream.events.EndElement;
+import javax.xml.stream.events.StartElement;
+import javax.xml.stream.events.XMLEvent;
+import tei.cr.utils.stax.StAXBuffer;
+import tei.cr.utils.stax.StAXBufferImpl;
+
+public class SyntexBuffer {
+
+ private final StAXBuffer syntex;
+
+ public SyntexBuffer(String uri) throws FileNotFoundException {
+ syntex = new StAXBufferImpl(uri);
+ }
+
+ public SyntexSentenceIterator getSentenceIterator() {
+ return new SyntexSentenceIterator(syntex);
+ }
+
+ public class SyntexSentenceIterator {
+
+ private int currentEventIndex = 0;
+ private List<XMLEvent> events;
+
+ public SyntexSentenceIterator(StAXBuffer syntex) {
+ events = syntex.getXMLEvents();
+ }
+
+ /**
+ * Return the complete (<code>qualified</code>) id of the next sentence.
+ *
+ * @return the complete id.
+ * @throws NoSuchElementException if there is no more sentence.
+ */
+ public String getNextSentenceQualifiedId() {
+ int index = getNextSentenceIndex();
+ if (index == -1) {
+ throw new NoSuchElementException("No more sentence");
+ }
+ Attribute a = events.get(index).asStartElement().getAttributeByName(SyntexVocabulary.SEQ_ELEMENT_ID_ATTRIBUTE);
+ return a.getValue();
+ }
+
+ /**
+ * Return the document part of the next sentence id.
+ *
+ * @return the complete id.
+ * @throws NoSuchElementException if there is no more sentence.
+ */
+ public String getNextSentenceDocumentId() {
+ String qualifiedId = getNextSentenceQualifiedId();
+ return getDocumentPart(qualifiedId);
+ }
+
+ /**
+ * Return the next sentence
+ *
+ * @return a <code>List</code> of <code>XMLEvent</code> representing a complete sentence analysis by syntex.
+ *
+ * @throws NoSuchElementException if there is no more sentence.
+ */
+ public List<XMLEvent> getNextSentence() {
+ List<XMLEvent> sentence = new ArrayList<XMLEvent>();
+ int start = getNextSentenceIndex();
+ if (start == -1) {
+ throw new NoSuchElementException("No more sentence");
+ }
+ int end = getNextSentenceEndIndex(start);
+ if (end == -1) {
+ throw new IllegalStateException("No EndElement for this sentence. Bug somewhere.");
+ }
+ List<XMLEvent> subList = events.subList(start, end);
+ sentence.addAll(subList);
+ currentEventIndex = end;
+ return sentence;
+ }
+
+ public boolean hasNextSentence() {
+ int index = getNextSentenceIndex();
+ return index != -1;
+ }
+
+ /**
+ * Get the index of the StartElement of the next sentence.
+ * @return
+ */
+ protected int getNextSentenceIndex() {
+ for (int i = currentEventIndex; i+1 < events.size(); i++) {
+ XMLEvent e = events.get(i);
+ if (e.isStartElement()) {
+ StartElement se = e.asStartElement();
+ if (se.getName().getLocalPart().equals(SyntexVocabulary.SENTENCE)) {
+ return i;
+ }
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * Get the index of the EndElement of the next sentence.
+ * @return
+ */
+ protected int getNextSentenceEndIndex(int nextSentenceStartIndex) {
+ int end = nextSentenceStartIndex + 1;
+ for (; end < events.size(); end++) {
+ XMLEvent e = events.get(end);
+ if (e.isEndElement()) {
+ EndElement se = e.asEndElement();
+ if (se.getName().getLocalPart().equals(SyntexVocabulary.SENTENCE)) {
+ return end;
+ }
+ }
+ }
+ return -1;
+ }
+
+ protected String getDocumentPart(String qualifiedId) {
+ return qualifiedId.substring(0, qualifiedId.lastIndexOf("_"));
+ }
+
+ }
+}
Added: trunk/corpusreader/src/main/java/tei/cr/utils/syntex/SyntexVocabulary.java
===================================================================
--- trunk/corpusreader/src/main/java/tei/cr/utils/syntex/SyntexVocabulary.java (rev 0)
+++ trunk/corpusreader/src/main/java/tei/cr/utils/syntex/SyntexVocabulary.java 2008-12-20 17:24:08 UTC (rev 208)
@@ -0,0 +1,13 @@
+package tei.cr.utils.syntex;
+
+import javax.xml.namespace.QName;
+
+public class SyntexVocabulary {
+
+ public static final String SENTENCE = "SEQ";
+ public final static QName SEQ_ELEMENT_ID_ATTRIBUTE;
+ static {
+ SEQ_ELEMENT_ID_ATTRIBUTE = new QName("", "id");
+ }
+
+}
Modified: trunk/corpusreader/src/test/java/tei/cr/teiScheme/TestAGG.java
===================================================================
--- trunk/corpusreader/src/test/java/tei/cr/teiScheme/TestAGG.java 2008-12-15 21:41:48 UTC (rev 207)
+++ trunk/corpusreader/src/test/java/tei/cr/teiScheme/TestAGG.java 2008-12-20 17:24:08 UTC (rev 208)
@@ -23,13 +23,13 @@
File f = new File(".");
path = f.getAbsolutePath() + "/src/main/odd/ggx";
}
-
+
protected void setUp() {
}
protected void tearDown() throws Exception {
}
-
+
public void testModules() {
BaseFactory bf = BaseFactory.theFactory();
GraGra graGra = bf.createGraGra();
Added: trunk/corpusreader/src/test/java/tei/cr/utils/syntex/TestSyntexBuffer.java
===================================================================
--- trunk/corpusreader/src/test/java/tei/cr/utils/syntex/TestSyntexBuffer.java (rev 0)
+++ trunk/corpusreader/src/test/java/tei/cr/utils/syntex/TestSyntexBuffer.java 2008-12-20 17:24:08 UTC (rev 208)
@@ -0,0 +1,68 @@
+package tei.cr.utils.syntex;
+
+import java.io.FileNotFoundException;
+import java.util.List;
+
+import javax.xml.stream.events.XMLEvent;
+
+import tei.cr.utils.syntex.SyntexBuffer.SyntexSentenceIterator;
+import junit.framework.TestCase;
+
+public class TestSyntexBuffer extends TestCase {
+
+ SyntexBuffer syntexBuffer;
+
+ protected void setUp() {
+ try {
+ syntexBuffer = new SyntexBuffer(System.getProperty("user.dir") + "/src/test/resources/syntex.xml");
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
+ }
+
+ protected void tearDown() {
+ syntexBuffer = null;
+ }
+
+ public void testGetSentenceIterator() {
+ syntexBuffer.getSentenceIterator();
+ }
+
+ public void testNextSentenceIndex() {
+ SyntexSentenceIterator it = syntexBuffer.getSentenceIterator();
+ assertEquals(3, it.getNextSentenceIndex());
+ }
+
+ public void testNextSentenceEndIndex() {
+ SyntexSentenceIterator it = syntexBuffer.getSentenceIterator();
+ int start = it.getNextSentenceIndex();
+ assertEquals(464, it.getNextSentenceEndIndex(start));
+ }
+
+ public void testNextSentenceDocumentId() {
+ SyntexSentenceIterator it = syntexBuffer.getSentenceIterator();
+ assertEquals("300001_1782665", it.getNextSentenceDocumentId());
+ }
+
+ public void testNextSentenceQualifiedId() {
+ SyntexSentenceIterator it = syntexBuffer.getSentenceIterator();
+ assertEquals("300001_1782665_1", it.getNextSentenceQualifiedId());
+ }
+
+ public void testHasSentence() {
+ SyntexSentenceIterator it = syntexBuffer.getSentenceIterator();
+ assertTrue(it.hasNextSentence());
+// List<XMLEvent> sent1 = it.getNextSentence();
+// System.out.println(sent1);
+ assertTrue(it.hasNextSentence());
+// List<XMLEvent> sent2 = it.getNextSentence();
+// System.out.println(sent2);
+ assertFalse(it.hasNextSentence());
+ }
+
+ public void testGetDocumentPart() {
+ SyntexSentenceIterator it = syntexBuffer.getSentenceIterator();
+ String doc = it.getDocumentPart("doc_sentence");
+ assertEquals("doc", doc);
+ }
+}
Added: trunk/corpusreader/src/test/resources/syntex.xml
===================================================================
--- trunk/corpusreader/src/test/resources/syntex.xml (rev 0)
+++ trunk/corpusreader/src/test/resources/syntex.xml 2008-12-20 17:24:08 UTC (rev 208)
@@ -0,0 +1,332 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<syntex>
+ <SEQ id="300001_1782665_1">
+ <TXT>Apr\xE8s l' op\xE9ration " Margarita " lanc\xE9e lundi matin 27 juin dans la r\xE9gion parisienne , \xE0 Marseille , Limoges et Montpellier , Bordeaux et Lille , contre les int\xE9r\xEAts strat\xE9giques et financiers des cartels colombiens en France ( " le Monde " du 28 juin ) , cinquante-sept personnes ont \xE9t\xE9 plac\xE9es en garde \xE0 vue , dont un quart de Colombiens install\xE9s dans l' Hexagone .</TXT>
+ <tokens>
+ <t i="1" l="apr\xE8s" f="Apr\xE8s" c="Prep" p="O"/>
+ <t i="2" l="le" f="l'" c="Det??" p="D"/>
+ <t i="3" l="op\xE9ration" f="op\xE9ration" c="Nom?S" p="N"/>
+ <t i="4" l=""" f=""" c="Typo" p="T"/>
+ <t i="5" l="Margarita" f="Margarita" c="NomPrXXInc" p="NP"/>
+ <t i="6" l=""" f=""" c="Typo" p="T"/>
+ <t i="7" l="lanc\xE9e" f="lanc\xE9e" c="Nom?S" p="N"/>
+ <t i="8" l="lundi" f="lundi" c="NomXXDate" p="N"/>
+ <t i="9" l="matin" f="matin" c="NomXXDate" p="N"/>
+ <t i="10" l="27 juin" f="27 juin" c="NomXXDate" p="N"/>
+ <t i="11" l="dans" f="dans" c="Prep" p="O"/>
+ <t i="12" l="le" f="la" c="Det??" p="D"/>
+ <t i="13" l="r\xE9gion" f="r\xE9gion" c="NomFS" p="N"/>
+ <t i="14" l="parisien" f="parisienne" c="Adj??" p="A"/>
+ <t i="15" l="," f="," c="Typo" p="T"/>
+ <t i="16" l="\xE0" f="\xE0" c="Prep" p="O"/>
+ <t i="17" l="Marseille" f="Marseille" c="NomPr" p="NP"/>
+ <t i="18" l="," f="," c="TypoCoordNomPr" p="T"/>
+ <t i="19" l="Limoges" f="Limoges" c="NomPr" p="NP"/>
+ <t i="20" l="et" f="et" c="CCoordNomPr" p="Cc"/>
+ <t i="21" l="Montpellier" f="Montpellier" c="NomPr" p="NP"/>
+ <t i="22" l="," f="," c="TypoCoordNomPr" p="T"/>
+ <t i="23" l="Bordeaux" f="Bordeaux" c="NomPr" p="NP"/>
+ <t i="24" l="et" f="et" c="CCoordNomPr" p="Cc"/>
+ <t i="25" l="Lille" f="Lille" c="NomPr" p="NP"/>
+ <t i="26" l="," f="," c="Typo" p="T"/>
+ <t i="27" l="contre" f="contre" c="Prep" p="O"/>
+ <t i="28" l="le" f="les" c="Det??" p="D"/>
+ <t i="29" l="int\xE9r\xEAt" f="int\xE9r\xEAts" c="Nom?P" p="N"/>
+ <t i="30" l="strat\xE9gique" f="strat\xE9giques" c="Adj??" p="A"/>
+ <t i="31" l="et" f="et" c="CCoordAdj" p="Cc"/>
+ <t i="32" l="financier" f="financiers" c="Adj??" p="A"/>
+ <t i="33" l="de" f="des" c="Prep" p="O"/>
+ <t i="34" l="cartel" f="cartels" c="Nom?P" p="N"/>
+ <t i="35" l="colombien" f="colombiens" c="NomInc" p="N"/>
+ <t i="36" l="en" f="en" c="Prep" p="O"/>
+ <t i="37" l="France" f="France" c="NomPr" p="NP"/>
+ <t i="38" l="(" f="(" c="Typo" p="T"/>
+ <t i="39" l=""" f=""" c="Typo" p="T"/>
+ <t i="40" l="le" f="le" c="Det??" p="D"/>
+ <t i="41" l="monde" f="Monde" c="NomMS" p="N"/>
+ <t i="42" l=""" f=""" c="Typo" p="T"/>
+ <t i="43" l="de" f="du" c="PrepDet" p="O"/>
+ <t i="44" l="28 juin" f="28 juin" c="NomXXDate" p="N"/>
+ <t i="45" l=")" f=")" c="Typo" p="T"/>
+ <t i="46" l="," f="," c="Typo" p="T"/>
+ <t i="47" l="cinquante-sept" f="cinquante-sept" c="Adj?P" p="A"/>
+ <t i="48" l="personne" f="personnes" c="Nom?P" p="N"/>
+ <t i="49" l="avoir" f="ont" c="VCONJP" p="V"/>
+ <t i="50" l="\xEAtre" f="\xE9t\xE9" c="PpaMSp" p="V"/>
+ <t i="51" l="placer" f="plac\xE9es" c="PpaFP" p="V"/>
+ <t i="52" l="en" f="en" c="Prep" p="O"/>
+ <t i="53" l="garde" f="garde" c="Nom?S" p="N"/>
+ <t i="54" l="\xE0 vue" f="\xE0 vue" c="AdvGP" p="R"/>
+ <t i="55" l="," f="," c="Typo" p="T"/>
+ <t i="56" l="dont" f="dont" c="ProRel" p="P"/>
+ <t i="57" l="un" f="un" c="Det??" p="D"/>
+ <t i="58" l="quart" f="quart" c="NomMS" p="N"/>
+ <t i="59" l="de" f="de" c="Prep" p="O"/>
+ <t i="60" l="Colombien" f="Colombiens" c="NomPrXXInc" p="NP"/>
+ <t i="61" l="installer" f="install\xE9s" c="PpaMP" p="V"/>
+ <t i="62" l="dans" f="dans" c="Prep" p="O"/>
+ <t i="63" l="le" f="l'" c="Det??" p="D"/>
+ <t i="64" l="hexagone" f="Hexagone" c="Nom?S" p="N"/>
+ <t i="65" l="." f="." c="Typo" p="T"/>
+ </tokens>
+ <dependances>
+ <g r="NOMPREP" s="1" c="3"/>
+ <d r="DET" s="2" c="3"/>
+ <g r="DET" s="3" c="2"/>
+ <g r="EPI" s="3" c="5"/>
+ <d r="NOMPREP" s="3" c="1"/>
+ <d r="EPI" s="5" c="3"/>
+ <g r="EPI" s="7" c="8"/>
+ <g r="PREP" s="7" c="11"/>
+ <g r="EPI" s="8" c="9"/>
+ <d r="EPI" s="8" c="7"/>
+ <g r="EPI" s="9" c="10"/>
+ <d r="EPI" s="9" c="8"/>
+ <d r="EPI" s="10" c="9"/>
+ <g r="NOMPREP" s="11" c="13"/>
+ <d r="PREP" s="11" c="7"/>
+ <d r="DET" s="12" c="13"/>
+ <g r="DET" s="13" c="12"/>
+ <g r="ADJ" s="13" c="14"/>
+ <d r="NOMPREP" s="13" c="11"/>
+ <d r="ADJ" s="14" c="13"/>
+ <g r="NOMPREP" s="16" c="20"/>
+ <d r="CC" s="17" c="20"/>
+ <d r="CC" s="19" c="20"/>
+ <g r="CC" s="20" c="17"/>
+ <g r="CC" s="20" c="19"/>
+ <g r="CC" s="20" c="24"/>
+ <d r="NOMPREP" s="20" c="16"/>
+ <d r="CC" s="21" c="24"/>
+ <d r="CC" s="23" c="24"/>
+ <g r="CC" s="24" c="21"/>
+ <g r="CC" s="24" c="23"/>
+ <g r="CC" s="24" c="25"/>
+ <d r="CC" s="24" c="20"/>
+ <d r="CC" s="25" c="24"/>
+ <g r="NOMPREP" s="27" c="29"/>
+ <d r="DET" s="28" c="29"/>
+ <g r="DET" s="29" c="28"/>
+ <g r="ADJ" s="29" c="31"/>
+ <g r="PREP" s="29" c="33"/>
+ <g r="PREP" s="29" c="36"/>
+ <d r="NOMPREP" s="29" c="27"/>
+ <d r="CC" s="30" c="31"/>
+ <g r="CC" s="31" c="30"/>
+ <g r="CC" s="31" c="32"/>
+ <d r="ADJ" s="31" c="29"/>
+ <d r="CC" s="32" c="31"/>
+ <g r="NOMPREP" s="33" c="34"/>
+ <d r="PREP" s="33" c="29"/>
+ <g r="EPI" s="34" c="35"/>
+ <d r="NOMPREP" s="34" c="33"/>
+ <d r="EPI" s="35" c="34"/>
+ <g r="NOMPREP" s="36" c="37"/>
+ <d r="PREP" s="36" c="29"/>
+ <d r="NOMPREP" s="37" c="36"/>
+ <g r="PAR" s="38" c="45"/>
+ <d r="DET" s="40" c="41"/>
+ <g r="DET" s="41" c="40"/>
+ <g r="NOMPREP" s="43" c="44"/>
+ <d r="NOMPREP" s="44" c="43"/>
+ <d r="PAR" s="45" c="38"/>
+ <d r="ADJ" s="47" c="48"/>
+ <g r="ADJ" s="48" c="47"/>
+ <d r="SUJ" s="48" c="49"/>
+ <g r="SUJ" s="49" c="48"/>
+ <g r="AUX" s="49" c="50"/>
+ <g r="AUX" s="50" c="51"/>
+ <d r="AUX" s="50" c="49"/>
+ <g r="PREP" s="51" c="52"/>
+ <d r="AUX" s="51" c="50"/>
+ <g r="NOMPREP" s="52" c="53"/>
+ <d r="PREP" s="52" c="51"/>
+ <d r="NOMPREP" s="53" c="52"/>
+ <d r="DET" s="57" c="58"/>
+ <g r="DET" s="58" c="57"/>
+ <g r="PREP" s="58" c="59"/>
+ <g r="NOMPREP" s="59" c="60"/>
+ <d r="PREP" s="59" c="58"/>
+ <d r="NOMPREP" s="60" c="59"/>
+ <g r="PREP" s="61" c="62"/>
+ <g r="NOMPREP" s="62" c="64"/>
+ <d r="PREP" s="62" c="61"/>
+ <d r="DET" s="63" c="64"/>
+ <g r="DET" s="64" c="63"/>
+ <d r="NOMPREP" s="64" c="62"/>
+ </dependances>
+ </SEQ>
+ <SEQ id="300001_1782665_2">
+ <TXT>Le commissaire Ren\xE9 Wack , directeur de l' Office central pour la r\xE9pression de la grande d\xE9linquance financi\xE8re , a fait , lundi 27 juin \xE0 Nanterre ( Hauts-de-Seine ) , un premier bilan de cette op\xE9ration au cours de laquelle plus de 40 de coca\xEFne et plus dE 1 million de francs ont \xE9t\xE9 saisis.MARCH\xC9S . L' op\xE9ration \xE9tait men\xE9e simultan\xE9ment en France , dans plusieurs pays d' Europe et aux Etats-Unis .</TXT>
+ <tokens>
+ <t i="1" l="le" f="Le" c="Det??" p="D"/>
+ <t i="2" l="commissaire" f="commissaire" c="NomMS" p="N"/>
+ <t i="3" l="Ren\xE9" f="Ren\xE9" c="NomPrXXPrenom" p="NP"/>
+ <t i="4" l="Wack" f="Wack" c="NomPrXXInc" p="NP"/>
+ <t i="5" l="," f="," c="Typo" p="T"/>
+ <t i="6" l="directeur" f="directeur" c="Nom?S" p="N"/>
+ <t i="7" l="de" f="de" c="Prep" p="O"/>
+ <t i="8" l="le" f="l'" c="Det??" p="D"/>
+ <t i="9" l="office" f="Office" c="Nom?S" p="N"/>
+ <t i="10" l="central" f="central" c="Adj??" p="A"/>
+ <t i="11" l="pour" f="pour" c="Prep" p="O"/>
+ <t i="12" l="le" f="la" c="Det??" p="D"/>
+ <t i="13" l="r\xE9pression" f="r\xE9pression" c="NomFS" p="N"/>
+ <t i="14" l="de" f="de" c="Prep" p="O"/>
+ <t i="15" l="le" f="la" c="Det??" p="D"/>
+ <t i="16" l="grand" f="grande" c="Adj??" p="A"/>
+ <t i="17" l="d\xE9linquance" f="d\xE9linquance" c="NomFS" p="N"/>
+ <t i="18" l="financier" f="financi\xE8re" c="Adj??" p="A"/>
+ <t i="19" l="," f="," c="Typo" p="T"/>
+ <t i="20" l="avoir" f="a" c="VCONJS" p="V"/>
+ <t i="21" l="faire" f="fait" c="PpaMS" p="V"/>
+ <t i="22" l="," f="," c="Typo" p="T"/>
+ <t i="23" l="lundi 27 juin" f="lundi 27 juin" c="NomXXDate" p="N"/>
+ <t i="24" l="\xE0" f="\xE0" c="Prep" p="O"/>
+ <t i="25" l="Nanterre" f="Nanterre" c="NomPrXXInc" p="NP"/>
+ <t i="26" l="(" f="(" c="Typo" p="T"/>
+ <t i="27" l="Hauts-de-seine" f="Hauts-de-Seine" c="NomPrXXInc" p="NP"/>
+ <t i="28" l=")" f=")" c="Typo" p="T"/>
+ <t i="29" l="," f="," c="Typo" p="T"/>
+ <t i="30" l="un" f="un" c="Det??" p="D"/>
+ <t i="31" l="premier" f="premier" c="AdjMS" p="A"/>
+ <t i="32" l="bilan" f="bilan" c="NomMS" p="N"/>
+ <t i="33" l="de" f="de" c="Prep" p="O"/>
+ <t i="34" l="ce" f="cette" c="DetFS" p="D"/>
+ <t i="35" l="op\xE9ration" f="op\xE9ration" c="NomFS" p="N"/>
+ <t i="36" l="au cours de" f="au cours de" c="Prep" p="O"/>
+ <t i="37" l="lequel" f="laquelle" c="ProRel" p="P"/>
+ <t i="38" l="plus de" f="plus de" c="Det??" p="D"/>
+ <t i="39" l="40" f="40" c="NomXXNum" p="N"/>
+ <t i="40" l="de" f="de" c="Prep" p="O"/>
+ <t i="41" l="coca\xEFne" f="coca\xEFne" c="Nom?S" p="N"/>
+ <t i="42" l="et" f="et" c="CCoord" p="Cc"/>
+ <t i="43" l="plus de" f="plus dE" c="Det??" p="D"/>
+ <t i="44" l="1" f="1" c="Adj?P" p="A"/>
+ <t i="45" l="million" f="million" c="Nom?S" p="N"/>
+ <t i="46" l="de" f="de" c="Prep" p="O"/>
+ <t i="47" l="francs" f="francs" c="NomXXMon" p="N"/>
+ <t i="48" l="avoir" f="ont" c="VCONJP" p="V"/>
+ <t i="49" l="\xEAtre" f="\xE9t\xE9" c="PpaMS" p="V"/>
+ <t i="50" l="Saisis.march\xE9s" f="saisis.MARCH\xC9S" c="NomPrXXInc" p="NP"/>
+ <t i="51" l="." f="." c="Typo" p="T"/>
+ <t i="52" l="le" f="L'" c="Det??" p="D"/>
+ <t i="53" l="op\xE9ration" f="op\xE9ration" c="Nom?S" p="N"/>
+ <t i="54" l="\xEAtre" f="\xE9tait" c="VCONJSp" p="V"/>
+ <t i="55" l="mener" f="men\xE9e" c="PpaFS" p="V"/>
+ <t i="56" l="simultan\xE9ment" f="simultan\xE9ment" c="Adv" p="R"/>
+ <t i="57" l="en" f="en" c="Prep" p="O"/>
+ <t i="58" l="France" f="France" c="NomPr" p="NP"/>
+ <t i="59" l="," f="," c="TypoCoordPrep" p="T"/>
+ <t i="60" l="dans" f="dans" c="Prep" p="O"/>
+ <t i="61" l="plusieurs" f="plusieurs" c="Det" p="D"/>
+ <t i="62" l="pays" f="pays" c="Nom?P" p="N"/>
+ <t i="63" l="de" f="d'" c="Prep" p="O"/>
+ <t i="64" l="Europe" f="Europe" c="NomPr" p="NP"/>
+ <t i="65" l="et" f="et" c="CCoordPrep" p="Cc"/>
+ <t i="66" l="\xE0" f="aux" c="Prep" p="O"/>
+ <t i="67" l="\xE9tats-unis" f="Etats-Unis" c="NomPr" p="NP"/>
+ <t i="68" l="." f="." c="Typo" p="T"/>
+ </tokens>
+ <dependances>
+ <d r="DET" s="1" c="2"/>
+ <g r="DET" s="2" c="1"/>
+ <g r="EPI" s="2" c="4"/>
+ <d r="SUJ" s="2" c="20"/>
+ <d r="NNPR" s="3" c="4"/>
+ <g r="NNPR" s="4" c="3"/>
+ <d r="EPI" s="4" c="2"/>
+ <g r="PREP" s="6" c="7"/>
+ <g r="NOMPREP" s="7" c="9"/>
+ <d r="PREP" s="7" c="6"/>
+ <d r="DET" s="8" c="9"/>
+ <g r="DET" s="9" c="8"/>
+ <g r="ADJ" s="9" c="10"/>
+ <g r="PREP" s="9" c="11"/>
+ <d r="NOMPREP" s="9" c="7"/>
+ <d r="ADJ" s="10" c="9"/>
+ <g r="NOMPREP" s="11" c="13"/>
+ <d r="PREP" s="11" c="9"/>
+ <d r="DET" s="12" c="13"/>
+ <g r="DET" s="13" c="12"/>
+ <g r="PREP" s="13" c="14"/>
+ <d r="NOMPREP" s="13" c="11"/>
+ <g r="NOMPREP" s="14" c="17"/>
+ <d r="PREP" s="14" c="13"/>
+ <d r="DET" s="15" c="17"/>
+ <d r="ADJ" s="16" c="17"/>
+ <g r="DET" s="17" c="15"/>
+ <g r="ADJ" s="17" c="16"/>
+ <g r="ADJ" s="17" c="18"/>
+ <d r="NOMPREP" s="17" c="14"/>
+ <d r="ADJ" s="18" c="17"/>
+ <g r="SUJ" s="20" c="2"/>
+ <g r="AUX" s="20" c="21"/>
+ <g r="OBJ" s="21" c="32"/>
+ <d r="AUX" s="21" c="20"/>
+ <g r="NOMPREP" s="24" c="25"/>
+ <d r="NOMPREP" s="25" c="24"/>
+ <g r="PAR" s="26" c="28"/>
+ <d r="PAR" s="28" c="26"/>
+ <d r="DET" s="30" c="32"/>
+ <d r="ADJ" s="31" c="32"/>
+ <g r="DET" s="32" c="30"/>
+ <g r="ADJ" s="32" c="31"/>
+ <g r="PREP" s="32" c="33"/>
+ <d r="OBJ" s="32" c="21"/>
+ <g r="NOMPREP" s="33" c="35"/>
+ <d r="PREP" s="33" c="32"/>
+ <d r="DET" s="34" c="35"/>
+ <g r="DET" s="35" c="34"/>
+ <g r="REL" s="35" c="37"/>
+ <d r="NOMPREP" s="35" c="33"/>
+ <g r="NOMPREP" s="36" c="37"/>
+ <d r="NOMPREP" s="37" c="36"/>
+ <d r="REL" s="37" c="35"/>
+ <d r="DET" s="38" c="39"/>
+ <g r="DET" s="39" c="38"/>
+ <g r="PREP" s="39" c="40"/>
+ <g r="NOMPREP" s="40" c="41"/>
+ <d r="PREP" s="40" c="39"/>
+ <d r="NOMPREP" s="41" c="40"/>
+ <d r="DET" s="43" c="45"/>
+ <d r="ADJ" s="44" c="45"/>
+ <g r="DET" s="45" c="43"/>
+ <g r="ADJ" s="45" c="44"/>
+ <g r="PREP" s="45" c="46"/>
+ <g r="NOMPREP" s="46" c="47"/>
+ <d r="PREP" s="46" c="45"/>
+ <d r="NOMPREP" s="47" c="46"/>
+ <g r="AUX" s="48" c="49"/>
+ <g r="ATTS" s="49" c="50"/>
+ <d r="AUX" s="49" c="48"/>
+ <d r="ATTS" s="50" c="49"/>
+ <d r="DET" s="52" c="53"/>
+ <g r="DET" s="53" c="52"/>
+ <d r="SUJ" s="53" c="54"/>
+ <g r="SUJ" s="54" c="53"/>
+ <g r="AUX" s="54" c="55"/>
+ <g r="PREP" s="55" c="65"/>
+ <d r="AUX" s="55" c="54"/>
+ <g r="NOMPREP" s="57" c="58"/>
+ <d r="CC" s="57" c="65"/>
+ <d r="NOMPREP" s="58" c="57"/>
+ <g r="NOMPREP" s="60" c="62"/>
+ <d r="CC" s="60" c="65"/>
+ <d r="DET" s="61" c="62"/>
+ <g r="DET" s="62" c="61"/>
+ <g r="PREP" s="62" c="63"/>
+ <d r="NOMPREP" s="62" c="60"/>
+ <g r="NOMPREP" s="63" c="64"/>
+ <d r="PREP" s="63" c="62"/>
+ <d r="NOMPREP" s="64" c="63"/>
+ <g r="CC" s="65" c="57"/>
+ <g r="CC" s="65" c="60"/>
+ <g r="CC" s="65" c="66"/>
+ <d r="PREP" s="65" c="55"/>
+ <g r="NOMPREP" s="66" c="67"/>
+ <d r="CC" s="66" c="65"/>
+ <d r="NOMPREP" s="67" c="66"/>
+ </dependances>
+ </SEQ>
+</syntex>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|