Balisage logo
Balisage Conference
Schedule at a Glance
Speaker/Author Bios
International Symposium on Document-oriented XML: A working session on identifying attainable expectations
(August 1, 2011)
Balisage Series on Markup Technologies
proceedings of previous events

Balisage 2011 Program

Tuesday, August 2, 2011

Tuesday 9:15 am - 9:45 am


B. Tommie Usdin, Mulberry Technologies

Conferences are ostensibly structured around presentations, papers, and posters; and these are key to the success of any conference. By common agreement, the informal aspects of conferences — lunch, coffee breaks, and overheard conversations — are of lesser importance. Balisage produces persistent electronic proceedings, but the conference itself is face to face only. It is human interaction and serendipity that provide the most valuable, You are likely to attend both presentations you know yourself to be interested in and talks on topics you know little about. You may expand your areas of interest; you may learn something useful. A talk about a topic totally foreign to you may prompt you to think of a solution to one of your current problems or a new approach to a long-standing problem. With luck, you will also make a few new friends, connect with some old ones, make a helpful suggestion to a fellow participant, and have some fun in Montreal.

Tuesday 9:45 am - 10:30 am

One href is not enough

Eric van der Vlist, Dyomedea

The href link is simple, ubiquitous, unidirectional, and it has made the web what we have today. Therein lies the problem: one link, one way. The XLink specification was supposed to bring hypertext on the web forward into the 1960s with multi-ended links, but ... enough said. We need an XHTML idiom that expresses multiarc links and multiheaded links, plays well with search engines and browsers, can be processed by a simple JavaScript library (with graceful degradation in the absence of that library), requires no server storage, and lets us annotate arcs. I explore simple implementations using microformats, RDFa, and HTML5’s microdata for linking both with and without embedded links. Here, I share the shortcomings, frustrations, and successes. Surprisingly, there is no clear winner among the techniques, but useful conclusions can be drawn from the experiment.

Tuesday 11:00 am - 11:45 am

The effects of bytecode generation in XSLT and XQuery

O’Neil Davion Delpratt & Michael Kay, Saxonica

The heavy demands put on XSLT and XQuery processors today drive developers to seek every possible increase in processing speed. Optimizing expressions in a stylesheet or query before primary processing can help considerably, but further speed improvements can be gained by generating bytecode rather than interpreting queries directly. Although optimization produces the most throughput gain, the gains from optimization and bytecode generation are orthogonal, and compilation can produce about 25% gain over and above gains from optimization. Tests with two variants of a well-known XSLT/XQuery processor, one with code generation and one with optimization alone, demonstrate the effect on a range of queries.

Tuesday 11:45 am - 12:30 pm

XDML — an extensible markup language and processor for XDM

Hans-Jürgen Rennau, bits - Büro für Informations-Technologie und Software GmbH, & David Lee, Epocrates

XDM is the data model of the major XML processing languages: XPath, XQuery, and XSLT. Every XDM instance is a sequence of items. The size and complexity of those items are virtually unlimited, but the XDM sequence has no internal structure and no metadata. In consequence XDM resembles a Java array of type Object[] and is correspondingly awkward to handle. XDML (XDM Markup Language) introduces control information into XDM values to structure them into named parts and associate those parts with metadata (analogous to markup in character sequences). The control information can be evaluated by an XDML processor, which reports and processes the data appropriately. Net result: XDM instances describe themselves, they encode how they are presented to applications and how they should or might be processed. This means that XDM producers (e.g. XQuery programs) can emit “rich” data for downstream processing.

Tuesday 2:00 pm - 2:45 pm

Tag libraries for XSLT and XQuery

Erik Hennum, MarkLogic, & Vyacheslav Zholudev, Jacobs University Bremen

XML has mature tools for validation, transformation, and query, but current tools require a level of programming skills that many users who need dynamic documents do not have. Using the organizational pattern of tag libraries (borrowed from Java tag libraries), we propose to divide responsibilities for dynamic documents between two classes of people. Tag-library developers implement query, transformation, or component formatting for predefined tags in a library; document authors create dynamic documents by embedding elements from the tag library in HTML, XSL-FO, or other documents; when the document is processed, elements from the tag library are replaced by automatically generated content. A callback mechanism allows the document author to pass document fragments to the tag library for parameterization. Document authors can use tag libraries in ways not foreseen by the tag library developers and can combine tag libraries from different developers. A robust tag-library solution will foster better collaboration between XML developers and creators of XML documents.

Tuesday 2:45 pm - 3:30 pm

DITA document types: Enabling blind interchange through modular vocabularies and controlled extension

Eliot Kimber, Really Strategies

Truly blind interchange doesn’t work well in straight SGML/XML: most document interchange depends on some degree of configuration support for the interchanged documents, such as connection to a schema or other external metadata. DITA, in contrast, provides a relatively simple shared framework on which constraints and customizations can be erected. Given this architectural framework, DITA specializations are capable of a minimal level of blind processing without further configuration unlike customizations of common vocabularies such as Docbook. Intelligent use of the architecture enables documents that are both self-describing and processable in ways that are not available to conventional XML interchange.

Tuesday 4:00 pm - 4:45 pm

(LB) Meditations on the logical form of a metadata record

Allen H. Renear, Richard J. Urban, & Karen M. Wickett, University of Illinois at Urbana-Champaign

What does markup mean? We may have some intuitive sense of the intent when markup uses terminology that looks familiar, but does it really say what we think it does? Looking at a specialized case, metadata, the authors examine the formal logical implications behind seemingly familiar metadata records.

Tuesday 4:45 pm - 5:30 pm

What will it take to get (end user) XML editors that people will use?

Norman Walsh, MarkLogic

Many of us in the markup community have given up on the dream of ubiquitous XML. We still think the world would be better off with more XML and less proprietary data, but we know it isn’t going to happen without a game-changing invention. The world as a whole is simply not going to embrace XML in the way we had hoped without a painless way to create XML documents. We need XML editors that can be learned easily, that create the XML that savvy (and not-so-savvy) users want, that people can afford, and that can tolerate being used very badly. So, what will it take to get XML editors that don’t suck?

Wednesday, August 3, 2011

Wednesday 9:00 am - 9:45 am

Interchange vs. interoperability

Syd Bauman, Brown University Women Writers Project

Our desire to be expressive conflicts with our desire to be conformant. To focus on interoperability is to focus on sharing at the expense of analysis. The closer we get to saying exactly what we want to say, the less exploitable our utterance is.

Wednesday 9:45 am - 10:30 am

Generic microformats for coverage, comprehensiveness, and adaptability

Wendell Piez, Mulberry Technologies

The major descriptive XML formats for publishing applications all have an Achilles’ heel: their means of achieving breadth of coverage and adapting to local requirements. Many projects avoid schema extensibility mechanisms, which fork the local application from the core tag set, complicating implementation, maintenance, and document interchange and thus undermining many of the advantages of using a standard. Yet the easy alternative, creatively reusing and abusing available elements and attributes, is even worse: it introduces signal disguised as noise, degrades the semantics of repurposed elements and hides the interchange problem without solving it. This dilemma follows from the way we conceive of our models for text. If designing an encoding format for one work must compromise its fitness for any other, we will always be our own worst enemies. Reconsidering our approach to descriptive encoding, we can see a solution: supplement our current mechanisms with abstract generic elements designed specifically to support extensibility not in the schema but in the document instance, providing for bottom-up development, as microformats, of new semantic types.

Wednesday 11:00am - 11:45am

Content, format, and interpretation

David Dubin, Karen M. Wickett, & Simone Sacchi, University of Illinois

The connection between notation and the content it expresses is always contingent and mediated through complex layers of interpretation. Some content bears directly on the encoder’s intention to convey a particular meaning, while other content concerns structures in and through which that meaning is expressed and organized. Interpretive frames are abstractions that serve as context for symbolic expressions. They form a backdrop of dependencies for data management and preservation strategies. Situation semantics offers a theoretical grounding for interpretive frames that integrates them into a general theory of communication through markup and other notational structures.

Wednesday 11:45 am - 12:30 pm

(LB) XML out — reducing clutter

Liam Quin, W3C

Why is XML a pain to produce? Those among us who’ve produced documents in XML for years may hardly think about the process, but programmers from application development or systems programming may find it alien, frustrating, and a source of errors. Perhaps a simple API for common programming languages like PHP and JavaScript would relieve their pain.

Wednesday (approximately) 1:15 pm - 2:00 pm

Balisage Bluff — an Entertainment

Games master: Lynne Price, Text Structure Consulting

