Imports: { import gateStandAlone.* ;} Phase: MarkChapter1Head Input: Chapter Token SpaceToken num HeaderLabel OpenQuote Options: control = appelt Rule: DoMarkChapter1Head {SpaceToken.kind=="control"}(({Chapter}{SpaceToken.kind=="space"}({Token.string=="Ier"}|({Token.kind=="numberPrime"}|{Token.kind=="number"}|{Token.string=="Préliminaire"}|{Token.string=="Premier"}|{Token.string=="PREMIER"})):id):num{Token.string=="."}({SpaceToken.kind=="space"})?({Token.subkind=="dashpunct"}|{Token.string=="-"})(({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+):title((({Token.string=="("}({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+{Token.string==")"}):block)?)):header{SpaceToken.kind=="control"} --> { AnnotationSet headerAnnotation = (AnnotationSet) bindings.get("header"); Node headerStart = headerAnnotation.firstNode(); Node headerEnd = headerAnnotation.lastNode(); //create property id String id = ""; AnnotationSet idAnnotation = (AnnotationSet) bindings.get("id"); if (idAnnotation != null) { Node idStart = idAnnotation.firstNode(); Node idEnd = idAnnotation.lastNode(); id = doc.getContent().toString().substring(idStart.getOffset().intValue(), idEnd.getOffset().intValue()); id = GateHeaderConverter.convertExpression(id); } //create property title String title = ""; AnnotationSet titleAnnotation = (AnnotationSet) bindings.get("title"); if (titleAnnotation != null) { Node titleStart = titleAnnotation.firstNode(); Node titleEnd = titleAnnotation.lastNode(); title = doc.getContent().toString().substring(titleStart.getOffset().intValue(), titleEnd.getOffset().intValue()); } //create property num String num = ""; AnnotationSet numAnnotation = (AnnotationSet) bindings.get("num"); if (numAnnotation != null) { Node numStart = numAnnotation.firstNode(); Node numEnd = numAnnotation.lastNode(); num = doc.getContent().toString().substring(numStart.getOffset().intValue(), numEnd.getOffset().intValue()); } //create property block String block = ""; AnnotationSet blockAnnotation = (AnnotationSet) bindings.get("block"); if (blockAnnotation != null) { Node blockStart = blockAnnotation.firstNode(); Node blockEnd = blockAnnotation.lastNode(); block = doc.getContent().toString().substring(blockStart.getOffset().intValue(), blockEnd.getOffset().intValue()); } //create property ruleName String ruleName = "Chapter1Head"; //create the new token FeatureMap features = Factory.newFeatureMap(); features.put("id", id); features.put("title", title); features.put("num", num); features.put("block", block); features.put("ruleName", ruleName); outputAS.add(headerStart, headerEnd, "Chapter_Head", features); } Phase: MarkChapter2Head Input: Chapter Token SpaceToken num HeaderLabel OpenQuote Options: control = appelt Rule: DoMarkChapter2Head {SpaceToken.kind=="control"}(({Chapter}{SpaceToken.kind=="space"}({Token.string=="1er"}|({Token.kind=="numberPrime"}|{Token.kind=="number"}|{Token.string=="Préliminaire"}|{Token.string=="Premier"}|{Token.string=="PREMIER"})):id):num({SpaceToken.kind=="space"})?({Token.subkind=="dashpunct"}|{Token.string=="-"})(({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+):title((({Token.string=="("}({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+{Token.string==")"}):block)?)):header{SpaceToken.kind=="control"} --> { AnnotationSet headerAnnotation = (AnnotationSet) bindings.get("header"); Node headerStart = headerAnnotation.firstNode(); Node headerEnd = headerAnnotation.lastNode(); //create property id String id = ""; AnnotationSet idAnnotation = (AnnotationSet) bindings.get("id"); if (idAnnotation != null) { Node idStart = idAnnotation.firstNode(); Node idEnd = idAnnotation.lastNode(); id = doc.getContent().toString().substring(idStart.getOffset().intValue(), idEnd.getOffset().intValue()); id = GateHeaderConverter.convertExpression(id); } //create property title String title = ""; AnnotationSet titleAnnotation = (AnnotationSet) bindings.get("title"); if (titleAnnotation != null) { Node titleStart = titleAnnotation.firstNode(); Node titleEnd = titleAnnotation.lastNode(); title = doc.getContent().toString().substring(titleStart.getOffset().intValue(), titleEnd.getOffset().intValue()); } //create property num String num = ""; AnnotationSet numAnnotation = (AnnotationSet) bindings.get("num"); if (numAnnotation != null) { Node numStart = numAnnotation.firstNode(); Node numEnd = numAnnotation.lastNode(); num = doc.getContent().toString().substring(numStart.getOffset().intValue(), numEnd.getOffset().intValue()); } //create property block String block = ""; AnnotationSet blockAnnotation = (AnnotationSet) bindings.get("block"); if (blockAnnotation != null) { Node blockStart = blockAnnotation.firstNode(); Node blockEnd = blockAnnotation.lastNode(); block = doc.getContent().toString().substring(blockStart.getOffset().intValue(), blockEnd.getOffset().intValue()); } //create property ruleName String ruleName = "Chapter2Head"; //create the new token FeatureMap features = Factory.newFeatureMap(); features.put("id", id); features.put("title", title); features.put("num", num); features.put("block", block); features.put("ruleName", ruleName); outputAS.add(headerStart, headerEnd, "Chapter_Head", features); } Phase: MarkChapter3Head Input: Chapter Token SpaceToken num HeaderLabel OpenQuote Options: control = appelt Rule: DoMarkChapter3Head {SpaceToken.kind=="control"}{SpaceToken.kind=="space"}(({Chapter}{SpaceToken.kind=="space"}({Token.string=="Ier"}|({Token.kind=="numberPrime"}|{Token.kind=="number"}|{Token.string=="Préliminaire"}|{Token.string=="Premier"}|{Token.string=="PREMIER"})):id):num{Token.string=="."}({SpaceToken.kind=="space"})?({Token.subkind=="dashpunct"}|{Token.string=="-"})(({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+):title((({Token.string=="("}({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+{Token.string==")"}):block)?)):header{SpaceToken.kind=="control"} --> { AnnotationSet headerAnnotation = (AnnotationSet) bindings.get("header"); Node headerStart = headerAnnotation.firstNode(); Node headerEnd = headerAnnotation.lastNode(); //create property id String id = ""; AnnotationSet idAnnotation = (AnnotationSet) bindings.get("id"); if (idAnnotation != null) { Node idStart = idAnnotation.firstNode(); Node idEnd = idAnnotation.lastNode(); id = doc.getContent().toString().substring(idStart.getOffset().intValue(), idEnd.getOffset().intValue()); id = GateHeaderConverter.convertExpression(id); } //create property title String title = ""; AnnotationSet titleAnnotation = (AnnotationSet) bindings.get("title"); if (titleAnnotation != null) { Node titleStart = titleAnnotation.firstNode(); Node titleEnd = titleAnnotation.lastNode(); title = doc.getContent().toString().substring(titleStart.getOffset().intValue(), titleEnd.getOffset().intValue()); } //create property num String num = ""; AnnotationSet numAnnotation = (AnnotationSet) bindings.get("num"); if (numAnnotation != null) { Node numStart = numAnnotation.firstNode(); Node numEnd = numAnnotation.lastNode(); num = doc.getContent().toString().substring(numStart.getOffset().intValue(), numEnd.getOffset().intValue()); } //create property block String block = ""; AnnotationSet blockAnnotation = (AnnotationSet) bindings.get("block"); if (blockAnnotation != null) { Node blockStart = blockAnnotation.firstNode(); Node blockEnd = blockAnnotation.lastNode(); block = doc.getContent().toString().substring(blockStart.getOffset().intValue(), blockEnd.getOffset().intValue()); } //create property ruleName String ruleName = "Chapter3Head"; //create the new token FeatureMap features = Factory.newFeatureMap(); features.put("id", id); features.put("title", title); features.put("num", num); features.put("block", block); features.put("ruleName", ruleName); outputAS.add(headerStart, headerEnd, "Chapter_Head", features); } Phase: MarkChapter4Head Input: Chapter Token SpaceToken num HeaderLabel OpenQuote Options: control = appelt Rule: DoMarkChapter4Head {SpaceToken.kind=="control"}{SpaceToken.kind=="space"}(({Chapter}{SpaceToken.kind=="space"}({Token.string=="1er"}|({Token.kind=="numberPrime"}|{Token.kind=="number"}|{Token.string=="Préliminaire"}|{Token.string=="Premier"}|{Token.string=="PREMIER"})):id):num({SpaceToken.kind=="space"})?({Token.subkind=="dashpunct"}|{Token.string=="-"})(({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+):title((({Token.string=="("}({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+{Token.string==")"}):block)?)):header{SpaceToken.kind=="control"} --> { AnnotationSet headerAnnotation = (AnnotationSet) bindings.get("header"); Node headerStart = headerAnnotation.firstNode(); Node headerEnd = headerAnnotation.lastNode(); //create property id String id = ""; AnnotationSet idAnnotation = (AnnotationSet) bindings.get("id"); if (idAnnotation != null) { Node idStart = idAnnotation.firstNode(); Node idEnd = idAnnotation.lastNode(); id = doc.getContent().toString().substring(idStart.getOffset().intValue(), idEnd.getOffset().intValue()); id = GateHeaderConverter.convertExpression(id); } //create property title String title = ""; AnnotationSet titleAnnotation = (AnnotationSet) bindings.get("title"); if (titleAnnotation != null) { Node titleStart = titleAnnotation.firstNode(); Node titleEnd = titleAnnotation.lastNode(); title = doc.getContent().toString().substring(titleStart.getOffset().intValue(), titleEnd.getOffset().intValue()); } //create property num String num = ""; AnnotationSet numAnnotation = (AnnotationSet) bindings.get("num"); if (numAnnotation != null) { Node numStart = numAnnotation.firstNode(); Node numEnd = numAnnotation.lastNode(); num = doc.getContent().toString().substring(numStart.getOffset().intValue(), numEnd.getOffset().intValue()); } //create property block String block = ""; AnnotationSet blockAnnotation = (AnnotationSet) bindings.get("block"); if (blockAnnotation != null) { Node blockStart = blockAnnotation.firstNode(); Node blockEnd = blockAnnotation.lastNode(); block = doc.getContent().toString().substring(blockStart.getOffset().intValue(), blockEnd.getOffset().intValue()); } //create property ruleName String ruleName = "Chapter4Head"; //create the new token FeatureMap features = Factory.newFeatureMap(); features.put("id", id); features.put("title", title); features.put("num", num); features.put("block", block); features.put("ruleName", ruleName); outputAS.add(headerStart, headerEnd, "Chapter_Head", features); } Phase: MarkChapter5Head Input: Chapter Token SpaceToken num HeaderLabel OpenQuote Options: control = appelt Rule: DoMarkChapter5Head {SpaceToken.kind=="control"}{Token.kind=="punctuation"}(({Chapter}{SpaceToken.kind=="space"}({Token.string=="Ier"}|({Token.kind=="numberPrime"}|{Token.kind=="number"}|{Token.string=="Préliminaire"}|{Token.string=="Premier"}|{Token.string=="PREMIER"})):id):num{Token.string=="."}({SpaceToken.kind=="space"})?({Token.subkind=="dashpunct"}|{Token.string=="-"})(({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+):title((({Token.string=="("}({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+{Token.string==")"}):block)?)):header{SpaceToken.kind=="control"} --> { AnnotationSet headerAnnotation = (AnnotationSet) bindings.get("header"); Node headerStart = headerAnnotation.firstNode(); Node headerEnd = headerAnnotation.lastNode(); //create property id String id = ""; AnnotationSet idAnnotation = (AnnotationSet) bindings.get("id"); if (idAnnotation != null) { Node idStart = idAnnotation.firstNode(); Node idEnd = idAnnotation.lastNode(); id = doc.getContent().toString().substring(idStart.getOffset().intValue(), idEnd.getOffset().intValue()); id = GateHeaderConverter.convertExpression(id); } //create property title String title = ""; AnnotationSet titleAnnotation = (AnnotationSet) bindings.get("title"); if (titleAnnotation != null) { Node titleStart = titleAnnotation.firstNode(); Node titleEnd = titleAnnotation.lastNode(); title = doc.getContent().toString().substring(titleStart.getOffset().intValue(), titleEnd.getOffset().intValue()); } //create property num String num = ""; AnnotationSet numAnnotation = (AnnotationSet) bindings.get("num"); if (numAnnotation != null) { Node numStart = numAnnotation.firstNode(); Node numEnd = numAnnotation.lastNode(); num = doc.getContent().toString().substring(numStart.getOffset().intValue(), numEnd.getOffset().intValue()); } //create property block String block = ""; AnnotationSet blockAnnotation = (AnnotationSet) bindings.get("block"); if (blockAnnotation != null) { Node blockStart = blockAnnotation.firstNode(); Node blockEnd = blockAnnotation.lastNode(); block = doc.getContent().toString().substring(blockStart.getOffset().intValue(), blockEnd.getOffset().intValue()); } //create property ruleName String ruleName = "Chapter5Head"; //create the new token FeatureMap features = Factory.newFeatureMap(); features.put("id", id); features.put("title", title); features.put("num", num); features.put("block", block); features.put("ruleName", ruleName); outputAS.add(headerStart, headerEnd, "Chapter_Head", features); } Phase: MarkChapter6Head Input: Chapter Token SpaceToken num HeaderLabel OpenQuote Options: control = appelt Rule: DoMarkChapter6Head {SpaceToken.kind=="control"}{Token.kind=="punctuation"}(({Chapter}{SpaceToken.kind=="space"}({Token.string=="1er"}|({Token.kind=="numberPrime"}|{Token.kind=="number"}|{Token.string=="Préliminaire"}|{Token.string=="Premier"}|{Token.string=="PREMIER"})):id):num({SpaceToken.kind=="space"})?({Token.subkind=="dashpunct"}|{Token.string=="-"})(({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+):title((({Token.string=="("}({Token,!Token.string=="("}|{SpaceToken.kind=="space"})+{Token.string==")"}):block)?)):header{SpaceToken.kind=="control"} --> { AnnotationSet headerAnnotation = (AnnotationSet) bindings.get("header"); Node headerStart = headerAnnotation.firstNode(); Node headerEnd = headerAnnotation.lastNode(); //create property id String id = ""; AnnotationSet idAnnotation = (AnnotationSet) bindings.get("id"); if (idAnnotation != null) { Node idStart = idAnnotation.firstNode(); Node idEnd = idAnnotation.lastNode(); id = doc.getContent().toString().substring(idStart.getOffset().intValue(), idEnd.getOffset().intValue()); id = GateHeaderConverter.convertExpression(id); } //create property title String title = ""; AnnotationSet titleAnnotation = (AnnotationSet) bindings.get("title"); if (titleAnnotation != null) { Node titleStart = titleAnnotation.firstNode(); Node titleEnd = titleAnnotation.lastNode(); title = doc.getContent().toString().substring(titleStart.getOffset().intValue(), titleEnd.getOffset().intValue()); } //create property num String num = ""; AnnotationSet numAnnotation = (AnnotationSet) bindings.get("num"); if (numAnnotation != null) { Node numStart = numAnnotation.firstNode(); Node numEnd = numAnnotation.lastNode(); num = doc.getContent().toString().substring(numStart.getOffset().intValue(), numEnd.getOffset().intValue()); } //create property block String block = ""; AnnotationSet blockAnnotation = (AnnotationSet) bindings.get("block"); if (blockAnnotation != null) { Node blockStart = blockAnnotation.firstNode(); Node blockEnd = blockAnnotation.lastNode(); block = doc.getContent().toString().substring(blockStart.getOffset().intValue(), blockEnd.getOffset().intValue()); } //create property ruleName String ruleName = "Chapter6Head"; //create the new token FeatureMap features = Factory.newFeatureMap(); features.put("id", id); features.put("title", title); features.put("num", num); features.put("block", block); features.put("ruleName", ruleName); outputAS.add(headerStart, headerEnd, "Chapter_Head", features); }