Eine SPARQL-Schnittstelle für OData-Services

Größe: px
Ab Seite anzeigen:

Download "Eine SPARQL-Schnittstelle für OData-Services"

Transkript

1 Eine SPARQL-Schnittstelle für OData-Services Dissertation zur Erlangung des akademischen Grades Doktor der Naturwissenschaften (Dr. rer. nat.) Fachbereich Elektrotechnik/Informatik Universität Kassel eingereicht von M. Sc. Marc Kirchhoff Dissertation an der Universität Kassel Gutachter: 1. Prof. Dr. Kurt Geihs 2. Prof. Dr. Alexander Mädche Datum der Einreichung: Datum der Disputation:

2 Inhaltsverzeichnis Abbildungsverzeichnis... v Tabellenverzeichnis... vi Verzeichnis der Listings... vii Algorithmenverzeichnis... x Danksagung... xi Zusammenfassung... xii Grundlagen Einleitung Motivation Problem Lösungsansatz Beiträge Aufbau der Arbeit Grundlagen Resource Description Framework (RDF) Terse RDF Triple Language (Turtle) SPARQL Protocol and RDF Query Language (SPARQL) Sprachelemente SPARQL-Algebra Evaluierungssemantik Open Data Protocol (OData) Verwandte Arbeiten Semantische Beschreibung von Web Services SAWSDL OWL-S WSMO hrest und MicroWSMO RDFa SA-REST ReLL EXPRESS Zusammenfassung Service-basierte SPARQL-Endpunkte ANGIE ii

3 3.2.2 SEREDASj Semantic Bridge for Web Services Generic semantic problem-solving platform SADI + SHARE Uniform Semantic Data Integration System Composing Data Providing Services Weitere Arbeiten Zusammenfassung Lösungsansatz Semantische Beschreibung von OData-Services Abbildung konzeptueller Datenmodelle auf RDF-Templates Semantische Erweiterung von CSDL Aufbau der Ressourcen-URIs Abbildung eines Entitätstyps auf ein Ressourcen-Template Typ-Angaben und konkrete Aussagen Datentypen und Sprachangaben Abbildung eines Entitätstyps auf mehrere Ressourcen-Templates Abbildung mehrerer Eigenschaften auf ein Aussagen-Template Abbildung auf leere Knoten Abbildung zweier Entitätstypen auf ein Ressourcen-Template Abbildung einzelner Navigationseigenschaften auf abstrakte Aussagen Abbildung mehrerer Entitätstypen auf ein Ressourcen-Template Abbildung mehrerer Navigationseigenschaften auf abstrakte Aussagen Mehrfachabbildungen von Eigenschaften Beschreibung von komplexen Typen Typhierarchien Abbildungen in Abhängigkeit der Entitätsmenge Beschreibung von eingeschränkten Entitätsmengen Reifikation Abbildung auf Listen Definitionen Zusammenfassung Abbildung von SPARQL-Anfragen auf OData-Service-Aufrufe Ermittlung der OData-URIs auf Basis der SPARQL-Algebra Auflösung der semantischen Annotationen Bestimmung der Subjekt-Templates Bestimmung der Objekt-Templates iii

4 5.2.3 Auflösung der Tripel-Templates Ermittlung der RDF-Graph-Templates Der Pfad eines Tripel-Templates Formalisierung Bestimmung der relevanten Tripel-Templates Vergleich eines Tripel-Patterns mit einem Tripel-Template Eine Evaluierungssemantik für Graph-Templates Pattern-Instanz-Template-Mappings Auflösung von Tripel-Patterns BGP Union und Join Filter LeftJoin Graph Erzeugung und Verschmelzung der OData-URIs Überführung von Pfaden nach OData-URIs Die Erzeugung von Filter-Anweisungen Verschmelzen von OData-URIs Evaluierung Implementierung und Evaluierung Northwind-Service SPARQL-Endpunkt ERP Services Zusammenfassung und Ausblick Anhang A. Entitätsdatenmodell des Northwind-Services B. CSDL-Erweiterungen in XSD C. Semantisch erweitertes EDM des Northwind-Services D. Northwind-Service Test-Anfragen E. Semantisch erweiterterter Sales Order Service F. Sales Order Service Test-Anfragen G. CD Publikationen Literaturverzeichnis Erklärung iv

5 Abbildungsverzeichnis Abbildung 1: Ein Geschäftsobjektgraph Abbildung 2: SPARQL-OData-Layer... 7 Abbildung 3: Beziehungen zwischen Hersteller und Betreiber [108] Abbildung 4: RDF-Graph Abbildung 5: Leerer Knoten (angelehnt an das Beispiel aus [140]) Abbildung 6: Eine ungeordnete Liste (rdf:bag) in RDF Abbildung 7: Eine geschlossene Liste (Collection) in RDF Abbildung 8: Reifikation Abbildung 9: Abbildung eines EDM auf ein RDF-Graph-Template durch die semantische Beschreibung Abbildung 10: Die semantische Beschreibung eines Entitätstyps Abbildung 11: Abbildung einer Entität auf einen RDF-Graphen Abbildung 12: Abbildung eines Entitätstyps auf mehrere Ressourcen-Templates Abbildung 13: Zwei Eigenschaften werden auf eine Aussage abgebildet Abbildung 14: Abbildung eines Entitätstyps auf das Template einer Ressource und eines leeren Knotens Abbildung 15: Abbildung zweier Entitätstypen auf ein Ressourcen-Template Abbildung 16: Abbildung einer Navigationseigenschaft auf zwei abstrakte Aussagen Abbildung 17: Abbildung einer Navigationseigenschaft mit mehreren Ressourcen-Templates Abbildung 18: Abbildung mehrerer Entitätstypen auf ein Ressourcen-Template Abbildung 19: Mehrere Verbindungen zwischen zwei Entitätstypen Abbildung 20: Abbildung mehrerer Navigationseigenschaften auf abstrakte Aussagen Abbildung 21: Unterschiedliche Abbildungen in Abhängigkeit der Navigationseigenschaften Abbildung 22: Abbildung eines komplexen Typs auf ein Ressourcen-Template Abbildung 23: Abbildung zweier Entitätstypen einer Typhierarchie auf zwei Ressourcen-Templates Abbildung 24: Mehrere Entitätsmengen des gleichen Entitätstyps Abbildung 25: Abbildung eines Entitätstyps in Abhängigkeit der Entitätsmengen Abbildung 26: Abbildung einer Typhierarchie in Abhängigkeit der Entitätsmengen Abbildung 27: Abbildung auf ein Ressourcen- und ein Reifikations-Template Abbildung 28: Abbildung mehrerer Eigenschaften auf eine offene Liste Abbildung 29: Abbildung auf eine geschlossene Liste Abbildung 30: Vorgehensweise bei der Überführung von SPARQL-Anfragen nach OData-URIs Abbildung 31: Ermittlung der Graph-Templates in Abhängigkeit der relevanten Ressourcen-Variablen v

6 Tabellenverzeichnis Tabelle 1: SPARQL-Ergebnistabelle Tabelle 2: Verschiedene in SPARQL unterstützte Filter-Funktionen Tabelle 3: Die von SPARQL unterstützten Modifikatoren Tabelle 4: Die Operatoren der SPARQL-Algebra (entnommen aus [155]) Tabelle 5: Abbildung der EDM-Datentypen auf die XSD-Datentypen Tabelle 6: Abbildung von XPath-/XQuery-Funktionen und Operatoren auf OData-Funktionen und Operatoren Tabelle 7: Ergebnisse des Performance-Tests für den Northwind-Service in ms Tabelle 8: Ergebnisse des Performance-Tests für den Sales Order Service in ms vi

7 Verzeichnis der Listings Listing 1: RDF-Tripel Listing 2: Die Typangabe mit rdf:type Listing 3: Ein RDF-Graph in Turtle Listing 4: Abkürzende Schreibweise für Namensräume in Turtle Listing 5: Die abgekürzte Schreibweise für mehrere Aussagen über dasselbe Subjekt in Turtle Listing 6: Mehrere Aussagen mit gleichem Subjekt und Prädikat in Turtle Listing 7: Leerer Knoten in Turtle Listing 8: Abgekürzte Schreibweise für leere Knoten in Turtle Listing 9: Darstellung geschlossener Listen mit Turtle Listing 10: Eine SPARQL-Anfrage (angelehnt an die Anfrage aus [104]) Listing 11: RDF-Graph Listing 12: Eine SPARQL-Anfrage mit dem UNION-Operator (angelehnt an die Anfrage aus [104]) Listing 13: Die Angabe eines optionalen Graph-Musters in SPARQL (angelehnt an die Anfrage aus [104]) Listing 14: Die FILTER-Anweisung in SPARQL Listing 15: Die Verwendung des CONSTRUCT-Operators in SPARQL Listing 16: Die Verwendung des ASK-Operators in SPARQL Listing 17: Der SPARQL-DESCRIBE-Operator Listing 18: Die Sortierung in SPARQL mit dem ORDER BY-Operator Listing 19: Benannte Graphen in SPARQL Listing 20: Eine SPARQL-Anfrage, welche in einen Ausdruck der SPARQL-Algebra überführt werden soll Listing 21: Der SPARQL-Algebra-Ausdruck für die SPARQL-Anfrage aus Listing Listing 22: Ein RDF-Datensatz Listing 23: Ein Atom Feed Dokument Listing 24: Ein Service-Dokument Listing 25: Ausschnitt aus einem Service-Metadaten-Dokument Listing 26: Eine URI zur Abfrage des Herstellernamens eines bestimmten Equipments Listing 27: Die OData filter-anweisung Listing 28: Angabe des Hosts, des Typs und der URI-Struktur für den Order-Entitätstyp Listing 29: Ein Ressourcen-Template auf Basis des Order-Entitätstyps Listing 30: Beschreibung der Abbildung einzelner Eigenschaften auf konkrete Aussagen Listing 31: Aus einer Entität erzeugter RDF-Graph mit typisierten Literalen Listing 32: Spezifikation eines Typs außerhalb des XSD-Namensraums Listing 33: Literal mit einem Typ außerhalb des XSD-Namensraums Listing 34: Spezifikation der Sprache Listing 35: Literal mit Sprachangabe Listing 36: Definition von Ressourcen-Variablen vii

