Wissens- und Kommunikations-Management mit Drupal

Theorien der Informations-Vernetzung und deren effiziente Umsetzung mit einem Content-Management-Framework

Carsten Logemann

paratio.com e.K.

(Präsentation verlassen)
Ergänzende Informationen und Quellen: 

Termine:

Zusammenfassung/Abstract:

Die freie und quelloffene Software Drupal bietet insbesondere auch Nicht-Programmierern viele leicht umsetzbare Möglichkeiten für individuelle und komplexe Informations-Strukturen und Funktionen des Social-Networks. Ausgefeilte Programmier-Schnittstellen ermöglichen PHP-Programmierern eine leichte Erweiterbarkeit und Pflege der Software.

 

Start s5-Präsentation (für eingeloggte Benutzer)

0 Einleitung

Drupals Stärken:

Ergänzende Informationen und Quellen: 

Performance-Strategien in Drupal:

0.1 jung: Drupals kurze Geschichte

  • 1998 Dries Buytaert: Message Board für Freunde im LAN
  • 2001 Open Source PHP Web CMS.
  • seit 2005 Google Summer of Code
  • 2006 Drupal Association
  • 2008 Drupal 6, Acquia Drupal und Acquia-Support

0.2 dynamisch: Was kann man mit Drupal machen

  • Mehrsprachige Websites, Inhalts-Versionierung und kooperative Bearbeitung
  • Komplexes Rollen und Rechte-Management auch für Gruppen
  • multimediale Inhalte (Audio, Video, Flash-Inhalte) verändern und verwalten
  • Flash-Applikationen oder andere Websites mit Inhalten und Funktionen versorgen 
  • Arbeits-Prozesse, Kalender-Daten und Benachrichtigungen organisieren,
  • Blogs, Foren, Wikis, Kalender, Galerien, Glossare, Verzeichnisse, Webshops Team-Sites, Projekt-Management, Social-Networks und Communities
  • Einbindung externer Programe  z. B. für E-Learning, E-Mail, IM (XMPP) CRM (CiviCRM), Datei-Versionierung  (CVS/SVN) und LDAP
  • und vieles mehr ...

0.3 erfolgreich: Wer nutzt Drupal

  • Kleine Websites und Blogs: z.B. auch der Blog von Tim Berners Lee
  • Schulen und Universitäten: z.B. Harvard University, Uni Duisburg Essen
  • Öffentliche Bibliotheken
  • IT-Firmen: z.B. Novell, Sun, Adobe, AOL
  • Medien-Branche: z.B. Die Zeit, Die Welt, Forbes, The New York Observer, Warner Brothers Records, SonyBMG, MTV UK
  • Viele unterschiedliche Communities: z.B. http://www.amazee.com/, http://zarte-babyhaut.de/ (Fixies), http://freelens.com/

 

0.4 Benutzer, Admins und Entwickler

  • Benutzer müssen nur Browser und E-Mail beherrschen
    • Und auf Ihre eigene (Passwort-)Sicherheit achten.
  • Admins (user/1) sollten einige Grundlagen kennen
    • Module, Inhalts-Typen und Filter konfigurieren
    • verstehen, was  Nodes (Inhalte), Rollen und Rechte sind
    • System-Pflege von Server und Drupal -> Sicherheits-Updates!
  • Entwickler müssen Drupals innerstes Wesen verstehen und nutzen
    • Überschreiben von Funktionen -> Kaskade im Theming
    • "It's got the Hook" – An Abläufen teilnehmen.
    •  Make Modules, don't hack Core! 

 

Ergänzende Informationen und Quellen: 

Roxette: "Tasty like a raindrop, she's got the look "
http://de.wikipedia.org/wiki/Roxette

1 Grundlagen: Verarbeitung von Medien-Inhalten

1.1 Komplexitäts-Stufen der Vernetzung

  • Wortspiel, Satz und Text:
    • Zeichen-Bedeutung. grammatikalische Verknüpfung und Thema
  • Hyper-Text: Vernetzung von Texten mit Verweisen/Links (->Enzyklopädie)
    • World Wide Web (WWW):
    • Wikipedia 
  • Assoziative Gruppierung:
    • Bookmarks und Tags, Memex-Konzept
    • Referenz-Listen und Schlagworte (Tags, Tag-Clouds)
  • Kontextuelle Strukturierung:
    • Sematisches Web: RDF - Standard des W3C,
    • Ikorbo.net: Ein Konzept für die Zukunft
