Current knowledge representations, such as ontologies, are almost exclusively devoted to saying what things are, but this is too narrow a viewpoint to handle complex knowledge.
The use of true and false, of existence and nonexistence, of set inclusion and exclusion, in natural language is almost in balance. Any system for effective knowledge representation has to be able to represent both sides with equal facility.
including but not limited to
Monday through Friday, excluding Holidays.
this Lease shall exist only so long as such trustee
There exist no subleases
Particularly with properties acquired by inheritance, it is necessary to override the process of inheritance, and handle cases like
"an injured detective"
"a man with one leg"
"a broken shaft"
where the object's properties are modified in some way by a relation or set operation on it.
In cases where there is inheritance from multiple parents, and inheritance is potentially overridden by local properties at any level, it becomes difficult to phase the inheritance process to achieve valid results.
"Tenant" can be a verb or a noun. There will usually be an article to make it clear what is meant
The tenant is in default.
Who will tenant that property?
The article can be used to prune the verb meaning.
When Tenant is made a defined term (the "Tenant"), it no longer requires the article, and one is not used, because the defined term can only be a noun. But "Tenant" is an invocation of "tenant", so without intervention, it will acquire properties of noun and verb. We have to allow Tenant to acquire other properties, but stop it from acquiring the properties of verb.
If we have an arrangement like
and searching proceeds in a first, then each subsequent link fashion, we will acquire the properties of verb before we see that it can only be the child of noun. The links cannot be arbitrarily rearranged, because there may be several effects we wish to achieve.
We can achieve the desired effect if, when encountering an ONLYCHILD, we see whether we have already acquired some forbidden properties, and restart with an augmented notset.
This still isnt good enough. The noun "tenant" is a person who tenants (the subject of the ToTenant relation), while the verb tenant is a child of ToTenant, the relation. We can split tenant into two meanings, the noun and the verb.
We assert that the local meaning of Tenant is only as a noun. We could move the INVOCATION connection so it is directly on the noun meaning, but where there are several levels, this would not be practicable. Instead, we can carry our restrictions along with us.
The ONLYCHILD relation will cut off the verb, but Tenant will still be found as a child of ToTenant, which would be wrong. Now we are faced with, at a MEANING operator, dynamically deciding which path is consistent, based on the notset (if there are no relevant entries in the notset, all paths are consistent).
Around fifty of the system's relations have the subject or object of the relation and one form of the relation verb sharing the same name:
Architect ToArchitect subject of relation
Bankrupt ToBankrupt object of relation
We need to differentiate between the subject/object and the relation, and we can do so using meanings, inconsistency and ONLYCHILD
The two operators, NOTCHILD and ONLYCHILD, provide the ability to exclude one thing, or to exclude everything else, and do it dynamically, so new alternatives unthought of at the time are also constrained. They do this by restarting the inheritance search if an already acquired parent is found to be forbidden.