Pellet reasoner not able to understand the rule using class properties as the condition
We created a rule using SWRL. In that rule refers to a class's properties where that class itself is an object of a tuple.
rule = Imp()
rule.set_as_rule("""Variant(?v), hasObservation(?v , ?obs), hasCategory(?obs, ?cat), hasCategory(?cat, ?grp),prefLabel(?grp, ?lbl), stringEqualIgnoreCase(?lbl, 'Phenotype Match'),hasScore(?obs, ?score), equal(?score, 0) -> UnKnownPhenotype(?v)""")
After removing stringEqualIgnoreCase condition the rule is working. But with the condition, the reasoner not able to classify the instance.
Re: Pellet reasoner not able to understand the rule using class properties as the condition
Class properties are a feature of Owlready, but they are not supported by other tools like SWRL, Pellet or Protégé.
Class properties are translated by Owlready into restrictions (by default, SOME restriction). If you want to use them in SWRL, you should check whether the class is a subclass of a restriction having the appropriate property and value.