Ergänzende Informationen und Quellen: 

Semantik:

Hypertext:

Assoziative Gruppierung:

Wie in einer Bibliothek können Inhalte verschlagwortet werden: Inhalte lassen sich damit Quer-verbinden und -finden.

Wissensorganisation über assoziative Pfade in einem medialen Speicher 1945 "As we may think" von Vannevar Bush. Assoziation folgt dem menschlichen Denken.

Kontextuelle Strukturierung:

1.2 Statische HTML-Dateien

  • Informations-Präsentation im WWW benötigt mindestens:
    • Webserver (z.B. Apache)
    • Daten z.B. als (X)HTML/CSS-Dateien
  • Informationens-Veränderung auf Datei-Ebene
    • Vorteil: Hohe Sicherheit und Stabilität
    • Nachteil: Daten und Layout schwierig zu ändern
  • Content-Management möglich
    • Offline (z.B. mit GoLive und FTP)
    • Online mit getrenntem Redaktions-System

1.3 Dynamische Daten in Webanwendungen

  • Dynamik oder Bequemlichkeit auf einer Website:
    • Gästebuch und Foren,
    • Blog-Funktionen oder
    • ausgewachsenes CMS
  • Eine Webanwendung auf einem Webserver benötigt
    • eine Programmiersprache (z.B. PHP) - und
    • meistens eine Datenbank (z.B. MySQL)
  • Informationen sammeln, speichern und verändern
    • Vorteil: Informationen können schnell geändert werden
    • Nachteil: Das kann unerwartet anders geschehen
Ergänzende Informationen und Quellen: 

Grundsatz: Die Sicherheit von Web-Anwendugen erfordert viel Pflege.

1.4 Zeit und Kosten im Rahmen: Frameworks

  • Prinzip:  Das Rad nicht immer neu erfinden!
  • Zeit-Ersparnis bei Zusammenbau und Pflege mit Standard-Bauteilen
  • Teilweise zu unflexibel bei sehr speziellen Aufgaben und Performance
  • Web-Application-Frameworks wie z.B. Ruby on Rails (RoR), Grails usw.
  • Javascript-Frameworks insbesondere für AJAX: jQuery und Co
  • YAML: (X)HTML/CSS-Framework für das Template:
  • Drupal: CMS- und Social-Software-Framework

2 Menschen und Maschinen

2.1 Individualität und Privatheit

  • Informationen haben eine Bestimmung:
    • privat (diese Informationen sollten vielleicht nicht auf einen Server)
    • geschlossene Empfänger-Gruppe (vllt. Verschlüsselung nutzen)
    • oder für die Öffentlichkeit (BLOGs. Microblogs u. Status-Meldungen)
  • Der Grad dieser Öffentlichkeit kann in Drupal gesteuert werden. ABER:
    • Es kann Fehlfunktionen der Software geben.
    • Ein Administrator kann einen Fehler in der Bedienung machen
    • Eine Webapplikation könnte manipuliert werden
  • Nutzer in einer Gruppe wollen/bekommen ein individuelles Profil
    • Nutzer fehlt oft das Bewußtsein über die Veröffentlichung
    • Die individuelle Beurteilung einer Information kann sich ändern.
    • Administratoren haben nicht immer ein Verständnis von Datenschutz
Ergänzende Informationen und Quellen: 

Ein Tagebuch dient meistens eher einer privaten Aufzeichnung von Ereignissen, die in der Regel nicht für die Öffentlichkeit bestimmt sind. In diesem Sinne ist "Tagebuch" keine gute Übersetzung für Blog (Web-LOG), das ja primär auf eine Veröffentlichung zielt. Im Sinne der Sicherheit privater Informationen stellt allerdings jede Aufzeichnung ein potentielles Risiko dar.

