Non-Reformist Reform for Haskell Modularity, © October 2019 ABSTRACT

Total Page:16

File Type:pdf, Size:1020Kb

Non-Reformist Reform for Haskell Modularity, © October 2019 ABSTRACT NON-REFORMIST REFORMFOR HASKELL MODULARITY by SCOTT KILPATRICK A dissertation submitted towards the degree Doctor of Engineering (Dr.-Ing.) of the Faculty of Mathematics and Computer Science of Saarland University. Saarbrücken October 2019 date of the colloquium: 15 October 2019 examiners: Prof. Dr. Derek Dreyer (Supervisor) Dr. Andreas Rossberg chair of the examination board: Prof. Dr. Gert Smolka academic assistant: Dr. Andrew Hirsch dean: Prof. Dr. Sebastian Hack Scott Kilpatrick: Non-Reformist Reform for Haskell Modularity, © October 2019 ABSTRACT Module systems like that of Haskell permit only a weak form of modularity in which module implementations depend directly on other implementations and must be processed in depen- dency order. Module systems like that of ML, on the other hand, permit a stronger form of modularity in which explicit interfaces express assumptions about dependencies and each module can be typechecked and reasoned about independently. In this thesis, I present Backpack, a new language for building separately-typecheckable packages on top of a weak module system like Haskell’s. The design of Backpack is the first to bring the rich world of type systems to the practical world of packages via mixin modules. It’s inspired by the MixML module calculus of Rossberg and Dreyer but by choosing practicality over expressivity Backpack both simplifies that semantics and supports a flexible notion of applicative instantiation. Moreover, this design is motivated less by foundational concerns and more by the practical concern of integration into Haskell. The result is a new approach to writing modular software at the scale of packages. The semantics of Backpack is defined via elaboration into sets of Haskell modules and binary interface files, thus showing how Backpack maintains interoperability with Haskell while retrofitting it with interfaces. In my formalization of Backpack I present a novel type system for Haskell modules and I prove a key soundness theorem to validate Backpack’s semantics. ZUSAMMENFASSUNG Modulsysteme wie die in Haskell erlauben nur eine weiche Art der Modularität, in dem Modulimplementierungen direkt von anderen Implementierungen abhängen und in dieser Abhängigkeitsreihenfolge verarbeitet werden müssen. Modulsysteme wie die in ML anderer- seits erlauben eine kräftige Art der Modularität, in dem explizite Schnittstellen Vermutungen über Abhängigkeiten ausdrücken und jeder Modultyp überprüft und unabhängig ergründet werden kann. In dieser Dissertation präsentiere ich Backpack, eine neue Sprache zur Entwicklung separat- typenüberprüfbarer Pakete über einem weichen Modulsystem wie Haskells. Das Design von Backpack überführt erstmalig die reichhaltige Welt der Typsysteme in die praktische Welt der Pakete durch Mixin-Module. Es wird von der MixML-Kalkulation von Rossberg und Dreyer angeregt. Backpack vereinfacht allerdings diese Semantik durch die Auswahl von Anwendbarkeit statt Expressivität und fördert eine flexible Art von geeigneter Applicative- Instantiierung. Zudem wird dieses Design weniger von grundlegenden Anliegen als von dem praktischen Anliegen der Eingliederung in Haskell begründet. Die Semantik von Backpack wird durch die Ausarbeitung in Mengen von Haskell-Modulen und „binary interface files“ definiert, und zeigt so, wie Backpack Interoperabilität mit Has- kell erhält, während Backpack es mit Schnittstellen nachrüstet. In meiner Formalisierung Backpacks präsentiere ich ein neuartiges Typsystem für Haskellmodule und überprüfe einen entscheidenen Korrektheitssatz, um die Semantik von Backpack zu validieren. iii The philosophers have only interpreted the [modularity] in various ways; the point, however, is to change it. — Karl Marx, in the spirit of this work ACKNOWLEDGMENTS What’s a dissertation, anyway? A professional certification? An assemblage of published and unpublished scientific ideas? An extraordinarily labor-intensive memento of frustration, ela- tion, collaboration, and pride? On the occasion of finishing this dissertation, perhaps a few years too late, the richness of my doctoral experience is palpable. With these acknowledgments I hope not only to recognize all those who contributed to it, but also to express that richness for posterity—for friends, family, and prospective PhD students alike. Altogether I’m enormously grateful for the wealth of experience I gained in the Max Planck Society (MPG). Most immediately, that experience comes from my advisor, mentors, collabo- rators, and friends as a PhD student at the Max Planck Institute for Software Systems (MPI- SWS) in Saarbrücken, Germany. Every junior scientist would benefit, as I did, from the expe- rience of living and working abroad in such a respected institution as the MPG. Moreover, I learned a great deal—and hopefully helped change some things for the better—by partic- ipating in the democratic representation of the interests of junior scientists in the scientific workplace, first at MPI-SWS and then as part of the Max Planck PhDnet. We shouldn’t forget that the boundaries of science extend past technical and mathematical matters; it’s also a self- organized profession, with all the material and social concerns that come with the territory of the workplace. As for the people who played notable roles in my scientific development, allow me to enumerate them chronologically. First and foremost, my parents—Nancy and Charlie—always loved and supported me, and encouraged me to pursue math and engineering, even though they had no idea what that meant past 10th grade or so. As an undergraduate at the University of Texas at Austin (UT), my teacher and then mentor Greg Lavender introduced me to functional programming, to the lambda calculus, and to independent study. For introducing me to programming languages research, I’d like to acknowledge Eric Allen, my mentor and supervisor at UT and at Oracle Labs (then Sun Labs). After a rejection from all six PhD programs I had initially applied to, Eric’s tutelage and support helped me turn things around throughout my masters. My colleagues at the Oracle Labs Programming Lan- guages Research Group provided an encouraging and responsive atmosphere where I got my feet wet with research: Eric, Steve Heller, Guy Steele, Sukyoung Ryu, Victor Luchangco, David Chase, and, in particular, my friend and fellow intern (and now mathematician) Justin Hilburn. For introducing me to MPI-SWS, I have my Dumbledore from UT to thank—Lorenzo Alvisi, who told me about the institute and the whole MPG. Working as his TA for grad- uate distributed computing, as a mere masters student, was one of the most challenging and intimidating experiences of my career. His belief in me to take on that challenge, like Greg Lavender’s, had an immense impact on the beginning of my career. As an immigrant scientist himself, Lorenzo also encouraged me to pursue a PhD overseas. (Good advice!) As a periodic visitor to MPI-SWS he continued his Dumbledore role in my life for years. The most critical figure to acknowledge is my PhD advisor at MPI-SWS and friend, Derek Dreyer. His attention to detail, pursuit of simplification, and affable demeanor have certainly left a lasting impression on me. Although my academic career will likely not continue, I have benefited tremendously from the writing and presentation skills I learned from Derek and from his partner Rose Hoberman, the “soft skills” (more generally useful skills!) instructor v at MPI-SWS. Derek also supported me anytime I ruffled feathers in my role as student repre- sentative to the faculty, even when he disagreed; I hope he recognizes the emotional weight of that. He also introduced me to many great films and very often, along with Rose, gave me a good meal. Among the many PhD students, postdocs, and other colleagues at MPI-SWS I enjoyed knowing and working with, I’d like to acknowledge a few in particular, people who left some mark on my scientific career. Beta Ziliani was my “older brother” in Derek’s group, a wonderful friend, a fun colleague to brainstorm with, a Coq expert, and a peerless Grillmeister. Georg Neis, another student of Derek’s, helped with a few proofs but also taught me some Saarlandish culture. Derek’s postdoc Neel Krishnaswami was a constant source of PL wisdom and stimulating conversation. External scientific member—and my academic grandparent— Bob Harper was always a joy to talk to and learn from while visting the institute. From MPI- SWS I’d also like to acknowledge conversations with and other valuable input from Ezgi Çiçek, Allen Clement, Natacha Crooks, Nancy Estrada, Pedro Fonseca, Deepak Garg, Roly Perera, and Aaron Turon. Plenty of others, many friends among them, helped to make the institute a stimulating place to work and study for years. Staff members Mary-Lou Albrecht, Brigitta Hansen, Chris Klein, Claudia Richter, and Carina Schmitt all provided key support during my time there as well. Outside the institute, my friend and would-be PhD sibling Michael Greenberg gave me encouragement, technical feedback, and a personal goalpost for years. The early days of the Backpack project involved multiple visits to Microsoft Research Cam- bridge to work with my collaborators Simon Peyton Jones and Simon Marlow. From Simon PJ I learned a valuable life skill: the confidence to say “I have no idea what’s going on,” a rare skill that has been crucial to my career inside and outside academia. I’m very lucky to have written a paper with him. Also at MSR Cambridge, whiteboard discussions and other chit-chats with fellow module systems expert Claudio Russo were a memorable part of my visits, as was his gift of a pilfered copy of The Commentary on Standard ML. Later on, Edward Yang made perhaps the most significant contribution to the Backpack research project: taking it and running with it in a big way! His enthusiasm and continued shepherding of Backpack helped keep me interested in the work. One additional person deserves acknowledgment for technical contributions to my re- search: Andreas Rossberg. Although his postdoc work with Derek predated my time at MPI-SWS, he spent years as a remote mentor of sorts, someone to whom I could always send hyper-specific module systems ideas and expect a detailed and thoughtful response.
Recommended publications
  • Jupyter Notebooks—A Publishing Format for Reproducible Computational Workflows
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Elpub digital library Jupyter Notebooks—a publishing format for reproducible computational workflows Thomas KLUYVERa,1, Benjamin RAGAN-KELLEYb,1, Fernando PÉREZc, Brian GRANGERd, Matthias BUSSONNIERc, Jonathan FREDERICd, Kyle KELLEYe, Jessica HAMRICKc, Jason GROUTf, Sylvain CORLAYf, Paul IVANOVg, Damián h i d j AVILA , Safia ABDALLA , Carol WILLING and Jupyter Development Team a University of Southampton, UK b Simula Research Lab, Norway c University of California, Berkeley, USA d California Polytechnic State University, San Luis Obispo, USA e Rackspace f Bloomberg LP g Disqus h Continuum Analytics i Project Jupyter j Worldwide Abstract. It is increasingly necessary for researchers in all fields to write computer code, and in order to reproduce research results, it is important that this code is published. We present Jupyter notebooks, a document format for publishing code, results and explanations in a form that is both readable and executable. We discuss various tools and use cases for notebook documents. Keywords. Notebook, reproducibility, research code 1. Introduction Researchers today across all academic disciplines often need to write computer code in order to collect and process data, carry out statistical tests, run simulations or draw figures. The widely applicable libraries and tools for this are often developed as open source projects (such as NumPy, Julia, or FEniCS), but the specific code researchers write for a particular piece of work is often left unpublished, hindering reproducibility. Some authors may describe computational methods in prose, as part of a general description of research methods.
    [Show full text]
  • Csl Citation Schema Mendeley
    Csl Citation Schema Mendeley When Padraig copulating his proletariats refunds not archly enough, is Dunstan heteropolar? Is Chan intolerable or well-derived after jingling Uriah tranced so aliunde? Invocatory Reynard puckers angelically or latinizes dualistically when Ashby is amphoteric. Oxford university departments. Should be included an abstraction layer that source title but can be centered at specific agrotourism development of community can have a content negotiation is. For citing apa? Be that as car may, both protocols require further improvement. I would make nice if PB inherently provided fully formed citation metadata as bank is. Click on schema validation of csl citation schema mendeley users would benefit role on. If you have their contributions, csl version of requests from the screen, csl citation principles that a population. I think Mendeley these need very widely used systems and testimony they. Using schema would also be atherosclerosis study proposes that contribute directly within an opportunity to csl citation schema mendeley uses a diversified heritage destination which exists in management software. Progress in trait of several Specific Aims will surely lay a porch for a productive and exciting research career job I am adamant to pursue. Neither of them above meta data a correct for which book. We stoped for a little if you must however not supported formats for duplicates, mendeley citation schema. To schema in csl citation schema for writing a scholarly and. Mendeley cite your choice of any citation format html, we compiled a complex set, like elsevier journal that use bibcite is already been organized chronologically, dose increase business.
    [Show full text]
  • Citeproc Js Manual
    Citeproc Js Manual citeproc-hs is a library for rendering bibliographic reference citations into a variety of styles More information can be read in the (citeproc-js) documentation:. Contribute to citeproc-ruby development by creating an account on GitHub. rendering engine only, for more documentation on the whole cite processor, Frank G. Bennett, Jr., and Bruce D'Arcus of CSL and citeproc-js fame for their support! Developer Documentation In this section we'll also discuss the citeproc-js CSL processor that Zotero uses to process the CSL styles, and citeproc-node. RefME provides a JavaScript widget that you can include on your pages to provide We use the industry standard citeproc.js format (see documentation here). citeproc-node-iojs. A working citeproc-js wrapper for node and iojs. To download the styles and languages required for this module to work, run the following:. Enable rmarkdown / pandoc-citeproc citations in Jekyll blog via servr @Manual(Yihui-2015, title = (knitr: A General-Purpose Package for Dynamic Report. Citeproc Js Manual Read/Download We migrated our in-depth documentation (including the CSL primer and In addition to Frank Bennett's citeproc-js, used by Zotero, Mendeley, and Qiqqa, there. Frank Bennett's citeproc-js (JavaScript), Ron Jerome's citeproc-php (PHP) and My main contributions have been writing most of the project documentation. The library includes citeproc-js, a CSL processor written in JavaScript. citeproc-js has been created by Frank G. Bennett and is licensed under the Common. Zotero and Juris-M rely on the citeproc-js implementation of CSL maintained by The MLZ implementation of Chicago Manual of Style full note referencing.
    [Show full text]
  • 1 Billion Citation Dataset and Deep Learning Citation Extraction
    1 Billion Citation Dataset and Deep Learning Citation Extraction Mark Grennan A dissertation submitted to the University of Dublin, Trinity College in partial fulfilment of the requirements for the degree of Master of Science in Computer Science (Future Networked Systems) Supervisor: Joeran Beel August, 2019 Declaration I, the undersigned, declare that this work has not previously been sub- mitted as an exercise for a degree at this, or any other University, and that unless otherwise stated, is my own work. Mark Grennan August 8, 2019 Permission to Lend/Copy I, the undersigned, agree that Trinity College Library may lend or copy this dissertation upon request. Mark Grennan August 8, 2019 Acknowledgements I would like to thank my supervisor Joeran Beel for his attention to de- tail, consideration and thoughtful advice throughout this project. I would also like to thank Martin Schibel for his prior work and for giving generously with his time in the early stages of the project. Finally, for their selfless patience and encouragement I would like to thank Una and my family. Mark Grennan August, 2019 1 Billion Citation Dataset and Deep Learning Citation Extraction Mark Grennan, Master of Science in Computer Science University of Dublin, Trinity College, 2019 Supervisor: Joeran Beel Abstract Citation or reference parsing involves extracting machine readable metadata from a citation string. This paper details the work carried out in creating a large, diverse and labelled citation dataset which can be used to train ML ci- tation parsing tools. The dataset was created by adapting the citation styles within CSL, collecting citation metadata from CrossRef and using the open- source citation processor, citeproc-js.
    [Show full text]
  • Pandoc User's Guide
    Pandoc User’s Guide John MacFarlane November 25, 2018 Contents Synopsis 4 Description 4 Using pandoc .......................................... 5 Specifying formats ........................................ 5 Character encoding ....................................... 6 Creating a PDF .......................................... 6 Reading from the Web ...................................... 7 Options 7 General options ......................................... 7 Reader options .......................................... 10 General writer options ...................................... 12 Options affecting specific writers ................................ 15 Citation rendering ........................................ 19 Math rendering in HTML .................................... 19 Options for wrapper scripts ................................... 20 Templates 21 Variables set by pandoc ..................................... 21 Language variables ....................................... 22 Variables for slides ........................................ 23 Variables for LaTeX ....................................... 23 Variables for ConTeXt ...................................... 24 1 Pandoc User’s Guide Contents Variables for man pages ..................................... 25 Variables for ms ......................................... 25 Using variables in templates ................................... 25 Extensions 27 Typography ........................................... 27 Headers and sections ...................................... 27 Math Input ...........................................
    [Show full text]
  • Citation Style Language Documentation Release 1.0.1-Dev
    Citation Style Language Documentation Release 1.0.1-dev Rintze M. Zelle Jul 16, 2020 Contents 1 Primer — An Introduction to CSL1 2 Guide to Translating CSL Locale Files 17 3 CSL 1.0.1 Specification 25 i ii CHAPTER 1 Primer — An Introduction to CSL by Rintze M. Zelle, PhD This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Table of Contents • Primer — An Introduction to CSL – Preface – What is CSL? – Citation Formats * In-text Styles · “author-date” & “author” Styles · “numeric” Styles · “numeric” Compound Styles · “label” Styles * Note Styles – The CSL Ecosystem * Independent and Dependent Styles * Locale Files * Item Metadata 1 Citation Style Language Documentation, Release 1.0.1-dev * Citing Details * CSL Processors – Understanding CSL Styles * XML Basics * Anatomy of a Dependent Style * Anatomy of an Independent Style · Style Structure · cs:style Root Element · cs:info Element · cs:citation and cs:macro Elements · cs:bibliography Element · cs:locale Element – Diving Deeper – Feedback 1.1 Preface This primer is an introduction to the Citation Style Language (CSL), an open XML-based language to describe the formatting of citations and bibliographies. For a more technical and in-depth description of CSL, see the CSL Speci- fication. 1.2 What is CSL? If you ever wrote a research paper, you probably included references to other works. Referencing is important in scholarly communication, as it provides attribution, and links together published research. However, manually for- matting references can become very time-consuming, especially when you’re dealing with multiple journals that each have their own citation style.
    [Show full text]
  • Bibliographic Related Software and Standards Information
    Bibliographic Related Software and Standards Information Last Modified A printer friendly PDF version of this page is available 2006-January-9 biblio-sw.pdf (120 Kb) Table of Contents Open Standards Open Standards Information Citproc Bibliophile MODS Z39.50 and SRW Other Links to Bibliographic Software Information Overview of Personal Bibliographic Software Java B3 JabRef Perl, Python Pbib RISImport.py MS Windows Scholars Aid Nota Bene EndNote ProCite Reference Manager Biblioscape Citit! Bibliographix Windows, Linux, Other Bibutils Bibus LaTeX / BibTeX Linux Bookcase BibTeXML BibML BibX ISDN Search YAZ Zoom RefDB Sixpack bp 1 gBib Pybliographer Kaspaliste The Jurabib package refbase MAC OS X BibDesk Open Standards Information Check this web site on Open Standards and software for bibliographies and cataloging. This site provides a quick overview of the landscape of open-source bibliographic software; both where is has been, but more importantly, where it may yet go, and may be better than this page. http://wwwsearch.sourceforge.net/bib/openbib.html A good source on open standards in regards to XML, is the OASIS site http://xml.coverpages.org, and of course www.w3.org - home of the internet. CitProc The Openoffice Bibliographic project is proposing to use Bibliographic citation and table generation via XSLT style-sheets using a new process called CiteProc. CiteProc style-sheets provide, for the first time, the opportunity for the creation and distribution of opensource bibliographic style definitions that are not specific to a particular word-processor or bibliographic package. Also see BiblioX for technical discusion of this approach. We now have working examples. Bibliophile Bibliophile is an initiative to align the development of bibliographic databases for the web.
    [Show full text]
  • Opening Reproducible Research: Research Project Website and Blog Blog Post Authors
    Opening Reproducible Research: research project website and blog Blog post authors: Daniel Nüst Jan Koppe Laura Goulier Lukas Lohoff Marc Schutzeichel Markus Konkol Matthias Hinz Rémi Rampin Tom Niers Vicky Steeves Yousef Qamaz Opening Reproducible Research | doi:10.5281/zenodo.1485438 Blog posts o2r student assistant about impressions of reproducibility ready to start a career in research 15 Jun 2020 | By Laura Goulier “Geoscientist with experience in or willingness to learn R programming for reproducible research wanted!” I had just completed a beginner course in R programming for my master’s thesis and saw my chance to further develop this knowledge and enter the field of geoinformatics, even get a little away from the pure ecology of my master studies in landscape ecology. I had never before heard of the words “reproducible research”, neither heard of any reason why this topic is of importance. So I took the job and worked my way in. After a couple of months I had to realise that in order to publish my master’s thesis, it was the journals obligation to make all code and data openly available to enable other researchers so they could fully understand and reuse my analysis. And there I was, as a landscape ecologist who believed I had nothing to do with reproducible research. Apparently it is important after all, yet not that simple. During my work in the o2r project I experienced first hand the whole range of reasons why people struggle so much making their work reproducible for others. The main argument, also for me, was this giant amount of additional work.
    [Show full text]
  • GIANT: the 1-Billion Annotated Synthetic Bibliographic-Reference-String Dataset for Deep Citation Parsing
    GIANT: The 1-Billion Annotated Synthetic Bibliographic-Reference-String Dataset for Deep Citation Parsing Mark Grennan1[0000−0001−9271−7444], Martin Schibel1[0000−0003−1390−2874], Andrew Collins1[0000−0002−0649−7391], and Joeran Beel1[0000−0002−4537−5573]? Trinity College Dublin, School of Computer Science, ADAPT Centre, Ireland grennama,ancollin,beelj @tcd.ie Abstract. Extracting and parsing reference strings from research ar- ticles is a challenging task. State-of-the-art tools like GROBID apply rather simple machine learning models such as conditional random fields (CRF). Recent research has shown a high potential of deep-learning for reference string parsing. The challenge with deep learning is, however, that the training step requires enormous amounts of labelled data { which does not exist for reference string parsing. Creating such a large dataset manually, through human labor, seems hardly feasible. Therefore, we created GIANT. GIANT is a large dataset with 991,411,100 XML la- beled reference strings. The strings were automatically created based on 677,000 entries from CrossRef, 1,500 citation styles in the citation-style language, and the citation processor citeproc-js. GIANT can be used to train machine learning models, particularly deep learning models, for ci- tation parsing. While we have not yet tested GIANT for training such models, we hypothesise that the dataset will be able to significantly im- prove the accuracy of citation parsing. The dataset and code to create it, are freely available at https://github.com/BeelGroup/. Keywords: Dataset · Deep Citation Parsing · Reference String Parsing · Document Engineering · Information Extraction 1 Introduction Accurate citation parsing is important as citations are often used as a proxy for the strength of an academics career.
    [Show full text]
  • Citation Style Language Documentation Release 1.0.1-Dev Rintze M. Zelle
    Citation Style Language Documentation Release 1.0.1-dev Rintze M. Zelle Jul 13, 2020 Contents 1 Primer — An Introduction to CSL1 2 Guide to Translating CSL Locale Files 17 3 CSL 1.0.1 Specification 25 4 CSL 1.0.1 Release Notes 69 i ii CHAPTER 1 Primer — An Introduction to CSL by Rintze M. Zelle, PhD Table of Contents • Primer — An Introduction to CSL – Preface – What is CSL? – Citation Formats * In-text Styles · “author-date” & “author” Styles · “numeric” Styles · “numeric” Compound Styles · “label” Styles * Note Styles – The CSL Ecosystem * Independent and Dependent Styles * Locale Files * Item Metadata * Citing Details * CSL Processors – Understanding CSL Styles 1 Citation Style Language Documentation, Release 1.0.1-dev * XML Basics * Anatomy of a Dependent Style * Anatomy of an Independent Style · Style Structure · cs:style Root Element · cs:info Element · cs:citation and cs:macro Elements · cs:bibliography Element · cs:locale Element – Diving Deeper – Feedback 1.1 Preface This primer is an introduction to the Citation Style Language (CSL), an open XML-based language to describe the formatting of citations and bibliographies. For a more technical and in-depth description of CSL, see the CSL Speci- fication. 1.2 What is CSL? If you ever wrote a research paper, you probably included references to other works. Referencing is important in scholarly communication, as it provides attribution, and links together published research. However, manually for- matting references can become very time-consuming, especially when you’re dealing with multiple journals that each have their own citation style. Luckily, reference management software can help out.
    [Show full text]
  • Agilely Creating Multiple Document Formats for Academic Manuscripts with Pandoc Scholar
    Formatting Open Science: agilely creating multiple document formats for academic manuscripts with Pandoc Scholar Albert Krewinkel1 and Robert Winkler2 1 Pandoc Development Team, Berlin, Germany 2 Department of Biotechnology and Biochemistry, CINVESTAV Unidad Irapuato, Mexico ABSTRACT The timely publication of scientific results is essential for dynamic advances in science. The ubiquitous availability of computers which are connected to a global network made the rapid and low-cost distribution of information through electronic channels possible. New concepts, such as Open Access publishing and preprint servers are currently changing the traditional print media business towards a community-driven peer production. However, the cost of scientific literature generation, which is either charged to readers, authors or sponsors, is still high. The main active participants in the authoring and evaluation of scientific manuscripts are volunteers, and the cost for online publishing infrastructure is close to negligible. A major time and cost factor is the formatting of manuscripts in the production stage. In this article we demonstrate the feasibility of writing scientific manuscripts in plain markdown (MD) text files, which can be easily converted into common publication formats, such as PDF, HTML or EPUB, using Pandoc. The simple syntax of Markdown assures the long-term readability of raw files and the development of software and workflows. We show the implementation of typical elements of scientific manuscripts—formulas, tables, code blocks and citations—and present tools for editing, collaborative writing and version control. We give an example on how to prepare a manuscript with distinct output formats, a DOCX file for submission to a journal, and a LATEX/PDF version for deposition as a PeerJ preprint.
    [Show full text]
  • Formatting Open Science: Agilely Creating Multiple Document Formats for Academic Manuscripts with Pandoc Scholar
    A peer-reviewed version of this preprint was published in PeerJ on 8 May 2017. View the peer-reviewed version (peerj.com/articles/cs-112), which is the preferred citable publication unless you specifically need to cite this preprint. Krewinkel A, Winkler R. 2017. Formatting Open Science: agilely creating multiple document formats for academic manuscripts with Pandoc Scholar. PeerJ Computer Science 3:e112 https://doi.org/10.7717/peerj-cs.112 1 Formatting Open Science: agilely creating 2 multiple document formats for academic 3 manuscripts with Pandoc Scholar 4 Albert Krewinkel1 and Robert Winkler2,✉ 5 1Pandoc Development Team 6 2CINVESTAV Unidad Irapuato, Department of Biochemistry and Biotechnology 7 Corresponding author: 8 Prof. Dr. Robert Winkler✉ 9 Email address: [email protected] 10 ABSTRACT The timely publication of scientific results is essential for dynamic advances in science. The ubiquitous availability of computers which are connected to a global network made the rapid and low-cost distribution of information through electronic channels possible. New concepts, such as Open Access publishing and preprint servers are currently changing the traditional print media business towards a community-driven peer production. However, the cost of scientific literature generation, which is either charged to readers, authors or sponsors, is still high. The main active participants in the authoring and evaluation of scientific manuscripts are volunteers, and the cost for online publishing infrastructure is close to negligible. A major time and cost factor is the formatting of manuscripts in the production stage. In this article we demonstrate the feasibility of writing scientific manuscripts in plain markdown (MD) text files, which can be easily converted into common publication formats, such as PDF, HTML or EPUB, using pandoc.
    [Show full text]