Programming Knowledge Discovery Workflows in Service-Oriented Distributed Systems