Disjunctive logic programming