W3C home > Mailing lists > Public > public-rif-wg@w3.org > August 2008

Re: CORE: nascent issues list

From: Axel Polleres <axel.polleres@deri.org>
Date: Tue, 19 Aug 2008 10:42:03 +0100
Message-ID: <48AA956B.2090406@deri.org>
To: Gary Hallmark <gary.hallmark@oracle.com>
CC: kifer@cs.sunysb.edu, Dave Reynolds <der@hplb.hpl.hp.com>, RIF WG <public-rif-wg@w3.org>

Gary Hallmark wrote:
> 
> you'd also need to extend builtins to support multiple arities for the 
> same function symbol.

Gary, pls see the Editorial note in DTB... wouldn't some shorthand like 
the one defined in the beginning of Section 4.5 do the trick?

> I think the builtin approach can be made to work but it's rather ugly 
> for my use case, because I always need to assert a classification and 
> the frame slots, so I always have a rule head like
> 
> And(func:genSym(long-argument-list)#MyType  
> func:genSym(long-argument-list)[slot1->value1 slot2->value2])
> 
> I prefer something more purpose-built:
> 
> New MyType[slot1->value1 slot2->value2]
> 
> This way, you don't have to write the long-argument-list twice -- you 
> don't write it all.
> 
> We can explain that the semantics are equivalent to the above where 
> long-argument-list is constructed from the rule ID, its Forall 
> variables, and an occurrence number (should multiple New formulas appear 
> in the same rule).
> 
> Michael Kifer wrote:
>>
>> On Sun, 17 Aug 2008 10:18:22 +0100
>> Dave Reynolds <der@hplb.hpl.hp.com> wrote:
>>
>>  
>>> Michael Kifer wrote:
>>>    
>>>> On Fri, 15 Aug 2008 16:07:45 +0100
>>>> Dave Reynolds <der@hplb.hpl.hp.com> wrote:
>>>>
>>>>      
>>>>> (c) some genSym builtin
>>>>>         
>>>> Just 0.02c: this cannot be in the Core or in BLD.
>>>>       
>>> Surely it could if it was deterministic (in which case genSym is not 
>>> a great choice of name).
>>>     
>>
>> Exactly. A builtin function instead of a gensym is a different matter.
>>
>>  
>>> Perhaps something like:
>>>
>>> """
>>> func:genSym
>>>
>>> (?arg1, ... ?argn;  func:genSym(?arg1, ... ?argn))
>>>
>>> Generates and returns a constant uniquely determined by the values of 
>>> the n arguments. This constant takes the form:
>>>     "gensym:ID"^^rif:local
>>> where ID is a string uniquely determined by the values of the 
>>> arguments ?arg1 through to ?argn. For example, this might be a digest 
>>> of the concatenation of the canonical lexical forms for each argument.
>>> """
>>>
>>> Thus to use it to generate skolem constants the rule author would 
>>> need to explicitly include a rule identifier and the values of the 
>>> universally quantified variables in the set of genSym arguments.
>>>     
>>
>> This would not be a Skolem function. You need an infinite supply of those
>> functions to achieve the behavior of Skolem functions. But because our
>> situation has restricted syntax, a builtin like this can go a long way, I
>> agree.
>>
>>
>>     --michael 
>>
>>  
>>> Would something along those lines be reasonable?
>>>
>>> Dave
>>>     
>>
>>   
> 


-- 
Dr. Axel Polleres, Digital Enterprise Research Institute (DERI)
email: axel.polleres@deri.org  url: http://www.polleres.net/

Everything is possible:
rdfs:subClassOf rdfs:subPropertyOf rdfs:Resource.
rdfs:subClassOf rdfs:subPropertyOf rdfs:subPropertyOf.
rdf:type rdfs:subPropertyOf rdfs:subClassOf.
rdfs:subClassOf rdf:type owl:SymmetricProperty.
Received on Tuesday, 19 August 2008 09:42:45 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:33:53 GMT