Klammerung bei boolscher Algebra

zabki

Registriertes Mitglied
ich bin bei einer engl.sprachigen Datenbank registriert, bei der die "advanced search" folgendermaßen fuktioniert:

für jeden gewünschten Suchbegriff wird eine eigene Zeile genommen - durch Klicken kann man die Anzahl der Zeilen erweitern. Diese Zeilen werden durch einstellbare boolesche Operatoren miteinander verknüpft.

Meine Frage nun, wie wird da die Klammerung aussehen?

Wenn ich z.B. eingebe:

x AND y OR z,

heißt das dann "x AND (y OR z)", oder "(x AND y) OR z" ?

Da gibts doch sicher einen Standard.

Vielen Dank für Antworten!

edit:

korrigiere im Thema: boolsche --> boolesche
 
Zuletzt bearbeitet:

zabki

Registriertes Mitglied
... ach so, also abhängig von den Operatoren, nicht von der Folge. Ich hatte mir vorgestellt, daß entweder von vorn nach hinten oder von hinten nach vorn geklammert würde, also immer entweder "(x OP1 y) OP2 z" oder "x OP1 (y OP2 z)".

aber wenn das Klammern operatorenabhängig ist, erklärt das auch, warum ich durch Probieren nix Gescheites rausgekriegt habe.

dann probier ichs mal so. Danke!
 

pauli

Registriertes Mitglied
Also da wäre ich mir nicht so sicher ob das immer gilt, die Problematik besteht auch beim Programmieren mit IF-Abfragen und Variablen: es gibt zig Programmiersprachen, es könnte so oder so implementiert sein: am besten ist grundsätzlich klammern, das ist immer zuverlässig und leichter lesbar.
 

zabki

Registriertes Mitglied
es könnte so oder so implementiert sein: am besten ist grundsätzlich klammern, das ist immer zuverlässig und leichter lesbar.
das Problem ist, daß für jedes Suchwort eine eigene Zeile ausgefüllt wird, und die Zeilen mit Operatoren verknüpft werden (s.Eingangsbeitr.). Da kann ich also nicht klammern. Wenn es also stimmt, daß die default-Klammerung operatorenabhängig ist, kann ich gar nicht beliebige Suchfragen formulieren. Wäre es so, wie ich zunächst angenommen hatte, also die implizite Klammerung entweder von rechts aus oder von links aus erfolgen würde, hätte ich da Wahlmöglichkeiten.

... aber stimmt gar nicht, mit "Klammern auflösen" müßte es gehen:

Frage soll sein "(x OR y) AND z", also entgegen der Rangfolge geklammert, dann formuliere ich:
"x AND z OR y AND z", dann brauchts keine Klammern.
 

TomS

Registriertes Mitglied
Also da wäre ich mir nicht so sicher ob das immer gilt, die Problematik besteht auch beim Programmieren mit IF-Abfragen und Variablen: es gibt zig Programmiersprachen, es könnte so oder so implementiert sein: am besten ist grundsätzlich klammern, das ist immer zuverlässig und leichter lesbar.
Es ging ja nicht um eine Programmiersprache sondern um die reine Mathematik.

Nun könnte es tatsächlich unterschiedlich implementiert sein, und natürlich kenne ich nicht alle Programmiersprachen, aber in den mit vertrauten gilt die o.g. Priorität.
 

pauli

Registriertes Mitglied
Stimmt, habe das "Datenbank" oben implizit mit IT gleichgesetzt, was er aber garnicht meinte :D
 
Oben