How to be Pythonic? Design a Query Language in Python

Cheuk Ho

APIs Databases Graph Databases Open-Source Programming

See in schedule Download/View Slides

Query language is an important part of a database system, it is how people manage their data and how they can make the data useful to them. Starting from the 70s, the world is full of relational databases and SQL was the way to make queries. However, SQL is valuable to an injection attack. Lots of efforts are being used to stop those attacks and it made workflow become less efficient.

We don’t want to make the same mistake. That’s why using a Python query language is good. Having the Python community in our mind, we created WOQLpy, an open-source query language that lets users build queries in Python, instead of JSON-LD which is the native query language for our TerminusDB database. Now users can store data with a knowledge graph and make graph data visualization with Python.

In the first part of the talk, we will talk about what challenges we have when creating a query language in Python, the method we use, the idea and theory behind, and how WOQLpy work. This part will include a quick live demo of using WOQLpy so audiences can have an impression on how to make a query and get the task done, that is, getting a meaningful graph visualization form the source CSVs. The process of how to create a database and schema, loading the data form many CSVs, making a query and visualization, will be demonstrated using just one python script.

In the second part of the talk, we want to stimulate a discussion of what is a good design in Python and what is not. This part will be more interactive with the audiences, as we want to hear from you all, what would be the best for Pythonistas. By first suggesting some possible design, we will use a live voting system to gather opinions. This part of the talk will extend to the Q & A sessions to allow further discussions.

This talk is for Pythonista at all levels who are interested in starting to design a package in Python, no matter if the audience has published a python library or not. By attending this talk, audiences will learn about how to design a Python package that will be useful to Pythonistas and hopefully encourage more people to publish open-source packages online.

Type: Talk (30 mins); Python level: Intermediate; Domain level: Intermediate

Cheuk Ho


After doing research in theoretical physics, Cheuk has transferred her analytical and logical skills in natural science and built a career in data science. Cheuk has been a Data Scientist working in the travel business, a consultancy and a global bank. She now brings her knowledge in data and passion for the tech community into TerminusDB( as the developer relations lead.

Cheuk constantly contributes to the open-source community by giving AI and deep learning workshops and organize sprints to encourage contributions. Cheuk has also been a guest speaker at various conferences and co-organize AI Club for Gender Minorities to support Diversity and Inclusion. More about Cheuk's community work and projects: