|Developer(s)||Google, open source community|
|Initial release||10 November 2010|
|Stable release||2.5 / December 11, 2011|
|Written in||Java |
|Platform||Microsoft Windows, GNU/Linux, Mac OS|
OpenRefine is a standalone open source desktop application for data cleanup and transformation to other formats, the activity known as data wrangling. It is similar to spreadsheet applications (and can work with spreadsheet file formats), however, it behaves more like a database.
It operates on rows of data which have cells under columns, which is very similar to relational database tables. One OpenRefine project is one table. The user can filter the rows to display using facets that define filtering criteria (for example, showing rows where a given column is not empty). Unlike spreadsheets, most operations in OpenRefine are done on all visible rows: transformation of all cells in all rows under one column, creation of a new column based on existing column data, etc. All actions that were done on a dataset are stored in a project and can be replayed on another dataset.
Unlike spreadsheets, no formulas are stored in the cells, but formulas are used to transform the data, and transformation is done only once. Transformation expressions can be written in Google Refine Expression Language (GREL), Jython (i.e. Python) and Clojure.
The program has a web user interface. However, it is not hosted on the web (SAAS), but is available for download and use on the local machine. When starting OpenRefine, it starts a web server and starts a browser to open the web UI powered by this web server.
Possible uses of software
- Cleaning messy data: for example if you have text file with some semi-structured data, you can edit it using transformations, facets and clustering to make the data cleanly structured.
- Transformation of data: converting values to other formats, normalizing and denormalizing.
- Parsing data from web sites: OpenRefine has a URL fetch feature and jsoup HTML parser and DOM engine.
- Adding data to dataset by fetching it from webservices (i.e. returning json). For example can be used for geocoding addresses to geographic coordinates.
- Working with Freebase:
- Augmentation of datasets with data from Freebase.
- Contributing data to Freebase using Schema Alignment feature. This involves reconciliation — mapping string values in cells to entities in Freebase.
Supported formats from import and export
Import is supported from following formats:
- TSV, CSV
- Text file with custom separators or columns split by fixed width
- RDF triples (RDF/XML and Notation3 serialization formats)
- Google Spreadsheets, Google Fusion Tables
If input data is in a non-standard text format, it can be imported as whole lines, without splitting into columns, and then columns extracted later with OpenRefine's tools. Archived and compressed files are supported (.zip, .tar.gz, .tgz, .tar.bz2, .gz, or .bz2) and Refine can download input files from a URL. To use web pages as input, it is possible to import list of URLs and then invoke a URL fetch function.
Export is supported in following formats:
- Microsoft Excel
- HTML table
- Templating exporter: it is possible to define custom template for outputting data, for example as MediaWiki table.
Whole OpenRefine projects in native format can be exported as a .tar.gz archive.
OpenRefine started life as Freebase Gridworks developed by Metaweb and has been available as open source since January, 2010. On 16 July 2010, Google acquired Metaweb, the creators of Freebase, and on 10 November 2010 renamed their Freebase Gridworks software to Google Refine, releasing version 2.0. On 2 October 2012, original author David Huynh announced that Google would soon stop its active support of Google Refine. Since then, the codebase has been in transition to an open source project named OpenRefine.
- "Project downloads".
- "Google code repository viewer". Retrieved 18 April 2012.
- "OpenRefine Project Home".
- "Editing by transforming: Cell Editing wiki page from Refine documentation". Retrieved 18 April 2012.
- "Comparison with spreadsheet software: Cell Editing wiki page in Refine documentation". Retrieved 18 April 2012.
- Google Refine expression language OpenRefine/OpenRefine Wiki GitHub. Github.com (2013-04-03). Retrieved on 2013-08-16.
- "Expressions: Refine documentation". Retrieved 18 April 2012.
- "Screencast: Google Refine 2.0 - Introduction (1 of 3) - editing government data". Retrieved 18 April 2012.
- "Stripping HTML: Refine documentation wiki page". Retrieved 18 April 2012.
- "FetchingURLsFromWebServices wiki page: Refine documentation". Retrieved 18 April 2012.
- "Screencast: Google Refine 2.0 - Data Augmentation (3 of 3) - using Openstreetmap Nominatim for geocoding and Freebase for augmentation". Retrieved 18 April 2012.
- "Schema Alignment: Refine documentation wiki page". Retrieved 18 April 2012.
- "Importers: Refine documentation wiki page". Retrieved 18 April 2012.
- "Changelog for 2.5". Retrieved 18 April 2012.
- "Exporting: Refine documentation wiki page". Retrieved 18 April 2012.
- "Google Official Blog: Deeper understanding with Metaweb". Retrieved 18 April 2012.
- "Google Opensource blog: Announcing Google Refine 2.0, a power tool for data wranglers". Retrieved 18 April 2012.
- "[announcement] the future of the Refine projects".
- "From Freebase Gridworks to Google Refine and now OpenRefine".
- OpenRefine. OpenRefine. Retrieved on 2013-08-16.
- google-refine - Google Refine, a power tool for working with messy data (formerly Freebase Gridworks) - Google Project Hosting. Code.google.com. Retrieved on 2013-08-16.