On Fri, Mar 14, 2014 at 4:23 PM, Miguel Bento Alves
<[email protected]> wrote:
> Hi Joshua,
>
> r1 is a backward rule [r1: Š <- Š]. In my understanding, backward rules
> are things that relate two resources, overcoming the limitations of OWL
> and OWL2.
A backward rule doesn't relate two resources. A backward rule
provides a pattern for a triple as the head, and some conditions under
which the triple can be inferred. E.g.,
[r: (?s rdf:type ?superclass) <-
(?s rdf:type ?subclass)
(?subclass rdfs:subClassOf ?superclass)]
When the reasoner tries to infer a triple of the form (?s rdf:type
?superclass), it will try to use this rule by checking whether matches
for the body can be found. It doesn't make sense to say that the rule
r relates two resources; that's not what a rule is. A rule is a
basis for for inferring triples from existing data and other
conditions.
> Thus, I think that the example that I gave make sense:
> (r1 is a backward rule)
>
> (?f r1 ?e),
> (?f p1 ?p),
> (?e p2 ?p),
> makeTemp(?bn) ->
> (?bn rdf:subject ?f),
> (?bn rdf:predicate p3),
> (?bn rdf:object ?e),
> (?bn exa:certainty "0.9"^^xsd:decimal).
Again, I'm not sure what (?f r1 ?e) is supposed to mean. In the rule
syntax, it's just a triple with variables as the subject and object,
and a URI r1 as the predicate. In the example rule r that I gave,
what would you expect (?s r ?o) to mean?
> Moreover, this rule works well if I materialize r1.
> Construct {
> (?f r1 ?e)
> }
> Where {
> (?f r1 ?e)
> }
> (of course, if I materialize a rule I remove from ruleset).
I'm not sure what this is supposed to mean. If you construct the data
that matched a triple pattern, then you'll get the same data that
matched the triple pattern. I'm not sure how this is "a
materialization of r1".
> Do you think that this understanding of what is a (backward) rule is not
> correct?
I think it's not correct, but I'm still not sure what you think it
would mean to have a backward rule [r: ... <- ...] and then write a
triple pattern (?s r ?o). Rules aren't predicates, so it doesn't
make sense to me to try to use them as predicates.
//JT
--
Joshua Taylor, http://www.cs.rpi.edu/~tayloj/