Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/drdub/uima-shell
Automatically exported from code.google.com/p/uima-shell
https://github.com/drdub/uima-shell
Last synced: about 1 month ago
JSON representation
Automatically exported from code.google.com/p/uima-shell
- Host: GitHub
- URL: https://github.com/drdub/uima-shell
- Owner: DrDub
- License: apache-2.0
- Created: 2015-04-30T18:06:37.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-04-30T18:09:10.000Z (over 9 years ago)
- Last Synced: 2023-03-11T04:12:56.498Z (almost 2 years ago)
- Language: Java
- Size: 227 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
README
# UIMA Shell
# Copyright (C) 2010 Nicolas Hernandez
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# Fichier README
# 2010-10-01 Nicolas HernandezOVERVIEW
This UIMA _Analysis Engine_ (AE) allows you to *run Shell command over a
_Common Analysis Structure_ (CAS) element ( _view_ or _annotation_ ) and
to store the result either as a new view or a new annotation*.It mainly aims at running within a UIMA aggregate processing chain some
external tools available via command line. These tools should perform their
processing by taking the input as a file name parameter or a standard input
( _stdin_ ) and produce the result via the standard output ( _stdout_ ).The input must be either the _SofaDataString_ of a specified view, or the
value of an annotation _String feature_ which should also be specified
(e.g. _org.apache.uima.TokenAnnotation_ and _coveredText_ ).
It is possible to only process some annotations belonging themselves to
some parts of the sofa specified also as an annotation.
The processing result can be saved as either the SofaDataString of a newly
created view or the string feature value of a newly created annotation.
If you use this project to support academic research, then please cite the following paper as appropriate. Thanks also to let me know by email (_nicolas.hernandez @gmail.com)_.
{{{
%% hal-00481459, version 1
%% http://hal.archives-ouvertes.fr/hal-00481459/en/
@inproceedings{HERNANDEZ:2010:HAL-00481459:1,
HAL_ID = {hal-00481459},
URL = {http://hal.archives-ouvertes.fr/hal-00481459/en/},
title = { {B}uilding a {F}rench-speaking community around {UIMA}, gathering research, education and industrial partners, mainly in {N}atural {L}anguage {P}rocessing and {S}peech {R}ecognizing domains},
author = {{H}ernandez, {N}icolas and {P}oulard, {F}abien and {V}ernier, {M}atthieu and {R}ocheteau, {J}{\'e}r{\^o}me},
affiliation = {{L}aboratoire d'{I}nformatique de {N}antes {A}tlantique - {LINA} - {CNRS} : {UMR}6241 - {U}niversit{\'e} de {N}antes - {E}cole des {M}ines de {N}antes },
booktitle = {{W}orkshop {A}bstracts {LREC} 2010 {W}orkshop '{N}ew {C}hallenges for {NLP} {F}rameworks' },
pages = {p64 },
address = {{L}a {V}alleta {M}alte },
day = {22},
month = {05},
year = {2010},
URL = {http://hal.archives-ouvertes.fr/hal-00481459/PDF/nlpf_lrec10.pdf},
}
}}}
FEATURES* implémentation d'un ae réalisant une commande SHELL sur un élément input
du CAS (vue|annotation/feature) et produisant un nouvel élément output
(vue|annotation/feature) au sein du CAS
* traitement utilisant l'API SHELL de F Martini (alias adiGuba) distribuée
sous licence CeCILL-C et qui permet de simplifier l'exécution de programme
et de ligne de commande depuis Java.
http://blog.developpez.com/adiguba/p3035/java/5-0-tiger/runtime-exec-n-est-pas-des-plus-simple/
* gestion de multiples formats des commandes à exécuter où la donnée à
traiter peut aussi bien provenir de l'entrée standard ou constituer un
fichier texte passé en argument, être récupéré du système de fichier, pipé,
redirigé...
* traitement de la command SHELL sous forme d'un thread
* paramétrage libre et générique des éléments du CAS
(view et annotation/feature) d'entrée (à traiter) et de sortie (à créer)
notamment à l'aide de l'API java.lang.reflect (constitue des exemples de
code générique)
DESCRIPTIONLe principal objectif du composant est de permettre d'utiliser au sein d'une
chaîne UIMA des outils accessibles en ligne de commande lesquels réalisent
leur traitement soit sur l'entrée standard (stdin) soit sur un fichier via
son nom passé en argument et produisent leur résultat sur la sortie standard.
Quatre configurations de traitement sont possibles suivant le type d'entrée
(input), vue ou annotation/feature, et le type de sortie (output), vue ou annotation/feature.
On peut faire réaliser un traitement soit sur le sofaDataString d'une vue
existante soit sur une feature String d'annotations d'un certain type éventuellement présentes au
sein de certains contextes marqués par des annotations (elles même appartenant
à une vue existante). Le résultat du traitement peut être enregistré dans
comme valeur d'une feature d'une annotation sur une vue donnée supposée exister ou bien comme le
sofaDataString d'une vue à créer.
In practice, to allow any command format, the specified CAS element to analyze
is saved in a text file. Two parameters (PreCommandTokens and PostCommandTokens)
are used to specify the pre/post elements of the command to run. The text
file is seen as the central point of the command line to execute. Each
command and/or argument can be seen as a token in order to make easier the reading.
Afin de réaliser tout traitement.
L'INPUT_VIEW doit déjà exister ; par défaut elle est initialisée à
"_InitialView". La nécessité d'existence de l'OUTPUT_VIEW dépend de votre
choix du type de sortie. En cas de sortie Annotation elle doit déjà exister, en
cas de sortie View, celle-ci ne doit pas déjà exister (pas de fonction "append"
possible).
Si aucune INPUT_ANNOTATION est spécifiée alors le traitement sera réalisé sur la
sofaDataString de l'INPUT_VIEW.
Il est nécessaire de spécifier soit une OUTPUT_ANNOTATION soit une OUTPUT_VIEW.
Si aucune OUTPUT_ANNOTATION est spécifiée alors une OUPUT_VIEW sera créée.
Si l'OUTPUT_VIEW n'est pas définie, elle est initialisée par défaut à la valeur
de l'INPUT_VIEW. Quand le paramètre OUTPUT_VIEW est définie, et que celle-ci
existe au sein du CAS le type de sortie ne peut être qu'Annotation. Si par
contre elle n'existe pas alors le type de sortie ne peut être que View.
Si l'on souhaite une sortie Annotation alors il faut à la fois spécifier
le type d'annotation à créer ainsi que sa feature de type String qui pourra
accueillir le résultat du traitement.
The PreCommandTokens and PostCommandTokens allow any Shell instructions
such as pipe command, redirection, variables...FILES
ChangeLog lists all the modifications which have been performed on the project
INSTALL (should) contain all the instructions for installing and running the product
(may have some examples)
LICENSE describes the right how to use the product
NOTICE contains the acknowledgment and declares if required the licenses of
the third-part dependencies
README this current file
TODO lists the future expected evolutions of the project
CONTACTIf you wish participate to the development of the project
or if you find some bugs, please tell the discussion group.Consult http://code.google.com/p/uima-shell/ for more information.
Thanks for using this code.