Índice
Introducción
La versión 4 de Freeling presupone avances y cambios importantes en el proyecto. Además del soporte a más lenguajes naturales, el soporte a Python y la mejora a los módulos que componen la librería, encontramos que el proyecto se ha movido a GitHub. Lo que aquí se registra es una experiencia que parte de una instalación y versiones previas existentes de la librería, razón por la que la desinstalación de ésta se documenta primero. Obviamente, para quienes parten de cero, la instalación de Freeling es su punto de inicio.
Para un mejor entendimiento de las instrucciones presentadas, recomendamos revisar nuestras guías y clausulas de responsabilidad.
macOS
Estás páginas fueron inicialmente escritas al instalar Freeling 4 en macOS 10.12 («Sierra«). Cualquier adición posterior (versión de la librería o del sistema operativo) será debidamente anotado y resaltado.
Desinstalación
Es importante saber cómo fue instalada inicialmente la librería de Freeling. Si ésta fue colocada vía un administrador de paquetes( e.g. Homebrew) o instalador, lo correcto es echar mano de éstos para removerla apropiadamente.
Por otra parte, si ésta fue descargada y recompilada lo más adecuado es removerla haciendo uso de lo que el mismo desarrollador ha proporcionado3. Para el caso de la versión 3 de Freeling, si se conserva o puede hacerse de los scripts de compilación (e.g. descargándolos de nuevo si ya no se cuenta con éstos), sólo debe ejecutarse (sudo
puede ser requerido)
$ make uninstall
De optar por hacerlo en forma manual, los directorios abajo indicados contienen los componentes de Freeling, aunque los dos últimos son compartidos por otras aplicaciones por lo que debe procederse con precaución en ellos (sugerimos revisar lo que tenemos publicado en este sitio al respecto y nuestra cláusula de responsabilidad)
/usr/local/include/freeling
/usr/local/share/freeling
/usr/local/lib
/usr/local/bin
Instalación
Vía Hombrew
Aunque ésta es una posibilidad que el autor de estas páginas no ha probado, vale la pena mencionarla. Otra forma de hacerse de Freeling para macOS es mediante el administrador de paquetes Homebrew. Esta puede ser una buena opción para quienes no quieren tener que lidiar con git, GitHub, la descarga del código fuente de la librería, compilación e instalación. Para quienes desean un mayor conocimiento y control de lo que se descarga y cómo se instala, no hay otra opción mas que seguir los procedimientos de descarga, compilación y mantenimiento que aquí se describen. La ventaja de esto último es, por supuesto, conocer y entender las causas de problemas y dificultades que puedan tenerse eventualmente en entornos de producción o en el desarrollo mismo de aplicaciones. Mayores detalles pueden leerse en el manual de Freeling1 en el apartado dedicado a macOS.
Vía MacPorts
Similarmente a la opción de Homebrew, MacPorts puede ser otra opción para instalar la librería (y similarmente también, una opción tampoco explorada por quien escribe estas páginas), mayor detalle puede encontrarse en el apartado dedicado a macOS del manual de Freeling1.
Como nota al margen, al momento de escribir esto, Homebrew indica la disponbilidad de Freeling 4 revision 8, mientras que MacPorts hace referencia a la versión 3.1.
Vía código fuente
Tratándose de un proyecto ya migrado a GitHub, y si se tiene la visión de seguir a este proyecto y desarrollar con la librería por algún tiempo, lo más recomendable es adaptarse al flujo de trabajo de este servicio y el de git. Por supuesto, puede solamente descargarse el código desde GitHub pero la recomendación es la ya mencionada. La descripción del proceso de instalación seguido aquí es siguiendo esta recomendación.
Descargando desde GitHub
Dos posibilidades se presentan para esta alternativa. La primera es que uno haya decidido hacer un fork del proyecto en GitHub y la otra que simplemente se descargue el código fuente. Aquí se consideran las dos opciones, síganse las instrucciones según sea el caso.
Sincronización del fork
En caso de que el proyecto haya sido «ramificado» (forked), lo que para este caso ocurrió a principios de 2017 (y estas notas se escriben a final de ese mismo año), GitHub posiblemente indicará actividad en la cuenta del desarrollador si éste ha continuado trabajando en el proyecto.
Para este caso, se indica que estamos 99 commits detrás de ésta.
Lo más adecuado es entonces, hablando de una reinstalación o actualización del software, proceder con la sincronización del fork. Abajo se muestra como se llevó a cabo tal sincronización. Las acciones ocurren ya ubicados en un directorios donde se trabajará.
- Primero se muestra la versión de git con la que se trabajará y si la ruta seleccionada es o no un directorio ya asignado a un proyecto git.
$ git --version
git version 2.13.5 (Apple Git-94)
$ git status .
fatal: Not a git repository (or any of the parent directories): .git
- Se crea el directorio de trabajo clonando el proyecto ramificado en GitHub.
$ git clone https://github.com/errodriguez/FreeLing.git rev2017Dec
Cloning into 'rev2017Dec'...
remote: Counting objects: 3657, done.
remote: Total 3657 (delta 0), reused 0 (delta 0), pack-reused 3657
Receiving objects: 100% (3657/3657), 593.57 MiB | 2.11 MiB/s, done.
Resolving deltas: 100% (1357/1357), done.
Checking out files: 100% (2359/2359), done.
$ git status .
$ ls
rev2017Apr rev2017Dec
$ cd rev2017Dec
$ git status .
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
- Se agrega como repositorio contribuyente (que se sigue) al del proyecto original (del cual se ramificó), con el nombre
upstream
.
$ git remote -v
origin https://github.com/errodriguez/FreeLing.git (fetch)
origin https://github.com/errodriguez/FreeLing.git (push)
$ git remote add upstream https://github.com/TALP-UPC/FreeLing.git
$ git fetch upstream
remote: Counting objects: 1101, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 1101 (delta 518), reused 538 (delta 518), pack-reused 558
Receiving objects: 100% (1101/1101), 157.53 MiB | 2.24 MiB/s, done.
Resolving deltas: 100% (816/816), completed with 182 local objects.
From https://github.com/TALP-UPC/FreeLing
* [new branch] master -> upstream/master
- Comprobamos que estamos en
master
(el repositorio ramificado) y lo actualizamos con los últimos cambios.
$ git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.
$ git merge upstream/master
Updating a9d8b8a..edd6576
Checking out files: 100% (251/251), done.
Fast-forward
.gitignore | 2 +
APIs/common/freeling.i | 13 +-
...
create mode 100644 src/utilities/installation/fusion-mw.cc
create mode 100644 src/utilities/installation/gz-cat.cc
- Finalmente se actualiza el repositorio en GitHub con lo que queda concluida la sincronización.
$ git push
Username for 'https://github.com': errodriguez
Password for 'https://errodriguez@github.com':
Counting objects: 1101, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (349/349), done.
Writing objects: 100% (1101/1101), 157.80 MiB | 416.00 KiB/s, done.
Total 1101 (delta 811), reused 1021 (delta 745)
remote: Resolving deltas: 100% (811/811), completed with 151 local objects.
To https://github.com/errodriguez/FreeLing.git
a9d8b8a..edd6576 master -> master
La interfaz de GitHub mostrará que estamos ya sincronizados en cambios.
Descargando el código fuente
Sí sólo se desea descargar el código fuente, basta descaragar el correspondiente .zip
del proyecto desde la interfaz de GitHub y expandirlo donde se elija ser el directorio de trabajo. También puede ser «clonado» para poder hacer uso de las facilidades de control de versiones que git
provee (ver comando abajo, aunque esto no implica necesariamente hacer uso de GitHub, aunque sí puede requerir cierta configuración previa al respecto).
$ git clone https://github.com/TALP-UPC/FreeLing.git
Compilación
Una vez que se cuenta con el código fuente, el siguiente paso es proceder con su compilación. Si es la primera vez que se instala es necesario hacerse de ciertos recursos, para alguos de los cuales debe emplearse Homebrew o Macports (mayores detalles en el apartado dedicado a macOS del manual de Freeling1). Para la presente explicación, los ejemplos mostrados corresponden a Macports.
Preparativos
Esta descripción considera que las herramientas para línea de comando de XCode se encuentran instaladas y actualizadas, así como el que ya se cuenta con Macports instalado y actualizado. Aunque la actualización de los ports puede hacerse selectivamente, aquí se ha hecho en forma genérica:
$ sudo port upgrade outdated
A diferencia de lo que el manual de Freeling indica, encontramos que los pasos a seguir (en negritas) deben ser:
$ aclocal
aclocal: warning: couldn't open directory 'm4': No such file or directory
$ sudo glibtoolize --force
glibtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'.
glibtoolize: linking file './ltmain.sh'
glibtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
glibtoolize: linking file 'm4/libtool.m4'
glibtoolize: linking file 'm4/ltoptions.m4'
glibtoolize: linking file 'm4/ltsugar.m4'
glibtoolize: linking file 'm4/ltversion.m4'
glibtoolize: linking file 'm4/lt~obsolete.m4'
glibtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
$ sudo autoconf
$ sudo automake -a
configure.ac:116: installing './compile'
configure.ac:7: installing './missing'
src/libasr/Makefile.am: installing './depcomp'
$ ./configure CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib"
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
...config.status: executing depfiles commands
config.status: executing libtool commands
$
ya que la simple y directa ejecución de configure
marca varios errores.
Construcción
Tras estos pasos de configuración, propiamente dicho, la compilación de la librería se lleva a cabo con
$ sudo make install
Dependiendo del equipo, el proceso tomará unos 10 ó 15 minutos. Algunos warnings podrán a parecer en pantalla. Un proceso de compilación exitoso deberá mostrar como últimas líneas:
...
Installing common files.
Installing config files.
/Applications/Xcode.app/Contents/Developer/usr/bin/make install-exec-hook
chmod -x //usr/local/bin/fl_initialize
./install-sh -c -d '/usr/local/lib/pkgconfig'
/usr/bin/install -c -m 644 freeling.pc '/usr/local/lib/pkgconfig'
$
Validación
Aunque validando la creación de ciertos elementos en algunos directorios puede ser lo suficiente para verificar la instalación de la librería, resulta mucho mejor hacer uso del programa de muestra para comprobar que la librería fue instalada y funciona correctamente (para conocer más del uso del programa de muestra, referirse tanto al manual de Freeling1 como a la página de R&D en este subsitio).
$ export FREELING="/usr/local"
$ export FREELINGSHARE="$FREELING/share/freeling"
$ $FREELING/bin/analyze -f es.cfg
Comprobando la intalación de Freeling.
Comprobando comprobar VMG0000 1
la el DA0FS0 0.98926
intalación intalación NCFS000 1
de de SP 0.999961
Freeling freeling NP00000 1
. . Fp 1
<CTRL+D>
$
Referencias
- «Freeling User Manual,» GitBook, web. Consulted: 2018.01.01. URL: https://talp-upc.gitbooks.io/freeling-user-manual/content/basics.html
- «FreeLing Technical Reference Manual «, TALP – UPC Research Center, web. Visited: 2018.01.01. URL: http://nlp.lsi.upc.edu/freeling/doc/refman/
- Lluís Padró, «Re:Remove freeling,» FreeLing Home Page, web; Posted: 2016.05.10; visited: 2017.12.31. URL: http://blade10.cs.upc.edu/freeling-old/index.php?option=com_simpleboard&Itemid=65&func=view&catid=5&id=4352.
|
© Todos los derechos reservados. M. en C. Eduardo René Rodríguez Avila |
Creación: 2017.12.30 Última actualización: 2018.01.04 |
|||
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto. |