Review - Magic Sets and Other Strange Ways to Implement Logic Programs