Now that I can get XProlog to compile, I'm running simple tests against it and having it dump its information while comparing it to AI::Prolog. This has allowed me to overcome some of the problems I have faced and it appears that the new internal database format is being built correctly. Unfortunately, my updated engine isn't quite processing it right and appears to be overshooting the goal or unifying incorrectly. On the plus side, the database will now be its own object and not just a hashref that gets passed everywhere.
In other news, I've been rather sick for several days now and I think I'm finally getting better. What a relief.