Question

I am using Protege 4.3 and SWRL to make some rules with Pellet as a reasoner.

I am trying to use the SWRL builtins but i cannot make it work at all.

The rule is correct but Protege does not seem to recognise at all the builtin (e.g. swrlb:greaterThan)

Could you inform me on the process necessary to make Protege 4.3 identify the SWRL builtins?

Here is an example of a rule:

Asset(?p), id(?p, ?x), swrlb:greaterThan(?x, 10) -> State(?p)

My problem is that it doesn't seem to recognize at all the swrlb:greaterThan. The error says:

OWLRuntimeException: org.protege.editor.owl.model.classexpression.OWLExpressionParserException: Encountered swrlb:greaterThan at line 1 column 30.

Was it helpful?

Solution 2

In Protégé (4.2.0, anyways, but I'd expect the same is true for 4.3), you don't need to add the prefix swrlb: in the editor. Just use greaterThan. For instance, if you type this in the editor:

rule editor

you'll get:

the rendered rule

OTHER TIPS

Class: State

id some xsd:int[> "10"^^xsd:int]

Currently Protege (I'm using the v 5.5.0) doesn't support swrlb on reasoning (Hermit, Pellet, ...). You can:

  • create a class "State"
  • add an "EquivalentTo" rule like above in the "State class"
  • run the reasoner

You should now see the entities with id>10 with "State" in the Types list

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top