Upload
daniel-kirstenpfad
View
576
Download
1
Embed Size (px)
Citation preview
sones GmbH │ [email protected] 2GraphDB in .NET September 19th 2011
Was ist ein Graph?
• Knoten + Kanten ungerichteter Graph
• Beispiel: Strassenkarte
• Alle Beziehungen sind symetrisch
Knoten 1
Knoten 2
Knoten 3 Knoten
4
sones GmbH │ [email protected] 3GraphDB in .NET September 19th 2011
Warum ein Graph?
• Knoten + Kanten ungerichteter Graph
• Beispiel: Strassenkarte
• Alle Beziehungen sind symetrisch
Knoten 1
Knoten 2
Knoten 4
Knoten 3
ID Name
1 Knoten 1
2 Knoten 2
3 Knoten 3
4 Knoten 4
ID ID
1 2
1 3
3 1
3 4
sones GmbH │ [email protected] 4GraphDB in .NET September 19th 2011
Was ist ein Graph?
• Knoten + Kanten + Richtung gerichteter Graph
• Beispiel: Twitter, href-Beziehungen im Web
• Alle Beziehungen sind asymetrisch
• „Single Relational Structures“
Knoten 1
Knoten 2
Knoten 3 Knoten
4
sones GmbH │ [email protected] 5GraphDB in .NET September 19th 2011
Was ist ein Graph?
• „Multiple Relational Structures“
• Eine Kante repräsentiert mehr als eine
Verbindung: Richtung, Name Typ
• Mehr AusdrucksmöglichkeitenKnoten
1
Knoten 2
Knoten 3
Knoten 4
Knoten 5
Knoten 6
sones GmbH │ [email protected] 6GraphDB in .NET September 19th 2011
Was ist ein Graph?
• Knoten (+Attribute) + Kanten (+Attribute) = Property Graph
• Beispiel: Social Network der TV-Fernsehserie „Die Simpson“
• Knotentypen: Auftritt, SimpsonProfile
Name = Homer
SimpsonS01E01
Auftritt
Name=S01E01Datum=01.01.1991
Sender=ZDF
Alter=40Gewicht=131
Name = StringGewicht = Integer
Alter = Integer
Name = StringDatum = DateTime
Sender = SenderType
Freu
nd
Fein
d
sones GmbH │ [email protected] 7GraphDB in .NET September 19th 2011
Was ist ein Graph?
• Knoten (+Attribute) + (Single-/Multi-/Hyper-)Kanten (+Attribute) = Property Hypergraph
Vertex VertexSingle-Edge
Vertex
Vertex
Multi-Edge
Vertex
Vertex
Vtx
Hyper-EdgeVtx
Vtx
Vtx
Vtx
Vertex
Vertex
Vertex
Vertex
Vertex
VertexVertex
Single EdgeAttribute1Attribute2
.
.
Multi-EdgeAttribute1Attribute2
.
.
Single EdgeAttribute1Attribute2
.
.
Hyper EdgeAttribute1Attribute2
.
.
Single EdgeAttribute1Attribute2
.
.
Single EdgeAttribute1Attribute2
.
.
sones GmbH │ [email protected] 8GraphDB in .NET September 19th 2011
sones GraphDB
• Ablage, Verwaltung, Verknüpfung und Abfrage von Graph-Daten als Hauptaufgabe
• Projekt gestartet 2007, OpenSource seit 2010
• GraphDB von sones:
• Dual-Lizenzierte vollwertige Graphdatenbank mit dem Property Hypergraph Modell
• OpenSource (AGPLv3) und Enterprise Edition verfügbar
• Enterprise Edition = OpenSource + Enterprise-Plug-Ins (z.B. Solr statt Lucene)
• Schlüsselfeatures:
• Graph Query Language (GraphQL)
• Dynamisches Schema
• Mischbetrieb von schemalos und schemabehafteten Datenmodellen
• Objektorientierte Knoten und Kantenverwaltung (abstrakte Typen, Vererbung)
• Umfassende Plug-In Architektur erlaubt hohe Flexibilität (in-Memory vs. On-Disk, GraphQL vs. C# API)
• vollständig in C# entwickelt (und damit platformunabhängig)
• REST Service Schnittstelle, Remote API
• Integrierte Ad-Hoc Query WebShell mit Visualisierungen
• C#, Java, JavaScript, PHP bindings
sones GmbH │ [email protected] 9GraphDB in .NET September 19th 2011
Architektur sones GraphDB
GraphDS
Network ClientC# API
Java APIPHP API
JavaScript API
GraphDS Server Plug-Ins
User defined services
QueryLanguage1 ... QueryLanguagenREST
Input / Output Plug-Ins
JSON, XML, TXT, HTML, ...
QL API
GraphDB API
GraphDB API
Query Language
GraphQL
User defined Function Aggregates Functions Import / Export
Breadth-First-Search, ...
Sum, Count, Max, Min,
Avg
Top, MaxWeight,
...GraphML, ...
Other Query Languages...
Other Language Bindings...
Network service (REST,...)
DrainPipe Hot-Standby / Fault-Tolerance
Other user defined services / protocols...
sones GmbH │ [email protected] 10GraphDB in .NET September 19th 2011
GraphDB
GraphDB API
Logic Plugins
Vertex Type Management
Edge Type Management
Vertex Management
Index Management
Traverser
Storage Management
Logic-Expression-Optimizer
Security Manager
Transaction Manager
Index Manager
Storage Manager
GraphFS
GraphFS API
GraphFS
In Memory Storage
Other Storages...
Local Storage
NonRevisionedIMFS,...
NonRevisionedPagedFS,...
GraphDB API
sones GmbH │ [email protected]
Disclaimer
Unpublished Work of sones GmbH All Rights Reserved.This work is an unpublished work and contains confidential, proprietary, and trade secret information
of sones GmbH. Access to this work is restricted to sones employees who have a need to know to
perform tasks within the scope of their assignments. No part of this work may be
practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expande
d, collected, or adapted without the prior written consent of sones GmbH. Any use or exploitation of
this work without authorization could subject the perpetrator to criminal and civil liability.
General DisclaimerThis document is not to be construed as a promise by any participating company to
develop, deliver, or market a product. It is not a commitment to deliver any material, code, or
functionality, and should not be relied upon in making purchasing decisions. sones GmbH makes no
representations or warranties with respect to the contents of this document, and specifically disclaims
any express or implied warranties of merchantability or fitness for any particular purpose. The
development, release, and timing of features or functionality described for sones products remains at
the sole discretion of sones. Further, sones GmbH reserves the right to revise this document and to
make changes to its content, at any time, without obligation to notify any person or entity of such
revisions or changes. All sones marks referenced in this presentation are trademarks or registered
trademarks of sones GmbH in Germany and other countries. All third-party trademarks are the
property of their respective owners.
12GraphDB in .NET September 19th 2011