  Duplicates in data management are common and problematic. In this work, we
present a translation of Datalog under bag semantics into a well-behaved
extension of Datalog, the so-called {\em warded Datalog}$^\pm$, under set
semantics. From a theoretical point of view, this allows us to reason on bag
semantics by making use of the well-established theoretical foundations of set
semantics. From a practical point of view, this allows us to handle the bag
semantics of Datalog by powerful, existing query engines for the required
extension of Datalog. This use of Datalog$^\pm$ is extended to give a set
semantics to duplicates in Datalog$^\pm$ itself. We investigate the properties
of the resulting Datalog$^\pm$ programs, the problem of deciding
multiplicities, and expressibility of some bag operations. Moreover, the
proposed translation has the potential for interesting applications such as to
Multiset Relational Algebra and the semantic web query language SPARQL with bag
semantics.
