Agent-oriented programming languages have gone a long way in the level of sophistication offered to programmers, and there has also been much progress in tools to support multi-agent systems development using such languages. However, much work is still required in mechanisms that can reduce the burden, typically placed on programmers, of ensuring that agents behave rationally, hence being effective and as efficient as possible. One such mechanisms is reasoning about declarative goals, which is increasingly appearing in the agents literature; it allows agents to make better use of resources, to avoid plans hindering the execution of other plans, and to be able to take advantage of opportunities for reducing the number of plans that have to be executed to achieve certain combinations of goals. In this paper, we introduce a Petri-net based approach to such reasoning, and we report on experimental results showing that this technique can obtain comparable improvements on an agent's behaviour to other existing approaches (our experiments do not yet cover reasoning about resource usage). Our long-term goal is to provide a number of alternative approaches for such reasoning, evaluate and compare their performances under different configurations, and incorporate them into interpreters for agent-oriented programming languages in such a way that the most appropriate approach is used at given circumstances.