2017-06-15 4 views
1

Ich versuche, ein Axiom der folgenden Art auszudrücken:Protege: Wie kann man ein Axiom ausdrücken, das besagt, dass Klasse A mit Klasse B verwandt ist, die den Datenwert X hat?

„Wasser hat einige physikalische Größe Schmelztemperatur, die einen Wert von 100,0 hat:“ Ich habe

versucht, die folgende Klasse Ausdruck definig:

Water SubClassOf (hasPhysicalQuality some (MeltingTemperature and hasValue value 100.0f)) 

Und ich habe die folgenden Aussagen:

Water    Type     owl:Class 
hasPhysicalQuality Type     owl:ObjectProperty 
hasValue   Type     owl:DataProperty 

this_water   Type     Water 
this_temperature Type     MeltingTemperature 
this_water   hasPhysicalQuality this_temperature 
this_temperature hasValue    50.0f 

Als ich das Pellet reasoner lief, war ich ab Inkonsistenz zu finden, da die auf dieses Wasser bezogene Schmelztemperatur (this_temperature) einen Wert von 50,0f, nicht 100,0f hat. Der Reasoner gab jedoch keine Inkonsistenz an.

Was mache ich hier falsch?

EDIT: Die richtigen Axiome erforderlich waren:

Water SubClassOf (hasPhysicalQuantity exactly 1 MeltingTemperature) 
Water SubClassOf (hasPhysicalQuanlity some (MeltingTemperature and (hasValue value 100.0f) 
hasValue Type owl:FunctionalProperty 
+0

Ich habe es herausgefunden. Der Ausdruck hätte sein sollen: Water SubClassOf (nur hasPhysicalQuality (MeltingTemperature und hasValue Wert 100.0f)) – mrclutch31

+0

Zu Ihrem Kommentar: Was ist, wenn 'This_water' auch' BoilingTemperature' hat? –

+0

Das ist wahr ... meine Lösung löst nur den Fall, wenn es eine physikalische Größe hat. Es wäre toll, wenn jemand anderes eine bessere Lösung vorschlagen würde. – mrclutch31

Antwort

0

Sie sollten Ihre Daten Eigenschaft funktionsfähig machen - oder, wie Sie in den Kommentaren sagen, eine Mächtigkeit Einschränkung Anwendung.

+0

Ich musste die Dateneigenschaft Funktion machen UND eine Kardinalitätseinschränkung für die Objekteigenschaft für jede spezifische Eigenschaft setzen. – mrclutch31

Verwandte Themen