Some and Only (SOMLY)
Contents
Some and Only (SOMLY)#
In Gendifs gibt es nur ein SOME. Das aus der Description Logic zugehörige ONLY ist nicht implementiert, und wird wohl auch nicht implementiert werden.
Angedacht ist aber ein SOMLY:
Kombination von SOME und ONLY
nicht als Klassifikationsregel, sondern als Integritäts-Check.
ONLY#
Wir zeigen zunächst, worin die Idee von ONLY besteht.
Beispiel:
Pferd
BYd has_color SOME Color
Schimmel
SOME weiß
Semantik: Ein Pferd, das eine weiße Farbe hat, ist ein Schimmel. Auch ein Zebra wird also als Schimmel klassifiziert.
Wenn wir wollen, dass als Schimmel nur Pferde klassifiziert werden, die ausschließlich weiße Farben haben, scheint eine naheliegende Lösung in Anlehnung an OWL so aussehen:
Pferd
BY has_color SOME Color
Schimmel
ONLY weiß
Scheinbare Semantik: Ein Pferd, das ausschließlich weiße Farben hat, ist ein Schimmel.
Problem 1, bekanntes unintuitives Verhalten: In Verbindung mit der Open World Assumption (OWA) greift die Bedingung “ausschließlich weiß” auch für Pferde, bei denen die Farbe nicht angegeben ist: Pferde ohne Farbe werden als Schimmel klassiert! Mögliche Lösung:
Ein ONLY ohne SOME ist meistens nutzlos. In der Praxis wird man bei einem ONLY immer auch ein SOME angeben. Z.T. gibt es auch das Konstrukt “Some and Only”.
Problem 2: Ein Reasoner kann auf Basis von SOME weiß
ein Pferd schnell als Schimmel klassifizieren, wenn sobald er ein Beispiel einer weißen Farbe entdeckt. Bei einem ONLY weiß
muss ein Reasoner allerdings feststellen, ob ein Pferd noch eine andere, und zwar nicht-weiße Farbe hat (was die Klassifizierung verhindern würde). Dazu muss eine Negation ausgewertet und eine aufwändige Sub-Suche gestartet werden.
Problem 3: Negationen, die Zyklen enthalten (wie z.B. männlich := not(weiblich)
und weiblich := not(männlich)
, führen zu einem Versagen des Inferencing. Klassische Lösung: https://de.wikipedia.org/wiki/Stratifikation_(Logik) von Negationen. Mögliche Lösung:
Da in einer Gendifs-Map die Axiome in einer wohlgeordneten Reihenfolge vorliegen, könnte man das für eine syntaxbasierte Stratifikation nutzen. So könnte man z.B. vereinbaren, dass in einem
not(..)
die negierte Klasse bereits vorher vereinbart sein muss - eine zirkuläre Negation wie beim männlich-weiblich-Beispiel wird so ausgeschlossen.Durch solche Verfahren steigt die Komplexität der Modellierung und des Inferencing allerdings erheblich.
Alle drei Probleme sind schwerwiegend. Wo Lösungen bekannt sind, führen diese zu einer erheblichen Komplexitätserhöhung im Inferencing. Um solche Komplexität nicht entstehen zu lassen. verzichten wir in Gendifs auf alle Elemente, die konzeptuell eine direkte oder versteckte Negation erfordern - also auch auf ONLY.
SOMLY#
Angedacht (aber noch nicht entschieden, das überhaupt zu implementieren) ist ein SOMLY. Die Semantik wäre:
ähnlich wie SOME_and_ONLY
aber nicht mit Klassifikationsaxiomen hinterlegt (die eine Negation enthalten würden),
sondern mit einer Integritätsbedingung versehen.
Beispiel:
Pferd
BY has_color SOME Color
Schimmel
SOMLY weiß
Rappe
SOMLY schwarz
Zebra
SOME weiß
SOME schwarz
(Klassifikations-) Semantik identisch mit SOME.
Dazu wird syntaktisch die eine Subclass von integrity constraint violation (ICV) angelegt, hier z.B. ICV_Schimmel
: Eine Pferd, das dank seiner weißer Farbe als Schimmel klassifiziert wurde, dazu aber auch noch andere Farben hat, wird auch als ICV-Schimmel
klassifiziert. Über SQL kann man dann die Instanzen der ICV-Klassen abfragen und die Applikation entscheiden lassen, wie damit umzugehen ist.
Die anderen Farben können zur Kompilierungszeit syntaktisch aus der lokalen Umgebung (hier: BY has_color SOME Color
) bestimmt werden.
Aber das ist insbesondere für User nur schwer nachzuvollziehen. Vorläufig steht SOMLY nicht auf der Prioritäten-Liste.