Currently, most of the inference heuristics do not support second order
predicates (predicates symbols that are variables in RIF frames / positional
terms: ?C(:Foo :Bar ) ). These, however in theory can be supported via
specialization. Consider the following from the third owl:oneOf OWL
[http://www.w3.org/TR/owl-test/byFunction#function-oneOf test case]:
Source graph:
{{{
@prefix first: <http://www.w3.org/2002/03owlt/oneOf/premises003#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
first:T2 owl:oneOf ( first:large first:medium first:small ).
first:myT a first:T1.
first:T1 owl:oneOf ( first:small first:medium first:large ).
}}}
The following rule should apply to the query for first:T2(first:MyT):
{{{
Forall ?X ?C ?L ( ?C(?X) :- And( owl:oneOf(?C ?L) list:in(?X ?L) ) )
}}}
In particular, for every statement in the OWL/RDF graph where the predicate is
owl:oneOf, a specific rule can be generated for the subject (first:T2 in this
case):
{{{
Forall ?X ?C ?L ( first:T2(?X) :- And( owl:oneOf(first:T2 ?L) list:in(?X ?L) )
)
}}}
Original issue reported on code.google.com by chime...@gmail.com on 28 Aug 2010 at 1:48
Original issue reported on code.google.com by
chime...@gmail.com
on 28 Aug 2010 at 1:48