Bidirectional transformation for Relational view update Datalog-based Strategies
Switch branches/tags
Nothing to show
Clone or download
Latest commit 3555c7c Oct 15, 2018

README.md

BIRDS

More detail at: https://dangtv.github.io/BIRDS/

Compilation and Usage

Compilation

  • Dependencies:

  • Compiling:

    • Clean:
      make clean
    • Build:
      make all
    • Release:
      make release

Usage

  • The execution file is ./bin/birds:

    ./bin/birds [OPTIONS]
    -db         : print debugging information
    -f file     : read program from file, if not chosen, read from stdin
    -o file     : write program out file, if not chosen, print to stdout
    -s schema_name     : database schema name to connect to (default: public)
    -help  Display this list of options
    --help  Display this list of options
  • For example:

    ./bin/birds -s public -f tests/test1_put_rule.dl -o tests/test1.sql

Other Datalog systems

Run a pair of put and get datalog programs by using DES

  • Go to DES CLI :
    des
  • put:
    • load the ground facts:
      /consult tests/test1_put_fact.dl
    • load the rules of put (you need to remove the first line from tests/test1_put_rule.dl):
      /[+ tests/test1_put_rule.dl ]
    • get the result of tracks1_prime:
      tracks1_prime(TRACK,DATE,RATING,ALBUM,QUANTITY)
  • get:
    • load the ground facts:
      /consult tests/test1_get_fact.dl
    • load the rules of put:
      /[+ tests/test1_get_rule.dl ]
    • get the result of tracks2_prime:
      tracks2_prime(TRACK,RATING,ALBUM,QUANTITY)

Run a pair of put and get datalog programs by using DLV

  • put: (need to remove the first line in test2_put_rule.dl) (test2_put.db is the set of ground fact)

    dlv test2_put_rule.dl test2_put.db -filter=tracks2_prime
  • get: (test2_get.db is the set of ground fact)

    dlv test2_get_rule.dl test2_get.db -filter=tracks3_prime