Beim nächsten Treffen der Ruby on Rails User Group Schweiz am 3. September habe ich die Gelegenheit eine Kurzpräsentation zu halten. Ich werde die letzte Version von Cassandra vorstellen, meiner Prolog inspierten Ruby Library.
Seit der letzten Version hat sich wieder einiges getan: So werden Variablen nicht mehr mit Symbolen gekennzeichnet, sondern sie beginnen einfach mit einem Underscore.
Mit der neuen Version können jetzt ganz einfach 'Kategorien' erstellt werden, indem eine Klasse Cassandra einfach erweitert (extend). Damit können Prädikate nun auch Klassen zugeordnet werden, Cassandra löst diese beim suchen auf und gibt die entsprechenden Instanzen zurück.
Dies funktioniert auch über Vererbungen oder Mixins hinweg.
Bin jedenfalls gespannt auf das Feedback ...
Posts mit dem Label Cassandra werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Cassandra werden angezeigt. Alle Posts anzeigen
Montag, 1. September 2008
Montag, 25. Februar 2008
Erster Blick auf Cassandra
Es wird Zeit Cassandra vorzustellen, ein Projekt, das im Januar 2008 seine erste Version 0.2 erreicht hat.
Cassandra ist der Versuch eine logische Programmiersprache zu gestalten, die in einer objekt-orientierten Umgebung anwendbar ist. Logische Programmiersprachen wie Prolog folgen der Prädikatenlogik, wodurch das Prädikat im Vordergrund steht:
In Cassandra soll nach wie vor, das Objekt im Vordergrund stehen, das Prädikat hat eine ähnliche Stellung wie Objektattribute:
Cassandra besteht ebenfalls wie Prolog aus Fakten, die mit einem Ausrufezeichen gekennzeichnet werden, Regeln und Abfragen (Queries), die mit einem Fragezeichen gekennzeichnet werden:
Cassandra wurde als DSL (Domain Specific Language) in Ruby implementiert. Symbole dienen hier als Variablen.
Cassandra kann bereits aus Regeln und Fakten logische Schlüsse ziehen, wie die oben erwähnten Beispiele zeigen. Der nächste Schritt besteht nun darin Datenstrukturen einzubinden und Vererbung zu ermöglichen.
Cassandra ist der Versuch eine logische Programmiersprache zu gestalten, die in einer objekt-orientierten Umgebung anwendbar ist. Logische Programmiersprachen wie Prolog folgen der Prädikatenlogik, wodurch das Prädikat im Vordergrund steht:
human(socrates). parents(child, father, mother).
In Cassandra soll nach wie vor, das Objekt im Vordergrund stehen, das Prädikat hat eine ähnliche Stellung wie Objektattribute:
socrates.human! child.parents!(father, mother)
Cassandra besteht ebenfalls wie Prolog aus Fakten, die mit einem Ausrufezeichen gekennzeichnet werden, Regeln und Abfragen (Queries), die mit einem Fragezeichen gekennzeichnet werden:
socrates.human? # => true :x.mortal!.if :x.human # => x = socrates
Cassandra wurde als DSL (Domain Specific Language) in Ruby implementiert. Symbole dienen hier als Variablen.
Cassandra kann bereits aus Regeln und Fakten logische Schlüsse ziehen, wie die oben erwähnten Beispiele zeigen. Der nächste Schritt besteht nun darin Datenstrukturen einzubinden und Vererbung zu ermöglichen.
Abonnieren
Posts (Atom)