A common way to answer queries in Ontology Base Data Access (OBDA), is to divide the process into two stages. The first stage, called the ontology rewriting, deals with the ontology axioms. The second stage, called the unfolding, translates the query from the ontology language into database query languages. In this thesis, we look at two resent developments in OBDA query answering. The tree-witness rewriting over H-complete ABoxes (Rodríguez-Muro et al., 2013) is a simplified version of the tree-witness rewriting. Its simplicity is due to the properties of H-complete ABoxes. We modify the mapping in order to make the virtual ABox H-complete. Perfect mappings (Pinto et al., 2013) are mappings that link ontology queries to database queries whose answers are exactly the answers to the ontology queries. With perfect mappings, we do not need to search for every possible way to combine mapping assertions, because the one perfect mapping assertion covers all possible answers. We propose to combine these two results. We want to use perfect mappings to simplify our H-complete virtual ABox, and to create perfect mapping tree-witnesses. The perfect mapping tree-witnesses are tree-witnesses that invalidate any intersecting regular tree-witness. Perfect mapping tree-witnesses may significantly shorten the tree-witness rewriting.