PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Board Analyzer Library


etuli
18.10.2005, 15:32
moin,

Um was geht es beim Board Analyzer?

Es handelt sich beim Board Analyzer um eine OS unabhaengige, objekt-orientierte, in PHP 5 entwickelte und unter der LGPL lizensierte Bibliothek zur strukturellen Analyse von Bulletin Boards, wie bsw. dem vBulletin Board und dem php Bulletin Board (phpBB).

Mit Struktur ist einerseits die Struktur der Foren und Kategorien gemeint, die ein jedes solches Board besitzt, sowie Statistiken zum Board (Mitglieder, Themen, Beitraege, usw.) und Elementen der Struktur (Forenbeitraege, usw.).

Wozu ist solch eine stukturelle Analyse notwendig?

Das Projekt ist ein ableger des Board Search Project, einer Suchmaschine fuer eben solche Bulletin Boards. Die zuverlaessige und vollstaendige Analyse von Bulletin Boards ist essentieller Bestandteil dieses Projekts, welche mit diesem Projekt eine besondere Betonung findet.

Ziel des Board Analyzer

Ziel des Projektes ist es eine vollstaendige Analyse der groessten und am haeufigsten eingesetzten Board Software Systeme zu ermoeglichen. Hierzu zaehlen:

phpBB (>=2.0)

phpBB fuer phpNuke (>=2.0)

vBulletin Board (>=2.0)

Woltlab Burning Board (>=2.0)

Angaben in Klammern sind Versionsangaben der jeweiligen Board-Software.

Zu einer vollstaendigen Analyse gehoeren:

die korrekte Analyse der Kategorien (sofern vorhanden) und Foren

die Analyse des Board-Titels

die Analyse der Board-Statistiken (wenn moeglich/teilweise)

die Analyse der Statistiken der Foren und Kategorien (wenn moeglich/teilweise)

die Analyse der Beschreibungen der Foren und Kategorien (wenn moeglich/teilweise)

Zu den Statistiken des Boards gehoeren:

die Anzahl vorhandenen der Themen und Beitraege

die Anzahl der registrierten Mitglieder

Zu den Statistiken der Foren und Kategorien gehoeren:

die Anzahl der enthaltenen Themen und Beitraege

das Datum des letzten Beitrags

Die Analyse soll anhand einer beliebigen gegebenen URL vorgenommen werden, ohne das der Typ und dir Version des Bulletin Boards bekannt sind.

An nicht-funktionalen Anforderungen soll erfuellt werden:

die Algorithmen sollen hinsichtlich der Anzahl von unterschiedlichen Internetanfragen optimiert werden

das Software-Design soll vollstaendig objekt-orientiert und gepraegt von Entwurfmusten sein

Zum ersten Punkt ist zu sagen, dass Anfragen nach Internetseiten die zeitintensivsten Aktivitaeten sind, welche ausgefuehrt werden und die Qualitaet zwar mit der Anzahl der Anfragen steigt, aber damit gleichzeitig auch die benoetigte Gesamtzeit fuer die Analyse eines einzelnen Bulletin Boards. Unterschiedlich ist in sofern zu betonen, als das gleiche Anfragen durch das Vorschalten eines Proxies beschleunigt werden koennen, ohne das zusaetzlicher Zeitaufwand entsteht.

Die Website des Projekts findet sich unter http://www.webreeze.de/boardana. Die Sourceforge Seite unter https://sourceforge.net/projects/boardana .

Nochmal mit etwas mehr Gelaber ;o)

So denn. Fuer alle die sich noch nicht recht etwas unter diesem Projekt vorstellen koennen. Es geht um eine Bibliothek zum Analysieren von Bulletin Boards, wie z.B. diesem hier (Software: vBulletin Board). In einigen Situationen kann es nun interessant sein, welche Foren dieses Board hat, wie viele Beitraege jedes dieser Foren verbirgt, wie viele Mitglieder dieses Board hat und einige anderen Aspekte, welche das Board betreffen. Dies ist bsw. der Fall, wenn man eine Suchmaschine entwickelt, welche genau diese Eigenschaften verwendet um Board zu finden.

Das Problem an dieser Geschichte ist allerdings, dass es nicht nur ein Board gibt, sondern viele. Und diese vielen Boards sind nicht aehnlich, sondern sehr unterschiedlich. Das mag einem beim ersten Blick zwar nicht ins Auge springen, aber spaetestens, wenn man sich die Quelltexte der Seiten ansieht. Einige Boards haben Kategorien, andere nicht. Usw. Insg. ist die Menge an Varianzen enorm und muss durch viel Arbeit erkannt und in Form von Regeln formuliert werden, welche diese Varianzen ignorieren, und im Stande sind, Boards zuverlaessig und moeglichst vollstaendig zu analysieren. Diese Arbeit kann recht trickreich sein, stellt aber eben deshalb einen besonderen Reiz dar. Wer also seine Kenntnisse in regulaeren Ausdruecken einmal auf die Probe stellen moechte, der ist hier genau richtig. :)

