Re: RIF/OWL and holds [was: [RIF] homework ...]

>On Tue, 2006-10-17 at 02:07 +0200, jos.deroo@agfa.com wrote:
>> Dan Connolly wrote:
>> [...]
>> >> Are functions, relations to be purely local to the XML source file?
>> >
>> > Yes... er... no... the "holds" relation and "list" function that I'm
>> > using are intended to be globally defined. So I guess I should have
>> > made URIs for those.
>> 
>> I really prefer the variable predicate declaration instead of the
>> "holds" function as I think it is a matter of implementation wether
>> your inference engine uses a "holds" or for instance a Prolog =..
>
> True, but those "implementation details" also show up in the semantics.
>  http://www.w3.org/2005/rules/wg/wiki/A.1_Basis%3A_Positive_Conditions
>
> I wouldn't mind hiding the holds predicate in the semantics...
>
> i.e. limit IR to just the one holds predicate and change...
>
> Atomic formulas: I(r(t1,...,tn)) = IR(r)(I(t1),...,I(tn))
>
> to
>
> Atomic formulas: I(r(t1,...,tn)) = IR(holds)(I(r),I(t1),...,I(tn))
>
> but I'm not sure that's as appealing overall.

For OWL interpretations the recommendation says

[[
P  is a subset of R , the properties of I.
 I                 I
EXT  is used to give meaning to properties,
   I
and is a mapping from P  to P(R  x R ).
                       I       I    I
]] -- http://www.w3.org/TR/owl-semantics/rdfs.html#5.2

so why have that I(r) only (and not its extensional
interpretation)?


> And I'm not sure what a Prolog =.. is.

It is the so called "univ"

[[
T =.. L [ISO] 
  The list L is built with the functor and arguments
  of the term T. If T is instantiated to a variable,
  then L must be instantiated either to a list whose
  head is an atom, or to a list consisting of just a
  number. 
]] -- http://www.ncc.up.pt/~vsc/Yap/documentation.html


As a practical example, euler1 translates the n3 rule

{?P a owl:TransitiveProperty. ?X ?P ?O. ?S ?P ?X} => {?S ?P ?O}.

into the euler5 prolog rule

'log:implies'(lf(('rdf:type'(_P,'owl:TransitiveProperty',_), atom(_P), 
_U4238646=..[_P,_X,_O,_], _U4238646, atom(_P), _U4238649=..[_P,_S,_X,_], 
_U4238649, atom(_P), _U4238652=..[_P,_S,_O,'_'])), lf((_U4238652)),_).


-- 
Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/

Received on Thursday, 19 October 2006 22:39:40 UTC