8 Listing 37: Semantische Erweiterung der Eigenschaften bei der Abbildung auf mehrere Ressourcen-Templates Listing 38: Ein Referenzmechanismus für Eigenschaften Listing 39: Berechnung eines Objekts unter Verwendung von XQuery- und XPath- Funktionen Listing 40: Die Beschreibung leerer Knoten Listing 41: Abbildung mehrerer Entitätstypen durch explizite Angabe der Variable Listing 42: Abbildung mehrerer Entitätstypen durch explizite Kennzeichnung der Navigationseigenschaft Listing 43: Abbildung einer Navigationseigenschaft auf abstrakte Aussagen über die Angabe der Variablen Listing 44: Abbildung einer Navigationseigenschaft auf abstrakte Aussagen durch explizite Kennzeichnung Listing 45: Abbildung einer Navigationseigenschaft mit Angabe der Ziel-Ressource Listing 46: Abbildung einer Navigationseigenschaft mit Angabe der Subjekt-Ressourcen-Variable Listing 47: Abbildung über mehrerer Navigationseigenschaften durch explizite Angabe der Variable Listing 48: Abbildung über mehrerer Navigationseigenschaft durch explizite Kennzeichnung Listing 49: Abbildung mehrerer Navigationseigenschaften auf abstrakte Aussagen ohne Kennzeichnung der Navigationseigenschaft Listing 50: Abbildung mehrere Navigationseigenschaften auf eine abstrakte Aussage mittels expliziter Kennzeichnung Listing 51: Abbildung einer Eigenschaft auf mehrere Aussagen Listing 52: Beschreibung eines komplexen Typs Listing 53: Semantische Beschreibung einer Typ-Hierarchie Listing 54: Semantische Beschreibung zur Abbildung eines Entitätstyps in Abhängigkeit der Entitätsmengen Listing 55: Semantische Beschreibung zur Abbildung einer Typhierarchie in Abhängigkeit der Entitätsmengen Listing 56: Beschreibungen von Entitätsmengen mittels Filterausdrücken Listing 57: Beschreibung der Einschränkung einer Entitätsmenge mit einem SPARQL-Operator Listing 58: Beschreibung der Reifikation Listing 59: Beschreibung der Abbildung mehrerer Eigenschaften auf eine offene Liste Listing 60: Eine Beispiel-SPARQL-Abfrage Listing 61: Eine SPARQL-Anfrage Listing 62: Ausschnitt aus dem RDF-Graph-Template des Northwind-Services Listing 63: Ein Ausdruck der SPARQL-Algebra Listing 64: Semantische Annotationen in vereinfachter Schreibweise Listing 65: Semantische Erweiterung einer Typ-Hierarchie Listing 66: Einbeziehung eines komplexen Typs in die Abbildung Listing 67: Auflösung einer geschlossenen Liste viii

9 Listing 68: Ausschnitt aus einem semantisch erweiterten CSDL-Dokument Listing 69: Abbildung eines Entitätstyps und eines komplexen Typs auf ein Ressourcen-Template Listing 70: Ein einfaches Graph-Muster mit leeren Knoten Listing 71: Ein RDF-Graph ix

10 Algorithmenverzeichnis Algorithmus 1: STr = st_p(p) Algorithmus 2: STr = st_et(e) Algorithmus 3: STr = uprv(t) Algorithmus 4: STr = st_ct(c) Algorithmus 5: OTr = ot_p(p) Algorithmus 6: OTr = ot_n(n) Algorithmus 7: TT = generatetts(st, pt, OT) Algorithmus 8: R = gtrv(t) Algorithmus 9: GT = gt(es) Algorithmus 10: GT = gt(t, R) Algorithmus 11: GT = rtts(m, R) Algorithmus 12: PA = cp(tt) Algorithmus 13: tt = ctt(tt, pa) Algorithmus 14: m = matchpt(p, t) Algorithmus 15: m = matchtt(t1, t2) Algorithmus 16: m = matchtp_tt(tp, tt) Algorithmus 17: ou = createodatauri(tt, tp) Algorithmus 18: ou = calcou(pa) Algorithmus 19: F = calcfilter(tt, tp) Algorithmus 20: ou = mergeuris(ou1, ou2) Algorithmus 21: OU = merge(ou1, OU2) x

11 Danksagung Diese Arbeit ist im Rahmen des durch das BMBF geförderten RES-COM-Projekts bei der SAP AG in Dresden in Kooperation mit dem Fachgebiet Verteilte Systeme an der Universität Kassel entstanden. Ich danke der SAP AG, die mir über die Finanzierung einer Doktorandenstelle diese Doktorarbeit ermöglicht hat. Insbesondere möchte ich Herrn Dr. Jochen Rode und Frau Dr. Barbara Schennerlein für ihre freundschaftliche Zusammenarbeit danken. Trotz knapper Ressourcen haben sie mir stets genügend Zeit für die Durchführung dieser Arbeit eingeräumt. Herrn Prof. Dr. Geihs möchte ich für die Betreuung dieser Arbeit danken. Ohne seine zahlreichen Anregungen und die konstruktive Kritik, die mich bereits seit Beginn meines Studiums begleitet haben, wäre die Erstellung dieser Arbeit nicht möglich gewesen. Herrn Prof. Dr. Mädche danke ich für seine hilfreichen Hinweise, und dass er das Zweitgutachten mit großer Begeisterung für das Thema übernommen hat. Des Weiteren möchte ich meinen Kollegen bei SAP danken, die durch ihre fortwährende kollegiale Zusammenarbeit und Unterstützung einen motivierenden Beitrag zur Erstellung dieser Dissertation geleistet haben. Mein Dank gilt insbesondere: Stefan Hesse, Alexander Claus, Dr. Sven Horn, Dr. Daniela Wünsch, Dr. Baris Sertkaya, Dr. Bart-Jan van Putten, Thomas Janke, Dr. Volodymyr Vasyutynskyy, Christian Hengstler, Dr. Matthias Heinrich und Dr. Steffen Göbel. Mein besonderer Dank gilt außerdem Dr. Markus Küstner, der mir im Laufe der letzten Jahre im Rahmen zahlreicher Projekte sowohl fachlich als auch methodisch stets eine große Hilfe war. Darüber hinaus möchte ich den Studenten danken, die mich die letzten Jahre unterstützt haben. Nicht zuletzt möchte ich meinen Eltern für die Korrektur dieser Arbeit und ihre Unterstützung danken. xi

12 Zusammenfassung Enterprise-Resource-Planning-Systeme (ERP-Systeme) bilden für die meisten mittleren und großen Unternehmen einen essentiellen Bestandteil ihrer IT-Landschaft zur Verwaltung von Geschäftsdaten und Geschäftsprozessen. Geschäftsdaten werden in ERP-Systemen in Form von Geschäftsobjekten abgebildet. Ein Geschäftsobjekt kann mehrere Attribute enthalten und über Assoziationen zu anderen Geschäftsobjekten einen Geschäftsobjektgraphen aufspannen. Existierende Schnittstellen ermöglichen die Abfrage von Geschäftsobjekten, insbesondere mit Hinblick auf deren Attribute. Die Abfrage mit Bezug auf ihre Position innerhalb des Geschäftsobjektgraphen ist jedoch über diese Schnittstellen häufig nur sehr schwierig zu realisieren. Zur Vereinfachung solcher Anfragen können semantische Technologien, wie RDF und die graphbasierte Abfragesprache SPARQL, verwendet werden. SPARQL ermöglicht eine wesentlich kompaktere und intuitivere Formulierung von Anfragen gegen Geschäftsobjektgraphen, als es mittels der existierenden Schnittstellen möglich ist. Die Motivation für diese Arbeit ist die Vereinfachung bestimmter Anfragen gegen das im Rahmen dieser Arbeit betrachtete SAP ERP-System unter Verwendung von SPARQL. Zur Speicherung von Geschäftsobjekten kommen in ERP-Systemen typischerweise relationale Datenbanken zum Einsatz. Die Bereitstellung von SPARQL-Endpunkten auf Basis von relationalen Datenbanken ist ein seit längerem untersuchtes Gebiet. Es existieren verschiedene Ansätze und Tools, welche die Anfrage mittels SPARQL erlauben. Aufgrund der Komplexität, der Größe und der Änderungshäufigkeit des ERP-Datenbankschemas können solche Ansätze, die direkt auf dem Datenbankschema aufsetzen, nicht verwendet werden. Ein praktikablerer Ansatz besteht darin, den SPARQL-Endpunkt auf Basis existierender Schnittstellen zu realisieren. Diese sind weniger komplex als das Datenbankschema, da sie die direkte Abfrage von Geschäftsobjekten ermöglichen. Dadurch wird die Definition des Mappings erheblich vereinfacht. Das ERP-System bietet mehrere Schnittstellen an, die sich hinsichtlich des Aufbaus, der Zielsetzung und der verwendeten Technologie unterscheiden. Unter anderem wird eine auf OData basierende Schnittstelle zur Verfügung gestellt. OData ist ein REST-basiertes Protokoll zur Abfrage und Manipulation von Daten. Von den bereitgestellten Schnittstellen weist das OData-Interface gegenüber den anderen Schnittstellen verschiedene Vorteile bei Realisierung eines SPARQL-Endpunktes auf. Es definiert eine Abfragesprache und einen Link-Adressierungsmechanismus, mit dem die zur Beantwortung einer Anfrage benötigten Service-Aufrufe und die zu übertragende Datenmenge erheblich reduziert werden können. Das Ziel dieser Arbeit besteht in der Entwicklung eines Verfahrens zur Realisierung eines SPARQL-Endpunktes auf Basis von OData-Services. Dazu wird zunächst eine Architektur vorgestellt, die als Grundlage für die Implementierung eines entsprechenden Systems dienen kann. Ausgehend von dieser Architektur, werden die durch den aktuellen Forschungsstand noch nicht abgedeckten Bereiche ermittelt. Nach bestem Wissen ist diese Arbeit die erste, welche die Abfrage von OData-Schnittstellen mittels SPARQL untersucht. Dabei wird als Teil dieser Arbeit ein neuartiges Konzept zur semantischen Beschreibung von OData-Services vorgestellt. Dieses ermöglicht die Definition von Abbildungen der von den Services bereitgestellten Daten auf RDF-Graphen. Aufbauend auf den Konzepten zur semantischen Beschreibung wird eine xii

