2020.06 2021.06

KlassifikationsBrowser

Funktionsweise des KlassifikationsBrowser

Klassifikationsbrowser

Mit dem Klassifikationsbrowser bietet MyCoRe die Möglichkeit über Klassifikationen zu navigieren und so zu den zugehörigen Dokumenten zu gelangen. Für jede Klassifikation die über einen Link im Navigationsmenü erreicht werden soll, muss eine Seite im content-Verzeichnis angelegt werden (siehe z.B. im docportal-Modul unter web/content/main/classifications).

Konfiguration

Der Klassifikationsbrowser ist mittels der Komponente mycore-classbrowser eingebunden und steht dann zur Verfügung. Nutzt man mycore-complete, hat man ebenfalls Zugriff auf den Klassifikationsbrowser.

Der Browser kann in jede MyCoRe-Webpage unter Angabe des xml-Tags <classificationbrowser> eingebunden werden. Dabei wird das XML-Tag inkl. seiner Attribute über das XSLT-Stylesheet classificationBrowser.xsl ausgewertet. Folgende Attribute sind möglich:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
  <classificationbrowser
    classification="{ClassificationID}"
    category="{CategoryID to start with, optional}"
    sortby="{id|label, optional sort order of categories}"
    objecttype="{MCRObject type, optional}"
    field="{search field for category queries in this classification}"
    restriction="{additional query expression}"
    filterCategory="{true|false, if true join returnId to id, ignored with lucene, default true}"
    parameters="{additional MCRSearchServlet parameters}"
    addParameter="{any additional request parameters to forward to classification browser servlet}"
    countresults="{true|false, default false, whether to execute queries to count results}"
    countlinks="{true|false, default false, whether to count links to each category}"
    emptyleaves="{true|false, when false and counting activated, skip empty leaves}"
    adduri="{true|false, whether to include URI from classification data}"
    adddescription="{true|false, whether to include description from category label}"
    addclassid="{true|false, adds classification ID to category, default false}"
    class="{CSS class, default is 'classificationBrowser'}"
    style="{XSL.Style to use, default is classificationBrowserData.xsl}"
  />

Beispiel für Browsen nach Einrichtung

Der Klassifikationsbrowser für die Klassifikation Dokumente nach Einrichtung (z.B. bei einer lokalen Beispiel-Installation) kann dann durch folgende URL aufgerufen werden:

1
http://localhost:8291/content/main/classifications/origin.xml

Für das im docportal-Modul enthaltene Beispiel der Einrichtungen wurde die folgende Konfiguration verwendet:

1
2
3
4
5
6
7
8
  <classificationbrowser
    classification="DocPortal_class_00000002"
    objecttype="document"
    field="origin"
    countresults="true"
    parameters="numPerPage=10"
    style="docportal"
  />

Da diese Konfiguration direkt als XML im section-Tag der Seitenspezifikation stattfindet, kann der Klassifikationsbrowser in beliebigen Seitenkontext eingebunden werden und muss nicht, wie im Beispiel, allein stehen. Durch die Variabilität ist es also möglich, Klassifikationen nach Belieben in XML-Dokumente einzubetten.

In Abbildung 2.14.1 ist ein Beispiel zu sehen, wie sich der Klassifikationsbrowser auf der Webseite präsentieren kann. Einzelne Kategorien können aus- bzw. eingeklappt werden, so lange sie noch Unterkategorien enthalten. Die Anzahl der enthaltenen Dokumente kann dargestellt werden und es besteht auch die Möglichkeit leere Kategorien auszublenden.

Klassifikationsbrowser

Abbildung 2.14.1: Klassifikationsbrowser in einer MyCoRe-Anwendung

Die Parameter im Detail

classification="{ClassificationID}"

Dieser Parameter gibt die Klassifikations-ID an, zu der der Browser erstellt werden soll. Dieser Parameter ist Pflicht.

1
2
3
4
  Beispiel:

  classification="DocPortal_class_00000002"
    

Hinter der Klassifikation mit der ID DocPortal_class_00000002 verbirgt sich in diesem Fall eine Liste von Einrichtungen, die zur MyCoRe-Community gehören. Dies ist eine Beispielklassifikation aus dem docportal-Modul.

objecttype="{MCRObject type}"

Über den Parameter objecttype wird die Auswahl der MyCoRe-Objekttypen gesteuert, die bei der Abrage der Dokumente berücksichtigt werden sollen. Der angegebene Typ muss in der Datei mycore.properties über den Parameter MCR.Metadata.Type.[Doctype]=[true|Dokumententypliste] definiert sein. Als möglicher Wert, kann jede Angabe aus MCR.Metadata.Type.* verwendet werden. Dieser Parameter ist optional.

