Help:Konzeptcaching

From semantic-mediawiki.org
Jump to: navigation, search
Semantic MediaWiki-
Administratorenanleitung
Herunterladen
Installation
Konfiguration
Konzeptcaching
Saubere URIs
SPARQL und RDF-Speicher
Fehlerbehandlung
Datenreparatur
Softwareerweiterungen
MW-Softwareerweiterungen

SMW-Softwareerweiterungen

Semantic MediaWiki-
Nutzeranleitung

Um die Antwortzeit von Abfragen bei den Semantischen Suchen zu beschleunigen, die Konzepte verwenden, bietet Semantic MediaWiki (SMW) einen speziellen Mechanismus zur Vorberechnung der Abfrageergebnisse, der Konzeptcaching genannt wird. Diese Funktion ist besonders für umfangreiche Wikis nützlich, die komplexe Abfragen geordnet durchführen möchten. Insbesondere ist es anhand verschiedener Optionen möglich festzulegen, welche Abfragen direkt durchgeführt werden dürfen und welche eines vorhandenen Cache (Datenpuffer) bedürfen.

Die Leistungssteigerung, die durch das Caching einer Konzeptabfrage erzielt wird, ist vergleichbar mit der Auswirkung, die der Austausch der Verwendung einer Konzeptabfrage durch eine MediaWiki-Kategorie hätte. Sie beeinflusst alle semantischen Abfragen, die dieses Konzept nutzen, wie auch die Anzeige der Ergebnisse der Konzeptabfrage auf der Konzeptseite an sich. Andererseits können vorberechnete Ergebnisse einer Konzeptabfrage veralten und so nicht mehr mit den Inhalten des Wikis übereinstimmen. Es ist daher möglich zu bestimmen, wie alt ein vorberechnetes Ergebnis maximal sein darf, bis SMW es neu zu berechnen versucht.

Erstellen und Verwalten von Konzeptcaches

Entsprechend der Standardkonfiguration wird SMW einen Konzeptcache immer dann verwenden, sofern er vorhanden und nicht älter als ein Tag ist. Um einen Cache für eine Konzeptanfrage zu erstellen, wird das Wartungsskript SMW_conceptCache.php genutzt. Analog anderen SMW-Skripten wird es ausgeführt, indem im Pfad „[Pfad zur Semantic MediaWiki-Installation]/maintenance/“ die Anweisung

php SMW_conceptCache.php

ausführt. Während der Ausführung des Skriptes wird eine Dokumentation zur Anwendung desselben angezeigt. Sofern die Aktion fehlschlägt, liegt möglicherweise eine nicht standardkonforme Verzeichnisstruktur des Wikis vor. In der Datei „[Pfad zur Semantic MediaWiki-Installation]/maintenance/README“ ist dokumentiert, wie Skripte in diesem Fall ausgeführt werden können.

Das Skript SMW_conceptCache.php verfügt über drei grundlegende Ausführungsmodi, die mit Hilfe der folgenden Parameter ausgewählt werden können:

  • php SMW_conceptCache.php --status zeigt den Status aller vorhandenen Konzeptcaches der Website an (einschließlich des Falls, dass für vorhandene Konzeptabfragen kein Cache vorhanden ist).
  • php SMW_conceptCache.php --create erzeugt neue Caches für alle vorhandenen Konzeptabfragen oder aktualisiert diese, sofern sie bereits vorhanden sind.
  • php SMW_conceptCache.php --delete löscht alle vorhandenen Caches.

Jede der genannten Aktionen bezieht sich auf alle vorhandenen Konzeptabfragen. Es können allerdings etliche Parameter gesetzt werden, welche die Ausführung der Skripte auf bestimmte Konzeptabfragen beschränken:

  • --concept „Name der Konzeptabfrage“ verarbeitet lediglich die benannte Konzeptabfrage. Der Name darf dabei nicht die Bezeichnung des Namensraums („Konzept:“) beinhalten, muss allerdings von Anführungszeichen ("Name der Konzeptabfrage") umschlossen sein, sofern er Leerzeichen enthält.
  • --hard verarbeitet nur Konzeptabfragen, die, entsprechend der Wikieinstellungen, nicht direkt berechnet werden dürfen (siehe hierzu die Informationen weiter unten auf dieser Seite).
  • --old <min> verarbeitet ausschließlich Konzeptabfragen mit Caches, die älter als <min> Minuten sind oder über noch keine Caches verfügen.
  • --update verarbeitet lediglich Konzeptabfragen, die bereits über einen Cache verfügen, dass heißt es werden keine neuen Caches erzeugt. Um das Gegenteil zu erreichen, also nur Konzeptabfragen zu verarbeiten, die über noch keinen Cache verfügen, ist beim Parameter --old <min> als <min> eine sehr hohe Zahl anzugeben, die auf keinen der bestehenden Caches zutrifft.
  • -s <startid> verarbeitet ausschließlich Konzeptabfragen mit mindestens der ersten Seitenbearbeitungsnummer <startid>.
  • -e <endid> verarbeitet lediglich Konzeptabfragen mit der maximalen Seitenbearbeitungsnummer <endid>.
