(4) I got a bit confused by the use of the term 'KindOf'. what would be the difference between (Type, Type of or Is-a) Vs 'KindOf'. As a non-native to English speaker, I initially interpreted 'KindOf' as '…used when you are trying to explain or describe something, but you cannot be exact…' (https://dictionary.cambridge.org/dictionary/english/kind-of).
I wasn't sure whether you are trying to use 'KindOf' as an alternative to 'Is-a' or do you expect 'KindOf' to be able to handle ambiguity (some sort of probability)
@draggett noted that the intent is to distinguish between an instance of some type and a subtype of some type, and to provide built-in support in the rule language for convenience in matching along chains of subtypes. Names with built-in, i.e. reserved, semantics should start with an @, hence we could here use @isa and @kindof or similar names.
See related comment from @ngcharithperera:
@draggett noted that the intent is to distinguish between an instance of some type and a subtype of some type, and to provide built-in support in the rule language for convenience in matching along chains of subtypes. Names with built-in, i.e. reserved, semantics should start with an
@
, hence we could here use@isa
and@kindof
or similar names.