Dem Projekt etwas beizusteuern ist einfach. Es gibt viele kleine Aufgaben, welche erledigt werden muessen. Allerdings gibt es ebenso Aufgaben, welche komplex und ermuedend sind. Zu ersteren zaehlt die Abstraktion, also die Verallgemeinerung, von Inhalten eines Boards. Dieses kann sich auf einen Typ von Board beziehen, wie etwa allen phpBBs, oder nur einer einzelnen Version dieses Typs. Etwa Version 2.0.17. Welche Eigenschaften gebraucht werden stehen oben. Welche Eigenschaften bereits wie auf dieses Weise gewonnen wurden, laesst sich der Dokumentation entnehmen. Diese findet sich im Dokumentations-Wiki (http://www.webreeze.de/boardana/). Beispielsweise fuer das phpBB (http://www.webreeze.de/boardana/wiki/index.php/PhpBB).

Weitere Aufgaben findet ihr auf der Projekt-Website (http://www.webreeze.de/boardana/).

gruss, Stefan


Scavi
20.10.2005, 14:45
Wieso entscheidet ihr euch für eine Implementierung in PHP? Wenn ihr Wert auf Performance/Objektorientierung/Strukturmuster legt, warum PHP? Andere Sprachen, oder eine Mischung von Sprachen wäre doch viel vorteilhafter. ZBsp. ein Parser in Perl (RegEx, Stringverarbeitung) und die Auswertung in C++. Wenn ihr ein Webinterface benötigt reicht es doch aus, dass nur die Daten aufbereitet werden -> PHP. Wie wollt ihr einen zuverlässigen Dienst/Bot implementieren, der nach Boards scannt?

Jan Krüger
20.10.2005, 19:14
ZBsp. ein Parser in Perl (RegEx
Perl -- meinetwegen. Parser schreibt man aber definitiv nicht aus regulären Ausdrücken. Die können zwar reguläre Sprachen erkennen, aber weder eine Struktur herausarbeiten noch bei einer durchschnittlich komplexen Grammatik (z.B. XML oder Tag Soup) zuverlässig entscheiden.

etuli
21.10.2005, 08:56
Effizienz bezieht sich auf die Menge an Anfragen an Internetseiten. Ob nun eine Verarbeitung einer Seite 500 ms, oder eine Sekunde dauert spielt keine Rolle, wenn ihr Lesen mehrere Sekunden dauert.

Objektorientierung ist in PHP 5 moeglich. Grundlegende Konzepte werden unterstuetzt. Entwurfsmuster umzusetzen ist ebenfalls kein Problem.

Ein solcher Bot ist bereits implementiert. Dieser sucht anhand von bestimmten Phrasen Webseiten, die auf Boards hindeuten koennten (powered by phpbb, powered by vbulletin, usw.). Zusaetzlich werden, um die Menge der Suchergebnisse einzuschraenken, Suchworte verwendet. Alles zusammen wird via WebServices bei konventionellen Suchmaschinen angefrage (Yahoo insb. und Google) und dann ausgewertet.

gruss

Scavi
21.10.2005, 10:23
Perl -- meinetwegen. Parser schreibt man aber definitiv nicht aus regulären Ausdrücken. Die können zwar reguläre Sprachen erkennen, aber weder eine Struktur herausarbeiten noch bei einer durchschnittlich komplexen Grammatik (z.B. XML oder Tag Soup) zuverlässig entscheiden. ...schon klar Jan. Ich schlug Perl auch primär wegen der effizienten Stringverarbeitung vor. Und eine SAX- oder von mir aus auch eine DOM-Lib kann man ja schliesslich einbinden.

Quantumseeker
21.10.2005, 10:27
Ein solcher Bot ist bereits implementiert. Dieser sucht anhand von bestimmten Phrasen Webseiten, die auf Boards hindeuten koennten (powered by phpbb, powered by vbulletin, usw.). Zusaetzlich werden, um die Menge der Suchergebnisse einzuschraenken, Suchworte verwendet. Alles zusammen wird via WebServices bei konventionellen Suchmaschinen angefrage (Yahoo insb. und Google) und dann ausgewertet.
Gibt es keine Struktur bei Boards, die ein einfacheres/direkteres Lesen erlaubt? Wenn nicht, wäre es evtl. auch ganz interessant, ein besseres/effizienteres Anfragesystem zu spezifizieren, das in Boards eingebaut werden kann.

Jan Krüger
21.10.2005, 10:31
Schon, aber es ist nicht sehr wahrscheinlich, dass sich alle Boardentwickler auf ein einheitliches System einigen würden. Die besten Chancen hätte man sicher mit etwas RSS-basiertem.

etuli
21.10.2005, 10:40
@ Quantumseeker

Leider nein. Die Idee finde ich allerdings sehr gut. Die Produzenten anschreiben, kann man ja mal. :)

Und das sich niemand auf einen Standard einigt ... . Naja. Selbst wenn jeder Produzent - und dessen Anzahl ist sehr beschraenkt - seinen eigenen macht ist das Fortschritt, wo jeder Betreiber z.Zt. die Board-Software so veraendern kann, dass man sie nicht wiedererkennt.

gruss

foobarflu
25.10.2005, 07:38
Schon, aber es ist nicht sehr wahrscheinlich, dass sich alle Boardentwickler auf ein einheitliches System einigen würden. Die besten Chancen hätte man sicher mit etwas RSS-basiertem. RDF/OWL, nicht RSS ist die richtige Technologie.

Jan Krüger
25.10.2005, 11:09
Auch gut. Ich mag diesen ganzen XML-Kram nicht so sehr, also ignoriere ich ihn nach Kräften. ;)