@Test public void testLocationIsAtNoRT() throws Exception { jCas.setDocumentText("The former school house is at GR 1234 5678."); Location l = new Location(jCas, 4, 23); l.addToIndexes(); Coordinate c = new Coordinate(jCas, 30, 42); c.addToIndexes(); processJCas(); assertEquals(2, JCasUtil.select(jCas, Location.class).size()); assertNotNull(l.getReferent()); assertEquals(l.getReferent(), c.getReferent()); }
@Test public void testNP() throws Exception { jCas.setDocumentText("The former school house at GR 1234 5678."); languageAE.process(jCas); Coordinate c = new Coordinate(jCas, 27, 39); c.addToIndexes(); processJCas(); assertEquals(2, JCasUtil.select(jCas, Location.class).size()); Location l = JCasUtil.selectByIndex(jCas, Location.class, 0); assertNotNull(l.getReferent()); assertEquals(l.getReferent(), c.getReferent()); }
@Test public void testLocationNoRT() throws Exception { jCas.setDocumentText("The former school house at GR 1234 5678."); Location l = new Location(jCas, 4, 23); l.addToIndexes(); Coordinate c = new Coordinate(jCas, 27, 39); c.addToIndexes(); processJCas(); assertEquals(2, JCasUtil.select(jCas, Location.class).size()); assertNotNull(l.getReferent()); assertEquals(l.getReferent(), c.getReferent()); }
@Test public void testBoth() throws Exception { jCas.setDocumentText("The former school house at GR 1234 5678."); languageAE.process(jCas); Location l = new Location(jCas, 4, 23); l.addToIndexes(); Coordinate c = new Coordinate(jCas, 27, 39); c.addToIndexes(); processJCas(); assertEquals(2, JCasUtil.select(jCas, Location.class).size()); assertNotNull(l.getReferent()); assertEquals(l.getReferent(), c.getReferent()); } }
@Test public void testExactStringMatch() throws AnalysisEngineProcessException, ResourceInitializationException { String text = "Chris went to London and in London he saw Big Ben."; // london - london jCas.setDocumentText(text); Person chris = new Person(jCas); chris.setBegin(text.indexOf("Chris")); chris.setEnd(chris.getBegin() + "Chris".length()); chris.addToIndexes(); Location london = new Location(jCas); london.setBegin(text.indexOf("London")); london.setEnd(london.getBegin() + "London".length()); london.addToIndexes(); Location london2 = new Location(jCas); london2.setBegin(text.indexOf("London", london.getEnd())); london2.setEnd(london2.getBegin() + "London".length()); london2.addToIndexes(); processJCas(); processJCasWithSieve(1); List<ReferenceTarget> targets = new ArrayList<>(JCasUtil.select(jCas, ReferenceTarget.class)); List<Location> location = new ArrayList<>(JCasUtil.select(jCas, Location.class)); assertEquals(1, targets.size()); assertSame(targets.get(0), location.get(0).getReferent()); assertSame(targets.get(0), location.get(1).getReferent()); }
@Test public void testExistingReferentsNoMerge() throws Exception { AnalysisEngine ae = AnalysisEngineFactory.createEngine(CorefBrackets.class); populateJCasMergeTest(jCas); ae.process(jCas); assertEquals(2, JCasUtil.select(jCas, ReferenceTarget.class).size()); Location l = JCasUtil.selectByIndex(jCas, Location.class, 0); Coordinate c = JCasUtil.selectByIndex(jCas, Coordinate.class, 0); ReferenceTarget lRt = l.getReferent(); ReferenceTarget cRt = c.getReferent(); assertNotEquals(lRt, cRt); }
@Test public void testExistingReferentsMerge() throws Exception { AnalysisEngine ae = AnalysisEngineFactory.createEngine(CorefBrackets.class, "mergeReferents", true); populateJCasMergeTest(jCas); ae.process(jCas); assertEquals(1, JCasUtil.select(jCas, ReferenceTarget.class).size()); Location l = JCasUtil.selectByIndex(jCas, Location.class, 0); Coordinate c = JCasUtil.selectByIndex(jCas, Coordinate.class, 0); ReferenceTarget rt = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); assertEquals(rt, l.getReferent()); assertEquals(rt, c.getReferent()); assertEquals(c.getReferent(), l.getReferent()); }
@Test public void testCoref() throws Exception { jCas.setDocumentText("Hello World, Hello Earth"); processJCas(MONGO, erd, COLLECTION, MONGO_COLL, TYPE, LOCATION); assertEquals(2, JCasUtil.select(jCas, Location.class).size()); assertEquals(1, JCasUtil.select(jCas, ReferenceTarget.class).size()); ReferenceTarget rt = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); Location l1 = JCasUtil.selectByIndex(jCas, Location.class, 0); assertEquals("World", l1.getValue()); assertEquals("World", l1.getCoveredText()); assertEquals(rt, l1.getReferent()); Location l2 = JCasUtil.selectByIndex(jCas, Location.class, 1); assertEquals("Earth", l2.getValue()); assertEquals("Earth", l2.getCoveredText()); assertEquals(rt, l2.getReferent()); } }
@Test public void testLocationRT2() throws Exception { jCas.setDocumentText("The former school house at GR 1234 5678."); ReferenceTarget rt = new ReferenceTarget(jCas); rt.addToIndexes(); Location l = new Location(jCas, 4, 23); l.addToIndexes(); Coordinate c = new Coordinate(jCas, 27, 39); c.setReferent(rt); c.addToIndexes(); processJCas(); assertEquals(2, JCasUtil.select(jCas, Location.class).size()); assertEquals(rt, l.getReferent()); }
@Test public void testExistingLocReferent() throws Exception { AnalysisEngine ae = AnalysisEngineFactory.createEngine(CorefBrackets.class); jCas.setDocumentText(LOC_TEXT); ReferenceTarget rt1 = Annotations.createReferenceTarget(jCas); Location l1 = Annotations.createLocation(jCas, 0, 9, SOMEWHERE, null); l1.setReferent(rt1); Annotations.createCoordinate(jCas, 11, 19, MRGS); ae.process(jCas); assertEquals(1, JCasUtil.select(jCas, ReferenceTarget.class).size()); ReferenceTarget rt = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); Location l = JCasUtil.selectByIndex(jCas, Location.class, 0); Coordinate c = JCasUtil.selectByIndex(jCas, Coordinate.class, 0); assertEquals(rt, l.getReferent()); assertEquals(rt, c.getReferent()); assertEquals(l.getReferent(), c.getReferent()); }
@Test public void testExistingCoordReferent() throws Exception { AnalysisEngine ae = AnalysisEngineFactory.createEngine(CorefBrackets.class); jCas.setDocumentText(LOC_TEXT); ReferenceTarget rt1 = Annotations.createReferenceTarget(jCas); Annotations.createLocation(jCas, 0, 9, SOMEWHERE, null); Coordinate c1 = Annotations.createCoordinate(jCas, 11, 19, MRGS); c1.setReferent(rt1); ae.process(jCas); assertEquals(1, JCasUtil.select(jCas, ReferenceTarget.class).size()); ReferenceTarget rt = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); Location l = JCasUtil.selectByIndex(jCas, Location.class, 0); Coordinate c = JCasUtil.selectByIndex(jCas, Coordinate.class, 0); assertEquals(rt, l.getReferent()); assertEquals(rt, c.getReferent()); assertEquals(c.getReferent(), l.getReferent()); }
@Test public void testNoExistingReferents() throws Exception { AnalysisEngine ae = AnalysisEngineFactory.createEngine(CorefBrackets.class); jCas.setDocumentText(LOC_TEXT); Annotations.createLocation(jCas, 0, 9, SOMEWHERE, null); Annotations.createCoordinate(jCas, 11, 19, MRGS); ae.process(jCas); assertEquals(1, JCasUtil.select(jCas, ReferenceTarget.class).size()); ReferenceTarget rt = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); Location l = JCasUtil.selectByIndex(jCas, Location.class, 0); Coordinate c = JCasUtil.selectByIndex(jCas, Coordinate.class, 0); assertEquals(rt, l.getReferent()); assertEquals(rt, c.getReferent()); }
@Test public void testMultipleSpaces() throws Exception { AnalysisEngine ae = AnalysisEngineFactory.createEngine(CorefBrackets.class); jCas.setDocumentText("Somewhere \t(4QFJ1267)"); Annotations.createLocation(jCas, 0, 9, SOMEWHERE, null); Annotations.createCoordinate(jCas, 14, 22, MRGS); ae.process(jCas); assertEquals(1, JCasUtil.select(jCas, ReferenceTarget.class).size()); ReferenceTarget rt = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); Location l = JCasUtil.selectByIndex(jCas, Location.class, 0); Coordinate c = JCasUtil.selectByIndex(jCas, Coordinate.class, 0); assertEquals(rt, l.getReferent()); assertEquals(rt, c.getReferent()); }
assertEquals("World", l1.getValue()); assertEquals("World", l1.getCoveredText()); assertEquals(rt, l1.getReferent()); assertEquals(rt, l2.getReferent());
@Test public void test2() throws Exception { jCas.setDocumentText( "John Smith (UID123) (JS) was last seen in London (LDN) (NFDK). JSmith has previously visited MAN."); Person p = new Person(jCas, 0, 10); p.addToIndexes(); Location l = new Location(jCas, 42, 48); l.addToIndexes(); processJCas(); assertEquals(2, JCasUtil.select(jCas, Person.class).size()); assertEquals(2, JCasUtil.select(jCas, Location.class).size()); Person p0 = JCasUtil.selectByIndex(jCas, Person.class, 0); assertEquals("John Smith", p0.getCoveredText()); ReferenceTarget rtP = p0.getReferent(); assertNotNull(rtP); Person p1 = JCasUtil.selectByIndex(jCas, Person.class, 1); assertEquals("JS", p1.getCoveredText()); assertEquals(rtP, p1.getReferent()); Location l0 = JCasUtil.selectByIndex(jCas, Location.class, 0); assertEquals("London", l0.getCoveredText()); ReferenceTarget rtL = l0.getReferent(); assertNotNull(rtL); Location l1 = JCasUtil.selectByIndex(jCas, Location.class, 1); assertEquals("LDN", l1.getCoveredText()); assertEquals(rtL, l1.getReferent()); }
@Test public void testLocationBothRT() throws Exception { jCas.setDocumentText( "The former school house at GR 1234 5678. The school house has a blue door."); ReferenceTarget rt1 = new ReferenceTarget(jCas); rt1.addToIndexes(); ReferenceTarget rt2 = new ReferenceTarget(jCas); rt2.addToIndexes(); Location l1 = new Location(jCas, 4, 23); l1.setReferent(rt1); l1.addToIndexes(); Coordinate c = new Coordinate(jCas, 27, 39); c.setReferent(rt2); c.addToIndexes(); Location l2 = new Location(jCas, 45, 57); l2.setReferent(rt1); l2.addToIndexes(); processJCas(); assertEquals(3, JCasUtil.select(jCas, Location.class).size()); assertEquals(rt2, c.getReferent()); assertEquals(rt2, l1.getReferent()); assertEquals(rt2, l2.getReferent()); }
@Test public void testIncorrectEntities() throws Exception { AnalysisEngine ae = AnalysisEngineFactory.createEngine(CorefBrackets.class); jCas.setDocumentText(PERSON_TEXT); Annotations.createPerson(jCas, 0, 12, WILLIAM); Annotations.createLocation(jCas, 14, 18, BILL, null); Annotations.createPerson(jCas, 21, 26, BILLY); ae.process(jCas); assertEquals(1, JCasUtil.select(jCas, ReferenceTarget.class).size()); ReferenceTarget rt = JCasUtil.selectByIndex(jCas, ReferenceTarget.class, 0); Person p1 = JCasUtil.selectByIndex(jCas, Person.class, 0); Person p2 = JCasUtil.selectByIndex(jCas, Person.class, 1); Location l = JCasUtil.selectByIndex(jCas, Location.class, 0); assertEquals(rt, p1.getReferent()); assertEquals(rt, p2.getReferent()); assertNull(l.getReferent()); }
assertEquals("London", l0.getCoveredText()); ReferenceTarget rtL = l0.getReferent(); assertNotNull(rtL); assertEquals(rtL, l1.getReferent()); assertEquals(rtL, l2.getReferent());
assertEquals("London", l0.getCoveredText()); ReferenceTarget rtL = l0.getReferent(); assertNotNull(rtL); assertEquals(rtL, l1.getReferent()); assertEquals(rtL, l2.getReferent());
assertEquals("London", l0.getCoveredText()); ReferenceTarget rtL = l0.getReferent(); assertNotNull(rtL); assertEquals(rtL, l1.getReferent()); assertEquals(rtL, l2.getReferent());