Benutzer Diskussion:SirJective/Archiv 2006 01

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 15. September 2005 um 07:57 Uhr durch Neodym (Diskussion | Beiträge) (Java Fehler im Dump vom 9.9.05). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Neue Beiträge bitte nach unten. Benutzt z.B. diesen Link, um einen neuen Abschnitt ans Ende zu setzen.

Ältere Diskussionsbeitraege sind im Archiv.

Wenn du mich um die Ausführung einer neuen Abfrage bitten möchtest, kannst du das auf dieser Wikipedia-Seite tun. Um die Aktualisierung einer Abfrage, die dort noch nicht aufgeführt ist, kannst du mich auch hier bitten.

Abfrage "Kurze Artikel"

Hallo SirJective, kann es sein, dass die auf Wikipedia:Kurze Artikel angegebene SQL-Abfrage fehlerhaft ist? Zumindest liefert Wikisign immer eine Fehlermeldung. --mst 13:56, 1. Sep 2005 (CEST)

Ja du hast Recht: SQL nimmt einem das Leerzeichen hinter "concat" übel. Hab die Abfrage auf der Seite korrigiert. --SirJective 20:30, 1. Sep 2005 (CEST)

Neuer dump

Verschoben nach Wikipedia Diskussion:Offline-Abfragen. Ich halte jene Seite für den besseren Ort, die Entwicklung des aktuellen Dumps zu diskutieren. :) --SirJective 12:05, 9. Sep 2005 (CEST)

Hallochen, dump ist fertig ;-) -- srb  11:33, 12. Sep 2005 (CEST)

Antrag auf eine Bairische Wikipedia

Hallo SirJective,
Da du als Bayer (hoffentlich) ein Interesse an der bairischen Sprache hast, wird dich dieser Antrag auf eine Bairische Wikipedia vielleicht interessieren! --- MfG, MelancholieDiskussion 06:17, 5. Sep 2005 (CEST)

Unterkategorien

Hallo SirJective, gibt es eine (einfache) Möglichkeit, per SQL-Abfrage (wikisign) alle Unterkategorien einer bestimmten Kategorie angezeigt zu bekommen (als Baum oder auch als einfache Liste)? Vielen Dank, mst 15:21, 5. Sep 2005 (CEST)

Jain. Direkte Unterkategorien sind kein Problem, vererbte Unterkategorien dagegen schon. Meine eigene Lösung, mit SQL alle Unterkategorien zu beschaffen, besteht darin, eine Hilfstabelle zu erzeugen, auf der mit einem Dutzend fast identischer UPDATE-Anweisungen eine Breitensuche ausgeführt wird. Dafür sind natürlich Schreibrechte in der Hilfstabelle nötig (auf irgendeiner Diskussionsseite hab ich die entsprechende Abfrage zu stehen, aber ich müsste sie jetzt suchen). Falls es nicht allzuviele Unterkategorien sind, kannst du die Breitensuche auch mit reinen SELECT-Abfragen simulieren, indem du aus der Liste der direkten Unterkategorien eine neue Abfrage erstellst, die deren direkte Unterkategorien liefert, usw.
Der pywikipediabot hat eine Funktion, um einen Kategoriebaum aus der Live-WP zu erzeugen, indem stumpf die betreffenden Kategorie-Seiten ausgelesen werden. Wenn du mir eine Kategorie nennst, erzeuge ich dir gern eine Baumstruktur, mit oder ohne enthaltene Artikel (die Liste der jeweils enthaltenen Artikel ist ein Nebenprodukt, das bei der Beschaffung der Unterkategorien sowieso anfällt). Das Ergebnis des Bots sieht dann so aus:
http://chsemrau.de/wikipedia/20050823_mathematik_kategorien.txt.gz (nur die Kategorien, 44 kb)
http://chsemrau.de/wikipedia/20050823_mathematik.txt.gz (Kategorien und Artikel, 1,2 mb)
Ich hab außerdem ein Programm geschrieben, das die Daten anders aufbereitet, und das Ergebnis sieht dann so ähnlich aus wie auf Benutzer:Srbauer/A&R-Artikel und den Unterseiten (ohne die Größe, die ich ggf. aus dem Dump holen müsste).
Du hast die Wahl: Ich bastel dir auch gern einen Satz SQL-Abfragen für wikisign, mit denen du den Baum selbst erstellen kannst. --SirJective 16:57, 5. Sep 2005 (CEST)

