9087296
Using Types to Parse Natural Language
We describe a natural language parser that uses type information to determine the grammatical structure of simple sentences and phrases. This stands in contrast to studies of type inference where types and grammatical structure play opposite roles, the former being determined by the latter. Our parser is implemented in Haskell and is based on a linguistic theory called applicative universal grammar (AUG). Our results should be interesting to computer scientists in the way in which AUG relates to types and combinatory calculus, and to linguists in the way in which a very simple, brute force parsing strategy performs surprisingly well in both performance and accuracy.
16167152
Functional Programming with Overloading and Higher-Order Polymorphism
The Hindley/Milner type system has been widely adopted as a basis for statically typed functional languages. One of the main reasons for this is that it provides an elegant compromise between flexibility, allowing a single value to be used in different ways, and practicality, freeing the programmer from the need to supply explicit type information. Focusing on practical applications rather than implementation or theoretical details, these notes examine a range of extensions that provide more flexible type systems while retaining many of the properties that have made the original Hindley/Milner system so popular. The topics discussed, some old, but most quite recent, include higher-order polymorphism and type and constructor class overloading. Particular emphasis is placed on the use of these features to promote modularity and reusability.
12155836
Using parameterized signatures to express modular structure
Module systems are a powerful, practical tool for managing the complexity of large software systems. Previous attempts to formulate a type-theoretic foundation for modular programming have been based on existential, dependent, or manifest types. These approaches can be distinguished by their use of different quantifiers to package the operations that a module exports together with appropriate implementation types. In each case, the underlying type theory is simple and elegant, but significant and sometimes complex extensions are needed to account for features that are important in practical systems, such as separate compilation and propagation of type information between modules.This paper presents a simple type-theoretic framework for modular programming using parameterized signatures. The use of quantifiers is treated as a necessary, but independent concern. Using familiar concepts of polymorphism, the resulting module system is easy to understand and admits true separate compilation. It is also very powerful, supporting high-order, polymorphic, and first-class modules without further extension.
14632058
First-class polymorphism with type inference
Languages like ML and Haskell encourage the view of values as first-class entities that can be passed as arguments or results of functions, or stored as components of data structures. The same languages offer parametric polymorphism, which allows the use of values that behave uniformly over a range of different types. But the combination of these features is not supported-- polymorphic values are not first-class. This restriction is sometimes attributed to the dependence of such languages on type inference, in contrast to more expressive, explicitly typed languages, like System F, that do support first-class polymorphism.This paper uses relationships between types and logic to develop a type system, FCP, that supports first-class polymorphism, type inference, and also first-class abstract datatypes. The immediate result is a more expressive language, but there are also long term implications for language design.
2346657
ML Typing, Explicit Polymorphism and Qualified Types
The ML type system was originally introduced as a means of identifying a class of terms in a simple untyped language, often referred to as core-ML, whose evaluation could be guaranteed not to “go wrong”. In subsequent work, the terms of core-ML have also been viewed as a ‘convenient shorthand’ for programs in typed languages. Notable examples include studies of ML polymorphism and investigations of overloading, motivated by the use of type classes in Haskell.
43107545
A Theory of Qualified Types
Abstract This paper describes a general theory of overloading based on a system of qualified types. The central idea is the use of predicates in the type of a term, restricting the scope of universal quantification. A corresponding semantic notion of evidence is introduced and provides a uniform framework for implementing applications of this system, including Haskell style type classes, extensible records and subtyping. Working with qualified types in a simple, implicitly typed, functional language, we extend the Damas-Milner approach to type inference. As a result, we show that the set of all possible typings for a given term can be characterized by a principal type scheme, calculated by a type inference algorithm.
38777515
Mobile interaction design tutorial
The tutorial explores interesting and empowering mobile design philosophies, principles and methods as well as giving specific guidance on key emerging consumer application areas such as image browsing and information access.
1818077
I-Vote: an audience voting system
In this paper, we describe the I-Vote system for audience response voting at the Olympic Games. The audience members vote by using a $2 handheld device that they can keep as a souvenir. The devices are simple to use, come in multiple designs, and are tradable. These devices do not hold any personal information so privacy is never an issue. The vote results are presented on a large public display, which is loaded with information in the form of graphs that are quickly understood. People can retrieve their personal votes later on the Internet. The system was designed through a process involving brainstorming, creating scenarios, searching for information, doing cognitive walkthroughs, developing prototypes, and revising and refining ideas.
19544571
Too close for comfort? Distance and engagement in interpretive information systems research
In this paper, we seek to explore the implications of the assumptions underlying interpretivism for the preferred relationship between the researcher and the research phenomenon. The growing interest in interpretive information systems research has drawn attention to the need to gain access to the interpretations of social actors. Various data-gathering methods are available to the researcher to achieve such access. These may be seen as located on a spectrum in terms of the degree of engagement between the researcher and the research subject. While engagement is not without its drawbacks from a research perspective, it may be argued that it enables good access to the sorts of data that interpretive researchers are seeking. Most of the research reported in the information systems (IS) field, however, has adopted relatively distant methods by which the researcher avoids intervention in the research context. Some of the characteristics of more engaged forms of research are illustrated through a discussion of a participant observation study of executive information systems development. This research has highlighted a number of issues that can be seen to be common to other data-gathering methods. Reasons for the neglect of engaged data-gathering methods are explored, and it is suggested that consideration of the issues it raises may contribute to more reflexive interpretive IS research practice.
8773945
Changing the pace of search: Supporting background information seeking
Almost all Web searches are carried out while the user is sitting at a conventional desktop computer connected to the Internet. Although online, handheld, mobile search offers new possibilities, the fast-paced, focused style of interaction may not be appropriate for all user search needs. The authors explore an alternative, relaxed style for Web searching that asynchronously combines an offline handheld computer and an online desktop personal computer. They discuss the role and utility of such an approach, present a tool to meet these user needs, and discuss its relation to other systems.
15315903
An Evaluation of Techniques for Browsing Photograph Collections on Small Displays
In this paper we evaluate techniques for browsing photographs on small displays. We present two new interaction techniques that replace conventional scrolling and zooming controls. Via a single user action, scrolling and zooming are inter-dependently controlled with AutoZoom and independently controlled with GestureZoom. Both techniques were evaluated in a large-scale, 72-subject usability experiment alongside a conventional thumbnail grid image browser. Performance with the new techniques was at least as good as that with the standard thumbnail grid, even though none of the subjects had prior experience with such systems. In a number of cases – such as finding small groups of photos or when seeking for images containing small details – the new techniques were significantly faster than the conventional approach. In addition, AutoZoom and GestureZoom supported significantly more accurate identification of subsets of photographs. Subjects also reported lower levels of physical and cognitive effort and frustration with the new techniques in comparison to the thumbnail grid browser.