Zoviz

Zoviz is an unaffiliated library for accessing and visualizing Zotero data.

Gitlab project: https://gitlab.com/jlogan03/zoviz (includes example.ipynb notebook)

Examples

Visualizing a graph of collaboration

with zoviz.DB() as db:  # Zotero database is discovered automatically
   g = db.build_creator_graph(collection="example")
   zoviz.draw_community_graph(g, edge_color='k')
_images/community_graph.png

Querying the database

with zoviz.DB() as db:
   example_query = \
   """
   SELECT value FROM itemDataValues WHERE valueID IN (
   SELECT valueID FROM itemData WHERE itemID IN (
   SELECT itemID FROM items WHERE itemTypeID IN (
   SELECT itemTypeID FROM itemTypes WHERE typeName IN
   ( 'journalArticle' ) ) ) )
   """

   df = db.query_df(example_query)
   print(df["value"][0])

returns

Cooling topologies for superconducting power systems: II. Long-distance electric transmission

Accessing tables

Because Zotero databases can be assumed to be “small” in computational terms, it’s usually safe to access tables directly. Whenever a table is accessed directly, if it isn’t in memory, it will be queried at that time.

# Three ways to get the itemData table as a pandas DataFrame
with zoviz.DB() as db:
   # The shortest way
   itemData = db.itemData
   # The short way
   itemData = db["itemData"]
   # The long way
   itemData = db.query_df("SELECT * FROM itemData")