The package database holds information about installed and available packages.
Packaging/Overview Of The Package Database
Packaging/Adding A Package To The Package Database
Packaging/Determining Which Package A File Belongs To
Packaging/Determining Which Packages Are Dependent Upon A Particular Package
Packaging/Obtaining Information Held About A Package
Packaging/Changing Information Held About A Package
Packaging/Excluding A Package From Installation
Packaging/Keeping Packages Marked For Removal
Packaging/Listing Available Packages
Packaging/Listing Installed Packages
Packaging/Listing Files Belonging To A Package
Packaging/Locking A Package Into The Package Database
Recovering A Damaged Package Database
Removing A Dependency From The Package Database
Removing A Package From The Package Database
Searching For Available Package Names That Match A Pattern
Status Of Packages Within The Package Database
Packaging/Structure Of The Package Database
Updating The List Of Available Packages
Dpkg
Using Awk To Modify The Package Database
Debian Package Metadata
Debian packages have a lot of associated metadata, only part of which is covered by the APT database.
The APT library is not really easy to code with, and there are various projects that wrap and expand it.
This page is a list of people and projects that cope with debian package database access libraries and package metadata:
APT, the main Debian package database. Has a libapt-pkg to access the database. Maintainer: Matt Zimmerman
Aptitude, a better replacement for dselect. Internally wraps and extends libapt-pkg. Adds metadata, keeping track of packages installed on user requests and packages installed automatically as dependencies. Author: Daniel Burrows
BTS, keeps track of package bugs. Adds metadata: bugs reports, open/closed bugs, bug priorities and lots more.
Debfoster, keeps track of packages installed on user requests and packages installed automatically as dependencies. Adds metadata: same as aptitude. Authors: Wessel Dankers, Mika Liljeberg
Debram, a package categorization effort intending to converge into Debtags. Author: Thaddeus H. Black
Debtags, a categorization effort for Debian packages. Has a libdebtags to perform database searches spanning APT and Debtags databases. Author: Enrico Zini, Erich Schubert and others.
Kapture, a KDE graphical package manager. Is split into frontend dependent and frontend independent part. The independent part has all the sorting/searching/categorisation stuff in it. Will use libdebtags (currently only using libtagcoll and some copied/adapted code from older release of debtags) and algorithms based on it. Author: Peter Rockai (mornfall)
Package Search, a QT application to find debian package. Author: Benjamin Mesing
Popularity Contest, tracks usage statistics about debian packages. Adds metadata: a rough measure of package popularity. Full database is downloaded from the main page of the project
Synaptic, a GTK graphical package manager. Has a libsynaptic with the search functions. Author: Michael Vogt
Other sources of metadata are package changelogs, .desktop files, application icons, translated descriptions, tasks.
New possible metadata can be keeping track of mime types the package provides support for.