Can we find which dependent items force a publish?

We’ve been asked to generate a list of content IDs which, if edited, could potentially force a republish of another content ID. I’ve looked at doing some java code to recursively query the PSX_OBJECTRELATIONSHIP table. The results from this seem to imply that there are thousands of items which potentially could force a republish of my single item.
Of course, not all changes to these items necessarily force a republish. It depends on which fields were changed, which template was used in which slots, etc.
Short of replicating the Percussion publishing algorithm, does anyone have any ideas on how we could achieve this?