19
The BrailleR Project A. Jonathan R. Godfrey

The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Embed Size (px)

Citation preview

Page 1: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

The BrailleR Project

A. Jonathan R. Godfrey

Page 2: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Philosophy

Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime.

魚を一匹やれば1日食いつなぐが、魚の取り方を教えてやれば一生食いはぐれることはない

Page 3: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

AIM: Independence

• A challenge for me personally, and many blind people.• In education or work.

• How can we make the graphs, flow charts etc. that are so necessary for a visual audience?

• How can we be as efficient and effective as our sighted colleagues when needing to perform statistical analyses?

• The challenge: To create statistical analyses and accompanying graphs for a sighted audience, without any assistance from sighted support staff or colleagues.

Page 4: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

The right software

• Choosing the software that minimizes the gap between a blind person’s capacity and that of their sighted peers is crucial.

• There are limited choices for the blind person.

• Impossible: Statistica, GenStat

• Difficult: Minitab, SPSS

• Reasonable: Stata, SAS

• Best: SPlus, R

Page 5: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

R and SPlus

• The best option, but not perfect.• R is free, SPlus is commercial.• Both use the same underlying syntax of the S programming

language.

• I favour R as it is free, runs on all platforms and is expanding to include more oral languages.

• it is becoming universal.

• R works for blind people without special scripts or modifications. We run it like the sighted run it.

Page 6: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Meeting the challenge

• Work is being done on tactile solutions.• Audio solutions are possible for some mathematical work but less

useful for statistical work.

• Any developments need to work for a wide range of skill sets:• Statistical knowledge.• Visual acuity = braille vs synthetic speech (or both).• And language ability.

• A simple text-based solution is favoured. • BrailleR is the result.

Page 7: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Storage of “objects”

• No matter what task we are doing, R stores our work in an object.

• An object is normally just a list of named elements, each of which is usually a series of values.

• Each list element can be given attributes which tell the software what the element is for and how to use it.

Page 8: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Handling objects

• Objects can be assigned a “class”.• A class signifies that all objects will have the same set of elements.

• We can write functions that handle objects of a particular class.• A family of these functions is called a “method”.• A method must have a function to handle all objects that are not

specifically handled by named functions.

• Most common method is the print method. The plot method is also used frequently.

Page 9: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

The VI method

• I have started writing functions that handle objects that are normally used to make graphs.

• A histogram is stored as a list of values that are subsequently fed into the plotting function.

• Some of the elements are irrelevant or duplicative in order to ensure backwards compatibility with older ways of working. Some elements are only used under specific conditions for the histogram, such as unequal bin widths.

Page 10: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Creating a histogram• Typing y=rnorm(1000)

x=hist(y, col=4) gives:

Page 11: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Explicit creation of an object

• The object x can be printed out by typing print(x)

$breaks [1] -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0$counts [1] 3 13 45 91 154 202 199 146 83 38 13 10 2 1$intensities [1] 0.006 0.026 0.090 0.182 0.308 0.404 0.398 0.292 0.166 0.076 0.026 0.020[13] 0.004 0.002$density [1] 0.006 0.026 0.090 0.182 0.308 0.404 0.398 0.292 0.166 0.076 0.026 0.020[13] 0.004 0.002$mids [1] -2.75 -2.25 -1.75 -1.25 -0.75 -0.25 0.25 0.75 1.25 1.75 2.25 2.75[13] 3.25 3.75$xname[1] "y"$equidist[1] TRUEattr(,"class")[1] "histogram"

Page 12: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

BrailleR gives a better result

• Typing VI(x) gives:

This is a histogram, with y marked on the x-axis, unless you explicitly used the xlab argument.

There are a total of 1000 elements for this variable.It has 14 bins with equal widths, starting at -3 and ending at 4.The mids and counts for the bins are...mid = -2.75 count = 3 mid = -2.25 count = 13 mid = -1.75 count = 45 mid = -1.25 count = 91 mid = -0.75 count = 154 mid = -0.25 count = 202 mid = 0.25 count = 199 mid = 0.75 count = 146 mid = 1.25 count = 83 mid = 1.75 count = 38 mid = 2.25 count = 13 mid = 2.75 count = 10 mid = 3.25 count = 2 mid = 3.75 count = 1

Page 13: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Selection of the best text

• This is made difficult by the varying needs of intended users.• Reading the text should be equally clear in both braille and through

synthetic speech.• For braille displays the text width should be minimised if possible,

especially for tabulated results.• I’ve tried to minimize syllables for the synthetic speech users.

• The text should transcend the language barriers that may exist (US vs UK English).

• I’ve tried to keep the words simple.

Page 14: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Advantages of BrailleR

• Many tasks done in statistical work creating graphs are experimental, or for one-time use.

• Effort spent turning these work-in-progress graphs into tactile images is not a good use of time or energy.

Page 15: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Scatter plots

• A challenge for any blind student: are two variables related to one another?

• Sighted people just create a scatter plot and consider how the points lie. Are they randomly placed over the graph? Can any structure be identified?

• I propose that dividing the plot area into a grid where each cell would have an equal number of points in it (under random conditions) and counting the number of points in the cells is roughly what the sighted person does.

Page 16: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

In BrailleR

• A function to do this for the blind person is now included in BrailleR.

Page 17: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

What else?

• There are many types of objects stored by R that have a class attribute assigned.

• I intend working my way through these classes as time permits, and demand determines.

• I have also made use of the work of other R developers to meet some challenges.

• Notably, the issue of saving your work for later editing when a sighted person would use cut-and-paste actions has been resolved.

• I also need to link the graphs with the ability to render them using tactile form, initially in hardcopy, but ultimately in preparation for the wider use of refreshable tactile displays.

Page 18: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Difficulties

• The greatest issue I now have to deal with is the lack of class assignments in the base R functionality.

• In many instances, the assignment has no value to the standard (sighted) R user.

• If my lobbying is successful, there will be no negative impact on R users. Hopefully, I can show sufficient upside for the blind R user.

• To meet the current shortfall, I have started writing functions that wrap around or replace the existing functions so that a blind person will get both the BrailleR output and the standard graph wanted by their sighted teachers/colleagues.

Page 19: The BrailleR Project A. Jonathan R. Godfrey. Philosophy Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime

Jonathan Godfrey

[email protected]

Institute of Fundamental SciencesMassey UniversityPalmerston North