# OpenRefine

OpenRefine es una aplicación de escritorio de código abierto para la limpieza y transformación de datos a otros formatos, una actividad comúnmente conocida como data wrangling (disputa de datos). Es similar a las aplicaciones de hoja de cálculo y puede manejar formatos de archivo como CSV, pero se comporta más como una base de datos.
Opera en filas de datos que tienen celdas debajo de columnas, similar a la forma en que operan las tablas de bases de datos relacionales. Los proyectos de OpenRefine constan de una tabla, cuyas filas se pueden filtrar utilizando facetas que definen criterios (por ejemplo, mostrar filas donde una columna determinada no está vacía).
A diferencia de las hojas de cálculo, la mayoría de las operaciones en OpenRefine se realizan en todas las filas visibles, por ejemplo, la transformación de todas las celdas en todas las filas en una columna, o la creación de una nueva columna basada en datos existentes. Las acciones realizadas en un conjunto de datos se almacenan en el proyecto y se pueden 'reproducir' en otros conjuntos de datos. Las fórmulas no se almacenan en celdas, pero se utilizan para transformar los datos. La transformación se realiza solo una vez. Las expresiones de fórmula se pueden escribir en General Refine Expression Language (GREL), en Jython (es decir, Python) y en Clojure.
El programa funciona como una aplicación web local: inicia un servidor web y abre el navegador predeterminado a 127.0.0.1:3333.

## Usos

* Limpieza de datos desordenados: por ejemplo, si trabaja con un archivo de texto con algunos datos semiestructurados, se puede editar mediante transformaciones, facetas y agrupaciones para que los datos estén estructurados de forma limpia.
* Transformación de datos : conversión de valores a otros formatos, normalización y desnormalización.
* Análisis de datos de sitios web: OpenRefine tiene una función de búsqueda de URL y un analizador HTML jsoup y un motor DOM.
* Agregar datos al conjunto de datos recuperándolos de los servicios web (es decir, devolviendo json). Por ejemplo, se puede utilizar para codificar direcciones en coordenadas geográficas.
* Alineación con Wikidata (anteriormente Freebase): esto implica reconciliación: mapear valores de cadena en celdas a entidades en Wikidata.

## Formatos soportados

La importación es compatible con los siguientes formatos:
* TSV
* CSV
* Archivo de texto con separadores personalizados o columnas divididas por ancho fijo
* XML
* RDF (formatos de serialización RDF / XML y Notation3)
* JSON
* Hojas de cálculo de Google
Si los datos de entrada están en un formato de texto no estándar, se pueden importar como líneas completas, sin dividir en columnas, y luego las columnas se extraen más tarde con las herramientas de OpenRefine. Se admiten archivos comprimidos y archivados (.zip, .tar.gz, .tgz, .tar.bz2, .gz o .bz2) y Refine puede descargar archivos de entrada desde una URL. Para utilizar páginas web como entrada, es posible importar una lista de URL y luego invocar una función de recuperación de URL.
La exportación se admite en los siguientes formatos:
* TSV
* CSV
* Microsoft Excel
* Tabla HTML
* Hojas de cálculo de Google
* Exportador de plantillas: es posible definir una plantilla personalizada para la salida de datos, por ejemplo, como tabla MediaWiki.
Los proyectos completos de OpenRefine en formato nativo se pueden exportar como un archivo .tar.gz.

## Desarrollo

OpenRefine comenzó su vida como Freebase Gridworks, desarrollado por Metaweb y ha estado disponible como código abierto desde enero de 2010. El 16 de julio de 2010, Google adquirió Metaweb, los creadores de Freebase, y el 10 de noviembre de 2010 renombró Freebase Gridwords Google Refine, lanzando la versión 2.0. El 2 de octubre de 2012, el autor original, David Huynh, anunció que Google dejaría pronto de brindar apoyo activo a Google Refine. Desde entonces, el código base ha estado en transición a un proyecto de código abierto llamado OpenRefine.