Anytype’s idea of having types, objects, relations metaphor to model data is certainly new in Note taking apps. Since types are used to model real world entity, it would be great to have subtypes which would help Anytypers to model and group real world data in a much more understandable manner.
Here is an example of where such feature would help the user to better structure their data:
Say a user has a type named Animal. The animal type would contain common relations belonging to all animals such as a relation to specify whether it is Marine / Land animal, another to specify Carnivore, Herbivore, Lifespan, etc. Now if a user wants to create a set of dogs, he would need to create another type named Dog and duplicate the same relations again and add additional relations specific to a dog. Having a subtype feature would reduce this redundency since the Dog would be a subtype of Animal. The dog could have additional relations which are not part of the animal type. Creating a set of Animal would include dogs and other animals subtypes as well, but only displaying the relations common to all animals and not subtype specific relations. However, creating a set of Dog would not display other animals.
To those who have programming experience, what I’m suggesting is basically Inheritence from Object Oriented Programming.
There are these two feature requests I know of which requests the ability to specify the scope of a relation and type. So a relation which takes only Humans would display only objects of humans. if that gets implemented, a relation could then be specified to take an Animal and then it could take any Animals such as a Dog or a cat however if it is specified to take only a Dog, it would not take other animals for its value
It would be a great idea to populate the Relation Type page with functionality to make a hierarchical structure so that it will be easier to manage related aspects of certain fields in a certain relation type (like Tag and Status relation type, that can be populated with a text, word, or phrase)
Say, I want to populate the ‘Tag’ Relation Type with some fields/area of subjects under:
Knowledge/Discipline that contains subtypes of Biology, Geography, Physics, Chemistry, History, etc. Under History I also want it to contain subtypes of Ancient history, Modern history, National history, etc.
Life Activities that contains subtypes of Personal, Social, Professional
Or maybe I am a Biology innuendo that wants to apply Taxonomic rank system, from Kingdom, down to Subspecies for animals, plants, fungi, bacterias, and viruses.
I am myself as a PARA Method user will find this function helpful to organize Tags for the Area of Responsibility that has a lot of, you’ve guessed it… Areas.
Agree very much, although as a note I wouldn’t want types to be restricted to a single parent; multiple inheritance or a mixin approach would be the way to go. As you say, this also solves the problem of relation type scope nicely (that all relation types are global seems very wrong to me).