OpenRefine
OpenRefine is an open-source desktop application for data cleanup and transformation to other formats, an activity commonly known as data wrangling. It is similar to spreadsheet applications, and can handle spreadsheet file formats such as CSV, but it behaves more like a database.
It operates on rows of data which have cells under columns, similar to the manner in which relational database tables operate. OpenRefine projects consist of one table, whose rows can be filtered using facets that define criteria.
Unlike spreadsheets, most operations in OpenRefine are done on all visible rows, for example, the transformation of all cells in all rows under one column, or the creation of a new column based on existing data. Actions performed on a dataset are stored the project and can be 'replayed' on other datasets. Formulas are not stored in cells, but are used to transform the data. Transformation is done only once. Formula expressions can be written in General Refine Expression Language , in Jython, and in Clojure.
The program operates as a local web app: it starts a web server and opens the default browser to 127.0.0.1:3333.
Uses
- Cleaning messy data: for example if working with a text file with some semi-structured data, it can be edited 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 web services. For example, can be used for geocoding addresses to geographic coordinates.
- Aligning to Wikidata : this involves reconciliation — mapping string values in cells to entities in Wikidata.
Supported formats
- TSV, CSV
- Text file with custom separators or columns split by fixed width
- XML
- RDF triples
- JSON
- Google Spreadsheets
Export is supported in following formats:
- TSV
- CSV
- Microsoft Excel
- HTML table
- Google Spreadsheets
- Templating exporter: it is possible to define custom template for outputting data, for example as MediaWiki table.