Current presentation applications allow a presenter to prepare the content of her presentation, namely slides and notes, in advance of the presentation. However, because the presenter cannot be sure of her audience's response until she delivers the presentation, the presenter risks both including too little information in her slides and appearing ill-informed, and including too much information in her slides and losing the interest of the audience.
These current presentation applications do not typically allow presenters to change content during a presentation. Therefore, in order to adapt to an audience's needs, presenters may skip superfluous slides or discuss subject matter outside the scope of the prepared slides. But, in so doing, these presenters may risk overlooking important material and distracting their audiences. Moreover, in answering audience questions, the presenter may need to toggle back and forth between slides featuring relevant content, wasting time and further distracting the audience.
There is therefore a need for improved presentation applications.
Accordingly, the systems and methods described herein relate to selecting content to present to an audience during a presentation. The systems and methods described herein allow a presentation to include multiple display paths and thereby allow the content being presented to be adapted to meet the circumstances of the presentation. The systems and methods described herein further collect audience feedback data to select or modify a display path to follow. The systems and methods described herein may therefore allow a presentation to be adapted to its audience.
In certain aspects, the systems and methods described herein relate to selecting content to be presented. A plurality of slides, each slide comprising content of a presentation, may be provided at a computer processor by a slide database. In some implementations the slide database may store the plurality of slides. The presentation includes a plurality of display paths, each display path containing an ordered subset of the plurality of slides. A path database may provide the plurality of display paths to the computer processor, and in certain implementations may store the plurality of display paths. The computer processor receives audience feedback data and ranks presentation content based on the audience feedback data. The computer processor further ranks each of the plurality of slides based on the presentation content ranking, and selects a display path from the plurality of display paths based on the ranking of one or more of the slides contained within the display path. The computer processor may comprise a communication sensor for receiving audience feedback data, a feedback aggregator for ranking presentation content based on audience feedback data, a scorer for ranking each of the plurality of slides based on the presentation content ranking, and a path selector for selecting a display path from the plurality of display paths based on the audience feedback data and the presentation content contained within the display path. In certain implementations, the computer processor may also comprise a path adjustor, which may generate an additional display path. In some such implementations, an additional display path may be identified while the presentation is being displayed to the audience.
In certain aspects, the systems and methods described herein relate to generating a presentation. A plurality of slides, each slide comprising content of a presentation, is provided at a computer processor. A user is allowed to generate a plurality of display paths for the presentation, each display path containing an ordered subset of the plurality of slides. A user is further allowed to provide an initial ranking of the display paths, and the presentation having a plurality of slides, a plurality of display paths, and a ranking of the display paths is stored. In certain implementations, the computer processor may suggest a display path or an initial ranking of the display paths. In certain implementations, the computer processor may modify display path rankings, in some such implementations based on audience feedback data.
The systems and methods described herein are set forth in the appended claims. However, for the purpose of explanation, several implementations are set forth in the following figures.
In the following description, numerous details are set forth for the purpose of explanation. However, one of ordinary skill in the art will realize that the implementations described herein may be practiced without the use of these specific details and that the implementations described herein may be modified, supplemented, or otherwise altered without departing from the scope of the invention.
The systems and methods described herein relate to selecting presentation content for display. In response to audience feedback or other suitable criteria, a presentation content selection engine may select or alter a display path of the presentation.
Presentation content selection engine 102 may be a computer processor providing presentation content to output device 104 according to a display path. Presentation content selection engine 102 may present content included in a display path in response to commands provided by a presenter through UI 106. As an illustrative example, if a presenter presses a right-arrow button while presenting, presentation content selection engine 102 may provide the next piece of content in the display path to output device 104. Presentation content selection engine 102 may store one or more slides, access one or more slides stored at a remote location, or some combination thereof. Presentation content selection engine 102 may switch between display paths or adjust a display path in response to audience feedback data, which presentation content selection engine 102 may gather from one or more feedback providers 108.
Output device 104 may be a computer monitor, a projector, a webcast, a loudspeaker, or other suitable device for providing a presentation to an audience. Output device 104 receives content from presentation content selection engine 102 through a Digital Visual Interface (DVI) cable, through a network connection, through an audio cable, or through some other suitable connection. Content may include slides of a display path. Output device 104 provides the received content to an audience that may include one or more feedback providers 108.
UI 106 is an interface through which a user may control presentation content selection engine 102, and may include a keyboard, a mouse, a personal computer, a mobile computing device, a remote controller, or other device suitable for providing commands to presentation content selection engine 102. In certain implementations, UI 106 may provide a user with information not provided to output device 104, such as supplemental notes regarding presentation content, an indicator of content that will be presented, or other suitable information. In certain implementations, a user may use UI 106 to alter one or more of presentation content and a presentation path. In some such implementations, the alterations may be made while content is being presented through output device 104. In certain implementations, UI 106 may be integrated with presentation content selection engine 102.
Feedback providers 108a, 108b, and 108c (collectively, feedback providers 108) provide audience feedback data to presentation content selection engine 102. Audience feedback data may include a vote regarding which presentation content should be displayed, an expression of satisfaction or dissatisfaction with a presentation, an expression of interest in a topic, a question regarding the presentation content, or other suitable feedback data. Feedback provider 108a provides feedback to presentation content selection engine 102 through a device connected to presentation content selection engine 102, which may include a computer terminal, a microphone, a camera, or other device suitable for gathering audience feedback data. Feedback provider 108b may wirelessly transmit feedback to presentation content selection engine 102 using a remote controller, a cellular telephone, or through some other suitable transmitting device. Feedback provider 108c may use a personal computer, mobile computing device, or other suitable device to provide feedback through a computer network 110 connected to presentation content selection engine 102. Feedback provided through network 110 may include votes taken on a polling website associated with engine 102, comments posted to a website from which engine 102 may aggregate feedback, or other suitable feedback. In certain implementations, engine 102 may be configured to search for feedback on Internet websites, which may include microblogging or social networking websites.
In certain implementations, a feedback provider 108c need not be an audience member. As an illustrative example of such an implementation, a presentation being given on high-energy physics might have been diverted to a display path regarding the Higgs boson in response to engine 102 identifying a press release regarding the discovery thereof. Similarly, in certain implementations presentation content selection engine 102 may receive audience feedback data before or after a presentation, or may select a display path before the presentation begins. As an illustrative example of such implementations, if a majority of feedback providers 108a entering a lecture hall indicate that they have a technical background, presentation content selection engine 102 may select a display path meant for a more technical audience before the presentation begins.
Presentation content selection system 100 provides presentation content to an audience. Presentation content selection engine 102 provides content to output device 104 in accord with a display path. UI 106 allows a user to move along a display path, allowing a user to control what content is being presented to an audience through output device 104. Feedback providers 108 generate audience feedback data, and may thereby identify which display path presentation content selection engine 102 will follow or indicate how a display path should be adjusted.
Content database 202 may be a computer-readable and -writable medium providing presentation slides associated with a presentation, which may include text, images, audio files, video files, HTML links, or other suitable media. Content database 202 may store slides, provide instructions for accessing remotely stored slides, or otherwise provide slides. In certain implementations, content database 202 may store content not associated with a presentation slide. In such implementations, content may be associated with information regarding slide arrangement, which may include how much space the content would take up on a presentation slide, an abbreviated version of the content that may be placed on a slide, or other information allowing a computer to arrange the content on a slide. Content database 202 may also store metadata regarding slides or content, such as a presentation the slide or content is associated with, a user score or ranking of a slide or content, a relationship between two or more slides or pieces of content, an indication of how long the content or slide takes to present, a slide score generated by scorer 210, or other suitable metadata regarding slides or content.
Path database 204 may be a computer-readable and -writable medium storing at least one display path associated with the presentation. The at least one display path may be an ordered set of slides stored in content database 202, or, in certain implementations, may be an ordered set of content stored in content database 202 and one or more templates for slides featuring the stored content. Path database 204 may also store metadata associated with a display path, such as a presentation the display path is associated with, a relationship between the display path and a second display path, audience feedback data regarding the display path, an amount of time required to present the display path, an indication of optional portions of the display path, or other suitable metadata associated with the display path.
Communication sensor 206 may include an infrared sensor, an Ethernet connection, an Internet search engine, a camera, a microphone, or some other sensor suitable for receiving audience feedback data generated by a feedback provider 108. Communication sensor 206 may receive audience feedback data from a feedback provider 108a or 108b transmitting a signal to engine 200, from a feedback provider 108c transmitting a message to engine 200 through an e-mail or by making a predetermined HyperText Transfer Protocol (HTTP) request, or through some other suitable method for receiving audience feedback data. In certain implementations, communication sensor 206 may also receive audience feedback data not transmitted to engine 200. As illustrative examples of such implementations, communication sensor 206 may record an image or sound of an audience reacting to presentation content, may search one or more websites for posts made by an identified feedback provider 108 or featuring content associated with the presentation, or may otherwise gather audience feedback data without receiving a transmission from the audience. Communication sensor 206 provides the gathered audience feedback data to feedback aggregator 208 for identification.
Feedback aggregator 208 may be a computer processor, and ranks presentation content based on audience feedback data received by communication sensor 206. In certain implementations, feedback aggregator 208 may rank content by assigning a score to content. As an illustrative example of such an implementation, in a presentation regarding reptiles, if content associated with turtles receives twice as much positive feedback as content associated with tortoises, content associated with turtles may be scored twice as highly as content associated with tortoises, and be ranked accordingly. In certain implementations, audience feedback data may identify content that a plurality of audience members wants to be displayed in the presentation, or may identify content that a plurality of audience members wants to be excluded from display in the presentation. As described in relation to
Scorer 210 may be a computer processor for ranking slides stored in content database 202 according to the content ranking performed by feedback aggregator 208. In certain implementations, scorer 210 may rank slides by assigning a score to slides. As an illustrative example of such an implementation, if feedback aggregator 208 assigns a score of one point to a first variety of content and two points to a second variety of content, scorer 210 may assign a slide one point for each item of the first variety included in the slide and two points for each item of the second variety included in the slide. The slides stored in content database 202 may be ranked based on user input or earlier audience feedback when the presentation begins, and scorer 210 may adjust those ranks in response to feedback identified by feedback aggregator 208. As an illustrative example, if feedback aggregator 208 reduces the rank of content being displayed, scorer 210 may reduce the ranking of slides with related content, regardless of whether the slides are featured in the current display path. In certain implementations, rank adjustments generated by scorer 210 may be reversed after the presentation has been completed. Slide ranks, in turn, may affect which display path is selected by path selector 212 or how a display path is changed by path adjustor 214.
Path selector 212 may be a computer processor for selecting a display path stored in path database 204 based on the scores assigned to the content of content database 202. When a presentation can continue down one of at least two display paths, path selector 212 compares the slide rankings associated with the at least two display paths to determine which display path to follow. Path selector 212 may select a display path on the basis of which display path has the highest ranking slide, the highest average slide ranking, the largest cumulative score, or on some other predetermined basis. In certain implementations, path selector 212 may also select a display path based on other predetermined criteria, such as the amount of time available in the presentation and the amount of time a display path is projected to require.
Path adjustor 214 may be a computer processor for adjusting display paths in response to audience feedback, to commands from UI 106, or to some other predetermined condition. In adjusting an existing display path, path adjustor 214 may remove content, replace one item of content with a related item of content, add content, or otherwise alter the display path. Such adjustments may be made in response to a prior display of content, to user feedback, or to some other suitable criteria. In the former case, if an item of content is included in multiple display paths, path adjustor 214 may remove the item from one or more display paths once the item is first provided to output device 104. In certain implementations, such repeated content may be replaced with a predetermined, simplified version of the repeated content. Likewise, if feedback aggregator 208 indicates boredom with present content, path adjustor 214 may simplify or eliminate similar content in current or potential display paths. Conversely, if feedback aggregator 208 indicates interest in present content, path adjustor 214 may add related content to a display path or replace one or more items of related content with more detailed versions of the one or more items. Similarly, in certain implementations path adjustor 214 may add, remove, or replace content from an existing display path based on how much time remains in the presentation. In certain implementations, path adjustor 214 may further generate new display paths entirely.
A new display path may be generated by path adjustor 214 based on content and content scores. In response to at least one predetermined criterion, such as a change of predetermined magnitude in the score of an item of content, an instruction provided through UI 106, feedback aggregator 208 identifying an item of audience feedback data as a question, or some other predetermined criterion, path adjustor 214 may identify a display path consisting of content associated with the at least one criterion. As an illustrative example, in response to feedback aggregator 208 identifying an incoming question as relating to migratory birds, path adjustor 214 may generate a display path comprising one or more items of content associated with the navigational ability of birds. To extend the example, if one of the items of content was displayed earlier, the item may be excluded from the new display path, or may be replaced with similar content featuring a greater or lesser amount of detail. Similar content and the level of detail of content may be identified by user-provided metadata or by another predetermined criterion. In some implementations, the new display path may be based on an existing display path.
Presentation content selection engine 200, in response to instructions provided through UI 106, follows a display path stored in path database 204. Content is provided from content database 202 to output device 104 according to the position along the display path. Communication sensor 206 gathers audience feedback data from feedback providers 108 and provides the audience feedback data to feedback aggregator 208. In response to the feedback, feedback aggregator 208 ranks presentation content, and scorer 210 adjusts slide rankings based on the presentation content rankings Path selector 212 switches display paths based on content scores when the presentation may change display paths. And based on the content provided through output device 104, the response of feedback providers 108, instructions provided through UI 106, the passage of time, or other suitable criteria, path adjustor 214 may adjust an existing display path or create a new display path.
The computing device 300 comprises at least one communications interface unit, an input/output controller 310, system memory, and one or more data storage devices. This can support a network connection such as a connection to network 110 in
The computing device 300 may be configured in a distributed architecture, wherein databases and processors are housed in separate units or locations. Some units perform primary processing functions and contain at a minimum a general controller or a processor and a system memory. In distributed architecture implementations, each of these units may be attached via the communications interface unit 308 to a communications hub or port (not shown) that serves as a primary communication link with other servers, client or user computers and other related devices. The communications hub or port may have minimal processing capability itself, serving primarily as a communications router. A variety of communications protocols may be part of the system, including, but not limited to: Ethernet, SAP, SAS™, ATP, BLUETOOTH™, GSM, and TCP/IP.
The CPU 306 comprises a processor, such as one or more conventional microprocessors and one or more supplementary co-processors such as math co-processors for offloading workload from the CPU 306. CPU 306 The CPU 306 is in communication with the communications interface unit 308 and the input/output controller 310, through which the CPU 306 communicates with other devices such as other servers, user terminals, or devices. The communications interface unit 308 and the input/output controller 310 may include multiple communication channels for simultaneous communication with, for example, other processors, servers, or client terminals.
The CPU 306 is also in communication with the data storage device. The data storage device may comprise an appropriate combination of magnetic, optical, or semiconductor memory, and may include, for example, RAM 302, ROM 304, flash drive, an optical disc such as a compact disc, or a hard disk or drive. The CPU 306 and the data storage device each may be, for example, located entirely within a single computer or other computing device; or connected to each other by a communication medium, such as a USB port, serial port cable, a coaxial cable, an Ethernet cable, a telephone line, a radio frequency transceiver, or other similar wireless or wired medium, or combination of the foregoing. For example, the CPU 306 may be connected to the data storage device via the communications interface unit 308. The CPU 306 may be configured to perform one or more particular processing functions.
The data storage device may store, for example, (i) an operating system 312 for the computing device 300; (ii) one or more applications 314 (e.g., computer program code or a computer program product) adapted to direct the CPU 306 in accordance with the systems and methods described here, and particularly in accordance with the processes described in detail with regard to the CPU 306; or (iii) database(s) 316 adapted to store information that may be utilized to store information required by the program. The depicted database 316 can be any suitable database system, including the commercially available Microsoft Access database, and can be a local or distributed database system. The design and development of suitable database systems are described in McGovern et al., A Guide To Sybase and SQL Server, Addison-Wesley (1993).
The operating system 312 and applications 314 may be stored, for example, in a compressed, an uncompiled and an encrypted format, and may include computer program code. The instructions of the program may be read into a main memory of the processor from a computer-readable medium other than the data storage device, such as from the ROM 304 or from the RAM 302. While execution of sequences of instructions in the program causes the CPU 306 to perform the process steps described herein, hard-wired circuitry may be used in place of, or in combination with, software instructions for implementation of the processes of the present disclosure. Thus, the systems and methods described are not limited to any specific combination of hardware and software.
Suitable computer program code may be provided for performing one or more functions in relation to providing content to an audience as described herein. The program also may include program elements such as an operating system 312, a database management system and “device drivers” that allow the processor to interface with computer peripheral devices (e.g., a video display, a keyboard, a computer mouse, etc.) via the input/output controller 310.
The term “computer-readable medium” as used herein refers to any non-transitory medium that provides or participates in providing instructions to the processor of the computing device 300 (or any other processor of a device described herein) for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media include, for example, optical, magnetic, or opto-magnetic disks, or integrated circuit memory, such as flash memory. Volatile media include dynamic random access memory (DRAM), which typically constitutes the main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM or EEPROM (electronically erasable programmable read-only memory), a FLASH-EEPROM, any other memory chip or cartridge, or any other non-transitory medium from which a computer can read.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to the CPU 306 (or any other processor of a device described herein) for execution. For example, the instructions may initially be borne on a magnetic disk of a remote computer (not shown). The remote computer can load the instructions into its dynamic memory and send the instructions over an Ethernet connection, cable line, or even telephone line using a modem. A communications device local to a computing device 300 (e.g., a server) can receive the data on the respective communications line and place the data on a system bus for the processor. The system bus carries the data to main memory, from which the processor retrieves and executes the instructions. The instructions received by main memory may optionally be stored in memory either before or after execution by the processor. In addition, instructions may be received via a communication port as electrical, electromagnetic or optical signals, which are exemplary forms of wireless communications or data streams that carry various types of information.
As discussed above, a function relating to presenting content can be realized as a software component operating on a conventional data processing system such as a Unix workstation. In that implementation, the function can be implemented as a C language computer program, or a computer program written in any high level language including C++, Fortran, Java or BASIC. See The C++ Programming Language, 2nd Ed., Stroustrup Addision-Wesley. Additionally, in an implementation where microcontrollers or DSPs are employed, the function relating to presenting content can be realized as a computer program written in microcode or written in a high level language and compiled down to microcode that can be executed on the platform employed. The development of such network traffic control systems is known to those of skill in the art, and such techniques are set forth in Digital Signal Processing Applications with the TMS320 Family, Volumes I, II, and III, Texas Instruments (1990). Additionally, general techniques for high level programming are known, and set forth in, for example, Stephen G. Kochan, Programming in C, Hayden Publishing. Developing code for the DSP and microcontroller systems follows from principles well known in the art.
Some implementations of the above described may be conveniently implemented using a conventional general purpose or a specialized digital computer or microprocessor programmed according to the teachings herein, as will be apparent to those skilled in the computer art. Appropriate software coding may be prepared by programmers based on the teachings herein, as will be apparent to those skilled in the software art. Some implementations may also be implemented by the preparation of application-specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art. Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, requests, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Some implementations include a computer program product comprising a computer readable medium (media) having instructions stored thereon/in and, when executed (e.g., by a processor), perform methods, techniques, or implementations described herein, the computer readable medium comprising sets of instructions for performing various steps of the methods, techniques, or implementations described herein. The computer readable medium may comprise a storage medium having instructions stored thereon/in which may be used to control, or cause, a computer to perform any of the processes of an implementation. The storage medium may include, without limitation, any type of disk including floppy disks, mini disks (MDs), optical disks, DVDs, CD-ROMs, micro-drives, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices (including flash cards), magnetic or optical cards, nanosystems (including molecular memory ICs), RAID devices, remote data storage/archive/warehousing, or any other type of media or device suitable for storing instructions and/or data thereon/in. Additionally, the storage medium may be a hybrid system that stored data across different types of media, such as flash media and disc media. Optionally, the different media may be organized into a hybrid storage aggregate. In some implementations different media types may be prioritized over other media types, such as the flash media may be prioritized to store data or supply data ahead of hard disk storage media or different workloads may be supported by different media types, optionally based on characteristics of the respective workloads. Additionally, the system may be organized into modules and supported on blades configured to carry out the storage operations described herein.
Stored on any one of the computer readable medium (media), some implementations include software instructions for controlling both the hardware of the general purpose or specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user and/or other mechanism using the results of an implementation. Such software may include without limitation device drivers, operating systems, and user applications. Ultimately, such computer readable media further includes software instructions for performing implementations described herein. Included in the programming (software) of the general-purpose/specialized computer or microprocessor are software modules for implementing some implementations.
A display path 404 may be generated or altered by receiving commands from a user, which may include the user drawing, deleting, or redirecting an arrow between two items of content 402. In certain implementations, a user may generate or alter a display path without using display path interface 400, such as by typing a command, uploading an ordered list of display path content to path database 204, or by generating some other predetermined command establishing the content and order of a display path. In certain implementations, path adjustor 214 may generate one or more suggested display paths based on content, formatting, metadata, or other suitable information associated with the content stored in slide database 202. In certain implementations, the user may provide an initial ranking of the display paths, which may include designating a default display path for the presentation. In certain implementations, path selector 212 may suggest an initial ranking of the display paths. In certain implementations, path selector 212 may modify the ranking of the display paths.
Once the slides, the slide metadata, and the presentation requirements have been identified, step 804 identifies at least one candidate display path, which may include path adjustor 214 identifying the at least one candidate display path based on the content and the metadata associated with the at least one slide, or the user identifying the at least one candidate display path in UI 106. Step 805 determines whether the at least one candidate path is acceptable, in some implementations by detecting whether the user has provided a command to change the at least one candidate path through UI 106. If a candidate path is unacceptable, the user may revise the unacceptable candidate path in step 806 and return to step 805; otherwise, the process is complete, and the presentation may be displayed.
In step 904, feedback aggregator 208 scores content based on the audience feedback data as described in relation to
While various implementations of the present disclosure have been shown and described herein, it will be obvious to those skilled in the art that such implementations are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the disclosure. For example, presentation content within slides may be altered in response to audience feedback data, or an all-audio presentation may be modified based on the number of people on a dance floor. It should be understood that various alternatives to the implementations of the disclosure described herein may be employed in practicing the disclosure. An implementation of the systems and methods described herein may be made independently of or combined with another implementation. It is intended that the following claims define the scope of the disclosure and that methods and structures within the scope of these claims and their equivalents be covered thereby.
The method of the present invention may be performed in either hardware, software, or any combination thereof, as those terms are currently known in the art. In particular, the present method may be carried out by software, firmware, or microcode operating on a computer or computers of any type. Additionally, software embodying the present invention may comprise computer instructions in any form (e.g., source code, object code, interpreted code, etc.) stored in any computer-readable medium (e.g., ROM, RAM, magnetic media, punched tape or card, compact disc (CD) in any form, DVD, etc.). Furthermore, such software may also be in the form of a computer data signal embodied in a carrier wave, such as that found within the well-known Web pages transferred among devices connected to the Internet. Accordingly, the present invention is not limited to any particular platform, unless specifically stated otherwise in the present disclosure.