Come play Balisage Bluff during today's lunch break. Can you tell fact from fiction? Listen to stories that are related to markup, Montreal, or some other aspect of the conference and try to determine which stories are mostly true and which are fabricated.

Wednesday 2:00 pm - 2:45 pm

Challenges and potential of local loading of XML Ebooks

Ravit H. David, Shahin Ezzat Sahebi, Bartek Kawula, & Dileshni Jayasinghe, Scholars Portal, OCUL, University of Toronto

Scholars Portal Ebooks platform, a service of the Ontario Council of University Libraries (OCUL), provides a single bilingual interface to scholarly and public domain digital books from Ontario’s 21 university libraries. Scholars Portal Ebooks has over 350,000 titles, mostly in PDF format. In our pilot project for extending the PDF-only platform to loading XML books, the programming load and amount of cleanup needed were higher than we had anticipated. We found particular problems caused by embedded processing instructions, interdocument linking, and generating tables of contents for recursive structures. Cleaning the XML and applying extensive modifications to the XSLT stylesheets and schemas slows production and creates a longer lag time than we would like between receiving the book and OCUL online availability, but using XML Ebooks lets us take advantage of browser and XML database functionality to provide an enhanced reading experience and utilities such as full-text searching.

Wednesday 2:00 pm - 2:45 pm

Programming application logic for RESTful services using XML technologies

Cornelia Davis, EMC

The existing XRX web application architecture (XForms on the client, RESTful services, and XQuery on the server) allows web developers to avoid procedural code in the implementation of RESTful services. With the standardization of XProc, we have an even more powerful mechanism for constructing RESTful services. We briefly introduce an XML REST Framework for XML-centric resources and then focus on how XQuery, XSLT, and XProc can be used together to develop RESTful services. In effect, we can redefine XRX to mean “XForms, REST, and XProc”. We illustrate the benefits of this new approach to XRX by incrementally building up a RESTful service for a patient medical records registry.

Wednesday 2:45 pm - 3:30 pm

The false security of closed XML systems

Jeff Beck, National Center for Biotechnology Information (NCBI), National Library of Medicine (NLM), National Institutes of Heath (NIH)

A closed XML system is one that creates XML files that are never used by anyone other than the creator. “Garbage In” is OK if you control both ends of the pipe, so the danger is that closed system XML can result in a false sense of XML quality. Communication takes two, so document interchange frequently exposes errors of wellformedness, validity, sensibility, and “just plain wrongness”. While well-formedness and some validity can be assured with ordinary parsing (if a schema has been agreed upon), real interchange requires defining tagging practices and then enforcing these rules with content-application-level tools such as Schematron and/or custom-written checking tools.

Wednesday 2:45 pm - 3:30 pm

JXON: An architecture for schema and annotation driven JSON/XML bidirectional transformations

David Lee, Epocrates

JSON and XML are markup formats for content and data with differing expressivities and implications for maintenance and processing. JSON has become predominant in the mobile and browser domains while XML dominates the server, enterprise and document domains. In JXON, annotated XSD or RelaxNG schemas are used to specify bidirectional transformations between the JSON and XML at the desired fidelity. Such specifications can actively account for such expressivity mismatches as JSON integers versus XML strings of decimal digits whose interpretation may be only implicit, the assignment of tags (i.e, generic identifiers) and named attributes to XML elements, the assignment of names to the attributes of JSON objects, mapping of XML namepsaces to JSON identifiers, as well as structural transformations such as transforming JSON Arrays to and from various XML structures.

Wednesday 4:00 pm - 4:45 pm

(LB) REST for document resource nodes: IPSA RE for the arcs

Walter E. Perry, Fiduciary Automation

The IPSA RE (Identity, Provenance, Structure, Aptitude, Revision, and Events) architecture describes and processes the linkages that relate document resources within a network or graph of nodes. The architecture can be formalized by manipulation of document resource nodes by each of the four fundamental RESTful verbs. The system under development handles identity authentication by realizing identity as a chain of provenance or as a unique structure of context rather than relying on any internal attributes of a node to establish either that node’s identity or the identity of any entity for which that node is a proxy.

Wednesday 4:00 pm - 4:45 pm

(LB) Supplemental materials to a journal article

Alexander Schwarzman, American Geophysical Union

