{"title":"Migrating DocBook to Uncharted Waters","authors":"A. Nordström, Jean Kaplansky","doi":"10.4242/balisagevol27.nordstrom01","DOIUrl":"https://doi.org/10.4242/balisagevol27.nordstrom01","url":null,"abstract":"Kaplan North America (KNA) is migrating all XML source content across business lines to a new technology stack. The stack uses Alfresco Community Edition and Componize for Component Content Managent System (CCMS) capabilities, and Oxygen XML Web Author for editing and authoring new content. Approximately 50 GB of content scheduled for migration exists in DocBook 4.0 and MathML 3.1. All XML content is stored in Arbortext Content Manager (ACM), a content management system built by PTC, and based on the Windchill Product Lifecycle Management (PLM) software. This article aims to document the XSLT and XProc pipeline solution built to migrate KNA's content and, further, to create HTML with metadata for ingestion into KNA's Learning Management System (LMS) as a product. No project is perfect, however. As a result, we experienced a few hard-learned lessons as consultants while we worked our way through the project. We were excited to work on a DocBook project with XML tools — work we greatly enjoy — which led to a over-confidence that rendered us slightly stuck in the project's human variables. We learned (and continue to learn) valuable lessons about consulting and acting as trusted advisors throughout the project.","PeriodicalId":89326,"journal":{"name":"Balisage series on markup technologies","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"70946585","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Markup and migratory workflows in the context of AI and big data analytics","authors":"E. Beshero-Bondar","doi":"10.4242/balisagevol28.beshero-bondar01","DOIUrl":"https://doi.org/10.4242/balisagevol28.beshero-bondar01","url":null,"abstract":"Can large language models, working with tokenized text, effectively compare strings and accurately model the comparison in structured forms like alignment tables and the TEI critical apparatus? The answer is no, or not very well, but that answer helps to illuminate a remarkable strength and versatility of declarative markup, when deliberately introduced to imperative programs. We can see how declarative methods control the imperative machinery of a complex collation process in the Frankenstein Variorum project. The key question or provocation is whether “artificial intelligence” in our time can be improved by returning to its declarative origins, to make room for the authority of domain experts to control an otherwise unwieldy stochastic process that poses as a voice of reason.","PeriodicalId":89326,"journal":{"name":"Balisage series on markup technologies","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"70947219","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Hypergraphs: Escaping the Surly Bonds of Syntax","authors":"P. Durusau","doi":"10.4242/balisagevol28.durusau01","DOIUrl":"https://doi.org/10.4242/balisagevol28.durusau01","url":null,"abstract":"Claus Huitfeldt responded to one of the many variants of “What is a Text Really:” Finally, and most importantly, I am struck by the lack of imagination in this approach: why on earth should texts by all means be hierarchies? No doubt, there are many hierarchical structures, and no doubt this is important, but there are countless other relations between text elements which are worth while finding and investigating- overlap, substitution, discontinuity, parallel texts, cross-references, etc. “Multi-Dimensional Texts in a One-Dimensional Medium.” Huitfeldt, Claus. 1992. Huitfeldt and Sperberg-McQueen have labored for decades on the imaginative representation of texts in markup. As have many others. Humanities scholars are confronted with a bewildering array of markup languages and techniques, should they not decide to invent their own for representing complex texts. A number of those syntaxes are illustrated here, to lay the groundwork for this heretical suggestion: Humanists should use any consistent method they choose for complex markup. The burden of preparing texts for interchange, should rest on technologists who have input those texts in a hypergraph database. Let scholars be about what scholars do and technologists at aiding them in those tasks, not training them for new ones.","PeriodicalId":89326,"journal":{"name":"Balisage series on markup technologies","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"70947259","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Markup Category Terminology over the Years: a First Look","authors":"Allen H. Renear, S. DeRose","doi":"10.4242/balisagevol27.renear01","DOIUrl":"https://doi.org/10.4242/balisagevol27.renear01","url":null,"abstract":"We’ve been doing the “markup” thing for more than half a century, since the beginnings of computerized text processing. In that time we’ve put a lot of adjectives in front of “markup” that reflect how we think of and apply the markup. These qualifiers have tended to fall into two categories, those that suggest what will happen, particularly in presentation, as a result of the application of markup to a string of data and those that reflect what we think about the data itself. Beginning with broad terms, like “generic” we have made many attempts to elucidate what our our markup is intended to accomplish: “conceptual”, “declarative”, “logical”, “structural”, and “semantic” have all had their times in the spotlight. What do the changing fashions in terminology say about our data and about what we, the practitioners, think about our work?","PeriodicalId":89326,"journal":{"name":"Balisage series on markup technologies","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"70946280","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Schema-Aware Conversion of XML to JSON","authors":"M. Kay","doi":"10.4242/balisagevol28.kay01","DOIUrl":"https://doi.org/10.4242/balisagevol28.kay01","url":null,"abstract":"A W3C Community Group has been formed to develop proposed specifications for 4.0 versions of XSLT, XPath, and XQuery. One of the aims is to provide improved capabilities for processing of JSON, and the associated constructs in the data model such as maps and arrays. One of the development threads is conversion between XML, JSON, and other data formats such as HTML and CSV. This paper looks at one particular aspect of the proposals, a new function for XML-to-JSON conversion.","PeriodicalId":89326,"journal":{"name":"Balisage series on markup technologies","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"70947511","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Electronic Verse Engineer","authors":"W. Piez","doi":"10.4242/balisagevol27.piez01","DOIUrl":"https://doi.org/10.4242/balisagevol27.piez01","url":null,"abstract":"Suppose you want to publish an anthology, with TEI or BITS, for example. Part of the workflow is going to be capturing verse. Electronic Verse Engineer is a Markdown-like interface for capturing verse (as opposed to unstructured paragraphs), with some annotation capability. It can capture prose, if that’s what you have. You type and it makes XML for you. It is meant to be a building block in an Anthology Builder application, to publish your anthology. (I hear that Anthology Building is going to be the next craze—when it happens, you heard it from me.)","PeriodicalId":89326,"journal":{"name":"Balisage series on markup technologies","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"70946609","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Building applications with generative AI","authors":"M. Dubinko","doi":"10.4242/balisagevol28.dubinko01","DOIUrl":"https://doi.org/10.4242/balisagevol28.dubinko01","url":null,"abstract":"Application builders are oft sought and seldom realized. An ideal application builder allows domain experts to make configuration choices, push a button, and generate a useful application. It’s a delicate balance. If the builder is too specific, it isn’t reusable. If it’s too generic, it requires intense customization which defeats the purpose. Can generative AI tools be used to analyze sample data and make application builders better? Let’s find out! Along the way, there will be surprises. What’s possible, and what isn’t?","PeriodicalId":89326,"journal":{"name":"Balisage series on markup technologies","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"70947089","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Privately Automating Common, Uncommon, and Surprising Markup Tasks using AI Large Language Models","authors":"Uche Ogbuji","doi":"10.4242/balisagevol28.ogbuji01","DOIUrl":"https://doi.org/10.4242/balisagevol28.ogbuji01","url":null,"abstract":"Generative AI is everywhere, from DALL-E for image generation to ChatGPT for language tasks. The power of these models boggles the mind even for people who’ve been involved in AI for ages. Can they help us? It’s been widely reported that they can be used to write rather sophisticated code in languages like Python and Javascript — but how well do they work with markup? Can they work with XML properly, or can they only treat it as tag soup? Even without any specialized XML training, large language models (LLMs) prove to have some very interesting, and in some cases impressive, capabilities. By using self-hosted LLMs rather than third-party services such as ChatGPT or Bard, we can exploit those capabilities even for private applications. There are certainly some clear limitations, but LLMs can also handle a surprising number of common markup tasks out of the box.","PeriodicalId":89326,"journal":{"name":"Balisage series on markup technologies","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"70947305","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Retractions and Corrections at Scholars Portal Journals","authors":"Jessica Hymers, Qinqin Lin","doi":"10.4242/balisagevol28.hymers01","DOIUrl":"https://doi.org/10.4242/balisagevol28.hymers01","url":null,"abstract":"Scholars Portal Journals, a service of the Ontario Council of University Libraries (OCUL), is an XML based repository that hosts e-journal content for universities in Ontario. As part of the OCUL mission to provide accurate and up-to-date access to scholarly research, Scholars Portal has recently taken on a project to improve how article corrections and retractions are handled in our workflow. This paper introduces the new process of utilizing the JATS metadata element to link between articles and their corrections and retractions so that users are immediately aware that there have been changes to the article they are viewing. This paper will also discuss challenges in this process including the inability to handle articles that have not been registered with a Digital Object Identifier (DOI) and difficulties with inconsistent use of attribute values.","PeriodicalId":89326,"journal":{"name":"Balisage series on markup technologies","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"70947397","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Multiple String Comparison in XSLT with tan:collate()","authors":"Joel Kalvesmaki","doi":"10.4242/balisagevol27.kalvesmaki01","DOIUrl":"https://doi.org/10.4242/balisagevol27.kalvesmaki01","url":null,"abstract":"In this article I introduce tan:collate(), an XSLT function for comparing three or more strings. Collated multiple string comparison is a difficult problem that merits experimentation with alternative methods. tan:collate() approaches the task in three different ways. Two of those methods involve a sequence of pairwise comparisons, with each comparison grafted into a guide tree. The third method applies the staggered-sample approach of tan:diff() to multiple strings, to detect a common superskeleton, before attempting to refine results. This paper situates the problem of multiple string comparison in the context of textual criticism, proposes a general output format and test suite, and presents measured results for the quality and performance of tan:collate() against an example test suite. Released as part of an open-source function library, tan:collate() enables developers to incorporate robust text comparison directly into XSLT applications.","PeriodicalId":89326,"journal":{"name":"Balisage series on markup technologies","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"70945894","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}