In a way, this is actually one of the biggest challenges to figure out. How does a service understand the inputs and outputs of other services?
At the moment our alpha just lets people make arbitrary JSON-RPC calls, but we want to allow services to:
- publish their API and type definitions, including the ability for services to share common types (e.g. RGB images, 2d bounding boxes, parameteriseed probability distributions, etc)
- form some kind of ontology on top of these that conveys additional meaning and that can also evolve as the network’s understanding of reality improves (although the ontology description won’t necessarily be human understandable at that point): Ontologies for SingularityNET
The first point is the most important in the short term for practical reasons, but the second one will be in the back of our minds as we make design decisions.