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:
otterrai:
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.
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:
otterrai:
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:
Ora dovresti vedere le entità con ID> 10 con "stato" nell'elenco dei tipi