13 Evaluierungssemantik erarbeitet, welche die Auflösung von Ausdrücken der SPARQL- Algebra gegen semantisch annotierte OData-Services definiert. Dabei werden die Daten aller OData-Services ermittelt, die zur vollständigen Abarbeitung einer Anfrage benötigt werden. Zur Abfrage der relevanten Daten wurden Konzepte zur Erzeugung der entsprechenden OData-URIs entwickelt. Das vorgestellte Verfahren wurde prototypisch implementiert und anhand zweier Anwendungsfälle für die im betrachteten Szenario maßgeblichen Servicemengen evaluiert. Mit den vorgestellten Konzepten besteht nicht nur die Möglichkeit, einen SPARQL- Endpunkt für ein ERP-System zu realisieren, vielmehr kann jede Datenquelle, die eine OData-Schnittstelle anbietet, mittels SPARQL angefragt werden. Dadurch werden große Datenmengen, die bisher für die Verarbeitung mittels semantischer Technologien nicht zugänglich waren, für die Integration mit dem Semantic Web verfügbar gemacht. Insbesondere können auch Datenquellen, deren Integration miteinander bisher nicht oder nur schwierig möglich war, über Systeme zur föderierten Abfrage miteinander integriert werden. xiii

14 Teil I Grundlagen 1

15 1 Einleitung 1.1 Motivation Die meisten mittleren und großen Unternehmen verwenden zur Verwaltung ihrer Geschäftsdaten und Geschäftsprozesse ERP-Systeme (Enterprise-Resource-Planning). Geschäftsdaten, wie z.b. Kunden, Bestellungen, Aufträge usw., werden in ERP-Systemen in Form von Geschäftsobjekten (business objects) repräsentiert. Geschäftsobjekte enthalten eine Menge von Attributen (Name, Beschreibung usw.) und Assoziationen zu anderen Geschäftsobjekten. Mehrere Geschäftsobjekte können durch gegenseitige Assoziation einen Graphen aufspannen (Geschäftsobjektgraph). Abbildung 1 zeigt einen vereinfachten Geschäftsobjekt-Graph, der in einem ERP- System im Rahmen zweier Kundenaufträge (Sales Orders) erstellt wurde [105]. Sobald ein Kunde eine Bestellung aufgibt, wird im ERP-System ein Sales Order Geschäftsobjekt angelegt (z.b. Sales Order 1A). Das Sales Order Geschäftsobjekt enthält eine Relation auf ein Geschäftsobjekt vom Typ Fertigungsauftrag (Production Order 1A), welches alle Informationen enthält, die notwendig sind, um die bestellten Güter herzustellen. Die zur Produktion benötigten Materialien werden durch mehrere, mit dem Fertigungsauftrag verbundene, Material Geschäftsobjekte (Material 1A, 1B, 1C) repräsentiert. Da die Materialien 1A und 1C nicht mehr vorrätig sind, müssen sie zunächst bestellt werden. Die entsprechenden Kaufaufträge werden durch Geschäftsobjekte vom Typ Bestellung (Purchase Order 1A, 2A) abgebildet. Sales Order 1A Sales Order 2A Production Order 1A Production Order 2A Material 1A Material 1B Material 1C Material 2A Material 2B Purchase Order 1A Purchase Order 2A Purchase Order 2B Abbildung 1: Ein Geschäftsobjektgraph. Wenn sich die Erfüllung einer Bestellung (z.b. Purchase Order 2A) und damit die Lieferung der entsprechenden Materialen (Material 1C, 2A) durch einen externen Lieferanten verzögert, dann verzögert sich auch der Start der Produktionsprozesse, welche die entsprechenden Materialien benötigen. Die Herausforderung besteht darin, für eine gegebene Bestellung (Purchase Order) alle Aufträge (Sales Orders) zu ermitteln, die im Falle einer Verzögerung betroffen wären. 2

16 SAP ERP ist das am weitesten am Markt verbreitete ERP-System [2]. Diese Arbeit fokussiert sich daher auf das ERP-System von SAP. Soweit nicht anders erwähnt, ist im Folgenden mit ERP-System immer das ERP-System von SAP gemeint. Das ERP-System stellt verschiedene Schnittstellen zur Abfrage von Geschäftsobjekten zur Verfügung. Dazu gehören: Business Application Programming Interface (BAPI): Proprietäre, entferntaufrufbare Funktionsmodule. Enterprise Services (ES): Eine SOAP-/WSDL-basierte Web Service Schnittstelle. NetWeaver Gateway: Eine Infrastruktur zur Erstellung und Bereitstellung von OData-basierten REST-Services. SAP NetWeaver Gateway bietet standardmäßig keine Services 1 an. Stattdessen ermöglicht Gateway die Erstellung anwendungsspezifischer Services. Jede Abfrage von Geschäftsobjekten setzt somit die Erstellung der entsprechenden Services voraus. Die BAPI und die Enterprise Services bieten eine nach Geschäftsobjekt-Typen gruppierte Menge von Funktionen bzw. Services zur Abfrage von Geschäftsobjekten an. Der Aufbau der Schnittstellen ermöglicht die einfache Abfrage von einzelnen Geschäftsobjekten nach ihren Attributen. Abfragen von Geschäftsobjekten bzgl. deren Relationen zu anderen Geschäftsobjekten (wie in Abbildung 1 dargestellt) sind hingegen nur sehr schwierig zu realisieren. Ein Grund dafür besteht darin, dass viele der bereitgestellten Funktionen und Services nicht die Geschäftsobjekt-übergreifende Abfrage erlauben. Um die Abfrage von Geschäftsobjekten, insbesondere hinsichtlich ihrer Anordnung im Geschäftsobjektgraph, zu vereinfachen, können semantische Technologien wie SPARQL verwendet werden. SPARQL ist eine graphbasierte Abfragesprache für RDF [155]. Die Verwendung von SPARQL zur Abfrage von ERP-Systemen hat gegenüber den beschriebenen Schnittstellen folgende Vorteile: Anfragen können wesentlich kompakter und intuitiver formuliert werden. Die Relationen zwischen den Geschäftsobjekten müssen nicht erraten werden, da sie durch eine Ontologie formalisiert werden können. Da SPARQL auf RDF basiert, können auf RDF aufbauende Techniken, wie z.b. Inferenzmechanismen, mit in die Abfrageverarbeitung einbezogen werden. 1 Die Begriffe Service und Service-Interface bzw. Service-Schnittstelle werden im Folgenden entsprechend den Definitionen in [124] verwendet. 3

