Register or log in at GRIN

Your e-mail-address or password is wrong
Register now
For new authors: free, easy and fast
This will be used as your user name, please specify a valid e-mail address

Lost password

Your e-mail-address or password is wrong

Request a new password
Anwendung semantischer Technologien für die Modellierung und Analyse von Lizenze... close

Please wait

Please install the Adobe Flash Player if no e-book is displayed.

Anwendung semantischer Technologien für die Modellierung und Analyse von Lizenzen im Bereich der Open Source Software

Diploma Thesis, 2008, 98 Pages
Author: Markus Schmidt
Subject: Computer Science - Internet, New Technologies

Details

Category: Diploma Thesis
Year: 2008
Pages: 98
Grade: 1,2
Language: German
Archive No.: V125040
ISBN (E-book): 978-3-640-30010-5
ISBN (Book): 978-3-640-30494-3

Abstract

Gemäß einer Studie zur wirtschaftlichen Bedeutung von Open Source Software im Auftrag der europäischen Kommission im November 2006 ist der Marktanteil dieser Software in den vergangenen fünf Jahren kontinuierlich gestiegen. Private und öffentliche Organisationen setzen Open Source Software vermehrt ein. Der öffentliche Sektor in Europa verbucht dabei vor Asien und Latein-Amerika die höchste Penetration weltweit. Lizenzen stellen bezüglich der Weiterverwertung von Open Source Software einen entscheidenden Faktor dar. Alle Open Source Lizenzen genügen den Richtlinien der Open Source Initiative, einer Non-profit-Gemeinschaft, die sich als Unterstützer, Fürsprecher und Integrator der Open Source Gemeinde sieht, unterscheiden sich jedoch mehr oder weniger stark. Diese Abweichungen innerhalb der Lizenzen behindern den Prozess der Weiterentwicklung von Open Source Software und schaffen rechtliche Unsicherheit. Die Programme lassen sich nicht mehr beliebig kombinieren, sofern das Ergebnis weitergegeben werden soll. Die einzelnen Lizenzen in einem zusammengesetzten Werk treten in Wechselwirkung und erlauben aufgrund ihrer oft sehr restriktiven Bestimmungen keine freie Lizenzwahl. Um das Potential bei der Entwicklung freier Software vollständig auszuschöpfen, ist es für die Entwickler von entscheidender Bedeutung, zu wissen, welche Funktionen bereits bestehender Software sie in den von ihnen entwickelten Programmen nutzen können. Dieses Wissen kann jedoch nur durch Kenntnis der Lizenzbedingungen erlangt werden. Diese Arbeit hat sich bezüglich des eben beschriebenen Problems zum Ziel gesetzt, ein Expertensystem zu beschreiben, dass die komplexen Abhängigkeiten verschiedener Lizenzmodelle im Bereich freier Software in einen maschinell verarbeitbaren semantischen Zusammenhang setzt. Informationen, welche Open Source Lizenzen betreffen, sollen dabei in menschenlesbarer, wie auch in maschinell interpretierbarer Form auf Basis einer Ontologiesprache formell dargestellt und mit Hilfe einer Regelsprache zueinander in Beziehung gesetzt werden. Ein in diesem Zusammenhang entwickelter Formalisierungsansatz für Open Source-Lizenzen und die Realisierung einer daraus resultierenden Wissensbasis werden dabei im Zentrum der Betrachtung stehen. In einem Anwendungsszenario soll die Suche einer Open Source Entwicklungsplattform erweitert werden und in diesem Zusammenhang Lizenztyp, wichtige Lizenzbedingungen und mögliche Lizenzkompatibilität im Suchergebnis verfügbar werden.


Fulltext (computer-generated)

Universität der Künste Berlin

Fakultät Gestaltung

Institute of Electronic Business

Anwendung semantischer Technologien für
die Modellierung und Analyse von Lizenzen
im Bereich der Open Source Software

Vorgelegt von:

Markus Schmidt

Abgabedatum:

August 2008



Inhaltsverzeichnis

1 EINLEITUNG 6

2 GRUNDLAGEN .8

2.1 Lizenzen im Bereich der Open Source Software .8

2.1.1 Der Open Source-Begriff 9

2.1.2 Probleme bei der Weiterverwertung von OSS 11

2.1.3 Bedingungen ausgewählter Lizenztexte 13

2.1.3.1 General Public License V2 13

2.1.3.2 Lesser General Public License V2.1 17

2.1.3.3 Berkeley Software Distribution License 21

2.2 Expertensysteme 22

2.2.1 Logik 22

2.2.1.1 Aussagenlogik 23

2.2.1.2 Prädikatenlogik 24

2.2.1.3 Beschreibungslogik 25

2.2.2 Wissensrepräsentation 26

2.2.2.1 Anspruch und Technologie des Semantic Web 28

2.2.2.2 Das Resource Description Framework RDF 31

2.2.2.3 Die Web Ontology Language OWL 32

2.2.2.4 Die Semantic Web Rule Language SWRL 33

2.2.2.5 Abfragesprachen 35

2.2.3 Abfrage und Manipulation von Wissen 35

2.2.3.1 Protégé 36

2.2.3.2 KAON2 37

3 EIN EXPERTENSYSTEM FÜR OSS-LIZENZEN 39

3.1 Aufbau des Expertensystems . . .40

3.2 Lizenzkompatibilität im Rahmen des Systems .42

3.3 Modellierung der Wissensbasis 44

3.3.1 Lizenzwissen - Primitive Klassen und Klassenbeziehungen 45

3.3.2 Werke, Lizenzen, Bedingungen - Instanzen der Ontologie 54

3.3.3 Vervollständigung der Bedingungen durch Regeln 59

3.3.4 Wissenszuwachs durch definierte Klassen 64

4 VALIDIERUNG DER FORMALISIERUNG . .71

4.1 Verwendetes System 71

4.2 Ergebnisse des Regel- und Reasoning-Prozesses . . 71

4.3 Bewertung der Ergebnisse 73

5 DIE LIZENZKOMPATIBILITÄTSSUCHE 74


5.1 Untersuchungsgegenstand .74

5.2 Domain Model .75

5.3 Use Case-Entwicklung .79

5.4 Spezifikation . . 81

5.4.1 Standards, Programmiersprachen und Datenquellen 81

5.4.2 Nicht-Funktionale Anforderungen 82

6 ZUSAMMENFASSUNG .84

6.1 Ergebnisse .84

6.2 Probleme und offene Fragen . . . 86

6.3 Ausblick . .89

ANHANG A

Use Case Diagramme

LITERATURVERZEICHNIS


Abbildungsverzeichnis

Abbildung 1: Modifiziertes Layer Cake Diagram 29

Abbildung 2: Beispiel für ein Triple 31

Abbildung 3: SWRL-Regeln 34

Abbildung 4: Expertensystem mit Kaon2 als Inference Engine 41

Abbildung 5: Zentrale Klasse Lizenz 46

Abbildung 6: Lizenzbedingung mit zugehörigen Klassen 49

Abbildung 7: Satz (LicenseParagraph) mit Eigenschaften 52

Abbildung 8: Lizenzbedingung mit Klassenbeziehungen 55

Abbildung 9: Formalisierte Lizenzbedingung aus Ziffer 1 der GPL in Protégé. 58

Abbildung 10: Regel aus den Ziffern 4 und 5 der GPL im Protégé SWRL-Editor 61

Abbildung 11: Definierte Klasse in Protégé für eine Lizenzbedingung 68

Abbildung 12: Lizenz mit schwachem Copyleft-Effekt als definierte Klasse 69

Abbildung 13: Gefolgerte Instanzen nach Beendigung des Testlaufts 73

Abbildung 14: Lizenzkompatibilitätssuche 76

Abbildung 15: User bei der Suche nach kompatibler Software 79

Abbildung 16: Wartung und Update der Wissensbasis 80


Einleitung

1 Einleitung

1 Einleitung

Gemäß einer Studie zur wirtschaftlichen Bedeutung von

Open Source Software

im

Auftrag der europäischen Kommission im November 2006 ist der Marktanteil dieser

Software in den vergangenen fünf Jahren kontinuierlich gestiegen (Ghosh 2006: 11).

Private und öffentliche Organisationen setzen

Open Source Software

vermehrt ein. Der

öffentliche Sektor in Europa verbucht dabei vor Asien und Latein-Amerika die höchste

Penetration weltweit.

Lizenzen stellen bezüglich der Weiterverwertung von

Open Source Software

einen

entscheidenden Faktor dar. Alle

Open Source-

Lizenzen genügen den Richtlinien der

Open Source Initiative

, einer

Non-profit-

Gemeinschaft, die sich als Unterstützer,

Fürsprecher und Integrator der

Open Source-

Gemeinde sieht, unterscheiden sich

jedoch mehr oder weniger stark. Diese Abweichungen innerhalb der Lizenzen

behindern den Prozess der Weiterentwicklung von

Open Source Software

und schaffen

rechtliche Unsicherheit. Die Programme lassen sich nicht mehr beliebig kombinieren,

sofern das Ergebnis weitergegeben werden soll. Die einzelnen Lizenzen in einem

zusammengesetzten Werk treten in Wechselwirkung und erlauben aufgrund ihrer oft

sehr restriktiven Bestimmungen keine freie Lizenzwahl. Um das Potential bei der

Entwicklung freier Software vollständig auszuschöpfen, ist es für die Entwickler von

entscheidender Bedeutung, zu wissen, welche Funktionen bereits bestehender

Software sie in den von ihnen entwickelten Programmen nutzen können. Dieses

Wissen kann jedoch nur durch Kenntnis der Lizenzbedingungen erlangt werden.

Diese Arbeit hat sich bezüglich des eben beschriebenen Problems zum Ziel gesetzt, ein

Expertensystem zu beschreiben, dass die komplexen Abhängigkeiten verschiedener

Lizenzmodelle im Bereich freier Software in einen maschinell verarbeitbaren

semantischen Zusammenhang setzt. Informationen, welche

Open Source-

Lizenzen

betreffen, sollen dabei in menschenlesbarer, wie auch in maschinell interpretierbarer

Form auf Basis einer Ontologiesprache formell dargestellt und mit Hilfe einer

Regelsprache zueinander in Beziehung gesetzt werden. Ein in diesem Zusammenhang

entwickelter Formalisierungsansatz für

Open Source-

Lizenzen und die Realisierung

einer daraus resultierenden Wissensbasis werden dabei im Zentrum der Betrachtung

stehen. In einem Anwendungsszenario, welches konzeptuell beschrieben wird, soll die

6


Einleitung

1 Einleitung

Suche einer kollaborativen

Open Source-

Entwicklungsplattform erweitert werden und

dabei Informationen über Lizenzen, wie Lizenztyp, wichtige Lizenzbedingungen und

mögliche Lizenzkompatibilität im Suchergebnis verfügbar werden. Auf dieser

Grundlage sollen Entwickler freier Software auf Informationen über Lizenzen

bestehender Anwendungen zugreifen und so eine vereinfachte Kompatibilitätsprüfung

zwischen ihrer eigens angestrebten Lizenz und Lizenzen anderer Entwickler

durchführen können. Als Ergebnis soll eine unverbindliche Empfehlung gegeben

werden, wie sich Verbundwerke gegen eine Lizenz

-

Inkompatibilität absichern lassen.

Zur Umsetzung der Ziele wird zunächst das Thema Lizenzen im Bereich der

Open Source Software

kurz umrissen. Dabei werden Probleme, die sich bei der Nutzung

dieser Software bezüglich der Lizenzen ergeben, dargestellt und drei

Open Source-

Lizenzen vorgestellt. Im weiteren Verlauf wird sich die Arbeit mit dem

Aufbau von Expertensystemen im

Semantic Web

-Kontext beschäftigen und den Stand

der Forschung darstellen. Formale Logik, Wissensrepräsentation, sowie Abfrage und

Manipulation von Wissen sind zu betrachten. Der folgende Teil entwirft ein

Expertensystem und die dazugehörige Wissens- und Regelbasis. Zu diesem Zweck

werden drei repräsentative

Open Source-

Lizenzen analysiert und mit Hilfe einer

Ontologie- und Regelsprache in einer Wissensbasis formalisiert. In einem

Anwendungsbeispiel wird im weiteren Verlauf die anwendungsorientierte Nutzung

der Wissensbasis gezeigt. Dazu sollen

Domain Model

,

Use Cases

und ein

konzeptionelles Modell entworfen werden. Die Ergebnisse der einzelnen

Umsetzungsschritte werden während der Untersuchung in dieser Arbeit schriftlich

dargelegt.

7


Grundlagen

2 Grundlagen

2 Grundlagen

Der folgende Abschnitt soll in Bezug auf das zu entwickelnde System zwei Dinge

leisten. Zuerst werden der Begriff

Open Source Software

im Zusammenhang mit

Lizenzierung, die sich daraus ergebenden Probleme bei der Weiterverwertung, sowie

einige Lizenztexte betrachtet. Ziel ist es, die Bedeutung von

Open Source Software

zu

klären, den Begriff gegen andere Konzepte abzugrenzen und das Problem

inkompatibler Lizenzen bei der Kombination von Softwarebestandteilen näher zu

beschreiben. Anschließend werden Technologien und deren Grundlagen vorgestellt,

die zur Entwicklung von Expertensystemen geeignet sind. Dabei handelt es sich um

die Grundlagen formaler Logik und die technischen Möglichkeiten bei der

Wissensrepräsentation, Wissensmanipulation und Wissensabfrage. In diesem

Zusammenhang werden ausgewählte Bereiche der

Semantic Web Vision

beleuchtet, eine

Ontologie

-

Sprache und eine Regelsprache vorgestellt, sowie Softwarelösungen zum

Einlesen und Verarbeiten von Wissensbeständen betrachtet. Ziel ist es, die für den

Hauptteil der Arbeit benötigten Voraussetzungen zu schaffen und das Thema greifbar

zu machen.

2.1 Lizenzen im Bereich der
Open Source Software

Urheber gelten als Schöpfer von Werken und genießen in Deutschland nach § 1 UrhG

Schutz durch das Urheberrechtsgesetz. Da Entwicklungen im Softwarebereich gemäß

dieses Gesetzes als Werke angesehen werden, unterliegen auch Computerprogramme

seinen Bestimmungen. Nach § 15 Abs. 1 UrhG hat der Urheber das ausschließliche

Recht sein Werk zu verwerten, kann Dritten aber nach §31 UrhG Nutzungsrechte

einräumen. Werden diese vertraglich festgelegt, spricht man von Nutzungsverträgen

oder Lizenzen. Bei einem Lizenzvertrag handelt es sich um einen durch das

Bürgerliche Gesetzbuch (BGB) nicht näher definierten Vertragstyp1. Dieser

ermöglicht es z.B. dem Rechteinhaber, einem Lizenznehmer zustimmungsbedürftige

Handlungen, wie z.B. die Vervielfältigung eines Computerprogramms, zu erlauben.

1 Vergleiche dazu die Anmerkungen der Kanzlei ,,LÜBECK Steuerberater Rechtsanwälte" zu

Lizenzverträgen <http://www.luebeckonline.com/mustervertraege/lizenzvertraege.html>.

8


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

Geregelt wird dies in §69 UrhG durch ,,die Ausschließlichkeitsrechte des

Rechtsinhabers, die den Verwertungsrechten bei anderen Werkformen, insbesondere

den §§ 16, 17, 19a, 23 UrhG entsprechen und diese im Hinblick auf die

Besonderheiten von Software präzisieren." (Jaeger/Metzger 2006: 76f)

Lizenzen sind im

Open Source-

Umfeld nicht ungewöhnlich. Außergewöhnlich ist

lediglich ihr Charakter, der sie von anderen Softwarelizenzen unterscheidet. Was

diesen besonderen Charakter ausmacht, welche Probleme die Weiterverwertung von

Open Source Software

mit sich bringt und welche Bedingungen wichtige

Open Source

-

Lizenzen enthalten, sollen die folgenden Kapitel klären.

2.1.1 Der Open Source-Begriff

Grundsätzlich versteht man unter

Open Source Software

(OSS)2 Computerprogramme,

die eine unbeschränkte Weiterverbreitung und Nutzung erlauben, sowie keine

Lizenzgebühren verlangen. Der deutsche Gesetzgeber hat zu diesem Zweck extra

einen Passus in die Rechtsprechung einfließen lassen, der es dem Urheber unter §32

Absatz 3, Satz 3 UrhG gestattet, ein unentgeltliches Nutzungsrecht für jedermann

einzuräumen.

Der Quellcode von OSS muss nach den Richtlinien der

Open Source Initiative

(OSI)3 in

irgendeiner Form zugänglich sein, sei es durch die direkte Auslieferung mit der

Software oder indem er anderweitig frei zugänglich gemacht wird. Nutzungsverträge

müssen eine unentgeltliche Weitergabe und auch die Veränderung der Software

2 Der Begriff

Open Source Software

entstand durch Abstimmung bei einer Tagung verschiedenerer

Anhänger der

Free Software

-Szene 1998 in Palo Alto, Kalifornien (Tiemann 2006: The ′open source′

label). Zu diesem Zeitpunkt waren Computerprogramme, die nun unter OSS zusammengefasst

werden sollten, vorrangig als

Free Software

bekannt. Bis heute existieren beide Begriffe

nebeneinander, wobei die Befürworter von

Free Software

sich eher als Idealisten sehen, die mit dem

Konzept der freien Softwareentwicklung auch gesellschaftliche Ziele verfolgen, während der

pragmatischere Begriff

Open Source Software

eine vorrangig technische Sicht auf das Wessen der

Programme offenbart. Beide Begriffe, wie auch der Begriff

Free and Open Source Software

(FLOSS),

der eine Brücke zwischen den beiden anderen Formulierungen zu schlagen versucht, bezeichnen die

gleiche Art von Software.

3 Innerhalb dieser Arbeit wird die

Open Source Definition

der OSI für die Begriffsklärung

herangezogen. Alternativ existiert die Definition der Free Software Foundation für F

ree Software

unter <http://www.fsf.org/licensing/essays/free

-

sw.html>.

9


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

erlauben, ob nun zur Entwicklung neuer Funktionen oder zur Beseitigung von

Fehlern. Zwar wird die Integrität des Autors gewahrt, d.h. er kann darauf bestehen,

dass sein eigener Code getrennt von fremden Code, z.B. in Form von Patches,

ausgeliefert wird, veränderte Programme einen anderen Namen erhalten und alle

Veränderungen wieder unter der Ursprungslizenz verbreitet werden müssen, die

Weiterentwicklung unterbinden darf er jedoch nicht. Darüber hinaus existiert eine

Reihe von Bedingungen, die nicht an die Einräumung der Rechte bezüglich der

Softwarenutzung geknüpft werden können. Insbesondere dürfen keine

Personengruppen oder Einsatzbereiche von der Nutzung ausgeschlossen werden.

Andere Software darf durch die Lizenzbedingungen nicht beschränkt werden. Die

Lizenz muss unabhängig des Produktes gelten, von dem die Software möglicherweise

einen Teil darstellt. Die Technologie

-

Neutralität ist zu wahren. Der Lizenztext darf

also keine besondere Technologie für die Weiterentwicklung oder Verwendung

vorschreiben.4

OSS grenzt sich damit von ähnlich klingenden Konzepten, wie

Freeware

,

Shareware

und

Public Domain Software

ab,5 wobei es sich bei den beiden ersten Arten um

Closed Source Software

handelt, die entweder kostenlos oder vorübergehend kostenlos

zum ausprobieren genutzt werden kann.

Public Domain Software

ist in keiner Weise

geschützt, da der Autor auf seine Rechte verzichtet und das Werk damit, sofern es die

Rechtsprechung zulässt, gemeinfrei wird (Fogel/Barkhau 2005: Lizenzen,

Urheberrecht und Patente).

Der mit OSS in Zusammenhang stehende Gedanke geht auf die Anfänge der

Computerentwicklung in den 1960er Jahren zurück, als Programme und Rechner als

untrennbare Einheit aufgefasst wurden (Grassmuck 2004: 202). Zu dieser Zeit

entwickelten Ingenieure und Programmierer Computer und Software in der Regel als

Auftragsarbeit speziell zum Einsatz in bestimmten Projekten. Da der

Source Code

stets

offen war, konnten Hersteller und Kunde die Programme zum gegenseitigen Nutzen

weiterentwickeln. Ein in den USA angestrengtes Kartellverfahren gegen IBM wegen

Bundling

von Hard- und Software, sowie die Entwicklung von Computern für den

4 Eine vollständige Definition des

Open Source

-Begriffs durch die

Open Source Initiative

findet sich auf

<http://opensource.org/docs/osd>.

5 Zur näheren Definition dieser Konzepte vergl. Grassmuck 2004: 287f.

10


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

Massenmarkt, führten in der Folgezeit zur Trennung des Hard- und Softwaremarktes

(Jaeger/Metzger 2006: 9). Software wurde proprietär und als Betriebsgeheimnis

gehütet. Als Reaktion auf dieses neue Paradigma in der Softwareentwicklung

gründete Richard Stallmann 1984 das GNU

-

Projekt.6 Dabei schufen die Mitglieder

ein alternatives Entwicklungsmodell, das jedem den freien Zugang zu der daraus

hervorgehenden Software ermöglichen sollte. Um sich gegen Missbrauch abzusichern

und das neue Prinzip voranzutreiben, gestaltete Stallmann 1989 zudem die

General Public License

(GPL) (Jaeger/Koglin/Kreutzer 2005: 1). Das Grundprinzip der

GPL verbirgt sich hinter dem Begriff

Copyleft

. Die oben beschrieben Richtlinien von

OSS sind von dem

Copyleft-

Gedanken abgeleitet und bilden damit gewissermaßen

seine nachgelieferte Grundlage. Die Besonderheit beim

Copyleft

ist, dass die

weitreichenden Bestimmungen der

Copyleft-

Lizenz auch bei der Weitergabe der

Software in veränderter oder unveränderter Form erhalten bleiben, dem Empfänger

also das Recht, die Software ebenfalls zu verändern und weiterzugeben, garantiert

wird (Free Software Foundation 2005: What is Copyleft?). Als Linus Torvalds 1992

die erste Version von Linux unter die GPL stellte, wurde damit der Startschuss für die

Entwicklung eines freien Betriebssystems gegeben, deren Entwicklungsprinzipien in

der GPL eine rechtliche Absicherung fanden.

2.1.2 Probleme bei der Weiterverwertung von OSS

Die GPL hat zwar aufgrund ihrer weiten Verbreitung die größte Bedeutung unter den

Open Source-

Lizenzen, ist aber nicht die Einzige. Bis heute zählt die

Open Source Initiative

über 60 weitere Lizenzen.7 Prominente Beispiele sind die

Mozilla Public License

,

die

Lesser General Public License

,

und

die

New Berkeley Software Distribution License

. Alle diese Lizenzen genügen den Richtlinien

der OSI, unterscheiden sich jedoch mehr oder weniger stark. Dabei entsteht ein

Problem, was die freie Weiterentwicklung von OSS nicht nur behindert, sondern

rechtliche Unsicherheit schafft. OSS lässt sich nicht mehr beliebig kombinieren8,

6 Eine Beschreibung des Projektes kann auf <http://www.gnu.org/gnu/manifesto.html> eingesehen

werden.

7 Eine alphabetisch geordnete Liste anerkannter

Open Source

-Lizenzen der OSI ist auf

<http://www.opensource.org/licenses/alphabetical> verfügbar.

8 Unter kombinierten oder abgeleiteten Werken versteht man, angelehnt an den Lizenztext der GPL,

11


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

sofern das Ergebnis weitergegeben werden soll.9 ,,Die einzelnen Lizenzen in einem

zusammengesetzten Werk treten in Wechselwirkung" (Grassmuck 2004: 302) und

erlauben aufgrund ihrer oft sehr restriktiven Bestimmungen keine freie Lizenzwahl.

Das zeigt sich im besonderen Maße bei der GPL V2 in Ziffer 6: ,,You may not impose

any further restrictions on the recipients′ exercise of the rights granted herein." Das

Verbot zusätzlicher Beschränkungen hat besondere praktische Relevanz für den Fall,

dass ein GPL

-

Programm mit Software unter einer anderen Lizenz, auch einer anderen

Open Source-

Lizenz, zu einem neuen Programm verbunden wird (Jaeger/Metzger

2006: 29). Es kann keinesfalls davon ausgegangen werden, dass Software, die

Open Source-

Lizenzen unterliegt, problemlos kombiniert werden kann. Inwieweit eine

Kombination möglich ist, hängt zum großen Teil vom Charakter der Lizenz ab.

Aufgrund ihrer Lizenzbestimmungen führen

Open Source

-Lizenzen zu einem starken,

schwachen oder überhaupt keinem

Copyleft-

Effekt. Die Frage, wann welcher

Copyleft-

Effekt vorliegt, kann nicht abschließend beantwortet werden, da die

Übergänge fließend sind. Grundsätzlich lässt sich sagen, dass mit schwächer

werdendem

Copyleft-

Effekt, die Fähigkeit, modifizierte Varianten einer Software gegen

die Überführung in Entwicklungen unter anderen Lizenzen abzusichern, schwindet,

eine Kombination von Programmteilen unter verschiedenen Lizenzen also erleichtert

wird. Programme, die unter einem sehr strengen

Copyleft

stehen, lassen sich dagegen

nicht einmal untereinander kombinieren: ,,Two different copyleft licenses are usually

′incompatible′ [...]" (Free Software Foundation 2007: Copylefted software).

Problemlos gestaltet sich dagegen die Entwicklung von Softwarebestandteilen, die als

autonom angesehen werden können. Dies ist der Fall, wenn die Module beispielsweise

durch Kommunikationsmechanismen, wie Pipes oder Sockets miteinander verbunden

sind. Hier handelt es sich nicht um kombinierte Werke - es gilt das OSS

-

Prinzip, dass

andere Software nicht durch OSS beschränkt werden darf. Lizenzrechtliche Probleme

treten in diesem Fall nicht auf. Dahingegen sind einige Lizenzen mit starkem

Copyleft

,

zum einen nicht voneinander abgeleitete Programme oder Softwarebestandteile, die ein Ganzes

bilden, also keine eigenständig funktionierenden Einheiten darstellen und zum anderen voneinander

abgeleitete Softwarebestandteile (Jaeger/Metzger 2006: 35).

9 Für den privaten oder unternehmensinternen Gebrauch kann Software unter der GPL sehr wohl mit

Code, der anderen Lizenzen unterliegt, kombiniert werden.

12


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

wie z.B. die GPL in der Version 2, im Sinne eines kombinierten Werkes nur zu sich

selbst kompatibel, lassen also keine Bedingungen anderer Lizenzen zu. Die Entwickler

stehen vor dem Problem, dass komplexe rechtliche Wechselwirkungen bei der

Kombination verschiedener Softwarestücke mit unterschiedlichen Lizenzen zu

erwarten sind.

2.1.3 Bedingungen ausgewählter Lizenztexte

Für den Entwurf von Kriterien für eine spätere Lizenzanalyse ist eine Untersuchung

der im Lizenztext enthaltenen relevanten Inhalte notwendig. Dies bedeutet für das

weitere Vorgehen, dass alle Bedingungen aus den Lizenztexten extrahiert werden

müssen, um sie einer Untersuchung zugänglich zu machen.

Die Herausforderung besteht darin, unwichtige von wichtigen Passagen zu trennen.

Für die Analyse unwichtige Passagen können z.B. nähere Erläuterungen zu den

Bedingungen enthalten oder wiederholt auf schon genannte Punkte eingehen. Die

wichtige Passagen enthalten Rechte, auf die sich die Lizenznehmer der Software

berufen können, und Pflichten, die unter bestimmten Bedingungen erfüllt werden

müssen, damit die zugestandenen Rechte nicht verloren gehen, sowie Anmerkungen,

die den Anwendungsbereich der Lizenz betreffen.

Bei der nun folgenden Vorstellung der Lizenzen wird der Charakter der

entsprechenden Lizenz erläutert und anschließend eine Beschreibung der relevanten

Rechte, Pflichten und Anmerkungen vorgenommen.

2.1.3.1 General Public License V2

Die GPL, hier in der Version 2 betrachtet, stellt in vielerlei Hinsicht eine Besonderheit

unter den

Open Source-

Lizenzen dar. Sie ist nicht nur die erste Lizenz ihrer Art und

die juristische Umsetzung der Grundüberlegungen zu Freier Software durch die Free

Software Foundation (Jaeger/Metzger 2006: 20), in ihr drückt sich auch der Wunsch

nach Durchsetzung des OSS

-

Prinzips mit allen rechtlich festschreibbaren Mitteln aus.

