Skip to content

uds-datalab/PDBF

Repository files navigation

#PDBF - A Toolkit for Creating Janiform Data Documents Version 1.2.7

##Bugs, Suggestions, Feature requests If you encounter bugs, have suggestions or have a feature request, then please go to the issue page open a new issue if necessary and explain your concern. You can also write us an email ({s9lslang, s9mumali} at stud.uni-saarland.de or jens.dittrich at cs.uni-saarland.de).

##Presentation video

##Abstract PDBF documents are a hybrid format. They are a valid PDF and a valid HTML page at the same time. You can now optionally add an VirtualBox OVA file with a complete operating system to the PDBF document. Yes, this means that the resulting file is a valid PDF, HTML, and OVA file at the same time. If you change the file extension to PDF and open it with an PDF viewer, you can see the static part of the document. If you change the file extension to HTML and open it with a Browser (currently Chrome/Firefox/Safari/IE 10 supported), you can see the dynamic part of the document. And if an ova file is attached you can also change the file extension to OVA and install and run the attached operating system. The difference between the PDF and the HTML version is that the PDF version contains static version of all PDBF elements, whereas the HTML version is dynamic. For example you can zoom into charts, temporarly remove dataseries from the chart, inspect and change the underling query of the PDBF element and see the result of the change directly in the browser.

PDBF files are created from LaTeX source code and a relational database. The raw data can either be a SQL statement string, a file with SQL statements, or contained in a database (currently PostgreSQL/MySQL/MariaDB supported). In the LaTeX code you can then specify how the PDBF element (currently charts/pivot tables/multiplot charts/sql statements/dataTexts/dataTables/attachment/graph are supported) is created from the raw data with options and an SQL query or filePaths. Read more in the documentation, which is itself is a PDBF document.

PDBF toolkit is written in Java and LaTeX and can be used to compile documents on Windows, Mac, and Linux. PDBF documents are also platform independent and run on any desktop OS (Windows, Linux, Mac) with a browser/PDF viewer.

A demo paper of our tool appeared at VLDB 2015. Note: The paper was build with an old version of PDBF. To see an up to date example of PDBF look at the documentation.

##License This toolkit is licensed unter the MIT License (see here)

##Getting started #####Normal usage

  • Make sure you have a Java Runtime (version >= 1.7) and a LaTeX distribution installed
  • Download the latest version
  • Extract zip and change workingdir to extracted folder
  • Adjust config.cfg
  • Try to compile minimal.tex (with working internet connection) file with this command: java -jar pdbf.jar minimal.tex
  • Open minimal.html, this is the final output of the compilation process, if you rename it to ".pdf" it is also a valid pdf-document

#####Attach a VirtualBox image

  • Optionally you can attach the included vldb-Invaders.ova (Space invaders clone) or download the dsl.ova (Damn small linux) VirtualBox image and attach it to the compiled PDBF file with this command: java -jar pdbf.jar --vm minimal.html vldb-Invaders.ova
  • Open minimal.ova (if you have VirtualBox installed), this is the final output with the attached ova file. Its still a valid pdf and html file at the same time.

#####Attach a tar archive

  • Optionally you can attach a tar archive file to the compiled PDBF file with this command: java -jar pdbf.jar --tar minimal.html TAR_file.tar
  • Open minimal.tar, this is the final output with the attached tar file. Its still a valid pdf and html file at the same time.

#####Learn how to use the PDBF framework

  • You can play around with the minimal.tex file. It contains a small example on how to specify PDBF elements in LaTeX
  • For further information take a look at the documentation

##Features #####Automatic generation of Charts, Multiplot Charts, Pivot tables and undirected Graphs With PDBF you don't need to manually generate these kinds of elements. The PDBF compiler automatically generates a static version for the pdf and the dynamic version for the html part of the PDBF document. This also means that your document is always up to date! If you change something in the underlying data that generate your PDBF document and then recompile the document, then the data in the document is up to date. No need to manually update externally generated charts or pivot tables.

#####Generate your document directly from the results of your experiment The idea of PDBF is to store the results of the experiment directly in the document and to make it more transparent how this chart, pivot table, graph, etc. was generated from the result data. Therefore we currently support CSV files, SQL files, and SQL servers as data sources and use SQL as description language for the transformation of the raw result data to the final representation in the document. For graphs, we use .txt files as the data source.

#####Enable the comparison of your results to other users To make your own results even more transparent, you can let other users input their own result files. If there is a difference, the PDBF will recognize it, and will automaticly create a highlighted view of changes. However right now, this option is only avaible for JSON-files as choosen datasource and TXT-files as datasource for graphs.

#####Compile LaTeX to single HTML file You can also use the PDBF compiler to compile your LaTeX files to a single HTML file. To do so just run the compiler as on any other document (you dont need to include the pdbf package in your tex file):

java -jar pdbf.jar sometexfile.tex

The resulting HTML file is saved in the same folder with the same name but html ending.

##Build Instructions

  • Run "mvn package" if you only want to compile pdbf.jar
  • Run "mvn verify" (with working internet connection) if you want to compile pdbf.jar and run integration tests.

Note: The compiled pdbf.jar is automatically copied from target to the main folder.

##Thanks to the authors of: