| meyer88 | |||||
|
Fehlertolerante Systeme oder Fehlertolerante Suchalgorithmen sind in der Lage, auftretende Fehler abzufangen und entsprechend, auch auf die Fehlermeldung abgestimmt, zu reagieren. Unvollständigkeiten oder Fehler bei der Eingabe in ein Suchenfeld sollten dem Nutzer nicht einfach als 'error messages' quittiert werden. Eine mögliche Strategie für fehlertolerantes Suchen mit PHP und MySQL ist: 1. Eine Datenbankabfrage sucht nach einem Stichwort im Klartext. // (...) $Titel_Stichwort="Mainboard"; $STRSQL_01="SELECT master.idmaster, master.titel, master.body FROM master WHERE master.titel = \"$Titel_Stichwort\" Order by master.titel asc limit 0,1 "; // (...) 2. Liefert die MySQL-Abfrage keine Ergebnismenge wird das Suchwort mit einer "function" in ein phonetisches Suchmuster umgewandelt. 2.1 Dies könnte in PHP mit dem Befehl soundex() geschehen oder 2.2 mit einer 'eigenen' buchstabenorientierten Substitutionsmethode: // Basierend aus dem Artikel "Schreibweisentolerante Suchroutine in dBase implementiert" // c't - Magazin für Computertechnik 1988, Heft 10, Georg Wilde, Carsten Meyer function meyer88($Substitution){ // Alle Buchstaben werden zunächst in Großbuchstaben umgewandelt $Substitution=strtoupper($Substitution); // Buchstabenorientierte Substitutionsmethode: // wandelt Buchstabenkombinationen in gleichlautendes Equivalent um $finde = array( "SC","SZ","CZ","TZ","TS","DS","PH","PF", "QU","UE","EU","AE","OE","KS","EI","EY", "K","G","Q","Ü","I","J","ß","F","W","P","T"); $ersetze = array( "C","C","C","C","C","C","V","V", "KV","Y","OY","E","Ö","X","AY","AY", "C","C","C","Y","Y","Y","S","V","V","B","D"); for($I=0;$I<27;$I++){ $Substitution = str_replace($finde[$I],$ersetze[$I],$Substitution); // Doppelte Buchstaben werden entfernt $Substitution = preg_replace('/(.)\1/', '$1', $Substitution); } return $Substitution } 3. Die nächste Datenbankabfrage sucht nun das neue Suchmuster. Denkbar ist ein relationales Datenbanksystem: Mit der Tabelle "master" und einer 1:n-Beziehung zu einer Detail-Tabelle: "slave" mit dem Feld: "phonetik" ⇔ Bedingung hierfür ist, dass zuvor in der Tabelle ein mit demselben Algorithmus (meyer88) indexiertes Feld "phonetik" generiert wurde. $Titel_Schlagwort_Phonetik=meyer88($Titel_Stichwort); $STRSQL_02="SELECT distinct master.idmaster, master.titel, master.body FROM slave Right JOIN master ON slave.idslave = master.idmaster WHERE slave.phonetik = \"$Titel_Schlagwort_Phonetik\" Order by slave.phonetik asc"; 4. Die Ergebnismenge der Schlagwörter aus $STRSQL_02 lassen sich nun auf mehrere Arten mit dem ursprünglichen Suchwort: "$Titel_Stichwort" vergleichen. ⇒ In PHP gibt es hierfür zwei Methoden, um ein Maß für die Unterschiede zweier Wörter zurückzuliefern: similar_text() => Berechnet die Ähnlichkeit zweier Zeichenketten und levenshtein() => Die Levenshtein-Distanz wurde erstmalig 1965 von dem russischer Mathematiker Wladimir Iossifowitsch Lewenstein, als die "minimale Anzahl von Löschungen, Einfügungen und Ersetzungen" definiert, die ein Wort X in das Wort Y umwandelt. |
|||||
| Siehe auch: Semantische-Suchmachine NEOGRID Künstliche-Intelligenz Objektorientierte-Programmierung | |||||
| NEOGRID | |||||
|
Neogrid ist ein Online EDV Lexikon für Computer Fachwörter und Online Kompendium der Informationstechnologie. The Grid und komplexe Suchanfragen, Antwortmaschine, Wolframs Alpha Der Name leitet sich ab aus Neo und The Grid, einer zukünftigen Entwicklung des Internet, bei der komplexe Suchanfragen möglich sein sollen, die Informationen generieren, die in derselben Form vorher nicht (zumindest nicht statisch) vorhanden waren. Im Grid ist also semantisches Surfen möglich. Vorläufer gibt es schon heute: das Simile (Semantic Interoperability of Metadata and Information in unLike Environments) Projekt des MIT (Massachusetts Institute of Technology). Eine Anwendung ist z. B. Piggy Bank. Mit diesem Plug-In wird der Firefox Browser zu einem semantischen Browser umgewandelt. Auch manche Suchmaschinen können schon direkte Fragen beantworten: Answer Bus und Ask Jeeves. Semantische Suchmaschinen sind eine zukünftige Anwendungsform im Internet. Wolframs Alpha ist eine Weiterentwicklung und eine Antwortmaschine, welche direkte Fragen beantworten kann. Die Algorithmische Power zieht Stephen Wolfram aus seiner Software Mathematica (http://www.wolfram.com/products/mathematica/index.html) und der Mathworld (http://mathworld.wolfram.com/). Neogrid Features NEOGRID erlaubt auch intelligentes Suchen und Finden: es werden alle Ergebnisse angezeigt, die in einer phonetischen Verbindung mit dem Suchwort stehen, sortiert nach dem Grad der Übereinstimmung. Die verwandten Begriffe erlauben es, die fachliche "Umgebung" eines Suchergebnisses zu erforschen. Man kann sich auch anhand der verwandten Begriffe durch einen bestimmten Themenkreis durchklicken. Eine weitere Besonderheit sind die redaktionell bearbeiteten Suchbegriffe, die für jeden EDV-Begriff angelegt werden. Einen historischen Überblick über die EDV-Geschichte bietet der Menüpunkt Computer-Geschichte: die EDV Zeitleiste erlaubt dem Anwender, wenn er will nach Filtern sortiert, EDV-Begriffe im historischen Zusammenhang zu erforschen. Von 1646 bis heute sind die wichtigsten Ereignisse der EDV Historie auf einen Blick visualisiert. Die Filter umfassen Hardware, Software, Firmen, Personen, Informatik, Netzwerk, Mikrochip, Programmiersprachen, Internet, Highlights der EDV Geschichte und Jahreszahlen. Jahreszahlen können übrigens auch ins Suchfeld eingegeben werden. Damit können gezielt Begriffe abgefragt werden, die mit einem bestimmten Datum in Verbindung stehen. NEOGRID hat eine fehlertolerante Suche integriert. Durch die fehlertolerante Suche werden dem User bei Vertippern oder Rechtschreibfehlern eine Auswahl von Begriffen dargeboten, die eine gewisse phonetische Ähnlichkeit zu den Eingaben des Users aufweisen. Es werden Alternativen angeboten die aus dem Pool der readaktionell bearbeiteten Suchbegriffe stammen und jedem Suchbegriff entsprechend zugeordnet sind. Im IT Glossar können die wichtigsten Fachbegriffe der Welt der Informationstechnologie nachgelesen werden. Neogrid IT-Blog Zusätzlich hat der Neogrid e.V. einen IT-Weblog eingerichtet, der sich mit IT-Themen und Themen aus anderen Wissenschaften beschäftigt. HIXGRID - The Science Network Ein weiteres Projekt des Neogrid e.V. ist das Wissenschaftsnetzwerk HIXGRID (hixgrid.de), welches den 'Advanced Science Ansatz verfolgt, einer Mischung aus interdisziplinärer Wissenschaft und Elementen aus der emotionalen Intelligenz (Motto: Feel Science). Wissenschaftler aus der ganzen Welt sind eingeladen, den Stand der Wissenschaft voranzutreiben und ihre Ideen und Arbeiten zu präsentieren und mit anderen Interessierten zu teilen. Die Science-Plattform HIXGRID wurde mit der Open Source Social Network Engine Elgg erstellt. |
|||||
| Siehe auch: Science-Network-Hixgrid meyer88 Künstliche-Intelligenz Semantische-Suchmachine computerkunst PHP MySQL Objektorientierte-Programmierung Elgg | |||||
| Link: http://mathworld.wolfram.com | |||||
| Apache-Cassandra | |||||
|
Apache Cassandra ist ein Hauptprojekt der Apache Software Foundation und ermöglicht die Integration von NoSQL Datenbanken. NoSQL Datenbanken sind insbesondere sinnvoll bei Projekten mit hoher Transaktionslast (grosse Datenbanken, hohes Transaktionsvolumen) und hoher Transaktionshäufigkeit. Zudem ermöglichen NoSQL Datenbanken eine bedarfsgerechtere Abbildung der zu verarbeitenden Daten, z.B. durch eine Graphendatenbank die durch ihren Graphenbaum mit Knoten speziell zur Beschreibung einer Follower-Struktur (wie bei Twitter) oder zur Abbildung von einer Freunde-Struktur bei sozialen Netzwerken (wie z.B. bei Facebook) geeignet ist. Cassandra ist offen skalierbar, sehr zuverlässig und eignet sich auch für eine Distributed Database (verteilte Datenbank). Zugrunde liegt eine Key-Value Datenbank (eine weitere Form der NoSQL Datenbank). Eigenschaften von Cassandra sind auch die Beherrschung von Fehlertoleranz und Replikation, Dezentralisierung und die Verwendung eines Rich Data Model. |
|||||
| Siehe auch: Apache-HTTP-Server Apache-Tomcat NoSQL datenbank Twitter | |||||
| Link: http://cassandra.apache.org | |||||