Компания Google открыла исходные тексты Refine 2.0, системы для обработки и приведения в порядок структурированных наборов данных, полученных из разных источников. Код написан на языке Java и распространяется в рамках лицензии BSD. Исторически система развивалась компанией Metaweb в рамках проекта Freebase Gridworks и попала в руки Google после поглощения данной компании. Из других проектов Metaweb несколько месяцев назад был открыт код JavaScript-платформы Acre.

На первый взгляд интерфейс Refine напоминает табличный процессор, но по сути система является базой данных с возможностью прямого редактирования, изменения схемы, фильтрации, выделения актуальной информации, исправления ошибок, приведения данных к единому виду и трансформации из одного формата в другой. Система имеет очень мощные возможности по фильтрации данных и чистке несоответствий, позволяя выполнять выборки сходные с SQL-оператором SELECT и приводить к единому виду семантически отличающиеся, но логически идентичные элементы.

В качестве примеров возможностей Refine по выявлению ошибок можно указать следующие действия:

  • Отобразить строки с именем пользователя, содержимое которых больше 50 символов, так как предположительно по ошибке оператора в это поле могли попасть данные с адресом пользователя;
  • Отобразить строки, в которых сумма оплаты по контракту меньше 1, так как предположительно при заполнении поля сумма была указана в тысячах долларов, вместо долларов;
  • Отобразить строки, в которых поле с описанием содержит спецсимволы, так как вероятно при импорте данных с сайта некоторые символы были неправильно перекодированы.

Примеры операций по изменению данных:

  • Для каждой строки, в которой поле с суммой оплаты по контракту меньше 1, умножить содержимое этого поля на 1000;
  • Для каждой строки, в которой в поле с именем клиента есть запятая ("фамилия, имя"), меняем содержимое на "имя фамилия".


Источник: http://www.opennet.ru/opennews/art.shtml?num=28642