Pregunta

Estoy usando Protege 4.3 y SWRL para hacer algunas reglas con pellet como razonador.

Estoy tratando de usar el SWRL Builtins, pero no puedo hacer que funcione en absoluto.

La regla es correcta, pero el protegido no parece reconocer en absoluto el construido (por ejemplo, SWRLB: Greatthan)

¿Podría informarme sobre el proceso necesario para hacer que el Protege 4.3 identifique los SWRL Builtins?

Aquí hay un ejemplo de una regla:

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

Mi problema es que no parece reconocer en absoluto el swrlb:greaterThan. El error dice:

OwlRuntimeException: org.protege.editor.owl.model.classexpression.owlexpressionParserException: encontrado SWRLB: GreaterThan en la línea 1 Columna 30.

¿Fue útil?

Solución 2

En Protégé (4.2.0, de todos modos, pero esperaría que lo mismo sea cierto para 4.3), no necesita agregar el prefijo swrlb: en el editor. Solo usa greaterThan. Por ejemplo, si escribe esto en el editor:

rule editor

obtendrás:

the rendered rule

Otros consejos

Clase: Estado

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

Actualmente protegido (estoy usando el V 5.5.0) no es compatible con SWRLB en el razonamiento (ermitaño, pellet, ...). Puedes:

  • Crea una clase "Estado"
  • Agregue una regla de "equivalente" como arriba en la "clase estatal"
  • ejecutar el razonador

Ahora debería ver las entidades con ID> 10 con "Estado" en la lista de tipos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top