Diese Optionen können zudem miteinander kombiniert werden, um die Auswahl der betroffenen Konzeptabfragen weiter zu begrenzen. Beispielsweise führt die Anweisung
php SMW_conceptCache.php --create --update --old 30
dazu, dass nur Caches für die Konzeptabfragen erzeugt werden, die bereits über einen Cache verfügen, welche dabei aber älter als 30 Minuten sein müssen.

Konfiguration von SMW für den Einsatz von Caches

SMW verfügt über drei grundlegende Möglichkeiten, um Konzeptabfragen selbst sowie auf Seiten im Konzeptnamensraum zu verarbeiten:

  • Berechnung der Elemente einer Konzeptabfrage sobald diese benötigt werden, indem die aktuell im Wiki vorhandenen Daten genutzt werden.
  • Abruf der Elemente zur Konzeptabfrage aus dem Cache.
  • Die Verwendung Konzeptabfragen ablehnen, indem sie wie eine Abfrage ohne Ergebnisse behandelt wird.

Standardmäßig nutzt SMW vorhandene Caches, sofern diese nicht älter als ein Tag sind. Zudem werden Elemente von Konzeptabfragen direkt berechnet, sofern die aktuellen Einstellungen des Wikis deren Ausführung als reguläre eingebettete Abfrage ermöglichen. Es ist aber möglich Konzeptabfragen zu erstellen, die nicht als eingebettete Abfrage ausgeführt werden können, da die Einschränkungen hinsichtlich Größe und Komplexität weniger streng sind, als bei eingebetteten Abfragen. Ergebnisse solcher Konzepte werden standardmäßig nur aus dem Cache abgerufen, gleich wie alt diese sein mögen, oder gar nicht ermittelt. Der folgende Abschnitt erläutert die relevanten Parameter solche ein Verhalten zu konfigurieren.

Welche Abfragen können als eingebettete Abfragen durchgeführt werden?

Drei Parameter werden dazu herangezogen, um festzustellen, wie „komplex“ eine Abfrage ist: Größe, Tiefe sowie die Abfragemöglichkeiten, die sie nutzt. Die Größe wird im Wesentlichen von der Gesamtzahl der Abfragebedingungen innerhalb einer Abfrage bestimmt. Die Tiefe bezeichnet die maximale Anzahl verketteter Attributaussagen. Beispielsweise hat [[Attribut::Wert]] die Tiefe 1 sowie [[Attribut1.Attribut2::Wert]] [[Kategorie:Beispiel]] die Tiefe 2. Die Abfragemöglichkeiten sind die Arten der Abfragebedingungen die verwendet werden. Die Abfrage #ask mit format=debug ermöglicht es Größe wie Tiefe einer Abfrage zu ermitteln.

SMW verfügt über Konfigurationsoptionen, welche die maximale Größe und Tiefe festlegen, sowie die verfügbaren Abfragemöglichkeiten beschränken können, die als eingebettete Abfrage oder auf Spezialseiten durchgeführt werden können. Diese Parameter und ihre Standardeinstellungen sind:

Standardmäßig sind alle Abfragemöglichkeiten zulässig, wobei dies auf großen Wikis beschränkt werden kann. Um lediglich Abfragen in Kategorien oder Konzeptabfragen zuzulassen, würde man beispielsweise folgende Einstellung in der Datei „LocalSettings.php“ vornehmen:

$smwgQFeatures = SMW_CATEGORY_QUERY | SMW_CONCEPT_QUERY;

Um zusätzlich auch eine Verknüpfung (Schnittmenge) dieser beiden zulässigen Abfragemöglichkeiten zu ermöglichen, stellt man folgendes ein:

$smwgQFeatures = SMW_CATEGORY_QUERY | SMW_CONCEPT_QUERY | SMW_CONJUNCTION_QUERY;

