Pergunta

Estou usando o Protege 4.3 e o SWRL para fazer algumas regras com o Pellet como um motivo.

Estou tentando usar o SWRL Buildins, mas não posso fazê -lo funcionar.

A regra está correta, mas o Protege não parece reconhecer em toda a construção (por exemplo, swrlb: Greaterthan)

Você poderia me informar sobre o processo necessário para tornar o Protege 4.3 identificar os Buildins SWRL?

Aqui está um exemplo de regra:

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

Meu problema é que ele não parece reconhecer em todos os swrlb:greaterThan. O erro diz:

OwlRuntimeException: org.protege.editor.owl.model.classexpression.owlexpressionParseRexception: SWRLB ENCTENHADO: GORAGHAN NA LINHA 1 Coluna 30.

Foi útil?

Solução 2

Em Protégé (4.2.0, de qualquer maneira, mas eu esperaria que o mesmo seja verdadeiro para 4.3), você não precisa adicionar o prefixo swrlb: no editor. Apenas use greaterThan. Por exemplo, se você digitar isso no editor:

rule editor

você terá:

the rendered rule

Outras dicas

Classe: Estado

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

Atualmente, o Protege (estou usando o V 5.5.0) não suporta o SWRLB no raciocínio (eremita, pellet, ...). Você pode:

  • Crie uma classe "estado"
  • Adicione uma regra "equivalente" como acima na "classe do estado"
  • execute o Razão

Agora você deve ver as entidades com ID> 10 com "estado" na lista de tipos

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top