sones graphdb + mono + linux
DESCRIPTION
TRANSCRIPT
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: [email protected].: +49 (0)341 39 29 68 0Fax: +49 (0)361/ 2445 008
Daniel KirstenpfadGründer / CTOTel.: +49 (0)361/ 3026 [email protected]
17
sones GmbH R&DEugen-Richter-Straße 4499085 ErfurtGermanyWeb: www.sones.comMail: [email protected].: +49 (0)361/ 3026 250Fax: +49 (0)361/ 2445 008