XML DTD просто дают вам синтаксис для вашей модели. Вы могли бы, например, написать:
<rule>
<if>is raining</if>
<then>pigs will fly</then>
</rule>
и
<rule>
<cons>pigs will fly</cons>
<prem>is raining</prem>
</rule>
но вы должны будете предоставить любую логику, связывающую эти два, и написать ее самостоятельно. XML не дает никакой конкретной помощи.
Я бы посоветовал вам взглянуть на такие языки, как Пролог.