Unterschiede zwischen den Revisionen 1 und 15 (über 14 Versionen hinweg)
Revision 1 vom 2016-03-18 10:12:30
Größe: 3130
Autor: anonym
Kommentar: erste recherche ergebnisse und tests
Revision 15 vom 2018-03-09 11:12:06
Größe: 17420
Autor: anonym
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
Hier werden die Vorüberlegungen und Schritte zur Erstellung eines digitalen Archives notiert. Zunächst als Gedächtnisstütze oder für andere Menschen mit ähnlichen vorhaben.
Zeile 11: Zeile 13:
== Linksammlung zum rechtlichen Rahmen ==
 * https://irights.info/artikel/rechtspflicht-zur-amnesie-digitale-inhalte-archive-und-urheberrecht/18101 - digitale Langzeitarchivierung
 * http://www.uni-potsdam.de/emoon/fileadmin/user_upload/eingangsgrafiken/modul_5/Texte/Urheberrecht_Fremde_Materialien_zur_Verfuegung_stellen.pdf - Vervielfältigung und Zugänglichmachung fremder Materialien
 * http://www.medienscouts-nrw.de/einscannen-von-zeitungsartikeln-3/ - Zeitungsartikel scannen und veröffentlichen
 * https://www.gesetze-im-internet.de/bundesrecht/urhg/gesamt.pdf - Urheberrechtsgesetz
Zeile 12: Zeile 20:
== semantic mediawiki == == Semantic Mediawiki ==
 * https://www.semantic-mediawiki.org
 * Archive die (Semantic) Mediawikis nutzen:
  * http://archiv.ub.uni-stuttgart.de/UAMatrikel/index.php/Hauptseite
  * http://encyclopedia.1914-1918-online.net/project/faq/
  * http://docupedia.de/zg/Hauptseite
  * http://www.verwaltungskooperation.at/
  * http://www.gardenology.org/
 * Einschätzung zur Eignung für Archive:
Zeile 14: Zeile 30:
  * Bsp.:
   * http://archiv.ub.uni-stuttgart.de/UAMatrikel/index.php/Hauptseite
   * http://encyclopedia.1914-1918-online.net/project/faq/
  * entwickelt durch: Institut für Angewandte Informatik und Formale Beschreibungsverfahren (AIFB) Karlsruhe; Weiterentwicklung durch EU- und firmenprojekte
  * verbreitetes Bedienkonzept
Zeile 19: Zeile 32:
  * einfache Benutzung und ist trotzdem maschinenlesbar
  * schnell Übersichten erstellbar
  * Bsp.:
   * http://docupedia.de/zg/Hauptseite
   * http://www.verwaltungskooperation.at/
   * http://www.gardenology.org/
  * sinnvolle erweiterungen: https://www.mediawiki.org/wiki/Semantic_Bundle
  * maschinenlesbar
  * Übersichten, Eingabemasken etc. schnell erstellbar
  * flexible Strukturierung & Abbildung von Datensätzen
  * mehrsprachig
  * Benutzer_innenverwaltung
  * verbreitete Import- & Exortfunktionen
  * Open Source, keine Herstellerabhängigkeiten
  * gängige Administration, kein Spezialwissen notwendig
  * große, langlebige Entwicklungscommunity
   * Hauptentwicklung durch Institut für Angewandte Informatik und Formale Beschreibungsverfahren (AIFB) Karlsruhe; Weiterentwicklung durch EU- und Firmenprojekte
   * Grundlage bildet Mediawiki, dass durch die Wikimedia Foundation begleitet wird
  * automatisierbar -- https://www.mediawiki.org/wiki/Manual:Pywikibot
  * erweiterbar -- https://www.mediawiki.org/wiki/Semantic_Bundle
Zeile 50: Zeile 70:
== Omeka ==
 * https://omeka.org/
 * Open Source Plattform für online Sammlungen und Ausstellungen
 * vom Roy Rosenzweig Center For History And New Media
 * (noch) keine deutsche Übersetzung aber Möglichkeit dafür angelegt