2.2 Soziale Organisation

  • Website-Weite Rollen, Rechte und Zusammen-Arbeit
    • Basis: Gäste, Benutzer, Administratoren (user/1 ist root)
    • weitere Rollen frei definierbar und Rechte zuweisbar
    • Wiki-Funktionen und Checkout (Bearbeitungs-Sperre)
    • Core-Forum mit Kommentaren oder dieses erweitern
  • Individuelle Beziehungen
    • Beziehungen definieren oder nachbilden mit Relationships oder  "Family Tree 2"
    • individuelle Node-Rechte und private Mittteilungen
  • Gruppen mit Organic Groups
    • Rollen und Rechte - Unterverteilung
    • eigene Inhalte und Kommunikation
    • versteckte und offene Gruppen

2.3 Zugänglichkeit der Maschine

  • Zugänglichkeit der Web-Anwendung
    • Ausfall-Sicherheit von Hard- und Software (Sicherheits-Updates)
    • Kapazitäten der Rechenleistung und Bandbreite (Kormpression)
  • Zugänglichkeit der Inhalte (Barrierefreiheit)
    • für Browser aller Art und Betriebssysteme (auch für Seh-Behinderte)
    • für Suchmaschinen
  • Zugänglichkeit von Funktionen: Usability und Interface-Gestaltung
    • für Benutzer ("Frontend")
    • für Administratoren, Moderatoren usw. ("Backend")

 

2.4 Aktion und Reaktion

  • Interne Abläufe (Hook- und Form-API für PHP-Entwickler)
    • Benutzer-Aktion (erstellen, blockieren, einloggen, ausloggen usw.)
    • Node-Aktionen (erstellen, laden, vorbereiten und ausgeben)
  • Kontakt-Formular erzeugt E-Mail (Messaging-Modul kann mehr)
  • Core: Trigger und Actions (z.B. "Wenn "böses Wort", dann Benutzer sperren")
  • Workflow-Modul (Organisation von Arbeits-Abläufen, Status-Änderungen)
  • Rules-Modul (komplexes Reaktions-Framework, mit PHP erweiterbar)
  • Man kann Drupal z.B. Twittern lassen.
  • Taktgeber: cron.php (intern Unix, extern über HTTP)
  • Core: Update status informiert Admin über Sicherheits-Updates

 

3 Informationen einfügen, strukturieren und klassifizieren

 

 

3.1 Inhalts-Arten und Datenbank-Strukturen

  • Inhalts-Typen erlauben Unterscheidung nach Art und Funktion eines Nodes
  • Core: Basis-Felder in Inhalts-Typen: Titel, Text, Version
  • Module erzeugen spezielle (oft funktionale) Inhalts-Typen
    • z.B. eCard- oder FAQ-Beitrag
    • Tabellarische Inhalte wie z.B. Sheetnode oder Matrix
  • Felder verwalten mit Content Construction Kit (inkl. Option-Widgets)
    • Unterschiedliche Text-Felder, Node- und User-Referenzen
    • Nummern und mit Date-API: Datum und Uhrzeit 
    • spezielle Felder anderer Module z.B. Geo-Location oder Links
    • Computed Field (mit PHP Know How): Ergebnisse in Datenbank
    • Felder in eigenen Blöcken anzeigen oder "bearbeitbar" lassen 

 

3.2 Schlagwörter, Lesezeichen und Inhalts-Gruppierung

  • Schlagwörter mit Drupals Taxonomie (Tagging-System) 
    • Hierarchische und Nicht-Hierarchische Vokabulare
    • Geschlossene (definierte) und offene Vokabulare (free tagging)
    • Websiteweite-, Guppen- und individuelle Vokabulare
    • Die Nutzung mehrerer Vokabulare erlaubt Facettenklassifikation
  • Mit CCK besondere Link-Felder erzeugen und ein Label geben
    • Node-Reference (zu Inhalts-Nodes)
    • User-Reference ( zu Benutzern)
  • Individuelle Bookmarks und Tags mit dem Flag-Modul
  • Nodes gruppieren
    • Core-Book-Funktion und diese Erweitern z.B. mit "Outline"
    • mit Modulen wie  "Nodequeue" , "nodeorder" oder "dataset"

