Re: Tentative contribution to the "URI issue"

> Michael Kifer wrote:
> 
> >>> There is also an issue of signatures when we will start allowing or
> >>> disallowing certain individuals to play roles of predicates, functions,
> >>> etc.  We cannot assign a signature to any given constant, so sorts could be
> >>> one of the grouping mechanisms here. For instance, if a dialect (like, say,
> >>> WSML) allows only URIs to be concepts then only the constants of the sort
> >>> rif:uri will have Boolean signatures.
> 
> >> What I was asking for in the meeting and my earlier message was what's 
> >> the use case where we would allow something *other* than symbolic 
> >> constants identified by a URI to be used as concepts?  The point being 
> >> that I'm not convinced there is one.
> > 
> > RIF is an exchange language for rule sets that are not necessarily web-related.
> > There are tons of such sets.
> 
> RIF is a *web language* for rule exchange.
> 
> The fact that many rule sets to be exchanged may not be web-related is 
> irrelevant. Using URIs to identify functions, predicates and individuals 
> doesn't mean that the things talked about are necessarily "on the web" 
> or web-related. The point of using URIs is in order to have globally 
> unique identifiers to facilitate interchange.

why is it that all symbols must have a unique id?
Unique Ids might be facilitating some forms of exchange, but these are the
forms that you have in mind and I don't.

The difference between you and me here is that you want to force me into
using unique Ids, which I resist. And I don't force you to do anything.
If you want to exchange stuff and use unique id's for that -- all the power
to you! I just don't want you to force me to exchange rules this way.

> We've already agreed all this at F2F4 where we also started to talk 
> about the round tripping issues for how rules vendors can ensure that 
> their current naming schemes are not lost when mapping to URIs and back.

Which seems to suggest that some folks aren't thrilled about the unique Id
thing.


> > Second, in a complex KB, you always have internal predicates that shouldn't
> > be visible outside. Why should they be given a URI?
> 
> Scoping is a different and largely orthogonal (though important) issue.

Not different if you tell me that everything is global.

> I agree that there is no particular benefit in forcing purely internal 
> locally-scoped predicates to have globally unique names.

Cool. 

> Nor is there any particular problem. Again, the scope for an identifier 
> is different from it's name.

There is a difference between scoping/hiding and authorization.
If you tell me that the global name of an object is foobar213 then
it has global scope. If all names are like that then there is no scoping.
You can still prevent me from doing business with foobar213, but this is
called authorization, not scoping.

> Remember also that the URIs can be relative 
> to the document base so a translator doesn't have to invent a URI for 
> each identifier separately it can simply assign a base URI to identify 
> the document and the relative URIs can look just like the existing local 
> names[*].

First, I am afraid that when everything is worked out then more footnotes
([**], etc.)  will be needed.  Second, this again implies a particular way
you want to exchange/merge things. I just don't want to worry about all
that namespace crap when I build a system.
I see that I am not the only one in the group.
(I feel weird to find vendors on my side :-)


> However, I don't see how this addresses my question about the use of 
> sorts as a grouping mechanism for signature assignment.  Are you 
> suggesting that there be a sort for locally-named symbols separate from 
> a sort for globally-named symbols?

There might be such a sort. It is also possible to allow other symbols,
like strings or even numbers, to be used as predicate names locally. I am
sure you don't believe that you can foresee all the useful ways people might
find for RIF and rule out anything else.

> Are you suggesting that we might want 
> to use that to, for example, allow globally named symbols as predicates 
> but not locally named symbols?

Yes, if you want to have a dialect (or profile, or whatever) then in that
dialect you allow Boolean and arrow sorts to be associated only with
symbols of the sort URI.


	--michael  


> Dave
> 
> [*] OK that's a slight over simplification, in practice you would need 
> to normalize the local name to avoid illegal URI characters (spaces in 
> identifiers for example) but that is easily addressed.
> 
> 
> 

Received on Wednesday, 21 March 2007 16:29:19 UTC