thoughts on "redesign"

So not sure where Simon is at with is idea to enhance CSL, but I was
just thinking that in some ways the simple option is just to go with
macros and fields, and make the values flat; something like this:

Perhaps there could be an optional “inherits” attribute for
contributors and such.

Then you’d do:

...

Note, am not necessarily saying this is the way to go, but it seems to
me the most pure, consistent, alternative, and just wanted to put it
out there for consideration.

E.g. if you introduce macro to allow more flexibility, you might as
well ditch the pre-defined field elements.

As I mentioned before, this becomes a little more difficult from a
purely XML standpoint (validation and such).

But actually, it might also be easier to specify and get included in
ODF fairly quickly :wink:

Bruce

Hi ,

we were following these discussions for some time for now… CSL looks
nice and simple but this mailing list discussion has shown there are
still a lot of problems to be re-solved - as people are getting more and
more into CSL and working with bigger variety of real problems. We also
had some problems to define custom citation style without actually
modifying the csl schema. ( btw. a nice “how to” would be highly
desirable :)).

We strongly support the idea of “macro” - it is in fact very similar to
what our citation style configuration is doing (there is some difference
in the naming conventions and Xml complexity)

In our case “macro” is what we call a “layout element”. Each layout
element can be specified of one or more other “fields” (metadata) or
"layout elements" (i.e. other macros). For each layout element users (or
developers) can specify some parameters that define how the content is
to be presented (current csl schema knows these as attributes of
fields). A Layout element can be combined with other layout elements. We
were following the principle of “lego blocks”.

csLayoutDefinition - is an element that defines a specific “type” of
citation i.e. Article, Book, Journal etc.
csLayoutDefinition consists of sequence of layoutElements (i.e. macros).
A layoutElement can be specified based on one or more other “fields”
(metadata) or other defined “layout elements” (i.e. other macros).

Final outcome is single XML file for a citation style … i.e. in our
concept we use these building blocks to “import” them into the citation
style configuration file, we do not “reference” them - because we would
like to have the citation style configuration complete and self-defined
(currently with the exception of the metadata schema - it exists as an
external one).

The benefit for CSL would be:

  • CSL schema should only specify how macros for fields/types should be
    defined within a citation (and bibliography)
  • current classes can be removed from basic schema (they can serve as
    "validation classes") for “slightly changed” variants of e.g. Harvard
    style, APA style (note: this to us looks like a benefit because one
    would not have to change the rnc schema for definition of a new custom
    style).
  • one can in fact easier cope with variety of metadata schemas (well,
    this is questionable for processing component :)))
  • easier to build a GUI that will not change when a new citation-style
    class is to be added
  • easier for processing components development (and sharing of style
    definitions - without necessity to “adjust” specifically for processing
    component (this we already experienced for some style definitions from
    CiteProc to Zotero )

On the other hand what Bruce mentioned - is true:

“this becomes a little more difficult from a
purely XML standpoint (validation and such).”

We would like actually to bring it together with CSL definition and
environment if possible.

Best,
Natasa

Bruce D’Arcus wrote:> So not sure where Simon is at with is idea to enhance CSL, but I was

we were following these discussions for some time for now… CSL looks
nice and simple but this mailing list discussion has shown there are
still a lot of problems to be re-solved

I think “a lot” is putting things too strongly.

I also think the design goals of CSL – to be data format independent,
easy to use for styles authors, and comprehensive (including support
for the humanities) – are really difficult to balance.

If we go the more generic approach (instead of pre-defined macros using
elements basically) we give up various things (ease of use and
validation primarily).

These might be worth sacrificing, but I want people to understand that
every detail in the current CSL has a reason for being there.

  • as people are getting more and
    more into CSL and working with bigger variety of real problems. We also
    had some problems to define custom citation style without actually
    modifying the csl schema. ( btw. a nice “how to” would be highly
    desirable :)).

Sure, but this is why you should post issues when you come across them.

I fully recognize we need documentation and a formal spec, but just for
those of you that don’t know: this is not my day job. I’m a
professional scholar, up for tenure this year. I’ve also spent the past
year working with the OpenDocument TC at OASIS to add greatly enhanced
new metadata support there.

So there’s only so many hours in a day, and I just don’t have time to
work on documentation for the next couple of months. It’s not that I
don’t care about it or recognize the issue. David Wilson started to
help with me this BTW.

We strongly support the idea of “macro” - it is in fact very similar to
what our citation style configuration is doing (there is some
difference
in the naming conventions and Xml complexity)

OK.

In our case “macro” is what we call a “layout element”. Each layout
element can be specified of one or more other “fields” (metadata) or
"layout elements" (i.e. other macros). For each layout element users
(or
developers) can specify some parameters that define how the content is
to be presented (current csl schema knows these as attributes of
fields). A Layout element can be combined with other layout elements.
We
were following the principle of “lego blocks”.

csLayoutDefinition - is an element that defines a specific “type” of
citation i.e. Article, Book, Journal etc.
csLayoutDefinition consists of sequence of layoutElements (i.e.
macros).
A layoutElement can be specified based on one or more other “fields”
(metadata) or other defined “layout elements” (i.e. other macros).

Final outcome is single XML file for a citation style … i.e. in our
concept we use these building blocks to “import” them into the citation
style configuration file, we do not “reference” them - because we would
like to have the citation style configuration complete and self-defined
(currently with the exception of the metadata schema - it exists as an
external one).

Right. It’s true of CSL too.

The benefit for CSL would be:

  • CSL schema should only specify how macros for fields/types should be
    defined within a citation (and bibliography)

Hang on, I’ll come back to this in another message. To me there are
some design principles that are critical to CSL that could easily be
lost if not careful.

  • current classes can be removed from basic schema (they can serve as
    "validation classes") for “slightly changed” variants of e.g. Harvard
    style, APA style (note: this to us looks like a benefit because one
    would not have to change the rnc schema for definition of a new custom
    style).

They are validation classes rights now.