Git Product home page Git Product logo

uima-ecd's Introduction

uima-ecd

Build Status

Extended Configuration Description for UIMA pipelines.

The Extended Configuration Description (ECD) module, is a set of capabilities built on top of UIMA and uimaFIT that allow the creation of declarative UIMA components and pipelines form a configuration file.

The ECD enables declaration of combinatorial parameters across options which is a very useful feature for experiment configuration space exploration.

For in detail information please refer to the OAQA tutorial.

An ECD must have the following sections:

  • configuration
  • collection-reader
  • pipeline

The following sections are optional:

  • post-process

Resources within a pipeline are specified using either an inherit or a class mapping:

  • inherit: will look for a file WITHIN the classpath on the path specified by the doted syntax a.b.c => a/b/c. Inherited properties can be overridden directly on the body of the declaration

  • class: will look for a class on the classpath, and is intended as a shortcut for classes that don't have configurable parameters

The resources are configured by specifying primitive parameters (Integer, Float, Long, Double, Boolean, String). Compound parameters are typically passed as Strings and parsed within the resource, this is usually the case of nested Resources.

A pipeline is typically a sequence of phases that inherit from ecd.phase (edu.cmu.lti.oaqa.ecd.phase.BasePhase), or some of its sub-classes. A phase provides all the combinatorial functionality required for experimentation, but any arbitrary AnalysisEngine or CasConsumer can be inserted at any point in the pipeline.

Parameters within a phase can have additional combinatorial options.

Components that need to collect information form the different all the experimental options are specified at the end of the pipeline on the post-process section.

# Non-staged example

configuration:
  name: test-experiment
  author: junit
  
persistence-provider:
  inherit: ecd.default-experiment-persistence-provider
  
collection-reader:
  inherit: test.collection-reader 
  
pipeline:
  - inherit: ecd.phase
    name: first-phase
    options: |
      - inherit: test.first-phase-annotator-a
      - class: edu.cmu.lti.oaqa.ecd.example.FirstPhaseAnnotatorB1 
      - pipeline: [class: edu.cmu.lti.oaqa.ecd.example.FirstPhaseAnnotatorB1, inherit: test.first-phase-annotator-copts, pipeline: [inherit: test.first-phase-annotator-a, inherit: test.first-phase-annotator-copts2]]  
     
      
  - inherit: ecd.phase
    name: second-phase  
    options: |
      - class: edu.cmu.lti.oaqa.ecd.example.SecondPhaseAnnotatorA1
      - class: edu.cmu.lti.oaqa.ecd.example.SecondPhaseAnnotatorB1

  - inherit: ecd.phase
    name: third-phase  
    options: |
      - inherit: test.third-phase-annotator 

A final note, on YAML syntax indentation is relevant to determine nesting of elements, and some characters are reserved (-,:) so use quotes "" to use them on strings.

This module is part of the Open Advancement of Question Answering (OAQA) project.

uima-ecd's People

Contributors

elmer-garduno avatar amaiberg avatar ziy avatar digo avatar pasky avatar

Watchers

James Cloos avatar Bram Vandewalle avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.