Hm... also, die ursprüngliche Problemstellung war, bestimmte SQL-Abfragen einzuschränken auf einzelne Kategorienzweige (konkret: kurze Artikel oder Stubs in der Hauptkategorie "Musik"). Dies scheint wohl nur so zu funktionieren, dass man sämtliche Unterkategorien in der Abfrage explizit angibt.

Eigentlich wäre es wohl schon sinnvoll, die Kategorien aus demselben Dump zu haben, der auch von wikisign verwendet wird. Einzelne SELECT-Abfragen sind bei einer ganzen Hauptkategorie aber wohl zu aufwendig, und die erforderlichen Schreibrechte für die Breitensuche habe ich ja wahrscheinlich nicht...?

Das einfachste wäre dann wohl der Bot... Es wäre nett, wenn du mir die Liste für die Kategorie "Musik" zusammenstellen könntest. (Einen eigenen Bot einzurichten lohnt sich ja wohl nicht.)

Eine Lösung, die ich selber aktualisieren könnte, wär mir natürlich lieber; also, falls du noch eine andere Möglichkeit kennst...

Grüße, mst 18:00, 5. Sep 2005 (CEST)

Ich werde dir (vielleicht sogar noch heute) den aktuellen Kategorienbaum erstellen und zusätzlich die SQL-Abfragen für eine Abfrage bei wikisign. Letzteres erfordert so viele nacheinander gestellte Abfragen wie der Kategorienbaum tief ist (alle Kategorien einer Stufe werden gleichzeitig abgefragt), ich hatte bisher Bäume der Tiefe 8 bis 12. Jede dieser Abfragen enthält im Abfragetext alle Kategorien der vorherigen Stufe. Bei großen Bäumen wird das etwas unhandlich, aber die Ausgabe müsste sich so gestalten lassen, dass man leicht die nächste Abfrage konstruieren kann. --SirJective 15:52, 6. Sep 2005 (CEST)
Die aktuellen Kategorien hab ich auf Benutzer:Mst/Kategorie_Musik abgelegt. Ich hab mir folgendes (bei weitem noch nicht ausgereifte) Verfahren gebastelt, um mit reinen SELECT-Abfragen eine DB zu beschäftigen (getestet auf meinem Dump vom 23.06.2005).
Man beginne mit folgender Abfrage
select cl_to, cur_title from categorylinks, cur where (
cl_to = 'Musik'
)and cl_from = cur_id and cur_namespace = 14 order by cl_to, cur_title;

Das Ergebnis speichere man als Datei (als TAB-getrennte Liste, nicht als Tabelle). Dann speichere man folgendes in der Datei next.sed:

1iselect cl_to, cur_title from categorylinks, cur where (
s/'/\\'/g
1s/.*/cl_to = '&'/
2,$s/.*/or cl_to = '&'/
p
$i)and cl_from = cur_id and cur_namespace = 14 order by cl_to, cur_title;

Schließlich braucht man noch diesen Befehl als Batch-Datei (ich benutze Cygwin ;)).

sed -e "s/^.*\t//" %1 | sort | uniq | sed -n -f next.sed > %2

Die Batch-Datei macht aus dem Ergebnis der ersten Abfrage eine neue Abfrage, die man dann der Datenbank stellt. Aus deren Ergebnis macht man dann die nächste Abfrage. Die einzelnen Ergebnisse sollte man aufheben, denn diese repräsentieren die Kategorien-Hierarchie! Auf dem Dump vom 23.06.2005 blieben nach 9 Iterationen nur ein paar Zyklen übrig (alles Kategorie-Titel):

  • Bob_Marley Album_(Bob_Marley_&_The_Wailers)
  • Bob_Marley Lied_(Bob_Marley_&_The_Wailers)
  • Lehrerkomponist Lehrerkomponist
  • Reggae Reggae
  • Reggae Reggae-Musiker
  • Reggae Reggaeband
  • Reggae-Musiker Bob_Marley