17 1.2 Problem Im Allgemeinen existieren zwei Ansätze, um einen SPARQL-Endpunkt für eine bestehende Datenquelle bereitzustellen [164]: ETL (Extract Transform Load): Die Daten werden aus der ursprünglichen Datenquelle geladen, nach RDF überführt und in einem Triple Store abgespeichert. Der SPARQL-Prozessor arbeitet auf Basis der im Triple Store abgespeicherten RDF- Daten. Für zahlreiche Datenformate existieren Werkzeuge zur Überführung nach RDF. Dynamisches Mapping: Der SPARQL-Prozessor arbeitet direkt auf der Original- Datenquelle. Es werden nur die Daten abgefragt, die für die Beantwortung einer vorliegenden SPARQL-Anfrage notwendig sind. Die Replikation der Daten, wie sie bei dem ETL-Ansatz verfolgt wird, ist aufgrund der Menge und Änderungshäufigkeit der typischerweise in ERP-Systemen vorhandenen Daten kein praktikabler Ansatz. Stattdessen ist ein dynamischer Ansatz erforderlich, bei dem die Daten in Abhängigkeit der vorliegenden SPARQL-Anfrage dynamisch aus dem ERP-System abgefragt werden. In SAP ERP-Systemen werden relationale Datenbanken zur Speicherung der Geschäftsobjekte verwendet. Es existieren verschiedene Ansätze und Tools um SPARQL- Endpunkte mittels dynamischem Mappings für relationale Datenbanken bereitzustellen (z.b. Virtuoso [76] oder D2RQ [18]). Grundsätzlich können zwei Ansätze zur Abbildung des Datenbankschemas auf die des SPARQL-Endpunktes zugrundeliegende Ontologie unterschieden werden [168]: Direktes Mapping: Die Ontologie wird automatisch auf Basis des Datenbankschemas generiert [167, 168, 169]. Dabei werden aus den Tabellen und Spalten automatisch die Konzepte und Eigenschaften der Ontologie erzeugt. Mapping-Sprache: Mittels einer Mapping-Sprache wird manuell ein Mapping von dem Datenbankschema auf die Ontologie erstellt [70, 98]. Weder der erste noch der zweite Ansatz können für relationale Datenbanken von ERP- Systemen verwendet werden. Die zu erstellende Ontologie, welche die Grundlage für den SPARQL-Endpunkt bildet, muss die Geschäftsobjekte, deren Attribute und die Relationen zu anderen Geschäftsobjekten modellieren. Geschäftsobjekt-Typen haben in der Regel keine direkte Abbildung im Datenbankschema des ERP-Systems. Stattdessen sind sie häufig über mehrere Tabellen verteilt. Diese Tabellen und ihre Spalten, welche den Attributen der Geschäftsobjekte entsprechen, haben oftmals nicht-intuitive Bezeichnungen. Der direkte Mapping-Ansatz würde folglich in einer sehr komplexen Ontologie mit mehreren Konzepten für die meisten Geschäftsobjekt-Typen resultieren. Eine solche Ontologie wäre für die Anfrageformulierung ungeeignet. Obwohl es theoretisch möglich ist, manuell ein Mapping 4

18 des Datenbankschemas auf eine existierende Ontologie zu erstellen, hätte diese Vorgehensweise ebenfalls verschiedene Nachteile: Das ERP-Datenbankschema besteht aus mehreren tausend Tabellen, die häufig schwierig zu verstehen sind. Der Aufwand für die manuelle Erstellung eines Mappings wäre daher erheblich. Viele Geschäftsobjekt-Typen haben keine direkte Abbildung im Datenbankschema. Dadurch wird der Aufwand zur Definition des Mappings weiter erhöht. Es ist nicht ungewöhnlich, dass sich das Datenbankschema des ERPs in Abhängigkeit der Version ändert, d.h. das Datenbankschema eines ERP-Systems einer bestimmten Version kann anders aufgebaut sein als das Datenbankschema der vorherigen Version. Ein einmal definiertes Mapping wäre daher nur für eine bestimmte Version gültig. Dementsprechend können existierende Ansätze, welche direkt auf relationalen Datenbanken aufsetzen, für ERP-Systeme nicht verwendet werden. Ein besserer Ansatz besteht darin, bestehende ERP-Schnittstellen, welche die direkte Abfrage von Geschäftsobjekten ermöglichen, als Datenquelle für den SPARQL-Endpunkt zu verwenden. Diese Vorgehensweise hat gegenüber der Verwendung der relationalen Datenbank als Datenquelle folgende Vorteile: Die Schnittstellen sind weniger komplex als das Datenbankschema. Des Weiteren sind sie gut dokumentiert. Dadurch wird die Definition des Mappings vereinfacht. Die Funktionen und Services der Schnittstellen sind den Geschäftsobjekt-Typen zugeordnet. Sie ermöglichen die direkte Abfrage der Geschäftsobjekte. Damit wird das Mapping auf die entsprechenden Konzepte der Ontologie wesentlich vereinfacht. Für existierende Funktionen bzw. Services ist Abwärtskompatibilität für einen längeren Zeitraum garantiert. Ein Mapping, das in Bezug auf eine bestimmte ERP Version definiert wurde, ist somit auch für zukünftige Versionen gültig. Funktionen oder Services, die für bestimmte Anwendungsfälle erstellt wurden und in das Mapping mit einbezogen wurden, unterliegen üblicherweise nicht der Versionierung durch SAP. Die entsprechenden Mapping-Definitionen sind daher ebenfalls für zukünftige Versionen gültig. Neue Funktionen und Services, welche im Rahmen einer neuen Version veröffentlicht wurden, können dem SPARQL-Endpunkt zur Verfügung gestellt werden, ohne dass die bereits bestehende Mapping-Definition geändert werden muss. Von den bereits in Abschnitt 1.1 erwähnten ERP-Schnittstellen (BAPI, ES, Gateway) hat SAP NetWeaver Gateway verschiedene Vorteile bei der Verwendung als Datenquelle für einen SPARQL-Endpunkt. Wie bereits erwähnt, ist NetWeaver Gateway eine Komponente, welche die Bereitstellung und Konsumierung von Geschäftsdaten aus SAP Backend Systemen, wie 5

19 dem SAP ERP, ermöglicht. Gateway basiert auf dem OData Protokoll [137], welches die Erstellung von REST-basierten Services [81, 82] ermöglicht. Gateway hat gegenüber der BAPI und den Enterprise Services bei der Verwendung als Abfragemechanismus für einen SPARQL-Endpunkt folgende Vorteile: OData definiert eine Abfragesprache, welche die serverseitige Filterung der Daten ermöglicht. Dadurch kann die zu übertragende Datenmenge wesentlich reduziert werden. Neben der OData-Schnittstelle für das SAP ERP-System sind entsprechende Schnittstellen auf für andere Systeme geplant bzw. existieren bereits, wie z.b. CRM, SRM, Business Objects, HANA usw. Die, im Rahmen der Arbeit, zu entwickelnden Konzepte können daher wiederverwendet werden, um SPARQL-Endpunkte auch für andere Systeme bereitzustellen. Der Link-Adressierungsmechanismus von OData ermöglicht eine wesentliche Reduzierung der notwendigen Server-Anfragen bei der Abfrage von mehreren in Relation stehenden Geschäftsobjekten. Diese Arbeit adressiert die Herausforderung der Erstellung eines SPARQL-Endpunktes auf Basis gegebener OData-Services. 1.3 Lösungsansatz In diesem Abschnitt wird der in dieser Arbeit realisierte Lösungsansatz vorgestellt [107]. Abbildung 2 zeigt die Architektur des Systems zur Realisierung eines SPARQL-Endpunktes auf Basis von OData-Services. Zur Darstellung der Architektur wurde TAM (Technical Architecture Modeling) [1] verwendet. Die Architektur ist in Form eines Block-Diagramms dargestellt. Wobei die Rechtecke aktive Systeme repräsentieren und die passiven Systeme bzw. die Datenspeicher durch Rechtecke mit zwei abgerundeten Kanten abgebildet werden. Die durch einen Kreis mit angehängtem R unterbrochenen Verbindungen markieren dabei Anfrage/Antwort-Kanäle. Pfeile von bzw. zu einem Datenspeicher kennzeichnen Lese- bzw. Schreibzugriffe. Die semantischen Service-Beschreibungen aller am System registrierten OData- Services werden in der Service Registry gespeichert. Anfragen in Form von SPARQL werden vom Client an die Query Engine gestellt. Die Query Engine analysiert die SPARQL-Anfrage und evaluiert sie gegen die in der Service Registry gespeicherten semantischen Service- Beschreibungen. Wenn die von einem Service bereitgestellten Daten für die Abarbeitung der Anfrage relevant sind, erzeugt die Query Engine die entsprechenden URIs zur Abfrage dieser Daten. Die erzeugten URIs werden von der Query Engine an die Execution Engine weitergeleitet, welche die adressierten Daten von den OData-Services abruft. Die von den OData-Services zurückgelieferten Daten in XML werden von dem RDF Adapter nach RDF überführt und in einem Triple Store gespeichert. Ein Reasoner kann auf Basis gegebener Inferenzregeln zusätzliche Tripel erzeugen. Die eigentliche, vom Client gesendete, Anfrage 6

20 wird von einem SPARQL Prozessor auf dem im Triple Store gespeicherten RDF-Datensatz ausgeführt. Das Ergebnis wird an die Query Engine übermittelt, welche sie an den Client zurückgibt. Client Anwendung R SPARQL-OData-Layer Query Engine R SPARQL Prozessor Service Registry R Triple Store Reasoner Execution Engine R RDF Adapter R OData Server Abbildung 2: SPARQL-OData-Layer. In Bezug auf das semantische Reasoning existieren zahlreiche Forschungsarbeiten und verschiedene Implementierungen, die unterschiedliche Komplexitätsstufen abdecken (z.b. Pellet [21], KAON2 [19] und HermiT [10]). Das gleiche gilt für SPARQL-Prozessoren (z.b. ARQ [17], Sesame [23] und Ontobroker [20]), Triple Stores (z.b. AllegroGraph [13], Stardog [11] und Jena TDB [12]) und RDF-Adapter (z.b. XML2RDF [15], Sponger [16] und Krextor [14]). Die Anfrage von OData-Services kann mittels eines einfachen HTTP-Clients erfolgen. Da OData-Services entweder XML oder JSON zurückgeben, kann das Parsen der Antworten ebenfalls mit bereits existierenden Bibliotheken realisiert werden. Soweit bekannt, existieren keine Ansätze zur semantischen Beschreibung, die speziell mit Hinblick auf OData-Services entwickelt wurden. Des Weiteren existieren keine Verfahren zur Auflösung von SPARQL-Anfragen gegen OData-Services. Daher erfolgt im Rahmen dieser Arbeit eine Fokussierung auf die semantische Beschreibung von OData-Services und die Realisierung der Query Engine. 7