Tagging the primary body of a journal article can be challenging enough for authors: What then should they do with secondary and supplemental materials they wish to include with their articles? This presentation will provide an update on the latest progress from a NISO/NFAIS group to come up with Recommended Practices for curating supplemental materials. What kinds of supplemental materials can and should be marked up, what are the costs and benefits of such a markup, and what are the tagging challenges faced by authors?

Wednesday 4:45 pm - 5:30 pm

Report from the front: EPUB3

Eric Freese, Aptara

At the time of the release of the Balisage 2011 Preliminary Program, Version 3 of the International Digital Publishing Forum’s (IDPF’s) EPUB (open e-book) standard is not yet finalized; this presentation will bring us an intimate, up-to-the-minute perspective. Significant changes since Version 2 include enhanced support for multimedia and media overlays, speech, MathML, scripting and interactivity, metadata and semantic inflection, SVG, navigation, styling and layout, and mechanisms for the inclusion of advertising. The presenter will discuss interchange challenges arising from and/or relieved by the advent of Version 3 and his views on whether the draft meets its stated goals.

Wednesday 4:45 pm - 5:30 pm

(LB) The Model Editions Partnership, fifteen years on

C. M. Sperberg-McQueen, Black Mesa Technologies

The loss of the server on which it had been hosted presented the Model Editions Partnership with the unplanned opportunity to test some of their fundamental assumptions, such as the use of SGML markup to insulate editions from software dependencies, to allow digital editions to survive the obsolescence of particular pieces of software, and move to new software with minimum fuss. The main focus of the talk will be an evaluation of the MEP adaptation of TEI markup from the point of view of data longevity. What parts of the original markup design still work in a new environment, and what parts turn out to have depended on the then-current environment in unhealthy and unhelpful ways? If we had it to do over again, what would we do differently?

Thursday, August 4, 2011

Thursday 9:00 am - 9:45 am

(LB) When XQuery and SparQL Collide

Kurt Cagle, Avalon Consulting

Far from being competing technologies, XQuery and SparQL are potential collaborators in data extraction and manipulation. Since an XML database can also function as a triple store, it’s possible to combine the languages so that each executes what it’s optimized for while avoiding process boundary serialization problems and also generate output like XHTML from queries across a variety of document types.

Thursday 9:00 am - 9:45 am

(LB) Literate serialization of linguistic metamodels

Piotr Bański, IDS Mannheim, University of Warsaw

As part of an effort to bring ISO modeling closer to TEI markup in the sphere of dictionary encoding, the author combines the practice of visual modelling language resources that is by now standard in ISO TC37 SC4 (especially in the ISO Lexical Markup Framework), with a reasonably common, but somewhat model-less practice of encoding dictionaries by means of the tagset offered by Chapter 9 of the TEI Guidelines.

Thursday 9:45 am - 10:30 am

(LB) Carrot: An appetizing hybrid of XQuery and XSLT

Evan Lenz, MarkLogic

XQuery and XSLT look like very different languages, despite their common base in a data model and XPath syntax. Recognizing that some things are easier to do in one language and others in the second, and desiring to cut down on XSLT’s verbosity, the author offers a Carrot to encourage combining functionality.

Thursday 9:45 am - 10:30 am

Visualization of concurrent markup: From trees to graphs, from 2D to 3D

Daniel Jettka & Maik Stührenberg, Bielefeld University

Valid XML documents can exceed the expressive power of simple trees. While some features of concurrent (simple overlap) markup can be captured by minimally extended trees, other phenomena (e.g., discontinuous elements, repetitive structures) need models which instantiate advanced graph structures. XStandoff is a representation format for multiple hierarchies that makes use of the XML ID/IDREF mechanism to represent graph-based structures. We have implemented an SVG-based two-dimensional visualization for XStandoff that separates direct visualization of the primary text from that of the annotations (which correspond to the spanned segments in the primary data). While we can show that this approach provides adequate (not optimal) visualization of overlap, it cannot handle enhanced graph-based phenomena adequately. A possible solution lies in 3D graphic rendering. While we have not implemented such a solution, we propose that adding an additional dimension could make a large contribution to visualizing concurrent markup.

Thursday 11:00 am - 11:45 am

(LB) Including XSLT stylesheet testing in continuous integration process

Benoit Mercier, Université de Sherbrooke

