Frage

Ich benutze Protege 4.3 und SWRL, um mit Pellet als Reasoner einige Regeln zu treffen.

Ich versuche, die SWRL -Gebäude zu verwenden, aber ich kann es überhaupt nicht zum Laufen bringen.

Die Regel ist korrekt, aber Schützling scheint überhaupt nicht zu erkennen (z. B. SWRLB: Greaterthan)

Könnten Sie mich über den Prozess informieren, der für die Protege 4.3 die SWRL -Bauarbeiten erforderlich ist?

Hier ist ein Beispiel für eine Regel:

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

Mein Problem ist, dass es überhaupt nicht zu erkennen scheint swrlb:greaterThan. Der Fehler sagt:

Owlruntimeexception: org.protege.editor.owl.model.classexpression.owlexpressionParSerexception: Aufgetroffenes SWRLB: Greaterthan in Zeile 1 Spalte 30.

War es hilfreich?

Lösung 2

In Protegé (4.2.0 sowieso, aber ich würde erwarten, dass das gleiche für 4.3 gilt), müssen Sie das Präfix nicht hinzufügen swrlb: im Herausgeber. Benutz einfach greaterThan. Wenn Sie dies beispielsweise im Editor eingeben:

rule editor

Du wirst kriegen:

the rendered rule

Andere Tipps

Klasse: Zustand

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

Derzeit unterstützt Protege (ich verwende das V 5.5.0) SWRLB bei der Argumentation (Hermit, Pellet, ...) nicht. Du kannst:

  • Erstellen Sie eine Klasse "Status"
  • Fügen Sie eine "äquivalente" Regel wie oben in der "Statusklasse" hinzu
  • Führen Sie den Reasoner aus

Sie sollten jetzt die Entitäten mit id> 10 mit "Status" in der Typ -Liste sehen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top