On 22/03/17 20:07, Dimov, Stefan wrote:

There's a second question here. Apparently, I'm not there yet, but let me put 
here the contents of inference_rules.rules. I'm trying to define a simple 
transitive rule - if (A is a B) and (B is a C), then A is a C:


@prefix rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
@prefix ex: http://example.com/
@prefix xs: http://www.w3.org/2001/XMLSchema#
@prefix ao: http://ao.com/

[isA:
(?a ao:isA ?b)
(?b ao:isA ?c)
                 ->
                 (?a ao:isA ?c)
         ]


Did I define it correctly?

The rule looks correct for making ao:isA a transitive property.

[Aside: Be careful when using predicates called "isA". In the early days of semantic networks people used an informal notion of "is a" before they realized it conflates different concepts e.g. generalization (rdfs:subClsssOf) v.s. instantiation (rdf:type).]

Dave

Reply via email to