Sofern eine Abfrage gemäss dieser Einstellungen nicht zulässig ist, wird sie zu einer einfacheren Abfrage reduziert. Konzeptabfragen können hingegen Abfragen nutzen, die nicht diesen Anforderungen entsprechen. In diesem Fall werden Konzeptabfrage aber nicht direkt ausgeführt sowie deren Ergebnisse erst dann angezeigt, sobald für sie ein Cache generiert wurde. Hiervon betroffene Konzeptabfragen können mit der Option --hard bei der Ausführung des Skripts „SMW_conceptCache.php“ ausgewählt werden:

php SMW_conceptCache.php --hard

Auf diese Weise können die Benutzer des Wikis Konzeptabfragen erstellen und somit vorschlagen, während die Administratoren des Wikis die Caches berechnen lassen können, sofern die Konzeptabfrage realisierbar ist.

Welche Abfragen sind innerhalb von Konzeptabfragen möglich?

Für Konzeptabfragen unterstützt SMW Einstellungen, ähnlich den oben erläuterten, allerdings mit etwas veränderten Standardeinstellungen:

Auch diese Einstellungen können in der Datei „LocalSettings.php“ geändert werden. Die Standardeinstellungen zeigen, dass bei Konzeptabfragen mehr Abfragemöglichkeiten bestehen, als bei eingebetteten Abfragen mit #ask. Wie bereits erwähnt, werden Konzeptabfragen nur dann ausgeführt, wenn ein Cache für sie verfügbar ist.

Schwere und einfache Konzeptabfragen

Die obigen Abschnitte erläuterten Konzeptabfragen, die von SMW als „schwer“ zu bezeichnen sind. Standardmäßig sind dies Abfragen, die nicht in Form einer eingebetteten Abfrage möglich sind. Dies kann geändert werden, indem man den Wert des Parameters $smwgQConceptCaching ändert. Die hierbei möglichen Einstellungen sind:

  • $smwgQConceptCaching = CONCEPT_CACHE_HARD; ist die Standardeinstellung gemäß obiger Erläuterungen.
  • $smwgQConceptCaching = CONCEPT_CACHE_ALL; betrachtet alle Konzeptabfragen als „schwer“, was bedeutet, dass sie nie sofort berechnet werden und stets über einen Cache verfügen müssen.
  • $smwgQConceptCaching = CONCEPT_CACHE_NONE; hat zur Folge, dass keine Konzeptabfrage als „schwer“ angesehen wird. Sie können dennoch einen Cache einsetzen, sofern einer vorhanden ist (siehe hierzu den folgenden Abschnitt), sind allerdings in keinem Fall von deren Vorhandensein abhängig. Diese Einstellung kann dann nützlich sein, sofern der Namensraum Konzept nur von vertrauenswürdigen bzw. fortgeschrittenen Benutzern bearbeitet werden kann und diese somit die einzigen sind, die neue Konzeptabfragen erstellen können.

Die Standardeinstellung in SMW ist: $smwgQConceptCaching = CONCEPT_CACHE_HARD;

Wann werden verfügbare Caches genutzt?

„Schwere“ Konzeptabfragen werden stets versuchen einen Cache zu nutzen, da sie ohne ihn kein Ergebnis ausgeben können. Bei „leichten“ Konzeptabfragen ist die sofortige Neuberechnung der Ergebnisse möglich, wobei SMW das Alter des Caches hinzuziehen wird, um hierüber eine Entscheidung zu treffen. Der hierfür konfigurierbare Parameter $smwgQConceptCacheLifetime legt fest, wie alt (in Minuten) ein Cache maximal sein darf. Ältere Caches werden nicht verwendet, sofern es die Einstellungen von SMW ermöglichen, die Abfrageelemente direkt zu berechnen.

Die Standardeinstellung entspricht einem Tag und ist: $smwgQConceptCacheLifetime = 24*60;

Wie viele Seiten werden in den Cache aufgenommen?

Die Einstellung $smwgQMaxLimit legt fest, wie viele Seiten in den Cache aufgenommen werden. Sofern der angegebenen Wert nicht ausreichend ist, kann er entsprechend angepasst werden.

Die Standardeinstellung ist: $smwgQMaxLimit = 10000;


Diese Dokumentationsseite gilt für alle SMW-Versionen von 1.3.0 bis zur aktuellsten Version.
      Andere Sprachen: enruzh-hans

Help:Concept caching de 1.3.0