Re: local names

> 
> > If you use symbols from the sort iri then you have a global constant. If
> > you use constants from some other sort (e.g., string or we might introduce
> > a separate sort for that) then they are local names.
> > Where do you see a problem?
> 
> > > Actually, I'm inclined to put this subject on hold until we're farther
> > > along with concrete examples of RIF usage.  Once we have some working
> > > RIF examples, it should be easy enough to see what difference it makes
> > > to toggle some names between global and local.
> 
> Just that -- what differences will users see?  Imagine someone
> developing a ruleset, and for the sake or argument assume they are
> writing directly in RIF Core.  Now, there are some situations in which
> they have to decide whether to use an IRI, a local name, or (perhaps) an
> existentially quantified variable.  What factors should they take into
> account in making their decision?  What possible impact might their
> decision have?  
> 
> Or, to approach that a little differently, give me two small example
> rulesets -- one which uses local names and one which use global names
> (IRIs) -- which are good examples of when one should use one vs the
> other.   (A third one, with exivars in it, assuming we added them at the
> ruleset scope, might be good, too.)
> 
> I guess use whatever syntax you like (if you want to get into this now).
> 
> My sense is that one uses local names and exivars much like pronouns in
> natural language, but that doesn't fit with the claim that local names
> are rigid designators.

A bNode is something like (an unknown) father of Mary:

Exists ?F father(?F,Mary).

A local name is used in a situation like the following. I may have a
database of all kinds of people with their relationships like brother, sister,
parent, etc. I might want to export only the facts that tell the outsiders
whether someone is a relative of somebody else, but not the specifics.
So, then I could have these rules:

"http://mysite.com/foo#relative"^^rif:iri(?X,?Y) :- parent(?X,?Y).
"http://mysite.com/foo#relative"^^rif:iri(?X,?Y) :- sibling(?X,?Y).
....
"http://mysite.com/foo#relative"^^iri(?X,?Y) :-
    	"http://mysite.com/foo#relative"^^iri(?Y,?X).
...

For parent, sibling, etc., I chose local names. They are not iris and I
don't have to worry about their names being globally unique (or even unique
within my organization). I don't need to worry that in some language that
name might be an indecent or offensive word, etc. These names are simply
invisible outside of my program and I don't need to waste time on naming
these items.


	--michael  


>      -- Sandro
> 

Received on Monday, 30 April 2007 16:59:31 UTC