What we really want for our apps is indifferent interoperability, but I think that's very difficult to achieve in practice (more on this later). What we have with Zero Data protocols is cooperative interoperability. (View Highlight)
In Solid, your app relies on Semantic Data, which means that each piece of data is self-describing (more on this in the next section). However, there is nothing keeping your from misusing that representation. For example, you could use a description field (which is supposed to be human readable) to store a json object. (View Highlight)
In Solid, each application doesn't use its own data structure. Developers are encouraged to reuse existing vocabularies that can be found in websites such as schema.org and lov.linkeddata.es. This way, apps that are working on a common set of data will be interoperable out of the box. (View Highlight)
But this doesn't work as well in practice as it does in theory. When it comes down to making an app, it's rare to find an existing vocabulary that fits perfectly with your use-case. (View Highlight)