21 1.4 Beiträge Der in dieser Arbeit vorgestellte Ansatz ist das erste Verfahren zur Realisierung eines SPARQL-Endpunktes auf Basis von OData-Services. Als Teil dieses Ansatzes wurden folgende, neuartige Konzepte erarbeitet, die den aktuellen Forschungsstand erweitern: 1. Semantische Beschreibung von OData-Services: Es wurde eine Erweiterung der Conceptual Schema Definition Language (CSDL) [138] spezifiziert, welche die Definition von Abbildungen des einem OData-Service zugrundeliegenden Entitätsdatenmodells auf RDF-Graph-Templates ermöglicht. Die RDF-Graph- Templates beschreiben die Struktur und den Aufbau der RDF-Graphen, die aus den vom OData-Service zurückgegebenen Daten erzeugt werden können. 2. Evaluierungssemantik: Auf Basis der durch die SPARQL-Spezifikation definierten Evaluierungssemantik [155] wurde eine Evaluierungssemantik mit Hinblick auf RDF- Graph-Templates definiert. Diese ermöglicht die Auflösung von SPARQL-Anfragen gegen die durch die semantischen Beschreibungen der OData-Services gegebenen RDF-Graph-Templates. 3. Erzeugung von OData-URIs: Es wurden Konzepte entwickelt, um die sich nach der Evaluierung einer SPARQL-Anfrage gegen die RDF-Graph-Templates ergebenden relevanten Tripel-Templates in URIs zu überführen. Diese URIs adressieren alle Daten, die benötigt werden, um die durch die Tripel-Templates beschriebenen Tripel erzeugen zu können. Das in dieser Arbeit beschriebene Verfahren kann verwendet werden, um für ein ERP-System auf Basis seiner OData-Schnittstelle einen SPARQL-Endpunkt zu realisieren. Wie in Abschnitt 1.1 beschrieben, kann dieser SPARQL-Endpunkt zur vereinfachten Anfrage des ERP-Systems verwendet werden. Neben der Vereinfachung bestimmter Anfragen an ERP- Systeme kann das vorgestellte Verfahren auch eingesetzt werden, um mehrere ERP-Systeme miteinander zu integrieren. Um unternehmensübergreifende Kooperationen zu ermöglichen, ist oftmals eine Verknüpfung der in verschiedenen ERP-Systemen vorhandenen Daten notwendig [108]. Abbildung 3 zeigt ein typisches Szenario. 8

22 MB1.1 MB1.2 MB2.1 MB2.2 MB2.3 MB1.3 MH1 MH2 MH3 MB3.1 Komponentenhersteller (KH) Maschinenhersteller (MH) Maschinenbetreiber (MB) Produktauslieferung KH1 MB3.3 Service- und Informationsanfragen während MH4 MH5 MH6 des gesamten Asset-Lebenszyklus viele Medienbrüche MB3.2 Abbildung 3: Beziehungen zwischen Hersteller und Betreiber [108]. Komponentenhersteller (KH1, KH2) produzieren Geräte, welche sie an verschiedene Maschinenhersteller (MH1, MH2, MH3) verkaufen. Die Maschinenhersteller verbauen die Geräte in Maschinen und verkaufen diese Maschine an ihre Kunden, die Maschinenbetreiber (MB1.1, MB2.1 usw.). Ein einzelner Maschinenbetreiber (z.b. MB3.3) hat somit mehrere Gerätelieferanten (z.b. KH1, MH3). Diese verfügen über unterschiedliche Informationen zu einem bestimmten Gerät. Um in bestimmten Situationen (wie z.b. dem Ausfall eines Gerätes) effektiv reagieren zu können, ist eine Verknüpfung dieser Informationen notwendig. Mit dem in dieser Arbeit vorgestellten Verfahren können SPARQL-Endpunkte für die jeweiligen ERP- Systeme der involvierten Parteien bereitgestellt werden. Mittels Systemen zur föderierten Abfrage (z.b. [116, 156]) besteht dann die Möglichkeit, die verschiedenen Systeme miteinander zu integrieren. Neben ERP-Systemen kann diese Vorgehensweise für alle Datenquellen verwendet werden, die eine OData-Schnittstelle zur Verfügung stellen. Dadurch werden große Datenmengen, die bisher hinter OData-Services verborgen waren, für die Integration mit dem Semantic Web [44] verfügbar gemacht. Zusammenfassend können mit den in dieser Arbeit eingeführten Konzepten folgende Anwendungsfälle realisiert werden: KH2 Vereinfachung der Anfrage bestehender Systeme: Bestimmte graphbasierte Anfragen können mittels SPARQL sehr kompakt und intuitiv formuliert werden. Mit den in dieser Arbeit vorgestellten Konzepten besteht daher die Möglichkeit, die Anfrage bestehender Systeme, die ein OData-Interface zur Verfügung stellen, zu vereinfachen. Integration bestehender Systeme: Systeme, die bisher nicht oder nur schwierig miteinander integriert werden konnten, können nun über ihre OData-Schnittstelle mittels SPARQL mit anderen Systemen, die eine SPARQL-Schnittstelle zur Verfügung stellen, z.b. mittels Systemen zur föderierten Abfrage, miteinander integriert werden. 9

23 Integration von OData-Services in das Semantic Web: Die in dieser Arbeit vorgestellten Konzepte ermöglichen die Bereitstellung von SPARQL-Endpunkten für jeden bereits existierenden OData-Service. Damit werden große Mengen an Daten, die bisher nicht für die Verarbeitung mittels semantischer Technologien zugänglich waren, für die Integration mit dem Semantic Web verfügbar gemacht. 1.5 Aufbau der Arbeit Diese Arbeit ist in drei Teile unterteilt. Der erste Teil Grundlagen befasst sich in Kapitel 2 mit den für diese Arbeit relevanten Technologien. Insbesondere werden RDF (Abschnitt 2.1), SPARQL (Abschnitt 2.2) und OData (Abschnitt 2.3) vorgestellt. Des Weiteren werden in Kapitel 3 die verwandten Arbeiten aus den Bereichen der semantischen Beschreibung von Web Services (Abschnitt 3.1) und der Service-basierten SPARQL-Endpunkte (Abschnitt 3.2) betrachtet. Der zweite Teil Lösungsansatz enthält die wesentlichen Beiträge dieser Arbeit. In Kapitel 4 werden die Konzepte zur semantischen Beschreibung von OData-Services erläutert. Diese umfassen unter anderem eine Erweiterung von CSDL zur Abbildung von Entitätsdatenmodellen auf RDF-Graph-Templates. Des Weiteren wird eine Formalisierung der Konzepte eingeführt, die als Grundlage für die Definition der Evaluierungssemantik für RDF- Graph-Templates in Kapitel 5 dient. Neben der Auflösung von SPARQL-Anfragen gegen die durch die semantischen Beschreibungen der OData-Services gegebenen RDF-Graph- Templates, wird in Kapitel 5 auch die Erzeugung der OData-URIs auf Basis der Templates beschrieben. Der dritte Teil umfasst die Implementierung und Evaluierung der vorgestellten Lösung. Die Evaluierung der prototypischen Implementierung ist zweigeteilt. Zunächst erfolgt in Abschnitt 6.1 eine Evaluierung gegen den öffentlich verfügbaren Northwind- Service. Wobei die Gesamtperformance betrachtet wird und die von den einzelnen Komponenten (siehe Abbildung 2) benötigten Zeiten zueinander ins Verhältnis gesetzt werden. In Abschnitt 6.2 werden für einen ERP-Service die Zeiten ermittelt, die von der Query Engine zur Kalkulation der OData-URIs benötigt werden. Die Tests wurden dabei unter Berücksichtigung der bei dem ERP-Szenario relevanten Servicemengen durchgeführt. 10