Dies zeigt sich vor allem in den Ziffern 2 b) und 6, in denen einerseits festgelegt wird,

dass Arbeiten, die von GPL

-

Programmen abgeleitet wurden, wieder unter den

Bedingungen der GPL stehen müssen und andererseits dem abgeleiteten Programm

keine darüber hinausgehenden Beschränkungen auferlegt werden dürfen. Dirk

Hohndel unterstreicht mit der Aussage, dass sich diese Lizenz ,,[...] in den Code

13


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

reinfrisst und nie wieder daraus weggeht" (Grassmuck 2004: 299), die besondere

Radikalität der GPL, die auch als

Copyleft

bezeichnet wird und mit dem sie eine Abkehr

von ihren eigenen Prinzipien zu verhindern sucht.

Auffällig bei der Nutzung von Programmen, die der GPL unterliegen, ist zunächst der

Verzicht auf eine Einverständniserklärung mit der Lizenz, die dem Benutzer

properitärer Software gewöhnlich vor der Nutzung abverlangt wird. Ziffer 5 weist hier

explizit darauf hin, dass niemand, der GPL

-

Programme nutzt, verpflichtet ist, die

zugehörige Lizenz anzunehmen. Das reine Ausführen der Software ist also überhaupt

nicht von der Lizenz betroffen, wohl aber das Verändern, Verbreiten und

Vervielfältigen. Dabei schließt der Rechteinhaber einen Vertrag mit dem Erwerber der

Nutzungsrechte ab. (Jaeger/Koglin/Kreutzer 2005: 9)

Die GPL gewährt Nutzern von Software, die unter GPL

-

Bedingungen steht,

umfangreiche Rechte. So können Kopien des Quelltextes angefertigt, öffentlich

zugänglich gemacht und beliebig verbreitet werden. Auch eine Weitergabe

veränderter Programme ist möglich (Jaeger/Metzger 2006: 21ff). Zusätzlich ist es

erlaubt, wie in Ziffer 1 Satz 2 beschrieben, gegen Gebühr eine Garantie zu gewähren,

sowie sich die Kopierkosten für das Programm erstatten zu lassen. Die Weitergabe der

Software in binärer Form, verändert oder unverändert, ist nach Ziffer 3 ebenfalls

gestattet. Allerdings sind all diese Rechte an bestimmte Pflichten geknüpft, die im

Folgenden beschrieben werden sollen.

Die Pflichten, welche aus der Lizenz erwachsen, sind im wesentlichen in den Ziffern 1-

3 geregelt. Die Ziffern 4 und 5 beschreiben noch einmal explizit, wann eine Handlung

in den Anwendungsbereich der Lizenz fällt. Ziffer 6 unterstreicht den

Copyleft-

Charakter der GPL aus Ziffer 2b, während 7 und 8 sich mit der

Durchsetzbarkeit der Rechte in verschiedenen Rechtsräumen auseinander setzen.

Paragraph 9 regelt den Umgang mit neuen Versionen der GPL und 10 enthält

Hinweise für Autoren, die Teile von GPL

-

Programmen unter abweichenden

Bedingungen nutzen möchten. Die Paragraphen 11 und 12 beschreiben den

Haftungsausschluss. Ein genauer Blick in die einzelnen Bedingungen soll nun

Vorarbeit für die Formalisierung der Lizenztexte leisten.

Die Ziffer 1 beschreibt die Weitergabe der Software. Soll GPL

-

Software

14


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

weitergegeben werden, dürfen die Original

-

Lizenzbedingungen, sowie der

Haftungsausschluss nicht verändert werden, ein Copyrightvermerk, die

Lizenzbedingungen und der Haftungsausschluss sind mit dem Programm zu

veröffentlichen.

Alle eben genannten Bedingungen gelten ebenso für die Weitergabe einer veränderten

Version des Programms, beschrieben in Ziffer 2. Laut Lizenztext handelt es sich dabei

in der Regel um ein auf dem Programm basierendes Werk. Eigene Entwicklungen, die

nicht auf dem Werk basieren, da sie eigenständige und unabhängige Einheiten

darstellen, werden dagegen nicht von der GPL erfasst. Dies wird explizit in Ziffer 2 in

den Abschnitten 2,3 und 4 geregelt: ,,If identifiable sections of that work are not

derived from the Program, and can be reasonably considered independent and separate

works in themselves, then this License, and its terms, do not apply to those sections

when you distribute them as separate works." Damit unterstreicht die Lizenz den

Open Source-

Grundsatz, keine eigenständigen Arbeiten anderer zu beschränken (Coar

2007). Darüber hinaus ist bei der Weitergabe eines auf dem Programm basierenden

Werkes ein Änderungsvermerk bezüglich der vorgenommen Modifikationen

anzubringen und die Original

-

Lizenzbedingungen sind unverändert zu übernehmen.

Wird das Programm interaktiv ausgeführt, ist zu Beginn der Copyrightvermerk, der

Haftungsausschluss, ein Hinweis auf die Möglichkeit der Weitergabe der Software

und ein Verweis auf den Ort, wo die Lizenz eingesehen werden kann, anzuzeigen.

Ziffer 3 regelt den Fall, dass ein Programm in ausführbarer Form weitergegeben

werden soll, da ein wesentlicher Charakterzug von

Open Source Software

der Zugang

zum Quellcode ist. Hier ist in erster Linie sicherzustellen, dass der

Source Code

zugänglich gemacht wird (Jaeger/Metzger 2006: 25). Dies kann auf unterschiedliche

Art und Weise geschehen. Wichtig ist, dass der Code verfügbar ist. Darüber hinaus

gelten die Bedingungen von Ziffer 1 und 2 bezüglich der Weitergabe und Veränderung

von Programmen.

Paragraph 4 unterstreicht, dass ein Weiterverbreiten, Verändern und Vervielfältigen

nur in der durch die Lizenz ausdrücklich gestatteten Weise erlaubt ist und alle anderen

Handlungen zur Beendigung der Rechte aus der Lizenz führen. Diesbezüglich weist

auch Ziffer 5 darauf hin, dass jeder Nutzer mit dem Akt der Verbreitung, Veränderung

15


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

und Vervielfältigung die GPL in ihrem vollen Umfang akzeptiert. Damit enthält der

Lizenztext eine konkrete Regel, wie im Falle einer Rechtsverletzung zu verfahren ist

und bildet die Grundlage für Angebot und Annahme des Lizenzvertrages. Das

Landgericht München hat diese Regelung auch nach deutschem Recht im Rahmen

eines Rechtsstreites als gültig anerkannt und sieht in ihr eine auflösende Bedingung,

mit deren Eintreten die Rechte in vollem Umfang an den Lizenzgeber zurückfallen.

(Kreutzer 2004: Gründe für GPL-Urteil)

Ziffer 6 erweitert die Ziffer 2b in der Form, dass nicht nur die Bedingungen der GPL

in vollem Umfang zu erfüllen sind, sondern das darüber hinaus keine weiteren

Bedingungen hinzugefügt werden dürfen, die nicht in der GPL aufgeführt sind

(Jaeger/Koglin/Kreutzer 2005: 17).

Die Ziffern 7 und 8 beschreiben die Anwendung der GPL in Rechtsräumen, die

bestimmte Bedingungen, die aus ihr hervorgehen, nicht zulassen. Da an dieser Stelle

aber eine davon unabhängige Betrachtung vorgenommen werden soll, ist dieser Teil

für die Arbeit nicht relevant. Ebenso verhält es sich mit den Ziffern 9 und 10, die sich

mit der Möglichkeit neuer Versionen der GPL beschäftigen und Hinweise für die

Weiterverwendung von GPL

-

Bestandteilen, aber keine konkreten Bedingungen,

enthalten.

Der Haftungsausschluss für GPL

-

Programme findet sich in den Ziffern 11 und 12.

Hier wird darauf hingewiesen, dass keinerlei Gewährleistung für das Programm

besteht, da es ohne Kosten lizensiert wird.

Zusammenfassung:

Lizenzname

· General Public License V2

Welche Rechte ergeben sich aus

· Nutzung des Programms

der Lizenz?

· Verbreiten des Programms (Source, Binary)

Auf welche Formen

· Unveränderte Kopien (Alle Pflichten)

weiterzugebender Programme können

· Abgeleitete Werke (Alle Pflichten)

sich diese Rechte beziehen und

· Voneinander unabhängige Teilwerke (keine Pflichten)

welche Pflichten bezüglich der
Urspungslizenz müssen beachtet
werden?

Welchen Copyleft-Effekt ergibt

· Starker Copyleft

-

Effekt

sich aufgrund der Pflichten bei

· Ziffer 2b (Weitergabe unter den Originalbestimmungen)

Annahme des Lizenzvertrages?

· Ziffer 6 (Verbot zusätzlicher Beschränkungen)

16


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

2.1.3.2 Lesser General Public License V2.1

Die

Lesser General Public License

(LGPL) wurde speziell für die Besonderheiten von

Softwarebibliotheken entworfen, um Anwendungen, die auf wichtige Bibliotheken des

Betriebssystems zugreifen müssen, aber proprietär sind, verbesserte

Einsatzmöglichkeiten einzuräumen (Jaeger/Metzger 2006: 57). Dabei soll einerseits

die Möglichkeit geboten werden, die Bibliothek in Zusammenhang mit unfreier

Software zu verwenden, gleichzeitig aber die Verpflichtung bestehen, dass die

Bibliothek selbst immer frei bleibt und bei unfreien Erweiterungen ein ,,reverse

engineering" zulässt (Grassmuck 2004: 291). Dabei muss sichergestellt werden, dass

ein zugreifendes Programm immer auch mit einer veränderten Version der Bibliothek

nutzbar ist. Dies kann durch die Realisierung geeigneter Schnittstellen oder der

Offenlegung des Sourcecodes geschehen (Jaeger/Koglin/Kreutzer 2005: 4). Die LGPL

ist insgesamt weniger restriktiv als die GPL. Das zeigt sich in mehreren

Ausnahmeregelungen, die z.B. den Wechsel zur einer anderen Lizenz gestatten, die

Nutzung der Bibliothek durch proprietäre Anwendungen erlauben und unter den eben

genannten Bedingungen sogar eine Kombination von Funktionseinheiten mit

Funktionseinheiten der LGPL

-

Bibliothek ermöglichen, ohne dass das Gesamtwerk

unter der LGPL stehen muss (Grassmuck 2004: 290). Diese Ausnahmen finden sich in

Ziffer 3, 6 und 7. Ziffer 6 spricht von Werken, die eine LGPL

-

Bibliothek nutzen,

jedoch kein auf ihr basierendes Werk darstellen. In diesem Fall wird dem Entwickler

eines proprietären Werkes mit einigen Einschränkungen die Möglichkeit der

Weitergabe des Gesamtwerkes unter abweichenden Bedingungen gestattet. Ansonsten

ist die Lizenz sehr stark an die GPL angelegt und enthält weite Teile der

GPL

-

Ziffern. Auch das strenge

Copyleft

gilt im Normalfall für die LGPL, was in Ziffer

2 c) und 10 zum Ausdruck kommt und von von einem abgeleiteten Werk fordert, es als

ganzes unter die Bedingungen der LGPL zu stellen und keine weiteren

Einschränkungen der zugestandenen Rechte vorzunehmen.

Die Rechte, die sich aus der LGPL ergeben, stimmen im Wesentlichen mit denen der

GPL überein. Dem Nutzer ist es gestattet, die Software zu vervielfältigen und zu

verbreiten. Dies gilt auch für veränderte Softwarebestandteile. Zudem kann unter

bestimmten Bedingungen die Verbreitung als Objektcode erfolgen. Es ist dem

Lizenzgeber außerdem erlaubt, eine Gewährleistung gegen Entgelt zu übernehmen

17


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

und eine Erstattung der Kopierkosten zu verlangen. Eine Besonderheit enthält die

Ziffer 3, die es dem Nutz erlaubt ein LGPL

-

Programm unter die GPL zu stellen

(Jaeger/Metzger 2006: 58). Eine weitere Eigenart stellt der eben schon erwähnte

Passus in Ziffer 6 dar, der die Lizenz einerseits zu einer Lizenz mit schwachem

Copyleft

macht, da er eine Kombination der Bibliothek mit proprietärerer Software erlaubt und

in diesem Zuge eine Ausnahme definiert, die die in Ziffer 1-5 definierten Pflichten

unter bestimmten Bedingungen außer Kraft setzt (Jaeger/Metzger 2006: 59f). Dazu

soll bei der Beschreibung der Pflichten noch näher eingegangen werden.

Die LGPL definiert in Ziffer 0 zunächst einige grundlegende Begriffe, die für die

Anwendung relevant sind - beispielsweise was unter einer Softwarebibliothek und

einem angeleiteten Werk zu verstehen ist. Zudem wird hier bereits festgestellt, dass

ein einfaches Ausführen des LGPL

-

Programms sowie das Ausführen eines anderen

Programms unter Verwendung der LGPL

-

Bibliothek nicht in den

Anwendungsbereich der Lizenz fällt.

Ziffer 1 weist darauf hin, dass bei der Verbreitung unveränderter Kopien

Copyrightvermerk und Haftungsausschluss anzuzeigen sind, die

Orginal

-

Lizenzbedingung und Haftungsausschluss unverändert gelassen werden

müssen und eine Kopie des Lizenztextes mitgegeben werden muss.

Ziffer 2 definiert bei veränderten und von der Form her abgeleiteten Werken strenge

Regeln für die Weitergabe. So muss das Gesamtwerk wieder unter die originalen und

unveränderten Lizenzbestimmungen fallen und zudem eine Softwarebibliothek sein,

Änderungsvermerke sind an der modifizierten Kopie anzubringen und

anwendungsbezogene Funktionen in einer Art und Weise einzubauen, die ein

Funktionieren der Bibliothek auch dann noch ermöglichen, wenn das zugreifende

Programm bestimmte Funktionen der Bibliothek nicht unterstützt. Auch diese Ziffer

enthält einen Hinweis darauf, dass eigenständige, von der Bibliothek unabhängige,

Werke nicht den Bestimmungen der LGPL unterworfen sind. Die Bestimmungen von

Ziffer 1 gelten ebenfalls.

Ziffer 3 eröffnet dem Nutzer die Möglichkeit, jedes LGPL

-

Programm unter die

Bedingungen der GPL zu stellen, sofern die Lizenzbedingungen entsprechend

geändert wurden und stellt fest, dass diese Änderungen nicht mehr rücknehmbar sind.

18


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

Ziffer 4 beschäftigt sich mit der Weitergabe von Bibliotheken im Objektcode. Zunächst

gelten die Bestimmungen der Ziffern 1 und 2. Da der Quellcode bei dieser Form der

Weitergabe nicht eingesehen werden kann, muss er in diesem Fall gesondert

mitgeliefert oder anderweitig zur Verfügung gestellt werden. Ziffer 5 führt eine

Definition für besondere kombinierte Werke ein. So sind Programme, die eine

LGPL

-

Bibliothek nutzen, als eigenständige Werke anzusehen, während Programme,

die eine Bibliothek nutzen und mit ihr gelinkt werden, als abgeleitete Werke definiert

und damit strengen

Copyleft-

Bestimmungen unterworfen sind.

Die Bestimmungen der Ziffer 6 sind die eigentliche Besonderheit der LGPL. Nicht nur

das sie eine Verbindung von proprietärerer Software mit der Bibliothek erlauben, sie

weisen außerdem darauf hin, dass die zuvor definierten Pflichten nicht

wahrgenommen werden müssen, sofern die Pflichten dieser speziellen Ziffer erfüllt

werden. Hier wird erlaubt, abgeleitete Werke unter von der LGPL abweichenden

Bedingungen zu verbreiten, wenn erkennbar darauf hingewiesen wird, dass eine

LGPL

-

Bibliothek genutzt, die Orginal

-

Lizenz mitgegeben und auf sie verwiesen

wird. Zudem ist ein Copyrightvermerk für die LGPL

-

Bibliothek anzugeben, wenn das

Programm interaktiv ausgeführt wird. Die Bibliothek selbst muss im Quellcode

mitgeliefert und alle Änderungen an ihr müssen gemäß den Ziffern 1 und 2 vermerkt

werden. Für das zugreifende Programm ist die eigentliche Ausnahme vorgesehen.

Hier reicht es, den Objectcode auszuliefern. Die Art des Zugriffs auf die Bibliothek ist

ebenfalls geregelt. So soll einen

shared library-

Mechanismus genutzt werden. Das

bedeutet, dass die Bibliothek erst zur Laufzeit in das Programm einzubinden ist.

Sofern andere proprietäre Bibliotheken eingebunden werden sollen, die im

Widerspruch zu den genannten Bestimmungen stehen, dürfen diese nicht verwendet

werden. All diese Bestimmungen sollen einem proprietären Programm den Zugriff

auf eine LGPL

-

Bibliothek ermöglichen, gleichzeitig aber dafür sorgen, dass die

Original

-

Bibliothek frei bleibt und nicht in Abhängigkeit mit dem zugreifenden

Programm gebracht wird (Jaeger/Metzger 2006: 61).

Ähnlich gestaltet sich Ziffer 7. Hier wird die Kombination der Bibliothek mit

proprietären Software

-

Bestandteilen erlaubt, sofern die beiden Bestandteile außerdem

getrennt und unter ihren jeweiligen Bestimmungen verbreitet werden. Im Gegensatz

zu Ziffer 6 ist es aber nicht möglich, dass Gesamtwerk unter abweichende

19


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

Bedingungen zu stellen. Weiter muss ein Hinweis erfolgen, dass eine GPL

-

Bibliothek

verwendet wurde und wo diese in eigenständiger Form gefunden werden kann.

Ziffer 8 besagt, dass ein Weiterverbreiten, Verändern und Vervielfältigen nur in der

durch die Lizenz ausdrücklich gestatteten Weise erlaubt ist und alle anderen

Handlungen zur Beendigung der Rechte aus der Lizenz führen. Die folgende Ziffer

legt fest, dass jeder Nutzer mit dem Akt der Verbreitung, Veränderung und

Vervielfältigung die LGPL in ihrem vollen Umfang akzeptiert.

Das starke

Copyleft

, dass bis auf Ausnahmen auch für die LGPL gilt, wird noch einmal

in Ziffer 10 deutlich. Hier wird festgelegt, dass bei einer Weitergabe keine weiteren

Einschränkungen an den Rechten des Empfängers vorgenommen werden dürfen.

Die folgenden Ziffern beschäftigen sich, wie schon in der GPL, mit der Durchsetzung

der Rechte in unterschiedlichen Rechtsräumen sowie den Versionsnummern der

Lizenz. Die Ziffern 15 und 16 bilden den Haftungsausschluss.

Zusammenfassung:

Lizenzname

· Lesser General Public License 2.1

Welche Rechte ergeben sich aus

· Nutzung des Programms

der Lizenz?

· Verbreiten des Programms (Source, Binary)

Auf welche Formen

· Unveränderte Kopien (Alle Pflichten)

weiterzugebender Programme können

· Abgeleitete Werke (Alle Pflichten)

sich diese Rechte beziehen und

· Voneinander unabhängige Teilwerke (keine Pflichten)

welche Pflichten bezüglich der

· Werke, die das LGPL-Programm nutzen, aber von ihm isoliert

Urspungslizenz müssen beachtet

sind (keine Pflichten)

werden?

· Werke, die das LGPL-Programm nutzen und mit ihm kombiniert

wurden (besondere Pflichten)

· Werke, die das LGPL-Programm nutzen und mit ihm gelinkt

wurden (besondere Pflichten)

Welchen Copyleft-Effect ergibt

· Starker Copyleft-Effekt

sich aufgrund der Pflichten bei

- Ziffer 2c (Weitergabe unter den Original-Bestimmungen)

Annahme des Lizenzvertrages?

- Ziffer 10 (Verbot zusätzlicher Beschränkungen)

· Schwacher Copyleft-Effekt

- Ziffer 5 (Möglichkeit zur Verbreitung von Werken, die das

LGPL-Programm nutzen, aber von ihm isoliert vorliegen)

- Ziffer 6 (Möglichkeit zur Verbreitung kombinierter

Software unter beliebigen Bedingungen bei Beachtung einer

Reihe besonderer Pflichten)

20


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

2.1.3.3 Berkeley Software Distribution License

Vom Grad der gewährten Freiheit her betrachtet, kommt die BSD

-

Lizenz

Entwicklern sehr entgegen, die für Erweiterungen eines BSD

-

Programms Lizenzen

mit von ihr abweichenden Bedingungen verwenden möchten. Dies bringt aber auch

Probleme mit sich und hatte z.B. zur Folge, ,,dass Microsoft so frei war, große Mengen

FreeBSD

-

Code in Windows zu verwenden" (Grassmuck 2004: 299), natürlich ohne

das Windows dadurch freier geworden wäre. Die BSD

-

Lizenz ist eine typische Lizenz

ohne

Copyleft

. Sie besitzt keinen Mechanismus, der eine freie Weiterentwicklung der

unter ihr stehenden Software auch für veränderte Bestandteile vorschreibt. Lediglich

für bereits vorhandene Bestandteile müssen Pflichten beachtet werden, für geänderten

und hinzugefügten Code gibt es keine lizenzrechtlichen Vorgaben. (Jaeger/Metzger

2006: 62f) Veränderungen an der Software können also in proprietäre Entwicklungen

überführt werden. Die Bestimmungen der BSD

-

Lizenz gelten für sie nicht mehr. In

ihrer Ursprungsversion enthält die Lizenz eine Werbeklausel, die in allen

Werbematerialien den Satz ,,This product includes software developed by the

University of California, Berkeley and its contributors" vorsieht. Die Neufassung der

BSD

-

Lizenz von 1999, die auch hier betrachtet werden soll, enthält keine solche

Klausel mehr (Jaeger/Metzger 2006 :62).

Die Lizenz selbst gewährt dem Nutzer das Recht, die unter ihr stehenden Programme

weiterzuverbreiten, zu verwenden und zu verändern. Die Weiterverbreitung kann in

binärer Form oder als Sourcecode erfolgen. Neu gegenüber GPL und LGPL ist, dass

bereits das Ausführen eines Programms von der Lizenz betroffen ist.

Bei der Verbreitung unveränderter Kopien sind der Copyrightvermerk, eine Liste der

Lizenzbedingungen, und der Haftungsausschluss im Quelltext oder als beiliegende

Materialien bereitzustellen. Für veränderte Exemplare gilt, dass kein Bezug zur

Universität Berkeley und der ursprünglich Beitragleistenden zur Kennzeichnung von

daraus hervorgehenden Produkten oder zur Werbung hergestellt werden darf. Für

veränderten und hinzugefügten Code existieren darüber hinaus keinerlei Pflichten,

außerdem enthält die Lizenz keine Regelung für den Fall, dass der Lizenznehmer

gegen die Bedingungen verstößt.

21


Grundlagen

2.1 Lizenzen im Bereich der Open Source Software

Zusammenfassung:

Lizenzname

· Berkeley Software Distribution License (New Version)

Welche Rechte ergeben sich aus

· Nutzung des Programms

der Lizenz?

· Verbreiten des Programms (Source, Binary)

Auf welche Formen

· Unveränderte Kopien (Alle Pflichten)

weiterzugebender Programme können

· Abgeleitete Werke (keine Pflichten)

sich diese Rechte beziehen und
welche Pflichten bezüglich der
Urspungslizenz müssen beachtet
werden?

Welchen Copyleft-Effect ergibt

· Kein Copyleft-Effekt

sich aufgrund der Pflichten bei

· Für alle bearbeiteten Programmversionen werden keine

Annahme des Lizenzvertrages?

relevanten Pflichten definiert

2.2 Expertensysteme

Ein Expertensystem stellt eine Softwarelösung dar, deren Zweck es ist, seinem

Anwender das darin enthaltene Wissen mithilfe einer Wissensbasis zur Verfügung zu

stellen. Das Wissen wird auf Basis einer Logik aufbereitet und situationsabhängig

ausgewertet bzw. aktualisiert. Dabei kommen Regeln zum Einsatz, weshalb ein solches

System auch regelbasiertes System genannt wird. Von außen betrachtet, erfüllt es

lediglich den Zweck, auf Anfragen zu antworten, intern präsentiert es sich jedoch als

hochkomplexes Gebilde.

Um zu klären, wie ein solches System funktioniert, werden zunächst einige Prinzipien

der formalen Logik als elementare Grundlage von Expertensystemen betrachtet, im

folgenden Teil geklärt, wie sich Wissen formal repräsentieren lässt und zuletzt

Möglichkeiten vorgestellt, Wissensbasen zu erstellen, abzufragen und zu

manipulieren.

2.2.1 Logik

Logik, ursprünglich eine Disziplin der Philosophie, beschäftigt sich mit dem Problem,

Gesetzmäßigkeiten des Denkens zu beschreiben (Zeitz/Mahr 2001: 223). Den

Mittelpunkt der Untersuchung bilden Aussage und Wahrheit. Dabei geht es um die

Verbindung von Aussagen und deren Prüfung auf Wahrheit, und zwar um

allgemeingültige Wahrheiten, die unabhängig jeder Interpretation gelten. ,,In der

formalen Logik wird untersucht, wie man Aussagen miteinander verknüpfen kann und

auf welche Weise man formal Schlüsse zieht und Beweise durchführt" (Schöning 1995:

22


Grundlagen

2.2 Expertensysteme

11). In der Informatik wird auf diese Weise versucht, logische Schlüsse in eine

Sprache zu übertragen, die sich im semantischen Sinn durch Wohlgeformtheit und

syntaxseitig durch den Ausdruck von Bedeutung bzw. des Wahrheitsgehalts

auszeichnet. Syntax und Semantik sind innerhalb der Logik streng getrennte Bereiche,

wobei die Syntax festlegt, was als Aussage betrachtet wird, während die Semantik als

Bedeutungslehre erklärt, wie Interpretationen fixiert werden und einer Aussage ein

Wahrheitswert zugeordnet wird (Zeitz/Mahr 2001: 225). Auf diese Weise wird eine

automatische Beweisführung und Logikprogrammierung möglich, die für regelbasierte

Systeme elementar ist. Der folgende Abschnitt wird daher auf die Bereiche der

formalen Logik eingehen, die für den Entwurf eines Expertensystems relevant sind.

2.2.1.1 Aussagenlogik

Die Aussagenlogik behandelt die elementaren Grundlagen der formalen Logik. Ihre

Aussagen handeln von Sachverhalten, die in sich eine Menge atomarer, nicht mehr

zerlegbarer, Sachverhalte beherbergen, welche durch Aussagensymbole dargestellt

werden können. Mithilfe von Aussageverknüpfungen ergibt sich dabei eine

Gesamtaussage. Die Aussagenlogik bedient sich der Syntax und Semantik. Betrachtet

man die Aussagenlogik als Sprache, gilt: ,,Die Sätze dieser Sprache sind

aussagenlogische Formeln. Ihre Bedeutung ist ein Wahrheitswert, der sich aus einer

festgelegten Interpretationsvorschrift ergibt." (Zeitz/Mahr 2001: 225)

Dabei werden syntaxseitig Junktorensymbole, P als eine nichtleere Menge von

Aussagesymbolen sowie runde Klammern verwendet, um komplexe Aussagen

auszudrücken. Junktoren dienen der Verknüpfung von Aussagen. Aussagenlogische

Formeln sind die Negation ,,nicht" ( ¬

), die Konjunktion ,,und" (

), die

Adjunktion ,,oder" (

), die Subjunktion ,,wenn ... dann ..." (

), die

Äquivalenz ,,genau dann ... wenn ..." als notwendige und hinreichende Bedingung

(

), Verum als ,,wahr" () und Falsum als ,,falsch" (). Zur Verbesserung der

Lesbarkeit, aber auch zugunsten der Klarheit in den Ausdrücken, werden die Formeln

in Klammern gesetzt, so das Konstrukte in der Art

x

bzw.

x

entstehen. Die Semantikseite beschäftigt sich mit der Bedeutung formaler Ausdrücke

und dort insbesondere damit, wie einer aussagenlogischen Formel ein Wahrheitswert

zugeordnet werden kann. Dazu benötigt man P als eine Menge von Aussagesymbolen,

23


Grundlagen

2.2 Expertensysteme

sowie T und F als Wahrheitswerte. Eine Wahrheitsbelegung ist diesbezüglich eine

Abbildung in der Form

B: P

{

T ,F

} , deren indizierte Abbildung eine Auswertung

der aussagenlogischen Formel darstellt.

2.2.1.2 Prädikatenlogik

Die Prädikatenlogik ist eine Erweiterung eines Teils der Aussagenlogik, mit der sich

