No description, website, or topics provided.
Java Scala
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.settings
.worksheet/src
metadata
project
src
.gitignore
.project
LICENSE
NOTICE
README.md
build.sbt
mem
pom.xml
pom.xml.orig

README.md

BagPipes

BagPipes is a second-generation configuration space exploration framework. It enables intelligent, algorithmic exploration of configuration spaces under time and resource constraints. A configuration space is defined as a phase of a pipeline with mutliple components and/or any component with a variable parameter (discrete- and real-valued, cross products). The performance of a generated pipeline is further measured by any number of metrics provided by scoring annotators. Furthermore, individual annotators can be scored based on ...

BagPipes can (eventually) parallelize executions for faster evaluation of a configuration space.

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

Quickstart

BagPipes can be included as a library dependency or executed as standalone project.

For Developers

As a command-line tool:

The bagpipes command-line tool can be used to generate and execute yaml component and pipeline descriptors. To use the command-line tool as a standalone executable:

  1. Clone the git repo to your local machine (git clone https://github.com/oaqa/bagpipes.git)
  2. Go to the root directory of the project.
  3. Run sbt stage. This will generate the command-line executable at /path/to/bagpipes/target/universal/stage/bin/

For a full tutorial on how to generate/run configurations or setup as part of an external project, go here or run bagpipes --help to view more options.

Generating a configuration

To generate the most basic configuration (name, author, and collection-reader):

bagpipes init

This will result in the following yaml configuration file:

configuration:
  author: default
  name: default
collection-reader:
  inherit: collection_reader.filesystem-collection-reader

Example:

BagPipes comes with built-in components based on the UIMA tutorial. To generate the most basic RoomAnnotator pipeline configuration run:

bagpipes init pl -n --collection-reader "collection_reader.filesystem-collection-reader" --component "tutorial.ex1.RoomNumberAnnotator" Pp1=foo p2=bar 

This will result in the following configuration:

configuration:
  author: default
  name: default
collection-reader:
  inherit: collection_reader.filesystem-collection-reader

pipeline:
  - inherit: tutorial.ex1.RoomNumberAnnotator
    params:
      p1: foo
      p2: bar

Execution

To execute an arbitrary yaml myDesc.yaml configuration, simply run:

bagpipes exec myDesc

For example, to execute the configuration above, you can run,

bagpipes init pl -n --collection-reader "collection_reader.filesystem-collection-reader" --component "tutorial.ex1.RoomNumberAnnotator" Pp1=foo p2=bar > myDesc.yaml

Then execute with,

bagpipes exec myDesc

As a dependency

To include BagPipes as a maven dependency, (for now) clone it to your local machine and add this to your pom.xml:

<dependency>
	<groupId> edu.cmu.lti.oaqa </groupId>
	<artifactId>bagpipes</artifactId>
	<version> 0.0.1 </version>
</dependency>

To use within a Java or Scala application use this API call to execute an arbitrary YAML configuration:

BagPipesRun.run(myYaml);

For Users