Revision: 19041
          http://sourceforge.net/p/gate/code/19041
Author:   domrout
Date:     2015-12-19 23:49:25 +0000 (Sat, 19 Dec 2015)
Log Message:
-----------
Add support for annotation ID export with JSON

Modified Paths:
--------------
    gate/trunk/src/main/gate/corpora/DocumentJsonUtils.java

Added Paths:
-----------
    gate/trunk/src/main/gate/corpora/InlineXMLDocumentFormat.java

Modified: gate/trunk/src/main/gate/corpora/DocumentJsonUtils.java
===================================================================
--- gate/trunk/src/main/gate/corpora/DocumentJsonUtils.java     2015-12-19 
02:21:55 UTC (rev 19040)
+++ gate/trunk/src/main/gate/corpora/DocumentJsonUtils.java     2015-12-19 
23:49:25 UTC (rev 19041)
@@ -291,8 +291,43 @@
    */
   public static void writeDocument(Document doc, Long start, Long end,
           Map<String, Collection<Annotation>> annotationsMap,
-          Map<?, ?> extraFeatures, String annotationTypeProperty,
-          JsonGenerator json) throws JsonGenerationException, IOException,
+          Map<?, ?> extraFeatures, String annotationTypeProperty, 
JsonGenerator json) 
+          throws JsonGenerationException, IOException, InvalidOffsetException {
+    writeDocument(doc, start, end, annotationsMap, extraFeatures, 
annotationTypeProperty, null, json);
+
+  } 
+  /**
+   * Write a substring of a GATE document to the specified
+   * JsonGenerator. The specified window of document text will be
+   * written as a property named "text" and the specified annotations
+   * will be written as "entities", with their offsets adjusted to be
+   * relative to the specified window.
+   * 
+   * @param doc the document to write
+   * @param start the start offset of the segment to write
+   * @param end the end offset of the segment to write
+   * @param extraFeatures additional properties to add to the generated
+   *          JSON. If the map includes a "text" key this will be
+   *          ignored, and if it contains a key "entities" whose value
+   *          is a map then these entities will be merged with the
+   *          generated ones derived from the annotationsMap. This would
+   *          typically be used for documents that were originally
+   *          derived from Twitter data, to re-create the original JSON.
+   * @param annotationTypeProperty if non-null, the annotation type will
+   *          be written as a property under this name, as if it were an
+   *          additional feature of each annotation.
+   * @param annotationIDProperty if non-null, the annotation ID will
+   *          be written as a property under this name, as if it were an
+   *          additional feature of each annotation.
+   * @param json the {@link JsonGenerator} to write to.
+   * @throws JsonGenerationException if a problem occurs while
+   *           generating the JSON
+   * @throws IOException if an I/O error occurs.
+   */
+  public static void writeDocument(Document doc, Long start, Long end,
+          Map<String, Collection<Annotation>> annotationsMap,
+          Map<?, ?> extraFeatures, String annotationTypeProperty, 
+          String annotationIDProperty, JsonGenerator json) throws 
JsonGenerationException, IOException,
           InvalidOffsetException {
     ObjectWriter writer = MAPPER.writer();
 
@@ -327,6 +362,9 @@
         json.writeEndArray(); // end of indices
         if(annotationTypeProperty != null) {
           json.writeStringField(annotationTypeProperty, a.getType());
+        } 
+        if (annotationIDProperty != null) {
+          json.writeNumberField(annotationIDProperty, a.getId());
         }
         // other features
         for(Map.Entry<?, ?> feature : a.getFeatures().entrySet()) {

Added: gate/trunk/src/main/gate/corpora/InlineXMLDocumentFormat.java
===================================================================
--- gate/trunk/src/main/gate/corpora/InlineXMLDocumentFormat.java               
                (rev 0)
+++ gate/trunk/src/main/gate/corpora/InlineXMLDocumentFormat.java       
2015-12-19 23:49:25 UTC (rev 19041)
@@ -0,0 +1,20 @@
+package gate.corpora;
+
+import gate.Document;
+import gate.DocumentFormat;
+import gate.util.DocumentFormatException;
+
+/**
+ * Created by dominic on 15/12/2015.
+ */
+public class InlineXMLDocumentFormat extends DocumentFormat {
+    @Override
+    public void unpackMarkup(Document doc) throws DocumentFormatException {
+
+    }
+
+    @Override
+    public void unpackMarkup(Document doc, RepositioningInfo repInfo, 
RepositioningInfo ampCodingInfo) throws DocumentFormatException {
+
+    }
+}

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
_______________________________________________
GATE-cvs mailing list
GATE-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gate-cvs

Reply via email to