- From: Adrian Giurca <giurca@tu-cottbus.de>
- Date: Tue, 17 Oct 2006 16:24:09 +0200
- To: Francis McCabe <frankmccabe@mac.com>
- CC: Gerd Wagner <wagnerg@tu-cottbus.de>, 'Chris Welty' <cawelty@frontiernet.net>, "'Public-Rif-Wg (E-mail)'" <public-rif-wg@w3.org>
Dear all, Francis McCabe wrote: > > Gerd: > Looking at the example XML encoding, I would predict that you would > have some trouble representing generic or polymorphically typed > entities. > Can you show how you would encode: > > concat:[list[t],list[t]]=>list[t]. > concat([],L)=>L. > concat([E,..L],M)=>[E,..concat(L,M)]. > > (This is a function, but cold easily be expressed using predications.) > Frank > The standard append Prolog predicate is expressed by two derivation rules. append([],L,L). append([X|L1],L2,[X|L12]) :- append(L1,L2,L12). We need just a built-in function i.e. the list constructor and a GenericEntityName i.e. the empty list. In R2ML this it will be: <r2ml:DerivationRuleSet> <r2ml:DerivationRule> <r2ml:Documentation> <r2ml:SourceCode> append([],L,L). </r2ml:SourceCode> </r2ml:Documentation> <r2ml:conclusion> <r2ml:GenericAtom r2ml:predicateID="append"> <r2ml:arguments> <r2ml:GenericEntityName r2ml:genericEntityID="ns:emptyList"/> <r2ml:GenericVariable r2ml:name="L"/> <r2ml:GenericVariable r2ml:name="L"/> </r2ml:arguments> </r2ml:GenericAtom> </r2ml:conclusion> </r2ml:DerivationRule> <r2ml:DerivationRule> <r2ml:Documentation> <r2ml:SourceCode> append([X|L1],L2,[X|L12]):- append(L1,L2,L12). </r2ml:SourceCode> </r2ml:Documentation> <r2ml:conditions> <r2ml:GenericAtom r2ml:predicateID="append"> <r2ml:arguments> <r2ml:GenericVariable r2ml:name="L1"/> <r2ml:GenericVariable r2ml:name="L2"/> <r2ml:GenericVariable r2ml:name="L12"/> </r2ml:arguments> </r2ml:GenericAtom> </r2ml:conditions> <r2ml:conclusion> <r2ml:GenericAtom r2ml:predicateID="append"> <r2ml:arguments> <r2ml:GenericFunctionTerm r2ml:genericFunctionID="ns:list_constructor"> <r2ml:arguments> <r2ml:GenericVariable r2ml:name="H"/> <r2ml:GenericVariable r2ml:name="L1"/> </r2ml:arguments> </r2ml:GenericFunctionTerm> <r2ml:GenericVariable r2ml:name="L2"/> <r2ml:GenericFunctionTerm r2ml:genericFunctionID="ns:list_constructor"> <r2ml:arguments> <r2ml:GenericVariable r2ml:name="H"/> <r2ml:GenericVariable r2ml:name="L12"/> </r2ml:arguments> </r2ml:GenericFunctionTerm> </r2ml:arguments> </r2ml:GenericAtom> </r2ml:conclusion> </r2ml:DerivationRule> </r2ml:DerivationRuleSet> -Adrian Giurca > > On Oct 17, 2006, at 6:20 AM, Gerd Wagner wrote: > >>> We expect to plan the bulk of the next telecon discussing the >>> technical >>> proposal [http://www.w3.org/2005/rules/wg/wiki/CORE], especially the >>> syntax. >> >> >> Here is a proposal how to extend it in order to accommodate typing. >> >> -Gerd >> <REWERSE RIF Condition Language Extension Proposal.html> > > >
Received on Tuesday, 17 October 2006 14:24:30 UTC