Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

sones GraphDB + Mono + Linux

1.448 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

sones GraphDB + Mono + Linux

  1. 1. Graphen auf Linux<br />GraphDB + Mono + Linux <br />Daniel Kirstenpfad<br />sones GmbH<br />Schillerstrasse 5<br />04109 Leipzig<br />
  2. 2. Überblick<br />Was ist ein Graph?<br />GraphDB von sones<br />das Mono Projekt<br />Anwendungsfälle<br />Demo<br />2<br />
  3. 3. Was ist ein Graph?<br />Knoten + Kanten  ungerichteter Graph<br />Beispiel: Strassenkarte<br />Alle Knoten haben den gleichen „Typen“<br />Alle Kanten „bedeuten“ die gleiche Art von Beziehung<br />Alle Beziehungen sind symetrisch<br />3<br />Knoten 1<br />Knoten 2<br />Knoten 3<br />Knoten 4<br />
  4. 4. Was ist ein Graph?<br />Gerichtete Kanten ergeben einen gerichteten Graphen<br />Beispiele: Twitter, href-Beziehungen im Web<br />Alle Knoten haben den gleichen „Typen“<br />Alle Kanten „bedeuten“ die gleiche Art von Beziehung<br />Alle Beziehungen sind asymetrisch<br />4<br />Knoten 1<br />Knoten 2<br />ist Freund von<br />ist Freund von<br />Knoten 3<br />Knoten 4<br />ist Freund von<br />
  5. 5. „Single Relational Structures“<br />Solange man innerhalb eines Graphen immer nur einen Bedeutung für alle Kanten hat spricht man von<br />„Single Relational Structures“<br />5<br />Knoten 1<br />Knoten 2<br />ist Freund von<br />ist Freund von<br />Knoten 3<br />Knoten 4<br />ist Freund von<br />
  6. 6. Property Graph und Ontologien<br />Knoten und Kanten des Property Graphen liegt eine Objekt-Ontologie zugrunde<br />Property Graph<br />Knoten und Kanten haben key/value Properties (Attribute)<br />6<br />Name = String<br />Gewicht = Integer<br />Alter = Integer<br />Name = String<br />Datum = DateTime<br />Sender = SenderType<br />befreundet<br />S01E01<br />Name = Homer Simpson<br />Auftritt<br />Name=S01E01<br />Datum=01.01.1991<br />Sender=ZDF<br />Alter=40<br />Gewicht=131<br />
  7. 7. Warum GraphDB?<br />Man kann eine „etwas steht in einer Beziehung mit etwas“ in fast jeder Datenbank modellieren<br />7<br />1<br />4<br />XML<br /><graphml><br /> <graph><br /> <node id=1 /><br /> <node id=2 /><br /> <node id=3 /><br /> <node id=4 /><br /> <edge source=1 target=4 /><br /> <edge source=1 target=2 /><br /> <edge source=2 target=3 /><br /> </graph><br /></graphml><br />2<br />3<br />JSON<br />{<br /> 1 : { nach : [4,2] }<br /> 2 : { nach : [3] }<br />}<br />SQL<br />
  8. 8. Warum GraphDB?<br />Man kann eine „etwas steht in einer Beziehung mit etwas“ in fast jeder Datenbank modellieren<br />Probleme: <br />„Teure“ JOINs (was passiert bei Milliarden von Verbindungen?)<br />Index Lookups um herauszufinden welche Knoten verbunden sind<br />8<br />1<br />4<br />2<br />3<br />
  9. 9. GraphDB von sones<br />Seit 30.06.2010 OpenSource unter AGPLv3<br />http://github.com/sones/sones<br />Seit dieser Woche in Version 2.0 verfügbar<br />performante modulare GraphDB<br />Property Graph + minimale Ontologie<br />frei definierbare Attribute an Objekten, Vererbung von Attributen (~OOP)<br />Offene Schnittstellen zur Plug-In Entwicklung<br />SQL ähnliche, einfache Anfragesprache „GQL“<br />REST Schnittstelle (XML, JSON)<br />leistungsfähige API mit Languagebindings für C#, Java, Javascript, PHP<br />Platformunabhängig dank des Mono Projects<br />9<br />
  10. 10. das Mono Projekt<br />Open Source Implementierung der CommonLanguage Runtime (CLR) von .NET<br />Binärkompatibel mit Microsoft.NET<br />Open Source Implementierung des größten Teils der .NET Klassenbibliothek<br />.NET 1.1, 2.0, 3.5, 4.0<br />Platformunabhängig<br />Linux, Windows, Mac OSX, BSD, Solaris,...<br />Unterstützung weiterer Programmiersprachen wie z.B. F# (Funktionale Programmierung)<br />http://www.mono-project.com/<br />http://github.com/mono<br />10<br />
  11. 11. GraphDB auf Mono<br />GraphDB stellt hohe Anforderungen an Mono<br />GarbageCollector muss performant und stabil funktionieren<br />Viele parallel laufende Prozesse (Parallel Framework, Lock Free Data Structures,...)<br />11<br />
  12. 12. Monospace Conference <br />23. – 25. Juli 2011<br />Boston, USA<br />http://monospace.us<br />12<br />
  13. 13. Beispiel: „Wortschatz Leipzig“<br />Relationale Datenbank vs. GraphDB<br />Über 26 Mio. Rows in 4 Tabellen sind reine Relationendaten<br />13<br />
  14. 14. Beispiel: „Wortschatz Leipzig“<br />14<br />MySQL Query<br />SELECT w.word AS wort, k.sigAS sig FROM co_sk, words w WHERE k.w1_id=(SELECT w_id FROM words w WHERE word = “Laptop”) AND k.w2_id=w.w_idORDER BY k.sigDESC LIMIT 10;<br />
  15. 15. Beispiel: „Wortschatz Leipzig“<br />15<br />MySQL Query<br />SELECT w.word AS wort, k.sigAS sig FROM co_sk, words w WHERE k.w1_id=(SELECT w_id FROM words w WHERE word = “Laptop”) AND k.w2_id=w.w_idORDER BY k.sigDESC LIMIT 10;<br />GQL Query<br />FROM Word SELECT Cooccurrences.TOP(10) WHERE Content = ‘Laptop’;<br />
  16. 16. Demos<br />16<br />DEMO<br />Social Network<br />
  17. 17. Vielen Dank!<br />17<br />Daniel Kirstenpfad<br />Gründer / CTO<br />Tel.: +49 (0)361/ 3026 250<br />info@sones.de<br />sones GmbH HQ<br />Schillerstrasse 5<br />04109 Leipzig<br />Germany<br />Web: www.sones.com<br />Mail: info@sones.de<br />Tel.: +49 (0)341 39 29 68 0<br />Fax: +49 (0)361/ 2445 008<br />sones GmbH R&D<br />Eugen-Richter-Straße 44<br />99085 Erfurt<br />Germany<br />Web: www.sones.com<br />Mail: info@sones.de<br />Tel.: +49 (0)361/ 3026 250<br />Fax: +49 (0)361/ 2445 008<br />17<br />

×