¿Cómo puedo agregar una costumbre condición existente en la RUTA del proyecto?Comenzó, pero estoy pegado

StackOverflow https://stackoverflow.com//questions/22056617

  •  22-12-2019
  •  | 
  •  

Pregunta

Quiero añadir un custom UIMA RUTA condición de la regla.Tengo actualmente un UIMA, la Ruta del proyecto en Eclipse.Hasta ahora he creado un archivo de código fuente en el mismo proyecto con una base anotador stub:

package mynamespace.extensions;

[imports]

public class MyNewCondition extends AbstractRutaCondition {

private final String para1;

public MyNewCondition(String para1) {
    super();
    this.para1 = para1;
}

@Override
public EvaluatedCondition eval(AnnotationFS annotation,
        RuleElement element, RutaStream stream, InferenceCrowd crowd) {
    // TODO Auto-generated method stub
    if (para1 == "hfoo")
        return new EvaluatedCondition(this, true);
    else 
        return new EvaluatedCondition(this, false);
}

public String getPara() {
    return para1;
}
}

El archivo se compila a la meta/clases/...carpeta, pero cuando voy a crear una RUTA del script:

DECLARE Test;
SW{MyNewCondition("foo") -> MARK(Test)};

...Eclipse me dice que "MyNewCondition" no está definido y cuando lo ejecuto me get:"Error en la línea 40, "(":no encontró ninguna alternativa viable" en la consola.Supongo que necesito hacer algunos más de la importación, pero no sé cómo.Traté de trabajar a partir de la Extensión del proyecto de ejemplo en el repositorio de Github, pero no sé por donde empezar ya que el archivo de secuencia de comandos no contiene más que las importaciones, pero el xml asociado descriptor de archivos.Pero a medida que estas se genera automáticamente no sé si es esto lo que debo cambiar o es algo más.

También probé la importación de un nuevo tipo de condición de un segundo proyecto a través de Eclipse construir las opciones de la ruta, pero sin suerte.

Alguien puede ayudarme?Gracias.

¿Fue útil?

Solución

Usted necesita por lo menos tres clases para agregar una nueva condición que también se resuelve en la UIMA Ruta Workbench:

  1. Una aplicación de la condición como lo hizo en su pregunta
  2. Una implementación de IRutaConditionExtension, que proporciona la condición de ejecución para que el motor
  3. Una implementación de IIDEConditionExtension, que proporciona las condiciones para que el UIMA Ruta Workench

La condición en sí contiene sólo la funcionalidad que debe ser añadido a la lengua.El motor de análisis sabe por supuesto, nada acerca de ninguna de las implementaciones que resulta en una extraña analizar excepción como "(" no encontrado.Que debe de ser mejorado a veces.El motor de análisis proporciona un parámetro de configuración additionalExtensions que las listas de todas las extensiones conocidas de la lengua.Si usted no está utilizando el UIMA Ruta de trabajo, deberá agregar la aplicación de IRutaConditionExtension a este parámetro.La implementación de IIDEConditionExtension proporciona la funcionalidad necesaria para la UIMA Ruta mesa de trabajo que es la comprobación de la sintaxis, resaltado de sintaxis y así sucesivamente.Además, permite que la mesa de trabajo para generar correcta de los descriptores.Se agrega la implementación de IRutaConditionExtension para el parámetro respectivo.Esta extensión de la mesa de trabajo las necesidades de curso para ser implementado en un Eclipse plugin que se instala en su UIMA Ruta Workbench de Eclipse ejemplo, en el fin de estar disponibles en el banco de trabajo.Hay un punto de extensión, que debe extender que sabe tanto de la implementación de IRutaConditionExtension y IIDEConditionExtension.

Hay un proyecto ejemplar que permite la implementación de todos los posibles elementos del lenguaje.Este proyecto contiene las implementaciones para el motor de análisis y también la aplicación de la UIMA Ruta de trabajo, y por lo tanto es un plugin de Eclipse (mente el pom de archivo).

Sobre la ExampleCondition condición de extensión, hay tres importantes puntos/clases:

  1. ExampleCondition.java proporciona la implementación de la nueva condición, que evalúa las fechas
  2. ExampleConditionExtension.java proporciona la extensión del motor de análisis.Se sabe el nombre de la afección, su aplicación, puede crear nuevas instancias de esa condición, y es capaz de verbalizar la condición para la explicación de los componentes.
  3. ExampleConditionIDEExtension proporciona la comprobación de la sintaxis del editor y la palabra clave para el coloreado de la sintaxis.
  4. plugin.xml define la extensión de la mesa de trabajo:

    <extension point="org.apache.uima.ruta.ide.conditionExtension">
      <condition
        class="org.apache.uima.ruta.example.extensions.ExampleConditionIDEExtension"
        engine="org.apache.uima.ruta.example.extensions.ExampleConditionExtension">
      </condition>
    </extension>
    

Si no utiliza el UIMA Ruta Workbench o sólo desea aplicar las reglas en UIMA tuberías, usted sólo necesita ExampleCondition y ExampleConditionExtension, y usted necesita para agregar org.apache.uima.ruta.example.extensions.ExampleConditionExtension a la additionalExtensions parámetro de su UIMA, la Ruta del motor de análisis (descriptor).

La adición de nuevas condiciones de uso de Java proyectos en la misma área de trabajo no ha sido probado aún, pero al menos en el banco de trabajo de apoyo será de extrañar debido a la inclusión de extensiones con el punto de extensión mecanismo de Eclipse.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top