throbber
52 command history
`
`~,orkspace ! Currerlt ~rector~/~
`
`P1ATLAB’s command history, shown in the lower left
`
`As the user performs actions, keep a visible record
`
`of what was done, to what, and when.
`
`Users perform long and complex sequences of ac-
`
`tions, either with a GUI or a command line. Host
`users are fairly experienced, or if not, they at least
`want an efficient interface that’s supportive of
`long-term and recurring work. Graphical editors
`and programming environments usually are good
`candidates for this pattern.
`
`¯ Repeat a sequence of operations, originally
`done to one object, on a different object
`
`¯ Keep a log of his actions, for legal or
`security reasons
`
`¯ Convert an interactive series of commands
`into a script or macro (see the Macros
`pattern in this chapter)
`
`Computers are good at keeping an accurate re-
`
`cord of steps taken; people aren’t. Take advantage
`of that.
`
`Sometimes a user needs to remember or review
`what he did in the course of working with the soft-
`ware. For instance, he may want to do any of these
`things:
`
`¯ Repeat an action or command done earlier,
`one he doesn’t remember well
`¯ Recall the order in which some actions were
`done
`
`Keep a running list of the actions taken by the user.
`
`If the interface is driven from a command line, then
`you have it easy--just record everything typed
`there. See Figure 5-22. If you can, keep track of the
`history across sessions, so the user can see what
`was done even a week ago or longer.
`
`156
`
`I)OING THI NC~S
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`If it’s a graphic interface, or a combination of
`
`graphic and command-line interfaces, then things
`
`get a little more complicated. Find a way to ex-
`
`press each action in one consistent, concise way,
`
`usually with words (:though there’s no reason why
`
`it can’t be done visually). Make sure you define
`
`these with the right granularity--if one action is
`
`done en masse to seventeen objects, record it as
`
`one action, not seventeen.
`
`What commands should you record, and which
`ones shouldn’t you? See the Multi-Level Undo pat-
`tern for a thorough discussion of what commands
`
`should "count." Ifa command is undoable, it should
`be recorded in the history.
`
`Finally, display the history to the user. That display
`should be optional in most software, since it will
`almost certainly play a supporting role in the user’s
`work, not a starring role. Lists of commands--
`oldest to newest--tend to work well. If you’d like,
`you could timestamp the history display somehow.
`MATLAB, shown in Figure 5-22, puts a date and
`time into the history whenever the program
`restarts.
`
`swing-shift:/var/log/httpd> history
`pwd
`1 23:55
`2 23:55
`pushd /var/Iog/httpd/
`Is -{ access_log
`3 23:55
`tat[ -1888 access_[og I grep "index"
`4 23:56
`
`taiL -1880 access_log I grep "tndex"l wc
`tail -1888 access_log I grep "Dtagona["l wc
`
`is -[
`cd jtt~weltnet/
`tail -1888 access_Log ] grep "index"l wc
`
`tat[ -2Be access_Log I more
`tail -288 access_log I grep "goggle"
`
`5 23:56
`6 23:57
`? 23:5?
`8 23:5?
`9 23:5?
`18 23:58
`&l 23:58
`12 23:58 cd.,
`tat[ -$088 access_log I grep "goggle"
`13 23:58
`14 23:59
`:15 23:59
`
`tail -1888 access_Log I grep "goog[ebot"
`
`swing-shtft:/var/log/httpd> ~
`
`history
`
`Unix and its many variants use shell programs, such as tcsh and
`
`bash, that keep track of their own command histories in files. The user can call it up
`with the "history" command, as shown here. The history also is accessible through
`
`various command-line constructs, like "]!" (reuse the last command), "!3" (reuse the
`command issued three commands ago), and Control-P, which you can issue
`
`repeatedly to show the previous commands one at a time.
`
`Photoshop’s undo stack, also seen in the Multi-Level Undo pattern, is effectively a
`
`command history. You can use it to undo what you did, but you don’t have to; you can just look at it and
`
`scroll through it, ~eviewing what you did. It uses icons to identify different classes of actions, which is
`
`unusual, but nice to use.
`
`CC) MMAND II I S’I’() RY
`
`157
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`53 macros
`
`Photoshop’s actions list
`
`Macros are single actions composed of other,
`smaller actions. Users can create them by putting
`together sequences of actions.
`
`Users want to repeat Ion9 sequences of actions or
`commands. They might want to loop over lists of
`files, images, database records, or other objects,
`for instance, doing the same things to each object.
`You might already have implemented Multi-Level
`Undo or Command History.
`
`No one wants to perform the same set of repeti-
`tive interactive tasks over, and over, and over again!
`This is exactly what computers are supposed to be
`good at. Chapter ] described a user-behavior pat-
`tern called Streamlined Repetition; macros are
`precisely the kind of mechanism that can support
`that well.
`
`Macros obviously help users work faster. However,
`by reducing the number of commands or gestures
`needed to get something done, they also reduce
`the possibility of finger-slips, oversights, and simi-
`lar mistakes.
`
`You might also recall the concept of "flow," also
`discussed in Chapter 1. When a user can compress
`
`a long sequence of actions down to a single com-
`mand or keyboard shortcut, the experience of flow
`is enhanced--the user can accomplish more with
`less effort and time, and she can keep her larger
`goals in sight without getting bogged down in
`details.
`
`Provide a way for the user to "record" a sequence
`of actions and easily "play them back" at any time.
`The playback should be as easy as giving a single
`command, pressing a single button, or dragging
`and dropping an object.
`
`The user should be able to give the macro a name
`of her choice. Let her review the action sequence
`somehow, so she can check her work or revisit a
`forgotten sequence to see what it did (as in the
`Command History pattern). Make it possible for
`one macro to refer to another so they can build on
`each other.
`
`Users will want to save macros from one day to the
`
`next, so make sure they’re persistent--save them
`
`to files or a database. Present them in a search-
`able, sortable, and even categorizable list, depend-
`
`ing on your users’ needs.
`
`DOING TItIIX G S
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`The macro itself could be played back literally, to
`keep things simple; or, if it acts upon an object that
`can change from one invocation to another, you
`could allow the sequence to be parameterized
`(e.g., use a placeholder or variable instead of a lit-
`eral object). Macros also should be able to act on
`many things at once.
`
`How the names of the macros (or the controls
`that launch them) are presented depends heavily
`
`upon the nature of the application, but consider
`
`displaying them with built-in actions rather than
`making them second-class citizens.
`
`The ability to record these sequences, plus the fa-
`cility for macros to build on one another, create
`the potential for a user to invent entirely new lin-
`guistic or visual 9rammar--a grammar that is finely
`
`tuned to their own environment and work habits.
`This is a very powerful capability. In reality, it’s pro-
`gramming; but if your users don’t think of them-
`selves as programmers, don’t call it that or you’ll
`scare them off. ("1 don’t know how to program
`anything; I must not be able to do this.")
`
`0.882
`0 867
`0.948
`
`0.522
`0345
`0.257
`
`0.736
`0.549
`0.485
`
`,~
`
`~hortcut key:
`Cel+~"
`E~c~ion:
`
`~or~ macro ~n:
`IThis Workbook
`
`3 i
`4
`5
`
`7
`
`10’
`11
`
`13
`14~
`15
`
`1’~ ~ i N ~Sheet 1 Z Sheet2 X’ Sheet3
`Ready
`
`Microsoft Excel allows macros to be
`recorded, named, stored along with the document, and
`
`even assigned to a keyboard shortcut. The user also can
`
`choose to run it from a button on the toolbar, or an
`
`ActiveX control in the document itself (which means you
`
`can use them as callbacks for buttons or text fields).
`
`I(~ ..... "
`
`"_J I’~
`
`"_i
`
`These Excel macros are written
`
`in Visual Basic, and the user can hand-edit them
`if desired. This is when it becomes programming.
`
`Because Visual Basic provides access to so much
`
`general-purpose functionality--most of it not
`
`directly related to spreadsheet operations--
`macros can be a serious security risk for Office
`
`applications. By sharply constraining the
`
`functionality available to macros and limiting the
`number of ways users can run macros (e.g.,
`
`clicking on toolbar buttons), you can trade power
`
`for safety.
`
`M A C R 0 S
`
`] 59
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`SHOWING COMPLEX DATA:
`
`’II{EI(,%, ’IABLI!S, AN[)
`
`INFORMA’FION GI~.APHICS
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`Information graphics including maps, tables, and graphs communi-
`cate knowledge visually rather than verbally. When clone well, they let
`people use their eyes and minds to draw their own conclusions; they
`show, rather than tell.
`These graphics are my favorite kinds of interfaces. However, poor tools or inadequate design can sharply
`limit what you can do with them, and many information-rich interfaces just don’t quite work as well as
`they could.
`
`The patterns in this chapter will help you make the best of the tools you have, and introduce you to some
`useful and interesting innovations in visualization design. The ideas described in this introduction can help
`you sort out which design aspects are most important to you in a given interface.
`
`"Information graphics" simply means data presented visually, with the goal of imparting knowledge to the
`user. I’m including tables and tree views in that description because they are inherently visual, even though
`they’re constructed primarily from text instead .of lines and polygons. Other familiar static information
`graphics includes maps, flowcharts, bar plots, and diagrams of real-world objects.
`
`But we’re dealing with computers, not paper. You can make almost any good static design better with
`interactivity. Interactive tools let the user hide and show information as she needs it, and they put the user
`in the "driver’s seat" as she chooses how to view and explore it.
`
`Even the mere act of manipulating and rearranging the data in an interactive graphic has value--the user
`becomes a participant in the discovery process, not just a passive observer. This can be invaluable. The
`user may not produce the world’s best-designed plot or table, but the process of manipulating that plot
`or table puts her face-to-face with aspects of data that she may never have noticed on paper.
`
`Ultimately, the user’s goal in using information graphics is to learn something. But the designer needs to
`understand what the user needs to learn. The user might look for something very specific, like a particular
`street on a map, in which case she needs to be able to find it--say by searching directly, or by filtering out
`extraneous information. She needs to get a "big picture" only to the extent necessary to reach that spe-
`cific data point. The abilities to search, filter, and zero in on details are critical.
`
`On the other hand, she might try to learn something less concrete. She might look at a map to grasp the
`layout of a city, rather than to find a specific address. Or she may be a scientist visualizing a biochemical
`process, trying to understand how it works. Now overviews are important; she needs to see how the parts
`interconnect into the whole. She may want to zoom in, zoom back out again, look at the details occasion-
`ally, and compare one view of the data to another.
`
`TIlE BASICS OF INFORMATION GRAPIIlCS 161
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`Good interactive information graphics offer users answers to these questions:
`
`How is this data organized?
`
`What’s related to what?
`
`How can I explore this data?
`
`Can I rearrange this data to see it differently?
`
`Show me only what I need to know.
`
`What are the specific data values?
`
`In these sections, remember that the term "information graphics" is a very big umbrella. It
`covers plots, graphs, maps, tables, trees, timelines, and diagrams of all sorts. The data can
`be huge and multilayered, or small and focused. Many of these techniques apply surpris-
`ingly well to graphic types that you wouldn’t expect.
`
`Before describing the patterns themselves, let’s set the stage by discussing some of the
`questions posed above.
`
`The first thing a user sees in any information visualization is the shape you’ve chosen for the
`
`data. Ideally, the data itself has an inherent structure that suggests this shape to you. Which
`
`of these models fits your data best?
`
`Model
`
`Linear
`
`Tabular
`
`Diagram
`
`Common graphics
`
`0~0~0
`
`List or single-variable plot
`
`Spreadsheet, multi-column list, Sortable Table,
`Multi-Y Plot, or other multi-variable plots
`
`Hierarchical
`
`.<;<:
`
`Tree, Cascaded Lists, Tree Table, Treemap, or
`directed graph
`
`Network (or
`organic)
`
`Geographic (or
`spatial)
`
`Other
`
`Directed graph or flowchart
`
`Map or schematic
`
`Plots of various sorts, such as parallel coordinate
`plots, or Treemaps
`
`Try these models against the data you try to show. If two or more might fit, consider which
`ones play up which aspects of your data. If your data could be both geographic and tabular,
`for instance, showing it as only a table may obscure its geographic nature--a viewer may
`miss interesting features or relationships in the data if you do not show it as a map too.
`
`162 SIIOWING COMPLEX 1)ATA
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`The organizational model you choose tells the user a lot about the shape of the data. Part
`
`of this message operates at a subconscious level; people recognize trees, tables, and maps,
`
`and they immediately jump to conclusions about the underlying data before they even start
`
`to think consciously about it. But it’s not just the shape that does this. The look of the indi-
`
`vidual data elements also works at a subconscious level in the user’s mind: things that look
`
`alike must be associated with one another.
`
`If you’ve read Chapter 4, that should sound familiar--you already know about the Gestalt
`
`principles. (If you jumped ahead in the book, this might be a good time to go back and read
`
`the introduction to Chapter 4.) Most of those principles, especially similarity and continuity,
`
`will come into play here, too. I’ll tell you a little more about how they seem to work.
`
`Certain visual features operate "preattentively:" they convey information before the viewer
`
`pays conscious attention. Look at Figure 6-] and find the blue objects.
`
`00000
`
`,~:’: ::~.i / Find the blue objects
`
`I’m guessing that you can do that pretty quickly. Now look at Figure 6-2 and do the same.
`
`0000000000
`
`0000000000
`0000000
`
`0000000000
`
`You did that pretty quickly too, right? In fact, it doesn’t matter how many red objects there
`are; the amount of time it takes you to find the blue ones is constant! You might think it
`should be linear with the total number of objects--order-N time, in algorithmic terms--but
`it’s not. Color operates at a primitive cognitive level. Your visual system does the hard work
`for you, and it seems to work in a "massively parallel" fashion.
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`On the other hand, visually monotonous text forces you to read the values and think about
`them. Figure 6-:3 shows exactly the same problem with numbers instead of colors. How fast
`can you find the numbers that are greater than
`
`0.103
`
`0.176
`
`0.387
`
`0.300
`
`0.379
`
`0.276
`
`0.179
`
`0.321
`
`0.192
`
`0.250
`
`0.333
`
`0.384
`
`0.564
`
`0.587
`
`0.857
`
`1.064
`
`0,698
`
`0.621
`
`0,232
`
`0.316
`
`0.421
`
`0.309
`
`0.654
`
`0.729
`
`0.228
`
`0.529
`
`0.832
`
`0.935
`
`0.452
`
`0.426
`
`0.266
`
`0.750
`
`1.056
`
`0.936
`
`0.911
`
`0.820
`
`0.723
`
`1.201
`
`0.935
`
`0.819
`
`0.225
`
`0.326
`
`0.643
`
`0.337
`
`0.721
`
`0.837
`
`0.682
`
`0.987
`
`0.984
`
`0.849
`
`0.187
`
`0.586
`
`0.529
`
`0.340
`
`0.829
`
`0.835
`
`0.873
`
`0.945
`
`1.103
`
`0.710
`
`0.153
`
`0.485
`
`0.560
`
`0.428
`
`0.628
`
`0.335
`
`0.956
`
`0.879
`
`0.699
`
`0.424
`
`FtGURE ~3,3 , Find the values greater than one
`
`When dealing with text like this, your "search time" really is linear with the number of items.
`What if we still used text, but made the target numbers physically larger than the others, as
`in Figure 6-4?
`
`0.103
`
`0.176
`
`0.387
`
`0.300
`
`0.379
`
`0.276 0.179
`
`0.321
`
`0.192
`
`0.250
`
`0.333
`
`0.384
`
`0.564
`
`0.587
`
`0.857
`
`1.064 0.698
`
`0.621
`
`0.232
`
`0.316
`
`0,421
`
`0.309
`
`0.654
`
`0.729
`
`0.228
`
`0.529
`
`0.832
`
`0.935
`
`0.452
`
`0.426
`
`0.266
`
`0,750
`
`1.056 0.936
`
`0.911
`
`0.820
`
`0.723
`
`1,201
`
`0.938
`
`0.819
`
`0.225
`
`0.326
`
`0,643
`
`0.337
`
`0.721
`
`0.837
`
`0.682
`
`0.987
`
`0.984
`
`0.849
`
`0.187
`
`0.586
`
`0.529
`
`0.340
`
`0.829
`
`0.835
`
`0.873
`
`0.945
`
`1.103 0.710
`
`0.1 $3
`
`0.485
`
`0.560
`
`0.428
`
`0.628
`
`0.338
`
`0.956
`
`0.879
`
`0.699
`
`0.424
`
`FIGURE 6-4 ,’ Again
`
`Now we’re back to constant time again. Size is, in fact, another preattentive variable. The
`fact that the larger numbers protrude into their right margins also helps you find them--
`alignment is yet another preattentive variable.
`
`Figure 6-5 shows many known preattentive variables.
`
`J
`
`164
`
`SHOWING COMPI. EX DATA
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`Color hue
`
`Position and alignment
`
`Color brightness
`
`Orientation
`
`Color saturation
`
`Size
`
`abcdef
`abcdef
`abcdef
`
`abcdef abcdef abcdef
`abcdef abcdef abcdef
`abcdef ebcdef abcdef
`
`abcdef abcdef
`abcdef
`abcdef
`abcdef abcdef
`abcdef
`abcdef
`abcdef abcdef abcdef abcdef
`
`Texture
`
`Shape
`
`FIGURE 6-5 / Eight preattentive variables
`
`This concept has profound implications for text-based information graphics, like the table
`of numbers in Figure 6-:5. If you want some data points to stand out from the others, you
`have to make them look different by varying their color, size, or some other preattentive
`variable. More generally, you can use these variables to differentiate classes or dimensions
`of data on any kind of information graphic. This is sometimes called "encoding."
`
`When you have to plot a multidimensional data set, you can use several different visual
`variables to encode a!l those dimensions in a single static display. Consider the scatter plot
`shown in Figure 6-6. Position is used along the X and Y axes; color hue encodes a third vari-
`able. The shape of the scatter markers could encode yet a fourth variable, but in this case,
`
`THE BASICS OF INFORMATION G:RAPHICS
`
`165
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`shape is redundant with color hue. The redundant encoding helps a user visually separate
`the three data groups.
`
`[] []
`
`45
`
`40
`
`~5
`
`1508 2000 2500 3000 3600 4000 4500 5000
`Car Weight in Pounds
`
`Encoding three variables in a scatter plot
`
`Encoding via preattentive factors relates to a general graphic design concept called "layer-
`ing." When you look at well-designed graphics of any sort, you perceive different classes of
`information on the page. Preattentive factors like color cause some of them to "pop out" of
`the page, and similarity causes you to see them as connected to one another, as if each
`were on a transparent layer over the base graphic. It’s an extremely effective way of seg-
`menting data--each layer is simpler than the whole graphic, and the viewer can study each
`in turn, but relationships among the whole are preserved and emphasized.
`
`NAVIGATION ANI::) BROVVStNG: HOW CAN I EXPLORE ] HIS DATA?
`
`A user’s first investigation of an interactive data graphic may be browsing--just looking
`around to see what’s there. He also may navigate through it to find some specific thing he’s
`seeking. Filtering and searching can serve that purpose too, but navigation through the
`"virtual space" of a dataset often is better. Spatial Memory (Chapter 1) kicks in, and the user
`can see points of interest in context with the rest of the data.
`
`A famous mantra in the information visualization field is: "focus plus context." A good visu-
`alization should permit a user to focus on a point of interest, while simultaneously showing
`enough material around that point of interest to give the user a sense of where it is in the
`big picture.
`
`Here are some common techniques for navigation and browsing:
`
`If the data display won’t fit onscreen at once, you could put it in a scrolled window,
`giving the user easy and familiar access to the offscreen portions. Scrollbars are
`
`166 5HO\VlNG COMPI. EX DATA
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`familiar to almost everyone, and are easy to use. However, some displays are too
`big, or their size is indeterminate (thus making scrollbars inaccurate), or they have
`data beyond the visible window that you need to retrieve or recalculate (thus making
`scrollbars too slow to respond). Instead of using scrollbars in those cases, try setting
`up buttons that the user has to click to retrieve the next screenful of data; think about
`how MapQuest or MapBlast works. Other applications do panning instead, in which
`the cursor "grabs" the information graphic and drags it until the point of interest is
`found, as in Google Maps.
`
`These techniques are appropriate for different situations, but the basic idea is the
`same: to interactively move the visible part of the graphic. Sometimes Overview
`Plus Detail can help the user stay oriented. A small view of the whole graphic can be
`shown with an indicator rectangle displaying the visible "viewport;" the user might
`pan by dragging that rectangle, in addition to scrollbars or whatever else is used.
`
`Zooming changes the scale of the viewed section, whereas scrolling changes the
`location. When you present a data-dense map or graph, consider offering the user
`the ability to zoom in on points of interest. It means you don’t have to pack every
`single data detail into the full view--if you have lots of labels, or very tiny features
`(especially on maps), it may be impossible anyway. As the user zooms in, those fea-
`tures can emerge when they have enough space.
`
`Host zooms are implemented with a mouse click or button press, and the whole view-
`ing area changes scale at once. But that’s not the only way to zoom. Some applica-
`tions create nonlinear distortions of the information graphic as the user moves the
`mouse pointer over the graphic: whatever is under the pointer zooms, but the stuff
`far away from the pointer doesn’t change scale. See the Local Zooming pattern for
`more information.
`
`Tree views typically let users open and close parent items at will, so they can inspect
`the contents of those items. Some hierarchically structured diagrams and graphs
`also give users the chance to open and close parts of the diagram "in place," without
`having to open a new window or go to a new screen. With these devices, the user
`can explore containment or parent/child relationships easily, without leaving that
`window. The Cascading Lists pattern describes another effective way to explore a
`hierarchy; it works entirely through single-click opening and closing of items.
`
`Some information graphics just present a "top level" of information. A user might
`click or double-click on a map to see information about the city she just clicked on,
`or she might click on key points in a diagram to see subdiagrams. This "drilling down"
`might reuse the same window, use a separate panel on the same window, or bring
`up a new one (see Chapter 2 for a discussion of window mechanics). This technique
`resembles opening and closing points of interest, except that the viewing occurs
`separately from the graphic, and is not integrated into it.
`
`Till-: BASICS ()F INY(IIIM.,\TI()N (~I{.\PIIICS
`
`167
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`If you also provide a search facility for an interactive information graphic, consider linking
`the search results to whatever technique listed previously that you use. In other words, when
`a user searches for the city of Sydney on a map, show the map zooming and/or panning to
`that point. Then the search user gets some of the benefits of context and spatial memory.
`
`Sometimes just rearranging an information graphic can reveal unexpected relationships.
`Look at the following graphic, taken from the National Cancer Institute’s online mortality
`charts (Figure 6-7). It shows the number of
`deaths from lung cancer in the state of Texas.
`The major metropolitan regions in Texas are ar-
`ranged alphabetically--not an unreasonable de-
`fault order if you look up specific cities, but as
`presented, the data doesn’t prompt many inter-
`estin9 questions. It’s not clear why Abilene, Al-
`ice, Amarillo, and Austin all seem to have similar
`numbers, for instance; it may just be chance.
`

`
`From http.//cance~gov/atlasplus/,
`
`sorted alphabetically
`
`mllml
`
`The same chart, sorted numerically
`
`But this web application lets you reorder the data
`into numerically descending order, as in Figure
`6-8. Suddenly the graph becomes much more in-
`teresting. Galveston is ranked first--why is that,
`when its neighbor, Houston, is further down the
`scale? What’s special about Galveston? (Okay,
`you needed to know something about Texas ge-
`ography to ask these questions, but you get my
`point.) Likewise, why the difference between
`ne!ghbors Dallas and Fort Worth? And appar-
`ently, the Mexico-bordering southern cities of El
`Paso, Brownsville, and Laredo have less lung can-
`cer than the rest of Texas; why might that be?
`
`People who can interact with data graphics this
`way have more opportunities to learn from the
`graphic. Sorting and rearranging puts different
`data points next to each other, thus letting users
`make different kinds of comparisons--it’s far
`easier to compare neighbors than widely scat-
`tered points. And users tend to zero in on the
`extreme ends of scales, as I did in this example.
`
`How else can you apply this concept? The pat-
`tern Sortable Table talks about one obvious way:
`when you have a many-columned table, users
`might want to sort the rows according to their
`choice of column. This pattern is pretty common.
`
`168 SIIOWING COMPI, I!X DATA
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`(Many table implementations also permit rearrangement of the columns themselves, by
`dragging.) Trees can have their children reordered. Diagrams and connected graphs might
`allow spatial repositionin9 of their elements, while retaining their connectivity. Use your
`imagination!
`
`Consider these methods of sorting and rearranging:
`
`Alphabetically
`
`Numerically
`
`By date or time
`
`By physical location
`
`By category or tag
`
`Popularity--heavily versus lightly used
`
`User-designed arrangement
`
`Completely random (you never know what you might see)
`
`For a subtle example, look at Figure 6-9. Bar charts that show multiple data values on each
`bar ("stacked" bar charts) might also be amenable to rearranging--the bar segments near-
`est the baseline are the easiest to evaluate and compare, so you might want to let users
`determine which variable is next to the baseline.
`
`The light blue variable in this example might be the same height from bar to bar. Does it
`vary, and how? Which light blue bars are the tallest? You really can’t tell until you move that
`data series to the baseline--that transformation lines up the bases of all blue rectangles.
`Now a visual comparison is easy: light-blue bars 6 and 12 are the tallest, and the variation
`seems loosely correlated to the overall bar heights.
`
`lllnnull
`
`Rearrangement of a stacked bar chart
`
`Sometimes you don’t want to see an entire dataset at once. You might start with the whole
`thing, and then narrow it down to what you need--filtering. Or, you might build up a subset
`of the data via searching or querying. Most users won’t even distinguish between filtering
`and querying (though there’s a big difference from, say, a database’s point of view). What-
`ever term you use, the user’s intent is the same: to zero in on whatever part of the data is
`of interest, and get rid of the rest.
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`The simplest filtering and querying techniques offer users a choice of which aspects of the
`
`data to view. Checkboxes and other one-click controls turn parts of the interactive graphic
`
`on and off. A table might show some columns and not others, per the user’s choice; a map
`
`might show only the points of interest (e.g., restaurants) that the user selects. The Dynam-
`
`ic Ql~eries pattern, which can offer rich interaction, is a logical extension of simple filter
`
`controls like these.
`
`Sometimes simply highlighting a subset of the data, rather than hiding or removing the
`
`rest, is sufficient. That way a user can see that subset in context with the rest of the data.
`
`Interactively, you can highlight with simple controls, as described earlier. The Data Brushing
`
`pattern describes a variation of data highlighting; data brushing highlights the same data
`
`in several data graphics at once.
`
`Look at Figure 6-]0. This interactive ski-trail map can show four categories of trails, coded
`
`by symbol, plus other features like ski lifts and base lodges. When everything is "turned on"
`
`at once, it’s so crowded that it’s hard to read anything! But users can click on the trail sym-
`
`bols, as shown, to turn the data "layers" on and off. The first screenshot shows no high-
`
`lighted trails; the second switches on the trails rated black-diamond with a single click.
`
`1:~ From httta.~//ww~zsundayrive~com/trailmap.htm
`
`Searching mechanisms vary heavily from one type of graphic to another. A table or tree
`should permit textual searches, of course; a map should offer searches on addresses and
`other physical locations; numeric charts and plots might let users search for specific data
`values or ranges of values. What are your users interested in searching on?
`
`When the search is done, and results obtained, you might set up the interface to see the
`results in context, on the graphic--you could scroll the table or map so that the searched-
`for item is in the middle of the viewport, for instance. Seeing the results in context with the
`rest of the data helps the user understand the results better. The Jump to Item pattern is a
`
`common way to search and scroll in one step.
`
`170
`
`SHOWING COMPI. EX [),t~’l’A
`
`MemoryWeb Ex. 2033
`Apple v. MemoryWeb – IPR2022-00031
`
`

`

`The best filtering and querying interfaces are:
`
`They respond as quickly as possible to the user’s searching and filtering. Implementing
`this admittedly isn’t easy for web applications and other interfaces that need to get
`data from across a network.
`
`They let a user refine the search, query, or filter until she gets the desired results.
`They also might combine these operations: a user might do a search, get a screenful
`of results, and then filter those results down to what she wants.
`
`They show results in context with surrounding data to make it easier for a user
`to understand where they are in a data space. This is also true for other kinds of
`searches; the best web search engines show a keyword embedded in a sentence, or
`an image embedded in its web page.
`
`Several common techniques help a viewer get specific values out of an information graph-
`ic. Know your audience--if they’re only interested in getting a qualitative sense of the data,
`then there’s no need for you to spend large amounts of time or pixels labeling every little
`thing, But some actual numbers or text usually are necessary.
`
`Since these techniques all involve text, don’t forget the graphic design principles that make
`text look good: readable fonts, appropriate font size (not too big, not too small), proper
`visual separation between unrelated text items, alignment of related items, no heavy-bor-
`dered boxes, and no unnecessary obscuring of data.
`
`Many information graphics put labels directly on the graphic, such as town names
`on a map. Labels also can identify the values of symbols on a scatter p

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket