SiGNaL2017

From BITPlan Wiki
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
    • PDF
    • 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

  1. Record / Map
  2. List
  3. Table
  4. Tree
  5. Graph

DataSource APIs

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
  • PDF
  • 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

Access

  • Via Commandline
  • Via Restful interface
  • Via Drag & Drop interface
  • Graphical representation goody!

Graph Algorithms

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

  1. SQL
  2. SPARQL
  3. Neo4J Cypher
  4. Gremlin
  5. 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

Links