Um nun aus diesem Kategorie-Graphen einen Baum zu machen, benutze ich ein JAVA-Programm, das ich bisher noch nicht hochgeladen habe (aber das werde ich demnächst). --SirJective 21:35, 6. Sep 2005 (CEST)

Rollbahn auf Benutzerseite

Diskussion -> Benutzer Diskussion:TDK. --15:48, 6. Sep 2005 (CEST)

Hallo, auf Definition taucht jetzt schon zum zweiten Mal jemand auf, der meint, Definitionen seien Aussagen. Hast Du Lust, Dich mit ihm rumzuschlagen, Du kennst Dich in der Terminologie der Grundlagen im Gegensatz zu mir ja aus?--Gunther 17:46, 6. Sep 2005 (CEST)

Na dann will ich mal meine Senftube aufmachen... ;) --SirJective 20:00, 6. Sep 2005 (CEST)
Danke.--Gunther 20:33, 6. Sep 2005 (CEST)

xml2sql

Hallo, Du hattest angekündigt ein Java-Programm bereitzustellen (xml2sql). Man benötigt nämlich noch das sql-Format zur Erzeugung von TR3-Dateien für den PDA. Denkst Du, man würde damit die Ursprünglichen sql-dateien generieren können - mit dem Quelltext aud der Seite komm ich nicht zurecht (hab Perl 5.8.3 inst.- es kommen nur Fehlermeldungen. In jedem Fall schon mal Danke für Deine Hilfe.

Mein Programm erzeugt einen SQL-Dump, der wie die früheren "echten" Dumps importiert werden kann. Allerdings liest es (noch) nicht alle Angaben des XML-Dumps aus. Derzeit stellt es folgende Daten eines Artikels zur Verfügung:
id, namespace, title, text, comment, userid, username, isredirect.
Der XML-Dump enthält darüber hinaus folgende Daten:
timestamp, restrictions, isminor.
Nicht im XML-Dump enthalten sind folgende Daten:
counter, random, isnew, inversetimestamp, touched.
Auch wenn es sicher für den reinen Zweck der Umwandlung eines XML-Dumps in einen SQL-Dump geschickter wäre, alles in einer Java-Klasse zu machen, ist mein Programm auf 11 Klassen verteilt, was meinem ausufernden Programmierstil zuzuschreiben ist. :)
Hab grad schon wieder einen Bug in meinem Programm entdeckt. :( Ich werde es aber heute oder morgen hochladen. --SirJective 15:26, 10. Sep 2005 (CEST)

Okay - Danke für Deine prompte Hilfe - ich werde es dann morgen mal versuchen - Du darfst Dir aber nicht zuviel von mir erwarten - ich bin kein Programmierer sondern nur ein PDA-Fan - aber ich denke schon, dass ich zurecht kommen werde.

Ab jetzt auf Wikipedia:Download/xml2sql. --SirJective 20:15, 10. Sep 2005 (CEST)

ich hab es grad mal mit der Wikinews cur_table.xml.gz ausprobiert und für meine Zwecke hat Alles super prima geklappt - ohne Beanstandung. Danke nochmals - bis demnächst. 10.09.2005 23:52:22

current vs. public

Hallo Christian, bei den Dumps gibt es mittlerweile neben der full-Version (incl. History) eine current und eine public-Version - weißt Du zufällig, wo da der Unterschied liegt? -- srb  17:51, 12. Sep 2005 (CEST)

Ich hab irgendwo gelesen, dass da drin alle "non talk non user pages" sind. Also alle Seiten, die für eine öffentliche Verwendung vorgesehen sind. --SirJective 18:13, 12. Sep 2005 (CEST)
Würde Sinn machen, vor allem da sich die meisten "Verwerter" nicht die Mühe gemacht haben, den reinen Enzyklopädieteil herauszufiltern. Wenn dem so ist, sollten wir auf Wikipedia:Download besser auf die public-Datei verweisen - und die current nur erwähnen (so wie es jetzt schon für die full-Version der Fall ist). -- srb  18:22, 12. Sep 2005 (CEST)
Hab es eingearbeitet. Wenn dir eine bessere Formulierung einfällt, sei mutig. ;) --SirJective 22:50, 14. Sep 2005 (CEST)

