SiGNaL2017
Jump to navigation
Jump to search
Simple Graph Navigation Language
- SiDIF
- SiGNaL
see http://partner.bitplan.com/index.php/Simple_Graph_Navigation_Language see https://en.wikipedia.org/wiki/Occam%27s_razor
Naming
- Graph alias Network
- Edge alias Link
- Node alias Networkelement
Data Source/Target
- Data Source/Target e.g. Wikidata
- Schema Source / Target
- Meta Source / Target
- by Structure
- SQL
- Excel
- JSON
- SIDIF
- Gellish
- CSV
- Word-Files
- Wiki
- SMW
- HTML
- File-System e.g. scanned files
- Email / Mailbox
- VCard
- Graph Cache
- see Linker
Data Source Structures
Relation Database

- Record / Map
- List
- Table
- Tree
- Graph
DataSource APIs
- Facebook Social Graph
- https://www.rome2rio.com/partners/signup
- https://docs.nylas.com/docs EMail/Contacts/Calendar
Exception
Handling Broken Links
- Ask
- Ignore
- List of Errors
- Workaround z.B.

Disambiguation
- First
- Last
- Newest
- Random
- Ask
API
- read (at node)
- write (at node)
- navigate (e.g. follow/iterate)
- schema read (optional - differences per node?)
- schema write
- credential handling (read/write?)
API principles
- Queries deliver graphs
- Filters deliver graphs from graphs
- Functions can be applied on all nodes of a graph
- Transformations deliver graphs from graphs
- A node is a trivial graph - with only one "travesal/visit" option
- A list is a somewhat trivial graph - with forward or backward traversal options
- A table is a somewhat trivial graph
- A tree is a somewhat trivial graph with multiple traversal options
Connection
- FileSystem
Stream/File/Text input
- Excel
- PowerPoint
- JSON
- XML
- Word
- Java
SimpleSystem connect(File file);
SimpleSystem connect(InputStream in);
SimpleSystem connect(Path path);
SimpleSystem connect(Reader reader);
SimpleSystem connect(String code);
API Design
- https://de.wikipedia.org/wiki/Fluent_Interface
- https://www.xing.com/profile/Heiner_Kuecker
- http://www.heinerkuecker.de/Fluent_Interface_Code_Generator_auf_Basis_einer_Grammatik.html
Access
- Via Commandline
- Via Restful interface
- Via Drag & Drop interface
- Graphical representation goody!
Graph Algorithms
- https://en.wikipedia.org/wiki/Category:Graph_algorithms
- https://de.wikipedia.org/wiki/Graphersetzungssystem
| Feature | Keyword | Example | Benefit | Accessibility improvement | Effort/Cost/Complexity | Basics | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| List Handling | All | copy all persons from system smartcrm to system wiki crm.bitplan.com | ++ Depends on List size 10,100,1000,10000, ... | ++ (a few hours) | linear | |||||
| Filter | having | count all persons from system smartcrm having sales rank > 9000 | ++ | dependends on complexity of filter (a few hours to a few days) | ||||||
| Select | with ... field entry | person with street, plz and tree number, organization, address of organization | ||||||||
| Map | group, map ... as | group street,plz,city,country as address, map zip as plz | ++ | depends | ||||||
| Graph algorithms | ||||||||||
| Depth First traversal | starting from follow ... levels / until .. | starting from Queen Victoria follow child 3 levels | ||||||||
Example

Native Queries
- SQL
- SPARQL
- Neo4J Cypher
- Gremlin
- RESTFul
Ideen
- Welches Schiff von Japan nach Bremerhaven hat potentiell den im Januar 2017 gefertigen Peugeot Ion an Bord?
-> Starting with Mitsubishi i-MiEV (Q1129816) -> Manufacturer -> Location -> neareste Habor -> Ships going to Bremerhaven -> Arriving around 52 days later
- Non paying Users -> upload data
- Drag & Drop -> local
"Scanne das aktuelle Dokument ein und lege es unter dem Thema Borussia 2017 Eintrittskarten ab.... " Signal:
Source system scanner Target system Bitmypaper target move to fahl/2017/Eintrittskarten source move to / # dummy scanner root get set category= set pagename= set ... = put as 2017-12-09_Borussia-Schalke_Spiel8 show in browser
Issues
- Credential-Handling
- Mappings: Name Mappings, Type Mappings, Encoding-Mappings
Droptarget
The Droptarget shall allow to drag and drop data and scripts
Example
- Clickstream analysis
Graphs:
- Filesytem - Log files in directory
- Navigate clickstreams per logfile
- put data into graph database
- Filter "interesting" clickstreams
- show aggregates
Transformations:
- graph to list/iterator: e.g. depthfirsttraversal
Libraries
Algorithms
Logo
- File:14289921.png
- File:Gestaltlogo.svg
- https://raw.githubusercontent.com/alexvcasillas/react-mobx-state-tree/master/React_MST_GraphQL_Logo.jpg
- File:Fermalogo.svg
- https://github.com/unipop-graph/unipop/blob/master/docs/images/unipop-logo.png
- https://raw.githubusercontent.com/unipop-graph/unipop/master/docs/images/unipop-logo.png
- https://twitter.com/apachetinkerpop/status/935960284631506944
- https://pbs.twimg.com/media/DP0y5LEVQAAG7B0.png
Links
- https://en.wikipedia.org/wiki/Linked_data
- http://www.iflair.com/multi-platform-integration-service.htm
- https://markorodriguez.com/
- https://www.datastax.com/dev/blog/datastax-drivers-fluent-apis-for-dse-graph-are-out
- http://janusgraph.org/
- https://github.com/wikimedia/wikidata-gremlin
- https://phabricator.wikimedia.org/T155829
- https://www.heise.de/newsticker/meldung/Wikidata-Wikipedia-bekommt-Faktendatenbank-1497264.html
- https://en.wikipedia.org/wiki/Model_transformation_language