ISSUE-31: RIF Issue about Disjoint Domains for Individuals, Functions, and Predicates

ISSUE-31: RIF Issue about Disjoint Domains for Individuals, Functions, and Predicates

http://www.w3.org/2005/rules/wg/track/issues/31

Raised by: Deborah Nichols
On product: Technical Design

RIF Issue about Disjoint Domains for Individuals, Functions, and Predicates
Posted by Deborah Nichols on behalf of RIF Chairs

The following issue is identified in section 2.1 of the RIF Core 
(http://www.w3.org/2005/rules/wg/core/draft-20070323.html): 

Issue: Should the symbols used for predicates, functions, and individuals be 
distinct in the RIF Core?  [Ed. - The sets of individual constants, function 
symbols, and predicate symbols should be pairwise disjoint.]  In RIF Core, 
this can be achieved by making sure that no symbol has more than one signature 
at the same time. Dialects can easily extend this by simply allowing the same 
symbol to have multiple signatures. 

This issue was briefly discussed at the end of the 2007-03-20 telecon (see 
Minutes:  http://lists.w3.org/Archives/Public/public-rif-wg/2007Mar/att-
0066/20-rif-minutes.html) but remains unresolved.  An open question:  If the 
above sets are pairwise disjoint in RIF Core, how can we remove that 
restriction in a RIF dialect:  Can this be done by extending the assignment of 
signatures to constants?  An example could be useful.

Editor’s note: If the same symbol is allowed to have multiple sorts in the 
Core (sec. 2.1, below*), doesn’t this override the restriction that the 
symbols denoting individuals, functions, and predicates belong to disjoint 
sets?  Or, has the RIF Core so far not said anything about the names of 
individuals, functions, and predicates – all of which are covered by the sort 
rif:uri, and distinguished within that sort by signatures?  Are individuals, 
functions, and predicates distinct sorts in the Core?  Speaking only for 
myself, it would be helpful to review and perhaps further explain in the Core, 
the roles and interactions of sorts and signatures.  --DLN

*The current RIF Core draft, section 2.1, states that:
[T]he RIF Core language does not separate symbols used to denote individuals 
from symbols used as names for functions or predicates. Instead, all symbols 
are drawn from the same universal set. When desired, separation between the 
different kinds of symbols is achieved through the mechanism of sorts. In 
logic, the mechanism of sorts is used to classify symbols into separate 
groups. Currently RIF Core supports the sort rif:uri for URIs, and the sorts 
xsd:long (http://www.w3.org/2001/XMLSchema#long), xsd:decimal 
(http://www.w3.org/2001/XMLSchema#decimal), xsd:time 
(http://www.w3.org/2001/XMLSchema#time), xsd:string 
(http://www.w3.org/2001/XMLSchema#string), and xsd:dateTime 
(http://www.w3.org/2001/XMLSchema#dateTime). Other sorts (such as xsd:double, 
xsd:date, and a sort to represent temporal duration) might be added in future 
drafts. 
To make RIF a Web language and to facilitate extensibility, the underlying 
logic of RIF is not only multi-sorted (i.e., allows multiple sorts), but it 
also allows symbols to be polymorphic (i.e., the same symbol is allowed to 
have several sorts). Some sorts can be disjoint and others not. RIF dialects 
will be able to decide which sorts will be allowed for predicate symbols, 
which for function symbols, and so on. 

Received on Monday, 26 March 2007 17:43:43 UTC