24 2 Grundlagen 2.1 Resource Description Framework (RDF) Bei den in diesem Abschnitt gemachten Erläuterungen handelt es sich teilweise um eine ergänzte Fassung meiner in [104] gemachten Ausführungen. RDF (Resource Description Framework) [56, 96, 140] ist ein Datenmodell, das unter anderem zur allgemeinen Wissensrepräsentation eingesetzt wird [31]. Der RDF Primer weist darauf hin, dass der beabsichtigte Zweck von RDF insbesondere im Bereich der Repräsentation von Metadaten über Web Ressourcen liegt [140]. RDF bildet die Grundlage für diese Arbeit und ist daher für diese von integraler Bedeutung. RDF wurde vom W3C (World Wide Web Consortium) im Rahmen der von Tim Berners-Lee ausgerufenen Semantic Web Initiative [44] entwickelt. RDF liegt seit 2004 als W3C Recommendation vor. Als diese Arbeit begonnen wurde, wurde unter der Bezeichnung RDF 1.1 an einer Weiterentwicklung von RDF gearbeitet [69]. Da es sich zu diesem Zeitpunkt um einen Working Draft handelte, bezieht sich diese Arbeit, soweit nicht anders erwähnt, auf die RDF Version von 2004 [56, 96, 140]. Das Namensraum-Präfix rdf steht im Folgenden für den RDF-Namensraum ( Ein grundlegender Begriff in RDF ist der einer Aussage (Statement). Ein Beispiel einer Aussage ist: John Doe wohnt in New York. Eine Aussage setzt sich aus einem Subjekt (John Doe), einem Prädikat (wohnt) und einem Objekt (New York) zusammen. Ein RDF- Dokument besteht aus einer Menge von diesen, auch als RDF-Tripeln bezeichneten, Aussagen. Die eindeutige Identifikation des Elements, über das eine Aussage getroffen wird (Subjekt), die sogenannte Ressource, erfolgt in Form einer URI bzw. einer URI-Referenz 2 [45]. Die Person John Doe könnte z.b. durch folgende URI eindeutig identifiziert werden: Prädikate werden ebenfalls durch URIs identifiziert, z.b. Objekte hingegen können entweder Literale (New York) oder ein durch eine URI referenziertes Element sein ( Im Rahmen dieser Arbeit werden Aussagen, die als Objekte Literale aufweisen, als konkrete Aussagen bezeichnet. Aussagen, die zwei Ressourcen miteinander in Beziehung setzen, indem die URI der entsprechenden Ressource das Objekt der Aussage bildet, werden als abstrakte Aussagen bezeichnet. Diese Benennung erfolgt mit Anlehnung an die in OWL verwendeten Bezeichnungen von abstrakten und konkreten Rollen [99]. 2 Eine URI-Referenz (URIref) ist eine URI zusammen mit einem durch das Doppelkreuz (#) eingeleitetem optionalen Fragment. Im Folgenden werden die Begriffe URI und URI-Referenz synonym verwendet. 11

25 Die beiden Aussagen John Doe wohnt in New York und John Doe ist 27 Jahre alt können in RDF als Tripel, bestehend aus URIs und Literalen, formuliert werden (siehe Listing 1). 1. ( ( Listing 1: RDF-Tripel. Alles, was durch eine URI identifiziert werden kann, wird in RDF als Ressource bezeichnet. Subjekte und Prädikate sind demnach immer Ressourcen. Objekte können Ressourcen sein. Aussagen selbst sind ebenfalls Ressourcen. Über jede Ressource können Aussagen getroffen werden. Insbesondere ist es möglich, Aussagen über Aussagen zu treffen (Reifikation). Zu beachten ist, dass die URIs nicht notwendigerweise auf existierende Web-Ressourcen verweisen müssen. Sie dienen ausschließlich zur Identifizierung. Durch eine Menge von Aussagen über Elemente einer bestimmten Domäne entsteht ein Wissensgraph. Dieser Wissensgraph kann als Datenbasis für ein Inferenzsystem dienen, das mit entsprechenden Schlussfolgerungstechniken aus diesem neues (implizites) Wissen gewinnen kann. Literale (wie der Wert 27 in Zeile 6, Listing 1) können in RDF typisiert werden. RDF definiert, mit Ausnahme des rdf:xmlliteral-datentyps 3, keine eigenen Datentypen. Vielmehr können Datentypen aus beliebigen Namensräumen (wie z.b. XSD [130]) verwendet werden, die einem bestimmten konzeptionellen Rahmenwerk entsprechen [56]. RDF definiert ein Prädikat rdf:type, um eine Ressource als Instanz einer Klasse zu spezifizieren. Damit kann John Doe der Typ Student zugewiesen werden (siehe Listing 2). Die RDF-Spezifikation spezifiziert mehrere Klassen mit spezieller Bedeutung, z.b. rdf:property (Klasse aller Prädikate). 1. ( rdf:type, 2. Listing 2: Die Typangabe mit rdf:type. Eine für den Menschen leichter verständliche Darstellungsform, als die in Listing 1 und Listing 2 dargestellte Tripel-Darstellung, ist der Graph (siehe Abbildung 4). Subjekte und Objekte werden durch Knoten repräsentiert. Dabei werden URIs in Ellipsen und Literale in Rechtecke eingefasst. Die Prädikate bilden die Kanten zwischen den Knoten. 3 Mit rdf:xmlliteral können XML-Inhalte als Literale repräsentiert werden. 12

26 Abbildung 4: RDF-Graph. Es existieren verschiedene Darstellungsformen (z.b. N3 [43], Turtle [40] und RDF/XML [38]), die je nach Anwendungszweck unterschiedlich gut geeignet sind. Im Rahmen dieser Arbeit werden die Graph-Darstellung und Turtle verwendet. Die Graph-Darstellung wurde bereits gezeigt. Turtle wird in Abschnitt erläutert. Obwohl RDF/XML ein gängiges Serialisierungsformat ist, das von vielen Tools unterstützt wird, ist es für das Verständnis dieser Arbeit nicht von Bedeutung. Es wird daher nicht weiter erläutert. Ein RDF-Graph kann sogenannte leere Knoten (blank nodes) enthalten. Leere Knoten sind Ressourcen, denen keine URI zur Identifizierung zugewiesen wurde. Sie können als Subjekt oder Objekt, aber nicht als Prädikat einer Aussage eingesetzt werden. Abbildung 5 zeigt einen leeren Knoten, welcher eine Adresse repräsentiert. Leere Knoten dienen dazu, zusätzliche Struktur in den RDF-Graphen einzuführen, ohne dass die Erzeugung zusätzlicher Platzhalter URIs notwendig wird. Zur Unterscheidung mehrerer leerer Knoten in einem RDF- Graphen werden diesen bei den meisten Serialisierungformaten Knoten-IDs zugewiesen (siehe z.b. Listing 7 in Abschnitt 2.1.1). Diese Knoten-IDs dienen nicht zur eindeutigen Identifizierung der leeren Knoten, sondern nur zu deren Unterscheidung. Im Gegensatz zu URIs sind sie nur innerhalb eines Dokumentes eindeutig. Des Weiteren können sie geändert werden, ohne dass sich die Bedeutung der Aussagen bzw. des RDF-Graphen ändert [99] Fifth Ave Abbildung 5: Leerer Knoten (angelehnt an das Beispiel aus [140]). Zur Definition listenartiger Strukturen stellt RDF spezielle Konstrukte bereit. RDF unterscheidet zwei Arten von Listen: Container (offene Listen) und Collections (geschlossene Listen) [99]. RDF definiert drei Arten offener Listen: rdf:seq (geordnete Listen), rdf:bag (ungeordnete Liste), rdf:alt (Liste alternativer Werte). Abbildung 6 zeigt eine ungeordnete Liste, welche die Wohnorte von John Doe auflistet. 13

27 rdf-syntax-ns#_ rdf-syntax-ns#type rdf-syntax-ns#bag Abbildung 6: Eine ungeordnete Liste (rdf:bag) in RDF. Listen werden oftmals durch leere Knoten realisiert 4, die über das rdf:type-prädikat den Listentyp (z.b. rdf:bag) zugewiesen bekommen. Die Elemente einer Liste werden mittels nummerierter Prädikate (rdf:_1, rdf:_2, rdf:_3, ) referenziert. Für geordnete Listen wird die Reihenfolge durch die Nummern bestimmt. Bei ungeordneten Listen ist die Nummerierung nicht von Bedeutung. Mit rdf:_1 wird bei Listen alternativer Werte der Standard- oder bevorzugte Wert spezifiziert. Die Nummerierung bei allen weiteren Elementen ist nicht maßgeblich. Dem Namen entsprechend, sind offene Listen nie abgeschlossen. Die in Abbildung 6 dargestellte Liste enthält mindestens die drei angegebenen Elemente. Sie kann aber noch weitere enthalten. Um Listen spezifizieren zu können, die ausschließlich die angegebenen Elemente enthalten, definiert RDF geschlossene Listen (Collections). Abbildung 7 zeigt das bereits bekannte Beispiel in Form einer geschlossenen Liste rdf-syntax-ns#rest 2-rdf-syntax-ns#rest 2-rdf-syntax-ns#rest -rdf-syntax-ns#first -rdf-syntax-ns#first -rdf-syntax-ns#first rdf-syntax-ns#nil Abbildung 7: Eine geschlossene Liste (Collection) in RDF. 4 Obwohl Listen zur Referenzierung auch URIs zugewiesen werden können. 14

28 Eine geschlossene Liste ist eine Verkettung (leerer) Knoten des Typs rdf:list (wobei dieser Typ implizit für jeden Knoten angenommen wird), für welche jeweils zwei Aussagen mit den beiden Prädikaten rdf:first und rdf:rest existieren. Das Prädikat rdf:first weist dabei jeweils auf das entsprechende Element, das sich an dieser Position der Liste befindet. Der nächste Knoten der Liste wird über das rdf:rest-prädikat referenziert. Abgeschlossen wird die Liste mit rdf:nil (leere Liste). Wie bereits erwähnt, besteht in RDF die Möglichkeit, Aussagen über Aussagen zu treffen (Reifikation). RDF definiert dazu die Klasse rdf:statement. Aussagen werden als Instanzen dieser Klasse repräsentiert. In dem Beispiel aus Abbildung 8 wird der Aussage John Doe wohnt in New York ein Urheber be:persona 5 zugewiesen. Dazu wurde eine Instanz der Klasse rdf:statement als leerer Knoten definiert. Dieser leere Knoten referenziert über die drei Prädikate rdf:subject, rdf:predicate und rdf:object das Subjekt, das Prädikat und das Objekt der Aussage. Die Zuweisung des Urhebers zu dieser Aussage geschieht über eine Referenzierung von be:persona durch den leeren Knoten über das be:urheber-prädikat rdf-syntax-ns#type 2-rdf-syntax-ns#Statement 2-rdf-syntax-ns#predicate Abbildung 8: Reifikation Terse RDF Triple Language (Turtle) Die Terse RDF Triple Language (Turtle) [40] ist ein kompaktes, für den Menschen leicht lesbares Serialisierungsformat für RDF-Graphen. Turtle ist eine Untermenge von N3 [43] und wird unter anderem, in abgewandelter Form, von der in Abschnitt 2.2 beschriebenen RDF- Abfragesprache SPARQL verwendet. Im Gegensatz zu RDF/XML, mit der bestimmte RDF- Graphen nicht serialisiert werden können, ermöglicht Turtle die Darstellung aller RDF- Graphen [40]. Listing 3 zeigt die Turtle-Darstellung für den aus Abbildung 4 bekannten RDF- Graphen. 5 Das Präfix be steht für den Namensraum 15

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF RDF und RDF Schema Einführung in die Problematik Von HTML über XML zu RDF Kirsten Albrecht Roland Illig Probleme des HTML-basierten

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Containerformat Spezifikation

Containerformat Spezifikation Containerformat Spezifikation Version 1.0-09.05.2011 Inhaltsverzeichnis 0 Einführung... 4 0.1 Referenzierte Dokumente... 4 0.2 Abkürzungen... 4 1 Containerformat... 5 1.1 Aufbau des Container-Headers...

Mehr

Containerformat Spezifikation

Containerformat Spezifikation Containerformat Spezifikation Version 1.1-21.02.2014 Inhaltsverzeichnis 0 Einführung... 4 0.1 Referenzierte Dokumente... 4 0.2 Abkürzungen... 4 1 Containerformat... 5 1.1 Aufbau des Container-Headers...

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

SAP NetWeaver Gateway. Connectivity@SNAP 2013

SAP NetWeaver Gateway. Connectivity@SNAP 2013 SAP NetWeaver Gateway Connectivity@SNAP 2013 Neue Wege im Unternehmen Neue Geräte und Usererfahrungen Technische Innovationen in Unternehmen Wachsende Gemeinschaft an Entwicklern Ausdehnung der Geschäftsdaten

Mehr

RDF Containers. Häufig möchte man eine Gruppe von Dingen beschreiben. Hierfür stellt RDF ein Container-Vokabular zur Verfügung.

RDF Containers. Häufig möchte man eine Gruppe von Dingen beschreiben. Hierfür stellt RDF ein Container-Vokabular zur Verfügung. RDF Containers Häufig möchte man eine Gruppe von Dingen beschreiben. Hierfür stellt RDF ein Container-Vokabular zur Verfügung. Ein Container ist eine Ressource, die andere Ressourcen oder Literale enthält

Mehr

Sof o t f waretechn h o n l o og o i g en n f ü f r ü v e v rteilte S yst s eme Übung

Sof o t f waretechn h o n l o og o i g en n f ü f r ü v e v rteilte S yst s eme Übung Softwaretechnologien für verteilte Systeme Übung Organisatorisches Gruppen mit 3-4 Personen bearbeiten ein zugewiesenes Thema Abgabe besteht aus einer Arbeit mit 10-15 Seiten und ~30 Minuten Präsentation

Mehr

Klaus Schild, XML Clearinghouse 2003. Namensräume

Klaus Schild, XML Clearinghouse 2003. Namensräume Namensräume Lernziele Namenskonflikte Warum lösen im World Wide Web einfache Präfixe dieses Problem nicht? Wie lösen globale Namensräume das Problem? Wie werden sie in XML-Dokumenten benutzt? Was sind

Mehr

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 1 Allgemeine Beschreibung "Was war geplant, wo stehen Sie jetzt und wie könnte es noch werden?" Das sind die typischen Fragen, mit denen viele Unternehmer

Mehr

How-to: Webserver NAT. Securepoint Security System Version 2007nx

How-to: Webserver NAT. Securepoint Security System Version 2007nx Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver

Mehr

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen 9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf Softwareentwicklungspraktikum Sommersemester 2007 Feinentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Ressourcen-Beschreibung im Semantic Web

Ressourcen-Beschreibung im Semantic Web Ressourcen-Beschreibung im Semantic Web Cristina Vertan Inhaltsübersicht Wie sollen die Ressourcen für Semantic Web annotiert werden? Was ist und wie funktioniert RDF? Wie kodiert man RDF-Statements in

Mehr

Semantic Web Technologies 1

Semantic Web Technologies 1 Übung zur Lehrveranstaltung Semantic Web Technologies 1 Sebastian Rudolph und Duc Thanh Tran Wintersemester 2012/13 http://semantic-web-grundlagen.de Übung 1: RDF und RDF Schema Aufgabe 1.1 Entscheiden

Mehr

Lernprogramm "Veröffentlichen von WMS- Services"

Lernprogramm Veröffentlichen von WMS- Services Lernprogramm "Veröffentlichen von WMS- Services" Copyright 1995-2012 Esri All rights reserved. Table of Contents Lernprogramm: WMS-Service veröffentlichen....................... 0 Copyright 1995-2012 Esri.

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage. Integration mit Die Integration der AristaFlow Business Process Management Suite (BPM) mit dem Enterprise Information Management System FILERO (EIMS) bildet die optimale Basis für flexible Optimierung

Mehr

Information-Design-Tool

Information-Design-Tool Zusatzkapitel Information-Design-Tool zum Buch»HR-Reporting mit SAP «von Richard Haßmann, Anja Marxsen, Sven-Olaf Möller, Victor Gabriel Saiz Castillo Galileo Press, Bonn 2013 ISBN 978-3-8362-1986-0 Bonn

Mehr

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Hauptseminar: Nichtrelationale Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Mai 2006 Was ist eine Datenbank? Erweiterung relationaler um eine Deduktionskomponente Diese

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Version 2.0 1 Original-Application Note ads-tec GmbH IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Stand: 27.10.2014 ads-tec GmbH 2014 IRF2000 2 Inhaltsverzeichnis

Mehr

Verarbeitung der Eingangsmeldungen in einem Callcenter

Verarbeitung der Eingangsmeldungen in einem Callcenter Q-up ist ein Produkt der: Anwendungsbeispiele Verarbeitung der Eingangsmeldungen in einem Callcenter Der Testdatengenerator Der Testdatengenerator Verarbeitung der Eingangsmeldungen in einem Callcenter

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Systemen im Wandel. Autor: Dr. Gerd Frenzen Coromell GmbH Seite 1 von 5

Systemen im Wandel. Autor: Dr. Gerd Frenzen Coromell GmbH Seite 1 von 5 Das Management von Informations- Systemen im Wandel Die Informations-Technologie (IT) war lange Zeit ausschließlich ein Hilfsmittel, um Arbeitsabläufe zu vereinfachen und Personal einzusparen. Sie hat

Mehr

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...

Mehr

3. Das Relationale Datenmodell

3. Das Relationale Datenmodell 3. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large Shared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBMS wie

Mehr

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing Outsourcing und Offshoring Comelio und Offshoring/Outsourcing INHALT Outsourcing und Offshoring... 3 Comelio und Offshoring/Outsourcing... 4 Beauftragungsmodelle... 4 Projektleitung vor Ort und Software-Entwicklung

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele: 2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway

Mehr

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005 Das Software Studio Christian Efinger mobilepoi 0.91 Demo Version Anleitung Erstellt am 21. Oktober 2005 Kontakt: Das Software Studio Christian Efinger ce@efinger-online.de Inhalt 1. Einführung... 3 2.

Mehr

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96 Dieser Fragenkatalog wurde aufgrund das Basistextes und zum Teil aus den Prüfungsprotokollen erstellt, um sich auf mögliche

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen zu SQL Server Analysis Services-Daten

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen zu SQL Server Analysis Services-Daten 1 von 5 12.01.2013 17:58 SharePoint 2013 Veröffentlicht: 16.10.12 Zusammenfassung: Informationen zur Verwendung von Excel zum Erstellen und Freigeben einer Verbindung zu SQL Server Analysis Services-Daten,

Mehr

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert Maika Büschenfeldt Datenbanken: Skript 1 1. Was ist eine relationale Datenbank? In Datenbanken können umfangreiche Datenbestände strukturiert abgelegt werden. Das Konzept relationaler Datenbanken soll

Mehr

7. ArcView-Anwendertreffen. Einbindung von Datenbanken in ArcMap am Beispiel der Biotopkartierung Bayern. Daniel Fuchs

7. ArcView-Anwendertreffen. Einbindung von Datenbanken in ArcMap am Beispiel der Biotopkartierung Bayern. Daniel Fuchs 7. ArcView-Anwendertreffen Einbindung von Datenbanken in ArcMap am Beispiel der Biotopkartierung Bayern Daniel Fuchs 1. Grundlagen Biotopkartierung: Datenformat Die Daten der Biotopkartierung Bayern werden

Mehr

Erstellung von Prozessbeschreibungen. PB 4.2-1: Erstellung von Prozessbeschreibungen

Erstellung von Prozessbeschreibungen. PB 4.2-1: Erstellung von Prozessbeschreibungen Seite 1 von 9 PB 4.2-1: Erstellung von Prozessbeschreibungen 1 Ziel und Zweck Durch Prozessbeschreibungen werden die einzelnen Prozesse des Qualitätshandbuchs detaillierter beschrieben. Sie werden für

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

SEPA Lastschriften. Ergänzung zur Dokumentation vom 27.01.2014. Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299

SEPA Lastschriften. Ergänzung zur Dokumentation vom 27.01.2014. Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 SEPA Lastschriften Ergänzung zur Dokumentation vom 27.01.2014 Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 www.workshop-software.de Verfasser: SK info@workshop-software.de

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Vorgaben und Erläuterungen zu den XML-Schemata im Bahnstromnetz

Vorgaben und Erläuterungen zu den XML-Schemata im Bahnstromnetz Anwendungshandbuch Vorgaben und Erläuterungen zu den XML-Schemata im Bahnstromnetz Version: 1.0 Herausgabedatum: 31.07.2015 Ausgabedatum: 01.11.2015 Autor: DB Energie http://www.dbenergie.de Seite: 1 1.

Mehr

Qualitätssicherung bei der mobilen Datenerfassung

Qualitätssicherung bei der mobilen Datenerfassung Qualitätssicherung bei der mobilen Datenerfassung Stephan Mäs Arbeitsgemeinschaft GIS Universität der Bundeswehr München http://www.unibw.de/bauv11/geoinformatik/agis 9. Seminar GIS & Internet 13.-15.

Mehr

10 Erweiterung und Portierung

10 Erweiterung und Portierung 10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle

Mehr

Semantic Web Services

Semantic Web Services Semantic Web Services Daniel Fischer TU Chemnitz - WS 2011/12 1 Gliederung (1) Web Services (2) Semantic Web Services: Motivation (3) Ontologien (4) Technologien 1. WSDL 2. SA-WSDL 3. WSMF / WSMO 4. OWL-S

Mehr

Business Intelligence Praktikum 1

Business Intelligence Praktikum 1 Hochschule Darmstadt Business Intelligence WS 2013-14 Fachbereich Informatik Praktikumsversuch 1 Prof. Dr. C. Wentzel Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 14.10.2013 Business Intelligence Praktikum

Mehr

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing. www.egiz.gv.at E-Mail: post@egiz.gv.at Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria Beschreibung und Bedienungsanleitung Werkzeug für verschlüsselte bpks

Mehr

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft

Mehr

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit, Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit, Wie kann ein PDF File angezeigt werden? kann mit Acrobat-Viewern angezeigt werden auf jeder Plattform!! (Unix,

Mehr

FTP-Leitfaden RZ. Benutzerleitfaden

FTP-Leitfaden RZ. Benutzerleitfaden FTP-Leitfaden RZ Benutzerleitfaden Version 1.4 Stand 08.03.2012 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Zeitaufwand... 3 2 Beschaffung der Software... 3 3 Installation... 3 4 Auswahl des Verbindungstyps...

Mehr

Die Excel Schnittstelle - Pro Pack

Die Excel Schnittstelle - Pro Pack Die Excel Schnittstelle - Pro Pack Die Excel Pro Pack ist eine Erweiterung der normalen Excel Schnittstelle, die in der Vollversion von POSWare Bestandteil der normalen Lizenz und somit für alle Lizenznehmer

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb CashPro basiert auf Accesstechnologie 2003 und ist auch unter den aktuellen Accessversionen 2007 bis 2013 einsetzbar und Mehrbenutzerfähig.

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

Schnittstelle DIGI-Zeiterfassung

Schnittstelle DIGI-Zeiterfassung P.A.P.A. die kaufmännische Softwarelösung Schnittstelle DIGI-Zeiterfassung Inhalt Einleitung... 2 Eingeben der Daten... 2 Datenabgleich... 3 Zusammenfassung... 5 Es gelten ausschließlich unsere Allgemeinen

Mehr

Datenbanken I - Übung 1

Datenbanken I - Übung 1 Datenbanken I - Übung 1 Oktober, 2010 1 von 11 Datenbanken I Lernkontrolle Beantworten Sie folgende Fragen (nach Möglichkeit ohne nachzuschlagen): Was bezeichnet man als Datenredundanz? Wieso führt Datenredundanz

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

RDF RESOURCE DESCRIPTION FRAMEWORK. Referentin: Claudia Langer

RDF RESOURCE DESCRIPTION FRAMEWORK. Referentin: Claudia Langer RDF RESOURCE DESCRIPTION FRAMEWORK Referentin: Claudia Langer Überblick RDF allgemein RDF und XML Praktisches Beispiel RDF allgemein vom WWW Konsortium (W3C) für das Semantic Web entwickelt Sprache zur

Mehr

Inkrementelles Backup

Inkrementelles Backup Inkrementelles Backup Im Gegensatz zu einer kompletten Sicherung aller Daten werden bei einer inkrementellen Sicherung immer nur die Dateien gesichert, die seit der letzten inkrementellen Sicherung neu

Mehr

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor: Ergebnisreport: mehrere Lehrveranstaltungen zusammenfassen 1 1. Ordner anlegen In der Rolle des Berichterstellers (siehe EvaSys-Editor links oben) können zusammenfassende Ergebnisberichte über mehrere

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen mit SQL Server-Daten

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen mit SQL Server-Daten 1 von 5 12.01.2013 17:59 SharePoint 2013 Veröffentlicht: 16.10.12 Zusammenfassung: Informationen zur Verwendung von Excel zum Erstellen und Freigeben von Verbindungen mit SQL Server-Daten, mit deren Hilfe

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695 Database Exchange Manager Replication Service- schematische Darstellung Replication Service- allgemeines Replikation von Daten von bzw. in ein SAP-System und einer relationalen DMS-Datenbank Kombination

Mehr

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung. StuPro-Seminar Dokumentation in der Software-Wartung StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung Folie 1/xx Software-Wartung: theoretisch Ausgangslage eigentlich simpel: fertige

Mehr

SIMP 1.01 Protokollspezifikation (Mindestanforderung)

SIMP 1.01 Protokollspezifikation (Mindestanforderung) SIMP 1.01 Protokollspezifikation (Mindestanforderung) Autor: Harald Pittesser, Dokumentversion: 0.5 beta Eigenschaften SIMP (Simple Instant Message Protocol) ist ein Instant Message Protokol welches folgende

Mehr

SERVICE SUCHE ZUR UNTERSTÜTZUNG

SERVICE SUCHE ZUR UNTERSTÜTZUNG SERVICE SUCHE ZUR UNTERSTÜTZUNG VON ANFORDERUNGSERMITTLUNG IM ERP BEREICH MARKUS NÖBAUER NORBERT SEYFF ERP SYSTEME Begriffsbestimmung: Enterprise Resource Planning / Business Management Solution Integrierte

Mehr

http://train-the-trainer.fh-joanneum.at IINFO Storyboard

http://train-the-trainer.fh-joanneum.at IINFO Storyboard IINFO Storyboard Allgemeine Bemerkungen und Richtlinien zur Handhabung. Das Storyboard besteht aus einem Web, d.h. einer vernetzten Struktur von HTML-Seiten welche später von den Programmieren direkt als

Mehr

Barrierefreie Webseiten erstellen mit TYPO3

Barrierefreie Webseiten erstellen mit TYPO3 Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute

Mehr

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper) Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10 Technische Informationen (White Paper) Inhaltsverzeichnis 1. Über dieses Dokument... 3 2. Überblick... 3 3. Upgrade Verfahren... 4

Mehr

!!!!T!!! Systems!() Multimedia Solutions

!!!!T!!! Systems!() Multimedia Solutions Inhalt. Was ist das semantische Web? Wie findet man einen Arzttermin mit Hilfe des semantischen Web? Wie gibt man Inhalten einen Sinn? Welche Werkzeuge stehen zur Verfügung? Wo können strukturierte Inhalte

Mehr

Version 2.0.1 Deutsch 03.06.2014. In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Version 2.0.1 Deutsch 03.06.2014. In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen. Version 2.0.1 Deutsch 03.06.2014 In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen. Inhaltsverzeichnis... 1 1. Hinweise... 2 2. Konfiguration... 3 2.1. Generische

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Druckvorlagen Als Druckvorlagen sind dafür vorhanden:!liste1.ken (Kennzahlen)!Liste2.KEN (Kontennachweis)

Druckvorlagen Als Druckvorlagen sind dafür vorhanden:!liste1.ken (Kennzahlen)!Liste2.KEN (Kontennachweis) Kennzahlen und Kennzeichen Dieses Dokument zeigt Ihnen in wenigen kurzen Schritten die Logik und Vorgehensweise der Definition der Kennzahlen und Kennzeichen und deren Auswertung in eigens dafür vorhandenen

Mehr

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags 2013 style_sheet_bis_verlag_20130513 Arbeiten mit der Dokumentvorlage des BIS-Verlags... 3 Dokumentvorlage Wofür?... 3 Wohin mit der Dokumentvorlage...

Mehr

Installation Wawi SQL in Verbindung mit Microsoft SQL Server 2008 R2 Express with management Tools

Installation Wawi SQL in Verbindung mit Microsoft SQL Server 2008 R2 Express with management Tools Installation Wawi SQL in Verbindung mit Microsoft SQL Server 2008 R2 Express with management Tools Im nachfolgenden Dokument werden alle Einzelschritte aufgeführt, die als Voraussetzung für die korrekte

Mehr

Fragment Identifiers, Template Handles

Fragment Identifiers, Template Handles Fragment Identifiers, Tibor Kálmán Gesellschaft für wissenschaftliche Datenverarbeitung mbh Göttingen (GWDG) Tibor [dot] Kalman [at] gwdg [dot] de 1 Übersicht Problematik der Referenzierung Technische

Mehr

Powermanager Server- Client- Installation

Powermanager Server- Client- Installation Client A Server Client B Die Server- Client- Funktion ermöglicht es ein zentrales Powermanager Projekt von verschiedenen Client Rechnern aus zu bedienen. 1.0 Benötigte Voraussetzungen 1.1 Sowohl am Server

Mehr

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung Diese Anleitung hilft Ihnen, das nachfolgend geschilderte Problem zu beheben.

Mehr

Gesetzliche Aufbewahrungspflicht für E-Mails

Gesetzliche Aufbewahrungspflicht für E-Mails Gesetzliche Aufbewahrungspflicht für E-Mails sind Sie vorbereitet? Vortragsveranstaltung TOP AKTUELL Meins und Vogel GmbH, Plochingen Dipl.-Inf. Klaus Meins Dipl.-Inf. Oliver Vogel Meins & Vogel GmbH,

Mehr

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014 Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr