Greetings,

Thank you for referring me to Nabble. I definitely feel like I don't know what 
I am doing on the mailing list, and Nabble looks like the ticket. I sent a 
request for access just now. 😊

In the mean time, I want to send a link to a blog post that I created. 
http://odf-bibliography.com/blog/csl/csl_future/ . The gist of the post is that 
CSL styles are amazing, and they fill an unmet need for bibliographic 
applications. One of the coolest things that CSL styles can do is create User 
Interfaces based on the citation system a person is targeting. I also lay out 
some ideas about how CSL styles could be even more useful for applications.

I know the point of a mailing list is to keep a public record. You should visit 
my blog (http://odf-bibliography.com/blog/csl/csl_future/) to the interact with 
the demonstration. However, I will post the main text of the blog below for 
sake of the record.


- Tom O'reilly

""""""""
THE POSSIBLE FUTURE FOR CSL


If you are a developer of a bibliography application, you probably want to 
allow the user to enter their own data. How can you turn user inputs into a 
format that is usable by citeproc-js? This question is the starting point, but 
we are going to end up exploring the philosophic under-pinnings of CSL and of 
bibliography technology stacks. I will show how CSL can already be used to fill 
existing needs in the bibliography ecosystem. Then, I will offer suggestions as 
to how CSL can improve its position as the de facto standard for citation 
styles.

There is something consequential for applications developers to understand 
about the Citation Style Language. CSL only defines how to create citation 
styles. CSL does not define how bibliographic information should be formatted.

CSL is interested only in standardizing how to create style sheets - and it 
avoids the thorny problem of standarding bibliographic records. There are, in 
fact, probably hundreds of competing standards for encoding records, and a CSL 
Processor is free to choose the format that works best for it. For the 
citeproc-js processor, it relies upon a standard called CSL-JSON. JSON is great 
for a web application, because it is quite efficient over networks. However, 
desktop publishing applications would probably prefer to use an XML format for 
bibliographic records for the sake of consistency.

I am not going to duplicate the tutorial concerning CSL-JSON. You can learn 
more about it 
here<http://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html>. I think 
that there may be some value to having the CSL community adopting one or more 
standards for bibliographic records. This would be helpful for word processors 
that want to integrate CSL. It would mean styles and records would be 
cross-platform - and users would not lose any of their hard work by switching 
applications. Any standard for bibliographic records should also consider 
possible applications with semantic web technologies. However, these are just 
my musings. Let's dive into how powerfully amazing CSL is currently for 
productivity.

Even though CSL does not fully standardize how to create bibliographic records, 
it does provide some guidance to ensure that bibliographic records are 
compatible across styles. Appendices 1 and 2 apply directly to CSL styles, and 
Appenice 3 and 4 apply to both bibliographic records and CSL styles.

Appendix 3 defines a set of source "type"s that may characterize a record. The 
source's "type" is the fundamental piece of information required of any 
bibliographic record. This is universal to all citation systems: the formatting 
of a bibliographic record depends on the source type.

Appendix 4 defines a set of variable fields and their corresponding data-type. 
It gives a list of approved "string" variables, "number" variables, "name" 
variables, and "date" variables.

When style creators conform to the conventions laid out in the Appendices, they 
ensure that bibliographic records will be compatible between styles. This is a 
powerful feature: to allow users to switch citation styles on the fly without 
losing any information.

Where does CSL fit in the bigger picture?

Let's draw back and look at a larger perspective of the bibliography field. One 
of the paradoxes of bibliographic record standards is that there is opposition 
between "flexibility" and "compatability." When a standard is very strictly 
defined, applications that rely on that standard will be compatible, but it is 
hard to adapt that standard to every citation system. By relaxing the standard 
to be flexible enough to accomodate unforseen cases, it makes it harder for 
applications to interpret and use that data. Let's pretend that we want a 
strict standard that is comprehensive of every deviation in citation systems, 
including (naming, numbering, dating conventions, required fields), then we end 
up with a standard that becomes too "cumbersome" to use. I think that this 
characterizes the MARC 21 standard. Some standards take a middle ground between 
"cumbersome" and "comprehensive," but they have to exercise editorial judgments 
about what to include, and how to organize what they have included. This 
approach characterizes standards like Zotero, OOXML, ODF.

I think the Citation Style Language is in a sweet spot to help answer that 
paradox. There are two layers of a bibliography technology stack: the 
application on top and bibliographic records on the bottom. Citation style 
languages insert another layer of abstraction into the middle of the 
bibliography stack - which helps bridge the application's need for data 
compatability and the user's need for flexibility. If a record represents a 
source, the CSL style is a representation of the real world citation system. 
The CSL language defines the CSL styles, which in turn, define the parameters 
of bibliographic records. The citaiton language layer is also the best layer to 
make editorial judgments, because citation styles have the best knowledge of 
the citation systems they model. Editorial judgments could be pushed from the 
application layer to CSL style layer, which frees application developers from 
having to become bibliography experts and making editorial judgments about how 
to organize bibliographic systems.

By embracing CSL as this middle layer of abstraction, we can see how to extend 
CSL's current functionality. Not only can CSL styles be used for format 
bibliography records; it can be used to generate interfaces for user input in 
applications.

The CSL style determines which variable fields can be displayed - and under 
which conditions they will be displayed. This makes bibliography UI much more 
manageable, because we can hide fields that are irrelevant to the user. This 
also informs the user when they are missing information that is important. 
Finally, it removes editorial control from the application developer, and 
places that control with style creators.

How to user-interface generation works

CSL styles are a branching logic flow chart. I created a module called 
"SetLogic" that can iterate through every logic path, and evaluate what 
conditions have been cumulatively applied to the statement at the end of those 
nodes. Thus, the processor knows under what conditions each node will be 
rendered in output. The processor then pairs which fields will be displayed 
with which source type. Click 
here<http://odf-bibliography.com/static/logic%20validator.odt> to read more 
about how SetLogic works, and other potential applications for SetLogic.

I created a second module called Form Utility. Form Utility depends on the 
SetLogic module for the relationships between fields and source types, and 
repackages them into a template for easy form generation. It will return all 
the source types referenced by the CSL style. It will also return an array of 
month and season names, based upon the locale file. Calling 
FormUtility.retrieve() will return an object with the following properties:

  *   "fields": a dictionary of fields, their types, and associated subfields.
  *   "menu": an array of types. Each type is an object with a "label" and 
"value" property.
  *   "dateSelect": contains an array of seasons and an array of months. Each 
is represented by an object with a "value" property corresponding to the CSL 
Appendix II (Months and Seasons). Each object also has a long-form name and 
short-form name for the month or season (as long as both are supported by the 
locale). Try the "Russian GOST R 7.0.5-2008 (numeric, sorted alphabetically, 
Russian)" style to see how date-fields are automatically localized for styles.

