status of 1.3
Frederic Gobry <[email protected]>
| Newsgroups | gmane.comp.gnome.apps.pybliographer |
|---|---|
| Message-ID | <[email protected]> |
Hi,
Just a short note regarding the codebase of pyblio-1.3. It is regularely
developped, but in a very specific direction (that fits my current needs
as a matter of fact :-)). However, it might soon reach the point where
it will be of general interest.
What does it do as of today:
- it can manage (ie add, remove, search, sort) structured records.
These records are composed of attributes that have distinctive
properties (persons, urls, identifiers, enumerated values, free form
text,...) The way a record is composed is not defined in the
framework itself, but lives in a user-provided "schema".
Each attribute can be qualified by additional informations, so that
we can have a record that looks like:
Record ...:
Title : ....
Author: ....
Role: Editor
Author: ....
URL: .....
Description: ....
- these records can be stored in a native XML format, or in a bsddb
backend.
- There are already some classes that can handle importing and
exporting to other "standard" formats, like BibTeX, EndNote (XML),
RIS, ISI, XML MARC.
Important remark: theses importers and exporters are generally not
concerned about the actual semantic of the data they manage: they
provide a convenience to build the actual filters that are
customized for a given schema, your schema, and can process all the
special cases you have to adapt to with a minimal amount of extra
code.
- a simple formatting language makes it easy to specify a
bibliographic output style.
Design choices:
- works as a framework: it is quite hard to embbed the current
pyblio-1.2 code base in some other code. The 1.3 version is so far
only a framework, on which actual applications will be built (but
are not, today)
- not intended as a BibTeX editor: even if the framework should
support most of the features of bibtex, the common pattern of use
should be to import a bibtex file in a native database, and only
export it again when it is needed.
- extensible, flexible: there is no attempt to fit to a specific
standard (BibTeX, MARC, MODS, Dublin Core,...) but only to give
enough power to make it easy to adapt to the one _you_ need, in a
pragmatic approach. This flexibility intentionally uses python as
its substrate rather than some XML or XSL format, as I think it is
really more efficient for the user's brain.
What's coming next:
- for the data model: there are only a few things that I plan to add
in the near future, but with interesting impacts, namely links
between records (giving birth to a non-flat structure of records),
and references in attributes (allowing authority records, or simply
shortcuts like BibTeX's @string command)
- for the ease of management, a system to identify more explictely the
different schemas, and the importers that support them
- code to support querying external databases as easily as importing
file formats.
I guess I should not have called that a short note... :-)
Frédéric
signature.asc
(application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFC1tVaFjQHpltE9KURAjN+AKClSg9NRqeLJIRuqIbmqLQwhpStoACgmdE3 aORAENclv5IvjRDPkhiRp5U= =y3OT -----END PGP SIGNATURE-----