XSLT stylesheets are just like any other programming language code units: they need to be written, debugged, refactored and tested. In these days of “Agility”, refactoring and continuous integration play major roles in development process. This paper proposes a practical approach to include XSLT stylesheets testing in a continuous integration process based on readily available tools for Java.

Thursday 11:00 am - 11:45 am

An XML engine to model and query multimodal concurrent linguistic annotations

Julien Seinturier, Emmanuel Bruno, & Elisabeth Murisasco, Laboratoire LSIS UMR CNRS 6168, Université du Sud Toulon et Var

In the context of the OTIM (Tools for Multimodal Annotation) project, we have specified an XML engine that supports annotations of a large conversational French speech corpus. It provides for the representation and alignment of annotations pertinent to the linguistic domains of morpho-syntax, prosody, phonetics, disfluencies, discourse, gesture, and posture (it is “multimodal”). The engine includes a Java framework for interfacing with annotation tools, and it provides for querying the corpus and its aligned annotations via XQuery.

Thursday 11:45 am - 12:30 pm

(LB) Easy XML serialization of C# and Java Objects

Carlos R. Jaimez-Gonzalez, Universidad Autonoma Metropolitana; Simon M. Lucas, University of Essex; & Erick J. Lopez-Ornelas, Universidad Autonoma Metropolitana

Enthusiasts for XML technology have long claimed advantages for a human-readable notation, in addition to using XML for document interchange. Web Objects in XML (WOX) is an efficient and easy to use XML serializer for C# and Java objects that allows both human inspection of code artifacts and bidirectional translation between two different programming languages. WOX is available as an open-source project.

Thursday 11:45 am - 12:30 pm

TagAl: A tag algebra for document markup

Lars G. Johnsen & Claus Huitfeldt, University of Bergen

It’s intuitively obvious to many that the identifiers in XML end-tags are redundant and that XML could be parsed successfully even if it used empty end-tags. It is almost equally obvious that the same does not apply to notations that allow overlapping elements: there, the identifiers in the end-tags are essential to matching up start- and end-tags. At the same time, most people find it very difficult to give a clear declarative or procedural description of just how to match up start- and end-tags (or opening and closing parentheses). This paper proposes to use lattices to describe document structures and to define the process of matching start- and end-tags in XML and in overlap-friendly languages in terms of operations on lattices. Lattices provide a new and helpful tool for reasoning about the differences between nesting and overlapping structures.

Thursday 2:00 pm - 3:30 pm

Lightning Talks

Balisage Participants (perhaps including you)

A series of 3-minute “Lightning Talks” on one of several provided topics. The topics for the Lightning Talks will be announced on Tuesday morning at the opening session of Balisage. Conference participants are invited/encouraged to speak for 3-minutes or less on one of these topics. Speakers will be selected on a first-come, first-served basis. Time will be carefully monitored; speakers must marshal their thoughts, organize their arguements, and make their points within the time limit. This is not a forum for introductions, hedging, pussyfooting, or politically correct double speak. This is the place and time to put it on the line and say what you think, simply, clearly, and persuasively.

Thursday 4:00 pm - 4:45 pm

Secured management of online XML document services through structure preserving asymmetric encryption

Jean-Yves Vion-Dury, Xerox Research Centre Europe

In a time when increased security of document transmission is required, simply encrypting a whole XML document in a single package is not the best option: even the most minimal processing tasks, such as validation, require decryption, which exposes content along with markup. Layered encryption, which uses asymmetric encryption on the content of data leaves and a separate encryption on the structural markup surrounding the data, offers considerably more flexibility because a document can be decrypted in stages. Structural integrity is preserved and the encrypted document is legal XML, so some XPath-based processing can be performed, while leaving the data content fully encrypted. In such an environment, intermediate providers can perform some services on a document, even while the content remains secure.

Thursday 4:45 pm - 5:30 pm

XTemp: Event-driven testing and monitoring of business processes

Jacques Durand, Fujitsu America; Hyunbo Cho, Pohang University of Science and Technology; Dale Moberg, Axway; & Jungyub Woo, National Institute of Standards and Technology (NIST)

