Hi,
I announced to Bruce that I was going to write a Haskell
implementation of citeproc to be used with pandoc a few months ago,
but only this week I was able to start coding.
Luckily I was able to produce an almost working proof of concept -
just the internal data type structure, with the basic function to
evaluate cs-elements and expand macros -, still enough to make me
believe I should be able to cope with the challenge, which was
something I was not entirely confident with.
Unfortunately I lack some documentation - and the schema seems not to
be enough to solve all my doubts. Moreover I must confess I’m not that
familiar with the programming languages the other implementations are
written with. Well, the Python and the Ruby code was really inspiring,
but they are incomplete. I have also to admit I have some difficulties
in parsing the Zotero implementation.
I’m also a bit confused because what I read on the xbiblio.sf.net site
seems to me quite misleading if compared with the recent development
of the schema, am I right?
What I’m trying to say is that I need your help to carry on my work.
Just to give you a few examples of stuff that is not clear to me:
-
what is the present status (and meaning) of the “class” attribute
of the “style” element (“in-text” | “note”)? -
what is the meaning and usage of the “class” attribute of the
"group" element? -
how is the fallback mechanisms supposed to work? Is it still there?
(see http://xbiblio.sourceforge.net/csl/)
Then I have more specific questions - and more will come along the
development path. For instance, something related to the
"if"/“else-if” elements:
-
the “variable” attribute: the comment reads “If a given variable
exists, this is true”. This means that the variable must have a non
null value, right? -
the “is-numeric” attribute: what does "contains numeric data"
means? That (or “volume” | “issue” |
“number” | “number-of-volumes”) is always true?
This is just an exemplification of the questions that arise here and
that the documentation I found seems not enough to solve. Maybe you
can point me to better docs.
By the way, I think you did a wonderful job and I have the feeling
that implementing CSL in Haskell is going to be fun and far less
complicated than I previously feared.
At the present time I working on the internal type structure: the CSL
object model (to speak Ruby) and the Reference object. When this part,
the core, will be ready I’ll start working on the input filters: CSL
and reference parsing. Since during this summer my spare time will be
very limited I think I’ll be able to produce something usable by the
end of the next autumn. Still I will share the code - with BSD license
- as soon as it will be readable, even if not usable (hopefully by the
end of the month).
Thanks for your attention.
Best regards,
Andrea
PS: and now something to introduce myself. I’m a legal scholar, which
means that I do legal research and teach in an Italian university. I
met CSL quite early in its development life, when I was developing a
wiki engine, written in PHP, which had (well, still has) a citation
markup, a bibliographic database and automatic reference and
bibliographic formatting: UniWakka. At that time I was looking for a
standardized way of dealing with bibliographies and I came to know
about Bruce’s work, which I’ve been following since then.
With that wiki I wrote a book - the wiki also had an OpenDocument
exporter. Now I do not actively develop that wiki engine any longer
and I was looking for a substitution to deal with my work-flow, when I
found pandoc, which seems to perfectly fit my needs - if it only had
an OpenDocument filter and a bibliographic formatting engine. The
first issue has been solved recently…