2009-05-09 25 views
3

In OWL diese Abfrage es feineSeltsames Abfrageverhalten in OWL!

"person and hasChild min 3" 

funktioniert gut und es gibt mir alle Personen, arbeitet die

mehr als 3 Kinder haben, aber dieses nicht

"person and hasChild max 3" 

geben nicht funktionieren sollte ich alle Personen, die weniger als 3 Kinder haben, aber es funktioniert nicht

hat jemand eine Idee dazu ??

Warum "min" funktioniert, während "max" keine Ergebnisse liefert!

Dank

+0

Tippfehler: "mehr als 3" -> "3 oder mehr" – Kaarel

+0

Tippfehler: "weniger als 3" -> "weniger als 4" – Kaarel

Antwort

8

Der Grund, warum die zweite Abfrage ist Open World Assumption und möglicherweise auch "nicht funktioniert" (das Fehlen) Eindeutiger Name Assumption.

Sagen Sie bitte angeben:

John lives in Paris. 
Mary lives in Paris. 

Folgende Fragen werden in der folgenden Art und Weise durch einen OWL Reasoner beantwortet.

Who lives in Paris? John, Mary 
Does at least one thing live in Paris? YES 
Do at least two things live in Paris? Maybe 
Is Paris a person? Maybe 
Is John and Mary the same thing? Maybe 
Is Paris and Mary the same thing? Maybe 
Does at most one thing live in Paris? Maybe 

Immer wenn der OWL Reasoner mit einem kommt zurück Vielleicht, die Benutzeroberfläche (wie Protege) neigt dazu, nichts zu zeigen.

Um die Antworten zu erhalten, die Sie wahrscheinlich möchten, müssen Sie der Wissensdatenbank viel mehr Informationen hinzufügen, z.

Mary is not John. 
Everybody who lives in Paris is either John or Mary. 

Hoffe das hilft. Wenn Sie sich anschauen, wie wenig Aufrufe Ihre letzten Fragen zu Stack Overflow erhalten haben, würde ich sagen, dass es besser ist, diese Fragen vorerst auf der Protege-Mailingliste zu stellen. Oder noch besser, schau dir die Archive der Mailinglisten an. Die Open-World-Assumption-Fragen tauchen dort mindestens einmal pro Woche auf.

1

Um Kaarels Punkte hinzuzufügen und Ihre Beispielabfrage zu kommentieren, wird ein Reasoner die von Ihnen behaupteten Tripel betrachten und fragen: "Könnte es andere behauptete Tripel geben, die ich im Moment nicht habe, die das behaupten Person hat zusätzliche Kinder, die sie über die "Drei-Kind-Grenze" setzen? " Da die Antwort auf diese Frage "vielleicht" lautet, kann der Reasoner (als Tatsache) nicht darauf schließen, dass die Person in Ihrem Beispiel maximal drei Kinder hat.

Negative Behauptungen sind für einen Reasoner aufgrund der offenen Weltannahme ziemlich schwer zu beweisen. Ihre "Person darf nicht mehr als drei Kinder haben" fragt in dieses Problem ab. Um zu erreichen, wonach Sie suchen, können Sie behaupten, dass die Person eine Klasse von Eltern mit drei Kindern oder weniger eingibt. Andererseits, wenn Sie das getan haben, würden Sie wahrscheinlich die Abfrage an erster Stelle nicht benötigen.