SETL: A programmable semantic extract-transform-load framework for semantic data warehouses. (August 2017)