1
2
3
4
  Beispiel:

  objecttype="document"
    

Es wird MCR.Metadata.Type.document in der Datei mycore.properties herausgesucht, der z.B. mit MCR.Metadata.Type.document=true belegt ist. Somit werden bei dieser Klassifikation alle Dokumente vom MyCoRe-Objekttyp document berücksichtigt.

Alternativ könnte man in einer etwas komplexeren Anwendung so den logischen MyCoRe-Objekttyp objecttype="alldocs" spezifizieren, der dann auf die echten Objekttypen z.B. MCR.Metadata.Type.alldocs=document,article,codice,disshab,professorum,portrait abgebildet wird und alle Dokumente, die einem Typ aus der Typliste entsprechen, im Klassifikationsbrowser berücksichtigt.

style="{XSL.Style to use}"

Legt das Stylesheet fest, mit dem das erzeugte XML-Document transformiert wird. Dabei setzt sich der Name des auszuwählenden Stylesheets aus der Default-Datei classificationBrowserData.xsl und dem Style zusammen. Dieser Parameter ist optional.

1
2
3
4
  Beispiel:

  style="docportal"
    

Es wird die Datei classificationBrowserData-docportal.xsl zur Transformation verwendet.

emptyleaves="{true|false}"

Klassifikationen besitzen im Allgemeinen eine baumartige Struktur. Zu jeder im Baum dargestellten Kategorie wird die Anzahl der damit klassifizierten Objekte ermittelt und (je nach Stylesheet) dargestellt. Kategorien die keine Objekte referenzieren (Anzahl der Dokumente=0) können durch die Option emptyleaves ausgeblendet werden. Mögliche Werte sind true|false, default ist true - es werden also alle Kategorien inkl. leerer angezeigt. Dieser Parameter ist optional.

1
2
3
4
  Beispiel:

  emptyleaves="false"
    

Zeigt nur Kategorien der Klassifikation an, die auch Dokumente enthalten.

restriction="{additional query expression}"

Es ist möglich für die referenzierten MyCoRe-Objekte eine Restriktion zu setzen um die Auswahl durch weitere Such-Kriterien einzuschränken. Es werden dann nur die Objekte berücksichtigt, die allen Kriterien genügen. Dieser Parameter ist optional.

1
2
3
4
  Beispiel:

  ToDo
    

ToDo: Beschreibung des Beispiels.

category="{CategoryID to start with}"

Da einige Klassifikationen schnell komplex und ein enstprechender Baum unübersichtlich werden kann, ist es möglich eine Kategorie-ID zu spezifizieren, an deren Stelle der darzustellende Klassifikationsbaum beginnen soll. Dieser Parameter ist optional.

1
2
3
4
  Beispiel:

  category="Unis"
    

Mit dieser Restriktion werden nur die Dokumente berücksichtigt, die auch der Klassifikation DocPortal_class_00000002 mit der Kategorie Unis genügen. Das sind im Beispiel alle Dokumente, die an Einrichtungen, die auch Hochschulen sind, publiziert worden.

field="{search field for category queries in this classification}"

Hier wird das bei der Ausführung der Suchanfrage zu durchsuchende Suchfeld festgelegt, das in searchfields.xml spezifiziert werden muss.

1
2
3
4
  Beispiel:

  field="origin"
    

Es wird das origin-Suchfeld als Suchparameter genutzt.

filterCategory="{true|false}" 2013.06

Dieser Parameter wird intern genutzt, um die von Solr zurückgegebene ID (returnId) mit der Id zu verknüpfen (join). Funktioniert nur mit Solr, wird bei Solr ignoriert.

adddescription="{true|false}"

Die Beschreibung, die optional beim Erstellen der Klassifikation für Kategorien angegeben sein können, werden im Baum mit dargestellt. Mögliche Werte sind true|false. Default ist false, der Parameter ist optional.

1
2
3
4
  Beispiel:

  addclassid="true"
    

addclassid="{true|false}" 2013.06

Mit Solr stehen nun die Suchfelder category bzw. category.top zur Verfügung, in denen jeweils die Klassifikationen indiziert sind. Somit kann unter Angabe "KlassifikationsID:KategorieID" auf eine Klassifikation zugegriffen werden, ohne sie explizit zu indizieren. Damit der Klassifikationsbrowser damit umgehen kann, muss in diesem Fall das Attribut addclassid auf "true" gesetzt werden.

1
2
3
4
5
6
  Beispiel:

 classification="mir_genres"
          field="category.top"
     addclassid="true"