The design and implementation of an or-parallel logic programming system