7947888
Constructing Specification Morphisms
Specification morphisms underlie the refinement of algebraic specifications and provide the logical foundations for algorithm and data structure design. We present four techniques for formally, even mechanically, constructing specification morphisms. The first two techniques, verifying a manually constructed signature morphism and composition of specification morphisms are well-known. The remaining two techniques exploit the axioms of the source specification to help infer the translation of sort and function symbols from the source specification. The third, unskolemization, finds the translation of a function symbol by replacing occurrences of it in an axiom by an existentially quantified variable. A constructive proof of the translated axiom yields a witness to the existential that serves as the desired translation of the function symbol. The fourth technique, connections between specifications, allows the transfer of structure from one specification morphism to another. The unskolemization and connection techniques arose as abstractions from the algorithm design tactics implemented in the KIDS program transformation system (Smith (1990)). They suggest a more general approach to providing mechanized support for applying design knowledge expressed axiomatically.
16901228
Planware-domain-specific synthesis of high-performance schedulers
Planware is a domain-specific generator of high-performance scheduling software, currently being developed at the Kestrel Institute. Architecturally, Planware is an extension of the Specware system with domain-independent and domain-dependent parts. The domain-independent part includes a general algorithm design facility (including mechanisms to synthesize global-search and constraint propagation algorithms), as well as support for theorem-proving and witness finding. The domain-dependent part includes scheduling domain knowledge and architecture representations, and other domain-specific refinement knowledge that relates the scheduling domain to general algorithm design and data type refinement. Using Planware, the user interactively specifies a problem and then the system automatically generates a formal specification and refines it.
26840234
Software Development by Refinement
This paper presents an overview of the technical foundations and current directions of Kestrel’s approach to mechanizing software development. The approach emphasizes machine-supported refinement of property-oriented specifications to code, based on a category of higher-order specifications. A key idea is representing knowledge about programming concepts, such as algorithm design, and datatype refinement by means of taxonomies of abstract design theories and refinements. Concrete refinements are generated by composing library refinements with a specification.
15706733
Integrating harvesting into digital library content
The Open Archives Initiative has gained success by aiming between complex federation schemes and low functionality web crawling. Much information still remains hidden inside documents catalogued by OAI metadata. We discuss how subdocument information can be exposed by data providers and exploited by service providers. We discuss services for citation reversal and name and term linking with harvested data in the Perseus Project's document management system and a proxy service for automatically adding these links to OAI documents outside Perseus.
7534908
Building a hypertextual digital library in the humanities: a case study on London
This paper describes the creation of a new humanities digital library collection: 11,000,000 words and 10,000 images representing books, images and maps on pre-twentieth century London and its environs. The London collection contained far more dense and precise information than the materials from the Greco-Roman world on which we had previously concentrated. The London collection thus allowed us to explore new problems of data structure, manipulation, and visualization. This paper contrasts our model for how humanities digital libraries are best used with the assumptions that underlie many academic digital libraries on the one hand and more literary hypertexts on the other. Since encoding guidelines such as those from the TEI provide collection designers with far more options than any one project can realize, this paper describes what structures we used to organize the collection and why. We particularly emphasize the importance of mining historical authority lists (encyclopedias, gazetteers, etc.) and then generating automatic span-to-span links within the collection.
27096788
Mobile Location
44972038
Project CALC: Calculus as a Laboratory Course
Calculus is the study of change. The concepts of calculus enable us to model processes that change and to describe properties of these processes that remain constant in the midst of change. Now change has come to the learning of calculus -change driven by the need to respond to the revolution in technology and fueled by funds from the United States National Science Foundation. What should be changed? How and how fast? What should remain constant? In this paper we describe one answer to these questions: Project CALC, a new calculus course developed at Duke University. The key features of our approach are real-world problems, hands-on activities, discovery learning, writing and revision of writing, teamwork, and intelligent use of available tools.
16933924
Using architecture evaluation to prepare a large Web based system for evolution
This paper describes an ongoing effort to develop architecture documentation and to evaluate the architecture using the Architecture Tradeoff Analysis Method/sup SM/ (ATAM/sup SM/). The system is a large Web based application using J2EE, portal and Web services technology that is replacing a large number of legacy applications. It has very detailed documentation at the design level, but is lacking overall architecture documentation. We describe how the architecture is being documented in an iterative manner, and how sample scenarios are being developed as input for an ATAM. The package of the documentation, scenarios and ATAM will fill in important gaps in existing knowledge, and it will provide an important baseline for the system's evolution.