This is an archive of an inactive wiki and cannot be modified.

Issue 31

A discussion page for

TO understand the advantages and disadvantages of having RIF Core support disjoint domains for individuals, predicates, and functions (as well as potentially variables), I have broken the choices down as follows in order of what I perceive as increasing complexity:

  1. DS: Disjoint sorts. Each symbol (URI) denotes at most one of a predicate, function or individual. This is the approach used in e.g. OWL-DL and many other implemented logical languages.

  2. ONDS: Overlapping names, disjoint sorts (aka punning). The same symbol can denote any of predicate, function, and/or individual, but based on (typically syntactic) context, they refer to unique semantic objects, so that the predicate "http://xyz/P" is a different object than the individual "http://xyz/P". This is the approach used in the proposed OWL 1.1. When the context is syntactic, the interpretation prevents a predicate from having a predicate.

  3. OS: Overlapping sorts. Symbols uniquely denote semantic objects but these objects themselves can be more than one thing (a function and/or a predicate and/or an individual). This is the approach used in common logic. A common misconception is that this is necessarily second order, but as shown in my logic textbook (Enderton), it is still first order.

  4. OSR: Overlapping sorts with reflection. As above but in addition the syntactic operators of the language are themselves objects in the domain which can be predicated. This is the approach used in RDF/S and OWL Full.

Comment (MK): As far as I understand, nobody was proposing DS. Note that RIF is based on a refinement of OS. The issue was whether we restrict the signatures in RIF Core (not in all dialects!) to achieve the effect of DS in order to simplify interoperability with formalisms that have limited expressiveness.






No good technical or mathematical reason for this simplification.

Many languages make this assumption.

Any DS ruleset has the same meaning in ONDS, OS, and OSR.


Translation from ONDS rules into a DS system are purely syntactic, requiring only the introduction of new symbols

For the SW, URIs as symbols will no longer denote atomic elements/referents/objects in the domain, rather they must be interpreted contextually. Thus URIs that are shared because e.g. they point to some shared web resource, like an application data model or repository, may lose their meaning.

I am concerned that, since "everyone must support the core", any level of complexity above DS may turn people away from writing RIF translators, although no one has expressed this view AFAIK.


Highly expressive. It is possible to encode any OS rule in DS or ONDS .

The encodings are quite complex and may not be round-trippable