Java Fehler im Dump vom 9.9.05

Hallo :-)

erst einmal vielen lieben Dank für dein Java Programm !

Es scheint bei mir ein Problem mit dem aktuellen Dump zu geben. Anbei der Ouput.

Danke und Gruss, Alexander Grüner


C:\download>java -classpath chsemrau_xml.jar de.chsemrau.wp.scan.Scan
  20050909_pages_current.xml.gz NULL "-sqldump Ode.sql"
Start: Tue Sep 13 06:33:36 CEST 2005
Starte Auftrag: sqldump Ode.sql in de.sql
Character reference "&#xD800" is an invalid XML character.
org.xml.sax.SAXParseException: Character reference "&#xD800" is an invalid XML character.
       at ...
       ...
       at de.chsemrau.wp.scan.Scan.main(Scan.java:46)
Done:  Tue Sep 13 06:33:40 CEST 2005
Ja, dieses Problem habe ich auch. Woran liegt es?--Neodym 10:18, 13. Sep 2005 (CEST)
Auch bei mir tritt er auf. Offenbar verkraftet der SAX-Parser es nicht, in der XML-Datei die Entität & #xD800 ; vorzufinden. Der Artikel selbst (z.B. Norwegen) verwendet an der betreffenden Stelle (der Link zu got:) Unicode-Zeichen, die anscheinend vom Dump-Programm in diese Entität umgewandelt werden.
Die gestern abend noch von mir verwendete Lösung besteht darin, die gz-Datei zu entpacken, sed drüberlaufen zu lassen, und dann das Java-Programm auf diesen Text loszulassen. Das setzt allerdings Speicherplatz für den entkomprimierten Dump (1,6 GB) und das Vorhandensein von sed voraus. Das Kommando zum Entpacken und Korrigieren könnte so aussehen:
gunzip -c 20050909_pages_current.xml.gz | sed -e "s/&#/& amp;#/g" > 20050909_pages_current.xml
(das Leerzeichen hinter dem & muss entfernt werden)
Ich arbeite daran, dass das Java-Programm diese Änderung selbst vornimmt, aber ich hab es gestern abend nicht hinbekommen, einen passenden InputStreamFilter zu schreiben. --SirJective 12:43, 13. Sep 2005 (CEST)
Nachtrag: Ich vergaß: Es sollte auch funktionieren, die Ausgabe von sed direkt an das Java-Programm weiterzureichen, indem man als Quelldatei des Java-Programms das Wort CON verwendet:
gunzip -c 20050909_pages_current.xml.gz | sed -e "s/&#/& amp;#/g" | java -classpath chsemrau_xml.jar de.chsemrau.wp.scan.Scan CON NULL "-sqldump Ode.sql"
--SirJective 13:29, 13. Sep 2005 (CEST)

UPDATE: Ich hab eine aktualisierte Version des Programms hochgeladen, die diese Umwandlung selbständig durchführt. Die normale Aufrufprozedur funktioniert hiermit. --SirJective 16:07, 13. Sep 2005 (CEST)

Herzlichen Dank! Ich werde es heute Abend probieren. Aber, nach dem oben angegebenen Work-Around hat es auch nicht richtig funktioniert, das stieg das Javascript bei anderen Zeichen aus, wie z.B. &#xDF39 ....mal sehen, vielleicht, ist ja jetzt auch der Fehler mit der neuen Java-Version behoben. Danke für deine Mühe und Arbeit!!--Neodym 17:50, 13. Sep 2005 (CEST)
Ja du hast recht - es fehlte ein Zeichen im sed-Kommando (Das "g" sorgt dafür, dass jedes Vorkommen ersetzt wird, nicht nur das erste.) Das modifizierte Java-Programm war kurze Zeit in einer (blöderweise ungetesteten) Version hochgeladen, die diese Entitäten in Unicodezeichen umwandelt. Diese werden aber vom Parser genausowenig akzeptiert (er beschwert sich dann über unzulässige Unicodezeichen). Inzwischen wird aber das sed-Verhalten simuliert, d.h. die Entität wird maskiert und als normaler Text interpretiert. --SirJective 21:20, 13. Sep 2005 (CEST)

