Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
November 9, 2020 08:28
December 7, 2020 09:37
February 15, 2021 10:38
November 23, 2020 08:40
November 9, 2020 08:34

Cooking with Python and KBpedia

Cooking with KBpedia

The Cooking with Python and KBpedia series consists of nearly 75 installments that discuss how to pick tools and then use Python for using and manipulating the KBpedia knowledge graph. KBpedia is a unique knowledge system that intertwines seven 'core' public knowledge bases -- Wikipedia, Wikidata,, DBpedia, GeoNames, OpenCyc, and standard UNSPSC products and services -- for the explicit purpose of providing a computable scaffolding and design for data interoperability and knowledge-based artificial intelligence (KBAI).

The first installments in the CWPK series begin with choices regarding tools and design. Later installations embed working code into interactive Jupyter Notebooks. As developed, code is posted to GitHub for your own use and modification. As installments get published, the ongoing index below will capture the scope and coverage of this ambitious series.

Interactive notebook pages begin about CWPK #14.

Table of Installments

  • CWPK #1: Cooking with Python and KBpedia
  • CWPK #2: What to Expect

Part I: The Baseline System

  • CWPK #3: Clojure v R v Python
  • CWPK #4: The Baseline Architecture
  • CWPK #5: Overview and Installation of Protégé
  • CWPK #6: Initial KBpedia Inspection
  • CWPK #7: Getting Familiar with KBpedia Files
  • CWPK #8: Getting Familiar with the KBpedia Structure
  • CWPK #9: Installing Python
  • CWPK #10: Installing a Project Notebook
  • CWPK #11: Installing a Python IDE
  • CWPK #12: A Brief Pause to Learn Some Python
  • CWPK #13: Managing Python Packages and Environments
  • CWPK #14: Markdown and Anatomy of a Notebook File
  • CWPK #15: Using Notebooks for CWPK Documentation

Part II: Beginning The Efforts

  • CWPK #16: Planning the Project
  • CWPK #17: Choosing and Installing an OWL API
  • CWPK #18: Basic Terminology and Load KBpedia
  • CWPK #19: Exploring the API to OWL
  • CWPK #20: Basic Knowledge Graph Management – I
  • CWPK #21: Some Accumulated Tips
  • CWPK #22: Basic Knowledge Graph Management – II
  • CWPK #23: Text Searching KBpedia
  • CWPK #24: Introduction to RDFLib
  • CWPK #25: Querying KBpedia with SPARQL
  • CWPK #26: Introduction to Knowledge Graph Reasoners 

Part III: Basic Extraction and Module Routines

  • CWPK #27: A ‘Roundtrip’ Philosophy
  • CWPK #28: Extracting Structure for Typologies
  • CWPK #29: Extracting Object and Data Properties
  • CWPK #30: Extracting Annotations
  • CWPK #31: Reading and Writing Files
  • CWPK #32: Iterating Over a Full Extraction
  • CWPK #33: A Python Package, Part I: The Annotation Extractor
  • CWPK #34: A Python Module, Part II: Packaging and The Structure Extractor
  • CWPK #35: A Python Module, Part III: Custom Extractions and Finish Packaging
  • CWPK #36: Bulk Modification Techniques

Part IV: Building from Scratch

  • CWPK #37: Organizing the Code Base
  • CWPK #38: Stubs and Starting Files
  • CWPK #39: I/O and Structural Ingest
  • CWPK #40: Looping and Multiple Structure File Ingest
  • CWPK #41: Optimizations and Property Structure Ingest
  • CWPK #42: Other Structural Considerations
  • CWPK #43: Logic Testing of the Knowledge Graph Structure
  • CWPK #44: Annotation Ingest
  • CWPK #45: Cleaning and File Pre-checks
  • CWPK #46: Creating the cowpoke Package and Unit Tests
  • CWPK #47: Summary of the Extract-Build Roundtrip
  • CWPK #48: Case Study: A Sweeping Refactoring  

Part V: Mapping, Stats, and Other Tools

  • CWPK #49: Mapping External Sources
  • CWPK #50: Querying External Sources
  • CWPK #51: Distributed Interactions via Web Widgets - I
  • CWPK #52: Distributed Interactions via Web Widgets - II
  • CWPK #53: Intro to Other Tools
  • CWPK #54: Statistics and Logging
  • CWPK #55: Charting
  • CWPK #56: Graph Visualization and Extraction
  • CWPK #57: Publishing Interactive Notebooks
  • CWPK #58: Setting Up a Remote Instance and Web Page Server
  • CWPK #59: Adding a SPARQL Endpoint - Part I
  • CWPK #60: Adding a SPARQL Endpoint - Part II -  

Part VI: Applications and Machine Learning

  • CWPK #61: NLP, Machine Learning and Analysis
  • CWPK #62: Network and Graph Analysis
  • CWPK #63: Staging Data Sci Resources and Preprocessing
  • CWPK #64: Embeddings, Summarization and Entity Recognition
  • CWPK #65: scikit-learn Basics and Initial Encoding
  • More to come . . . .  

Part VII: Wrap-up



'Cooking with Python and KBpedia' recipes and Jupyter Notebooks







No releases published


No packages published