Sachverhalte formal beschreiben und auf ihre Gültigkeit prüfen lassen.

Ausdruckskraft, sowie Komplexität und Anwendungsmöglichkeiten nehmen durch die

Verwendung von Prädikationen, Gleichheiten und Quantifikationen in Bezug auf

Individuen zu. Es handelt sich dabei um Ausdrucksmittel, die es dem Anwender

erlauben, über Individuen bzw. Gegenstände zu sprechen, sie zu identifizieren, aber

auch funktionale und relationale Beziehungen zwischen ihnen darzustellen ­ kurz,

Objekte zu beschreiben, die bestimmte Eigenschaften besitzen. Sachverhalte, die sich

auf diese Weise als Eigenschaften der Gegenstände ergeben, können deutlich

differenzierter als in der Aussagenlogik dargestellt werden. Als atomare Formeln

kommen die schon aus der Aussagenlogik bekannten Aussagesymbole Verum und

Falsum, sowie als neue Elemente Variablen, Konstantensymbole, die ihrerseits die

Individuen bezeichnen, sowie Relationssymbole, Funktionssymbole und das

Gleichheitszeichen zum Einsatz. In zusammengesetzten Formeln stehen zudem

Junktoren zur Verfügung. Variablen lassen sich anstelle von Individuen setzten, die aus

einer bestimmten Menge kommen und auf die eine spezielle Aussage zutrifft oder als

Platzhalter für Individuen, die während der Interpretation einer Formel noch nicht

festgelegt sind. (Zeitz/Mahr/Robering 2001: 328 ff)

Bezüglich einer Lizenz könnte die Aussage getroffen werden _

hat-einen-Lizenznamen

.

Innerhalb der Prädikatenlogik ergäbe sich für die GPL das Konstrukt

hat_Lizenznamen(GPL)

, wobei die GPL das Konstantensymbol darstellt und

hat_Lizenznamen

das Relationssymbol, also die Eigenschaft einen Lizenznamen zu

haben. Aussagen könnten auch in der Form

ist_stark(Copyleft(GPL))

getroffen werden.

Gleichheit

wird

mit

den

Gleichheitszeichen

ausgedrückt:

(CopyleftEffekt(GPL)=CopyleftEffekt(OSL))

. Konkret wird die innere Struktur solcher

Aussagen, die Aussageverknüpfung, betrachtet. Im ersten Beispiel ist das Prädikat

durch _

hat-einen-Lizenznamen

festgelegt. Am Anfang der Wortgruppe existiert eine

24


Grundlagen

2.2 Expertensysteme

Leerstelle, die mit ′_′ gekennzeichnet wurde. Je nachdem, mit welchem Individuum

diese Leerstelle gefüllt wird, ergibt sich eine wahre oder falsche Aussage. Da es sehr

aufwändig wäre, für jedes einzelne Individuum eine Aussage zu treffen, existiert das

Sprachmittel Quantor. Damit lässt sich festlegen, für wie viele Individuen eine

Aussage zutrifft. Man unterscheidet den Existenzquantor ( ), welcher aussagt, dass

ein Prädikat auf wenigstens ein Individuum zutrifft und den Allquantor ( ), der

Verwendung findet, wenn ein Prädikat auf alle Individuen zutrifft. Somit ließe sich

z.B. sagen: Es gibt mindestens ein Ding, für das gilt: Es hat einen Lizenznamen

(

xL x

). Diese Form der Logik wird auch Quantorenlogik genannt. Beziehen sich

Quantoren nur auf Variablen, handelt es sich um Prädikatenlogik erster Ordnung oder

First Order Logic

(FOL). FOL hat den großen Vorteil, dass für sie vollständige

Inferenzmechanismen existieren. Mit Resolutionsverfahren können Folgerungen

maschinell bewiesen werden (Zeitz/Mahr/Robering 2001: 311 ff). Genauer gesagt,

kann geprüft werden, ob eine Formel aus einer Wissensbasis ableitbar ist.

Prädikatenlogik zweiter Ordnung, die

Higher Order Logic

(HOL) erweitert diese

Variante. Quantoren können nun auch über Prädikate gelegt werden und Prädikate

andere Prädikate als Argumente enthalten. Damit steigt die Ausdrucksstärke, aber

auch die Komplexität.

Prädikatenlogik ist nicht zwangsläufig entscheidbar. Für einen gegebenen Sachverhalt

kann nicht geprüft werden, ob ein gegebenes Faktum darin gilt, nicht gilt, oder gelten

kann, es sei denn, es handelt sich um Prädikatenlogik, die mit maximal zwei Variablen

arbeitet. (Pellegrini/Blumauer 2006: 489)

2.2.1.3 Beschreibungslogik

Die Beschreibungslogik oder

Description Logic

basiert in den meisten Fällen auf

Prädikatenlogik erster Ordnung. Sie kennt jedoch keine Variablen. Im Mittelpunkt

dieser Familie logikbasierter Formalismen stehen Konzepte und individuelle Objekte,

die zur Erstellung einer Wissensbasis geeignet sind. Das Konzept stellt dabei einen

Begriff dar, der für sich selbst steht, sich also nicht mehr weiter zerlegen lässt (z.B.

Lizenz oder Lizenzname). Unter den Eigenschaften werden binäre Relationen

verstanden, die zwei Begriffe miteinander verbinden (z.B.

_hat-Lizenzname

, bezogen

auf die Lizenz). Durch solche Eigenschaften lassen sich Konzepte beschreiben,

25


Grundlagen

2.2 Expertensysteme

außerdem ergeben sich Rollen für diese Konzepte. Bei individuellen Objekten handelt

es sich um Instanzen, auf die sich Begriffe und Eigenschaften beziehen, also z.B. die

GPL.

Man unterteilt die so zusammengesetzte Wissensbasis in Terminologie (TBox), die

eine Anwendungsdomäne beschreibt, das sogenannte intensionale Wissen über

Konzepte, und

Assertions

(ABox), wobei es sich um eine Beschreibung der einzelnen

Instanzen oder individuellen Objekte handelt (Pellegrini/Blumauer 2006: 493f). Die

Besonderheit dieses Ansatzes, der vom Prinzip her dem einer relationalen Datenbank

ähnelt, liegt darin, dass die in der TBox enthaltenen Informationen über Konzepte

direkt für Schlussfolgerungen bezüglich der in der Abox vorhandenen Instanzen oder

Entitäten genutzt werden können. Wäre in der TBox das Konzept Lizenz mit der

notwendigen und hinreichenden Bedingung, mindestens einen Lizenznamen zu haben (

Lizenz

hatLizenzname

) vorhanden, würde das Ergebnis einer Anfrage zu

Instanzen, die Lizenznamen haben u.a. GPL ergeben - sofern in der ABox bekannt ist,

dass die GPL eine Lizenz ist. Dabei muss kein explizites Wissen innerhalb der ABox

existieren, dass die GPL einen Lizenznamen hat. Das spezielle Wissen wird aus dem

allgemeinen Wissen in der TBox, Lizenzen haben mindestens einen Lizenznamen und

etwas, was einen Lizenznamen hat, ist zwangsläufig eine Lizenz, abgeleitet.

Die Beschreibungslogik besitzt eine wohldefinierte, logikbasierte Semantik. Alles was

in

Description Logic

beschrieben wurde, kann auch in Prädikatenlogik ausdrückt

werden, alles ist mithilfe von ein- oder zweistelligen Prädikaten und maximal zwei

Variablen erfassbar und damit entscheidbar. Aus diesem Grund eignet sich diese Form

der Logik für automatische Schlussfolgerungen und zur Wissensrepräsentation.

2.2.2 Wissensrepräsentation

Wissen meint die ,,begründbare und begründete Erkenntnis." (Brockhaus 1986:

Wissen) Die Erkenntnis soll dabei im wissenschaftlichen Sinne bestimmten

Überprüfungspostulaten unterliegen und grenzt sich daher von der Meinung, der

Annahme und dem Glauben ab. ,,Sprachlich verfügbares Wissen wird heute in

zunehmendem Maße in Form von Daten und Programmen repräsentiert, maschinell

gespeichert und zum maschinengestützten Problemlösen und Informieren sowie zur

Rationalisierung und Automation von Arbeit genutzt." (Schneider 1991: 896)

26


Grundlagen

2.2 Expertensysteme

Repräsentation bedeutet in diesem Zusammenhang die Darstellung des Wissens. Dies

kann beispielsweise in einer Wissensrepräsentationssprache erfolgen und führt zu der

wichtigsten Voraussetzung für ein Wissensrepräsentationssystem, der Wissensbasis

oder

Knowledge Base

. Diese enthält das in der Wissensrepräsentationssprache

formulierte Wissen über ein Anwendungsgebiet, welches in jedem

Wissensrepräsentationssystem vorhanden sein muss (Schneider 1991: 899). Das

Wissensrepräsentationssystem selbst vereint dann Wissensbasis und eine auf die

Wissensrepräsentationssprache ausgelegte

Inference Engine

, die aus explizit

gegebenem Wissen weiteres Wissen erschließen kann.

Für ein System, welches Begriffe und ihre Beziehungen zueinander in einer

Wissensrepräsentationssprache als Wissensbasis repräsentiert, hat sich in der

Informatik der Begriff Ontologie durchgesetzt. Die Philosophie versteht darunter die

,,Lehre von dem Wesen und den Eigenschaften des Seinenden, die zu zeigen hat, was

allen Seienden als solchen gemeinsam ist." (Digel/Kwiatkowski 1980: Ontologie) Sie

beschäftigt sich mit der Klassifikation der Dinge, die sie in Modellen abzubilden

versucht. In der Informatik bezeichnet Ontologie ,,an explicit specification of a

conceptualization." (Gruber 1993: Introduction) Im Wesentlichen geht es dabei um

eine Beschreibung von Wissen über Konzepte und Zusammenhänge, was eine

Klassifizierung von Objekten anhand von Eigenschaften ermöglicht. Das Wissen über

die Konzeptzugehörigkeit eines Objektes lässt dann weitere Schlüsse über das Objekt

und die Beziehung zu seiner Umwelt zu (Pellegrini/Blumauer 2006: 488). Wissen,

dass sich nicht durch bestimmte Begriffe ableiten lässt, wird bei Ontologien mithilfe

von Axiomen ausgedrückt. Es handelt sich dabei um Aussagen, die innerhalb einer

Ontologie stets wahr sind. Im engen Zusammenhang mit dem Ansatz der Ontologie

steht das sogenannte

Reasoning

. Der Begriff ,,bedeutet insbesondere, die Semantik, d.h.

Bedeutung bezüglich einer Anwendung von Dingen zu nutzen, und sich dabei auf

einer festen Basis, einer Logik zu bewegen." (Pellegrini/Blumauer 2006: 485).

Praktische Anwendung finden die Konzepte der formalen Wissensrepräsentation im

Semantic Web

. Darunter versteht man eine Zukunftsvision für das Web, bei der Daten

nicht mehr nur von einzelnen Anwendungen interpretiert und dadurch kontrolliert

werden können, sondern durch die Verknüpfung mit einer allgemein verständlichen

Bedeutung gewissermaßen dem Web an sich zur Verfügung stehen. Was dies im

27


Grundlagen

2.2 Expertensysteme

Einzelnen bedeutet und welche Bereiche des

Semantic Web

für diese Arbeit relevant

sind, soll in den nächsten Abschnitten geklärt werden.

2.2.2.1 Anspruch und Technologie des Semantic Web

Das Internet enthält eine Fülle von Informationen, die als elektronische Dokumente in

Form von Dateien vorliegen. Diese werden in verschiedenen Designs, Sprachen und

Formaten präsentiert und sind über Suchmaschinen auffindbar. Der Mensch macht

sich diese Informationen zunutze, indem er sie auswertet und in einen logischen

Zusammenhang bringt. Bei der Suche nach Informationen mit Suchmaschinen entsteht

jedoch ein praktisches Problem, was Tim Berners

-

Lee wie folgt formuliert: ,,While

search engines which index HTML pages find many answers to searches and cover a

huge part of the Web, then return many inappropriate answers. There is no notion of

′correctness′ to such searches." (Berners-Lee 1998: Engines of the Future) Die

Ergebnisse ergeben oft keinen Sinn, da sie mit keiner für die Suchmaschine

verständlichen Bedeutung verknüpft sind. Sinnvoll wäre es dagegen, Daten mit einer

allgemein verständlichen, vertrauenswürdigen und maschinenlesbaren Semantik zu

verknüpfen, um diese für automatische Prozesse verfügbar zu machen. Das Ziel des

Semantic Web

ist es dann, eine Struktur in diese aussagekräftigen Inhalte von

Webseiten zu bringen und damit eine Umgebung zu schaffen, in der

Software

-

Agenten selbstständig komplexe Aufträge für ihre Benutzer ausführen

können (Berners-Lee/Hendler/Lassila 2001: Expressing Meaning) oder abstrakter

ausgedrückt, ein Umfeld zu bieten, dass es Maschinen ermöglicht, automatisch

Informationen mit ausdrücklich zugewiesener Bedeutung zu verarbeiten und

zusammenzuführen.

Um eine Vorstellung des

Semantic Web

zu erhalten, wurden und werden immer wieder

neue Versionen eines Schichtenmodells, dem sogenannten

Layer Cake Diagram

10

entworfen, welches eine abstrakte Vorstellung von den dahinter liegenden

Technologien vermitteln soll. Jede Schicht baut auf den Funktionalitäten der darunter

liegenden Schicht auf und bietet Stück für Stück erweiterte Möglichkeiten im Rahmen

des Gesamtsystems. Abbildung 1 ist an das derzeit aktuelle

Layer Cake Diagram

angelehnt und soll im Folgenden kurz beschrieben werden. Die farbliche Codierung

10 Die aktuelle Version des

Layer Cake Diagram

s findet sich im

Semantic Web

-Bereich des W3C

<http://www.w3.org/2001/sw/> unter ,,Links".

28


Grundlagen

2.2 Expertensysteme

trifft keine Aussagen über das Systemmodell, vielmehr soll die Relevanz der einzelnen

Systemelemente für die in der Arbeit dargestellte Entwicklung verdeutlicht werden.

Die grünen Bereiche sind Elementar. Ihr Verständnis ist für die folgende Betrachtung

von entscheidender Bedeutung. Dunkelgraun steht für Standards und Formate, die

zwar für die Realisierung des Systems eine wichtige Voraussetzung darstellen, jedoch

eher Mittel zum Zweck sind und kein tiefer gehendes Verständnis erfordern. Sie

werden nur kurz beschrieben. Die grauen Bereiche sind Teile der

Semantic Web Vision

,

finden aber innerhalb dieser Arbeit keine Anwendung und werden daher auch nicht

betrachtet, sondern lediglich erwähnt.

Trust

Proof

Unifying Logic

C

Ontology

r

Query

Rule

y

RDFS

p

t

o

Data interchange

XML

URI / IRI

Abbildung 1: Modifiziertes

Layer Cake Diagram

Die untere Schicht, die als URI/IRI bezeichnet wird, dient der Adressierung. URI und

IRI sind

Resource Identifiers

, wobei der

Internationalized Resource Identifier

eine

Erweiterung des URI

-

Standards darstellt. Beide bestehen aus einer eindeutigen

Zeichenfolge, die sich aus einem Präfix, dem Schemateil und einem Suffix, dem

schemaspezifischen Teil, zusammensetzt und so eine abstrakte Ressource, wie

beispielsweise ein Dokument, identifiziert. Der IRI ermöglicht dabei eine Codierung

nach dem

Universal Character Set

(Duerst/Suignard 2005: Summary of IRI Syntax),

29


Grundlagen

2.2 Expertensysteme

während sich der URI auf den US

-

ASCII

-

Standard beschränkt. (Berners-Lee 2005:

Characters) Darauf baut die

eXtensible Markup Language

(XML), eine erweiterbare

Auszeichnungssprache, die das Verarbeiten, Senden und Empfangen von generischem

SGML über das

World Wide Web

ermöglicht, auf. Innerhalb des

Semantic Web

kommt

ihr die Funktion des Syntax Layers zu, da sie lediglich Namen von Elementen

definiert, ihnen jedoch keine Bedeutung zuordnet. Das Thema

Data interchange

wird

durch das

Resource Description Framework

(RDF) realisiert. Dieses wurde zu den Zweck

geschaffen, Informationen im Web in einer einheitlichen Syntax auf Basis eines

grundlegenden Datenmodells darzustellen (Klyne/Carroll/McBride 2004:

Motivations and Goals). Dieser Teil wird auch

Data Layer

genannt. Die darüber

liegende Schicht setzt sich aus

Query

,

Ontology

/RDFS und

Rule

zusammen. Mit

Query

ist eine Abfragesprache für Wissensbasen gemeint, wie z.B. SPARQL oder modifizierte

SWRL

-

Varianten. Die Ontologie definiert Relationen zwischen Klassen und Instanzen

auf Basis einer Taxonomie. Dabei werden Begriffe in hierarchischen Strukturen

angeordnet und über definierte Assoziationen auf Basis einer Ontologie-Sprache, wie

OWL, dargestellt und mit einer XML

-

Syntax kodiert.

Rule

bezieht sich auf das

Rule

Interchange Format

RIF, dass den Transfer von Regeln zwischen verschiedenen

Regelsystemen und Regelsprachen ermöglichen soll (Boley/Kifer 2007: Abstract). RIF

befindet sich derzeit noch in der Entwicklung. Als eine aktuelle Implementierung kann

SWRL angesehen werden. Dabei handelt es sich um eine Regelsprache, die eine

abstrakte Horn

-

artige Syntax nutzt, mit der sie auf Ausdrücken diverser

OWL

-

DL

-

Konzepte, wie Klassen, Eigenschaften und Instanzen, aufsetzt (O′Connor

2007: What is SWRL). Hier soll auf XML-Basis die beschreibende Logik von OWL,

die vornehmlich der Darstellung von Zusammenhängen zwischen Konzepten dient

(Pellegrini/Blumauer 2006: 492f), um logische Regeln ergänzt werden. Die

Unifying Logic

umfasst das gesamte Gebiet der bis hierher vorgestellten Bereiche, mit

dem

Resource Description Framework

, sowie den Abfrage-, Ontologie- und

Regelsprachen. Alle weiteren Elemente dienen der Sicherheit und Nachweisbarkeit

von Informationen.

Für eine tiefer gehende Analyse werden nun die im

Layer Cake Diagram

grün

gekennzeichneten Bereichen und die damit in Zusammenhang stehenden Technologien

vorgestellt.

30


Grundlagen

2.2 Expertensysteme

2.2.2.2 Das Resource Description Framework RDF

Das

Resource Description Framework

besitzt seit 2004 den Status einer

World Wide Web

consortiom

(W3C)

Recommendation

. Eine

Recommendation

ist vergleichbar mit einem

Standard und stellt eine Spezifikation dar, die nach einem intensiven

Entwicklungsprozess verschiedene Status durchlaufen und die Zustimmung der

W3C

-

Mitglieder sowie ihrem Direktor erhalten hat (Jacobs 2003: Kap. 7.1.1). RDF ist

eine formale Sprache und dient dazu, Informationen in einer einheitlichen Syntax auf

Basis eines einfachen Datenmodells darzustellen. Diese Informationen sind simple

Fakten, die aus sogenannten

Triples

bestehen (McBride 2004: Graph Data Model).

License

has LicenseParagraph

License

Paragraph

Abbildung 2: Beispiel für ein Triple

Jedes

Triple

setzt sich aus Subjekt, Prädikat, auch

Property

genannt, und Objekt

zusammen. Eine Menge von

Triples

ergibt einen RDF

-

Graphen, der vorerst

unabhängig von einer konkreten Syntax existiert. In der Praxis kann er in XML als

RDF/XML kodiert werden. Die Graphen drücken eine Anzahl von Fakten aus.

Beziehungen zwischen den Subjekten und dem Objekten werden durch eine

Property

angezeigt, die eine binäre Relation darstellt (McBride 2004: RDF Expression of

Simple Facts).

Das genutzte Vokabular basiert auf URIs. Die Teile des Graphen bestehen aus URI

und optional aus einer URI

-

Referenz, einem Literal oder

Blank nodes

. Das Prädikat

kann nur aus URI und URI

-

Referenz bestehen. Eine URI

-

Referenz ist ein

Unicode string

, ähnlich einem Verweisziel innerhalb eines HTML

-

Dokumentes. Unter

Literalen versteht man Zeichenfolgen, die zur Darstellung der Werte von Basistypen,

wie Strings oder Ganzzahlen genutzt werden.

Blank nodes

können n

-

stufige Relationen

beschreiben, auf die RDF intern jedoch nicht referenzieren kann, das sie keinen Teil

des abstrakten RDF

-

Syntax darstellen (McBride 2004: Blank Nodes).

31


Grundlagen

2.2 Expertensysteme

2.2.2.3 Die Web Ontology Language OWL

Die

Web Ontology Language

ist seit 2003 eine W3C

-Recommendation

. Ziel dieser

′Spezifikation′ ist es, einen einheitlichen Standard für Ontologien im

World Wide Web

zu

schaffen, um damit den Inhalt von Informationen zu verarbeiten, anstatt sie nur zu

präsentieren (McGuinness/Van Harmelen 2004: Introduction). Zu diesem Zweck

werden in OWL die Bedeutung von Termen und ihre Verknüpfungen in Vokabularien

repräsentiert.

Die wesentlichen Elemente, mit den OWL arbeitet, sind Klassen, Eigenschaften,

Instanzen von Klassen und Beziehungen zwischen Instanzen. Der Begriff Klasse

kommt aus der Mengenlehre und bezeichnet eine Zusammenfassung von Mengen, in

OWL eine Gruppe von Instanzen, die zusammengehören, weil sie bestimmte

Eigenschaften gemeinsam besitzen. Da es in OWL möglich ist, Klassenhierarchien zu

erzeugen, lassen sich Klassen auch als Unterklassen definieren. Instanzen sind die

Mitglieder von Klassen, die durch ihre Mitgliedschaft auch die Eigenschaften der

Klasse erben. Eigenschaften dienen der Darstellung von Beziehungen zwischen

Instanzen oder zwischen Instanzen und Werten (McGuinness/Van Harmelen 2004:

Language Description of OWL Lite). Sie treten als

ObjectProperty

und

DatatypeProperty

auf, wobei die erste

Property

Relationen zwischen Instanzen und

RDF

-

Literalen sowie XML

-

Schema Datentypen darstellt, während die zweite

Property

Relationen zwischen Instanzen von zwei Klassen verkörpert

(Smith/Welty/McGuinness 2004: Defining Properties). Mit Hilfe von

Klasseneigenschaften lassen sich Schlussfolgerungen über Instanzen ziehen. Auch

Instanzen selbst können spezielle Eigenschaften haben. Ihre Aussagekraft in Bezug

auf das Gesamtsystem ist aber deutlich geringer.

OWL nutzt Möglichkeiten von RDF und RDF

-

Schema durch die Verwendung der

Prefixe

rdf

und

rdfs

in der Syntax, erweitert aber das Vokabular um OWL

-

Ausdrücke

zur Beschreibung von Eigenschaften und Klassen durch das Präfix owl. Somit lassen

sich Relationen zwischen Klassen, wie beispielsweise Disjunktheit darstellen,

Kardinalitäten, Äquivalenzen und

Property

-Typen definieren. Auch die Charakteristika

von Eigenschaften lässt sich festlegen. (McGuinness/Van Harmelen 2004: Why

OWL?) Damit steigen die

Reasoning-

Fähigkeiten gegenüber RDF und RDFS in einer

32


Grundlagen

2.2 Expertensysteme

Art, dass die Beschreibung von Daten mittels Metadaten logische Konsequenzen hat.

Die Grundlage bildet dabei die Beschreibungslogik oder

Description Logic

(DL).

OWL ist in drei Untersprachen mit steigender Ausdrucksmächtigkeit gegliedert:

OWL

Lite

, OWL DL und OWL

Full

. OWL

Lite

und OWL DL unterscheiden sich

hinsichtlich ihres Vokabulars und ihrer Kardinalitätsrestriktionen. OWL

Lite

kann nur

Kardinalitätwerte von 1 und 0 darstellen. Das sind lokale Restriktionen, die sich unter

Berücksichtigung einer speziellen Klasse auf eine

Property

anwenden lassen. Bei

OWL DL sind Kardinalitäten von zwei und mehr möglich, außerdem erweitert sie die

Lite-

Variante um einige Vokabularien, die hier nicht explizit besprochen werden

sollen. Wichtig ist, dass OWL DL die maximale Ausdrucksstärke von OWL nutzt,

trotzdem aber vollständige Verarbeitbarkeit und Entscheidbarkeit garantiert. Dies ist

bei OWL

Full

nicht der Fall, da es dem Anwender die syntaktischen Freiheiten von

RDF ermöglicht. OWL

Full

kann daher als Erweiterung von RDF gesehen werden,

während die anderen Varianten nur Erweiterung eines beschränkten RDF sein

können. Der größte Nachteil von OWL

Full

äußert sich darin, dass aufgrund seiner

Freiheiten die Unterstützung aller Features durch eine Software unmöglich erscheint

(McGuinness/Van Harmelen 2004:The three sublanguages of OWL).

2.2.2.4 Die Semantic Web Rule Language SWRL

SWRL kann als Weiterentwicklung von entscheidbaren OWL

-

Varianten mithilfe von

Fragmenten der Prädikatenlogik erster Ordnung betrachtet werden. OWL selbst

,,sieht weder nichtmonotone Vererbung (Default

-

Werte) noch Regeln (oder, formal

gesehen, jegliche Konstrukte, die Variablen benötigen) im allgemeinen Sinn vor."

(Pellegrini/Blumauer 2006: 499) Daher ist zur Realisierung eines regelbasierten

Reasonings

ein Mechanismus notwendig, der logische Regeln über OWL

-

Atomen

definiert. So gesehen stellt SWRL eine Erweiterung der OWL

-

Untersprachen

OWL

Lite

und OWL DL sowie der

Rule

ML, die wiederum eine Implementierung der

Rule Markup Language

in XML

-

Schema ist, dar (Horrocks/Patel-Schneider/Boley

2004: Abstract). Die Regeln lassen sich durchaus als ein Teil der Ontologie betrachten.

Grundlegend nutzt SWRL eine Horn

-

artige Syntax, mit der sie sich auf

OWL

-

Klassen, -Eigenschaften und -Instanzen mithilfe von Variablen bezieht und

neues Wissen über Instanzen durch

Reasoning

generiert. Die dabei genutzten Klauseln

33


Grundlagen

2.2 Expertensysteme

sind Disjunktionen atomarer Aussagen. Variablen werden durch ein vorangestelltes

Fragezeichen kenntlich gemacht. Ebenso lassen sich Literale, eine Reihe von

Built-ins

und OWL

-

Restriktionen benutzen. Durch den erweiterbaren

Built-in-

Mechanismus

kann SWRL von einer Regelsprache in eine Abfragesprache verwandelt werden.

Abbildung 3 zeigt einige Beispiele solcher Regeln.

hasParent(?x, ?y) ^ hasBrother(?y, ?z)

hasUncle(?x, ?z)

Person(?p) ^ hasAge(?p,?age) ^ swrlb:greaterThan(?age,17)

Adult(?p)

Person(?p) ^ hasAge(?p,?age) ^ swrlb:greaterThan(?age,17)

query:select(?p, ?age)

Abbildung 3: SWRL

-

Regeln (von oben nach unten): Einfache Regel, Regel mit

Built

-

in und Literal, Regel als Abfrage

Die Regeln bestehen aus dem

Antecedent part

, der Teil, auf den sich später die

Schlussfolgerung bezieht und der auch als

Body

bezeichnet wird und dem

Consequent part

, der die Konsequenz aus der vorangestellten Teil der Regel beinhaltet,

der sogenannte

Head

(Horrocks/Patel-Schneider/Boley 2004: Rules). Zu beiden Teilen

lässt sich folgendes sagen: ,,Both the body and head consist of positive conjunctions of

atoms. SWRL does not support negated atoms or disjunction. Informally, a SWRL rule

may be read as meaning that if all the atoms in the antecedent are true, then the

consequent must also be true." (O′Connor 2007: What ist SWRL) Für die erste Regel

in Abbildung 3 gilt: Wenn ein Individuum X ein Individuum Y als Elternteil hat und

der Bruder von Individuum Y das Individuum Z ist, dann bedeutet dies auch, dass

Individuum Z der Onkel von Individuum X ist, oder anders gesagt, der Bruder des

Vaters einer Person ist der Onkel dieser Person. Tatsächlich kann in der hier

vorgestellten Form kein SWRL in OWL

-

Dateien kodiert werden. Es handelt sich

hierbei nur um eine für Menschen lesbaren Ausdrucksvariante, die auch von einigen

Tools für die einfache Erstellung von Regeln, genutzt wird. Konkret werden wie bei

34


Grundlagen

2.2 Expertensysteme

OWL die Möglichkeiten von XML

-

Schema, diesmal mit den Prefix swrlx genutzt, um

die Regeln in einer XML

-

Syntax zu kodieren.

2.2.2.5 Abfragesprachen

Abfragesprachen sind zwar unter dem Punkt

Query

im

Layer Cake

erfasst, haben aber

mit den bis dahin vorgestellten Bereichen, die sich mit der Repräsentation von Wissen

befassen, nur indirekt etwas zu tun. Sie verkörpern vielmehr einen Standard, mit dem

später eine

Query Engine

einen Wissensbestand abfragen soll, stehen also logisch

gesehen zwischen dem erfassten Wissen und der

Query Engine

.

Bei der Vorstellung von SWRL wurde schon gezeigt, dass sich diese Regelsprache

durch

Built-ins

in eine Abfragesprache verwandeln lässt. Auch SPARQL stellt

Möglichkeiten für die Abfrage von Wissensbeständen bereit und wird durch das W3C

als

Query Language

forciert. Es handelt sich dabei um eine Abfragesprache für RDF, die

nach Mustern in Graphen sucht, die ihrerseits aus

Triples

bestehen

(Prud′hommeaux/Seaborne 2007: Making Simple Queries). Dabei wird ein

SPARQL

-query string

und optional eine RDF

-dataset description

abgesetzt. Die Syntax

mit

SELECT

- und

WHERE-

Klauseln erinnert stark an SQL und soll wohl auch daran

angelehnt sein. Das Ergebnis einer solchen Suche kann eine Menge von

RDF

-

Graphen sein. Nachteil, von SPARQL ist, dass sich damit nur auf einem

begrenzten Gebiet Anfragen stellen lassen und kein SWRL

-Reasoning

möglich ist.

Allgemein stellen die beiden hier gezeigten Sprachen ausschließlich Funktionen bereit,

die sich auch durch ein

Manipulation-Framework

, also einer Software, die sich auf die

Abfrage und Manipulation von Wissensbasen versteht, gebündelt mit wesentlich

weiter reichenden Möglichkeiten auf der Basis einer eigenen Syntax erledigen lassen.

2.2.3 Abfrage und Manipulation von Wissen

Die Möglichkeiten der formalen Wissensrepräsentation wären reichlich uninteressant,

wenn es nicht gelänge, die Wissensbestände auch abzufragen, sie zu verändern und die

enthaltenen Regeln anzuwenden. Um diese Dinge zu betrachten, ist es notwendig, die

Struktur des

Layer Cake Diagram

zu verlassen und sich mit der praktischen Nutzung

der bisher vorgestellten Bereiche des

Semantic Web

auseinander zu setzten, mit

Programmen, die Wissensbasen verwalten können.

35


Grundlagen

2.2 Expertensysteme

Man unterscheidet dabei Programme, die das Erstellen und Verändern von

Wissensbasen ermöglichen und

Frameworks

, die eine Infrastruktur für das Einlesen

und Verarbeiten von Wissensbeständen bereitstellen. Im ersten Fall handelt es sich

um Tools mit grafischer Oberfläche, die dem Nutzer beim Modellieren von Ontologien

die Schwierigkeiten im Umgang mit kryptischer XML

-

Syntax ersparen sollen, die

zweite Gruppe von Software konzentriert sich auf die Realisierung von

Inferenzmaschinen, auch

Reasoner

oder Theorem

-

Beweiser genannt. In der Regel

stellen diese Systeme API′s bereit, die Entwicklern eine Programmierschnittstelle für

eigene Projekte bieten. Man unterscheidet bei den Inferenzmaschinen zwei Arten des

Schlussfolgerns, die datengetriebene Inferenz und die zielorientierte Inferenz. Die

erste Variante arbeitet auf Basis einer Vorwärtsverkettung von Regeln (

Forward

Chaining

). Aus einem Faktum wird durch eine Regel eine Schlussfolgerung gezogen.

Das Ergebnis kann dann als Voraussetzung für eine weitere Schlussfolgerung mittels

einer weiteren Regel genutzt werden. Diese Methode bietet sich für die einmalige

Berechnung aller Fakten an. Die zweite Form des

Reasoning

s wird

Rückwärtsverkettung oder

Backward Chaining

genannt. Auch hier erfolgt eine

transitive Verknüpfung von Regeln. Ausgangspunkt ist jedoch das Zielobjekt, wobei

analysiert wird, welche Regeln das Ziel als Schlussfolgerung haben. Ist die

Voraussetzung der Regel oder der Wert eines Objektes unbekannt, wird dies aus

anderen Regeln hergeleitet, sofern solche existieren. Damit lassen sich Anfragen

besonders schnell auswerten. Schwierigkeiten bereitet allerdings die Serialisierung

aller Fakten.

Im folgenden Abschnitt wird das Programm

Protégé

vorgestellt, welches sich für die

Modellierung von Wissensbasen eignet und anschließend die datengetriebene

Inferenzmaschine

KAON2

, die eine API für die Anwendungsentwicklung zur

Verfügung stellt.

2.2.3.1 Protégé

Protégé

ist eine plattformunabhängige, auf JAVA basierende, grafische

Open
Source-

Anwendung zum Erstellen und Editieren von Wissensbasen. Sie wurde an der

Stanford University entwickelt und steht unter der

Mozilla Public License

. Damit ist sie

36


Grundlagen

2.2 Expertensysteme

kostenlos und frei verfügbar.11

Protégé

nutzt eine erweiterbare

Plugin-

Architektur, die

dem Grundsystem eine Reihe nützlicher

Add-Ons

beschert. Das Bearbeiten von

Wissensbasen auf der Grundlage von OWL wird beispielsweise mithilfe der

OWL

-Extension

über eine gemeinsame Oberfläche realisiert. Damit ist es möglich

Ontologien im RDF- und OWL

-

Format zu speichern, sowie Klassen, Eigenschaften,

und SWRL

-

Regeln zu editieren und zu visualisieren.

Somit lassen sich auf einem relativ einfachen Weg Ontologien modellieren und zur

Weiterverarbeitung abspeichern.

Protégé

ist zudem gut dokumentiert. Es existieren

Wikis, FAQs, Dokumentationen, Folien von Vorträgen, Tutorials, eine Mailingliste

und weiterführende Links auf der Internetseite, sowohl zur Bedienung der Software

selbst, als auch für die damit im Zusammenhang stehenden Bereiche, wie SWRL oder

OWL.

2.2.3.2 KAON2

KAON2 stellt Entwicklern eine

Closed Source-

API zum Verwalten von OWL DL,

SWRL und F

-Logic

bereit, die den Zugriff auf Ontologien ermöglicht. Diese ist im

universitären Rahmen bei nichtkommerziellen Projekten frei verfügbar.12 Es handelt

sich dabei um JAVA

-

Klassen für das Öffnen und Schließen von Ontologien,

Registrieren und Abfragen von Eigenschaften, Klassen und Instanzen, Variablen und

Literalen, sowie für die Erstellung und Ausführung von SWRL-Abfragen, um nur

einige Beispiele zu nennen. Das System verfügt darüber hinaus über einen Server, an

den Anfragen mittels JAVA

-

RMI oder einem DIG

-

Interface gestellt werden können.

Das sind entfernte Methodenaufrufe über die Kaon2

-

API, mit denen die Manipulation

der vom Server bereitgestellten Ontologien von verschiedenen Seiten möglich ist.

Veränderungen in der Ontologie werden vom Server gespeichert und sind bei der

nächsten Anfrage aktiv. Ein weiteres Feature ist die Möglichkeit der Überführung von

Instanzen einer Ontologie in eine relationalen Datenbank.

Technisch gesehen stellt Kaon2 eine datengetriebene Inferenzmaschine zur

Verfügung, die für das schnelle Beantworten von Anfragen ausgelegt ist. Eine

11

Protégé

kann über folgenden Link bezogen werden:

<http://protege.stanford.edu/download/download.html>.

12 Eine stabile Version von Kaon2 findet sich auf <http://kaon2.semanticweb.org/>.

37


Grundlagen

2.2 Expertensysteme

Dokumentation ist rudimentär in Form von zehn einfachen Beispielen vorhanden, die

verschiedene Anwendungsfelder abdecken, aber keinesfalls den vollen Umfang der

Möglichkeiten widerspiegeln. Darüber hinaus existiert eine Dokumentation der

JAVA

-

Klassen (

Javadoc

), die für den Einstieg in das System aber sehr komplex

gestaltet ist. Eine richtige Dokumentation, ein Tutorium, ein Wiki, oder eine

Mailingliste fehlen hingegen völlig.

38


Ein Expertensystem für OSS-Lizenzen

3 Ein Expertensystem für OSS-Lizenzen

3 Ein Expertensystem für OSS-Lizenzen

Ziel des Abschnitts, der den Hauptteil dieser Arbeit darstellt, ist die Beschreibung

eines Expertensystems, welches Informationen über

Open Source

-Lizenzen bereitstellt

und Anfragen bezüglich ihrer Kompatibilität beantwortet. Außerdem soll der Begriff

Kompatibilität im Zusammenhang mit

Open Source

-Lizenzen geklärt werden. Dazu

wird dieser Abschnitt der Arbeit in drei Teile untergliedert.

Zunächst wird der Aufbau des Expertensystems unter Verwendung bestimmter, in

Kapitel 2.2 vorgestellter Technologien, beschrieben. Es handelt sich hier um kein

verallgemeinertes Modell, sondern um eine spezielle Implementierungsvariante auf

Grundlage einer zuvor gewählten

Inference Engine

.

Anschließend folgt die Klärung des Begriffs Kompatibilität im Umfeld von

Open Source

-Lizenzen. Um eine Wissensbasis mit Schlussfolgerungsmechanismen zu

erstellen, muss klar sein, was Kompatibilität in diesem Zusammenhang bedeuten soll.

Die Wissensbasis wird im dritten Schritt modelliert. Zeigt der Aufbau des

Expertensystems lediglich die Verwendung bestimmter Technologien und die

Wissensbasis in abstrakter Form, wird jetzt ein spezielles Wissensgebiet

aufgenommen: Das Wissens über

Open Source

-Lizenzen. Dazu werden beispielhaft drei

Open Source

-Lizenzen mit unterschiedlichen Charakteren formalisiert und in die

Wissensbasis geschrieben. Auf diese Weise erhält das Expertensystem Informationen,

Wissen über Konzepte und Regeln, die es in die Lage versetzen, ein

Reasoning

durchzuführen. Zu Modellierung der Wissensbasis wird die grafische Anwendung

Protégé

herangezogen. Der OWL-Editor erwies sich bei der praktischen Anwendung

als stabil und einfach zu handhaben. Er ist gut dokumentiert, verfügt über eine große

Community, Wikis, Anwendungsbeispiele und FAQs. Entscheidend für die

Verwendung des Editors bei der Realisierung der Wissensbasis war vor allem der

bereits als Plugin integrierte OWL-

Reasoner

Pellet

, die Möglichkeit zur Integration der

Jess Rule Engine

für die Anwendung der SWRL-Regeln, sowie ein bereits vorhandener

SWRL-Editor. So lassen sich bei Test alle notwendigen Prozesse, wie OWL-

Reasoning

und die Anwendung der Regeln mithilfe einer einzigen Oberfläche durchführen. Die

Ergebnisse des Prozesses werden in der Wissensbasis verfügbar und können

anschließend zu Analysezwecken herangezogen werden.

39


Ein Expertensystem für OSS-Lizenzen

3 Ein Expertensystem für OSS-Lizenzen

Ergebnis des Abschnitts wird eine Wissensbasis sein, die zum Zweck einer

Kompatibilitätsuntersuchung den

Copyleft-

Effekt von

Open Source

-Lizenzen bestimmen

kann, sowie die schriftliche Dokumentation der Formalisierung von drei ausgewählten

Open Source

-Lizenzen.

3.1 Aufbau des Expertensystems

Alle Elemente, die zum Aufbau eines Expertensystems notwendig sind, wurden bereits

in Kapitel 2.2 besprochen. Nun sollen sie zusammengesetzt und in einer speziellen

Kombination vereint werden.

Grundsätzlich besteht das Expertensystem aus

User Interface

,

Inference Engine

und

Knowledge Base

.

Das

User Interface

bildet die Schnittstelle zum Benutzer. Darüber wird in einer

bestimmten Form eine Anfrage gestellt. Hat der Benutzer seine Anfrage mit Hilfe des

User Interface

an die

Inference Engine

übergeben, wird ein Algorithmus in Gang gesetzt,

mit dem auf Grundlage des in der

Knowledge Base

gespeichertem Wissens

Schlussfolgerungen gezogen werden. Im Ergebnis wird dem Benutzer eine Antwort

oder Lösung bezüglich der Anfrage übermittelt.

Die

Inference Engine

bildet zusammen mit der Wissensbasis den Kernbestandteil des

Systems. Realisiert wird sie im oben gezeigten Fall durch KAON2 einer Infrastuktur

zum Verwalten von OWL DL, SWRL, und F-Logic Ontologien. KAON2 ist in der

Lage

Reasoning

auf der Basis von SHIQ(D), einer Teilmenge von OWL DL

durchzuführen und nutzt DL-

safe

, eine Teilmenge von SWRL, für regelbasiertes

Schlussfolgern.13 KAON2 wurde komplett in JAVA 1.5 implementiert und liegt für die

Anwendungsentwicklung in Form von JAVA-Klassen vor. Damit lassen sich

Operationen auf einer Wissensbasis, wie das Öffnen von Ontologien,

Reasoning

,

verschiedene Abfragen und das Speichern von Ontologien realisieren. Der

Reasoner

selbst arbeitet mit 3 Komponenten, der

Ontology Clausification Component

, dem

Theorem Prover

und der

Disjunctive Datalog Engine

. Dabei werden die Inhalte aus der

TBox der Wissensbasis in ein Set bestehend aus Prädikatenlogik erster Ordnung

13 Vergleiche dazu <http://kaon2.semanticweb.org/>.

40


Ein Expertensystem für OSS-Lizenzen

3.1 Aufbau des Expertensystems

übersetzt und anschließend der

Superposition calculus

14 für das

Reasoning

implementiert.

Das Ergebnis sind Regeln, die zusammen mit den Inhalten der ABox, also den

Beschreibungen der einzelnen Instanzen, die

Disjunctive Datalog Engine

in die Lage

versetzen, Anfragen zu beantworten (Motic 2006: 2004).

User Interface

und

Inference Engine

werden durch einen

System Engineer

entwickelt bzw. implementiert.

Request

Solution

User

User Interface

System Engineer

Inference Engine

Reasoning Engine (Kaon2)

Ontology

Theorem

Disjunctive

Clausification

Prover

Datalog

Engine

TBox axioms

Abox assertions

Knowledge Expert

Knowledge Base

Ontology (OWL)

Rules (SWRL)

Individuals

Rule 1

Classes

Rule 2

Properties

Rule 3

Abbildung 4: Expertensystem mit Kaon2 als

Inference Engine

Die Wissensbasis selbst wird auf der Grundlage von OWL DL und SWRL umgesetzt

14 Mithilfe dieses Algorithmus ist es möglich, ein

Reasoning

für ausgeglichene Prädikatenlogik erster

Ordnung durchzuführen.

41


Ein Expertensystem für OSS-Lizenzen

3.1 Aufbau des Expertensystems

und ist, wie auch der Informationsfluss zur

Inference Engine

, in Abbildung 4 grün

dargestellt. Es handelt sich dabei um XML-Dateien, die eine Ontologie und Regeln

enthalten. Klassen, Eigenschaften und Instanzen bilden darin ein bestimmtes

Wissensgebiet ab, welches außerdem durch Regeln ergänzt wird. Dazu ist ein Experte

notwendig, der in als

Knowledge Expert

bezeichnet wird. Ihm obliegt es, vorliegendes

Wissen zu formalisieren und es in die Wissensbasis zu übertragen. Erst dann kann es

von der

Inference Engine

für Schlussfolgerungen genutzt werden.

3.2 Lizenzkompatibilität im Rahmen des
Systems

Zu Kompatibilität und

Copyleft

wurden bereits in Kapitel 2.1 einige Anmerkungen

gemacht. An dieser Stelle soll der Begriff

Copyleft

noch einmal genauer betrachtet

werden, da die Stärke des

Copyleft

-Effekts etwas über die Kombinierbarkeit von

weiterzugebenden und darüber hinaus modifizierten Werken aussagt. Ziel ist es, neben

der genaueren Betrachtung der Begriffe

Copyleft

und Kompatibilität auch festzulegen,

was innerhalb dieser Arbeit darunter zu verstehen ist.

Während Werke, die unter Lizenzen mit starkem

Copyleft

-Effekt

stehen, in so gut wie

keiner Art und Weise mit Werken unter anderen Lizenzen kombiniert werden können,

ohne das Gesamtwerk unter die

Copyleft

-Lizenz zu stellen, besteht für

Open Source

-Lizenzen mit schwachen oder ohne

Copyleft

-Effekt die Möglichkeit, dies

unter bestimmten Umständen zu tun. Die Stärke des

Copyleft

-Effekts ist also in

gewisser Weise ein Gradmesser für die Kompatibilität zwischen Lizenzen. Mit

kompatiblen Lizenzen sind in dieser Arbeit Lizenzen gemeint, deren zugehörige

Programme in rechtlich vertretbarer Form miteinander kombiniert werden können.

Dabei kann es Auflagen geben, die festlegen, in welcher Weise eine Kombination

erfolgen muss. Diese Auflagen müssen im Rahmen der jeweiligen Lizenztexte für alle

beteiligten Lizenzen wechselseitig erfüllbar sein. Aufgrund dieser Festlegung muss

von einem komplizierten Wechselspiel zwischen den Lizenztexten und deren

Auslegung im nationalen Recht ausgegangen werden, was kein Gegenstand der hier

vorgenommenen Betrachtung sein wird.

Um sich einer Aussage über Kompatibilität zwischen Lizenzen dennoch zu nähern, soll

42


Ein Expertensystem für OSS-Lizenzen

3.2 Lizenzkompatibilität im Rahmen des Systems

versucht werden, die Kombinierbarkeit von Werken, aufgrund des

Copyleft

-Effekts der

Lizenzen mithilfe definierter Klassen innerhalb einer Wissensbasis, einzuschätzen.

Ergebnis dieser Betrachtung sollen drei Kategorien von Lizenzen sein. Lizenzen, die

keinesfalls zu anderen Lizenzen kompatibel sind (starker

Copyleft

-Effekt), Lizenzen, die

bestimmte Auflagen für die Kombination der ihr unterstehenden Programme geben,

eine Weitergabe modifizierter Programme aber prinzipiell unter von der

Ursprungslizenz abweichenden Bedingungen erlauben (schwacher

Copyleft

-Effekt) und

Lizenzen, die keine Auflagen für veränderte und weitergegebene Werke geben (kein

Copyleft

-Effekt). Zwar sagen diese Kategorien nichts über die tatsächliche

Kompatibilität zweiter Lizenzen aus, geben aber Aufschluss darüber, ob ein Programm

gar nicht, möglicherweise oder auf jeden Fall mit Programmen unter anderen

Lizenzen kombiniert werden kann. Mit dieser Aussage und einem Verweis auf die

Bedingungen, sowie den Stellen aus dem Original-Lizenztext, die zu diesem Ergebnis

geführt haben, kann eine spätere Anwendung den Anwender einen guten

Ausgangspunkt für weitere Recherchen bieten.

Die Frage ist nun, wie der

Copyleft-

Effekt auf Grundlage formalisierten Lizenzwissens

eingeschätzt werden kann? Diese Frage soll das nächste Kapitel klären, jedoch sollen

vor der Formalisierung noch einige Überlegungen darüber angestellt werden, welche

Informationen aus den Lizenztexten für diese Frage wichtig sind, damit Indizien, die

für einen bestimmten

Copyleft-

Effekt sprechen, in die Otologie geschrieben werden

können und somit innerhalb der Wissensbasis identifizierbar werden.

Zum Beispiel muss es später in der Wissensbasis möglich sein, ein bearbeitetes Werk

zu identifizieren. Darüber hinaus ist wichtig zu wissen, ob ein kombiniertes Werk

vorliegt und ob es lizenzrechtliche Relevanz hat, da auch Lizenzbedingungen

existieren, die Aussagen zu in sich unabhängigen Werken machen und diese für den

Copyleft-

Effekt nicht entscheidend sind. Da Lizenzen auch Bedingungen für Teile von

weiterzugebenden Werken festlegen, muss es innerhalb der Wissensbasis möglich

sein, Teilwerke zu erkennen. Hierbei handelt es sich typischerweise um unveränderte,

modifizierte oder neu erstellte Teile des Programms.

Weitere Anforderungen, die - über die

Copyleft

-Frage hinaus - praktische Relevanz für

die Erstellung einer Lizenz-Ontologie haben, werden innerhalb des nächsten Kapitels

43


Ein Expertensystem für OSS-Lizenzen

3.2 Lizenzkompatibilität im Rahmen des Systems

definiert. Die Modellierung der Wissensbasis wird dabei ebenfalls vollzogen.

3.3 Modellierung der Wissensbasis

Die Modellierung der Wissensbasis ist eine Grundvoraussetzung für ein

funktionierendes Expertensystem. Im hier betrachteten Fall soll Wissen über

OSS-Lizenzen aufgenommen werden. Die zu diesem Zweck notwendige

Formalisierung des Lizenzwissens auf Basis der in Kapitel 2.1.3 vorgestellten Analyse

ausgewählter Lizenzen und den Anforderungen zur Identifikation des

Copyleft-

Effekts,

stellt zweifelsfrei den schwierigsten Part beim Aufbau der Wissensbasis dar. Die von

der

Inference Engine

zurückgelieferten Lösungen werden nur verwertbar sein, wenn

das Wissen zuvor korrekt formalisiert wurde.

Interessant erscheint auch die Frage nach dem Rechtsraum - genauer gesagt, wie eine

bestimmte Lizenzbedingung im nationalen Recht ausgelegt werden muss. Diese Frage

wird die vorliegende Arbeit nicht beantworten können, da lediglich der Inhalt der

Lizenzen selbst betrachtet wird. Dabei wird bei Erklärungen teilweise Bezug auf das

deutsche Rechtssystem genommen. Bezüglich der Formalisierung selbst spielen solche

Aspekte keine Rolle.

Bei der Formalisierung von Lizenzen werden zunächst Klassen benötigt, die

gewissermaßen den Container für die in ihnen vorkommenden Instanzen bilden und

Eigenschaften in Form von Relationen zwischen Instanzen oder zwischen Instanzen

und Datentypen. Zu diesem Zweck ist zu analysieren, welche Elemente später für die

Ontologie benötigt werden und in welcher Beziehung sie zueinander stehen. Da kein

Versuch für die Formalisierung von OSS-Lizenzen bekannt ist, gibt es keinen

definierten oder festgelegten Weg. Viele Varianten sind denkbar. Wichtig ist es, eine

Ontologie aufzubauen, welche ein Expertensystem in die Lage versetzt,

Schlussfolgerungen über Lizenzen zu ziehen. Wie dieses konkret aussehen kann, wird

in den nächsten Abschnitten beschrieben. Zur Verbesserung der Übersichtlichkeit,

werden alle zu Anschauungszwecken in OWL oder SWRL kodierten Abschnitte sowie

im Text verwendete Klassen und Eigenschaften, die sich auf diese Abschnitte

beziehen, in einer vom Textkörper abweichenden Schriftart und Formatierung

dargestellt.

44


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

3.3.1 Lizenzwissen - Primitive Klassen und

Klassenbeziehungen

Zentrales Element der Ontologie wird die Lizenz selbst sein. Sie ist es, über die

letztendlich Aussagen getroffen werden sollen, steht damit im Zentrum des Systems

und wird im hier betrachteten Fall die erste Basisklasse bilden. Diese Klasse wird

später die verschiedenen Lizenzen in Form von Instanzen aufnehmen und in OWL

folgendermaßen definiert:

<owl:Class rdf:ID="License"/>

Die einzelnen Lizenzen werden als Instanzen der Klasse License aufgefasst, da sie

bezüglich des Anwendungszwecks der Ontologie die kleinstmöglichen Einheiten

bilden. Es wäre auch möglich, sie als Klasse und damit als Menge aller tatsächlich

gegeben Kopien der Lizenz zu sehen. Ein solcher Ansatz könnte sinnvoll sein, wenn

mithilfe der Ontologie die Verbreitung bestimmter Lizenzen ermittelt werden müsste.

Im hier betrachteten Fall spielt jedoch der Inhalt der Lizenztexte die herausragende

Rolle, der für alle gegebenen Kopien der Lizenz gleich ist, da es sich um keine neue

Variante, sondern tatsächlich nur um eine Kopie der immer gleichen Instanz handelt.

Im jetzigen Zustand ist über die Klasse nichts bekannt, außer dass sie existiert. Für die

Lizenz-Ontologie ist es notwendig, weitere Klassen zu definieren, die ihrerseits

Instanzen aufnehmen können und sich dann mit anderen Instanzen auf der Basis

binärer Relationen verknüpfen lassen. Als weitere Klassen werden Work,

LicenseParagraph, LicenseCondition und Trademark definiert. LicenseParagraph steht hier für die

kleinste Einheit, in die eine Lizenz nach dem System Ziffer/Satz zerlegt werden kann

und entspricht im Englischen

Section/Paragraph

.

<owl:Class rdf:ID="Work"/>

<owl:Class rdf:ID="LicenseParagraph"/>

<owl:Class rdf:ID="LicenseCondition"/>

<owl:Class rdf:ID="Trademark"/>

Die Liste der Klassen ist an dieser Stelle noch nicht vollständig. Es lassen sich jedoch

erste Beziehungen formulieren. Da nun klar ist, dass Werke, Lizenzen, Sätze,

Warenzeichen und Lizenzbedingungen existieren, können Verbindungen definiert

werden. Diese ergeben sich zwischen License und Work, License und LicenseParagraph,

45


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

License und Trademark, sowie License und LicenseCondition. Die letzte Beziehung ist in

gewisser Weise ein Sonderfall. Lizenzen haben Sätze, sie haben aber auch

Bedingungen. Genauer betrachtet sind Bedingungen und Sätze Varianten, um

Lizenzen in logische Einheiten zu zerlegen. Die jeweilige Beziehung zu der Lizenz hat

sich als notwendig erwiesen, da beide in der Ontologie für gewisse Schlüsse

erforderlich sind, es aber unmöglich erscheint, eine Bedingung aus einem einzigen Satz

abzuleiten, oder einen Satz nur einer Bedingung zuzuordnen. Eine bestimmte

Lizenzbedingung lässt sich nur selten in einen klar abgegrenzten Abschnitt pressen.

Vielmehr können sich Bedingungen aus verschiedenen Sätzen der Lizenz ergeben,

oder ein Satz kann gleich mehrere Bedingungen enthalten.

String

hasLicen

Paragraph

seName

isParagraphOf

hasParagraph

isLicenseOf

Work

hasLicense

License

hasLicen

i

s

s

eC

Lic

on

en

d

s

i

eC

tion

on

ked

ditionOf

License

isTrademar

Condition

Trademark

Abbildung 5: Zentrale Klasse Lizenz, jeweils verknüpft durch eine Property, welche die Beziehungen zu

anderen Klassen verdeutlicht.

Abbildung 5 zeigt die Beziehungen zwischen den eben aufgeführten Klassen. Sie zeigt

außerdem den Lizenznamen als eine Beziehung zwischen License und einer

Zeichenkette. Im Gegensatz zu

ObjectProperties

, die Instanzen von Klassen verbinden,

werden bei

DatatypeProperties

Relationen zwischen Instanzen von Klassen und

Datentypen ausgedrückt. Eine Eigenschaft oder

Property

lässt sich optional durch eine

Domain

, welche die Grundmenge darstellt und eine

Range

, die den Wertebereich

verkörpert, einschränken. Im Fall des Lizenznamens handelt es sich um eine

46


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Eigenschaft mit der Grundmenge License und dem Wertebereich

String

. Namen sind

einfache Zeichenketten, die Lizenzen benennen.

Die

Property

hasLicenseCondition hat als Grundmenge License und als Wertebereich die

Klasse LicenseCondition. Nur Instanzen der Klasse License können Lizenzbedingungen

haben und Lizenzbedingungen kommen ausschließlich in der Klasse LicenseCondition vor.