Future Development of CSL
Compatability v. Flexibility

One of the limitations of CSL is a return to the perrenial dillema - how do we 
acheive compatability and flexibility? CSL styles are compatible with each 
other, because they adhere to the CSL Appendices I-IV. They share the same 
"types", the same variable names, the same field categories, and the same 
terms. Unfortunately, this compatibility undermines flexibility of style 
creators, and a significant amount of editorial judgments made by the CSL 
crafters is locked at the application level. We should look for a mechanism to 
push editorial judgment and autonomy into the style level.

Source Type

One example that I run into is in creating styles for legal users. While CSL 
has one classification for "legal_case", the BlueBook citation system 
distinguishes between Article III Courts, administrative courts, and 
arbitrations. Where CSL has the "legislation" type, the BlueBook distinguishes 
constitutions, passed statutes, resolutions, and executive orders. I imagine 
that this problem is true for every specialized discipline. Style creators are 
using their editorial judgment to match the types recognized by the citation 
system to the types defined by CSL. However, if style creators could map the 
citation system's type to CSL types, and test against those arbitrary types in 
a style sheet, then they could create very accurate styles. Moreover, the 
styles would generate even more tailored UI.

Complexity v. Usability

I think that our technology will have arrived when novices can create high 
quality citations without ever referring to a citation guide. We have a start 
on the promise already. By having a UI that only displays fields that are 
relevant to the source's type, the application informs the user about the 
requirements of the citation system. However, we can do much more to make the 
interface informative to the user. One way of doing this is through tooltips 
that popup when the cursor or finger hovers over the field name.

The easy way to implement this feature is to use the CSL definition for 
variables (taken directly from CSL Appendix IV). However, what if these 
tooltips could offer specific guidance for how to use those variable fields 
within the citation system. I will demonstrate with another example from 
BlueBook concerning the "issued" field.