3.3 Semantik und Meta-Informationen

  • Überschriften, Listen und andere sinnvolle HTML-Auszeichnungen
  • Meta-Tags (Autor, Schlüsselwörter, Beschreibung usw.) in Dokumenten/Nodes 
  • Bild-Informationen mit Zusatz-Informationen versehen
  • W3C-Standard "Resource Description Framework"
    • formale Beschreibung von Informationen über Objekte (Ressource)
    • Das RDF-Modul bereitet bestehende Informationen auf.
    • Diverse Module stellen wiederum für RDF entsprechende Informationen bereit, wie z.B. das File-Framework.
    • Die Nutzung bzw. die Konfiguration erfordert vor allem Verständnis des RDF-Konzepts des Sematic Web.

 

3.4 Elementare Annotation (Ikorbo-Konzept)

  • Eine manuelle Eingabe und Verlinkung z.B. mit Unterstützung von WSWYG-Editoren ist grundsätzlich möglich, aber bei weitem nicht sinnvoll.
  • Bei späterer Realisation des Projekts sind AJAX und Views gute Kandidaten eine Schnittstelle zwischen einer Drupal-Website und der zentralen Ikorbo-Datenbank herzustellen.
  • Ob Drupal selbst zur eigentlichen Verwaltung des Daten-Bestands des Projekts sinnvoll ist, ist noch offen. 
Ergänzende Informationen und Quellen: 

4 Suchen, Ersetzen-, Ändern-Funktionen

Daten aufbereten, präsentieren und finden

4.1 Dynamischer Inhalt

  • Das Filter-System von Drupal hilft Inhalte dynamisch zu verändern: 
  • Diverse Module nutzen Filter für verschiedene Aufgaben, z.B.:
    • HTML bereinigen und problematische Inhalte filtern
    • E-Mail-Adressen maskieren (Anti-Spam)
    • Links zu Glossar-Inhalten und URL-Icons für externe Links anzeigen
    • Überschriften-Listen, Fußnoten usw. erzeugen.
    • Mathematische Formeln darstellen
    • und vieles mehr
  • Filter erstellen ohne Programmierung
    • Modul "Flexifilter"
    • Modul "Custom Filter"

4.2 Volltext-Suche

  • Core: Indexierung und Gewichtung von Inhalten für die Volltext-Suche
    • Sprach-Indexierung mit speziellen Stemmer-Sprach-Modulen 
    • HTML-Indexer basierend auf semantische Tags (H1, a, strong, etc.)
    • Diverse Erweiterungen auch zum Indexieren (auch von CCK-Feldern).
    • Indexierung von Upload-Text-Dokumenten mit "Search Files"
  • Schnelle externe Volltext-Such-Technologien können integriert werden
    • Nachteil: Erfordert besondere Technologie auf Server
    • Sphinx (SQL Phrase Index)
    • Apache Solr (Lucene) demnächst mit RDF-Integration
    • Solr-Dienstleistung z.B. von Acquia
  • Suchen/Ersetzen von Content mit "Search and Replace Scanner"

 

4.3 Datenbank-Ansichten und Massen-Berarbeitung von Inhalt

  • Informationen suchen, laden, filtern, sortieren und anzeigen
    • Datenbank-Layer des Drupal-Cores mit SQL-Befehlen
    • In Modulen oder sogar im Template noch realisierbar.
  • Einfacher Weg mit dem Views-Modul auch für Nicht-Programmierer:
    • Listen unterschiedlicher mit Argumenten und Filtern
    • Kalender mit Informationen der Date-API
    • Galerien mit Image-Modulen, TAG- und CCK-Clouds
    • Berechnungen und Export von Listen-Ergebnissen
  • Einfache Änderung innerhalb von "Such-Ergebnissen"
    • Mit "Edit-View" einzelne Inhalte direkt in Liste bearbeiten
    • Gruppen-Änderungen mit "Bulk-View" und anderen Modulen

4.4 Finde-Maschine

  • Erweiterte Suche (Core) nach Inhaltstypen u. Taxonomie
  • diverse Finde-Module als Alternative, bzw. Ergänzung zur Volltext-Suche
  • Automatische Suche, wenn Seite nicht vorhanden (Error 404)
  • Suche in Books (als Node-Gruppe)
  • Views veränderbaren Filtern als individueller Finde-Helfer. Suche z.B. nach:
    • Autoren,
    • Inhalts-Typen
    • Tags
    • CCK-Felder
    • Zustände,
    • Datum usw.
  • Facetten-Suche: Volltext mit manuellen Einschränkungen

5 Fazit und Migration