sones GraphDB + Mono + Linux

Post on 20-Jan-2015

1.049 views 3 download

description

 

Transcript of sones GraphDB + Mono + Linux

Confidential sones GmbH| 04/10/2023 1

Graphen auf LinuxGraphDB + Mono + Linux

Daniel Kirstenpfadsones GmbHSchillerstrasse 504109 Leipzig

Confidential sones GmbH| 04/10/2023 1

Überblick

Was ist ein Graph? GraphDB von sones das Mono Projekt Anwendungsfälle Demo

2

Confidential sones GmbH| 04/10/2023 1

Was ist ein Graph?

Knoten + Kanten ungerichteter Graph Beispiel: Strassenkarte Alle Knoten haben den gleichen „Typen“ Alle Kanten „bedeuten“ die gleiche Art von

Beziehung Alle Beziehungen sind symetrisch

3

Knoten 1 Knoten

2

Knoten 3

Knoten 4

Confidential sones GmbH| 04/10/2023 1

Was ist ein Graph?

Gerichtete Kanten ergeben einen gerichteten Graphen

Beispiele: Twitter, href-Beziehungen im Web Alle Knoten haben den gleichen „Typen“ Alle Kanten „bedeuten“ die gleiche Art von

Beziehung Alle Beziehungen sind asymetrisch

4

Knoten 1 Knoten

2

Knoten 3

Knoten 4

ist Freund von

ist Freund von

ist F

reun

d vo

n

Confidential sones GmbH| 04/10/2023 1

„Single Relational Structures“

Solange man innerhalb eines Graphen immer nur einen Bedeutung für alle Kanten hat spricht man von

„Single Relational Structures“

5

Knoten 1 Knoten

2

Knoten 3

Knoten 4

ist Freund von

ist Freund von

ist F

reun

d vo

n

Confidential sones GmbH| 04/10/2023 1

Property Graph und Ontologien

Knoten und Kanten des Property Graphen liegt eine Objekt-Ontologie zugrunde

Property Graph– Knoten und Kanten haben key/value Properties

(Attribute)

6

Name = Homer

SimpsonS01E01

Auftritt

Name=S01E01Datum=01.01.1991Sender=ZDF

Alter=40Gewicht=131

Name = StringGewicht = IntegerAlter = Integer

Name = StringDatum = DateTimeSender = SenderType

befr

eun

det

Confidential sones GmbH| 04/10/2023 1

Warum GraphDB?

Man kann eine „etwas steht in einer Beziehung mit etwas“ in fast jeder Datenbank modellieren

7

1 4

23

von Nach

1 4

1 2

2 3

SQL { 1 : { nach : [4,2] } 2 : { nach : [3] }}

JSON

<graphml> <graph> <node id=1 /> <node id=2 /> <node id=3 /> <node id=4 /> <edge source=1 target=4 /> <edge source=1 target=2 /> <edge source=2 target=3 /> </graph></graphml>

XML

Confidential sones GmbH| 04/10/2023 1

Warum GraphDB?

Man kann eine „etwas steht in einer Beziehung mit etwas“ in fast jeder Datenbank modellieren– Probleme:

• „Teure“ JOINs (was passiert bei Milliarden von Verbindungen?)

• Index Lookups um herauszufinden welche Knoten verbunden sind

8

1 4

23

Confidential sones GmbH| 04/10/2023 1

GraphDB von sones

Seit 30.06.2010 OpenSource unter AGPLv3– http://github.com/sones/sones

Seit dieser Woche in Version 2.0 verfügbar performante modulare GraphDB Property Graph + minimale Ontologie

– frei definierbare Attribute an Objekten, Vererbung von Attributen (~OOP)

Offene Schnittstellen zur Plug-In Entwicklung SQL ähnliche, einfache Anfragesprache „GQL“ REST Schnittstelle (XML, JSON) leistungsfähige API mit Languagebindings für C#,

Java, Javascript, PHP Platformunabhängig dank des Mono Projects

9

Confidential sones GmbH| 04/10/2023 1

das Mono Projekt

Open Source Implementierung der Common Language Runtime (CLR) von .NET

Binärkompatibel mit Microsoft.NET Open Source Implementierung des

größten Teils der .NET Klassenbibliothek– .NET 1.1, 2.0, 3.5, 4.0

Platformunabhängig– Linux, Windows, Mac OSX, BSD, Solaris,...

Unterstützung weiterer Programmiersprachen wie z.B. F# (Funktionale Programmierung)

http://www.mono-project.com/ http://github.com/mono

10

Confidential sones GmbH| 04/10/2023 1

GraphDB auf Mono

GraphDB stellt hohe Anforderungen an Mono– Garbage Collector muss performant und stabil

funktionieren– Viele parallel laufende Prozesse (Parallel Framework,

Lock Free Data Structures,...)

11

Confidential sones GmbH| 04/10/2023 1

Monospace Conference

23. – 25. Juli 2011Boston, USA

http://monospace.us

12

Confidential sones GmbH| 04/10/2023 1

Beispiel: „Wortschatz Leipzig“

Relationale Datenbank vs. GraphDB Über 26 Mio. Rows in 4 Tabellen sind reine

Relationendaten

13

Confidential sones GmbH| 04/10/2023 1

Beispiel: „Wortschatz Leipzig“

14

MySQL Query

SELECT w.word AS wort, k.sig AS sig FROM co_s k, words w WHERE k.w1_id=(SELECT w_id FROM words w WHERE word = “Laptop”) AND k.w2_id=w.w_idORDER BY k.sig DESC LIMIT 10;

Confidential sones GmbH| 04/10/2023 1

Beispiel: „Wortschatz Leipzig“

15

MySQL Query

SELECT w.word AS wort, k.sig AS sig FROM co_s k, words w WHERE k.w1_id=(SELECT w_id FROM words w WHERE word = “Laptop”) AND k.w2_id=w.w_idORDER BY k.sig DESC LIMIT 10;

GQL Query

FROM Word SELECT Cooccurrences.TOP(10) WHERE Content = ‘Laptop’;

Confidential sones GmbH| 04/10/2023 1

Demos

16

DEMO

Social Network

Confidential sones GmbH| 04/10/2023 1

Vielen Dank!

17

sones GmbH HQSchillerstrasse 504109 LeipzigGermanyWeb: www.sones.comMail: info@sones.deTel.: +49 (0)341 39 29 68 0Fax: +49 (0)361/ 2445 008

Daniel KirstenpfadGründer / CTOTel.: +49 (0)361/ 3026 250info@sones.de

17

sones GmbH R&DEugen-Richter-Straße 4499085 ErfurtGermanyWeb: www.sones.comMail: info@sones.deTel.: +49 (0)361/ 3026 250Fax: +49 (0)361/ 2445 008