Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GraphTalk - Semantische Netze mit structr

Axel Morgner, Structr

  • Login to see the comments

  • Be the first to like this

GraphTalk - Semantische Netze mit structr

  1. 1. structr Axel Morgner Structr GmbH axel.morgner@structr.com Aufbau von semantischen Netzen mit Structr und Neo4j
  2. 2. structrstructr
  3. 3. structrstructr Structr GmbH (Frankfurt am Main) Hersteller von Structr: Graph Application Platform Open-Source-Produkt Basiert auf Graphdatenkbank Neo4j Über Structr
  4. 4. structr
  5. 5. structr Semantisches Netz
  6. 6. structr Semantisches Netz Formales Modell (Begriffe u. Relationen)
  7. 7. structr Semantisches Netz Formales Modell (Begriffe u. Relationen) Ziel: Abbildung von Zusammenhängen der realen Welt
  8. 8. structr Warum?
  9. 9. structr Herausforderungen
  10. 10. structr Komplexität
  11. 11. structr Komplexität nimmt immer zu
  12. 12. structr Wachsende Komplexität
  13. 13. structr Wachsende Komplexität Tendenz zur Vereinfachung
  14. 14. structr Wachsende Komplexität Tendenz zur Vereinfachung Statische Betrachtung
  15. 15. structr Wachsende Komplexität Tendenz zur Vereinfachung Statische Betrachtung Falsche/ungenaue Abstraktion
  16. 16. structr Wachsende Komplexität Tendenz zur Vereinfachung Statische Betrachtung Falsche/ungenaue Abstraktion Entwicklung an den Anwendern vorbei
  17. 17. structr Veränderung
  18. 18. structr Veränderung ist allgegenwärtig
  19. 19. structr Veränderung
  20. 20. structr Veränderung Limitiert durch Flexibilität der Modelle und Methoden
  21. 21. structr Veränderung Limitiert durch Flexibilität der Modelle und Methoden Mehr Komplexität (Meta-Modelle, Über-Abstraktion)
  22. 22. structr Veränderung Limitiert durch Flexibilität der Modelle und Methoden Mehr Komplexität (Meta-Modelle, Über-Abstraktion) Qualität?
  23. 23. structr Software?
  24. 24. structr ObjectStructure visit() visit() ConcreteVisitor1 visit() visit() ConcreteVisitor2 visit() visit() «interface» Visitor accept() «interface» Element accept() operation() ConcreteElementB accept() operation() ConcreteElementA accept (Visitor v) { v.visit(this); } visit (ConcreteElementA a) { a.operation(); } visit (ConcreteElementB b) { b.operation(); } walk1 () { for (Element element : structure) { element.accept(visitor1); } } structure: ObjectStructure visitor1: Visitor visitor2: Visitor walk1() walk2() Client ~ collection * «import» «import» UML
  25. 25. structr ObjectStructure visit() visit() ConcreteVisitor1 visit() visit() ConcreteVisitor2 visit() visit() «interface» Visitor accept() «interface» Element accept() operation() ConcreteElementB accept() operation() ConcreteElementA accept (Visitor v) { v.visit(this); } visit (ConcreteElementA a) { a.operation(); } visit (ConcreteElementB b) { b.operation(); } walk1 () { for (Element element : structure) { element.accept(visitor1); } } structure: ObjectStructure visitor1: Visitor visitor2: Visitor walk1() walk2() Client ~ collection * «import» «import» UML Entity Relationship Model
  26. 26. structr RDF/OWL
  27. 27. structr RDF/OWL Semantic Web
  28. 28. structr RDF/OWL Komplexer Software-Stack („Schichtkuchen“)
  29. 29. structr Quellen: http://leirdal.net/blog/archives/138-semantic-web-layer-cake.html http://englishcoffeedrinker.blogspot.de/2009/07/realising-semantic-web.html
  30. 30. structr ObjectStructure visit() visit() ConcreteVisitor1 visit() visit() ConcreteVisitor2 visit() visit() «interface» Visitor accept() «interface» Element accept() operation() ConcreteElementB accept() operation() ConcreteElementA accept (Visitor v) { v.visit(this); } visit (ConcreteElementA a) { a.operation(); } visit (ConcreteElementB b) { b.operation(); } walk1 () { for (Element element : structure) { element.accept(visitor1); } } structure: ObjectStructure visitor1: Visitor visitor2: Visitor walk1() walk2() Client ~ collection * «import» «import» Lösung?
  31. 31. structr ObjectStructure visit() visit() ConcreteVisitor1 visit() visit() ConcreteVisitor2 visit() visit() «interface» Visitor accept() «interface» Element accept() operation() ConcreteElementB accept() operation() ConcreteElementA accept (Visitor v) { v.visit(this); } visit (ConcreteElementA a) { a.operation(); } visit (ConcreteElementB b) { b.operation(); } walk1 () { for (Element element : structure) { element.accept(visitor1); } } structure: ObjectStructure visitor1: Visitor visitor2: Visitor walk1() walk2() Client ~ collection * «import» «import» Vereinheitlichung von Modellen, Logik, Schichten und Schnittstellen Unser Ansatz:
  32. 32. structr ObjectStructure visit() visit() ConcreteVisitor1 visit() visit() ConcreteVisitor2 visit() visit() «interface» Visitor accept() «interface» Element accept() operation() ConcreteElementB accept() operation() ConcreteElementA accept (Visitor v) { v.visit(this); } visit (ConcreteElementA a) { a.operation(); } visit (ConcreteElementB b) { b.operation(); } walk1 () { for (Element element : structure) { element.accept(visitor1); } } structure: ObjectStructure visitor1: Visitor visitor2: Visitor walk1() walk2() Client ~ collection * «import» «import» Structr-Plattform Unser Ansatz:
  33. 33. structr Entwicklungsumgebung für mobile und Web- Anwendungen („Micro-Apps“)
  34. 34. structr Entwicklungsumgebung für mobile und Web- Anwendungen („Micro-Apps“) Integriertes Content-Management-System für statische Resourcen und Medien-Assets
  35. 35. structr Entwicklungsumgebung für mobile und Web- Anwendungen („Micro-Apps“) Integriertes Content-Management-System für statische Resourcen und Medien-Assets DMS für Dateien, Volltext-Suche, CMIS-Support
  36. 36. structr Entwicklungsumgebung für mobile und Web- Anwendungen („Micro-Apps“) Integriertes Content-Management-System für statische Resourcen und Medien-Assets DMS für Dateien, Volltext-Suche, CMIS-Support Dynamisches REST-API mit flexiblen JSON- Views
  37. 37. structr Entwicklungsumgebung für mobile und Web- Anwendungen („Micro-Apps“) Integriertes Content-Management-System für statische Resourcen und Medien-Assets DMS für Dateien, Volltext-Suche, CMIS-Support Dynamisches REST-API mit flexiblen JSON- Views Visueller Schema-Editor zur interaktiven Datenmodellierung
  38. 38. structr Entwicklungsumgebung für mobile und Web- Anwendungen („Micro-Apps“) Integriertes Content-Management-System für statische Resourcen und Medien-Assets DMS für Dateien, Volltext-Suche, CMIS-Support Dynamisches REST-API mit flexiblen JSON- Views Visueller Schema-Editor zur interaktiven Datenmodellierung Daten-Editor mit tabellarischer und Graph- Ansicht zur Datenpflege
  39. 39. structr Entwicklungsumgebung für mobile und Web- Anwendungen („Micro-Apps“) Integriertes Content-Management-System für statische Resourcen und Medien-Assets DMS für Dateien, Volltext-Suche, CMIS-Support Dynamisches REST-API mit flexiblen JSON- Views Visueller Schema-Editor zur interaktiven Datenmodellierung Daten-Editor mit tabellarischer und Graph- Ansicht zur Datenpflege Transaktionssichere Persistenz und operationelle Sicherheit mit Neo4j Enterprise
  40. 40. structr Flexibilität Kurzer Roundtrip für Änderungsanforderungen (Minuten/Stunden statt Tage/Wochen)
  41. 41. structr Performance Graph-Queries (ad-hoc, Echtzeit), keine Vorab-Optimierung nötig
  42. 42. structr Demo
  43. 43. structr Fragen?
  44. 44. structr Danke!
  45. 45. structr Zeitersparnis Wegfall der typischer, zeitaufwendiger Tätigkeiten: - Auswahl Programmiersprache und Frameworks - Einrichtung Entwicklungsumgebung, Datenbank, Treiber - Aufbau Entwickler-Team - Entwicklung „Boilerplate Code“ Stark verkürzte Zeit von der Idee bis zum ersten Prototyp (Proof-of-Concept an einem Tag)
  46. 46. structr Kostenersparnis Vernachlässigbare Projekt-Anlaufkosten - Entwicklung ohne Programmierkenntnisse möglich - kein komplexes Setup notwendig (eine einzige Software) - kein Integrationsaufwand, kaum Abhängigkeiten - Open Source mit kostenloser Community-Variante
  47. 47. structr Flexibilität Kurzer Roundtrip für Änderungsanforderungen (Minuten/Stunden statt Tage/Wochen) - Schema-lose/-flexible Datenbank Neo4j als Kern - alle Tätigkeiten von einer Person durchführbar - Anpassung an viele Use Cases durch „Micro-Apps“ - Integrierbarkeit durch flexibles REST-API (JSON/XML)
  48. 48. structr Wartbarkeit Kurzer Roundtrip für Änderungsanforderungen (Minuten/Stunden statt Tage/Wochen) - geringer Aufwand für Wiedereinstieg in Kontext - regelmäßige Bugfixes und Updates von den Herstellern - kontinuierliche Weiterentwicklung - wachsende Entwickler- und Nutzer-Community
  49. 49. structr Verfügbarkeit In Kürze: 2.0 Issues: github.com/structr/structr Forum: structr.org/forum Download: Maven Central Infos und Services: structr.org Blog: structr.org/blog News: @structr on Twitter Support und Doku: support.structr.com
  50. 50. structr Kommerzielle Optionen Kommerzielle Lizenzen Individualentwicklung Training Support Hosting: structr.com

×