Zeile 60: Zeile 85:
= vom Bild zum Text zum Onlinearchiv =
 * Vorlage scannen
 * Scans in ähnliche Formate bringen
 * Texterkennung der Scans
 * Text + Scan in archivierbares Format konvertieren
 * Indizierung der Inhalte
= vom Original zur Archivalie im Onlinearchiv =
 * Originalvorlage scannen
  * glatt Auflegen, damit die Grundline der Schrift beim Scannen keine Wölbung hat
  * hohe Auflösung wählen
  * keine oder verlustfreie Kompression
  * in offenem Dateiformat speichern
 * Scan in ähnliches Format bringen
  * Ränder, Werbung und andere Fragmente wegschneiden
  * Grundlinie horizontal ausrichten
  * ggf. schärfen, Kontrast erhöhen
 * Archivalie in Archiv ablegen
  * siehe Handbuch (Todo verlinken)
 * digitale Archivalie im Softwarearchiv anlegen
  * neue Seite im Wiki
 * Texterkennung
  * automatisierte Texterkennung neuer Archivalien läuft regelmäßig im Hintergrund
  * erkannter Fließtext wird als Unterseite zur Archivalie verlinkt
  * Indizierung der neuen Inhalte
Zeile 68: Zeile 105:
== Scan ==
Zeile 71: Zeile 106:
 * https://help.ubuntu.com/community/OCR - Überblick Welche automatisiert nutzbare Open Source Software gibt es?
* https://help.ubuntu.com/community/OCR - guter Überblick
Zeile 87: Zeile 123:
 * erzeugen:  * pdf mit ocr layer erzeugen:
  * https://github.com/jbarlow83/OCRmyPDF
  * http://www.konradvoelkel.com/2013/03/scan-to-pdfa/
 * weitere:
Zeile 95: Zeile 134:
Zeile 97: Zeile 135:
 * recollindex
 * webrecoll
 * [[http://www.lesbonscomptes.com/recoll/ recoll]] - Dateien indizieren
 * [[https://github.com/koniu/recoll-webui webrecoll]] - webbasierte Suche (python/bottle)
 * [[https://www.mediawiki.org/wiki/Extension:CirrusSearch CirrusSearch]] - Inhalte im Mediawiki indizieren

----
= Installation & Einrichtung Semantic Mediawiki =
== Vorbereitung ==
 * Debian Jessie aufsetzen -- http://debian.org
 * notwendige Softwarepakete installieren: {{{
aptitude install git php5-curl php5-cli php5-json php5-readline php5-fpm php5-apcu php5-intl php5-gd php5-mysql mariadb-common mariadb-server nginx-full imagemagick ghostscript poppler-utils
}}}
 * ''composer'' installieren
  * von der Webseite holen und entpacken -- https://getcomposer.org/download/
  * systemweit nutzbar machen: {{{
mv composer.phar /usr/local/bin/composer
}}}
 * DNS entsprechend anpassen (hier als Bsp.: das-digitale-archiv.org)

== Mediawiki Installation ==
 * Mediawiki Software holen, entpacken und verlinken: {{{
cd /var/www/
wget https://releases.wikimedia.org/mediawiki/1.27/mediawiki-1.27.1.tar.gz
tar zxf mediawiki-1.27.1.tar.gz
ln -s mediawiki-1.27.1 mediawiki
chown -R www-data. mediawiki*
}}}
* nginx config anlegen: {{{
server {
    server_name das-digitale-archiv.org;
    root /var/www/mediawiki;
    index index.php;

    client_body_timeout 120;
    client_max_body_size 300m;

    location / {
        try_files $uri $uri/ @rewrite;
    }

    location @rewrite {
        rewrite ^/(.*)$ /index.php?title=$1&$args;
    }

    location ^~ /maintenance/ {
        return 403;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        try_files $uri @rewrite;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        try_files $uri /index.php;
        expires max;
        log_not_found off;
    }

    location = /_.gif {
        expires max;
        empty_gif;
    }

    location ^~ /cache/ {
        deny all;
    }

    location /dumps {
        root /var/www/mediawiki/local;
        autoindex on;
    }
}
}}}
 * Dateiuplaodgrenze erhöhen in /etc/php5/fpm/php.ini: {{{
upload_max_filesize = 300M
post_max_size = 300M
}}}
 * nginx config aktivieren: {{{
ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/
systemctl restart nginx.service php5-fpm.service
}}}
 * mysql db & user anlegen: {{{
mysql -p
> CREATE DATABASE archiv;
> CREATE USER 'archiv_user'@'localhost' IDENTIFIED BY 'lk345vlk12asdaijrapogf';
> GRANT ALL PRIVILEGES ON archiv.* TO 'archiv_user'@'localhost';
> FLUSH PRIVILEGES;
> exit;
}}}
 * Mediawiki Installationsroutine im Browser aufrufen (http://das-digitale-archiv.org)
  * mysql Datenbank, Benutzer und Passwort angegeben
  * Einstellungen zu Uploads, Lizenzen usw. treffen
  * abschließend wird eine Datei LocalSettings.php erzeugt, diese runterladen & ins mediawiki Verzeichnis kopieren (z.B. /var/www/mediawiki/)
 * Damit ist die Installation des Mediawikis abgeschlossen.

== SMW Installation ==
 * Semantic Mediawiki als Erweiterung (extension) des Mediawikis installieren: {{{
cd /var/www/mediawiki/
composer require mediawiki/semantic-media-wiki "~2.4" --update-no-dev
php maintenance/update.php
}}}
  * ''~2.4'' entsprechend der gewünschten SMW Version anpassen (2.4 war Ende 2016 die stabile Version)
 * in LocalSetting.php ergänzen: {{{
# SMW im Mediawiki aktivieren
enableSemantics( 'http://das-digitale-archiv.org' );

# Anzeige der Faktenbox steuern
$GLOBALS['smwgShowFactbox'] = SMW_FACTBOX_NONEMPTY;

# Breadcrumb fuer Kategorien anzeigen
$wgUseCategoryBrowser = true;

# Hochladen aller Dateitypen erlauben (nicht für öffentliche Wikis empfohlen)
$wgEnableUploads = true;
$wgCheckFileExtensions = false;
$wgStrictFileExtensions = false;
$wgVerifyMimeType = false;

# PDF Dateien verarbeiten (Vorschau etc.)
require_once "$IP/extensions/PdfHandler/PdfHandler.php";

# Inhaltsverzeichnisse und Baumansichten für Kategorien
require_once "$IP/extensions/CategoryTree/CategoryTree.php";
}}}
 * nach Änderungen an Konfiguration und Erweiterungen -> Cache leeren: {{{
php maintenance/clearInterwikiCache.php
}}}
 * schauen, ob alles läuft: http://das-digitale-archiv.org/index.php?title=Spezial:Version

== Erweiterungen, Nacharbeiten, Optimierungen ==
=== Extensions ===
Funktionale Erweiterungen werden bei Mediawiki als 'extension' installiert. Das bereits installierte Semantic Mediawiki ist so eine Erweiterung für Mediawikis.

 * https://www.mediawiki.org/wiki/Extension:PdfHandler -- pdf Thumbnails, inline Textsuche
 * https://www.mediawiki.org/wiki/Extension:CategoryTree -- erzeugt Inhaltsverzeichnisse auch für Kategorien
 * https://www.mediawiki.org/wiki/Extension:Semantic_Drilldown - Kategorien semantisch durchstöbern

=== Skins ===
Das Aussehen des Mediawikis lässt sich mittels 'skins' verändern.

 * https://www.mediawiki.org/wiki/Skin:Foreground - basiert auf foundation
  * Einige Buttons erhalten nicht die richtige CSS Klasse. Bis der Patch eingearbeitet ist in mediawiki/includes/EditPage.php ab Zeile 3990 die Buttons um Folgendes erweitern: '' 'class' => 'button' ''
 * https://www.mediawiki.org/wiki/Skin:Tweeki - basiert auf bootstrap

=== optionale Mediawiki Anpassungen ===
 * automatisierte Aufgaben können je nach Serverauslastung pro Seitenaufruf ablaufen oder per cron
  * php maintenance/showJobs.php - welche Aufgaben stehen an
  * php maintenance/runJobs.php - Aufgaben direkt abarbeiten
   * folgende Zeile in der crontab führt die Aufgaben jede Nacht um 1:11 aus: ''11 1 * * * php /var/www/mediawiki/maintenance/runJobs.php > /var/log/nginx/mediawikicron.log''
  * php maintenance/rebuildtextindex.php - Index für Textsuche neu aufbauen

=== Mediawiki Fehlersuche ===
 * Wird statt des Wikis eine "MWException" angezeigt hilft, in der LocalSettings.php folgende Zeile bei der Fehlersuche: {{{
$wgShowExceptionDetails = true;
}}}
 * nach Änderungen ruhig mal den Cache leeren:
{{{
cd /var/www/mediawiki/maintenance
php5 clearInterwikiCache.php
php5 rebuildLocalisationCache.php --force
}}}

==== Unable to move the new CDB file into place. ====
 * Fehler: "/index.php MWException from line 118 of /data/mediawiki/includes/cache/localisation/LCStoreCDB.php: Unable to move the new CDB file into place."
 * Ursache: kein Verzeichnispfad in Config angegeben oder unzureichende Berechtigungen dafür
 * Lösung siehe: https://www.mediawiki.org/wiki/Topic:T7me7nu8tmlj8dhd

=== Ausgabe steuern ===
 * __NOTOC__ and __TOC__
 * __NOFACTBOX__ and __SHOWFACTBOX__

=== SMW Kategorien Links aktualisieren ===
{{{
cd /var/www/mediawiki/maintenance
php5 refreshLinks.php
}}}

=== elasticsearch als Suchmaschine nutzen ===
 * Überblick: https://www.mediawiki.org/wiki/Extension:CirrusSearch
  * wir brauchen Elasticsearch, Elastica und Cirrussearch

==== Elasticsearch ====
 * die Version in Debian/Jessie ist veraltet
 * Achtung! CirrusSearch kommt nur mit Versionen bis 1.x klar, diese nutzen Java 7
 * download & installieren: {{{
aptitude install openjdk-7-jre
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.deb
dpkg -i elasticsearch-1.7.1.deb
}}}
  * Falls der Server nicht startet, überprüfe ob genug RAM für den Start des Servers frei ist (syslog oder /var/log/elasticsearch/elasticsearch.log).

==== Elastica ====
 * download & install: {{{
cd /tmp/
wget https://extdist.wmflabs.org/dist/extensions/Elastica-REL1_27-4607acf.tar.gz
tar zxf /tmp/Elastica-REL1_27-4607acf.tar.gz -C /var/www/mediawiki/extensions/
cd /var/www/mediawiki/extensions/Elastica
composer install --no-dev
}}}
 * LocalSettings.php um folgendes ergänzen: {{{
wfLoadExtension( 'Elastica' );
}}}

==== CirrusSearch ====
 * https://www.mediawiki.org/wiki/Extension:CirrusSearch
 * LocalSettings.php um folgendes ergänzen: {{{
require_once( "$IP/extensions/CirrusSearch/CirrusSearch.php" );
$wgDisableSearchUpdate = true;
$wgCirrusSearchServers = array( 'localhost');
}}}
 * CirrusSearch Config initialisieren: {{{
php extensions/CirrusSearch/maintenance/updateSearchIndexConfig.php
}}}
 * SearchUpdate aktivieren; das war nur zur Initialisierung notwendig: {{{
$wgDisableSearchUpdate = false;
}}}
 * Suchindex erstellen: {{{
php extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipLinks --indexOnSkip
php extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipParse
}}}
 * abschließend in LocalSettings.php CirrusSearch als Standardsuche setzen: {{{
$wgSearchType = 'CirrusSearch';
}}}

=== Fehlersuche Elasticsearch ===
 * Wurde der Server gestartet?
  * ''netstat -lpn |grep 9200''
  * oder im Browser aufrufen: http://das-digitale-archiv.org:9200
 * Ist der Suchindex aktuell?
  * neu erstellen: {{{
php extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipLinks --indexOnSkip
php extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipParse
}}}

----
= Datentransfer von Zotero zu SMW =
== Zotero Export ==
 * Export als CSV Datei (direkt aus Zotero heraus)
 * oder https://github.com/urschrei/pyzotero

=== SMW Import ===
 * via webinterface https://www.mediawiki.org/wiki/Extension:Data_Transfer
 * eleganter und vollautomatisiert geht's mit Pywikibot
  * https://www.mediawiki.org/wiki/Manual:Pywikibot

=== Pywikibot installieren ===
 * https://www.mediawiki.org/wiki/Manual:Pywikibot/Third-party_Wiki_Quick_Start
 * grob die notwendigen Schritte:
  * pywikibot-core installieren
  * user-config.py anlegen und anpassen
   * family
   * usernames
  * family.py Datei generieren
  * testen
 * alle Schritte im Detail: {{{
aptitude install python-pip cython libmysqlclient-dev

wget http://tools.wmflabs.org/pywikibot/core_stable.tar.gz
tar zxf core_stable.tar.gz
cd core_stable
pip install -r requirements.txt
python generate_family_file.py http://das-digitale-archiv.org archiv
python3 pwb.py login
python3 pwb.py basic -v -dry -page:Hauptseite
}}}
  * fehler bei generate_family
   * das Script läuft zum einen nicht mit python3
   * und es braucht für diesen Schritt Leserechte im Wiki; teporär freigeben in LocalSettings.php {{{
$wgGroupPermissions['*']['read'] = true;
}}}


=== Pywikibot nutzen ===
Für Pywikibot gibt es ein Fülle an Scripte für spezielle Anwendungsfälle. Darin zunächst stöbern kann später vlt. eigene Programierarbeit sparen helfen zumindest gibt es einen guten Überblick in die API. Die Scripte liegen im pywikibot Verzeichnis unter ''scripts''
 * python3 pwb.py scripts/login.py -- Bot am Wiki anmelden
  * python3 pwb.py login -- Bot anmelden, wie oben nur weniger tippen
  * ... category tree -- Baumansicht von Kategorien
   * add, move, remove, ...
  * ... checkimage -- Dateianhänge checken (z.B. auf Lizenz, Template)
  * ... delete -page:SandKasten -- Seite SandKasten löschen
  * ... editarticle -- Wikiseiten mit deinem lokalen Lieblingseditor bearbeiten
  * ... isbn -- Fehler bei ISBN Nummern erkennen, Format ändern
  * ... movepages
  * ... pagefromfile -- Wikiseiten aus einer Datei anlegen
  * ... replace -- Inhalte ersetzen, oder auch ISBNs reparieren
  * ... upload -- Dateien anhängen

==== weitere Doku zu Pywikibot ====
 * https://doc.wikimedia.org/pywikibot/api_ref/pywikibot.html#module-pywikibot.page
 * pywikibot/scripts/basic.py bietet einen guten Startpunkt für eigene Scripte

==== Pywikibot beschleunigen ====
Der Bot geht recht sparsam mit den Ressourcen des Wikiservers um. Zum Testen und für große Importe sind die Wartezeiten zwischen den Seitenaufrufen unnötig und lassen sich in der Datei ''user-config.py'' durch folgende Zeile minimieren: {{{
minthrottle = 0
maxlag = 0
}}}

Hier werden die Vorüberlegungen und Schritte zur Erstellung eines digitalen Archives notiert. Zunächst als Gedächtnisstütze oder für andere Menschen mit ähnlichen vorhaben.

Archivsysteme (Stand Ende 2015)

Linksammlung zum rechtlichen Rahmen

digitale Archivaliensoftware

Semantic Mediawiki

ICARUS

Topothek

ICA-AtoM

accesstomemory

Namenforschung

Omeka

  • https://omeka.org/

  • Open Source Plattform für online Sammlungen und Ausstellungen
  • vom Roy Rosenzweig Center For History And New Media
  • (noch) keine deutsche Übersetzung aber Möglichkeit dafür angelegt

Referenzverwaltung


Digitalisierung

vom Original zur Archivalie im Onlinearchiv

  • Originalvorlage scannen
    • glatt Auflegen, damit die Grundline der Schrift beim Scannen keine Wölbung hat
    • hohe Auflösung wählen
    • keine oder verlustfreie Kompression
    • in offenem Dateiformat speichern
  • Scan in ähnliches Format bringen
    • Ränder, Werbung und andere Fragmente wegschneiden
    • Grundlinie horizontal ausrichten
    • ggf. schärfen, Kontrast erhöhen
  • Archivalie in Archiv ablegen
    • siehe Handbuch (Todo verlinken)
  • digitale Archivalie im Softwarearchiv anlegen
    • neue Seite im Wiki
  • Texterkennung
    • automatisierte Texterkennung neuer Archivalien läuft regelmäßig im Hintergrund
    • erkannter Fließtext wird als Unterseite zur Archivalie verlinkt
    • Indizierung der neuen Inhalte
  • Suchmaske für Index

Texterkennung

Welche automatisiert nutzbare Open Source Software gibt es?

tesseract

  • Artikel als jpg speichern und mittels tesseract Text extrahieren:

    tesseract artikel.jpg artikel -l deu -psm 1
  • der Vorgang lässt sich gut parallelisieren:

    parallel -j 2 tesseract {} {.} -l deu -psm 1 ::: /pfad/zu/bildern/*.jpg

Dateiformate

Indizierung + Volltextsuche


Installation & Einrichtung Semantic Mediawiki

Vorbereitung

  • Debian Jessie aufsetzen -- http://debian.org

  • notwendige Softwarepakete installieren:

    aptitude install git php5-curl php5-cli php5-json php5-readline php5-fpm php5-apcu php5-intl php5-gd php5-mysql mariadb-common mariadb-server nginx-full imagemagick ghostscript poppler-utils
  • composer installieren

  • DNS entsprechend anpassen (hier als Bsp.: das-digitale-archiv.org)

Mediawiki Installation

  • Mediawiki Software holen, entpacken und verlinken:

    cd /var/www/
    wget https://releases.wikimedia.org/mediawiki/1.27/mediawiki-1.27.1.tar.gz
    tar zxf mediawiki-1.27.1.tar.gz
    ln -s mediawiki-1.27.1 mediawiki
    chown -R www-data. mediawiki*

* nginx config anlegen:

server {
    server_name das-digitale-archiv.org;
    root /var/www/mediawiki;
    index index.php;

    client_body_timeout 120;
    client_max_body_size 300m;

    location / { 
        try_files $uri $uri/ @rewrite;
    }   

    location @rewrite {
        rewrite ^/(.*)$ /index.php?title=$1&$args;
    }   

    location ^~ /maintenance/ {
        return 403;
    }   

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        try_files $uri @rewrite;
    }   

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        try_files $uri /index.php;
        expires max;
        log_not_found off;
    }   

    location = /_.gif {
        expires max;
        empty_gif;
    }   

    location ^~ /cache/ {
        deny all;
    }   

    location /dumps {
        root /var/www/mediawiki/local;
        autoindex on; 
    }   
}
  • Dateiuplaodgrenze erhöhen in /etc/php5/fpm/php.ini:

    upload_max_filesize = 300M
    post_max_size = 300M
  • nginx config aktivieren:

    ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/
    systemctl restart nginx.service php5-fpm.service
  • mysql db & user anlegen:

    mysql -p
    > CREATE DATABASE archiv;
    > CREATE USER 'archiv_user'@'localhost' IDENTIFIED BY 'lk345vlk12asdaijrapogf';
    > GRANT ALL PRIVILEGES ON archiv.* TO 'archiv_user'@'localhost';
    > FLUSH PRIVILEGES;
    > exit;
  • Mediawiki Installationsroutine im Browser aufrufen (http://das-digitale-archiv.org)

    • mysql Datenbank, Benutzer und Passwort angegeben
    • Einstellungen zu Uploads, Lizenzen usw. treffen
    • abschließend wird eine Datei LocalSettings.php erzeugt, diese runterladen & ins mediawiki Verzeichnis kopieren (z.B. /var/www/mediawiki/)

  • Damit ist die Installation des Mediawikis abgeschlossen.

SMW Installation

  • Semantic Mediawiki als Erweiterung (extension) des Mediawikis installieren:

    cd /var/www/mediawiki/
    composer require mediawiki/semantic-media-wiki "~2.4" --update-no-dev
    php maintenance/update.php
    • ~2.4 entsprechend der gewünschten SMW Version anpassen (2.4 war Ende 2016 die stabile Version)

  • in LocalSetting.php ergänzen:

    # SMW im Mediawiki aktivieren
    enableSemantics( 'http://das-digitale-archiv.org' );
    
    # Anzeige der Faktenbox steuern
    $GLOBALS['smwgShowFactbox'] = SMW_FACTBOX_NONEMPTY;
    
    # Breadcrumb fuer Kategorien anzeigen 
    $wgUseCategoryBrowser = true;
    
    # Hochladen aller Dateitypen erlauben (nicht für öffentliche Wikis empfohlen)
    $wgEnableUploads = true;
    $wgCheckFileExtensions = false;
    $wgStrictFileExtensions = false;
    $wgVerifyMimeType = false;
    
    # PDF Dateien verarbeiten (Vorschau etc.)
    require_once "$IP/extensions/PdfHandler/PdfHandler.php";
    
    # Inhaltsverzeichnisse und Baumansichten für Kategorien
    require_once "$IP/extensions/CategoryTree/CategoryTree.php";
  • nach Änderungen an Konfiguration und Erweiterungen -> Cache leeren:

    php maintenance/clearInterwikiCache.php
  • schauen, ob alles läuft: http://das-digitale-archiv.org/index.php?title=Spezial:Version

Erweiterungen, Nacharbeiten, Optimierungen

Extensions

Funktionale Erweiterungen werden bei Mediawiki als 'extension' installiert. Das bereits installierte Semantic Mediawiki ist so eine Erweiterung für Mediawikis.

Skins

Das Aussehen des Mediawikis lässt sich mittels 'skins' verändern.

optionale Mediawiki Anpassungen

  • automatisierte Aufgaben können je nach Serverauslastung pro Seitenaufruf ablaufen oder per cron
    • php maintenance/showJobs.php - welche Aufgaben stehen an
    • php maintenance/runJobs.php - Aufgaben direkt abarbeiten
      • folgende Zeile in der crontab führt die Aufgaben jede Nacht um 1:11 aus: 11 1 * * * php /var/www/mediawiki/maintenance/runJobs.php > /var/log/nginx/mediawikicron.log

    • php maintenance/rebuildtextindex.php - Index für Textsuche neu aufbauen

Mediawiki Fehlersuche

  • Wird statt des Wikis eine "MWException" angezeigt hilft, in der LocalSettings.php folgende Zeile bei der Fehlersuche:

    $wgShowExceptionDetails = true;
  • nach Änderungen ruhig mal den Cache leeren:

cd /var/www/mediawiki/maintenance
php5 clearInterwikiCache.php
php5 rebuildLocalisationCache.php --force

Unable to move the new CDB file into place.

  • Fehler: "/index.php MWException from line 118 of /data/mediawiki/includes/cache/localisation/LCStoreCDB.php: Unable to move the new CDB file into place."
  • Ursache: kein Verzeichnispfad in Config angegeben oder unzureichende Berechtigungen dafür
  • Lösung siehe: https://www.mediawiki.org/wiki/Topic:T7me7nu8tmlj8dhd

Ausgabe steuern

  • NOTOC and TOC

  • NOFACTBOX and SHOWFACTBOX

cd /var/www/mediawiki/maintenance
php5 refreshLinks.php

elasticsearch als Suchmaschine nutzen

Elasticsearch

  • die Version in Debian/Jessie ist veraltet
  • Achtung! CirrusSearch kommt nur mit Versionen bis 1.x klar, diese nutzen Java 7

  • download & installieren:

    aptitude install openjdk-7-jre
    wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.deb
    dpkg -i elasticsearch-1.7.1.deb
    • Falls der Server nicht startet, überprüfe ob genug RAM für den Start des Servers frei ist (syslog oder /var/log/elasticsearch/elasticsearch.log).

Elastica

  • download & install:

    cd /tmp/
    wget https://extdist.wmflabs.org/dist/extensions/Elastica-REL1_27-4607acf.tar.gz
    tar zxf /tmp/Elastica-REL1_27-4607acf.tar.gz -C /var/www/mediawiki/extensions/
    cd /var/www/mediawiki/extensions/Elastica
    composer install --no-dev
  • LocalSettings.php um folgendes ergänzen:

    wfLoadExtension( 'Elastica' );

CirrusSearch

  • https://www.mediawiki.org/wiki/Extension:CirrusSearch

  • LocalSettings.php um folgendes ergänzen:

    require_once( "$IP/extensions/CirrusSearch/CirrusSearch.php" );
    $wgDisableSearchUpdate = true;
    $wgCirrusSearchServers = array( 'localhost');
  • CirrusSearch Config initialisieren:

    php extensions/CirrusSearch/maintenance/updateSearchIndexConfig.php
  • SearchUpdate aktivieren; das war nur zur Initialisierung notwendig:

    $wgDisableSearchUpdate = false;
  • Suchindex erstellen:

    php extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipLinks --indexOnSkip
    php extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipParse
  • abschließend in LocalSettings.php CirrusSearch als Standardsuche setzen:

    $wgSearchType = 'CirrusSearch';

Fehlersuche Elasticsearch

  • Wurde der Server gestartet?
  • Ist der Suchindex aktuell?
    • neu erstellen:

      php extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipLinks --indexOnSkip
      php extensions/CirrusSearch/maintenance/forceSearchIndex.php --skipParse


Datentransfer von Zotero zu SMW

Zotero Export

SMW Import

Pywikibot installieren

  • https://www.mediawiki.org/wiki/Manual:Pywikibot/Third-party_Wiki_Quick_Start

  • grob die notwendigen Schritte:
    • pywikibot-core installieren
    • user-config.py anlegen und anpassen
      • family
      • usernames
    • family.py Datei generieren
    • testen
  • alle Schritte im Detail:

    aptitude install python-pip cython libmysqlclient-dev
    
    wget http://tools.wmflabs.org/pywikibot/core_stable.tar.gz
    tar zxf core_stable.tar.gz
    cd core_stable
    pip install -r requirements.txt
    python generate_family_file.py http://das-digitale-archiv.org archiv
    python3 pwb.py login
    python3 pwb.py basic -v -dry -page:Hauptseite
    • fehler bei generate_family
      • das Script läuft zum einen nicht mit python3
      • und es braucht für diesen Schritt Leserechte im Wiki; teporär freigeben in LocalSettings.php

        $wgGroupPermissions['*']['read'] = true;

Pywikibot nutzen

Für Pywikibot gibt es ein Fülle an Scripte für spezielle Anwendungsfälle. Darin zunächst stöbern kann später vlt. eigene Programierarbeit sparen helfen zumindest gibt es einen guten Überblick in die API. Die Scripte liegen im pywikibot Verzeichnis unter scripts

  • python3 pwb.py scripts/login.py -- Bot am Wiki anmelden
    • python3 pwb.py login -- Bot anmelden, wie oben nur weniger tippen
    • ... category tree -- Baumansicht von Kategorien
      • add, move, remove, ...
    • ... checkimage -- Dateianhänge checken (z.B. auf Lizenz, Template)
    • ... delete -page:SandKasten -- Seite SandKasten löschen

    • ... editarticle -- Wikiseiten mit deinem lokalen Lieblingseditor bearbeiten
    • ... isbn -- Fehler bei ISBN Nummern erkennen, Format ändern
    • ... movepages
    • ... pagefromfile -- Wikiseiten aus einer Datei anlegen
    • ... replace -- Inhalte ersetzen, oder auch ISBNs reparieren
    • ... upload -- Dateien anhängen

weitere Doku zu Pywikibot

Pywikibot beschleunigen

Der Bot geht recht sparsam mit den Ressourcen des Wikiservers um. Zum Testen und für große Importe sind die Wartezeiten zwischen den Seitenaufrufen unnötig und lassen sich in der Datei user-config.py durch folgende Zeile minimieren:

minthrottle = 0 
maxlag = 0

DigitaleArchive (zuletzt geändert am 2018-03-09 11:12:06 durch anonym)


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.