Domanda

Sto usando Protege 4.3 e SWRL per creare alcune regole con Pellet come ragionatore.

Sto cercando di usare gli SWRL Builtins ma non posso farlo funzionare affatto.

La regola è corretta ma Protege non sembra riconoscere affatto in tutto il builtin (ad esempio SWRLB: Greaterthan)

Potresti informarmi sul processo necessario per rendere Protege 4.3 Identificare i SWRL Builtins?

Ecco un esempio di regola:

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

Il mio problema è che non sembra riconoscere affatto il swrlb:greaterThan. L'errore dice:

OwlRuntimeException: org.protege.editor.owl.model.classexpression.owlexpressionParserexception: incontrato SWRLB: Greaterthan alla riga 1 colonna 30.

È stato utile?

Soluzione 2

In Protégé (4.2.0, comunque, ma mi aspetto che lo stesso sia vero per 4.3), non è necessario aggiungere il prefisso swrlb: Nell'editore. Basta usare greaterThan. Ad esempio, se lo digiti nell'editor:

rule editor

otterrai:

the rendered rule

Altri suggerimenti

Classe: stato

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

Attualmente Protege (sto usando il V 5.5.0) non supporta SWRLB sul ragionamento (Eremita, Pellet, ...). Puoi:

  • Crea uno "stato" di classe
  • Aggiungi una regola "equivalente" come sopra nella "classe statale"
  • Esegui il ragionatore

Ora dovresti vedere le entità con ID> 10 con "stato" nell'elenco dei tipi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top