Wilfried,
Thanks for the question. I too had that confusion when I began to go through the specification.
However, this is how I understood that.
We create an API definition to tell how it will behave to the consumers of that API. That includes specifying message formats and operation names. In my opinion, this is like ordering our consumers what to do next.
If you are creating an API that publishes messages to the consumer, then the consumer should subscribe to it. That's the order I'm giving to the consumer. Conversely, if your API consumers messages from the outside, then your consumer should publish messages. The consumer is order to publish.
I think the best way to understand this is to always think in terms what your consumer should do with APIs. Then it'll be easier to decide on the direction of the operation.
Hope this clarifies your doubt.
Thanks,
Dunith