Eine alternative Lösung besteht darin, eine Beziehung durchzugehen, die es erlaubt, die Dinge genauer zu definieren. Beispiel:
Um eine Beziehung zu definieren, beginnen Sie mit der Definition von Rollen, die einen Kontext für die Beziehung zwischen den Dingen bereitstellen. Zum Beispiel:
insert
thing-on-top-of-table sub role;
table-with-thing-on-top sub role;
Sie dann sagen, wie diese Rollen auf die Beziehung verknüpfen und zu den Einheiten:
insert
sits-on sub relation
relates thing-on-top-of-table
relates table-with-thing-on-top;
table plays table-with-thing-on-top;
book plays thing-on-top-of-table;
Die oben so ziemlich das Schema Ihrer einfachen Wissensbasis ist.
Jetzt können wir einige Daten hinzufügen. Nehmen wir an, ein Buch steht auf einer Tabelle:
insert
$book isa book;
$table isa table;
(thing-on-top-of-table: $book, table-with-thing-on-top: $table) isa sits-on
Natürlich können Sie die Dinge von hier aus erweitern. Zum Beispiel können Sie Ihrem Buch über eine Ressource einen Titel geben.
Side Hinweis: Ressourcen Vs Entities
Die Faustregel für etwas als Ressource oder als ein anderes Unternehmen zugeordnet ist hängt davon ab, wie viele Informationen Sie im Modell zum Ausdruck bringen wollen und auch, wenn etwas sein kann, definiert durch ein Datenliteral (zB String, Int, Long, etc.)
Zum Beispiel ist ein Buch eine Entität, weil es aus mehreren Ressourcen besteht, die zur Identifizierung des Buches beitragen. I.e. der Titel, isbn usw. . Diese Ressourcen sind dagegen einfache Datenwerte. Ein Titel ist nichts anderes als eine Zeichenkette, also gibt es keinen Grund, den Titel zu einer Entität zu machen, das sollte nur eine Ressource sein.
Können Sie bitte angeben, was Sie unter "Buch als komplexes Konzept" verstehen? Was versuchst du zu erreichen? Möchten Sie, dass das Buch als eine Art Tisch zurückgegeben wird oder möchten Sie, dass das Buch Teil der Tabelle ist oder möchten Sie, dass Tabellen und Bücher in einer anderen Beziehung stehen? – MiKo