Ich hatte das selbe Problem mit meinem STX-Skript und habe auf wikitech-l bescheid gesagt. Es handelt sich um einen Bug in MediaWiki. -- Nichtich 16:26, 13. Sep 2005 (CEST)

Danke, ich hatte schon gesucht, ob es auf bugzilla eine Meldung gibt, aber da kam noch keine. --SirJective 21:20, 13. Sep 2005 (CEST)
Danke :-) Das Problem ist nun bei mir, daß nun das wikitotome.exe von Erik Zachte zum konvertieren des SQL Dumps nach TomeRaider nicht mehr funktioniert. Der bricht nach 3325 Artikeln ab und meint er sei fertig. Ich habe Erik informiert - wo nun der Fehler liegt weiss ich natürlich auch nicht. Ist es die Wikimedia Software, der xml2sql oder wikitotome.exe ? Nun ja...dennoch vielen Dank für Eure fleissige Arbeit. --Alexander Grüner 09:43, 14. Sep 2005 (CEST)
Da bin ich überfragt. Es ist natürlich durchaus möglich, dass der von meinem Programm erzeugte SQL-Dump nicht ganz das Format hat, das von wikitotome erwartet wird - wenn Erik das Problem testet, braucht er natürlich dieselbe Dump-Datei, d.h. mein Programm zum Erzeugen derselben. --SirJective 22:50, 14. Sep 2005 (CEST)
Vielen Dank an den Author! Klasse Arbeit. Ich habe mit dem Java-Script erfolgreich und VOLLSTÄNDIG das xml-Dump zum SQL-Dump konvertieren können und damit eine Tomeraiderversion erzeugt. Die Tomeraiderversion (NUR-TEXT) wird heute online gestellt werden. Die Bild-Version ist bereits in Arbeit.--Neodym 07:56, 15. Sep 2005 (CEST)

Alte Seiten

Kann ich die alten Seiten Benutzer:SirJective/Personen ohne Personendaten und Unterseiten löschen? -- Nichtich 16:26, 13. Sep 2005 (CEST)

Gibt es noch andere WP-Seiten, auf denen Personen ohne Personendaten aufgelistet sind? Oder wird das jetzt nur noch über APPERs Tool gemacht? Zwei erledigte Unterseiten habe ich schonmal zum Abschuss freigegeben. --SirJective 17:14, 13. Sep 2005 (CEST)
Ich habe die Seiten mal etwas besser unter Personendaten verlinkt (ganz unten), damit sie abgearbeitet werden -- Nichtich 15:04, 14. Sep 2005 (CEST)

Hallo, ich war mal mutig und habe deine Listen auf die Seite verschoben, ich hoffe, das war dir recht. Es wäre gut, wenn du dort mal nach dem Rechten sehen könntest und schauen, ob dir das mit der Tabelle so passt. --Elian Φ 18:03, 14. Sep 2005 (CEST)

Super! In der Tabellenform macht mir das Durchblättern der Liste wieder Spaß. :) Die Angabe der letzten Aktualisierung auf der Seite werde ich aber garantiert vergessen. Vielleicht können wir ja "Stand" und "Status" in eine gemeinsame Spalte stecken? --SirJective 22:50, 14. Sep 2005 (CEST)
Wär vermutlich nicht schlecht - was mir wichtig wäre, ist ein Hinweis für willige Helfer, bei welchen Listen Hilfe gebraucht wird und welche grade veraltet/abgearbeitet etc sind. Das Aktualisierungsdatum wäre ein Indiz, wenn man nicht dauernd auf die Liste gucken will, um zu sehen, wieviel schon abgearbeitet ist... --Elian Φ 03:48, 15. Sep 2005 (CEST)