Micro Protocol

In the simplest form an ID representing "this is spam" can be seen as a micro protocol where all triples referring to this ID states that the other ID in the triple is spam.

Typically we would want to be able to regret out tags, so in similar fashion a micro protocol for canceling triples can be made where an arbitrary ID represents the concept of "this triple has been canceled".

Now we can let our spam protocol implement these two rules/micro protocols and we have a spam micro protocol where the spam tag can be canceled.

This would work fine for a single application. If we want other app developers to discover our protocol we can make a micro protocol for that as well.

Micro Protocol Protocol

Say we select an ID for tagging IDs as "this is a micro protocol". Every Info Triple having this ID in it means that the other ID represents a micro protocol.

Now we make a new ID to represent our spam protocol and we tag it as being a micro protocol using the tag above.

We then make a triple from the "this is spam" ID to our protocol ID.
Then we make a triple from the "this triple has been canceled" to our protocol ID.

We then decide on an ID for tagging IDs as "this is a part of a micro protocol".
Lastly we tag the two triple IDs just created to our spam protocol ID as being part of the micro protocol.

Now other developers can search and find our micro protocol and see the sub parts of the protocol.

Micro Protocol Documentation

In order to help other developers understand our protocol, we can write Descriptor Notes for each of our term IDs and for each of the triple IDs we created while creating the protocol.

In future more advanced protocols the details of how to implement the protocol may be expressed with Info Triples as well and hence apps for the protocol will be auto generated.
For now we will have to do with Descriptor Notes to direct human developers in the right direction.

More information on Descriptor Notes can be found here