Examples of how typing works
Here is some text that could be integrated in the spec:
Example: if ?X is an argument to two parameters with the types xsd:int and xsd:string, then ?X is not consistently typed according to (1) and given the regular type hierarchy given in https://spec.ottr.xyz/rOTTR/0.2/ (this image https://spec.ottr.xyz/rOTTR/0.2/type-hierarchy.png), since there exists no type that is subtype of both xsd:int and xsd:string.
Example: Let X be an IRI, say ex:blue, and let ex:blue be an argument to 3 different parameters with the types rdfs:Resource, ottr:IRI, owl:Class. Then X is consistently typed according to , since owl:Class is a subtype of all these types. Since the type of ex:blue is LUBottr:IRI, then this type is compatible with owl:Class. So the term ex:blue is in this case consistently typed.
Example: Let X be an IRI, ex:yellow, and let it be an argument to parameters with the types owl:Class and owl:ObjectProperty. Then in the type hierarchy there exist no subtype of these two types, so the term is not consistently typed. If one wants to support this case one can use a extended type hierarchy that includes types that are subtypes of legal combinations of OWL punning; this is given in https://spec.ottr.xyz/rOTTR/0.2/#2.3_Pun_types.