CSL specifies that, generally, the "issued" date variable contains the "date 
the item was issued/published." It's the primary field used for dating items in 
CSL. However, the BlueBook citation system rules for dating sources is much 
more complicated. For example:

  *   Cases are dated with the date they are decided.
  *   Statutes are dated with the date of the code edition cited.
  *   In-force Constitutional provisions are not dated, except provisions that 
have been repealed are dated by the date of the repeal. And superseded 
constitutions are dated by the year of adopton.

Dating rules are complicated, and style creators are usually experts of a 
citation system. Style creators could add a ton of value to styles if they 
could communicate their knowledge of the intricacies of style rules to their 
users. Such style creators would want tips that are specific to that variable 
field and item type.




________________________________
From: xbiblio-devel-requ...@lists.sourceforge.net 
<xbiblio-devel-requ...@lists.sourceforge.net>
Sent: Saturday, May 27, 2017 8:29 AM
To: xbiblio-devel@lists.sourceforge.net
Subject: xbiblio-devel Digest, Vol 119, Issue 1

Send xbiblio-devel mailing list submissions to
        xbiblio-devel@lists.sourceforge.net

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.sourceforge.net/lists/listinfo/xbiblio-devel
xbiblio-devel Info Page - 
SourceForge<https://lists.sourceforge.net/lists/listinfo/xbiblio-devel>
lists.sourceforge.net
This list is for development discussion around the xbiblio project, including 
schema design for the citation style language (CSL) and implementation 
discussion.


or, via email, send a message with subject or body 'help' to
        xbiblio-devel-requ...@lists.sourceforge.net

You can reach the person managing the list at
        xbiblio-devel-ow...@lists.sourceforge.net

When replying, please edit your Subject line so it is more specific
than "Re: Contents of xbiblio-devel digest..."


Today's Topics:

   1. Re: xbiblio-devel Digest, Vol 118, Issue 1 (bwiernik)


----------------------------------------------------------------------

Message: 1
Date: Tue, 7 Feb 2017 01:30:04 -0700 (MST)
From: bwiernik <xbib...@wiernik.org>
To: xbiblio-devel@lists.sourceforge.net
Subject: Re: [xbiblio-devel] xbiblio-devel Digest, Vol 118, Issue 1
Message-ID: <1486456204706-7579517.p...@n2.nabble.com>
Content-Type: text/plain; charset=us-ascii

(The mailing list doesn't seem function well when your email notifications
are set to digest. I'd recommend just responding on the Nabble archive to
respond--it's what I do. Another good reason to move to a new platform?)

Thomas, given your responses to the formatting particulars of parallel
citations, I wonder whether such a major change as you propose is really
necessary? Given that (1) the reporting requirements across styles are
either all reporters or just the first and (2) the ordering of reporters
should always be consistent, it seems to me like it should work for legal
items to just be expected to have multiples of the individual reporter
fields (e.g., multiple 'publication' fields). Each field should be
interpreted as an ordered list so that corresponding elements are in the
same order. in clients, the UI could be arranged to "Add reporter" or
similar, which would add new sets of the relevant fields as a unit. Styles
that require just the primary reporter would then just take the first
element from the list, while other styles would use the full lists.




--
View this message in context: 
http://xbiblio-devel.2463403.n2.nabble.com/Re-xbiblio-devel-Digest-Vol-118-Issue-1-tp7579516p7579517.html
xbiblio-devel - Re: xbiblio-devel Digest, Vol 118, Issue 
1<http://xbiblio-devel.2463403.n2.nabble.com/Re-xbiblio-devel-Digest-Vol-118-Issue-1-tp7579516p7579517.html>
xbiblio-devel.2463403.n2.nabble.com
Re: xbiblio-devel Digest, Vol 118, Issue 1. Hi Rintze, Thank you for your good 
summary of my proposal, and I am sorry for not using the mailing list properly. 
This is my first time working on a...


Sent from the xbiblio-devel mailing list archive at Nabble.com.



------------------------------

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

------------------------------

Subject: Digest Footer

_______________________________________________
xbiblio-devel mailing list
xbiblio-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xbiblio-devel
xbiblio-devel Info Page - 
SourceForge<https://lists.sourceforge.net/lists/listinfo/xbiblio-devel>
lists.sourceforge.net
This list is for development discussion around the xbiblio project, including 
schema design for the citation style language (CSL) and implementation 
discussion.




------------------------------

End of xbiblio-devel Digest, Vol 119, Issue 1
*********************************************
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
xbiblio-devel mailing list
xbiblio-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xbiblio-devel

Reply via email to