Die redundante Beziehung zu dieser Eigenschaft ist isLicenseConditionOf, die folglich die

Grundmenge LicenseCondition und den Wertebereich License haben muss. Obwohl die

Bedingungen verschiedener Lizenzen möglicherweise das gleiche aussagen, ist eine

Bedingung selbst einzigartig. Sie kann nur in einer Lizenz vorkommen und ist daher

functional

:

<owl:ObjectProperty rdf:ID="isLicenseConditionOf">

<rdf:type rdf:resource="&owl;FunctionalProperty" />

<rdfs:domain rdf:resource="#LicenseCondition"/>

<rdfs:range rdf:resource="#License"/>

<owl:inverseOf rdf:resource="#hasLicenseCondition" />

</owl:ObjectProperty>

Bezüglich der

Property

hasLicenseParagraph wird festgelegt, dass sie als Grundmenge die

Klasse License und als Wertebereich LicenseParagraph erhalten soll. Damit müssen alle

Lizenzen, die es geben kann, der Grundmenge License entstammen und jeder Satz, der

ihr zugeordnet werden soll, in der Klasse LicenseParagraph zu finden sein. Hier ergibt

sich ebenfalls die redundante

Property

isLicenseParagraphOf, weil jeder Satz genauso gut

einer Lizenz zugeordnet werden kann. Die

Property

ist

functional

, da Sätze nur genau

einer Lizenz angehören können, während hasLicenseParagraph als

inverse functional

deklariert wird. Zum einen muss

inverse functional

das Gegenteil einer

functional

-

Property

sein, zum anderen besteht die Möglichkeit, dass eine Lizenz eine

Menge von Sätzen haben kann.

<owl:ObjectProperty rdf:ID="hasLicenseParagraph">

<rdf:type rdf:resource="&owl;InverseFunctionalProperty" />

<rdfs:domain rdf:resource="#License"/>

<rdfs:range rdf:resource="#LicenseParagraph"/>

<owl:inverseOf rdf:resource="#isLicenseParagraphOf" />

</owl:ObjectProperty>

Die

Property

hasLicense lässt sich der Wertebereich License zuordnen, da Lizenzen auch

für Dinge gegeben werden können, die keine Werke sind, erfolgt keine Angabe des

Wertebereichs. Analog zu den oben genannten Eigenschaften besteht ebenfalls eine

47


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

redundante Beziehung in Form von isLicenseOf und der Domain License.

<owl:ObjectProperty rdf:ID="isLicenseOf">

<rdfs:domain rdf:resource="#License"/>

<owl:inverseOf rdf:resource="#hasLicense" />

</owl:ObjectProperty>

Unter Trademark sind Warenzeichen zu verstehen. Da Lizenzen unter Umständen durch

Organisationen zertifiziert werden, sind durch ein Wahrenzeichen Rückschlüsse auf

den Lizenztyp möglich. Die OSI beispielsweise zertifiziert OSS-Lizenzen mithilfe der

bereits in Kapitel 2.1.1 beschriebenen

Open Source

-Defininition.

<owl:ObjectProperty rdf:ID="isTrademarked">

<rdfs:range rdf:resource="#Trademark"/>

</owl:ObjectProperty>

Die

Property

selbst kann bestimmte Ausprägungen haben. So tragen fast alle bisher

genannten Eigenschaften das Attribut

inverseOf

und zeigen damit redundante

Beziehungen an. Zwei Eigenschaften wurde bisher als

functional

definiert und auf

diese Weise angezeigt, dass eine Instanz einer Klasse sich lediglich auf genau eine

Instanz einer anderen Klasse beziehen kann, sofern sie existiert. Dagegen können die

Instanzen von License mehreren Werken angehören und auch ein einziges Werk lässt

sich unter verschiedenen Lizenzen verbreiten. (Jaeger/Metzger 2006: 71)

Die bisherigen Betrachtungen zeigen, in welcher Beziehung Werke, Lizenzen, Sätze

und Lizenzbedingungen nach diesem Formalisierungsansatz zueinander stehen. Nun

soll das für die meisten Schlussfolgerungen entscheidende Element und seine

Beziehungen formalisiert werden - die Lizenzbedingung. Zu diesem Zweck wird eine

Klasse Namens LicenseCondition angelegt. Die Klasse wird später noch spezifische

Einschränkungen des Wertebereichs für bestimmte Eigenschaften durch so genannte

Restrictions

erhalten. Im Moment wird sie jedoch als einfache Klasse definiert:

<owl:Class rdf:ID="LicenseCondition"/>

Mit der Beziehung zwischen License und LicenseCondition wurde bereits festgelegt, dass

sich Lizenzbedingungen auf Lizenzen beziehen. Ähnlich verhält es sich mit Ziffern

und Sätzen. Lizenzbedingungen stützen sich auf Ziffern und Sätze von Lizenzen, da in

diesen Lizenzbedingungen definiert werden. Eine Anwendung, die später die

Ontologie nutzt, kann dem Anwender auf diese Weise Rückschlüsse auf den zu der

48


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Bedingung gehörenden Satz liefern.

<owl:ObjectProperty rdf:ID="emergesOfLicenseParagraph">

<rdfs:range rdf:resource="#LicenseParagraph"/>

</owl:ObjectProperty>

License

License

License

Duty

Right

hasL

is

ic

L

en

icen

se

s

C

e

on

ight

Con

dit

seDuty

d

ion

seR

ition

Licen

O

has

f

Licen

has

License

Option

hasLicenseOption

License

Part

isValidToPartOfWork

Condition

of

distributed

work

em

Work

orm

erges

odeF

OfL

fDistributed

icens

FormO

idToC

eParagrap

isValidTo

h

isVal

Form

of

Code

distributed

form

License

work

Paragraph

Abbildung 6: Lizenzbedingung mit zugehörigen Klassen.

Links unten: Anwendungsfall, für den eine Bestimmung gilt.

Rechts oben: Bestimmung, die bezüglich des Anwendungsfalls zu beachten ist.

Die Analyse der Lizenztexte hat gezeigt, dass in Lizenzbedingungen Rechte

formuliert werden. Beispielsweise besagt der Text der GPL in Ziffer 1, dass auf

beliebigen Medien unveränderte Kopien des Quelltextest eines Programms verbreitet

werden dürfen, dafür aber gewisse Voraussetzungen erfüllt werden müssen: ,,You may

copy and distribute verbatim copies of the Program′s source code as you receive it, in

any medium, provided that [...]". Tatsächlich formulieren alle untersuchten

Lizenzbedingungen Rechte. Diese Beziehung wird in Abbildung 6 mit der

Property

hasLicenseRight dargestellt. Die Rechte werden in der neu anzulegenden Klasse

LicenseRight erfasst. Die Beziehung zwischen LicenseCondition und LicenseRight soll den

49


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Wertebereich LicenseRight erhalten. Alle Lizenzrechte sind in der Klasse LicenseRight zu

finden. Lizenzrechte beziehen sich z.B. auf den Umgang mit dem Programm, etwa das

Recht, dass Programm ablaufen zu lassen, es in unveränderter Form weiterzugeben

oder es zu modifizieren und anschließend weiterzugeben.

<owl:Class rdf:ID="LicenseRight"/>

<owl:ObjectProperty rdf:ID="hasLicenseRight">

<rdfs:range rdf:resource="#LicenseRight"/>

</owl:ObjectProperty>

Aus diesem kurzen Abschnitt der GPL kristallisieren sich noch weitere Dinge heraus,

die bei der Formalisierung zu beachten sind. Zum einen bezieht sich die Bedingung

auf ein Programm, dass im Quellcode vorliegt: ,,[...] the Program′s source code [...]".

Eine andere denkbare Möglichkeit wäre ein Programm im Maschinencode. Es wird die

Klasse CodeForm benötigt, die über die

Property

isValidToCodeForm mit dem Wertebereich

CodeForm zu definieren ist. Die Klasse kann durch die Aufzählung ihrer Mitglieder

spezifiziert werden. Als mögliche Varianten des vorliegenden Codes kommen nur

Binary und Source in Frage. Die

Property

ist

functional

. Ein Programm kann nur eine

einzige Form des Codes besitzen:

<owl:Class rdf:ID="CodeForm">

<owl:oneOf rdf:parseType="Collection">

<owl:Thing rdf:about="#Binary"/>

<owl:Thing rdf:about="#Source"/>

</owl:oneOf>

</owl:Class>

<owl:ObjectProperty rdf:ID="isValidToCodeForm">

<rdf:type rdf:resource="&owl;FunctionalProperty" />

<rdfs:range rdf:resource="#CodeForm"/>

</owl:ObjectProperty>

Das Programm darf im betrachteten Fall nur als unveränderte Kopie weitergegeben

werden: ,,[...] distribute verbatim copies of the Program [...]". Eine andere Möglichkeit

wäre ein Programm, welches von dem Werk abgeleitet wurde, das Werk nutzt, es linkt

oder eine von dem Werk unabhängige selbstständige Einheit darstellt. Noch weitere

Arten von weiterzugebenden Werken sind denkbar. Die Klasse FormOfDistributedWork

wird angelegt und mithilfe der

Property

isValidToFormOfDistributedWork verknüpft.

<owl:Class rdf:ID="FormOfDistributedWork"/>

<owl:ObjectProperty rdf:ID="isValidToFormOfDistributedWork">

<rdfs:range rdf:resource="#FormOfDistributedWork"/>

</owl:ObjectProperty>

50


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Da ein Programm unverändert weitergegeben werden soll, ist das ganze Werk von der

Bedingung betroffen. Allerdings formulieren Lizenztexte an verschiedenen Stellen

Bedingungen, die sich nur auf Teile von Werken beziehen. Zum Beispiel stellt Ziffer 2

Satz 2 der LGPL klar: ,,If identifiable sections of that work are not derived from the

Library, and can be reasonably considered independent and separate works in

themselves, then this License, and its terms, do not apply to those sections." Es ist also

denkbar, dass sich bestimmte Bedingungen nur auf neu hinzugekommene oder

veränderte Bereiche des Gesamtwerkes beziehen. Die Klasse PartOfWork soll diesem

Problem gerecht werden. Es wird definiert:

<owl:Class rdf:ID="PartOfDistributedWork"/>

<owl:ObjectProperty rdf:ID="isValidToPartOfDistributedWork">

<rdfs:range rdf:resource="#PartOfDistributedWork"/>

</owl:ObjectProperty>

Ein wesentlicher Bestandteil der Lizenzbedingung, sind die in Abbildung 6 als

LicenseDuty bezeichneten Pflichten, die der Benutzter bei der Wahrnehmung seiner

Rechte beachten muss. Erweitert man das oben genannte Zitat aus Ziffer 1 der GPL,

so finden sich Pflichten, die beim Weitergeben unveränderter Kopien beachtet werden

müssen. So sind beispielsweise

Copyright

-Vermerk und Haftungsausschluss zu

veröffentlichen: ,,You may copy and distribute verbatim copies of the Program′s source

code as you receive it, in any medium, provided that you conspicuously and

appropriately publish on each copy an appropriate copyright notice and disclaimer of

warranty." Die

Property

hasLicenseDuty wird erstellt und mit ihrem Wertebereich die

Klasse LicenseDuty einschränken:

<owl:Class rdf:ID="LicenseDuty"/>

<owl:ObjectProperty rdf:ID="hasLicenseDuty">

<rdfs:range rdf:resource="#LicenseDuty"/>

</owl:ObjectProperty>

Die letzte noch fehlende Beziehung zur Lizenzbedingung ist die LicenseOption. GPL

Ziffer 1 Satz 2 definiert diesbezüglich zwei Möglichkeiten. Der Distributor kann sich

vom Lizenznehmer die Kopierkosten erstatten lassen und Gegen eine Gebühr eine

Garantie für das Programm anbieten: ,,You may charge a fee for the physical act of

transferring a copy, and you may at your option offer warranty protection in exchange

for a fee." Diese Möglichkeiten sind nicht zwingend und fallen damit nicht unter die

51


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Pflichten. Sie ist in gewisser Weise ein Recht, aber eins, welches mit unter das Recht,

unveränderte Kopien weiterzugeben, fällt. Daher wurde es bei der Formalisierung als

Option oder Möglichkeit definiert. Die Codierung in OWL erfolgt auf die gleiche Art

und Weise, wie die

Property

hasLicenseDuty. In diesem Fall wird als Klasse LicenseOption

definiert, die zugehörige

Property

ist hasLicenseOption.

Nun soll noch der Satz selbst betrachtet werden. Sätze bestehen aus Wortfolgen, die

ihren Inhalt ausdrücken. Diese werden als Zeichenkette erfasst und als

DatatypeProperty

dargestellt. Diese Eigenschaft ist functional. Ein Satz kann nur genau

einen Wortlaut haben.

<owl:FunctionalProperty rdf:about="#ParagraphWording">

<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>

<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>

</owl:FunctionalProperty>

Außerdem weisen Sätze, wie in Abbildung 7 gezeigt, die schon bekannte redundante

Beziehung zu einer Lizenz auf.

isParagraphOf

hasParagraphWording

License

String

Paragraph

hasParagraph

License

Abbildung 7: Satz (LicenseParagraph) mit Eigenschaften

Wie bereits weiter oben angekündigt, soll die Klasse LicenseCondition noch einige

Einschränkungen erhalten. Ein solcher

Workaround

wird notwendig, wenn eine

Property

nur in einem spezifischen Kontext eine besondere Ausprägung erhalten soll,

anstatt global deklariert zu werden. Beispielsweise können Lizenzen eine nicht näher

definierte Menge von Lizenzrechten oder -pflichten aufweisen, während

Lizenzbedingungen, so soll es hier festgelegt werden, mit nur genau einem

Lizenzrecht in Verbindung stehen. Die Kardinalität von hasLicenseRight wird daher im

Kontext der LicenseCondition auf 1 limitiert. Nur so ist gewährleistet, dass später jedem

Recht die entsprechenden Pflichten zugeordnet werden können. Man spricht in diesem

52


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Zusammenhang von einer notwendigen Bedingung, da ohne sie die Lizenzbedingung

nicht richtig definiert werden kann. Klassen, die ausschließlich notwendige

Bedingungen enthalten, werden in OWL als primitive Klassen bezeichnet.

Das Prinzip entspricht der Formulierung verschiedener Sätze in Lizenzen, die in der

Regel ein Recht sowie eine dazugehörige Menge von Pflichten und Möglichkeiten

definieren:

<owl:Class rdf:ID="LicenseCondition">

<rdfs:subClassOf>

<owl:Restriction>

<owl:onProperty>

<owl:ObjectProperty rdf:ID="hasLicenseRight"/>

</owl:onProperty>

<owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1</owl:cardinality>

</owl:Restriction>

</rdfs:subClassOf>

</owl:Class>

Die Eingenschaften emergesOfLicenseParagraph, hasLicenseOption, isValidToAffectedCodeForm,

isValidToFormOfDistributedWork, isValidToPartOfDistributedWork und hasLicenseDuty kennen noch

keine Grundmenge. Es ist nicht bekannt, dass sie im Kontext von LicenseCondition

auftauchen können. Daher muss definiert werden, dass die eben genannten

Property

-Werte als Grundmenge die Klasse Lizenzbedingung haben können. Dies

geschieht mithilfe von

allValuesFrom

. Hier wird zwar auf den Wertebereich verwiesen,

dadurch, dass diese Definition in der Klasse LicenseCondition vorgenommen wird aber

auch klar gestellt, dass die Grundmenge eine Lizenzbedingung ist. Exemplarisch wird

hier nur eine dieser Einschränkungen vorgestellt:

[...]

<owl:Restriction>

<owl:allValuesFrom>

<owl:Class rdf:ID="LicenseOption"/>

</owl:allValuesFrom>

<owl:onProperty>

<owl:ObjectProperty rdf:ID="hasLicenseOption"/>

</owl:onProperty>

</owl:Restriction>

[...]

Die Lizenzbedingung ist damit vollständig definiert. Jede Bedingung kann genau ein

Recht innerhalb eines bestimmten Anwendungsfalls aufweisen. Der Anwendungsfall

setzt sich aus den Eigenschaften zusammen, die isValidFor im Namen tragen, also Form

des Codes, Teil des weiterzugebenden Werkes und Art des weiterzugebenden Werkes.

Auch diese Eigenschaften dürfen nur einen Wert erhalten, da später über Regeln

53


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

weitere Pflichten zu einer Lizenzbedingung hinzugefügt werden können, die sich

möglicherweise nur für eine ganz bestimmte Kombination der genannten drei

Elemente, oder anders formuliert, für einen bestimmten Anwendungsfall, der sich aus

diesen Elementen zusammensetzt, gültig sind. Ist ein Recht bezüglich eines

bestimmten Anwendungsfalls definiert, kann eine beliebig lange Liste von Pflichten

und oder Optionen folgen. Außerdem gehört die Lizenzbedingung zu genau einer

Lizenz, während sie sich auf eine nicht festgelegte Menge von Sätzen aus der Lizenz

beziehen kann.

Zusammenfassung:

Ziel des Kapitels

· Aufbau einer Basisstruktur aus Klassen und Klassenbeziehungen

in OWL, mit deren Hilfe sich Lizenzwissen beschreiben lässt.

Vorgehensweise

· Definition von Klassen als eine Sammlung von Eigenschaften in

Form einer Ontologie über Lizenzwissen, die eine Menge von

Instanzen beschreiben.

· Erstellung von Eigenschaften (Properties), zur Darstellung

allgemein gültiger Fakten über Klassenmitglieder durch binäre

Relationen zwischen Instanzen von Klassen oder Instanzen und

RDF-Literalen sowie XML-Schema Datentypen.

Ergebnisse

· Die Zusammenhänge zwischen der Lizenz, ihrem zugehörigen

Werk, ihrem Namen, den Sätzen aus dem Lizenztext und den

daraus hervorgehenden Lizenzbedingungen wurden dargestellt.

· Die Lizenzbedingung als eine Kombination aus Lizenzbestimmung

(Rechte, Pflichten, Möglichkeiten) und dem zugehörigen Fall,

für den die Bestimmung gilt (Form des weiterzugebenden

Werkes, Teil des weiterzugebenden Werkes, Form des

weiterzugebenden Codes) wurde beschrieben.

3.3.2 Werke, Lizenzen, Bedingungen - Instanzen der

Ontologie

Im vorangegangenen Abschnitt wurde bereits darauf hingewiesen, dass die Lizenzen

selbst als Instanzen aufgefasst werden sollen, da sie als kleinste Einheiten nicht weiter

zerlegt werden können. Die Instanzen der Klasse Lizenz zu finden ist relativ einfach.

Es handelt sich um die Lizenzen, die formalisiert werden sollen. Im Fall dieser

Ontologie die GPL in der Version 2, die LGPL 2.1 und die neuere Variante der

BSD-Lizenz. Instanzen werden im einfachsten Fall durch ihre Mitgliedschaft in einer

Klasse deklariert:

54


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

<License rdf:ID="GPLv2.0" />

Instanzen können über Eigenschaften, die sie durch die Mitgliedschaft in einer der

oben beschriebenen Klassen erben, in Verbindung gebracht werden. Ein Beispiel wäre

der Zusammenhang zwischen der GPL als Lizenz und der in ihr auftretenden Sätzen:

<LicenseParagraph rdf:ID="GPLv2.0-Section10">

<isLicenseParagraphOf rdf:resource="#GPLv2.0"/>

[...]

</LicenseParagraph>

Im weiteren Verlauf wird sich dieser Text darauf beschränken, einige wichtige

Instanzen der verschiedenen Klassen zu benennen und ihre Relevanz für das

Expertensystem zu erläutern. Instanzen, wie beispielsweise Sätze von Lizenzen

werden nicht einzeln aufgeführt, sondern lediglich die Mitgliedschaft in einer Klasse

erwähnt.

License right

Part of distributed work

·

·

Distribute verbatim copies

Modified part of software

of the program

·

Selfmade part of software

·

Distribute modified copies

·

Unmodified part of software

of the program

·

Software as whole

·

Use the program

·

(...)

·

(...)

License duty

·

add revision mark

Form of distributed work

·

accept license terms

·

Derivative work

License

·

give notice that a other

·

Work as verbatim copy

Condition

work is used

·

Work combines two works

·

make source code available

·

(...)

·

take no license fee

·

(...)

License option

·

Offer warranty protection

Codeform

for a fee

·

Binary

·

Perform the physical act

·

Source

of transferring a copy for a fee

·

(...)

Abbildung 8: Lizenzbedingung mit Klassenbeziehungen und beispielhaft aufgeführten Eigenschaften in

Form von Instanzen.

Links: Anwendungsfall, für den eine Bestimmung gilt.

Rechts: Bestimmung, die bezüglich des Anwendungsfalls zu beachten ist.

55


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Als Eigenschaft der Lizenzen enthält die Klasse Work verschiedene

Software-Programme in Form von Werken, in LicenseParagraph finden sich die einzelnen

Sätze der Lizenzen wieder, LicenseConditionen beinhaltet eine formalisierte Menge von

Lizenzbedingungen, Trademark enthält die Instanz OpenSourceInitiativeApproved, welches

ein Gütesiegel der

Open Source

-Initiative für

Open Source

-Lizenzen verkörpert.

Die Instanzen der Klassen aus Abbildung 8, welche mit der zentralen Klasse

Lizenzbedingung in Verbindung stehen, sind eine genauere Betrachtung wert.

Zunächst sollen Lizenzrechte ausgemacht werden. Ausführliche Regelungen bezüglich

der Weitergabe eines Programms in unveränderter bzw. modifizierter Form sind

typisch für die hier untersuchten

Open Source

-Lizenzen. Manchmal wird auch das

Recht, ein Programm ablaufen zu lassen, näher betrachtet und daher ebenfalls der

Liste der Lizenzrechte hinzugefügt. Insgesamt formulieren die Lizenztexte

hauptsächlich die folgenden 3 Rechte, die je nach Anwendungsfall eine bestimmte

Anzahl an Pflichten und Möglichkeiten nach sich ziehen.

<LicenseRight rdf:ID="useTheProgram" />

<LicenseRight rdf:ID="distributeVerbatimCopiesOfTheProgram" />

<LicenseRight rdf:ID="distributeModifiedCopiesOfTheProgram" />

[...]

Lizenzen enthalten eine Menge von Vorschriften, wie die Pflicht, einen

Änderungsvermerks bei modifizierten Kopien eines Programms zu anzubringen, den

Copyright

-Vermerk zu veröffentlichen, die Liste der Lizenzbedingungen unverändert

zu lassen, dem Lizenznehmer keine über die original Lizenzbestimmungen hinaus

gehenden Pflichten aufzuerlegen, alle abgeleiteten Werke wieder unter der

ursprünglichen Lizenz zu veröffentlichen oder den

Source Code

zur Verfügung zu

stellen. An dieser Stelle soll es bei diesen Beispielen belassen und das Augenmerk noch

auf einige besondere Pflichten gelegt werden, die bei der Analyse der Lizenztexte

aufgefallen sind. Die Ziffer 6a der LGPL besagt, dass alle Pflichten, die für die

veränderte und unveränderte Weitergabe eines Programms gelten, u.a. auch für die

eben genannte Ziffer zu beachten sind. Das würde heißen, dass bei der Formalisierung

der Lizenzbedingungen im hier beschriebenen Kontext alle diese Pflichten noch

einmal hinzugefügt werden müssten. Es soll jedoch an dieser Stelle bei einer

gewöhnlichen Instanz mit dem Namen AttendConditionsForModifiedCopies belassen werden.

56


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Das folgende Kapitel über Regeln wird zeigen, dass sich mithilfe einer solchen Instanz

Regeln erstellen lassen, die dieses Problem automatisch beheben:

<LicenseDuty rdf:ID="doNothingUnlessItsExplicitlyAllowed" />

<LicenseDuty rdf:ID="addRevisionMark" />

<LicenseDuty rdf:ID="publishCopyrightNotice" />

<LicenseDuty rdf:ID="leaveUntouchedLicenseTerms" />

<LicenseDuty rdf:ID="makeSourceCodeAvailable" />

<LicenseDuty rdf:ID="notImposeAnyFurtherRestrictionsToLicenseTerms" />

<LicenseDuty rdf:ID="distributeModifiedCopiesOfTheProgram" />

<LicenseDuty rdf:ID="AttendConditionsForModifiedCopies" />

<LicenseDuty rdf:ID="licenseTheWorkUnderTheTermsOfTheOriginalLicense" />

[...]

Die LPGL definiert als besondere Option die Möglichkeit, jede gegebene Kopie eines

Programms unter der GPL zu lizensieren, sofern alle Bedingungen der

Ursprungslizenz entsprechend angepasst werden. Außerdem erlaubt sie dem

Lizenzgeber unter Umständen, Teile des weiterzugebenden Programms unter selbst

gewählten Bedingungen zu veröffentlichen, sowie Garantie und den physischen

Kopiervorgang gegen Gebühr anzubieten.

<LicenseOption rdf:ID="mayDistributeThatWorkUnderTermsOfYourChoice" />

<LicenseOption rdf:ID="mayOfferWarrantyProtectionForAFee" />

<LicenseOption rdf:ID="mayPerformThePhysicalActOfTransferringACopyForAFee" />

<LicenseOption rdf:ID="maySwitchToGPL" />

[...]

Nun sollen Instanzen, welche die verschiedenen Anwendungsfälle bezüglich der

Lizenzbedingungen verkörpern, dargestellt werden. Hierbei geht es weder um Rechte

noch Möglichkeiten oder Pflichten, zu denen bereits einiges gesagt wurde, sondern um

die Frage unter welchen Umständen Pflichten und Möglichkeiten bezüglich eines

Rechtes gelten. Diese den Anwendungsfall darstellenden Instanzen, finden sich in den

Klassen PartOfDistributedWork, FormOfDistributedWork und CodeForm. Die Instanzen der ersten

Klasse beschreiben den Teil des weiterzugebenden Werkes, bei dem bestimmte

Pflichten und Möglichkeiten zu beachten sind. Aus den Lizenzen geht hervor, dass es

bei der Weitergabe lizenzrechtlich relevante Teile von Werken geben kann, die

unverändert gelassen, verändert oder neu erstellt wurden. Außerdem ist es denkbar,

Bedingungen zu definieren, die für das Werk als Ganzes und damit unabhängig von

den eben beschriebenen Teilwerken gelten.

<PartOfDistributedWork rdf:ID="ModifiedPartOfSoftware" />

<PartOfDistributedWork rdf:ID="SelfMadePartOfSoftware" />

<PartOfDistributedWork rdf:ID="UnmodifiedPartOfSoftware" />

57


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

<PartOfDistributedWork rdf:ID="WorkAsWhole" />

Die Form des Codes wird vor allem dann relevant, wenn ein Programm als

Binary

weitergegeben werden soll. Ein Großteil der hier formalisierten Bedingungen fordert

an dieser Stelle eine Offenlegung des Quellcodes, in einigen Fällen ist dies jedoch nicht

erforderlich.

<CodeForm rdf:ID="Binary" />

<CodeForm rdf:ID="Source" />

Ein wichtiger Ansatzpunkt für die Anwendung der richtigen Lizenzbedingung ist die

Form des weiterzugebenden Werkes. Diese ergibt sich aus der Art und Weise, auf die

ein Programm verändert wurde, oder dem Umstand, dass überhaupt keine

Modifikation vorliegt. Von dem Urspungsprogramm abgeleitete Werke, hier als

DerivativeWork

bezeichnet, ziehen bei GPL und LGPL sehr strenge Pflichten nach

sich, während beispielsweise für in sich unabhängige und eigenständige Werke

überhaupt keine Pflichten zu beachten sind ­ sofern die Programmteile nicht von

irgendeinem Teil des ursprünglichen Programms abgeleitet wurden.

Abbildung 9: Formalisierte Lizenzbedingung aus Ziffer 1 der GPL in

Protégé

.

Links: Lizenz aus der die Bedingung stammt, sowie Ziffer und Satz der Bedingung.

Mitte: Lizenzrecht mit zugehörigen Pflichten und Möglichkeiten (Optionen).

Rechts: Anwendungsfall für den die Bedingung gültig ist.

Eine Definition, was unter den verschiedenen Formen weiterzugebender Werke zu

verstehen ist, finden sich in den Lizenzen selbst. So definiert die LGPL in Ziffer 5 ein

58


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Werk, dass darauf ausgelegt ist, mit einer LGPL-Bibliothek zusammenzuarbeiten,

aber nichts von ihr Abgeleitetes enthält und separat ausgeliefert wird, als ein Werk,

das die Bibliothek nutzt. Unterschiedliche Pflichten ergeben sich in diesem

