cabal-version: 3.0
name: dhscanner-kbgen
category: parsing
synopsis: knowledge base predicates for static code analysis
description:
* The [knowledge base](https://en.wikipedia.org/wiki/Knowledge_representation_and_reasoning) ( kb )
aims to be a data structure able to:
* represent /multiple/ facts about the source code repo
* from /various/ programming languages
* each fact can be translated to a [Prolog](https://en.wikipedia.org/wiki/Prolog) fact
* facts can be combined to create [predicates](https://en.wikipedia.org/wiki/Predicate_%28logic%29)
* predictaes can be combined to formulate /security queries/
* [Prolog](https://en.wikipedia.org/wiki/Prolog) facts describe relations between:
* code locations
* const strings
* const integers
* [Prolog](https://en.wikipedia.org/wiki/Prolog) facts can be /combined/:
* create /expressive/ queries from /simple/ facts
* [conjunction](https://en.wikipedia.org/wiki/Logical_conjunction)
* [disjunction](https://en.wikipedia.org/wiki/Logical_disjunction)
* [negation](https://en.wikipedia.org/wiki/Negation)
* [Prolog](https://en.wikipedia.org/wiki/Prolog) queries are /easy/ to write:
* you /don't/ have to be a Prolog expert
* copy-paste the basic facts to /any/ [LLM](https://en.wikipedia.org/wiki/Large_language_model)
* explain in plain English your query's purpose
* et voilà !
version: 1.0.21
license: GPL-3.0-only
license-file: LICENSE
author: OrenGitHub
maintainer: Oren Ish Shalom
copyright: (c) 2025 Oren Ish Shalom
homepage: https://github.com/OrenGitHub/dhscanner
stability: experimental
build-type: Simple
common ghc_options
ghc-options: -Wall -O2
library
import:
ghc_options
exposed-modules:
Kbgen
build-depends:
aeson < 2.3,
base >= 4.18 && < 4.19,
containers < 0.7,
dhscanner-ast >= 1.1.4,
dhscanner-bitcode >= 1.0.14
hs-source-dirs:
src
default-language:
Haskell2010