h-REA / hREA

A ValueFlows / REA economic network coordination system implemented on Holochain and with supplied Javascript GraphQL libraries
https://docs.hrea.io
Other
143 stars 15 forks source link

Ontology and Taxonomy and how they are related #12

Closed bhaugen closed 5 years ago

bhaugen commented 5 years ago

I know both of those words have different meanings to different people, so I'll define how I am using them here, and why the difference matters.

By Ontology, I mean "a set of concepts and categories in a subject area or domain that shows their properties and the relations between them".

Ontologies can be domain ontologies, covering a specific domain, or upper ontologies, trying to cover all domains. REA is a domain ontology, originally covering accounting, later extended to cover all economic interactions. ValueFlows is a vocabulary based on REA and other sources.

By Taxonomy,I mean "the branch of science concerned with classification". Taxonomies are usually hierarchical, for example, a granny smith apple is an apple is a pome fruit is a fruit is an agricultural product is a product.

Here's a sketch of how taxonomies might fit into ValueFlows: VF plus taxonomies Here's the whole VF ontology model under that excerpt.

Resource Specifications would fit naturally into various taxonomies of resource classifications, like http://aims.fao.org/vest-registry/vocabularies/agrovoc suggested in the diagram, a taxonomy of agricultural products. Other resource classification taxonomies exist, like http://www.productontology.org/ which of course calls itself an ontology. (My goal in this issue is to differentiate concepts and how they are used, not to argue against other uses of the words ontology and taxonomy.)

If you selected an item from Agrovoc or Prodont and used it as a Resource Specification in ValueFlows, it would instantly have all of the relationships with other concepts shown in the larger VF ontology model. If you selected an concept from ValueFlows (like resource classification) you would have a hard time fitting into Prodont or Agrovoc or any other taxonomy I know of, and if you did, it would only have some hierarchical relationships.

That's the basics. Next I'll get into how groups of agents agree - or fail to agree - on ontologies and taxonomies.

bhaugen commented 5 years ago

Groups of agents do not always agree on ontologies.

For example, in accounting, REA was preceded by the double-entry (debit-and-credit) accounting model invented by Luca Pacioli in the early stages of capitalism, and that model is still much more popular than REA.

Likewise among people who know about ValueFlows, not everybody wants to use it. For example, the http://datafoodconsortium.org/ has an ontology that overlaps a lot with VF, but is different even in those parts where it overlaps.

It is possible, and has been done, to translate between REA and double-entry accounting (DBE). It would also be possible to translate between ValueFlows and the DataFood ontology.

But in both cases, the translation would be lossy, depending on the direction of translation. For example, one could translate without loss from REA to DBE, but not from DBE to REA. We haven't worked out the details of translation between VF and DataFood, but expect similar losses of precision. So it would be possible to communicate and probably interoperate by translating from one ontology to another, but it would not be as good operationally as all the participants in an economic network agreeing on the same ontology.

bhaugen commented 5 years ago

Groups of agents in an economic network also need to agree on taxonomies, especially about resource classifications and specifications.

In practice, this agreement has been accomplished in different scopes, from small to large.

For example, two agents who want to do business with each other would need to agree on what to call the resources they want to exchange, as well as their units of measure. They would have some problems if one of them wanted to exchange bushels of grain while the other was expecting liters of rolled oats

But a 2-agent agreement is pretty limited, so in practice, agents agree on resource classifications in some larger scope, like a cooperative food network. Or such agreements could be mandated by the dominant customer in a supply chain, like Walmart.

But the difficulties of all the various scopes of agreement have led to international standards for classification of commercial products,. like GTINs,Global Trade Identification Numbers. You need to pay for your GTINs, which limits their usefulness for some of our contexts.

Adopting popular taxonomies on the Internet might be better for our purposes, like http://www.productontology.org/

ProductOntology is also related to http://purl.org/goodrelations/ which is actually an ontology, and would be another candidate for translation between GR and VF.

If all else fails, Resource Classifications and Specifications in VF can be defined anew by agents or scopes. But that restarts the agreement problems...

fosterlynn commented 5 years ago

Related to this and to the discussion with Art yesterday, what came to my mind was that for the classifications (thinking taxonomies, although classifications don't have to be hierarchical), and taking @bhaugen 's comment above a step further - I wonder if we want the classifications to not be in holochain at all. Maybe with the exception of private recipes. But including open recipes. Given the architecture that emphasizes privacy for agents and networks, where you have to make some effort to bridge that, would it be better for the UI apps to handle getting classification information, and just leave it open on the web where it is now? And use linked open data for that info?

The usual caveat: I don't totally understand the hc architecture....

pospi commented 5 years ago

(following on from https://github.com/holo-rea/holo-rea/issues/3#issuecomment-492229424, and the above)

I think @bhaugen is right about his definitions of taxonomy / ontology, and I see no reason why we can't get this terminology in order going forward.

To my knowledge, the only discussion we've had around knowledge systems in HoloREA has all been discussed in the frame of "ontologies", which makes sense to me; because we want things to be as flexible / open as possible. So I see the situation as: ontologies might be (or be composed of) taxonomies, and you might use hierarchical relationships to organise a set of information from an ontology (like you're describing with AGROVOC). However, at the end of the day such ontologies contain additional info other than these hierarchies which might be useful in different applications.

Does that fly for these semantic assertions? ;)

pospi commented 5 years ago

@fosterlynn RE using the open web, I think that's a perfectly reasonable solution; but I also think that in an ideal world we would have ontological services deployed as Holochain apps, mainly for these two reasons:

  1. reliability- with the web, we have single points of failure in the webservers hosting the grammars. If ontologies were stored on public hApps and every app making use of them helped to serve the data, we'd have much more robust services.
  2. versioning- with the web, someone can update an ontology and you have no control over this, ability to link to a previous version, and (currently) way of being notified of the change. We can do all this on Holochain.
bhaugen commented 5 years ago

The main use of taxonomies in my experience has been to find agreement on how and what to name economic resources where different agents want to use and understand the same name for the same type/classification of resources.

Ontologically, they are all economic resources. But they can also be different in terms of their taxonomy or classification.

fosterlynn commented 5 years ago

The main use of taxonomies in my experience has been to find agreement on how and what to name economic resources where different agents want to use and understand the same name for the same type/classification of resources.

An addition, which may already be included in that statement, not sure: One use case is where agents want to know the exact economic resource being traded, for example in an ongoing supply chain or a one-time purchase. Another use case is to use classifications higher up in the taxonomy hierarchy to do more general potential matching of offers and requests in a search mode.

If ontologies were stored on public hApps

That is interesting. How public can an hApp be? Can it be available to non-holochain apps as well as any holochain user?

versioning- with the web, someone can update an ontology and you have no control over this

Yeah, seems like no matter where or how this kind of data is served, it would be good to have git-like functionality.

pospi commented 5 years ago

How public can an hApp be? Can it be available to non-holochain apps as well as any holochain user?

For sure! If using a standard public capability token, in essence it's just an HTTP gateway to a data cluster.