- From: Adrian Giurca <giurca@tu-cottbus.de>
- Date: Tue, 17 Oct 2006 18:45:26 +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>
Sorry may be I don't understand the question. If you have an append atom inside of the body of a rule this can contain for example, object variables (typed one) i.e. <r2ml:GenericAtom r2ml:predicateID="append"> <r2ml:arguments> <r2ml:ObjectVariable r2ml:name="U" r2ml:classID="ex:Customer"/> <r2ml:ObjectVariable r2ml:name="V" r2ml:classID="ex:Customer"/> <r2ml:ObjectVariable r2ml:name="W" r2ml:classID="ex:Customer"/> </r2ml:arguments> </r2ml:GenericAtom> Here is something similar with explicit casting in programming languages. In an intuitive execution model supposing that U and V are bound and W is the result, then W it will contain Customer objects. I hope this it is helpful. -Adrian Francis McCabe wrote: > > This misses the point. I was interested in how the *type* information > would be carried. > Frank > > On Oct 17, 2006, at 7:24 AM, Adrian Giurca wrote: > >> 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> >>> >>> >>> >>> >> > > -- Dr. Adrian Giurca http://www.informatik.tu-cottbus.de/~agiurca/
Received on Tuesday, 17 October 2006 16:45:42 UTC