Skip to content

python based framework for imperative representation of knowledge

License

Notifications You must be signed in to change notification settings

ackrep-org/pyirk-core

Repository files navigation

Code style: black PyPI version Documentation Status ci

Overview: pyirk

Pyirk is a Python framework for imperative representation of knowledge.

  • Designed to formally represent knowledge (including meta levels)
  • Implementation-status: "early alpha"
  • Inspired by OWL, but much more expressive
    • ... at the cost of guarantied computability
  • Inspired by Wikidata, but much simpler
  • Inspired by SUO-KIF, but with less brackets
  • Represented directly in python: → imperative instead of declarative knowledge representation

While pyirk aims to be applicable to a wide range of knowledge domains, its origin an its current (2023) main focus is the representation of knowledge from the domain of control theory as part of the Automatic Control Knowledge Repository (ACKREP). Thus, a subset of the Ontology of Control Systems Engineering is used as test data for pyirk. In fact, both projects are practically co-developed.

Not that, originally pyirk (imperative representation of knowledge) was called pyerk (emergent representation of knowledge), in case you come across some old version.

Recommended Directory Structure

<irk-root>/
├── pyirk-core/                     ← repo with the code of the core package
│  ├── .git/
│  ├── README.md                    ← the currently displayed file (README.md)
│  ├── setup.py                     ← deployment script
│  ├── src/pyirk/auxiliary.py       ← module containing function get_irk_root_dir()
│  └── ...
│
├── django-irk-gui/                 ← repo with the code for the django gui (project and! app)
│  │                                  (this package is optional)
│  ├── .git/
│  ├── manage.py
│  └── ...
└──...

Documentation

Rudimentary documentation is available at https://pyirk-core.readthedocs.io (generated from the /docs directory). To get an overview of the most important features you might also want to have a look at the source code, especially at the files builtin_entities.py and the test cases, e.g., test_core.py.

Coding style

We use black -l 120 ./ to ensure coding style consistency.