Zusammenhang schon bei Werken, die Bibliotheken nutzen, durch die Art und Weise

ihrer Verbindung. Ist ein Werk in diesem Zusammenhang mit der Bibliothek gelinkt,

kommt Ziffer 6a zum tragen: ,,Use a suitable shared library mechanism for linking

with the Library." Wird ein solches Werk mit der Bibliothek auf eine andere Art und

Weise kombiniert, entstehen deutlich weitreichendere Pflichten. Auch für den Fall,

dass ein Programm, welches nicht nur darauf ausgelegt ist, Funktionseinheiten einer

Bibilothek zu nutzen, aber mit einer Bibliothek kombiniert wird, kennt die LGPL in

Ziffer 7 gesonderte Pflichten. Insgesamt wurden sieben verschiedene Formen von

weiterzugebenden Werken identifiziert. Unter anderem auch Werke, die unverändert

weitergegeben werden sollen.

<FormOfDistributedWork rdf:ID="DerivativeWork" />

<FormOfDistributedWork rdf:ID="IndependetWorksDeliveredSeparatelyButCanWorkTogether" />

<FormOfDistributedWork rdf:ID="pIndependetWorksDeliveredSeparatelyOneWorkIsMade..." />

<FormOfDistributedWork rdf:ID="WorkAsVerbatimCopy" />

<FormOfDistributedWork rdf:ID="WorkCombinesTwoWorks" />

<FormOfDistributedWork rdf:ID="WorkUsesAOtherWorkAndIsCombined" />

<FormOfDistributedWork rdf:ID="WorkUsesAOtherWorkAndIsLinked" />

Zusammenfassung:

Ziel des Kapitels

· Beschreibung von Instanzen zur Abbildung spezieller

Open Source-Lizenzen in der bereits erstellten

Klassenstruktur.

Vorgehensweise

· Instanzen werden definiert.

· Instanzen werden durch ihrer Klassenmitgliedschaft

deklariert.

Ergebnisse

· Regelmäßig in Lizenztexten auftretender Elemente, die

geeignet sind, den Inhalt eines Lizenztextes zu beschreiben

wurden in formalisierte OWL-Instanzen überführt.

· Lizenzbedingungen, die sich aus Lizenztexten ergeben, wurden

beispielhaft dargestellt.

3.3.3 Vervollständigung der Bedingungen durch Regeln

Das vorangegangene Kapitel hat gezeigt, dass Bedingungen in den Lizenztexten sehr

abstrakt formuliert sein können. Manchmal wird in ihnen ausgedrückt, dass bestimmte

59


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Pflichten, die bereits in einem anderen Zusammenhang formuliert wurden, für einen

weiteren Anwendungsfall erneut gelten. Wer beispielsweise modifizierte Kopien von

GPL-Programmen verbreitet, soll neben den in Ziffer 2 aufgeführten Pflichten auch

die Pflichten, die sich bei der Weitergabe unveränderter Kopien in Ziffer 1 ergeben,

beachten. Nun wäre eine Anwendung, die später Lizenzbedingungen darstellen soll,

für den Benutzer wenig hilfreich, wenn er, genau wie in den Lizenztexten, ständig

Querverweisen folgen müsste, um sich über alle zu beachtenden Pflichten zu

informieren. Hier sollen Regeln Abhilfe schaffen, mit deren Hilfe zu jeder einzelnen

Bedingung eine vollständige Liste aller Pflichten und Möglichkeiten generiert werden

kann. Derartige Regeln können nicht mit OWL erzeugt werden. Es wird eine

Regelsprache, wie SWRL, zu ihrer Integration in die Wissensbasis nötig. Auf diese

Weise können logische Regeln über OWL-Atomen definiert werden. Konkret nutzt

SWRL eine Horn-artige Syntax, mit der sie sich auf OWL-Klassen, -Eigenschaften

und -Instanzen mithilfe von Variablen bezieht. Zur Auswertung der Regeln wird

später ein Regelinterpreter nötig, der im hier dargestellten Fall ein Teil der

Inference Engine

ist. Die Regeln werden auf das schon vorhandene Wissen angewendet

und somit neues Wissen generiert.

Die erste hier vorgestellte Regel greift in dem eben genannten Beispiel von Ziffer 2

der GPL. Allen Bedingungen, die zur GPL V2 gehören und darüber hinaus die

abstrakt kodierte Pflicht AttendConditionsForVerbatimCopies enthalten, sollen ebenfalls die

Möglichkeiten und Pflichten der in Abbildung 9 dargestellten Bedingung für die

Weitergabe unveränderter Kopien erhalten. In dieser speziellen Bedingung mit dem

Namen GPLv2.0-Condition_01 findet sich alles, was bei der Verbreitung unveränderter

Kopien zu beachten ist und aufgrund verschiedener Regelungen im Lizenztext zu den

Ziffern 2 und 3 hinzugefügt werden muss.

hasLicenseCondition(GPLv2.0, ?y)

hasLicenseDuty(?y, AttendConditionsForVerbatimCopies)

hasLicenseDuty(GPLv2.0-Condition_01, ?a)

hasLicenseOption(GPLv2.0-Condition_01, ?b)

hasLicenseDuty(?y, ?a)

hasLicenseOption(?y, ?b)

Eine weitere Regel beschäftigt sich mit Abschnitten der Lizenz, bei denen alle

Bedingungen für die Weitergabe modifizierter Kopien des Programms beachtet

60


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

werden müssen. Hier tritt eine Besonderheit auf, da nicht alle Möglichkeiten und

Pflichten für modifizierte Kopien in einer einzigen Lizenzbedingung kodiert sind.

Vielmehr existieren zwei Bedingungen für zwei verschiedene Anwendungsfälle. Diese

enthalten auf der einen Seite Möglichkeiten und Pflichten, die bei der

Weiterverbreitung für das gesamte Programm zu beachten sind und auf der anderen

Seite eine Pflicht, die nur für den geänderten Teil des Programms relevant ist, nämlich

die Pflicht, Änderungsvermerke anzubringen. Daraus folgt, dass, wenn der Lizenztext

diesbezüglich an anderer Stelle auf diese Pflichten und Möglichkeiten verweist, für

unveränderte und modifizierte Teile des Programms jeweils verschiedene Regeln

angewandt werden müssen. Diese beziehen sich für unveränderte Teile des

Programms auf die Bedingung GPLv2.0-Condition_02 und für geänderte Bereiche auf die

GPLv2.0-Condition_0201:

hasLicenseCondition(GPLv2.0, ?y)

hasLicenseDuty(?y, AttendConditionsForModifiedCopies)

hasLicenseDuty(GPLv2.0-Condition_02, ?a)

hasLicenseOption(GPLv2.0-Condition_02, ?b)

hasLicenseDuty(?y, ?a)

hasLicenseOption(?y, ?b)

hasLicenseCondition(GPLv2.0, ?y)

hasLicenseDuty(?y, AttendConditionsForModifiedCopies-ModifiedPart)

hasLicenseDuty(GPLv2.0-Condition_0201, ?a)

hasLicenseOption(GPLv2.0-Condition_0201, ?b)

hasLicenseDuty(?y, ?a)

hasLicenseOption(?y, ?b)

Abbildung 10: Regel aus den Ziffern 4 und 5 der GPL im

Protégé

SWRL-Editor

61


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Neben Regeln, die einfache Querverweise auflösen, enthalten verschiedene Lizenzen

auch Ziffern und Sätze, die komplett als Regeln definiert werden. Die GPL z.B. fordert

von dem Lizenznehmer in Ziffer 4, keine Handlungen zu vollziehen, die nicht explizit

erlaubt wurden, sofern ein Werk vervielfältigt, verändert oder weiterlizensiert werden

soll und das weitergegebene Werk den Vertrag berührt. Der Absatz regelt, was im

Fall einer Vertragsverletzung geschieht. In diesem Fall verliert der Lizenznehmer

automatisch alle erworbenen Nutzungsrechte aus der Lizenz (Jaeger/Koglin/Kreutzer

2005: 86). Ziffer 5 definiert, auf welche Weise ein Vertragsabschluss zustande kommt.

Durch den Akt der Lizenzierung eines Programms unter der GPL richtet der

Lizenzgeber ein Angebot an jedermann, dessen Annahme Ziffer 5 regelt. Diesem

Punkt zufolge ist der Lizenznehmer zur Annahme der Lizenz verpflichtet, sofern er

die Rechte aus der GPL wahrnehmen möchte (Jaeger/Koglin/Kreutzer 2005: 97). Die

eben genannten Bestimmung ergeben sich für alle Bedingungen des Vertrages, die

Pflichten enthalten. Das einfache Ausführen von Programmen, sowie die Verbreitung

unabhängiger eigenständiger Werke ziehen laut GPL keine Pflichten nach sich. In

diesen Fällen ist der Lizenznehmer weder zur Annahme noch zur Erfüllung des

Vertrages verpflichtet. Die folgende Regel fügt die beiden Pflichten aus Ziffer 4 und 5

allen Bedingungen hinzu, die bereits Pflichten enthalten:

p2:hasLicenseCondition(p2:GPLv2.0, ?y)

p2:hasLicenseDuty(?y, ?z)

p2:hasLicenseDuty(?y, p2:doNothingUnlessItsExplicitlyAllowed)

p2:emergesOfLicenseParagraph(?y, p2:GPLv2.0-Section04)

p2:hasLicenseDuty(?y, p2:acceptLicenseTerms)

p2:emergesOfLicenseParagraph(?y, p2:GPLv2.0-Section05)

Wer GPL-Programme vertreibt, darf seinen Abnehmern keine über die Pflichten der

GPL hinausgehenden Beschränkungen auferlegen, es sei denn, die entsprechende

Bedingung erlaubt Abweichungen ausdrücklich, wie beispielsweise in Ziffer 1 Satz 2.

Hier wird dem Lizenzgeber optional gegen Gebühr gewährt, eine Garantie für das

Programm anzubieten Daraus folgt, dass sich für Ziffer 11 und 12 abweichende

Haftungs- und Gewährleistungsbestimmungen vereinbaren lassen (Jaeger/Metzger

2006: 29). Diese Regel ergibt sich aus Ziffer 6. Sie kann nur für Bedingungen gültig

sein, die eine Weiterverbreitung der Original-Lizenzbestimmungen fordern und nicht

explizit Abweichungen erlauben. Eine solche explizit erlaubte Abweichung stellt die

62


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Möglichkeit der Weiterverbreitung bestimmter Programmteile unter selbstgewählten

Bestimmungen dar, der Umstand, dass überhaupt keine Pflichten zu beachten sind

oder die Möglichkeit, abweichende Garantiebestimmungen einzuräumen. Aufgrund

der Pflicht in Ziffer 1, die Lizenzbestimmungen mit zuliefern und der Regeln für

unveränderte sowie modifizierte Kopien, die dafür sogen, dass jede Bestimmung, die

keine Abweichungen von den Lizenzbestimmungen zulässt, automatisch die Pflicht

DeliverOriginalLicenseTerms erhält, kann eine Regel definiert werden, die in diesem Fall

eine neue Pflicht zu jeder betroffenen Bedingung hinzufügt, die Pflicht, dem

Lizenznehmer keine über die GPL hinausgehenden Beschränkungen aufzuerlegen.

Natürlich wird auch die entsprechende Ziffer 6 der Lizenz hinzugefügt:

p2:hasLicenseCondition(GPLv2.0, ?y)

p2:hasLicenseDuty(?y, deliverOriginallyLicenseTerms)

p2:hasLicenseDuty(?y, notImposeAnyFurtherRestrictionsToLicenseTerms)

p2:emergesOfLicenseParagraph(?y, GPLv2.0-Section06)

Die fünf hier vorgestellten Regeln gelten in leicht angepasster Form auch für die

LGPL 2.1. Etwas anders gestaltet sich bei der LGPL eine Bedingung, welche sich aus

Ziffer 3 ergibt. Diese besagt, dass sich der Anwender eines Programms auch für die

Verwendung der GPL für eine gegebene Kopie des LGPL-Programms entscheiden

kann: ,,You may opt to apply the terms of the ordinary GNU General Public License

instead of this License to a given copy of the Library." Für die Bedingungen der

LGPL bedeutet dies, dass jede Bedingung, die sich in irgendeiner Weise auf ein

weiterzugebendes Werk bezieht, automatisch die Option SwitchToGPL enthalten muss.

Der zugehörige Satz der Lizenz muss ebenfalls kopiert werden:

hasLicenseCondition(LGPLv2.1, ?y)

isValidToFormOfDistributedWork(?y, ?z)

hasLicenseOption(?y, maySwitchToGPL)

emergesOfLicenseParagraph(?y, p2:LGPLv2.1-Section03)

Es zeigt sich, dass man sich bei der Formalisierung einiger Lizenzbedingungen mit

Hilfe einer Regelsprache viel Arbeit ersparen kann, da Lizenzen selbst Regeln

enthalten, die sie über schon bestehende Bestimmungen definieren.

63


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

Zusammenfassung:

Ziel des Kapitels

· Ergänzung der Ontologie mit Lizenzbedingungen, die in Form

von Regeln in den Lizenztexten auftauchen.

Vorgehensweise

· Formalisierung verschiedener Lizenzbedingungen in SWRL, indem

logische Regeln über OWL-Atomen definiert werden, die sich

auf Klassen, Properties und Instanzen mithilfe von Variablen

beziehen.

Ergebnisse

· Es wurden Möglichkeiten gezeigt, wie sich Teile von

Lizenztexten, die als Regeln definiert wurden und sich daher

nur mit großem Aufwand in OWL formalisieren lassen, in die

Wissensbasis übertragen werden können.

· Verschiedene Lizenzbedingungen, wie die Regelung der LGPL,

dass ein Programm bei der Weitergabe bezüglich verschiedener

Anwendungsfälle auch unter der GPL stehen darf, wurden durch

die Möglichkeiten von SWRL formalisiert.

3.3.4 Wissenszuwachs durch definierte Klassen

Hat eine Instanz bestimmte Eigenschaften, kann es infolge eines

Reasoning

-Prozesses

als Mitglied einer neuen Klasse auftauchen. Hier wird über die Beschreibungslogik aus

vorhandenem Wissen neues Wissen gewonnen (Sack 2006: 20). Dazu müssen

Eigenschaften als notwendige und hinreichende Bedingungen für ein Konzept

formuliert werden. Man spricht in diesem Zusammenhang von definierten Klassen.

Definierte Klassen sind ein mächtiges Mittel, um einzelne Ontologien

zusammenzusetzen, sie eigenen sich aber auch, um Instanzen aufgrund ihrer

Eigenschaften zu klassifizieren (Smith/Welty/McGuinness 2004: Ontology Mapping).

Für eine Anwendung bezüglich der OSS-Lizenzontologie sind möglicherweise

Informationen zu der Frage interessant, warum die Lizenz als OSS-Lizenz gilt. Auch

Hinweise über die Stärke des

Copyleft

-Effekts und auf welche Weise es zustande

kommt, könnten von Interesse sein. In diesem Kapitel werden Möglichkeiten

vorgestellt, zu einer Lizenz das zugehörige Lizenzmodell, sowie ihren Charakter für

eine spätere Kompatibilitätsuntersuchung zu bestimmen. Zu diesem Zweck müssen die

bereits gespeicherten Informationen aufbereitet, d.h neue definierte Klassen

geschrieben werden.

Die erste hier aufgeworfene Frage lässt sich relativ einfach beantworten. Zwar soll

kein Versuch unternommen werden, Lizenzen aufgrund ihrer Bedingungen als

Open Source

-Lizenzen zu klassifizieren, wie es beispielsweise die

Open Source Initiative

in

64


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

einer Art Zertifizierungsverfahren tut, allerdings kann der Umstand, dass

Open Source

-Lizenzen das Warenzeichen

Open Source Initiative Approved

der

Open Source Initiative

tragen, als Hinweis auf ihre Zugehörigkeit zur Klasse der

Open Source

-Lizenzen verstanden werden. Dabei gilt: Alles was mit dem Warenzeichen

Open Source Initiative Approved

ausgestattet ist und eine Lizenz ist, ist darüber hinaus

eine

Open Source

-Lizenz.

<owl:Class rdf:about="#OSSLicense">

<owl:equivalentClass>

<owl:Class>

<owl:Restriction>

<owl:onProperty>

<owl:ObjectProperty rdf:about="#isTrademarked"/>

</owl:onProperty>

<owl:hasValue rdf:resource="#OpenSourceInitiativeApproved"/>

</owl:Restriction>

<owl:Class rdf:about="#License"/>

</owl:Class>

</owl:equivalentClass>

</owl:Class>

Weitaus schwieriger gestaltet sich die Bestimmung des

Copyleft

-Effekts der Lizenz, da

in diesem Zusammenhang auf keine bereits vorgenommene Klassifizierung

zurückgegriffen werden soll. Der

Copyleft

-Effekt und die Lizenzbedingungen, die zu

seiner Ausprägung führen, sollen innerhalb einer Anwendung, die dieses Wissen

nutzt, Rückschlüsse auf die Kompatibilität zwischen

Open Source

-Lizenzen liefern. Zu

Beginn muss geklärt werden, ob eine Bedingung für die Untersuchung des

Copyleft

-Effekts überhaupt relevant ist. Hier ist der Anwendungsfall dahingehend zu

prüfen, ob er sich in irgendeiner Form auf ein lizenzrechtlich relevantes kombiniertes

Werk bezieht. Dabei sollen Lizenzbedingungen ausgeschlossen werden, die sich mit

Aussagen zu unabhängigen, in sich eigenständigen Werken befassen und für die Frage

nicht entscheidend sind. Die Weitergabe unveränderter Kopien von Programmen oder

Programmteilen soll ebenfalls nicht betrachtet werden, da sich das

Copyleft

mit der

Weitergabe von Werken auseinander setzt, die darüber hinaus verändert wurden. Zwei

Zwischenschritte werden nötig, bevor eine Lizenzbedingung der Untersuchung

zugänglich gemacht werden kann. Zunächst müssen aus der Menge aller Formen von

weiterzugebenden Werken die Elemente gefiltert werden, die lizenzrechtlich relevant

werden können. Zu diesem Zweck wird die definierte Klasse

FormOfCombinedDistributedWork angelegt, da es sich bei den relevanten Werken um

65


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

kombinierte weiterzugebende Werke handelt. In einem zweiten Schritt sind Teile von

den weiterzugebenden Werken dahingehend zu analysieren, ob sie verändert wurden.

Ist dies der Fall, sollen sie im Ergebnis Elemente der definierten Klasse

PartOfDistributedWorkTouched sein:

<owl:Class rdf:about="#FormOfCombinedDistributedWork">

<owl:equivalentClass>

<owl:Class>

<owl:Class>

<owl:oneOf rdf:parseType="Collection">

<FormOfDistributedWork rdf:about="#DerivativeWork"/>

<FormOfDistributedWork rdf:about="#WorkCombinesTwoWorks"/>

<FormOfDistributedWork rdf:about="#WorkUsesAOtherWorkAndIsCombined"/>

<FormOfDistributedWork rdf:about="#WorkUsesAOtherWorkAndIsLinked"/>

</owl:oneOf>

</owl:Class>

<owl:Class rdf:about="#FormOfDistributedWork"/>

</owl:Class>

</owl:equivalentClass>

</owl:Class>

<owl:Class rdf:about="#PartOfDistributedWorkTouched">

<owl:equivalentClass>

<owl:Class>

<owl:Class>

<owl:oneOf rdf:parseType="Collection">

<PartOfDistributedWork rdf:about="#SelfMadePartOfSoftware"/>

<PartOfDistributedWork rdf:about="#ModifiedPartOfSoftware"/>

<PartOfDistributedWork rdf:about="#SoftwareAsWhole"/>

</owl:oneOf>

</owl:Class>

<owl:Class rdf:about="#PartOfDistributedWork"/>

</owl:Class>

</owl:equivalentClass>

</owl:Class>

Nachdem diese beiden Klassen erstellt wurden, kann eine weitere Klasse definiert

werden. In der Klasse sollen alle Lizenzbedingungen auftauchen, die für eine

Untersuchung des

Copyleft

-Effekts relevant sind. Es handelt sich dabei um eine

Unterklasse von LicenseCondition. Ihre Elemente stellen Instanzen dar, bei denen

mindestens eine isValidToFormOfDistributedWork-

Property

auf eine Instanz der Klasse

FormOfCombinedDistributedWork

verweist

und

ebenfalls

eine

isValidToPartOfDistributedWork-

Property

auf

eine

Instanz

der Klasse

PartOfDistributedWorkTouched. Auf diese Weise wird sichergestellt, dass alle Elemente

dieser Klasse für den

Copyleft

-Effekt der Lizenz relevant sind:

<owl:Class rdf:about="#OSSLicenseConditionRelevantTo

Copyleft

Character">

[...]

<owl:Restriction>

<owl:someValuesFrom>

<owl:Class rdf:ID="FormOfCombinedDistributedWork"/>

</owl:someValuesFrom>

66


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

<owl:onProperty>

<owl:ObjectProperty rdf:about="#isValidToFormOfDistributedWork"/>

</owl:onProperty>

</owl:Restriction>

<owl:Restriction>

<owl:someValuesFrom>

<owl:Class rdf:ID="PartOfDistributedWorkTouched"/>

</owl:someValuesFrom>

<owl:onProperty>

<owl:ObjectProperty rdf:about="#isValidToPartOfDistributedWork"/>

</owl:onProperty>

</owl:Restriction>

[...]

</owl:Class>

Die für die Analyse entscheidenden Lizenzbedingungen können zu diesem Zeitpunkt

identifiziert werden, da sie Mitglieder der eben definierten Klasse sind. Der nächste

Schritt wird diese Instanzen erneut untersuchen und in drei Gruppen aufteilen, die

wiederum Unterklassen von

OSSLicenseConditionRelevantTo

Copyleft

Character

sind:

Lizenzbedingungen, die für einen starken, einen schwachen oder gar keinen

Copyleft-Effekt sprechen.

Hinter Lizenzen mit starkem

Copyleft

-Effekt, insbesondere der GPL, steht das

Konzept, dass jede Weiterentwicklung und auch jede Form eines abgeleiteten

kombinierten Werkes mit all seinen Bestandteilen wieder unter der Ursprungslizenz

stehen muss (Jaeger/Koglin/Kreutzer 2005: 20). Dies trifft nur für den Fall zu, dass

die Software auch weitergeben werden soll. Wenn eine Lizenz diesen

Copyleft

-Effekt

hat, muss eine jede Bedingung zunächst einmal in der Klasse der Bedingungen

auftauchen, die für die Untersuchung des

Copyleft

-Effekts relevant ist. Als weiteres

Kriterium muss jede Lizenzbedingung die Pflicht enthalten, ein kombiniertes Werk

wieder unter den ursprünglichen Lizenzbedingungen zu veröffentlichen, wie es die

Ziffer 2b der GPL fordert und damit den entscheidenden Hinweis auf den starken

Copyleft-Effekt liefert (Jaeger/Koglin/Kreutzer 2005: 59). Dieser Rückschluss kann

aufgrund des Auftretens der Pflicht, abgeleitete Werke nur unter den

Original-Lizenzbestimmungen zu veröffentlichen, dargestellt durch die Instanz

licenseTheWorkUnderTheTermsOfTheOriginalLicense, in der Lizenzbedingung erfolgen.

<owl:Class rdf:ID="Strict

Copyleft

Condition">

<owl:equivalentClass>

<owl:Class>

<owl:intersectionOf rdf:parseType="Collection">

<owl:Class rdf:about="#OSSLicenseConditionRelevantTo

Copyleft

Character"/>

<owl:Restriction>

<owl:onProperty>

<owl:ObjectProperty rdf:about="#hasLicenseDuty"/>

67


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

</owl:onProperty>

<owl:hasValue rdf:resource="#licenseTheWorkUnderTheTermsOfTheOriginalLicense"/>

</owl:Restriction>

</owl:intersectionOf>

</owl:Class>

</owl:equivalentClass>

</owl:Class>

Lizenzbedingungen, die für einen schwachen

Copyleft

-Effekt sprechen, geben dem

Lizenzgeber die Möglichkeit, ein weiterzugebendes Programm oder einen Teil davon

unter von der Ursprungslizenz abweichende Bedingungen zu stellen (Abbildung 11).

Dieses Prinzip kommt z.B. in der LGPL zum Ausdruck. Ziel der Gestalter solcher

Lizenzen war es, mit einer beschränkten

Copyleft

-Clausel eine einfachere Kombination

mit Softwaremodulen unter abweichenden Lizenzbedingungen, insbesondere

proprietären Komponenten zu ermöglichen (Jaeger/Metzger 2006: 51). Dabei ist die

Anwendung eigener Lizenzbedingungen erlaubt, sofern eine festgelegte Liste von

Pflichten erfüllt wird.

Abbildung 11: Definierte Klasse in

Protégé

für eine Lizenzbedingung, die für einen schwachen

Copyleft

-Effekt spricht.

Mit diesem Prinzip geht diese Art von Lizenzen nicht soweit, eine Weiterverbreitung

abgeleiteter Werke nur unter den Original-Bestimmungen zu erlauben, stellt aber

68


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

trotzdem einige Forderungen an die neuen Bedingungen. Es müssen also Pflichten

existieren, unter deren Beachtung der Lizenzgeber bestimmte Programmteile unter

eigenen Bedingungen veröffentlichen darf, da sonst das

Copyleft

völlig fehlen würde.

Für die definierte Klasse wird hier festgelegt, dass jede Lizenzbedingung aufgrund

ihres Anwendungsfalls für die Analyse des

Copyleft

-Effekts relevant sein muss, darüber

hinaus die Möglichkeit, etwas unter eigenen Bedingungen zu veröffentlichen, gegeben

sein muss und das dieser Möglichkeit mindestens eine Pflicht folgt.

Eine OSS-Lizenz ohne

Copyleft

-Effekt erlaubt dem Lizenzgeber ebenfalls die

Lizenzierung von abgeleiteten Programmen oder Programmteilen unter von der

Originallizenz abweichenden Bedingungen. Im Gegensatz zu den Lizenzen mit

schwachem

Copyleft-

Effekt fordert sie dafür aber keine Gegenleistung

(Jaeger/Metzger 2006: 61). Es ergeben sich also keine Pflichten in den

Lizenzbedingungen. Die definierte Klasse gestaltet sich genauso, wie die in

Abbildung 12 gezeigte, mit dem Unterschied, dass die Forderung nach mindestens

einer Lizenzpflicht fehlt.

Abbildung 12: Lizenz mit schwachem

Copyleft

-Effekt als definierte Klasse

Es sollen nun drei definierte Klassen von OSS-Lizenzen kreiert werden. Die erste wird

alle Lizenzen aufnehmen, die mindestens eine Bedingung mit starkem

Copyleft

-Effekt

enthalten, die zweite alle Lizenzen mit mindestens einer Bedingung, die für einen

schwachen

Copyleft

-Effekt spricht, der dritten gehören alle Lizenzen mit wenigstens

69


Ein Expertensystem für OSS-Lizenzen

3.3 Modellierung der Wissensbasis

einer Bedingungen ohne

Copyleft

-Effekt an.

Die Stärke des hier definierten Systems liegt nicht nur darin, dass es eine spätere

Anwendung in die Lage versetzt, eine Lizenz zu klassifizieren, sie kann darüber hinaus

alle relevanten Bedingungen, die zu diesem Ergebnis geführt haben, filtern und

anzeigen. Da sich alle Bedingungen auf Textstellen ihrer zugehörigen Lizenzen

beziehen, können darüber hinaus alle wichtigen Ziffern und Sätze der Lizenz gefunden

werden, die letztlich zu der formalisierten Lizenzbedingungen geführt haben. Diese

Fähigkeit wird vor allem für die Weiterentwicklung und Verbesserung des

Gesamtsystems interessant.

Zusammenfassung:

Ziel des Kapitels

· Neues Lizenzwissens soll durch definierte Klassen gewonnen

werden.

Vorgehensweise

· Erstellung von Klassen mithilfe von Bescheibungslogik, in

denen Instanzen aufgrund ihrer Eigenschaften auftauchen

können, weil sie die dazu erforderlichen notwendigen und

hinreichenden Bedingungen erfüllen.

Ergebnisse

· Es konnten Klassen erstellt werden, in denen verschiedene

Instanzen infolge eines Reasoning-Prozesses auftauchen.

· Neues Wissen über Lizenzen und Lizenzbedingungen wurde

generiert, so dass sich der Copyleft-Effekt einer Lizenz

aufgrund von Eigenschaften diverser Lizenzbedingung bestimmen

lässt.

70


Validierung der Formalisierung

4 Validierung der Formalisierung

4 Validierung der Formalisierung

Um das formalisierte Lizenzwissen in der Wissensbasis einer Prüfung zu unterziehen,

soll in einem kurzen Testszenario die Charakterisierung von OSS-Lizenzen

vorgenommen werden. Ziel ist die Bestimmung des

Copyleft

-Effekts der drei im System

vorhandenen Lizenzen. Dieser wird unterschieden in starkes

Copyleft

­ die Lizenz lässt

keine kombinierten Werke unter selbstgewählten Bestimmungen zu, die verändert und

weitergegeben werden sollen, schwaches

Copyleft

­ die Lizenz lässt weitergegebene

Werke unter selbstgewählten Lizenzbestimmungen mit Einschränkungen zu und kein

Copyleft

­ die Lizenz lässt weitergegebene Werke unter selbst gewählten

Lizenzbestimmungen ohne Einschränkungen zu.

Untersuchungsgegenstand ist also der Lizenzcharakter, das Ziel des Tests seine

Bestimmung. Für den Testlauf wird die auf http://www.qiq.de zur Verfügung

gestellte Wissensbasis in Verbindung mit folgendem Testsystem genutzt.

4.1 Verwendetes System

Für den Test wird ein PC mit einer Pentium 4 CPU und 1,6 GHz Taktfrequenz

herangezogen. Der Rechner verfügt über 1 GB Arbeitsspeicher.

Softwareseitig wird das JAVA

Runtime Environment

1.6 für den Betrieb der folgenden

Programme verwendet:

Protégé

3.4 bildet das

User Interface

und den Ontologie-Editor.

Als OWL DL

Reasoner

ist

Pellet

1.5.1 in das

Protégé

-

Framework

integriert. Zusätzlich

wird kommt die

Jess Rule Engine

7.1 zum Einsatz.

4.2 Ergebnisse des Regel- und
Reasoning-Prozesses

Im ersten Schritt wurden die in der Wissensbasis vorhanden Regeln angewendet. Zu

diesem Zweck wurde der komplette OWL-Code einschließlich der vorhandenen

Regeln zur

Rule Engine

gesendet und die Ergebnisse wieder in die Ontologie

zurückgeschrieben. Dieser Vorgang dauerte weniger als eine Sekunde und liefert 545

gefolgerte Axiome. In einem ähnlichen Verfahren wurde mithilfe von

Pellet

ein

Reasoning

durchgeführt. Die Ergebnisse wurden ebenfalls in die Ontologie

71


Validierung der Formalisierung

4.2 Ergebnisse des Regel- und Reasoning-Prozesses

zurückgeschrieben und waren dank der zuvor angelegten definierten Klassen in

Protégé

für den Betrachter sichtbar. Der komplette Prozesse dauerte knapp eine

Minute und lieferte die folgenden Ergebnisse:

26 Lizenzbedingungen wurden identifiziert, die für die Analyse des

Copyleft

-Effekts

bedeutsam erscheinen und zwar weil sie sich einerseits auf ein kombiniertes Werk

beziehen und andererseits auf den Teil eines Werkes, was weitergegeben werden soll

und darüber hinaus verändert wurde. Von diesen 26 Bedingungen sprechen sechs für

eine Lizenz ohne

Copyleft

-Effekt, zwölf für einen Lizenz mit strengem

Copyleft

-Effekt

und acht für eine Lizenz mit schwachem

Copyleft

-Effekt. Die sechs Bedingungen, die

für keinen

Copyleft

-Effekt sprechen, enthalten allesamt einen Passus, der die

Weitergabe veränderter Kopien der Software unter selbstgewählten Bestimmungen

erlaubt, bzw. geht geht dieses Ansinnen aus dem Lizenztext hervor. Zwölf der

relevante Bedingungen sprechen für einen starken

Copyleft

-Effekt, weil sie nur

Bestimmungen enthalten, die eine Weitergabe kombinierter Teile unter den original

Lizenzbestimmungen vorschreibt. Dies mag nach den ersten Blick auf die Lizenztexte

anders erscheinen, da aber die formalisierten Lizenzbedingungen so aufgebaut sind,

dass sie alle Querverweise auf andere Ziffern und Sätze im Lizenztext auflösen, führt

dies dazu, dass beispielsweise die GPL bei allen für den

Copyleft

-Effekt relevanten

Bedingungen eine Weitergabe unter den Original-Lizenzbestimmungen vorschreibt.

Schließlich ergab der Test acht relevante Bedingungen, die für einen schwachen

Copyleft-

Effekt sprechen, weil sie die Option, die Software unter selbstgewählten

Lizenzbestimmungen zu verbreiten, enthalten, im Gegensatz zu den Lizenzen ohne

Copyleft-

Effekt, diesbezüglich aber gesonderte Pflichten definieren. Diese gehen

allerdings nicht soweit, dass nur die Original-Lizenzbestimmungen verwendet werden

können.

Im Ergebnis wurde eine Lizenz der Gruppe mit Lizenzen ohne

Copyleft

-Effekt

zugeordnet. Dabei handelte es sich um die BSD-Lizenz. Eine Lizenz tauchte in der

Gruppe Lizenzen mit schwachem

Copyleft

-Effekt auf, die LGPL (Abbildung 13). Bei

Lizenzen mit starkem

Copyleft

-Effekt war das Ergebnis nicht eindeutig. Die GPL wie

auch die LGPL fanden sich in dieser Gruppe wieder. Der Grund dieser Klassifizierung

ist darin zu suchen, dass die LGPL sowohl Merkmale einer Lizenz mit starkem

72


Validierung der Formalisierung

4.2 Ergebnisse des Regel- und Reasoning-Prozesses

Copyleft

-Effect aufweist, andere Teile der Lizenz aber für einen schwachen

Copyleft

-Effekt sprechen.

Abbildung 13: Gefolgerte Instanzen nach Beendigung des Testlaufts

4.3 Bewertung der Ergebnisse

Für die Anwendungsentwicklung ist das zweideutige Ergebnis bei der Klassifizierung

von Lizenzen mit starkem

Copyleft

-Effekt weniger dramatisch, da eine nachgelagerte

Bedingung alle Lizenzen, die beide Charaktermerkmale aufweisen, automatisch zu

Lizenzen mit schwachem

Copyleft

-Effekt erklären könnte. Vor allem aber spricht das

Ergebnis für die korrekte Funktionsweise des Systems, da die LGPL sich zeitweise

tatsächlich wie eine Lizenz mit starkem

Copyleft

-Effekt verhält.

Das System kommt damit zu den gleichen Schlüssen, die auch in der gängigen

Fachliteratur gezogen werden. Der Test kann als Erfolg betrachtet werden. Der

Formalisierungsansatz hat sich damit zumindest im Rahmen der drei hier

formalisierten Lizenzen und bezüglich der Ausgangsfrage nach dem

Copyleft

-Effekt als

brauchbar erwiesen.

73


Die Lizenzkompatibilitätssuche

5 Die Lizenzkompatibilitätssuche

5 Die Lizenzkompatibilitätssuche

Mit der bereits vorhandenen und getesteten Wissensbasis ist das System zwar in der

Lage, Schlüsse zu ziehen, es existiert jedoch noch keine Anwendung, die daraus

hervorgehende Informationen nutzt. Daher wird in diesem Abschnitt eine

Beispielanwendung in Form einer Lizenzkompatibilitätssuche vorgestellt. Diese stellt

eine

Erweiterung

der

Softwaresuche

einer

kollaborativen

Open Source

-Entwicklungsplattform und damit einen neuen Teil einer bestehenden

Anwendung dar. Das Expertensystem soll in diesem Zusammenhang Informationen

zu den Lizenzen über Links im Suchergebnis der Softwaresuche bereitstellen. Diese

Informationen können z.B. die Klassifikation von Lizenzen betreffen. Das System soll

aber auch Empfehlungen geben, auf welche Weise ein Softwareentwickler eigens

erstellte Entwicklungen mit bestehender Software kombinieren kann. Realisiert wird

dies durch eine JAVA-Anwendung, die bestimmte Klassen von KAON2 für das

Reasoning

und verschiedene Abfragen nutzt.

Dabei spielt die Abfrage der definierten Klassen nach dem

Reasoning

-Prozess eine

wichtige Rolle. Diese Klassen wurden weiter oben mithilfe von Beschreibungslogik

erstellt und können innerhalb der Anwendung für alle im System formalisierten

Lizenzen zur Wissensgewinnung herangezogen werden.

Im weiteren Verlauf wird definiert, was genau untersucht werden soll, also der

Untersuchungsgegenstand exakt bestimmt. Es folgt eine Beschreibung des zu

entwickelnden Systems. Dazu wird das zu Beginn des Konzeptes beschriebene

Expertensystem in eine Anwendung integriert. Zunächst erfolgt eine grobe

Darstellung mit Hilfe des

Domain Models

. Es werden Systeme Komponenten und

Datenflüsse gezeigt. Anschließend werden die

Use Case

s, die eine Systemsicht aus dem

Blickwinkel des Anwenders zeigen, erstellt. Die folgende Spezifikation definiert die

nichtfunktionalen Anforderungen an das System und legt die Grenzen des Entwurfes

fest.

5.1 Untersuchungsgegenstand

Gegenstand der Untersuchung sind zum einen Informationen über

Open Source

-Lizenzen, die Rückschlüsse auf Kompatibilität zwischen verschiedenen

74


Die Lizenzkompatibilitätssuche

5.1 Untersuchungsgegenstand

Lizenzmodellen zulassen. Dazu wird eine Lizenz bzw. der darin enthaltene Text unter

Zuhilfenahme des Expertensystems analysiert. Ergebnis der Betrachtung soll zum

einen der

Copyleft-

Effekt der Lizenz sein und zum anderen eine Aussage über die

Kombinationsmöglichkeiten mit Softwarebestandteilen unter anderen Lizenzen. Dieses

Ergebnis wird im Rahmen einer erweiterten Softwaresuche als Suchergebnis

dargestellt. Im Gegensatz zu einer herkömmlichen Softwaresuche im Bereich

kollaborativer

Open Source

-Entwicklungsplattformen werden daher nicht nur die

eingegebenen Stichworte für das Suchergebnis relevant, sondern auch die vom

Entwickler gewünschte Ziellizenz. Aufgabe des Expertensystems wird es sein, zu

dieser Ziellizenz andere kompatible Lizenzen zu finden und diese bei der Suche nach

OSS zu berücksichtigen.

5.2 Domain Model

Das

Domain Model

zeigt eine grobe Struktur der Lizenzkompatibilitätssuche und wird

die Objekte der Anwendung zueinander in Beziehung setzten. Diese Objekte sind

Akteure, Komponenten, Systeme und die zugehörigen Daten, die nun identifiziert

werden. Ziel ist es, die Objekte und ihre Interaktion zu beschreiben und ein grafisches

Modell auf Grundlage der Beschreibung zu entwerfen. Entscheidend ist vor allem der

Informationsfluss. Informationsspeicher wie

Forge Database

und

License Knowledge Base

sowie Informationen, die übertragen werden, sind in Abbildung 14 grün dargestellt.

Der

Knowledge Expert

ist für die Erstellung und Wartung der

License Knowledge Base

verantwortlich. Er nimmt die Einträge in der Ontologie vor, indem er Klassen und

Instanzen erstellt, ihnen Eigenschaften zuordnet, sie in Beziehung zueinander setzt

und Regeln erstellt. Aufgabe des

Admins

ist es, die Daten der

License Knowledge Base

aktuell zu halten. Er ist insbesondere für die ordnungsgemäße Ausführung von

Reasoning

-Prozessen und die Anwendung der innerhalb der Wissensbasis festgelegten

Regeln zuständig. Dies wird bei jeder Veränderung der

License Knowledge Base

notwendig. Damit versetzt der Systemverwalter die Wissensbasis in die Bereitschaft,

Anfragen entgegen zu nehmen.

75


Die Lizenzkompatibilitätssuche

5.2 Domain Model

User

OUT:

OUT:

Search result

License overview

IN:

Keywords

IN:

Traget license

Selected search result

User Interface

Search Engine

License

OSS Compatibility Search

Information

Search

OUT:

OUT:

OUT:

OUT:

Set of OSS

Set of licenses

Set of

Set of license

compatible to

available

informations

target license

licenses

IN:

IN:

Target License

License

IN:

Compatible

license

IN:

Keywords

License Expert System

Inference Engine

Forge Database

Admin

Disjunctive

OS-Software

Ontology

Theorem

Datalog

Clausification

Prover

Engine

OSS 1
OSS 2
OSS 2

TBox axioms

ABox assertions

License Knowledge Base

Knowledge

Expert

Ontology (OWL)

Rules (SWRL)

Individuals

Rule 1

Classes

Rule 2

Properties

Rule 3

Abbildung 14: Lizenzkompatibilitätssuche

76


Die Lizenzkompatibilitätssuche

5.2 Domain Model

Der

User

ist Nutzer der Lizenzkompatibilitätssuche. Er kann Softwaresuche und

Kompatibilitätscheck mithilfe der

Search

Engine

über das

User Interface

durchführen

oder Informationen über Lizenzen bezüglich des Suchergebnisses abfragen.

Im Fall der Softwaresuche soll nun der Anwendungsfall beschrieben werden, bei dem

der

User

die Suche nach Software für eine gewünschte Ziellizenz durchführt. Im

diesem Fall nutzt der User die Komponente

OSS Compatibility Search

. Er wählt aus

einer vom

License Expert System

zur Verfügung gestellten Liste (

Set of available licenses

)

seine gewünschte Ziellizenz aus und startet nach der Eingabe seiner Suchbegriffe eine

Anfrage. Die Suchfunktion übergibt in Form der

Target license

dem

License Expert

System

die vom

User

gewünschte Ziellizenz. Jetzt wird nach kompatiblen Lizenzen

gesucht. Dazu findet ein Vergleich statt, bei dem einzelne Lizenzen anhand ihres

Copyleft

-Effekts auf Kompatibilität zur Ziellizenz geprüft werden. Dies erfolgt durch

einen Anfrage an die Wissensbasis. Nach erfolgter Prüfung gibt das

License Expert

System

eine Liste kompatibler Lizenzen (

Set of licenses compatible to target licenses

) an die

Search

Engine

zurück, welche diese als einschränkendes Kriterium für die Suche nach

OSS nutzt. Die Suche nach OSS erfolgt im letzten Schritt, indem die kompatiblen

Lizenzen mit den

Keywords

als Suchkriterien für die Abfrage der

Forge Database

genutzt werden. Ergebnis ist das

Search result

, eine Menge von Programmen mit eine

Verweis auf die URI, sowie die zugehörige Lizenz.

An dieser Stelle kann der User erneut eine Auswahl treffen, indem er einen Treffer der

Suche für die weitere Verwendung festlegt. Anschließend bietet die Anwendung

mithilfe der Komponente

License Information Search

den Nutzer die Möglichkeit,

genaueres über die Lizenzbedingungen und die Gründe für eine mögliche

Kompatibilität zur

Target license

zu erfahren. Dieser Überblick wird durch das

License

Expert System

erstellt und über die Suchmaschine als

License overview

an den

User

zurück gegeben.

Zusammenfassung:

System

Beschreibung

Search Engine

Suchmaschine, die sowohl zur Ziellizenz kompatible Software, wie

auch Informationen zu den Lizenzen suchen soll.

License Expert System

Expertensystem für die Lizenzanalyse.

77


Die Lizenzkompatibilitätssuche

5.2 Domain Model

System

Beschreibung

Inference Engine

Wendet die Regeln an und führt ein Reasoning durch.

Akteur

Beschreibung

Knowledge Expert

Ist für die Erstellung und Veränderung der Wissensbasis zuständig.

User

Anwender der Suche.

Admin

Verwaltet die Wissensbasis, startet Reasoning-Prozesse und den

Regelinterpretierer

Komponente

Beschreibung

OSS Compatibility Search

Diese Komponente ermöglicht die Suche von OSS und bietet die

Möglichkeit, die Software-Suche bezüglich der gewünschten

Ziellizenz einzuschränken.

License Information Search

Sucht nach Informationen zu einer Lizenz.

Ontology Clausification Component

Realisiert die Übersetzung einer SHIQ Knowledge Base in

Prädikatenlogik erster Ordnung.

Theorem Prover

Implementiert den den Superposition Calculus.

Disjunctive Datalog Engine

Beantwortet Anfragen.

Informationsset

Beschreibung

License Knowledge Base

Enthält Wissen über Lizenzen und Regeln für den

Kompatibilitäts-Check.

Ontologie

Lizenzontologie auf OWL-Basis.

Rules

Regelsammlung, mit denen sich Schlüsse aufgrund der in der

Ontologie festgehaltenen Zusammenhänge ziehen lassen.

Set of available licenses

Alle Lizenzen, die in der Wissensbasis gespeichert wurden.

Keywords

Stichworte, die der Benutzer bei der Suche nach OSS eingibt.

Target license

Einzellizenz, die zur Suche kompatibler Lizenzen als Ziellizenz an

das License Expert System übergeben wird.

Set of licenses compatible to

Zur Ziellizenz kompatible Lizenzen, die das License Expert System

target licenses

nach Abfrage der License Knowledge Base an die ,,Search Engine"

zurück liefert.

Set of OSS

In der Forge Database gefundene OSS.

License

Eine Lizenz, über die Informationen zusammengestellt werden

sollen.

Set of license informations

Informationen zu einer Lizenz

License overview

Zusammenstellung von Informationen zu einer Lizenz in einer

Übersicht.

Search result

Menge von gefundenen Programmen mit einem Verweis auf die URI,

sowie die zugehörige Lizenz.

Selected search result

Suchergebnis, welches für einen detaillierten Lizenzüberblick

ausgewählt wurde.

Forge Database

Datenbank, die Informationen über die von der Forge zur Verfügung

gestellte OSS enthält

78


Die Lizenzkompatibilitätssuche

5.3 Use Case-Entwicklung

5.3 Use Case-Entwicklung

Nach einem ganzheitlichen Blick auf das System sollen nun Interaktionen betrachtet

werden. Ein

Use Case

ist ein zeitlich in sich geschlossener Vorgang. Er hat einen

Akteur und ein Ergebnis. Der Akteur initiiert den

Use Case

, der

Use Case

wiederum

liefert ein Ergebnis an den gleichen oder einen anderen Akteur (Rupp/Hahn/Zengler

2005: 240ff). Im eigentlichen Sinne ist der

Use Case

ein dem Nutzer zur Verfügung

gestelltes Verhalten einer Systemkomponente. Während das

Domain Model

vor allem

den Datenfluss innerhalb des Systems veranschaulicht hat, zeigt der Use Case nun, wie

die Benutzer mit dem System agieren.

Im weiteren Verlauf sollen

Use Case

-Diagramme eine optische Darstellung der

Use Case

s zeigen. Die genaue Beschreibung der

Use Case

s ist in Anhang A hinterlegt.

Abbildung 15: User bei der Suche nach kompatibler Software, sowie Lizenzinformationen

Die Suche

Search for OSS compatible to selected license

(Abbildung 15) ermöglicht dem

Benutzer Software zu finden, die zu einer bestimmten Ziellizenz kompatibel ist. Um

die Funktion nutzen zu können, gibt der

User

Stichworte der zu suchenden Software

ein. Anschließend wählt er eine Ziellizenz aus, zu der die OSS kompatibel sein soll.

Nach dem die Suchkriterien spezifiziert wurden, drückt der

User

den OK-

Button

und

erhält im Anschluss eine Auswahl gefundener Software zurück.

Nun hat der

User

die Wahl den Vorgang zu beenden oder optional ­ daher handelt es

sich um eine

Extension

­ weitere Informationen bezüglich der verwendeten Lizenz

79


Die Lizenzkompatibilitätssuche

5.3 Use Case-Entwicklung

anzufordern. Entscheidet er sich, Informationen zu der Lizenz abzufragen, wählt er

durch

Select search result

aus der Liste der Suchergebnisse eines aus und bestätigt die

Auswahl. Jetzt werden mit

Search for informations about licenses of search result

Informationen zu den damit im Zusammenhang stehenden Lizenzen angefordert und

dem Benutzer ein Lizenzüberblick angezeigt. Dieser enthält Informationen über den

Copyleft

-Effekt der Lizenz und die Bedingungen, die zu diesem Charakter geführt

haben.

Abbildung 16:

Wartung und Update der Wissensbasis

Rechts: Lizenzexperte beim editieren der Wissensbasis

Links: Update der Wissensbasis durch den Systemverwalter

Den Kern des Systems bildet

License Knowledge Base

. Hier ist das Wissen über

Lizenzen und die Zusammenhänge zwischen ihnen gespeichert. Der

License Expert

editiert diese Wissensbasis, wie in Abbildung 16 dargestellt. Dazu legt er beim ersten

Mal mit

Create kowledge base

eine Wissensbasis an, die Wissen über OSS-Lizenzen in

Form einer OWL-Ontologie und zugehörige Regeln enthält. Existiert die

Wissensbasis bereits, sind im Zusammenhang mit dem Editieren lediglich die

eingebundenen

Use Cases

Open Knowledge Base

und

Save Knowledge Base

erforderlich.

Um die Wissensbasis in Bereitschaft zur Abfrage zu versetzen, muss durch den

Systemverwalter ein Update des darin enthaltenen Wissens durchgeführt werden.

Konkret geht es darum, die Regeln anzuwenden und ein

Reasoning

durchzuführen.

Dies erfolgt bei jedem Update.

80


Die Lizenzkompatibilitätssuche

5.4 Spezifikation

5.4 Spezifikation

Nach Kenntnis der

Use Cases

werden nun die Anforderungen an das System definiert

und die Grenzen des Entwurfes bestimmt. Konkret werden Standards,

Programmiersprachen und Datenquellen festgelegt, sowie nicht-funktionale

Anforderungen an das System definiert.

5.4.1 Standards, Programmiersprachen und Datenquellen

In diesem Abschnitt soll definiert werden, welche Standards, Programmiersprachen

und Datenquellen im System Verwendung finden. Nachdem einige dieser Elemente in

Kapitel 2.2 vorgestellt wurden, wird nun ein Rahmen festgelegt, der Möglichkeiten

und Beschränkungen für das System aufzeigen soll.

Aufgrund der bereits vorgenommenen Erstellung der Wissensbasis, wird die auf

XML und RDF basierende

Web Ontology Language

herangezogen. Sie eignet sich für

die Modellierung semantischer Zusammenhänge, stellt eine W3C-

Recommendation

dar

und garantiert in der Variante OWL DL vollständige Verarbeitbarkeit und

Entscheidbarkeit. Die Regelerweiterungen werden in der

Semantic Web Rule Language

erstellt, die logische Regeln über OWL-Atomen definiert. Die Sprache bietet den

Vorteil, dass sie von den im System genutzten Bestandteilen unterstützt wird und sich

somit für die Anwendungsentwicklung eignet.

Als Programmiersprache wird im wesentlichen JAVA15 eingesetzt. Die Sprache hat den

großen Vorteil der plattformunabhängigen Einsetzbarkeit und kann daher in jeder

Betriebssystemumgebung genutzt werden. Sie verfügt über eine automatische

Speicher- und

Heap

-Verwaltung und kommt damit der systemübergreifenden

Programmierung entgegen. Vor allem aber ist die

Inference Engine

KAON2 wie auch

die meisten anderen Entwicklungen in diesem Bereich in Java implementiert und daher

besser integrierbar.

Für die

Interface

-Entwicklung wird PHP16 verwendet. Diese Sprache beinhaltet schon

in ihrer grundlegenden Form eine große Zahl verschiedener Bibliotheken und

vorgefertigter Funktionseinheiten im Bereich des Netzwerks, der Protokolle, und

15 Vergl. <http://www.java.com/de/about/>.

16 Weitere Informationen auf <http://www.php.net/>.

81


Die Lizenzkompatibilitätssuche

5.4 Spezifikation

Datenbankanbindungen. Zudem es ist eine

Open Source

-Entwicklung, die im

Webumfeld sehr häufig eingesetzt wird. Für den Einsatz spricht auch der

Open Source-

Mediator

BerliOS

, der später zu Testzwecken genutzt werden soll und auf

PHP-Basis umgesetzt ist, was die nahtlose Integration erheblich erleichtert.

Als Mittler zwischen PHP und JAVA dient die sogenannte PHP/JAVA Bridge17. Mit

dieser Brücke besteht die Möglichkeit, eine Verbindung zwischen JAVA und PHP

herzustellen. Sie wird im Projekt für die Koppelung von Interface und der

Hauptanwendung herangezogen.

Als Datenquellen kommen auf der einen Seite die weiter oben vorgestellte

Wissensbasis und auf der anderen Seite die Datenbank der anzubindenden Forge zum

Einsatz.

5.4.2 Nicht-Funktionale Anforderungen

Über die eben beschriebenen Erfordernisse hinaus kann jedes System mehrere

nicht-funktionale Anforderungen haben. Die Tatsache, dass ein System den

funktionalen Anforderungen entspricht, sagt nicht zwangsläufig etwas über seine

Verwendbarkeit im Alltagsbetrieb aus. Ausfallsicherheit, Verfügbarkeit, Datenschutz,

Wartbarkeit und Performance können entscheidenden Einfluss auf die

Praxistauglichkeit seiner Komponenten haben.

Im Fall der Lizenzkompatibilitätssuche spielt, wie bei anderen Suchmaschinen, die

Performance ein wichtige Rolle. Anfragen sollten innerhalb eines Zeitraums bearbeitet

werden, der zwar größer als bei einer normalen Suchmaschine sein kann, jedoch 30

Sekunden nicht überschreiten sollte. Dies muss bei der Planung der Systemressourcen

Berücksichtigung finden. Die Planung der Systemresourcen ist allerdings kein

Bestandteil dieser Arbeit, da in diesem frühen Stadium des Entwurfs noch keine

ausreichenden Test erfolgen können.

Ausfallsicherheit und Verfügbarkeit werden in diesem Fall nicht als sonderlich kritisch

eingestuft, da keine anderen Dienste von diesem System abhängen und die Nutzung

des Dienstes nicht innerhalb wichtiger Geschäftsprozesse erfolgt.

Datenschutz ist insofern wichtig, dass der Zugang zu den Datenquellen mit

Benutzernamen und Passwort geschützt werden sollte, um eine Manipulation der

17 Projektinformationen auf <http://php-java-bridge.sourceforge.net/pjb/index.php>.

82


Die Lizenzkompatibilitätssuche

5.4 Spezifikation

Daten zu vermeiden. Da diese Zugangsdaten auch vom System selbst benutzt werden,

sollten sie an einer sicheren Stelle außerhalb des

Webroots

abgelegt werden. Eine

verschlüsselte Datenübertragung wird nicht als notwendig erachtet.

Da an dem System selbst keine regelmäßigen Änderungen vorgenommen werden

müssen und sich die Wartung im Wesentlichen auf das Starten und Stoppen von

Diensten beschränkt, wird auch der Punkt Wartung als weniger wichtig erachtet.

Lediglich die Wissensbasis muss von Zeit zu Zeit verändert werden. Dies wird jedoch

nicht mit Bestandteilen des hier entworfenen Systems geschehen.

83


Zusammenfassung

6 Zusammenfassung

6 Zusammenfassung

Die vorliegende Arbeit gibt auf der Basis von

Semantic Web

-Technologien einen

Einblick in die Möglichkeiten der maschinengestützten Darstellung und Verarbeitung

von Wissen und zeigt anhand einer problemorientierten Fragestellung sowohl eine

auf der Grundlage dieser Technologien durchgeführte Formalisierung von

Open Source

-Lizenzen als auch die situationsabhängige Auswertung des so gewonnen

Wissens mithilfe eines Expertensystems. Dieses Expertensystem wird beim

nachfolgenden Entwurf einer erweiterten Softwaresuche für kollaborative

Open Source

-Entwicklungsplattformen in eine praxisorientierte Anwendung integriert.

Dabei wird gezeigt, dass sich Lizenztexte als vertraglich festgelegte Nutzungssrechte

im

Open Source

-Bereich nicht nur auf eine bestimmte Art und Weise in einer Ontologie

formalisieren lassen, sondern dass die so vorgenommene Formalisierung als

Wissensbasis in ein Expertensystem integriert, auch einen praktischen Nutzen

innerhalb einer Anwendung bieten kann.

6.1 Ergebnisse

Nachdem in Kapitel 2 der schriftlichen Darlegung der allgemeine Wissensstand zur

Bearbeitung des Themas wiedergegeben wurde, setzt sich die Arbeit zunächst mit dem

Aufbau eines Expertensystems mithilfe von

Semantic Web-

Technologien auseinander.

