Ontology, tagging and a perfect world
I always had this project to have THE πͺ perfect tagging system, that will let hierarchical directories and files explode π₯ in their stupidity. The Thing that will allow anyone to search for a study on penguins made less than 2 years ago and published in any open science libraries that I read about between two and one month. The kind of thing everyone dream about.
I first tried to implement a tagging π· system as my first rust project (which didn't go very far, I admit). It showed me how hard it is to set up metadata, you have to define a grammar π, that determine what data can have a metadata. Then I tried to document it, defining a set of rule to create such a system. First, by describing two concepts: tag, and relationship.
I quickly realized that you can implement boolean logic here, with set and sub-set. So I had: tags, relationships and operations, at the end. The missing piece was a taxonomy.
Then I tried to model simple system, and failed to determine which grammar would describe the best what is a resource, even what is a location of a resource (because then, you need a protocol, an authority, and at this point, you understand you just need to follow URI format, but you want to go beyond that, so you try to model authority, etc.).
Then I discovered it π€©. The name of what I was thinking of. It already exists. Made by smart (weird?) people: ontology. Seems hard, but fun (at least for me, at first glance !). I'll try to experiment with that in a (hopefully) near future. I always try too much to go fully abstract/conceptual, which can be a curse. It's seem cool for this at least.
Now the trap to avoid is redefining the wheel, I hope think all these smart people already defined norm to follow. Have to find (and understand !) them now.
The more I go into this rabbit hole π³, the more I feel like it take a long time to get it done right. If I want to tag a document (let's say a scientific paper π), I have to define what metadata I CAN add to this βtypeβ of document (and then, is βtypeβ a metadata ?).
I have to install protΓ©gΓ© (to edit OWL and/or RDF files) to define a knowledge graph stored in a Neo4j/GraphDB database. Maybe I'll post on this kind of thing in a (hopefully π ) near future.
At least I know where I am headed now π«‘ !