Einfachste Projekthomepage bei GitHub

24. September 2014 um 09:57 Keine Kommentare

Die einfachste Form einer Projekthomepage bei GitHub pages besteht aus einer Startseite, die lediglich auf das Repository verweist. Lokal lässt sich eine solche Seite so angelegen:

1. Erstellung des neuen, leeren branch gh-pages:

git checkout --orphan gh-pages
git rm -rf .

2. Anlegen der Datei index.md mit folgendem Inhalt:

---
---
# {{site.github.project_title}}
[{{site.github.repository_url}}]({{site.github.repository_url}}#readme).

3. Hinzufügen der Datei und push nach GitHub

git add index.md
git commit -m "homepage"
git push origin gh-pages

Abbreviated URIs with rdfns

9. September 2014 um 11:26 Keine Kommentare

Working with RDF and URIs can be annoying because URIs such as “http://purl.org/dc/elements/1.1/title” are long and difficult to remember and type. Most RDF serializations make use of namespace prefixes to abbreviate URIs, for instance “dc” is frequently used to abbreviate “http://purl.org/dc/elements/1.1/” so “http://purl.org/dc/elements/1.1/title” can be written as qualified name “dc:title“. This simplifies working with URIs, but someone still has to remember mappings between prefixes and namespaces. Luckily there is a registry of common mappings at prefix.cc.

A few years ago I created the simple command line tool rdfns and a Perl library to look up URI namespace/prefix mappings. Meanwhile the program is also available as Debian and Ubuntu package librdf-ns-perl. The newest version (not included in Debian yet) also supports reverse lookup to abbreviate an URI to a qualified name. Features of rdfns include:

look up namespaces (as RDF/Turtle, RDF/XML, SPARQL…)

$ rdfns foaf.ttl foaf.xmlns dbpedia.sparql foaf.json

@prefix foaf:  .
xmlns:foaf="http://xmlns.com/foaf/0.1/"
PREFIX dbpedia: 
"foaf": "http://xmlns.com/foaf/0.1/"

expand a qualified name

$ rdfns dc:title

http://purl.org/dc/elements/1.1/title

lookup a preferred prefix

$ rdfns http://www.w3.org/2003/01/geo/wgs84_pos#

geo

create a short qualified name of an URL

$ rdfns http://purl.org/dc/elements/1.1/title

dc:title

I use RDF-NS for all RDF processing to improve readability and to avoid typing long URIs. For instance Catmandu::RDF can be used to parse RDF into a very concise data structure:

$ catmandu convert RDF --file rdfdata.ttl to YAML

Das Wissen der Welt

24. August 2014 um 22:32 2 Kommentare

Denny Vrandečić, einer der Köpfe hinter Semantic MediaWiki und Wikidata, hat eine clevere Metrik vorgeschlagen um den Erfolg der Wikimedia-Projekte zu messen. Die Tätigkeit und damit das Ziel der Wikimedia-Foundation wurde 2004 von Jimbo Wales so ausgedrückt:

Imagine a world in which every single person on the planet is given free access to the sum of all human knowledge. That’s what we’re doing.

In Wikiquote wird dieser bekannte Ausspruch momentan folgendermaßen übersetzt: “Stell dir eine Welt vor, in der jeder Mensch auf der Erde freien Zugang zum gesamten menschlichem Wissen hat. Das ist, was wir machen.” Wie lässt sich nun aber quantifizieren, zu welchem Grad das Ziel erreicht ist? So wie ich es verstanden (und in meine Worte übersetzt) habe, schlägt Denny Folgendes vor:

Für jedem Menschen auf der Welt gibt es theoretisch eine Zahl zwischen Null und Eins, die angibt wieviel vom gesamten Wissens der Welt (“the sum of all human knowledge”) diesem Menschen durch Wikimedia-Inhalte zugänglich ist. Der Wert lässt sich als Prozentzahl des zugänglichen Weltwissens interpretieren – da sich Wissen aber kaum so einfach messen und vergleichen lässt, ist diese Interpretation problematisch.

Der Wert von Eins ist utopisch, da Wikipedia & Co nicht alles Wissen der Welt enthält. Für Menschen ohne Internet-Zugang kann der Wert aber bei Null liegen. Selbst mit Zugang zu Wikipedia ist die Zahl bei jedem Menschen eine andere, da nicht alle Inhalte in allen Sprachen vorhanden sind und weil viele Inhalte ohne Vorwissen unverständlich und somit praktisch nicht zugänglich sind.

Die Zahlen der individuellen Zugänglichkeit des Weltwissens lassen sich nun geordnet in ein Diagram eintragen, das von links (maximales Wissen) nach rechts (kein Wissen durch zugänglich) alle Menschen aufführt. Wie Denny an folgendem Bild ausführt, kann die Wikimedia-Community ihrem Weg auf verschiedenen Wegen näher kommen:

(1) Der Ausbau von vielen Artikeln in einem komplexen Spezialgebiet oder einer kleinen Sprache kommt nur wenigen Menschen zu gute.

(2) Stattdessen könnten auch die wichtigsten Artikel bzw. Themen in Sprachen verbessert und ergänzt werden, welche von vielen Menschen verstanden werden.

(3) Schließlich kann Wikimedia auch dafür sorgen, dass mehr Menschen einen Zugang zu den Wikimedia-Ihren Inhalten bekommen – zum Beispiel durch Initiativen wie Wikipedia Zero

Ich halte die von Denny vorgeschlagene Darstellung für hilfreich um über das einfache Zählen von Wikipedia-Artikeln hinauszukommen. Wie er allerdings selber zugibt, gibt es zahlreiche offene Fragen da sich die tatsächlichen Zahlen der Verfügbarkeit von Wissen nicht einfach ermitteln lassen. Meiner Meinung nach liegt ein Grundproblem darin, dass sich Wissen – und vor allem das gesamte Wissen der Menschheit – nicht quantifizieren lässt. Es ist auch irreführend davon auszugehen, dass die Wikimedia-Produkte Wissen sammeln oder enthalten. Möglicherweise ist dieser Irrtum für die Metrik egal, nicht aber für das was eigentlich gemessen werden soll (Zugänglichkeit des Wissens der Welt).

Falls Wikimedia an einem unverstelltem Blick auf die Frage interessiert ist, wieviel des Wissens der Menschheit durch ihre Angebote den Menschen zugänglich gemacht wird, könnte es helfen mal einige Philosophen und Philosophinnen zu fragen. Ganz im Ernst. Mag sein (und so vermute ich mit meinem abgebrochenen Philosophie-Studium), dass am Ende lediglich deutlich wird, warum dass ganze Wikimedia-Projekt nicht zu realisieren ist; selbst Erkenntnisse über mögliche Gründe dieses Scheitern wären aber hilfreich. Vermutlich ist es aber zu verpönt, Philosophen ernsthaft um Rat zu fragen oder die verbliebenen Philosophen beschäftigen sich lieber mit anderen Fragen.

P.S: Eine weitere relevante Disziplin zur Beantwortung der Frage wieviel Wissen der Welt durch Wikipedia & Co der Menschheit zugänglich gemacht wird, ist die Pädagogik, aber da kenne ich mich noch weniger aus als mit der Philosophie.

The GitHub of…

5. Juli 2014 um 23:09 2 Kommentare

Nachdem mich die neue Version von knowable.org enttäuscht hat (die vorige Version hatte ich vor 1,5 Jahren positiv besprochen), habe ich mal gegoogelt, welche Anwendungen so mit GitHub verglichen werden (Suche nach “The GitHub of/for” u.Ä.):

Ich kann zumindest Penflip (eingeschränkt) empfehlen, nicht zuletzt da es wie GitHub auf dem Versionskontrollsystem git basiert so dass Inhalte so zwischen den Anwendungen ausgetauscht werden können. Für Autorea soll ähnliches gelten, das muss ich mir mal genauer ansehen. In der Regel sind Vergleiche mit GitHub aber Quatsch. Im Zweifelsfall also besser erstmal direkt das Original benutzen!

Für den Bereich “Wissenschaft” kann ich diesem Kommentar nur zustimmen: Anwendungen zum kollaborativen wissenschaftlichen Arbeiten benötigen zunächst einmal grundlegende Standards für die Kodierung und den Austausch wissenschaftlicher Artefakte. Grundlage von Git(Hub) sind versionierte Dateisysteme mit Schwerpunkt auf zeilenbasierten Textdateien – das ist zwar eine ziemlich rudimentäre Kodierung, aber besser als gar kein einheitliches Format. Im Bereich Data Science scheint CSV der kleinste gemeinsame Nenner zu sein, eine schöne Versionierung für CSV-Daten habe ich aber noch nicht gesehen.

Open-Access im (Neuerwerbungs)regal

16. Juni 2014 um 22:51 2 Kommentare

In den letzten Monaten hatte ich endlich wieder regelmäßig das Vergnügen eine Fachbibliothek (auch) für den Bereich Bibliotheks- und Informationswissenschaft zu besuchen. Die Bibliothek der Hochschule Hannover im Kurt-Schwitters-Forum liegt zwar etwas am A… der Welt, dafür gab es immer wieder interessante Titel im Neuerwerbungsregal und genügend Comics. Die SUB Göttingen ist dagegen sowohl in Sachen Comics als auch fachlich nicht mehr so interessant, seit das SSG Buch- und Bibliothekswesen abgegeben wurde; dazu kommt dass das meiste sowieso unsortiert im Magazin steht. Jedenfalls bietet das Neuerwerbungsregal gute Anregungen mit bibliotheks- und informationswissenschaftlichen Titeln, auf die ich sonst nicht so gestoßen worden wäre. Bei der Lektüre von Sammelbänden wie die Sonderbände der ZfBB oder verschiedener bei de Gruyter verlegten Reihen, stößt mir jedoch ziemlich schnell auf, wie unpraktisch und anarchonistisch diese Medienform ist. Wieso verstecken Autoren freiwillig ihre Artikel in einem Medium, das sich nicht einfach verlinken, durchsuchen und überhaupt erstmal finden lässt? Closed-Access-Publikationen sind in unserem Fachgebiet einfach sowas von letztes Jahrtausend und eine Schande für die Wissenschaft. Sammelbänd sind sowieso eine Unart, aber das mag Geschmackssache sein. Inzwischen erwarte ich aber nicht nur Open Access (PDF stinkt) sondern langsam mal etwas neuere Publikationsformen. Aus diesem Grund unterstützte ich auch die Neugründung der Fachzeitschrift Informationspraxis.

Dennoch haben physische Sammlungen ihre Berechtigung und ich finde ausgewählte Hinweise auf Neuerscheinungen in gedruckter Form sehr praktisch. Was spricht also dagegen, alles digital als Open Access zu veröffentlichen und parallel ausgewählte Titel in gedruckter Form auszulegen? Ich fände so ein Vorgehen eine gute bibliothekarische Dienstleistung. Vermutlich ist es aber leider eher so, dass Open Access Publikationen gar nicht erst in gedruckter Form angeschafft werden, da sie ja schon digital verfügbar sind. Kennt jemand Fälle von Bibliotheken, die anders verfahren oder sogar selber Druckversionen von empfehlenswerten digitalen Publikationen herstellen und auslegen?

Testing command line apps with App::Cmd

1. November 2013 um 10:49 Keine Kommentare

This posting has also been published at blogs.perl.org.

Ricardo Signes’ App::Cmd has been praised a lot so I gave it a try for my recent command line app. In summary, the module is great although I missed some minor features and documentation (reminder to all: if you miss some feature in a CPAN module, don’t create yet another module but try to improve the existing one!). One feature I like a lot is how App::Cmd facilitates writing tests for command line apps. After having written a short wrapper around App::Cmd::Tester my formerly ugly unit tests look very simple and clean. Have a look at this example:

use Test::More;
use App::PAIA::Tester;

new_paia_test;

paia qw(config);
is stdout, "{}\n";
is error, undef;

paia qw(config -c x.json --verbose);
is error, "failed to open config file x.json\n";
ok exit_code; 

paia qw(config --config x.json --verbose foo bar);
is output, "# saved config file x.json\n";

paia qw(config foo bar);
paia qw(config base http://example.org/);
is exit_code, 0;
is output, '';

paia qw(config);
is_deeply stdout_json, {
    base => 'http://example.org/',
    foo => 'bar',
}, "get full config"

done_paia_test;

The application is called paia – that’s how it called at command line and that’s how it is simply called as function in the tests. The wrapper class (here: App::PAIA::Tester) creates a singleton App::Cmd::Tester::Result object and exports its methods (stdout, stderr, exit_code…). This alone makes the test much more readable. The wrapper further exports two methods to set up a testing environment (new_paia_test) and to finish testing (done_paia_test). In my case the setup creates an empty temporary directory, other applications might clean up environment variables etc. Depending on your application you might also add some handy functions like stdout_json to parse the app’s output in a form that can better be tested.

My PhD thesis about data

23. September 2013 um 09:03 3 Kommentare

I have finally received paper copies of my PhD thesis “Describing Data Patterns”, published and printed via CreateSpace. The full PDF has already been archived as CC-BY-SA, but a paper print may still be nice and more handy (it’s printed as small paperback instead of the large A4-PDF). You can get a copy for 12.80€ or 12.24€ via Amazon (ISBN 1-4909-3186-4).

I also set up a little website at aboutdata.org. The site contains an HTML view of the pattern language that I developed as one result of the thesis.

I am sorry for not having written the thesis in Pandoc Markdown but in LaTeX (source code available at GitHub), so there is no EPUB/HTML version.

O’Reilly steigt mit HTMLBook auf HTML5 um

22. September 2013 um 13:22 Keine Kommentare

O’Reilly Media, führender und einflussreicher Verlag im Bereich elektronisches Publizieren und technischer Handbücher, hat angekündigt von DocBook XML auf eine Teilmenge von HTML5 umzusteigen. Neben dem Blogartikel wird der Schritt in einem Fachartikel auf der Balisage Konferenz erläutert. HTML5 soll sowohl erweiterte Dokumentformen (aka “Beyond the PDF”) ermöglichen, als auch gleichzeitig als Autorenwerkzeug dienen. Die von O’Reilly entwickelte Teilmenge von HTML5 heisst “HTMLBook” und ist ein einem öffentlichen Git-Repository einsehbar. Ich persönlich bin ja etwas skeptisch, da WYSIWYG dem Ziel widerspricht, Inhalte für verschiedene Ausgabeformate zu entwerfen und ziehe deshalb Pandoc vor.

Larry Nivens Ringwelt ist überbewertet

22. Juli 2013 um 19:41 1 Kommentar

Ich bin im Urlaub endlich mal wieder zum Lesen gekommen und habe mir Larry Nivens “Ringworld” vorgenommen, den ich neulich im Antiquariat mitgenommen hatte. Der 1970 erschienene Science-Fiction-Klassiker wurde mit drei der großen SF-Preise ausgezeichnet (Nebula, Hugo und Locus Award) und Nivens vier Jahre später erschienenen “Der Splitter im Auge Gottes” hatte ich als Junge mit Begeisterung verschlungen – da konnte ich doch eigenlich nichts falsch machen, oder?

Leider war der Roman aber enttäuschend. Nicht unbedingt schlecht, wann man wie ich auf Romane steht, die vor allem tief in den Weltraum führen. Ich würde ihm 3 von 5 Sternen geben. Aber die Schwächen, die mir vermutlich vor zehn oder zwanzig Jahren nicht aufgefallen wären, haben die Lektüre etwas getrübt. Kurz gesagt bleibt die Beschreibung der Ringwelt selber hinter den Erwartungen zurück und der Roman stört durch seine sexistische Beschreibung von Frauen. Wie ich später festgestellt habe, ist das auch bereits anderen aufgefallen, deshalb verweise ich hier auf Kritiken, denen ich nur zustimmen kann:

If there’s any reason I find Ringworld interesting it’s as an example of the blatant chauvinism, if not outright misogyny, that often suffuses science fiction works, even to this day.

Claire Love

Niven has often been criticised for being noticeably poor at female characters (if not for being downright misogynist), and having read Ringworld I now understand exactly what those critics mean.

Lobdozer

But what Niven wanted, for both kzin and puppeteer, was alien species with non-sentient females. He wanted this to an extent that it did not occur to him to justify it scientifically or rationally.

Feminist SF – The Blog

I know it’s supposed to be a classic but even without the intense sexism, it just wasn’t as impressive as quite a few of the other classics in the genre.

Melissa Berry

Sicher gibt es schlechtere Romane, auch hinsichtlich des hier herausgegriffenen Kritikpunkts Sexismus und Frauenfeindlichkeit. Aber es gibt eben auch bessere Science-Fiction. Bei meiner Suche nach Kritiken bin ich unter anderem auf den Thread “Non-sexist hard scifi: does it exist?” im xkcd-Forum und auf die umfangreiche Webseite Feminist Science Fiction, Utopian & Fantasy gestoßen.

Identifier in RDF considered harmful

18. Juni 2013 um 11:31 7 Kommentare

Ich bin gerade dabei die RDF-Daten des Linked Data Service der ZDB zu analysieren, um sie direkt im RDF-Bibliotheksverzeichnis des GBV nutzen zu können. Dabei sind mir einige Unterschiede bei der Behandlung von Identifiern aufgefallen. Hier ein Beispiel aus den Daten der
Stabi Berlin (das RDF-Subjekt habe ich zum Kürzen durch $BIB ersetzt):

GBV-RDF

$BIB
  dc11:identifier "DE-1a" ;
  foaf:phone <tel:+49-30-2-66-333501> , <tel:+49-30-2-66-433888> .

ZDB-RDF

$BIB
  dc11:identifier "(ISIL)DE-1a" ;
  vcard:tel [
     a vcard:Pref, vcard:Voice ;
     rdf:value "+49 30 2 66-433888 (Auskunft)"
  ], [
     a vcard:Fax, vcard:Pref ;
     rdf:value "+49 30 2 66-333501" .
  ] .

Solche unterschiedlichen Kodierungen sind besonders dann problematisch wenn RDF-Daten aus mehreren Quellen zusammengeführt werden sollen. Plötzlich hat dann in diesem Beispiel die Stabi Berlin zweil Identifier und vier Telefonnummern. Telefonnummern lassen sich übrigens nach RDF 3966 auch als URI kodieren, für ISILs gilt dies leider nicht, weil die internationale ISIL-Agentur versäumt hat, sich darum zu kümmern. Grundsätzlich bestärkt mich dieses Beispiel in der Überzeugung, dass Identifier in RDF-Daten Müll sind, solange sie nicht in Form von URIs kodiert werden – und zwar in vielen Fällen besser nicht als HTTP-URIs in mehrfacher Ausführung, wie im Rahmen von Linked Data gängige Praxis!

Powered by WordPress with Theme based on Pool theme and Silk Icons.
Entries and comments feeds. Valid XHTML and CSS. ^Top^