XTemp is an event-centric XML language (as XSLT is a language) for the analysis of business processes and transactions via the events that they generate. The language (OASIS Committee Specification Draft March 2011) was motivated by a need to monitor and validate the messages/documents being interchanged in the course of business as well as the sequence of those messages/documents. An XTemp script consumes events, either in real time or from a log, but a script can also make use of conventional algorithmic statements (branching, loops, exits, subscript invocations) to control the flow of its own execution. This combination of workflow-style control, (which allows concurrency) and event synchronization is appropriate for process monitoring and analysis of related pattern events. By design, the core conformance level is implementable in XSLT 2.0 and XPath plays a central role both the logic and event selection. The authors feel that leveraging XSLT and XPath throughout will make XTemp accessible and useful to XML practitioners.

Friday, August 5, 2011

Friday 9:00 am - 9:45 am

Determining the impact of Eric Clapton on music using RDF graphs

Ronald P. Reck, RRecktek LLC; Kenneth B. Sall, Ken Sall Consulting; & Wendy A. Swanbeck, Wendy Swanbeck

Can SPARQL queries be used to examine the properties of performers — including those that reflect relationships between performers — to answer global questions such as “Who has had the greatest impact on rock music”? OpenLink Virtuoso Universal Server and a Drupal frontend were used. The exercise reveals challenges in exploiting diverse open sources (in this case DBpedia and MusicBrainz) to arrive at supportable conclusions about, for example, persons of interest.

Friday 9:45 am - 10:30 am

BaseX: XQuery injection (Reprise from XML Prague)

Eric van der Vlist, Dyomedea

We all know (and worry) about SQL injection, should we also worry about XQuery injection? With the power of extension functions and the implementation of XQuery update features, the answer is clearly yes and I will start by showing how an attacker can send information to an external site or erase a collection through XQuery injection on a naive and unprotected application using the eXist REST API. This was the bad news. The good news is that it's quite easy to protect your application to XQuery injection and after this word of warning, I'll discuss a number of simple techniques (literal string escaping, wrapping values into elements or moving them out of queries in HTTP parameters) to do so and show how to implement them in different environments covering traditional programming languages, XSLT, XForms and pipeline languages. This presentation will be fairly technical and practical, the goal being that after the presentation, attendees are able to implement what has been presented. Although the details and demonstrations will be based on Orbeon Forms and eXist, they will be generic enough to be easily transposable to other environments.

Friday 11:00 am - 11:45 am

A pragmatic approach to XML interoperability — the Component Metadata Infrastructure (CMDI)

Daan Broeder, Max Planck Institute for Psycholinguistics, Nijmegen; Oliver Schonefeld, Institute for the German Language (IDS), Mannheim; Thorsten Trippel, Tübingen University; Dieter Van Uytvanck, Max Planck Institute for Psycholinguistics, Nijmegen; & Andreas Witt, Institute for the German Language (IDS), Mannheim

XML is great for interchange — if you’re only looking for valid file interchange. Information interchange fails when markup semantics are misunderstood. In contrast to the typical academic approach to semantic interchange, the Computer Metadata Infrastructure (CMDI) takes a pragmatic approach towards adding semantics by linking generic identifiers to semantic concepts in a data category registry. The CMDI provides a modular framework for collecting and interrogating semantic metadata about XML applications, particularly in the humanities. The project has developed a number of tools, including a metadata editor and web-based repositories to support various registry components. Efforts are also underway for ISO standardization of the CDMI infrastructure.

Friday 11:45 am - 12:30 am

JATSPack and JATSPAN, a packaging format and infrastructure for the NLM/NISO Journal Archiving Tag Suite (JATS)

Chris Maloney, National Center for Biotechnology Information (NCBI), National Library of Medicine (NLM), National Institutes of Heath (NIH)

The NISO Journal Archiving Tag Suite (JATS, formerly known as “the NLM DTD”) is a common format used in the publication of scientific journal literature. JATSPack, a proposal based on the new EXPath Packaging System, provides a way to package schema customizations and software libraries associated with any of the JATS schemas, thus making it easier for developers to distribute JATS-related resources and easier for users to acquire, install, and use them. JATSPAN (the JATSPack Archive Network) is a web site allowing users to share and collaborate on JATSPacks. A client-side command line tool (jatspan) interacts with the site and eases the task of maintaining local repositories of JATSPacks.

Friday 12:30 pm - 1:15 pm

Opening up and closing down

C. M. Sperberg-McQueen, Black Mesa Technologies

Negotiating tradeoffs of flexibility and reliability, freshness and permanence.