Es wird gezeigt, wie eine spezielle Implementierungsvariante eines Expertensystems

auf der Basis einer

Inference Engine

, sowie einer Wissensbasis, codiert in OWL DL und

der Regelsprache SWRL, aussehen kann.

Der folgende Teil definiert kompatible Software-Lizenzen als Lizenzen, deren

zugehörige Programme in rechtlich vertretbarer Form miteinander kombiniert

werden können. Da in diesem Zusammenhang von einem komplizierten Wechselspiel

zwischen den Lizenztexten und deren Auslegung im nationalen Recht ausgegangen

werden muss, wird der

Copyleft-

Effekt der Lizenz als Ansatzpunkt für eine

vereinfachte Kompatibilitätsbetrachtung herangezogen. Zudem werden Indizien, die

zur Bestimmung des

Copyleft-

Effektes notwendig erscheinen, registriert.

Auf Basis der Erkenntnisse einer Untersuchung von drei

Open Source

-Lizenzen, sowie

84


Zusammenfassung

6.1 Ergebnisse

den Elementen, die zur Bestimmung des

Copyleft-

Effekts als wichtig erachtet werden,

wird im weiteren Verlauf eine Wissensbasis mit Wissen über

Open Source

-Lizenzen in

OWL DL modelliert. Die Lizenzen werden mithilfe eines dabei entworfenen Ansatzes

für die Formalisierung von

Open Source

-Lizenzen in die Wissensbasis übertragen.

Wesentliche Elemente der Formalisierung werden innerhalb der schriftlichen

Darlegung erläutert, die vollständige Wissensbasis ist auf http://www.qiq.de

f

verfügbar.

C

D

Als wichtige Elemente der Wissensbasis haben sich die einzelnen Ziffern und Sätze

des Lizenztextes, die mit der Lizenz im Zusammenhang stehenden Werke und die

Lizenzbedingungen erwiesen. Die Lizenzbedingungen stellen zudem die wesentlichen

Elemente für die Untersuchung des Lizenz-Charakters dar, welcher auf dem

Copyleft-

Effekt beruht. Diesbezüglich spiegelt die Lizenzbedingung den

Anwendungsfall wieder, unter dem eine Bestimmung gilt und verweist auf Rechte und

Möglichkeiten, die dem Lizenznehmer bei der Beachtung bestimmter Pflichten

gewährt werden.

Manche Lizenzbedingungen oder Querverweise im Lizenztext sind in Form von

Regeln in den Lizenztexten festgehalten und damit für eine Formalisierung mit OWL

DL Mechanismen ungeeignet. An dieser Stelle kommt die Regelsprache SWRL zum

Einsatz. Die Arbeit zeigt einen Ansatz, der es ermöglicht, solche Elemente zu

formalisieren. Es werden logische Regeln über OWL-Atomen definiert, die sich auf

Klassen, Eigenschaften und Instanzen mithilfe von Variablen beziehen und damit zur

Vervollständigung des Wissens in der Wissensbasis geeignet sind.

Ein ähnlicher Effekt wird mit definierten Klassen innerhalb der Ontologie erzielt.

Durch die Formulierung von Eigenschaften mit notwendigen und hinreichenden

Bedingungen als Konzepte, wird mit Beschreibungslogik neues Wissen aus

vorhandenem Wissen gewonnen. Der in diesem Zusammenhang entworfene Ansatz

identifiziert Bedingungen, die sich auf relevante kombinierte Werke beziehen. Diese

Bedingungen werden auf Pflichten untersucht, die für einen starken, einen schwachen

oder gar keinen

Copyleft-

Effekt sprechen. Ergebnis der Untersuchung sind

entsprechend dem

Copyleft-

Effekt klassifizierte Lizenzen, welche infolge des

Reasoning

-

Prozesses definierten Klassen zugeordnet werden.

85


Zusammenfassung

6.1 Ergebnisse

Die Tauglichkeit der eben beschriebenen Ansätze wird mit der Validierung der

Formalisierung auf Basis der drei beispielhaft formalisierten Lizenzen untersucht. Bei

einem Testlauf werden die durch das Expertensystem gezogenen Schlussfolgerungen

mit den Erkenntnissen der gängigen Fachliteratur verglichen. Ergebnis sind 26

identifizierte Lizenzbedingungen, die für die Untersuchung des

Copyleft-

Effekts

bedeutsam erscheinen, von denen sechs für Lizenzen ohne

Copyleft-

Effekt, zwölf für

Lizenzen mit strengem

Copyleft-

Effekt und acht für Lizenzen mit schwachem

Copyleft-

Effekt sprechen. Diese Ergebnisse führen innerhalb des Systems zu dem

Schluss, dass von den drei formalisierten Lizenzen die neue BSD-Lizenz keinen

Copyleft-

Effekt aufweist, die LGPL einen schwachen

Copyleft-

Effekt hat und GPL wie

auch LGPL als Lizenzen mit starkem

Copyleft-

Effekt zu sehen sind. Die LGPL taucht

bei der Klassifizierung zweimal auf. Wie auch in der Fachliteratur werden innerhalb

dieser Lizenz Charaktermerkmale identifiziert, die sowohl für einen starken, wie auch

für einen schwachen

Copyleft-

Effekt sprechen. Das System hat sich damit im Rahmen

dieses Testszenarios als tauglich erwiesen.

Den Abschluss bildet der Entwurf einer Anwendung, die eine Suchfunktion für

Software im Bereich von kollaborativen

Open Source

-Entwicklungsplattformen

erweitern soll und das zuvor getestete Expertensystem zur Lizenzanalyse nutzt.

Informationen zu den Lizenzen sollen dabei über Links im Suchergebnis der

Softwaresuche verfügbar werden. Diese Informationen betreffen die Klassifikation von

Lizenzen und geben Empfehlungen, auf welche Weise ein Softwareentwickler eigens

erstellte Entwicklungen mit bestehender Software kombinieren kann. Dazu werden im

Domain Model

die relevanten Systeme, Akteure und Komponenten der Anwendung

zueinander in Beziehung gesetzt, der Informationsfluss grafisch dargestellt,

Use Cases

entwickelt und eine Spezifikation für das System erstellt. Ergebnis ist der Entwurf

einer Anwendung, deren Kernbestandteil das zuvor beschriebene Expertensystem ist,

welches seine Schlüsse aufgrund der dafür entwickelten Wissensbasis mit Wissen über

Open Source

-Lizenzen zieht.

6.2 Probleme und offene Fragen

Die Formalisierung von

Open Source

-Lizenzen erwies sich als komplexes Unterfangen,

86


Zusammenfassung

6.2 Probleme und offene Fragen

da die Vertragstexte weder mit dem Anspruch der maschinellen Verarbeitbarkeit

entworfen, noch die verwendeten Ontologiesprachen speziell für die Formalisierung

von Rechtstexten entwickelt wurden.

Die Lizenzen enthalten viele Querverweise, die bei der Formalisierung nach dem

weiter oben beschriebenen System zur besseren Verarbeitung aufgelöst werden

müssen. Solche Passage beinhalten Aussagen wie in Ziffer 2 der LGPL: ,,You may

modify your copy or copies of the Program or any portion of it, thus forming a work

based on the Program, and copy and distribute such modifications or work under the

terms of Section 1 above." Einige Bedingungen in den Lizenzen ergeben sich erst aus

unterschiedlichen Aussagen, die nicht aus zusammenhängenden Abschnitten im

Lizenztext geschlussfolgert werden können, sondern über den ganzen Vertragstext

verteilt liegen. Andererseits fehlt den verwendeten Ontologie- und Regelsprachen bei

logischen Verknüpfungen die Negation, die bei der Formalisierung gewisser

Lizenzpassagen hilfreich gewesen wäre. Zum Beispiel existiert eine Passage in Ziffer 0

der GPL, die besagt, dass ein reines Ausführen des Programms nicht von der Lizenz

berührt wird. Das Fehlen von Pflichten ist ein Faktum, das anhand von Inferenzregeln

in OWL DL nicht hergeleitet werden kann. Es handelt sich um eine nicht beweisbare

Aussage, die weder wahr noch falsch ist. Eine

Inference Engine

wird immer annehmen,

dass noch nicht bekannt ist, ob Pflichten existieren, nicht aber davon ausgehen, dass es

keine Pflichten gibt.

Bei der vorgenommenen Formalisierung von Rechten, Möglichkeiten und Pflichten

ergibt sich das Problem, dass die so formalisierten Elemente immer als eine Art

Annäherung an den Lizenztext begriffen werden müssen, um überhaupt eine

Vergleichbarkeit verschiedener Lizenztexte zu ermöglichen. So wurden beispielsweise

die komplexen Bestimmungen, die sich mit der Bereitstellung des

Source Codes

bei

verschiedenen Lizenzen befassen in der Eigenschaft makeSourceCodeAvailable

zusammengefasst ­ ohne dabei auf Details einzugehen, die sich mit Art und Weise der

Veröffentlichung beschäftigen. Dies ist einer der Gründe, warum die Ergebnisse, die

das Expertensystem liefert, lediglich als Empfehlungen gesehen werden können.

Die Betrachtung von Kompatibilität stellt eine interessante Anwendungsmöglichkeit

für das Expertensystem dar. Lizenzkompatibilität kann in diesem Zusammenhang

87


Zusammenfassung

6.2 Probleme und offene Fragen

allerdings nur eingeschränkt analysiert werden, da zum Zeitpunkt der Formalisierung

keine Unterstützung durch einen Experten in Rechtsfragen gegeben war, die eben

beschriebene Formalisierung lediglich als Annäherung zu begreifen ist und sich die

verwendete Regelsprache im juristische Kontext nicht als optimale Lösung erwiesen

hat. Das hängt damit zusammen, dass sich in SWRL einige Eigenheiten bei

rechtlichen Fragestellungen nur ungenügend abbilden lassen. Die Regelsprache

besitzt z.B. keinen Mechanismus, um mit konfligierenden Regeln umzugehen oder

Prioritäten bei der Anwendung von Regeln festzulegen. Zudem kennt sie keine

Negation.

Zu den genannten Problemen kommt hinzu, dass innerhalb der Arbeit auf keine

früheren Erkenntnisse bei der Formalisierung von Lizenztexten zurückgegriffen

werden konnte, da auf diesem Feld entweder kaum verwertbare Ansätze existieren,

innerhalb der Recherche nicht gefunden werden konnten, oder nicht zugänglich waren.

Dies hatte zur Folge, dass eine Vielzahl von Ansätzen getestet werden musste, bis sich

eine Lösung als brauchbar erwies. Darüber hinaus ist der Verfasser kein

Rechtsexperte, weshalb der Formalisierungsansatz im Nachgang einer Rechtsprüfung

unterzogen werden müsste.

Im Verlauf der schriftlichen Darlegung ist bereits etwas zur Auslegung von

Lizenzbedingungen im Kontext nationalen Rechts gesagt worden und auch, dass

dieser Punkt nicht betrachtet wird. Im Zweifel und bei Rechtsverletzungen wird aber

genau diese Betrachtung entscheidend sein. Es stellt sich die Frage, ob es eventuell

mit neuen Ansätzen oder anderen Regelsprachen möglich ist, diesen Punkt zu

berücksichtigen.

Da in dieser Arbeit nur drei

Open Source

-Lizenzen untersucht und formalisiert werden,

ist offen, ob sich zumindest die auf der Seite der

Open Source

-Initiative gelisteten 72

Lizenzen mit den zugrunde liegenden Ansätzen formalisieren lassen. Die

identifizierten Rechten, Pflichten und Möglichkeiten, die innerhalb der Lizenztexte

beschrieben werden, könnten sich als derart vielschichtig erweisen, dass eine

Vergleichbarkeit von Lizenzen nicht, oder nur in Form eines geringen

Annäherungsgrades der formalisierten Elemente an den Inhalt der

Lizenzbedingungen, gegeben ist.

88


Zusammenfassung

6.3 Ausblick

6.3 Ausblick

Die vorangegangenen Abschnitte zu Problemen und offenen Fragen haben gezeigt,

dass nicht alle Ungewissheiten abschließend beantwortet werden konnten und sich die

Entwicklung wissensbasierter Systeme als eine sehr komplexe Thematik erweist. Der

folgende Text wird sich daher mit der Frage beschäftigen, in welcher Weise die bisher

gewonnenen Erkenntnisse genutzt und ausgebaut werden können.

Zunächst sind die in der Arbeit vorgestellten Ansätze mithilfe einer

vertrauenswürdige Beurteilung zu überprüfen. Ein solches Gutachten kann durch

einen Sachverständigen in Rechtsfragen erfolgen. Ziel ist es, eine externe

Stellungnahme zu dem besagten Sachverhalt einzuholen und die Tauglichkeit der

Formalisierung von

Open Source

-Lizenzen einer Prüfung zu unterziehen.

Erweist sich die Formalisierung als praxistauglich kann die Erweiterung der

Wissensbasis vorangetrieben und über neue Anwendungsmöglichkeiten nachgedacht

werden. Ontologien sind darauf ausgelegt zusammengesetzt bzw. erweitert zu

werden. Auf diese Weise lassen sich Wissensgebiete zusammenführen, was die

Möglichkeit späterer Schlussfolgerungen vervielfacht. Bei den Lizenzen wurde bereits

darauf hingewiesen, dass Werke Lizenzen haben können oder bestimmte

Organisationen Lizenzen zertifizieren. An dieser Stelle bestünde die Möglichkeit eine

Ontologie über Werke oder Organisationen einzubinden. Auch eine Urheberontologie,

in der Schöpfer von Werken geführt werden, ist denkbar. Eine Ontologie über Urheber

kann im Zusammenhang mit der Lizenzontologie beispielsweise Hinweise darüber

liefern, ob jemand Urheber von

Open Source Software

ist. Eine Ontologie über Werke

wäre in der Lage

Open Source Software

erkennen. Die Organisation OSI und ihr

Zertifizierungsprozess für OSS-Lizenzen kann in einer weiteren Ontologie dargestellt

werden, der sich wiederum auf die Lizenzontologie beziehen könnte und damit

herleiten, aus welchem Grund bestimmte Lizenzen ihr

Trademark

erhalten.

Wie bereits angedeutet, hat sich SWRL bei der Formalisierung der Lizenztexte nicht

als optimale Sprache erwiesen, da beispielsweise für die Entwicklung von Regeln keine

Negation zur Verfügung steht. Daher sollte die Verwendung einer anderen

Regelsprache in Betracht gezogen werden. In diesem Zusammenhang erscheint eine

nähere Untersuchung des

Legal Knowledge Interchange Format

(LKIF), was aus dem

89


Zusammenfassung

6.3 Ausblick

Estrella Projekt18 hervorgegangen ist, für eine Weiterentwicklung des

Expertensystems interessant. Es handelt sich dabei um ein Format für eine

Regelsprache zur Analyse juristischer Fragestellungen, welche mit Blick auf die

besonderen Eigenschaften von Regeln im Bereich des Rechts entwickelt wird.

Eigenschaften solcher Regeln sind beispielsweise, dass sie zueinander in Konflikt

stehen können, das Setzen von Prioritäten verlangen, in bestimmten Kontexten

ungültig sein können oder nur angenommen wird, dass sie wahr sind (Gordon 2008:

4). LKIF unterstützt im Gegensatz zu SWRL die Negation, ist in der Lage ein

anfechtbares

Reasoning

durchzuführen und damit möglicherweise besser für die

Betrachtung von Kompatibilitätsfragen im Bereich der

Open Source

-Lizenzen geeignet

als SWRL.

18 Vergleiche dazu <http://www.estrellaproject.org/?page_id=5>

90


Anhang A

Use Case Diagramme

Uses Case Name

Search for OSS compatible to selected license

Kurze Beschreibung

Es soll eine Suche nach OSS durchgeführt werden, die zu einer bestimmten

Ziellizenz kompatibel ist.

Akteure

User, License Expert System

Vorbedingung

Der User befindet sich im Suchbereich der Forge. Die Suchmaske wird

angezeigt. Ein Auswahlfeld mit möglichen Ziellizenzen steht zur Verfügung

Nachbedingung

Der User bekommt als Ergebnis seiner Suche OSS, die zur gewählten Liztenz

kompatibel ist, angezeigt.

Gewöhnlicher Ablauf

Der User drückt nach Eingabe der Suchkriterien auf den Suchbutton der

Suchmaske. Die Suchkriterien werden an das License Expert System

übergeben.

Alternativer Ablauf

-

Includes

Enter keywords, Select target license

Extends

Search for informations about licenses of search result

Uses Case Name

Enter keywords

Kurze Beschreibung

Stichworte für die Suche sollen eingegeben werden.

Akteure

User

Vorbedingung

Der User befindet sich im Suchbereich der Forge und bekommt ein

Suchformular angezeigt.

Nachbedingung

Die Stichworte wurden eingegeben.

Gewöhnlicher Ablauf

Der User gibt Stichworte in das Suchformular ein.

Alternativer Ablauf

-

Includes

-

Extends

-

Uses Case Name

Select target license

Kurze Beschreibung

Der User soll sich für eine Lizenz entscheiden, zu der er kompatible OSS

suchen möchte.

Akteure

User, License Expert System

Vorbedingung

Eine Liste verfügbarer Lizenzen wird im Browser angezeigt.

Nachbedingung

Eine Ziellizenz wurde ausgewählt.

Gewöhnlicher Ablauf

Der User wählt aus einem Drop-Down-Menü im Browser eine Lizenz aus einer

Liste, die ihm vom License Expert System zur Verfügung gestellt wird,

aus.

Alternativer Ablauf

-

Includes

-

Extends

-

Uses Case Name

Search for informations about licenses of search result

Kurze Beschreibung

Der User möchte weitere Informationen über das Suchergebnis erhalten.


Speziell soll ein Überblick zu der zur Software gehörenden Lizenz gegeben

werden.

Akteure

User

Vorbedingung

Ein Suchergebnis wurde ausgewählt

Nachbedingung

Ein Lizenzüberblick wird dem Benutzer präsentiert. Insbesondere

Bedingungen, die zu einem bestimmten Copyleft-Effekt geführt haben,

werden dargestellt.

Gewöhnlicher Ablauf

Der User bestätigt die Auswahl des Suchergebnisses.

Alternativer Ablauf

-

Includes

Select search result

Extends

-

Uses Case Name

Select search result

Kurze Beschreibung

Der User wählt ein Suchergebniss der vorangegangenen Suche aus.

Akteure

User

Vorbedingung

Das Suchergebnis wird angezeigt

Nachbedingung

Ein Suchergebnis wurde spezifiziert.

Gewöhnlicher Ablauf

Der User markiert ein Suchergebniss.

Alternativer Ablauf

-

Includes

-

Extends

-

Uses Case Name

Update Knowledge Kase

kurze Beschreibung

Nach Änderungen an der Wissensbasis sollen die Ergebnisse des Regel- und

Reasoning-Prozesses dem License Expert System zur Verfügung gestellt

werden.

Akteure

Admin

Vorbedingung

Die Wissensbasis wurde erstellt oder verändert.

Nachbedingung

Es können Anfragen an die Wissensbasis gestellt werden.

gewöhnlicher Ablauf

Der Admin setzt eine Sequenz in Gang, die eine Anwendung der Regeln

realisiert und den Reasoning-Prozess initiiert. Mit den Ergebnissen wird

die Wissensbasis aktualisiert.

Alternativer Ablauf

-

Includes

-

Extends

-

Uses Case Name

Edit Knowledge Base

Kurze Beschreibung

Eine Wissensbasis soll verändert oder erweitert werden.

Akteure

Knowledge Expert

Vorbedingung

Nachbedingung

Die Wissensbasis wurde verändert und die Änderungen gespeichert

Gewöhnlicher Ablauf

Die Wissensbasis wird geöffnet, verändert und wieder gespeichert.

Alternativer Ablauf

Die Wissensbasis wird angelegt, geöffnet, verändert und wieder

gespeichert.

Includes

Open Knowledge Base, Save Knowledge Base

Extends

Create kowledge base


Uses Case Name

Create kowledge base

Kurze Beschreibung

Eine Wissensbasis soll erstellt werden.

Akteure

Knowledge Expert

Vorbedingung

-

Nachbedingung

Die Wissensbasis wurde erstellt.

Gewöhnlicher Ablauf

Es wird eine Datei erstellt, in der Zusammenhänge zwischen OSS Lizenzen

und Regeln für deren Kompatibilität zueinander aufzeigt.

Alternativer Ablauf

-

Includes

-

Extends

-

Uses Case Name

Open Knowledge Base

kurze Beschreibung

Eine bestehende Wissensbasis wird geöffnet

Akteure

Knowledge Expert

Vorbedingung

Die Wissensbasis existiert.

Nachbedingung

Die Wissensbasis ist zum schreiben geöffnet.

gewöhnlicher Ablauf

Mit Hilfe eines Editors oder anderen Tools wird eine OWL-Datei geöffnet.

Alternativer Ablauf

-

Includes

-

Extends

-

Uses Case Name

Save Knowledge Base

kurze Beschreibung

Eine Wissensbasis wird gespeichert

Akteure

Knowledge Expert

Vorbedingung

Die Wissensbasis wurde verändert.

Nachbedingung

Die Änderungen an der Wissensbasis wurden gespeichert.

gewöhnlicher Ablauf

Mit Hilfe eines Editors oder anderen Tools wird die Wissensbasis

gespeichert.

Alternativer Ablauf

-

Includes

-

Extends

-


Literaturverzeichnis

BERNERS-LEE, Tim (2005): Uniform Resource Identifier (URI). Generic Syntax.

URI: http://www.ietf.org/rfc/rfc3986.txt. Stand: 13.09.2007.

BERNERS-LEE, Tim (1998): Semantic Web Road map. URI:

http://www.w3.org/DesignIssues/Semantic.html. Stand: 03.09.2007.

BERNERS-LEE, Tim / Hendler, James / Lassila, Ora (2001): The Semantic Web.

URI: http://www.sciam.com/article.cfm?articleID=00048144-10D2-1C70-

84A9809EC588EF21&catID=2. Stand: 04.09.2007.

BOLEY, Harold / Kifer, Michael (2007): RIF Core Design. URI:

http://www.w3.org/TR/rif-core/. Stand: 10.09.2007.

BROCKHAUS (1986): Wissen, 19. Auflage Mannheim.

COAR, Ken (2007): The Open Source Definition. URI:

http://www.opensource.org/docs/osd. Stand: 20.03.2007.

DIGEL, Werner / Kwiatkowski, Gerhard (1980): Ontologie in: Meyers Neues

Lexikon, Band 6. Mannheim.

DUERST, Martin / Suignard, Michael (2005): Internationalized Resource Identifiers

(IRIs). URI: http://www.ietf.org/rfc/rfc3987.txt. Stand: 13.09.2007.

FOGEL, Karl / Barkhau, Manuel (2005): Produktion von Open Source Software. Wie

man ein erfolgreiches freies Software Projekt führt. URI:

http://producingoss.com/de/. Stand: 07.07.2008.

Free Software Foundation (2007): Categories of Free and Non-Free Software. URI:

http://www.gnu.org/philosophy/categories.html. Stand: 01.06.2008.

Free Software Foundation (2005): What is Copyleft?. URI:

http://www.fsf.org/licensing/essays/copyleft.html. Stand: 05.01.2008.


GHOSH, Rishab Aiyer (2006): Study on the: Economic impact of open source software

on innovation and the competitiveness of the Information and Communication

Technologies(ICT) sector in the EU. URI:

http://ec.europa.eu/enterprise/ict/policy/doc/2006-11-20-flossimpact.pdf.

Stand: 16.04.2008.

GORDON, T.F. (2008): Hybrid reasoning with argumentation schemes. URI:

http://www.tfgordon.de/publications/Gordon2008a.pdf. Stand: 12.08.2008.

GRASSMUCK, Volker (2004): Freie Software. Zwischen Privat-und Gemeineigentum,

2. Auflage Bonn.

GRUBER, Thomas R. (1993): A Translation Approach to Portable Ontology

Specifications. URI:

ftp://ftp.ksl.stanford.edu/pub/KSL_Reports/KSL-92-71.ps.gz. Stand:

06.09.2007.

HORROCKS, Ian / Patel-Schneider, Peter F. / Boley, Harold / u.a. (2004): SWRL. A

Semantic Web Rule LanguageCombining OWL and RuleML. URI:

http://www.w3.org/Submission/SWRL/. Stand: 10.09.2007.

JACOBS, Ian (2003): World Wide Web Consortium Process Document. URI:

http://www.w3.org/2003/06/Process-20030618/cover.html. Stand: 12.09.2007.

JAEGER, Till / Metzger, Axel (2006): Open Source Software. Rechtliche

Rahmenbedingungen der Freien Software 2. Auflage München.

JÄGER, Till / Koglin, Olaf / Kreutzer, Till u.a (2005): GPL kommentiert und erklärt,

1. Auflage Köln.

KLYNE, Graham / Carroll, Jeremy J. / McBride, Brian (2004): Resource Description

Framework. Concepts and Abstract Syntax. URI:

http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/. Stand:

04.09.2007.

Kreutzer, Till (2004): Gründe für GPL-Urteil veröffentlicht. URI:

http://www.ifross.de/ifross_html/home2_2004.html#ARTIKEL31. Stand:

27.03.2008.


MCBRIDE, Brian (2004): Resource Description Framework (RDF. Concepts and

Abstract Syntax. URI: http://www.w3.org/TR/rdf-concepts/. Stand:

23.08.2007.

MCGUINNESS, Deborah L. /Van Harmelen, Frank (2004): OWL Web Ontology

Language Overview. URI:

http://www.w3.org/TR/2004/REC-owl-features-20040210/. Stand:

03.09.2007.

MOTIC, Boris (2006): Reasoning in Description Logics using Resolution and

Deductive Databases. URI:

http://digbib.ubka.uni-karlsruhe.de/volltexte/documents/1437. Stand:

03.03.2008.

NELSON (2007): Certification Mark. URI:

http://www.opensource.org/docs/certification_mark.html. Stand: 01.05.2008.

O′Connor, Martin (2007): SWRL Language FAQ. URI: http://protege.cim3.net/cgi-

bin/wiki.pl?SWRLLanguageFAQ. Stand: 12.09.2007.

PELLEGRINI, Tassilo / Blumauer, Andreas (2006): Semantic Web. Wege zur

vernetzten Wissensgesellschaft, 1. Auflage Berlin.

PRUD′HOMMEAUX, Eric / Seaborne, Andy (2007): SPARQL Query Language for

RDF. URI: http://www.w3.org/TR/rdf-sparql-query/. Stand: 09.09.2007.

RUPP, Chris / Hahn, Jürgen / Queins, Stefan / Jeckle, Mario / Zengler, Barbara

(2005): UML 2 glasklar. Praxiswissen für die UML-Modellierung und

-Zertifizierung, 2. Auflage München Wien.

SACK, Harald (2006): Ontologien - "...was sind und zu welchem Ende studieren wir

Ontologien". URI:

http://www.informatik.uni-jena.de/%7Esack/Material/Ontologien.pdf. Stand:

03.06.2008.

SCHNEIDER, Hans-Jochen (1991): Lexikon der Informatik, 3. Auflage München.

SCHÖNING, Uwe (1995): Logik für Informatiker, 4. Auflage Heidelberg.


SMITH, Michael K. / Welty, Chris / McGuinness, Deborah L. (2004): OWL Web

Ontology Language Guide. URI: http://www.w3.org/TR/owl-guide/. Stand:

01.09.2007.

TIEMANN, Michael (2006): History of the OSI. URI: http://opensource.org/history.

Stand: 22.05.2008.

ZEITZ, Philip / Mahr, Bernd (2001): Aussagenlogik. In: Ehrig, Hartmut:

Mathematisch-strukturelle Grundlagen der Informatik, 2. Auflage Berlin.

ZEITZ, Philip / Mahr, Bernd / Robering, Klaus (2001): Prädikatenlogik. In: Ehrig,

Hartmut: Mathematisch-strukturelle Grundlagen der Informatik, 2. Auflage

Berlin.



Comments

No comments yet

Add Comment
Your comment is reviewed before being published

Other users also were interested in the following titles:

Erstellen einer schriftlichen Hausarbeit

Author: Claudia Nickel
Presentations, Models, Tutorials, Instructions, 2006 Download as PDF-file for 4,99 EUR

Grundtechniken wissenschaftlichen Arbeitens

Author: Maik Philipp
Presentations, Models, Tutorials, Instructions, 2004 Download as PDF-file for 5,99 EUR

This text can be quoted and accessed from this url:

http://www.grin.com/e-book/125040/anwendung-semantischer-technologien-fuer-die-modellierung-und-analyse-von
please wait Please wait