Generation and management of multi-location data blocks
The system addresses flexibility and efficiency issues in digital content management by using multi-location data blocks to embed and manage content across devices, enhancing adaptability and reducing resource consumption.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-11-15
- Publication Date
- 2026-04-02
AI Technical Summary
Existing digital content systems lack flexibility and efficiency due to their reliance on traditional file and folder structures, requiring multiple copies of content items across devices, excessive computational resources for interaction, and rigid application dependencies.
A system that generates and manages multi-location data blocks using block identifiers and source identifiers to embed content items across multiple devices without copying, allowing for flexible, adaptive visualization and interaction through a virtual space platform.
Enhances flexibility by enabling simultaneous access and modification of content across devices, reducing computational overhead by eliminating the need for multiple copies and application switching, and optimizing resource usage.
Smart Images

Figure 0007839947000001 
Figure 0007839947000002 
Figure 0007839947000003
Abstract
Description
Technical Field
[0001] (Cross - Reference to Related Applications) This application claims priority and benefit of U.S. Patent Application No. 18 / 193,097, filed on March 30, 2023, U.S. Patent Application No. 18 / 193,107, filed on March 30, 2023, and U.S. Patent Application No. 18 / 193,124, filed on March 30, 2023. Each of the foregoing applications is hereby incorporated by reference in its entirety.
Background Art
[0002] Advances in computing devices and networking technologies have brought about various innovations in the storage and access of cloud - based digital content. For example, online digital content systems can provide access to digital content items across devices worldwide. Existing systems can also synchronize changes to shared digital content among different types of devices operating on different platforms. In fact, modern online digital content systems can provide access to digital content for users to collaborate across diverse physical locations and across diverse computing devices. However, despite these advances, existing digital content systems continue to have many drawbacks, particularly in terms of flexibility and efficiency.
[0003] As mentioned earlier, some existing digital content systems lack flexibility. In particular, many existing systems are rigidly tied to the traditional paradigm of storing and managing content items using files and folders that are often associated with specific applications or platforms. For example, some existing systems require the use of applications corresponding to file types to access or modify specific file types (or other content items such as websites). In addition, existing systems often require different devices to store and maintain individual copies of content items in order to view or interact with them. Even cloud-based systems that store centralized content items accessible by multiple devices still strictly present the same representation of content items across all access devices, regardless of account-specific contextual data.
[0004] Many existing digital content systems are also inefficient, at least in part, due to their lack of flexibility. More specifically, because many existing systems rely on traditional files and folders to interact with content items, these systems often require generating and storing numerous copies of a single content item throughout its lifespan. For example, a single content item that is part of a collaborative effort across multiple devices in some existing systems requires a copy of the content item's version to each collaborating device. While many existing systems use cloud-based storage to centralize access to content items, even some cloud-based systems require copying the content item (copying its entire data content) to each new location (e.g., a new folder) where the content item is moved or accessed. The computational cost of moving and / or copying content items is particularly pronounced in systems that store and manage many terabytes of content items across many devices and user accounts. Copying and storing such a large number of content items consumes an excessive amount of computing power, memory, and storage that could be saved in a more efficient system.
[0005] Another example of these inefficiencies is that some existing digital content systems require running different computer applications to access and interact with different content items. More specifically, as mentioned above, some systems require dedicated applications to access specific types of content items (e.g., specific file formats). As a result, these existing systems often require an excessive number of user interactions, switching between interfaces and applications, to interact with different content items. Handling such a large number of interactions wastes computer resources that could be saved with a more efficient interface. Furthermore, running many applications simultaneously for different types of content items consumes excessive computer resources.
[0006] Therefore, existing digital content systems have several drawbacks. [Overview of the project]
[0007] This disclosure describes a system, method, and one or more embodiments of a non-temporary computer-readable storage medium that provide advantages and / or solve one or more of the aforementioned problems and other problems in the art. For example, the disclosed system generates and manages content items using a novel data structure in the form of multilocation data blocks. In some embodiments, the disclosed system generates multilocation data blocks as data entities or data elements that can simultaneously exist in multiple computer locations (e.g., virtual spaces) on a single device and / or across multiple devices. For example, the disclosed system generates a multilocation data block that includes a block identifier associated with a source identifier and embeds digital content from the network location indicated by the source identifier. The disclosed system can also generate or determine (and store) one or more block configurations, block types, conversation threads, and / or task lists for each multilocation data block (or as part thereof). Furthermore, the disclosed system can identify a content renderer for rendering the digital content embedded within the multilocation data blocks (according to the block configuration) based on one or more application integrations.
[0008] The disclosed system also provides a system, method, and non-temporary computer-readable storage medium for generating and summarizing content blocks within a virtual space interface. For example, the disclosed system can generate a virtual space interface that includes content blocks as modifiable subwindows, and allows the digital content embedded within these content blocks to be presented and modified via block identifiers and source identifiers. The disclosed system can also provide a summarization element for display within the virtual space interface, which is optional to generate a block summary from the digital content embedded within the content blocks. For example, the disclosed system can generate a block summary using a large-scale language model, and can replace the presentation of content within a content block with the corresponding block summary.
[0009] Furthermore, the disclosed system further provides a system, method, and non-temporary computer-readable storage medium for generating and providing a content block browser as part of a virtual space platform. For example, the disclosed system can provide a content block-based web browser in the form of a virtual space that includes embedded content blocks integrating web page functionality. In some embodiments, the disclosed system provides a virtual space that includes several content blocks integrating web page functionality and other content blocks integrating digital content from other (non-web page) content items, such as content items stored in a content management system. To integrate digital content including web page functionality, the disclosed system can utilize block identifiers for the content blocks, which are associated with source identifiers that refer to network locations storing their respective content items (e.g., web pages). [Brief explanation of the drawing]
[0010] This disclosure describes one or more exemplary implementations of the system and method, with additional specificity and detail, by reference to the accompanying drawings. The following paragraphs briefly describe these drawings.
[0011] [Figure 1] Figure 1 shows a schematic diagram of an exemplary environment of a content block system according to one or more embodiments.
[0012] [Figure 2] Figure 2 shows an exemplary overview of generating and managing multi-location data blocks according to one or more embodiments.
[0013] [Figure 3] Figure 3 shows an exemplary multi-location data block that can be embedded in multiple virtual spaces according to one or more embodiments.
[0014] [Figure 4] Figure 4 shows an exemplary diagram for determining application integration and content renderers for multi-location data blocks, according to one or more embodiments.
[0015] [Figure 5] Figure 5 shows an exemplary multi-location data block, including task identifiers and thread identifiers, according to one or more embodiments.
[0016] [Figure 6] Figure 6 shows an exemplary diagram of modifying content items at a server location using a bidirectional change channel, according to one or more embodiments.
[0017] [Figure 7] Figure 7 shows an exemplary flowchart of a series of operations for generating and managing multi-location data blocks according to one or more embodiments.
[0018] [Figure 8] Figure 8 shows an exemplary overview of generating a block summary for a content block according to one or more embodiments.
[0019] [Figure 9] Figure 9 illustrates an exemplary spatial summary interface according to one or more embodiments.
[0020] [Figure 10] Figure 10 shows an exemplary virtual space interface for adding a new content block according to one or more embodiments.
[0021] [Figure 11A] Figure 11A shows an exemplary virtual space interface for modifying a content block and generating a block summary according to one or more embodiments. [Figure 11B] Figure 11B shows an exemplary virtual space interface for modifying a content block and generating a block summary according to one or more embodiments.
[0022] [Figure 12A] Figure 12A shows an exemplary virtual space interface for adding a task list or communication thread to a content block according to one or more embodiments. [Figure 12B] Figure 12B shows an exemplary virtual space interface for adding a task list or communication thread to a content block according to one or more embodiments.
[0023] [Figure 13] Figure 13 shows an exemplary virtual space interface for content block search according to one or more embodiments.
[0024] [Figure 14]Figure 14 shows an exemplary virtual space interface for modifying the visual characteristics of content blocks and linking content blocks to a virtual meeting, according to one or more embodiments.
[0025] [Figure 15] Figure 15 shows an exemplary application integration interface according to one or more embodiments.
[0026] [Figure 16] Figure 16 shows an illustrative diagram of changing the content blocking permission settings according to one or more embodiments.
[0027] [Figure 17] Figure 17 shows an exemplary comparison of spatial summarization interfaces according to one or more embodiments.
[0028] [Figure 18] Figure 18 shows an exemplary flowchart of a series of operations for generating a block summary for a content block, according to one or more embodiments.
[0029] [Figure 19] Figure 19 shows an exemplary overview of generating and managing a virtual space interface for a content block browser, according to one or more embodiments.
[0030] [Figure 20] Figure 20 shows an illustrative diagram of modifying a web page at a server location based on changes to content blocks, according to one or more embodiments.
[0031] [Figure 21] Figure 21 shows an exemplary diagram of embedding content items from different server locations into their respective content blocks, according to one or more embodiments.
[0032] [Figure 22] Figure 22 shows an exemplary diagram for determining the application integration and content renderer for a content block, according to one or more embodiments.
[0033] [Figure 23] Figure 23 shows an exemplary diagram for generating and providing a block preview according to one or more embodiments.
[0034] [Figure 24] Figure 24 shows an exemplary flowchart of a series of operations for generating and managing a virtual space interface for a content block browser, according to one or more embodiments.
[0035] [Figure 25] Figure 25 shows a block diagram of an exemplary computing device according to one or more embodiments.
[0036] [Figure 26] Figure 26 shows an exemplary environment of a networking system having a content block system according to one or more embodiments. [Modes for carrying out the invention]
[0037] This disclosure describes one or more embodiments of a content block system that utilizes a novel data infrastructure for multi-location data blocks to generate and manage digital content through multi-location data blocks, generate and summarize digital content of multi-location data blocks, and / or provide a virtual space platform for a content block web browser based on multi-location data blocks. This disclosure separates the discussion into comprehensive topics according to the various functions or capabilities of the content block system, although the content block system may also combine functions from each (or subset) of the topic discussion. The following paragraphs provide an overview or introduction of each of the following concepts, in the order of i) generation and management of multi-location data blocks, ii) generation and summarization of content blocks in a virtual space interface, and iii) a virtual space platform for a content block browser. Thereafter, additional details on each of the main topics are provided in conjunction with the figures. Overview of generating and managing multi-location data blocks
[0038] To generate and manage multi-location data blocks, a content block system can generate data entities or data structures for the multi-location data block, including block identifiers and source identifiers. For example, a content block system can generate a block identifier that represents or indicates a multi-location data block (stored in a specific server location), and this block identifier can be further linked or associated with a source identifier that references the server location storing the content items to be embedded within the multi-location data block. In fact, a content block system can generate a source identifier as a data element that associates a server location storing content items with one or more multi-location data blocks that include a block identifier that references the source identifier. By using the block identifier to reference the source identifier, a content block system can incorporate digital content items stored in a server location into a multi-location data block (without copying or moving the actual data of the content items from that server location to the server location of the multi-location data block).
[0039] In some cases, the content block system generates a multilocation data block that includes a block type in addition to a block identifier and a source identifier. For example, the content block system determines a block type that indicates a particular type or format of content items that are incorporated or embedded within a multilocation data block. In some cases, the content block system defines a block type based on a server location indicated by a source identifier associated with a block identifier. In these and other cases, the content block system may also determine multiple block configurations for a single multilocation data block, each block configuration which may be defined by changing the visual characteristics (e.g., size, position, shape, and color) of the multilocation data block in virtual space through user interaction on each client device. In some embodiments, when the content block system further generates a multilocation data block, it may include a thread identifier that refers to a stored communication thread associated with the multilocation data block (referring to a server location), and / or a task identifier that refers to a stored task list associated with the multilocation data block (referring to a server location).
[0040] In one or more embodiments, a content block system can embed a multi-location data block into multiple virtual spaces simultaneously using a single block identifier (without copying or moving the stored content items from its server location). More specifically, the content block system can incorporate content items from a server location by using a single multi-location data block having its block identifier and associating a source identifier referencing the server location with the block identifier. Thus, the content block system can enable multiple client devices to display a virtual space in which they each present or display a content item within the same multi-location data block (in their own visual representation) without copying or moving the content item from its server location. In some cases, the content block system can further receive instructions from a client device for user interaction that modifies the digital content presented via the multi-location data block and propagate those changes to the corresponding content items stored in the server location. Overview of content block generation and summarization within the virtual space interface
[0041] As described above, in certain embodiments, the content block system can generate and summarize content blocks within a virtual space interface. Specifically, the content block system can provide a virtual space interface containing content blocks and contextual data of user accounts associated with all content blocks, all within a single interface. For example, the content block system can provide tools within the virtual space interface for manipulating content blocks (e.g., multi-location data blocks) that incorporate content items from various content sources or server locations (and / or for various different computer applications), including web pages, device storage, and / or cloud-based storage of a content management system. Such operations include rearranging blocks, adding / deleting blocks, resizing blocks, changing the color of blocks, adding / deleting user accounts that can access blocks, and changing the permission settings of blocks.
[0042] In some embodiments, the content block system can further generate block summaries of content blocks. For example, the content block system can extract digital content from content blocks (e.g., from server locations referenced by source identifiers) and provide it to a large language model. Furthermore, the content block system can utilize a large language model to generate block summaries of the digital content contained within content blocks. In some cases, the content block system can further replace the presentation of digital content within a content block with a block summary, as shown in the virtual space interface. In some embodiments, the content block system can also generate multi-block summaries of multiple content blocks, spatial summaries of content blocks in a particular virtual space, and / or thread summaries of communication threads associated with one or more content blocks (e.g., using a large language model). In some cases, the content block system generates user account-specific summaries (e.g., block summaries, multi-block summaries, spatial summaries, and / or thread summaries) based on user account interactions.
[0043] In one embodiment, a content block system can generate block suggestions. For example, a content block system can utilize a block suggestion machine learning model to generate block suggestions and can provide selectable block suggestion elements to add new content blocks for suggestion blocks within a virtual space interface. In fact, a content block system can generate block suggestions based on behaviors or interactions associated with a user account, including sharing, clicking, modifying, viewing, and other interactions with content blocks (or other content items).
[0044] The content blocking system can also set and determine blocking permissions. For example, when embedding a content block within a virtual space interface, the content blocking system can determine the permission settings associated with the content items embedded in the content block (e.g., those from an external content source or external application). The content blocking system can also incorporate and apply external permission settings to the content block within the virtual space to allow and restrict various access and functionality of the content block on an account-by-account basis. In some cases, the content blocking system can also change permission settings within an external content source or external application. For example, based on a change in the permission settings of a content block via the virtual space interface, the content blocking system can propagate the permission change to the external application / content source from which the content items originate. Overview of the Content Blocking Browser's Virtual Space Platform
[0045] Furthermore, as mentioned above, a content block system can generate and provide a virtual space platform for a content block browser. More specifically, a content block system can generate a virtual space containing content blocks (e.g., multi-location data blocks) that reference and incorporate content items from their respective server locations (e.g., via block identifiers and source identifiers). For example, a content block system can embed content blocks that integrate the functionality of a web page, which are integrated by including a block identifier linked to a source identifier (referring to the server location hosting the web page). Thus, a content block system can provide a content block-based web browser in which content blocks incorporate the functionality of a web page, and access, navigation, modification, and other operations on the web page can be performed directly within the content block. In some cases, a content block system provides a hybrid virtual space interface in which some content blocks integrate web page functionality (e.g., for different web pages), and other content blocks incorporate content items from other sources, such as a content management system or external applications (e.g., messaging applications, photo editing applications, video calling applications, or calendar applications).
[0046] In one or more embodiments, a content blocking system can modify webpage content based on interaction with a content block. For example, a content blocking system can receive instructions for user interaction that modify content displayed within a content block in a virtual space. Based on this interaction, the content blocking system can further propagate the changes made to the blocked content to the corresponding webpage embedded in or integrated with the content block (e.g., via a bidirectional change channel). In some cases, the content blocking system can also generate and provide a block preview for the content block, which includes the modified content and / or modified functionality for delivery to an external (e.g., third-party) client device with restricted access / permissions.
[0047] As suggested above, through one or more of the embodiments described above (and further described below), content block systems can offer several improvements or advantages over existing digital content systems. For example, content block systems can offer greater flexibility than traditional systems. In fact, while some traditional systems are rigidly tied to storing and managing content items using files and folders associated with a specific application or platform, content block systems generate virtual space platforms that utilize content blocks (e.g., multi-location data blocks) that can adapt, integrate, or embed content items across many systems, applications, and file types. In addition, in contrast to traditional systems that require client devices to store and maintain individual copies of content items, content block systems generate and utilize adaptive multi-location data blocks that can be flexibly embedded simultaneously across multiple virtual spaces using a single block identifier. Even compared to cloud-based systems that present or depict a uniform visualization of centralized content items, content block systems flexibly customize the visualization of content items (e.g., within content blocks) according to contextual data such as user account-specific interactions with content items and visual characteristics specific to each device's virtual space.
[0048] Due to its improved flexibility, at least in part, content block systems can also be more efficient than existing digital content systems. For example, in contrast to traditional systems that rely on traditional files and folders for interacting with content items, content block systems use multi-location data blocks within a virtual space platform to reduce the need to repeatedly copy and / or move content items. In fact, even in collaborative situations where a single content item is shared, modified, and commented on by multiple devices, content block systems can use multi-location data blocks to consolidate content items within the virtual space without copying or moving the content item from its server location. Furthermore, multi-location data blocks can be simultaneously visible, modified, and otherwise manipulated in multiple virtual spaces using a single block identifier (e.g., without the need to copy or create multiple versions of the multi-location data block). Thus, by using multi-location data blocks with these capabilities, content block systems save computing resources that would otherwise be consumed by other systems when copying and / or moving content items between server locations. This saving of computing resources is particularly significant in systems that store and manage many terabytes of content items.
[0049] Another example of this improved efficiency is that content block systems require only a single computer application and / or a single user interface to view, modify, or otherwise interact with integrated content items from various server locations and / or external applications. In fact, while some traditional systems require running many different dedicated applications to interact with different types of content items, content block systems leverage application integration within a virtual space platform to embed content blocks that integrate the content and functionality of external applications. Thus, content block systems not only reduce the inefficiency and computational cost (processing) of navigating an excessive number of user interactions between different applications and interfaces, but they also further reduce the computational cost of running all the content item-specific applications of traditional systems.
[0050] As indicated in the preceding description, this disclosure uses various terms to describe the features and benefits of content blocking systems. Further details regarding the meaning of these terms as used in this disclosure are provided below. As used herein, the term “digital content item” (or simply “content item”) means a digital object or digital file containing information that can be interpreted by a computing device (e.g., a client device) to present information to a user. A digital content item may include files such as digital text files, digital image files, digital audio files, web pages, websites, digital video files, web files, links, digital document files, or any other type of file or digital object. A digital content item may have a specific file type or file format that may differ for different types of digital content items (e.g., digital documents, digital images, digital videos, or digital audio files). In some cases, a digital content item may refer to a remotely stored (e.g., cloud-based) item or link (e.g., a link or reference to a cloud-based item or web-based content item) and / or a content clip that shows (or links / references) a separate selection or segmented sub-part of content from a web page or any other content item or source. Digital content items may be editable or modifiable, and may be shareable from one user account (or client device) to another. In some cases, digital content items may be modified simultaneously and / or at different times by multiple user accounts (or client devices).
[0051] Furthermore, as used herein, the term “virtual space” refers to a computer-based digital environment that includes embedded multilocation data blocks and context data corresponding to those multilocation data blocks. For example, a virtual space includes user account data for user accounts with access to multilocation data blocks, thread data for communication threads associated with multilocation data blocks, task data for task lists associated with multilocation data blocks, meeting data for virtual meetings associated with multilocation data blocks, summary data for block summaries of multilocation data blocks, and / or other context data blocks. In some cases, a virtual space refers to a “virtual space interface” that includes graphical elements representing the multilocation data blocks and other interface elements described herein.
[0052] In relation to this, as used herein, the term “multilocation data block” refers to a data structure, data entity, or data element that can embed digital content presented (or incorporated) within a multilocation data block into multiple virtual spaces simultaneously without moving or copying it. For example, a multilocation data block may refer to a data element that corresponds to (or represents) a “content block” presented for display within a virtual space interface. In fact, a content block may refer to a visualization of a multilocation data block, and the multilocation data block contains the underlying data for defining the presentation of the digital content within the content block. A multilocation data block may contain multiple data identifiers that point to data elements or computer code that define the digital content to be presented within the content block.
[0053] For example, a multilocation data block may include a “block identifier” that identifies or defines the multilocation data block (or content block) itself. In fact, a content block system can embed a multilocation data block (or content block) within a virtual space by adding the content block’s block identifier to that virtual space. Furthermore, a multilocation data block may include a “source identifier” that indicates or references the network or server location where the digital content is stored. In some cases, the block identifier of a multilocation data block may be linked or combined with a source identifier (or multiple source identifiers) to integrate or embed the digital content referenced by the source identifier into the corresponding content block. By linking the block identifier to the source identifier for embedding the digital content into the content block, a content block system can embed a content block that presents the content item referenced by the source identifier without copying or moving the content item from its server location. Thus, a single multilocation data block can be embedded simultaneously (using block identifiers) in multiple virtual spaces without copying or moving the data for the displayed content.
[0054] In some embodiments, the content block system may also determine or generate thread identifiers and / or task identifiers for multilocation data blocks (or content blocks). As used herein, “thread identifier” refers to a data element that references a communication thread stored in a server location for incorporation into a multilocation data block (or content block). Furthermore, the term “task identifier” refers to a data element that references a task list stored in a server location for incorporation into a multilocation data block (or content block). In some cases, the content block system links block identifiers to source identifiers, thread identifiers, and / or task identifiers to incorporation the corresponding digital content into a multilocation data block (or content block). In some embodiments, the content block system associates thread identifiers and / or task identifiers with multilocation data blocks, virtual spaces, and / or sections without virtual spaces.
[0055] In one embodiment, the content block system determines the block configuration of a multilocation data block (or content block). As used herein, the term “block configuration” refers to computer code that defines the visual characteristics of the multilocation data block (or content block). For example, the content block system may define a virtual space to include one or more block identifiers corresponding to each content block, and / or to include the block configurations corresponding to the content blocks. In connection with this, the content block system may determine the block type of a multilocation data block (or content block). As used herein, the term “block type” refers to the type or format of a multilocation data block (or content block). For example, the block type may refer to a server location that hosts (and defines the parameters of) the content items referenced by the block identifiers. In fact, the content block system may define a multilocation data block to include or reference a block type. Exemplary block types include: i) native block types that are native to the content block system (or virtual space platform) and do not integrate content items from external server locations; ii) external block types that include a block identifier associated with a source identifier that references or incorporates content items from external server locations; and / or iii) browser block types that integrate the digital content and functionality of a web page into a multi-location data block (or content block). In some cases, the content block system generates a JSON file to define the content and behavior of native content blocks.
[0056] In one or more embodiments, the content block system utilizes application integration to render digital content and / or to incorporate functionality related to external applications for viewing and modifying content items. As used herein, the term “application integration” refers to computer applications that are linked, connected, or integrated within a virtual space. For example, application integration may include all or part of an external application (e.g., the content editing or content viewing portion of an application) that is integrated into the virtual space to view and interact with content items (e.g., content items specific to an external application). In some cases, the content block system utilizes application integration in forming a content renderer. In fact, “content renderer” may refer to a data entity or computer code that is integrated into (or added to) the virtual space to render content items. Specifically, the content block system may identify a content renderer suitable for rendering a multilocation data block (or content block) within the virtual space according to the block type (e.g., an external block operable via an external application) and / or the block configuration associated with the multilocation data block (or content block).
[0057] As described above, the content blocking system can use one or more machine learning models to generate block summaries and block suggestions. As used herein, the term “machine learning model” refers to a computer algorithm or set of computer algorithms that automatically improve a particular task by iterative output or prediction based on the use of data. For example, a machine learning model may utilize one or more learning techniques to improve accuracy and / or effectiveness. Exemplary machine learning models include various types of neural networks, decision trees, support vector machines, linear regression models, and Bayesian networks. As will be described in more detail below, the content blocking system utilizes a “block suggestion machine learning model” that can generate block suggestions based on user account behavior, including interactions with content items.
[0058] Related to this, the term “neural network” refers to a machine learning model that can be trained and / or tuned based on inputs to determine classifications, scores, or approximations of unknown functions. For example, a neural network includes a model of interconnected artificial neurons (e.g., arranged in layers) that communicate with each other, approximate complex functions, and learn to produce outputs (e.g., block summaries) based on multiple inputs provided to the neural network. In some cases, a neural network refers to an algorithm (or set of algorithms) that implements deep learning techniques for modeling higher-order abstractions in data. A neural network can include various layers such as an input layer, one or more hidden layers, and output layers, each performing a task for processing the data. For example, a neural network can include a deep neural network, a convolutional neural network, a recurrent neural network (e.g., LSTM), a graph neural network, or a generative adversarial neural network. When trained as described below, such a neural network can become a content clustering neural network.
[0059] As used herein, the term “application session” (or sometimes simply “session”) refers to an instance of use within a client application or within a particular collection, folder, or content item that uses a client application. For example, an application session refers to a set of activities performed within a single login to an application of a client application or a content management system. Another example is an application session referring to a set of activities performed within a single visit to an application or a single access to a content collection or folder. In some cases, a session requires login, while in other cases, a session does not require login and instead refers to an instance of use between closing or termination (of an application or web page) or between visits separated by at least a threshold time (or isolated by device power off or sleep mode).
[0060] Here, additional details regarding the content block system are provided with reference to the drawings. For example, Figure 1 shows a schematic diagram of an exemplary system environment for implementing the content block system 102 in one or more implementation forms. An overview of the content block system 102 is described in relation to Figure 1. Subsequently, a more detailed description of the components and processes of the content block system 102 is provided in relation to the following figures.
[0061] As shown in the diagram, the environment includes a server 104, client devices 108a-108n, a database 114, an external system 116, and a network 112. Each component of the environment can communicate via the network 112, which can be any suitable network on which computing devices can communicate. An exemplary network is described in more detail below in relation to Figures 25-26.
[0062] As described above, the exemplary environment includes client devices 108a-108n. Client devices 108a-108n may be one of a variety of computing devices, including smartphones, tablets, smart TVs, desktop computers, laptop computers, virtual reality devices, augmented reality devices, or other computing devices as described in relation to Figures 25-26. Client devices 108a-108n can communicate with server 104 and / or database 114 via network 112. For example, client devices 108a-108n can receive user input from a user interacting with client devices 108a-108n (e.g., via client application 110) to access, generate, modify, or share content items, collaborate with co-users on different client devices, or select user interface elements. Furthermore, the content block system 102 on server 104 can receive information about various interactions with content items and / or user interface elements based on input received by client devices 108a~108n (for example, to access content items, to interact with content blocks, or to perform some other action).
[0063] As shown in the figure, client devices 108a to 108n may include a client application 110. Specifically, the client application 110 may be a web application, a native application installed on client devices 108a to 108n (e.g., a mobile application, a desktop application, etc.), or a cloud-based application in which all or part of the functionality is performed by the server 104. Based on instructions from the client application 110, client devices 108a to 108n may present or display information, including a user interface that includes a virtual space for presenting content from an external application (e.g., from an external system 116) and / or from a content management system 106.
[0064] As shown in Figure 1, the exemplary environment also includes a server 104. Server 104 can generate, track, store, process, receive, and transmit electronic data such as digital content items, content blocks, interface elements, interactions with digital content items, interactions with interface elements, and / or interactions between user accounts or client devices. For example, server 104 may receive data from client devices 108a-108n in the form of a selection of specific content blocks that integrate content items. Furthermore, server 104 can transmit data to client devices 108a-108n in the form of content blocks, block summaries, block proposals, virtual space interfaces, or any other information. In fact, server 104 can communicate with client devices 108a-108n to transmit and / or receive data over network 112. In some implementations, server 104 comprises a distributed server, which is distributed across network 112 and includes several server devices located in different physical locations. Server 104 may include one or more content servers, application servers, communication servers, web hosting servers, machine learning servers, and other types of servers.
[0065] As shown in Figure 1, the server 104 may also include a content block system 102 as part of the content management system 106. The content management system 106 can communicate with client devices 108a-108n to perform various functions related to the client application 110, such as managing user accounts, managing content collections, managing content items, and facilitating user interaction with content collections and / or content items. In fact, the content management system 106 may include a network-based smart cloud storage system for managing, storing, and maintaining content items and associated data across multiple user accounts, including user accounts that collaborate with each other. In some embodiments, the content block system 102 and / or the content management system 106 utilize a database 114 to store and access information such as digital content items, block identifiers, source identifiers, thread identifiers, task identifiers, block types, and block configurations.
[0066] Figure 1 further illustrates the external system 116. Specifically, the external system 116 can store or host content items that can be embedded within a multi-location data block (or content block). For example, the external system 116 may include a server location that hosts web pages and / or a computer application (e.g., a messaging application, a photo editing application, or a calendar application) that is outside the content block system 102. In some cases, the external system 116 is outside the content block system 102 in the sense that the external system 116 and the content block system 102 are located at different server locations, and / or that the content block system 102 does not (natively) host or maintain the functionality of the external system 116.
[0067] Figure 1 shows a content block system 102 deployed on server 104, but in some implementations, the content block system 102 may be implemented by one or more other components of the environment (e.g., deployed entirely or partially). For example, the content block system 102 may be implemented by client devices 108a-108n and / or third-party devices. For example, client devices 108a-108n may download all or part of the content block system 102 to be implemented independently of server 104 or together with server 104.
[0068] In some implementations, not shown in Figure 1, the environment may have different arrangements of its components and / or different numbers or sets of components as a whole. For example, client devices 108a-108n may bypass network 112 and communicate directly with content block system 102. As another example, the environment may include a database 114 located outside of server 104 (e.g., communicating via network 112), or located on server 104, located on external system 116, and / or located on client devices 108a-108n.
[0069] As described above, the content block system 102 can perform methods or functions relating to i) the generation and management of multi-location data blocks, ii) the generation and summarization of content blocks within a virtual space interface, and iii) the management of a virtual space platform for a content block browser. The following description separates the discussion and corresponding diagrams for each of these four concepts into individual sections, each with its own heading. These sections are divided for clarity, but the content block system 102 is not limited in its functions or performance by such division or separation. Rather, the content block system 102 can perform all or some of the actions or methods relating to one or more of the following sections, separately or in combination. In fact, some of the following sections may borrow from other sections or rely on the descriptions in other sections. Generation and management of multi-location data blocks
[0070] As described above, in certain described embodiments, the content block system 102 generates and manages multi-location data blocks. More specifically, the content block system 102 can generate multi-location data blocks that include, or are represented by, a block identifier and / or one or more other identifiers that integrate content items within the multi-location data block. For example, the content block system 102 can generate a multi-location data block that includes a block identifier that references a source identifier of a server location hosting the content items to be integrated. Figure 2 provides an exemplary overview of generating and managing multi-location data blocks according to one or more embodiments. Further details regarding the various concepts in Figure 2 will be provided later with reference to subsequent figures.
[0071] As shown in Figure 2, the content block system 102 generates a multi-location data block 202. Specifically, the content block system 102 generates the multi-location data block 202 to include a block identifier 204. For example, the content block system 102 generates a block identifier 204 and further associates or links the block identifier 204 with a source identifier 206. In some cases, the content block system 102 generates the multi-location data block 202 to include a source identifier 206, while in other embodiments (e.g., embodiments where the multi-location data block 202 is a native block that does not reference content items from an external server location), the content block system 102 generates the multi-location data block 202 without a source identifier 206. In fact, for native blocks such as communication thread blocks and task list blocks, the content block system 102 can generate the multi-location data block 202 to directly integrate digital content from within the content block system 102 (or from the content management system 106).
[0072] As shown in the figure, the content block system 102 generates a multi-location data block 202 so that it can be simultaneously embedded in multiple virtual spaces. More specifically, the content block system 102 simultaneously embeds the multi-location data block 202 in a first virtual space on client device 210a, a second virtual space on client device 210b, and a third virtual space on client device 210c. In fact, the content block system 102 requires only a single multi-location data block 202 and a single block identifier 204 to simultaneously embed content items in the virtual spaces on each client device.
[0073] To embed a multi-location data block 202 within each virtual space, the content block system 102 uses a block identifier 204 to reference or specify the multi-location data block 202. For example, the content block system 102 sends and / or receives a block identifier 204 to embed a multi-location data block 202 in response to a request. In some cases, the content block system 102 receives an embedding request from a client device (e.g., client device 210a) that includes a request for a block identifier 204 indicating a multi-location data block 202. The content block system 102 then provides the block identifier 204 associated with a source identifier 206. By associating or linking the block identifier 204 with the source identifier 206, the content block system 102 can embed digital content items from the server location 208 within the multi-location data block 202 for display on the client device.
[0074] More specifically, the content block system 102 parses the block identifier 204 to determine the source identifier 206 that is linked to or associated with the block identifier 204. Specifically, the content block system 102 parses the source identifier 206 to determine or identify the server location 208 (e.g., URL) that hosts or stores the content item. For example, the content block system 102 identifies the server location 208 as a web page server or a server for an external application. The content block system 102 further provides the content item for display as part of the multi-location data block 202 by accessing and transmitting the content item using the source identifier 206. In some cases, the content block system 102 requires internet access to maintain interaction and / or presentation of the content item from the server location 208. In other cases, the content block system 102 can download or provide the content item to a client device (e.g., client device 210a) via the source identifier 206 to facilitate offline access.
[0075] As described above, in certain described embodiments, the content block system 102 determines multiple block configurations for a multi-location data block. Specifically, the content block system 102 determines different block configurations for the same multi-location data block based on user interactions that define the visual characteristics of the multi-location data block in each virtual space. Figure 3 shows an exemplary diagram for determining and adapting different block configurations for a multi-location data block according to one or more embodiments.
[0076] As shown in Figure 3, the content block system 102 identifies or determines a multi-location data block 302 to be embedded in the virtual space of a client device. More specifically, the content block system 102 identifies the multi-location data block 302 stored in a server location of the content block system 102, such as a database 304. In some cases, the content block system 102 determines the multi-location data block 302 as a block requested or embedded by client devices 308a, 308b, and 308c via a block identifier 306. Furthermore, the content block system 102 determines multiple block configurations for the multi-location data block 302, even if the multi-location data block 302 has only a single block identifier 306 (and / or a single source identifier). As shown in the figure, the content block system 102 determines block configuration A for client device 308a, block configuration B for client device 308b, and block configuration C for client device 308c.
[0077] To determine the block configuration, the content block system 102 may receive or detect user interaction settings for the visual characteristics of the multi-location data block 302. For example, the content block system 102 may receive user interaction instructions that define the size (e.g., height and width dimensions), location, color, and / or shape of the multi-location data block 302. In some embodiments, the content block system 102 determines the block configuration by determining different sets of visual characteristics for the multi-location data block 302. In some cases, the content block system 102 receives or determines different visual characteristics for different block configurations. For example, the content block system 102 may receive an interaction from client device 308a that defines block configuration A, an interaction from client device 308b that defines block configuration B, and / or an interaction from client device 308c that defines block configuration C. Therefore, the content block system 102 can store all multi-location data blocks 302 in the database 304 as separate data entities from each virtual space-specific (or account-specific or device-specific) block configuration.
[0078] As described above, in certain embodiments, the content block system 102 determines and utilizes application integration to facilitate rendering, modification, or other interaction with content items embedded in multi-location data blocks. Specifically, the content block system 102 integrates a computer application (or a specific function thereof) to facilitate interaction with multi-location data blocks that are associated with or compatible only with a specific application. Figure 4 shows an exemplary diagram for determining application integration for a virtual space according to one or more embodiments.
[0079] As shown in Figure 4, the content block system 102 provides a multi-location data block 404 for display on the client device 402. Specifically, the content block system 102 embeds the multi-location data block 404 within a virtual space presented or displayed on the client device 402. In some embodiments, the content block system 102 embeds the multi-location data block 404 which includes a block identifier 412 and a block type 406 (or is otherwise associated therewith). In fact, the content block system 102 determines the block type 406 corresponding to the block identifier 412. For example, the content block system 102 determines the block type 406 in response to receiving the block identifier 412 from the client device 402 (for example, in response to receiving a request to present the multi-location data block 404).
[0080] Based on block type 406, the content block system 102 determines or selects a content renderer suitable for rendering the multi-location data block 404 in order to display it on the client device 402. More specifically, the content block system 102 accesses a content renderer repository 410 that stores multiple content renderers for rendering different types of multi-location data blocks. In some cases, the content block system 102 determines a content renderer to be an application, part of an application, or a computer code segment that triggers or provides the ability to render content items (e.g., content items specific to a particular application) into a virtual space. For example, the content block system 102 may identify and integrate content renderers using application programming interfaces (APIs) associated with a particular computer application.
[0081] In one or more embodiments, the content block system 102 determines the content renderer from the application integration 408. Specifically, the content block system 102 determines whether the virtual space of the client device 402 has linked or incorporated a particular application integration 408 that includes or defines a content renderer that conforms to block type 406 of the multi-location data block 404. In some cases, the content block system 102 may search for, download, and install (or otherwise incorporate) an application integration that conforms to block type 406 from a network location.
[0082] In some embodiments, the content block system 102 determines a suitable content renderer based on identifying an application integration 408 for block type 406. In fact, the content block system 102 can use block type 406 to determine an application integration 408 and use the application integration 408 to identify a content renderer. For example, the content block system 102 accesses a content renderer as part of or a function of the application integration 408. In some cases, the content block system 102 identifies a suitable content renderer from the content renderer repository 410 based on the application integration 408 (and / or block type 406).
[0083] For example, the content block system 102 identifies a content renderer that is suitable for (or part of) the application integration 408 from a content renderer repository 410 that stores content renderers for different block types and / or different application integrations. Thus, the content block system 102 can embed, incorporate, download, provide, or otherwise utilize a content renderer for the multilocation data block 404 in order to present the multilocation data block 404 in a virtual space on the client device 402. In this way, the content block system 102 can use a block type-specific content renderer and provide or present the multilocation data block 404 for display according to the block configuration.
[0084] As described above, in certain embodiments described, the content block system 102 generates and manages thread identifiers and task identifiers for multi-location data blocks. Specifically, the content block system 102 can generate task identifiers for task threads linked to multi-location data blocks and can generate thread identifiers for communication threads linked to multi-location data blocks. Figure 5 shows an exemplary diagram of generating and maintaining thread identifiers and task identifiers according to one or more embodiments.
[0085] As shown in Figure 5, the content block system 102 provides a multi-location data block 504 for display on the client device 502. Specifically, the content block system 102 provides a multi-location data block 504 for display in a virtual space presented on the client device 502. In some embodiments, the content block system 102 generates the multi-location data block 504 to include information other than pixels (or added to pixels) for the visualization of content items (e.g., images of cars). In fact, as shown, the content block system 102 generates and provides a task list 506 and / or communication threads 508 within (or as part of) the multi-location data block 504.
[0086] For example, the content block system 102 provides a task list 506 and a communication thread 508 as interactive components of a multi-location data block 504, which is associated with a separate identifier for independent storage and management. More specifically, the content block system 102 generates an interactive task list 506 (independent of the displayed content items) via the client device 502 and / or via other client devices that have access to the multi-location data block 504 in cooperation with the client device 502. Furthermore, the content block system 102 generates a task identifier 510 for the task list 506. Specifically, based on receiving a request to generate the task list 506 (e.g., a user interaction instruction via the client device 502), the content block system 102 generates the task identifier 510 as a data object to maintain the task list 506 and / or update the task list 506 based on interaction with the task list 506.
[0087] Furthermore, the content block system 102 generates an interactive communication thread 508 (independent of the displayed content item) via the client device 502 and / or other client devices that have access to the multi-location data block 504 in cooperation with the client device 502. The content block system 102 further generates a thread identifier 512 for the communication thread 508. More specifically, the content block system 102 generates the thread identifier 512 as a data object in order to maintain the communication thread 508 separately from the task list 506 and / or content items. The content block system 102 can further modify the communication thread 508 by updating the thread identifier 512 in response to user interaction with the communication thread 508.
[0088] Therefore, as shown in Figure 5, the content block system 102 can generate and maintain a multilocation data block 504 that includes (or is associated with) a block identifier 514 (for defining the multilocation data block 504 and linking it to content items via a source identifier 516), a source identifier 516 (if the multilocation data block 504 is a non-native block), a thread identifier 512, and a task identifier 510. In some cases, the content block system 102 links or associates the block identifier 514 with the source identifier 516, the thread identifier 512, and / or the task identifier 510. Thus, the content block system 102 can embed the multilocation data block 504 in virtual space along with its referenced content items, communication threads 508, and task list 506 by using (e.g., providing or transmitting) a single block identifier 514 (which includes computer code that references other identifiers for incorporating their respective digital content).
[0089] As described above, in certain embodiments, the content block system 102 updates or modifies content items at its server location based on interaction with a multi-location data block. Specifically, the content block system 102 can receive instructions from user interaction with a multi-location data block to modify a displayed content item, and the content block system 102 can propagate the changes to the server location of the content item via a bidirectional change channel. Figure 6 shows an exemplary diagram of modifying a content item at a server location using a bidirectional change channel, according to one or more embodiments.
[0090] As shown in Figure 6, the content block system 102 provides a multi-location data block 602 for display on the client device 604. More specifically, the content block system 102 provides the multi-location data block 602 by providing a block identifier 606 linked to a source identifier 608 that references a content item in forming a digital image of the car (for example, stored in server location 612). In fact, the content block system 102 uses the source identifier 608 to access and incorporate the image of the car, retrieves data from server location 612, and uses a content renderer to render the pixels of the image of the car (for example, from application integration). Compared to the car shown in Figure 5, the car in the multi-location data block 602 has a different color or shading. In fact, the content block system 102 receives user interaction instructions via the client device 604 to modify the image of the car (for example, change the color / shading).
[0091] In response to user interaction, the content block system 102 not only updates the visualization of the multi-location data block 602 in the virtual space of the client device 604, but also propagates the changes to the server location 612. For example, the content block system 102 establishes or generates a bidirectional change channel 610 (e.g., via a network connection) to send or propagate changes to content items to and from the server location 612. In some cases, the content block system 102 therefore uses the bidirectional change channel 610 to update the image of the car stored in the server location 612 according to changes made via user interaction with the multi-location data block 602. In these and other cases, the content block system 102 further uses the bidirectional change channel 610 to update the visualization of the car image in the multi-location data block 602 based on detecting a new version or update to the content item stored in the server location 612 (e.g., based on changes made via another client device in cooperation with client device 604).
[0092] Figures 1 to 6, the corresponding text, and the embodiments provide several different systems and methods for generating and managing multi-location data blocks according to one or more embodiments. In addition to the foregoing, implementation forms may be described in the form of flowcharts, including the operational steps in the method for achieving a particular result. For example, Figure 7 shows an exemplary set of operations for generating and managing multi-location data blocks according to one or more embodiments.
[0093] Figure 7 illustrates the operation in several implementations, but alternative implementations may omit, add, rearrange, and / or modify any of the operations shown in Figure 7. The operation in Figure 7 can be performed as part of a method. Alternatively, a non-temporary computer-readable medium may, when executed by one or more processors, provide instructions that cause a computing device to perform the operation in Figure 7. In yet another implementation, the system may perform the operation in Figure 7.
[0094] As shown in Figure 7, the sequence of operations 700 may include an operation 710 that generates a source identifier. For example, operation 710 involves generating a source identifier that indicates the server location where the content item is stored. Furthermore, the sequence of operations 700 includes an operation 720 that generates a multi-location data block from the source identifier. For example, operation 720 involves generating a multi-location data block from the source identifier that references the content item stored at the server location of the source identifier, and the multi-location data block can be simultaneously embedded in multiple virtual spaces using a single block identifier. Furthermore, the sequence of operations 700 includes an operation 730 that determines the block configuration of the multi-location data block. For example, operation 730 involves determining multiple block configurations for the multi-location data block that indicate different visual characteristics (e.g., set by different client devices) for displaying the multi-location data block in each virtual space. Furthermore, the sequence of operations 700 includes an operation 740 that identifies the content renderer that renders the multi-location data block. For example, operation 740 involves identifying a content renderer from a repository of content renderers (associated with application integration for the virtual space platform) that is suitable for visualizing the multilocation data block according to a block configuration from among several block configurations.
[0095] In some embodiments, the sequence of operations 700 includes an operation to generate a source identifier by generating a data element that associates (or incorporates into) a multi-location data block containing a block identifier that references the source identifier (without copying the content item). In these or other embodiments, the sequence of operations 700 includes an operation to generate a multi-location data block by generating a data element stored in a single server location, the data element incorporating at least a portion of the content item by associating a single block identifier with the source identifier. Furthermore, the sequence of operations 700 may include an operation to determine multiple block configurations by determining configured visual characteristics in order to present different visual representations of the multi-location data block in each virtual space to different client devices.
[0096] In some embodiments, the sequence of operations 700 includes identifying a content renderer suitable for visualization of a multilocation data block by identifying the application integration associated with the block type of the multilocation data block. Furthermore, the sequence of operations 700 may include determining a content renderer in the content renderer repository by receiving instructions from a client device for multiple application integrations to be incorporated into the virtual space platform using their respective application programming interfaces. Furthermore, the sequence of operations 700 may include generating additional multilocation data blocks that are specific to the virtual space platform and include block identifiers not associated with corresponding source identifiers.
[0097] In some embodiments, the sequence of operations 700 includes identifying a content renderer suitable for visualizing a multilocation data block by determining the block type associated with the multilocation data block and identifying the application integration associated with the block type. The sequence of operations 700 may also include identifying a content renderer from a repository of content renderers, which includes segments of computer code generated to render content items within the multilocation data block, from the corresponding application integration. In some cases, the sequence of operations 700 includes providing a multilocation data block for display in a first virtual space according to a first block configuration set up by a first client device, and / or further including providing a multilocation data block for display in a second virtual space according to a second block configuration set up by a second client device.
[0098] In some embodiments, the sequence of operations 700 includes operations to generate a multi-location data block by generating a data element stored in a single server location that incorporates a content item, by associating a single block identifier with a source identifier, without storing the content item in a single server location of the data element. The sequence of operations 700 may also include operations to determine multiple block configurations by determining the locations and dimensions associated with the versions of the multi-location data block that are displayed with their respective virtual spaces.
[0099] In some embodiments, the sequence of operations 700 includes determining a task list associated with a multilocation data block. Furthermore, the sequence of operations 700 may include generating task identifiers for the task list, each containing a data element linked to a single block identifier of the multilocation data block. In some cases, the sequence of operations 700 includes determining a communication thread associated with the multilocation data block. In other cases, the sequence of operations 700 may include generating thread identifiers for the communication thread, each containing a data element linked to a single block identifier of the multilocation data block. Furthermore, the sequence of operations 700 may include receiving instructions for user interaction with the multilocation data block to modify the content presented within the multilocation data block. Furthermore, based on the user interaction instructions, the sequence of operations 700 may include propagating the changes made to the content presented within the multilocation data block to content items stored in a server location associated with a source identifier, utilizing a bidirectional change channel. Generating and summarizing content blocks within a virtual space interface
[0100] As described above, in certain embodiments, the content block system 102 generates and provides a customized virtual space for display on a client device. In fact, the content block system 102 can generate the multi-location data blocks described above in relation to Figures 1 to 7. From the multi-location data blocks, the content block system 102 can further provide visualizations of the multi-location data blocks (in the form of content blocks) for display within the virtual space, where the content blocks incorporate content items from their respective server locations and / or include native content for the virtual space. Figure 8 shows an exemplary overview of generating and providing content blocks for display within the virtual space according to one or more embodiments. Further details regarding the various operations of Figure 8 are then provided with reference to subsequent figures.
[0101] As shown in Figure 8, the content block system 102 performs operation 802 to generate a virtual space interface. Specifically, the content block system 102 generates a virtual space interface as part of a virtual space platform (e.g., a web-based or standalone virtual space application) that provides an environment for viewing and interacting with content items. Within the environment of the (single) virtual space interface, the content block system 102 provides contextual data surrounding the displayed content item, including a user account associated with the content item, a task list associated with the content item, calendar events associated with the content item, a virtual meeting associated with the content item, a communication thread associated with the content item, and / or other contextual data.
[0102] As further shown in Figure 8, the content block system 102 performs an operation 804 to generate content blocks. Specifically, the content block system 102 generates content blocks to present or display visualizations of data (e.g., content items) embedded within multi-location data blocks. In fact, the content block system 102 can generate content blocks that visualize content items stored in an external server location (e.g., outside the content management system 106) and / or incorporate data specific to the virtual space platform of the content block system 102, such as communication thread blocks or task list blocks. The content block system 102 can further generate content blocks as user interface elements having modifiable visual properties such as size, position, color, and shape. In fact, based on receiving user interaction to change the height or width of a content block, the content block system 102 can adjust the presentation of the digital content within the content block to show more or less content in response to an increase or decrease in dimensions. For example, based on detecting a request for a full-screen view of a content block, the content block system 102 can provide more content items for display than a smaller content block. In some cases, the content block may also be interactive in order to modify the content item it depicts.
[0103] As shown in Figure 8, the content block system 102 performs an operation 806 that provides a block summary element. Specifically, the content block system 102 can generate and provide a block summary element for display in the virtual space, and the block summary element is a selectable user interface element for generating a block summary from a content block. In some cases, the content block system 102 provides a block summary element for display within a content block, while in other cases, the content block system 102 provides a block summary element for display elsewhere in the virtual space interface.
[0104] Furthermore, the content block system 102 performs operation 808 to generate a block summary. More specifically, the content block system 102 receives instructions for a user interaction to select a block summary element, and in response, generates a block summary from the digital content of the content block. For example, the content block system 102 uses a block summary neural network (e.g., a large-scale language model such as ChatGPT) to generate a block summary from the content block. In some cases, the content block system 102 generates a block summary in the form of a description of a digital image, a description of a digital video, a shortened version of a digital video, and / or a concise description of a digital document or spreadsheet describing the content.
[0105] As further shown in Figure 8, the content block system 102 performs an operation 810 to modify a content block using a block summary. More specifically, the content block system 102 updates or modifies a content block in which a block summary is generated by replacing the visualization of the content item with a visualization of the block summary within the content block. In fact, the content block system 102 can modify a content block to display a block summary while still retaining the same block identifier associated with the same source identifier that references the same content item. The content block system 102 only needs to change the visual presentation of the content block while maintaining the underlying data structure that links the content block to the content item in the server location. In some cases, the content block system 102 generates a block summary identifier and associates the block summary identifier with the block identifier of the content block to reference a block summary stored in the server location (for example, in the content management system 106).
[0106] As shown in Figure 8, the content block system 102 performs operations 812 to customize the interface and notifications. Specifically, the content block system 102 can provide notifications for display in the virtual space interface (or elsewhere on the client device) indicating updates or changes to content blocks (e.g., based on changes from other collaborating client devices). Furthermore, the content block system 102 can customize various user interfaces, such as the virtual space interface, the spatial summary interface, and / or other user interfaces, based on content blocks and / or block summaries in one or more virtual spaces. In fact, the content block system 102 can customize the spatial summary interface for each user account and / or device to present relevant content block information based on past user account behavior (e.g., selection, viewing, scrolling, sharing, downloading, receiving, modifying, and / or time spent interacting with content items).
[0107] As described above, in certain described embodiments, the content block system 102 provides a spatial summary interface for display on a client device. Specifically, the content block system 102 can provide a spatial summary interface that summarizes or includes selectable spatial elements for one or more virtual spaces associated with a user account. Figure 9 illustrates an exemplary spatial summary interface according to one or more embodiments.
[0108] As shown in Figure 9, the content block system 102 provides a spatial summary interface 904 for display on the client device 902. As illustrated, the spatial summary interface 904 is the "home" interface within the virtual space platform (for example, within the "Dropbox Cube" application). As illustrated, the spatial summary interface 904 includes a left rail indicating the user account for the spatial summary interface 904, which further includes a search element and a selectable element for adding a new virtual space for the user account "AB". Furthermore, the spatial summary interface 904 includes spatial elements 906 and 908, which are selectable respectively for accessing their respective virtual space interfaces. In fact, based on a user interaction that selects spatial element 906, the content block system 102 can provide a virtual space interface for the "1:1s" virtual space. Similarly, based on a user interaction that selects spatial element 908, the content block system 102 can provide a virtual space interface for the "Cube Analysis" virtual space.
[0109] As illustrated, spatial element 906 indicates that only user account "AB" has access to the "1:1s" virtual space. Furthermore, spatial element 906 includes a virtual space summary for the "1:1s" virtual space, which is summarized as "a space for regular one-on-one meetings." In fact, the content block system 102 can generate virtual space summaries based on the content blocks contained within the virtual space (for example, using a summarization neural network such as a large language model or visual language model in the case of mixed content including images and text). For example, the content block system 102 can automatically generate virtual space summaries for one or more virtual spaces to be displayed within the spatial summarization interface 904 (for example, within each virtual space element) (for example, without requiring user input to request or prompt). Further shown, spatial element 908 indicates that the "Cube Analytics" virtual space is accessible by user accounts "AB" and "CD." The content blocking system 102 can further indicate when a user account last accessed the virtual space within the corresponding virtual space element (for example, "1 day ago" or "1 week ago").
[0110] As described above, in certain embodiments, the content block system 102 can provide a virtual space interface for display on a client device. Specifically, the content block system 102 can provide a virtual space interface based on receiving user interaction to select a spatial element within the spatial summary interface. Figure 10 shows an exemplary virtual space interface according to one or more embodiments.
[0111] As shown in Figure 10, the content block system 102 provides a virtual space interface 1004 for display on the client device 1002. Specifically, the content block system 102 generates and provides the virtual space interface 1004 in response to receiving a user interaction instruction to select a new spatial element 1006. Based on generating a new virtual space and providing the virtual space interface 1004, the content block system 102 further provides interface elements for creating new content blocks to be included within the virtual space interface 1004. For example, the content block system 102 provides an additional block element 1008 within the virtual space interface 1004. In some cases, the content block system 102 provides a new block element 1010 in response to receiving a user interaction instruction to select an additional block element 1008 to add a new block to the virtual space interface 1004.
[0112] As shown in the figure, the content block system 102 generates a new block element 1010 that includes several elements for creating a content block of a specific block type. More specifically, the content block system 102 can provide several block type elements corresponding to each block type of the new content block. In some cases, the content block system 102 can determine an application integration that is integrated with or embedded in the virtual space platform and can generate a list of block type elements based on the application integration (for example, including block type elements for each application integration).
[0113] Furthermore, the content block system 102 can provide block type elements for native content blocks, including communication thread blocks and / or task list blocks, which do not require application integration but whose functionality is instead built into the virtual space platform. As shown in the figure, the content block system 102 provides block type elements for other block types such as "Note," "Paper Doc," and "Airtable." In fact, in response to receiving instructions for a user interaction to select a block type element, the content block system 102 generates a new content block of the corresponding block type and incorporates the functionality of the relevant application integration for rendering and interacting with the content item.
[0114] Furthermore, as illustrated, the content blocking system 102 generates a new block element 1010 to include a list of block suggestions. For example, the content blocking system 102 generates block suggestions using a block suggestion machine learning model (e.g., a neural network). In fact, the content blocking system 102 can use a block suggestion machine learning model to generate block suggestions from user account data, such as past interactions with various content items by the user account. In fact, the content blocking system 102 can generate model input in the form of a user account dataset, which includes metrics of view, click, change, scroll, share, receive, and / or interaction time related to various content items, including websites and / or content items stored in the content management system 106. In some cases, the content blocking system 102 can access web browser data to determine or generate block suggestions. For example, the content blocking system 102 can identify content items in open tabs of a web browser as content items to suggest in block suggestions.
[0115] Therefore, the content blocking system 102 can generate different user-account-specific block suggestions for each user account of the content blocking system 102. As shown in the figure, the content blocking system 102 generates a first block suggestion for "Doc1-Dropbox Paper" which is selectable to generate a new content block for the indicated content item (and to incorporate functionality from the application integration (Dropbox Paper)). Also as shown in the figure, the content blocking system 102 generates a second block suggestion for "Guide to Framing Your Promotion," which, if selected, prompts the content blocking system 102 to generate a new content block for the indicated content item to be displayed within the virtual space interface 1004. In fact, in some cases, based on the selection of block proposals, the content block system 102 i) identifies the server location (e.g., URL) of the proposed content item, ii) parses the URL to identify the application integration corresponding to the content item (e.g., by extracting a content identifier from the URL), iii) determines the source identifier of the content item (e.g., via an API), and iv) generates a content block to render the content item.
[0116] As described above, in certain described embodiments, the content block system 102 generates and provides a virtual space interface for modifying or manipulating content blocks (and / or corresponding content items). Specifically, the content block system 102 generates a virtual space interface containing a plurality of content blocks arranged according to user input. The content block system 102 can further generate a block summary for the content blocks and can modify the presentation of the content blocks to show the block summary. Figures 11A-11B show exemplary virtual space interfaces, including updating content blocks from displaying content items to displaying a block summary, according to one or more embodiments.
[0117] As shown in Figure 11A, the content block system 102 generates and provides a virtual space interface 1104 for display on the client device 1102. Specifically, the content block system 102 generates the virtual space interface 1004 to include multiple sections and content blocks. As shown in the figure, the content block system 102 generates the virtual space interface 1104 for presenting content blocks to a virtual space named "Project". Furthermore, the content block system 102 generates the virtual space interface 1104 to include a virtual space section 1106 that depicts sections and content blocks for the virtual space, and a right rail 1108 that depicts contextual data associated with the virtual space.
[0118] More specifically, the content block system 102 generates a right rail 1108 to include an activity feed ("Space activity"). The content block system 102 can reflect an action summary in the activity feed about activities performed by client devices 1102 with respect to content blocks or content items within the virtual space interface 1104. In fact, based on detecting interactions with content blocks (e.g., changes to content items via content blocks), the content block system 102 can update the activity feed with a summary of interactions. In some cases, the content block system 102 can receive text input along with the activity feed and add manual updates or comments (e.g., within a "Write updates here" bubble). Thus, the content block system 102 can update the activity feed so that it is displayed on multiple client devices presenting their respective virtual space interfaces to the same "Project" virtual space. In some cases, the content block system 102 generates an activity feed to include activities for a specific time period (e.g., "Today").
[0119] Furthermore, the content blocking system 102 generates a right rail 1108 that includes a block action suggestion ("Set up this space"). More specifically, the content blocking system 102 can determine a block action suggestion for a user account to set up the virtual space interface 1104. In some cases, the content blocking system 102 generates a block action suggestion based on determining the past user interactions of the "AB" user account (and / or other user accounts) and comparing those past user interactions with interactions that have taken place within the virtual space interface 1104. For example, the content blocking system 102 can determine that the "AB" user account (and / or other user accounts) will perform one or more actions within the new virtual space interface (and / or in relation to a particular content block) at least a threshold percentage of the virtual space interfaces (corresponding to the "AB" user account and / or other user accounts). Based on determining that a user account has not yet performed such an action within the virtual space interface 1104, the content blocking system 102 may further generate and provide block action suggestions for those actions.
[0120] As further shown in Figure 11A, the content block system 102 generates a virtual space interface 1104 that includes a virtual space portion 1106. Within the virtual space portion 1106, the content block system 102 generates and provides multiple block sections, such as the "Design" block section and the "Develop" block section. The content block system 102 can also provide various interface elements within the block sections, such as an "Add Block" option that can be selected to add new content blocks within the block sections (for example, using the new block element described in relation to Figure 10). Within the virtual space portion 1106, the block sections may be modifiable to adjust their visual characteristics, including size, position, shape, and color. For example, the content block system 102 may receive user interactions such as moving the "Develop" section above the "Design" section and / or arranging them side by side, making one section larger than the other.
[0121] Furthermore, the content block system 102 can receive user interactions to adjust the visual characteristics of the content blocks. For example, the content block system 102 can receive user interaction instructions to adjust the width, height, position, color, and / or shape of the content block (for example, within its block section, or to move the block to another section or outside of all block sections). In some cases, the content block system 102 propagates any changes made to the visual characteristics of the content block (and / or block section) to all other client devices that have access to the same virtual space (so all client devices accessing the same virtual space have a virtual space interface with the same format / appearance).
[0122] In other cases, the content block system 102 does not propagate changes made to the visual characteristics of blocks and / or sections to other devices. Therefore, in these cases, the content block system 102 can customize the appearance of a single virtual space differently for different client devices presenting their own virtual space interfaces. In some embodiments, the content block system 102 further customizes the appearance of content blocks within the virtual space interface according to user account activity. For example, the content block system 102 can reposition content blocks (or block sections) that receive more (or more frequent) interactions (e.g., share, view, click, scroll, modify, receive, or other interactions) to a more prominent position (e.g., a higher position within the virtual space interface). Thus, the content block system 102 can provide the same content blocks to the same virtual space while offering different appearances or placements within the virtual space interfaces of different client devices.
[0123] As further shown in Figure 11A, the content block system 102 generates and provides content blocks such as content block 1110, a communication thread block ("Notes"), and a task list block "Hello". As described above, the content block system 102 provides the communication thread block and the task list block as native blocks that do not require application integration with external applications to facilitate the presentation and / or interaction with digital content. The content block system 102 can further provide block identifiers for the communication thread block and the task list block to all client devices that have access to the virtual space corresponding to the virtual space interface 1104 in order to view / interact with the communication thread / task list. In some cases, the content block system 102 can access specific application integration of the calendar application to determine and present tasks in the task list block as indicated by the calendar application (for example, if the task list block is non-native).
[0124] With respect to content block 1110, the content block system 102 can identify or determine application integration for an external application such as Dropbox Paper. Based on integrating the Dropbox Paper application (or a subset of its functionality), the content block system 102 provides a visualization of the content item ("Cube Moment Paper") referenced by a source identifier linked to the block identifier of content block 1110. As illustrated, the referenced content item contains more text and / or images than are visible within content block 1110. Accordingly, with respect to content block 1110, the content block system 102 generates and provides a block summary element 1114 to generate a block summary for content block 1110.
[0125] In fact, in response to a user interaction selecting a block summary element 1114, the content block system 102 generates a block summary for display within the content block 1110. In some cases, the content block system 102 provides the block summary element 1114 only when it determines that the content block 1110 cannot present the entire content of the referenced content item (for example, according to its dimensions and position). In fact, the content block system 102 may update or modify the block summary (or generate a new block summary) based on the dimensions of the content block, adjusting the length of the block summary to the size of the content block (for example, smaller blocks have shorter summaries than larger blocks).
[0126] In one or more embodiments, the content block system 102 also (or alternatively) provides section summary elements 1112 and / or spatial summary elements. Based on a user interaction selecting a section summary element 1112, the content block system 102 can generate a section summary from multiple content blocks contained within a "Design" block section. For example, the content block system 102 can provide a selection menu to indicate which of the content blocks within a block section to include as part of a multi-block summary. Based on the selection of a set of content blocks, the content block system 102 can generate a multi-block summary that consequently concisely describes the content of multiple content blocks. Similarly, based on the selection and inclusion of specific content blocks, the content block system 102 can generate a multi-block summary in the form of a spatial summary to summarize block sections and / or content blocks in a virtual space.
[0127] To generate multi-block summaries, the content block system 102 can utilize a block summarization neural network (e.g., a large-scale language model or a vision language model). For example, the content block system 102 can extract and combine digital content from multiple content blocks to form a single data input to the block summarization neural network. In some cases, the content block system 102 can generate or extract feature vectors from each of the individual content blocks and combine (e.g., concatenate or add) these feature vectors into a multi-block feature vector (e.g., using an encoder layer or encoder neural network of the block summarization neural network). Thus, the content block system 102 can use the block summarization neural network to generate a multi-block summary from a multi-block feature vector. In the case of a single block summary, the content block system 102 can extract feature vectors from a single content block and generate a block summary from a single block feature vector.
[0128] As already mentioned, the content block system 102 can generate a block summary of a content block based on the selection of block summary elements 1114. Figure 11B shows an example of modifying the virtual space interface 1104 to display a block summary, according to one or more embodiments. As shown in Figure 11B, the content block system 102 modifies or updates the content block 1110 to generate a modified content block 1116. In fact, the content block system 102 generates a modified content block 1116 to depict or present a block summary instead of the content items originally depicted within the content block 1110. As shown in the figure, the modified content block 1116 displays a “cube summary” that concisely summarizes the content of the content block 1110.
[0129] As described above, in certain described embodiments, the content block system 102 can generate task lists and / or communication threads to be included within a content block. Specifically, the content block system 102 can modify the content block to include a block identifier linked to the source identifier of a content item, as well as to further link the block identifier to a task list and / or communication threads (which may be presented as part of the content block). Figures 12A-12B show exemplary block extension menus for adding communication threads and / or task lists to a content block according to one or more embodiments.
[0130] As shown in Figure 12A, the content block system 102 generates and provides a virtual space interface 1204 for display on the client device 1202. Specifically, the content block system 102 generates the virtual space interface 1204 to include a content block 1206 and a block extension menu 1208. In fact, within the block extension menu 1208, the content block system 102 can provide selectable options or elements for extending (and / or performing other actions on) the content block 1206. For example, the content block system 102 can provide selectable options for adding a task list, subscribing to a specific external application, adding a communication thread, and / or deleting the content block 1206. Based on receiving instructions from user interaction to select an option to add a task list or a communication thread, the content block system 102 can modify the content block 1206 to include a task list or a communication thread.
[0131] In fact, as shown in Figure 12B, the content block system 102 modifies content block 1206 to include content item 1210 and communication thread 1212. More specifically, based on user interaction selecting the option to add a communication thread to content block 1206, the content block system 102 modifies content block 1206 to include the communication thread 1212. In some cases, the content block system 102 modifies content block 1206 to include both content item 1210, referenced by a source identifier, and communication thread 1212, referenced by a thread identifier. The content block system 102 can similarly add a task list to content block 1206. Thus, the content block system 102 can manage communication threads and task lists not only as native content blocks in the virtual space, but also as components or subblocks of content blocks.
[0132] In some of the described embodiments, the content block system 102 can provide a search function for searching content blocks and / or other content items. Specifically, the content block system 102 can index content blocks and content items for embedding within content blocks as part of a virtual space interface. Figure 13 shows exemplary search options as part of a virtual space interface in one or more embodiments.
[0133] As shown in Figure 13, the content block system 102 provides a virtual space interface 1304 for display on the client device 1302. Specifically, the content block system 102 provides a virtual space interface 1304 that includes a search element for adding new content blocks. In fact, based on user interaction selecting the option to add a new content block, the content block system 102 can provide a search option for finding content items to embed within the new content block. As shown in the figure, the content block system 102 provides a search element within the block section 1306.
[0134] Based on receiving a search query (e.g., "Cube"), the content block system 102 identifies content items (e.g., Paperdocs or other content items) corresponding to the search query and populates the identified content items with the search results 1308. In response to the selection of content items from the search results 1308, the content block system 102 generates a source identifier to link to the block identifier of the content block, which indicates the server location for the selected content items. Furthermore, the content block system 102 further determines the block type and, based on the block type, accesses an application integration (e.g., a content renderer) to render the content items within the content block.
[0135] In some embodiments, the content block system 102 further enables searching through content blocks. In fact, the content block system 102 can provide block search functionality within the virtual space interface 1304 (separate from the search functionality for content items to be included in a new content block) and / or within the spatial summarization interface. For example, the content block system 102 can identify content blocks corresponding to a search query. In some cases, the content block system 102 searches a single virtual space associated with a user account or multiple virtual spaces associated with a user account to identify a content block. Thus, the content block system 102 can identify content blocks corresponding to a query and provide access to content blocks from the search results of a block search.
[0136] As described above, in some embodiments, the content block system 102 can link or combine content blocks with a virtual meeting. Specifically, the content block system 102 can associate content blocks, block sections, and / or entire virtual spaces with a virtual meeting, such as a video call or audio call. Figure 14 shows an exemplary virtual space interface for associating a content block, block section, or virtual space with a virtual meeting, according to one or more embodiments.
[0137] As shown in Figure 14, the content block system 102 generates and provides a virtual space interface 1404 for display on the client device 1402. Within the virtual space interface 1404, the content block system 102 can provide selectable meeting association options 1410 for associating the "Project" virtual space with a virtual meeting. Similarly, the content block system 102 can provide a meeting association option 1412 for associating the "Design" block section with a virtual meeting, and / or a meeting association option 1414 for associating the "Hello" content block with a virtual meeting. Based on the user interaction in selecting a meeting association option 1410, the content block system 102 can provide options for defining the virtual meeting to be linked to the virtual space.
[0138] Based on associating a virtual space with a virtual meeting, the content block system 102 can generate selectable options for joining a virtual meeting within the virtual space interface 1404. In some cases, the content block system 102 displays a join option when it detects that the virtual meeting is within a threshold duration from its start. In these and other cases, the content block system 102 generates the join option in the formation of a virtual meeting content block having its own block identifier and block type. Based on the block type of the virtual meeting, the content block system 102 can identify application integrations for the corresponding virtual meeting application in order to integrate virtual meeting functionality into the content block.
[0139] In some embodiments, the content block system 102 can associate a virtual meeting with the virtual space, based on the detection of the virtual meeting, so that the content block system 102 provides content blocks (or a subset of content blocks associated with the virtual meeting) in the virtual space. More specifically, the content block system 102 can detect the start of a virtual meeting and identify content blocks containing digital content associated with the virtual meeting. For example, the content block system 102 can determine the topic associated with the virtual meeting (e.g., based on the meeting title and / or from the transcript of a previous meeting if the virtual meeting is a recurring meeting). In fact, the content block system 102 can detect recurring virtual meetings and provide content blocks of the virtual meeting for display. For example, the content block system 102 can further determine the topic associated with a content block and identify content blocks within a similarity threshold of the virtual meeting topic by comparing the content block topic with the virtual meeting topic (e.g., by determining the distance between topic vectors in the vector space). In some cases, the content block system 102 can also display only the relevant content blocks (or rearrange the virtual space interface 1404 to place the relevant blocks on top of other content blocks).
[0140] Following this process, the content blocking system 102 can associate specific block sections or specific content blocks with a virtual meeting. For example, the content blocking system 102 can receive a user's selection of a meeting-related option 1412 and associate the "Design" block section with the virtual meeting. Thus, based on the detection that a virtual meeting is taking place, the content blocking system 102 can provide the block section for display within the virtual space interface 1404. Similarly, the content blocking system 102 can associate the "Hello" content block with the virtual meeting based on the selection of a meeting-related option 1414. Thus, when the content blocking system 102 detects a virtual meeting, it can provide the content block for display within the virtual space interface 1404. In some embodiments, the content blocking system 102 can automatically associate content blocks with virtual meetings based on the user account's behavioral history with content blocks in past virtual meeting sessions (e.g., without user interaction with meeting-related options).
[0141] As shown in Figure 14, the content block system 102 can modify visual characteristics such as the color associated with content blocks, block sections, and / or virtual spaces. For example, the content block system 102 can provide a color palette 1408 for selecting a color (or shading or any other design) associated with a “design” block section. Similarly, the content block system 102 can provide a color palette for changing the color of individual content blocks and / or the entire virtual space.
[0142] As further shown in Figure 14, the content blocking system 102 can generate and provide notifications based on the detection of changes to content blocks. For example, the content blocking system 102 can provide notification 1406 based on the detection that a collaborating user account or collaborating client device has modified a content block (e.g., "change of color from blue to white"). Thus, the content blocking system 102 can provide customized notifications within different virtual space interfaces for different user accounts (even user accounts accessing the same virtual space from their respective devices).
[0143] As described above, in certain described embodiments, the content block system 102 can utilize application integration to incorporate functionality from external applications to browse and interact with content blocks. Specifically, the content block system 102 can install application integration that includes application functionality for browsing and interacting with content blocks that embed content items associated with external applications. Figure 15 shows an exemplary application integration interface in one or more embodiments.
[0144] As shown in Figure 15, the content block system 102 generates and provides an application integration interface 1504 for display on the client device 1502. Within the application integration interface 1504, the content block system 102 provides integration elements such as integration element 1506, integration element 1508, and integration element 1510. For example, the content block system 102 identifies application integrations available within the integration marketplace for installation or integration into the virtual space platform.
[0145] As shown in the diagram, integration element 1506 can be selected to integrate the functionality of the Dropbox application with the virtual space platform. Furthermore, integration element 1508 can be selected to integrate the functionality of the calendar application with the virtual space platform. Furthermore, integration element 1510 can be selected to integrate the functionality of the project management application with the virtual space platform. In some cases, the content block system 102 displays integration elements in the application integration interface 1504 that correspond to (or are referenced by blocks of block type) one or more content blocks associated with a specific virtual space (or multiple virtual spaces) of a user account. In other cases, the content block system 102 displays all available application integrations in the application integration interface 1504.
[0146] Based on receiving a selection to install or connect an application integration, the content block system 102 can enable the corresponding functionality (and / or other data) within a content block of the block type associated with the application integration. For example, the content block system 102 can use a calendar application integration to directly incorporate a user account's calendar events and the scheduling functionality of a calendar application into a content block of the virtual space interface. Similarly, for other block types of content blocks, the content block system 102 can use application integration to incorporate data and functionality from external applications into the content block. In some cases, the content block system 102 can install an application integration in conjunction for multiple user accounts (or multiple client devices) based on a single request from an administrator account / device of a given virtual space accessible by multiple accounts / devices. Thus, the content block system 102 enables all client devices with access to the virtual space to browse and interact with the content block in the same way.
[0147] As described above, in certain embodiments, the content blocking system 102 can define the privileges of a content block by modifying or utilizing permissions associated with an external application. Specifically, the content blocking system 102 can apply permission settings from an external application to a content block, and / or modify the permission settings of an external application based on permission changes to the content block. Figure 16 shows an exemplary diagram of modifying or utilizing permission settings associated with an external content source in one or more embodiments.
[0148] As shown in Figure 16, the content block system 102 provides sharing options 1604 for display on the client device 1602. More specifically, the content block system 102 generates sharing options 1604 that include account identifiers for adding or removing user accounts associated with the virtual space. In addition to adding and removing user accounts, the content block system 102 can further configure account-specific settings for view permissions, edit permissions, or other levels of permission for interacting with content blocks. In some cases, the content block system 102 can define permission settings at a more granular level, such as determining which user accounts can access and / or interact with a particular content block or block section within the virtual space.
[0149] In some embodiments, the content block system 102 can apply permission settings 1606 from an external content source 1608 to the virtual space or content block. More specifically, based on detecting that the content block utilizes application integration for a particular external application, the content block system 102 can access the external application to determine the permission settings 1606 for content items embedded within the content block. Thus, the content block system 102 can apply permission settings 1606 set by the external application to content blocks in the virtual space to enable and / or prohibit various interactions with the content block, such as viewing, modifying, sharing, or other actions. In fact, permission settings 1606 can define account-specific permissions for user accounts that have access to the virtual space at the content block level, block section level, and / or virtual space level. Even if the content block does not use application integration, the content block system 102 can determine permission settings 1606 from an external content source 1608 (e.g., a server location) hosting the content items presented within the content block.
[0150] In one or more embodiments, the content blocking system 102 can modify the permission settings 1606 based on interactions within the virtual space interface. For example, based on interactions with sharing options 1604 to add or remove user accounts associated with content blocks, block sections, and / or the virtual space (and / or change specific interaction settings), the content blocking system 102 can update the permission settings 1606. Furthermore, the content blocking system 102 can provide or propagate updates to the permission settings 1606 to external content sources 1608 (e.g., server locations or external applications) to apply the updates to the permission settings 1606. This allows the content blocking system 102 to modify the permission settings 1606 of external content sources 1608 from interactions within the virtual space interface.
[0151] As described above, in certain described embodiments, the content block system 102 generates and provides a spatial summary interface that is tailored or customized on account-specific criteria. Specifically, the content block system 102 can generate a first spatial summary interface that includes content updates related to a first user account, and can generate a second spatial summary interface that includes content updates related to a second user account. Figure 17 shows exemplary depictions of different spatial summary interfaces for different devices (or different user accounts) according to one or more embodiments.
[0152] As shown in Figure 17, the content block system 102 generates and provides a spatial summary interface 1704 for display on the client device 1702. In fact, the content block system 102 generates the spatial summary interface 1704 for summarizing multiple virtual spaces by providing rapid updates of relevant content within a hub for accessing multiple virtual spaces. The content block system 102 can generate the spatial summary interface 1704 to include notifications, virtual spaces, and / or content blocks related to the user account of the client device 1702. For example, the content block system 102 determines relevant content blocks and / or virtual spaces for a user account based on the user's activity history with content blocks and / or virtual spaces (e.g., views, clicks, changes, scrolls, shares, receives, and / or interaction times). The content block system 102 further customizes the spatial summary interface 1704 to include notifications of content blocks and / or content updates within content blocks (from different virtual spaces) based on the activity history.
[0153] As further shown in Figure 17, the content block system 102 generates and provides a spatial summary interface 1706 for display on the client device 1708. More specifically, the content block system 102 generates the spatial summary interface 1706 to include content blocks and / or virtual spaces related to the user account of the client device 1708. In fact, as illustrated, the content block system 102 determines that different content blocks are related to the user account of the client device 1708 and different content blocks are related to the user account of the client device 1702. Thus, the content block system 102 generates the spatial summary interface 1706 to include different content blocks (or block sections) and notifications, even for user accounts that have access to the same virtual space. For example, the content block system 102 may provide a first content block from the virtual space in the spatial summary interface 1704, and then, based on past interactions indicating content block relevance, may provide a second content block from the same virtual space in the spatial summary interface 1706. In some cases, the content block system 102 can generate a block summary (or multi-block summary or spatial summary) for inclusion within the spatial summary interface, and this block summary is account-specific for the relevant content block.
[0154] Figures 8 to 17, the corresponding text, and the embodiments provide several different systems and methods for generating and maintaining virtual spaces according to one or more embodiments. In addition to the foregoing, implementation forms may be described in the form of flowcharts, including the operational steps in a method for achieving a particular result. For example, Figure 18 shows an exemplary set of operations for generating a block summary from content blocks of a virtual space interface according to one or more embodiments.
[0155] Figure 18 shows the operation in several implementations, but alternative implementations may omit, add, rearrange, and / or modify any of the operations shown in Figure 18. The operation in Figure 18 can be performed as part of a method. Alternatively, a non-temporary computer-readable medium may provide instructions that cause a computing device to perform the operation in Figure 18 when executed by one or more processors. In yet another implementation, the system may perform the operation in Figure 18.
[0156] As shown in Figure 18, a set of operations 1800 may include an operation 1810 that generates a virtual space interface. For example, operation 1810 may include generating a virtual space interface for display on a client device, comprising a content block and a block summary element, where the content block comprises a modifiable subwindow for presenting and modifying digital content (e.g., content items hosted at a server location). Also as shown, a set of operations 1800 may include an operation 1820 that receives a user interaction to select a block summary element. For example, operation 1820 may include receiving instructions for a user interaction to select a block summary element within the virtual space interface. Furthermore, a set of operations 1800 may include an operation 1830 that generates a block summary for a content block. For example, operation 1830 may, based on a user interaction to select a block summary element, use a block summary neural network to generate a block summary from the digital content (e.g., content items) of a content block (e.g., digital content embedded within the content block from a server location).
[0157] In some embodiments, the sequence of operations 1800 includes operations to generate a block summary by utilizing a large language model to summarize the digital content of the content block. In these or other embodiments, the sequence of operations 1800 includes operations to provide a content block for display in a virtual space interface in order to present the digital content embedded in the content block from an external server location. Furthermore, the sequence of operations 1800 may include operations to modify the content block so as to replace the presentation of the embedded digital content from the external server location with a block summary generated in response to a user interaction selecting a block summary element.
[0158] In one or more embodiments, the sequence of operations 1800 includes operations to generate a multiblock summary from the digital content of multiple content blocks displayed within a virtual space interface by accessing and summarizing the embedded digital content from each server location. Furthermore, the sequence of operations 1800 may include operations to provide the multiblock summary for display on a client device.
[0159] In some cases, the sequence of operations 1800 may include operations to identify communication threads associated with a content block, generate a thread summary of the communication threads, and provide the thread summary for display within the content block. Furthermore, the sequence of operations 1800 may include operations to determine user interactions with content items for a user account associated with a client device, operations to generate block proposals for the user account using a block proposal machine learning model based on the user interactions for the user account, and operations to provide the block proposals as selectable interface elements for display within a virtual space interface.
[0160] In some embodiments, the sequence of operations 1800 includes operations to generate a spatial summary interface containing user account-specific summaries of the digital content displayed within a plurality of content blocks contained within the virtual space interface for display on a client device. In some cases, the sequence of operations 1800 includes operations to generate additional spatial summary interfaces containing different user account-specific summaries of the digital content displayed within a plurality of content blocks contained within the virtual space interface for display on different client devices.
[0161] In some cases, the sequence of operations 1800 includes operations to generate a customized block summary based on user interactions of a user account associated with a client device, and operations to generate additional block summaries from the digital content of a content block, the additional block summaries being customized based on user interactions of a different user account. Furthermore, the sequence of operations 1800 may include operations to determine user interactions with a content item for a user account associated with a client device, and operations to generate content update notifications indicating one or more updates to the digital content associated with a content block displayed in the virtual space interface, based on the user interactions of the user account.
[0162] In one or more embodiments, a set of operations 1800 includes determining permission settings configured on an external content source for the digital content of a content block, and applying the permission settings from the external content source to the content block in the virtual space interface. In the same or other embodiments, a set of operations 1800 includes receiving instructions from a client device for a user interaction to change the permission settings associated with a content block in the virtual space interface, and providing the updated permission settings to the external content source hosting the digital content embedded within the content block, based on the user interaction to change the permission settings for the content block.
[0163] In some embodiments, the sequence of operations 1800 includes: generating block suggestions for display in the virtual space interface by identifying open browser tabs in a browser running on a client device; in addition, receiving instructions for user interaction to add additional content blocks to the virtual space interface from the block suggestions; adding additional content blocks based on that user interaction; and generating additional block summaries from digital content in the open browser tabs for display in the additional content blocks. Furthermore, the sequence of operations 1800 may include: receiving instructions from the client device for user interaction to set permission settings for content blocks in the virtual space interface; receiving instructions from the client device for additional user interaction to set permission settings for additional content blocks in the virtual space interface; and applying different permission settings for content blocks and additional content blocks based on that user interaction and its additional user interaction.
[0164] In some embodiments, the sequence of operations 1800 includes operations that provide a block summary for display within a content block in order to replace the digital content within the content block. Furthermore, the sequence of operations 1800 may include operations that associate a virtual spatial interface with a virtual meeting and operations that, based on the detection of a recurrence of the virtual meeting, provide a spatial element for display on a client device, which is selectable for accessing the virtual spatial interface containing the content block to be manipulated during the virtual meeting.
[0165] In a particular embodiment, the sequence of operations 1800 includes receiving instructions from a client device for a user interaction to select a block proposal within the virtual space interface, and, in response to the instructions for the user interaction to select a block proposal, identifying an application integration associated with the block proposal and integrated for rendering block content within the virtual space interface. Furthermore, the sequence of operations 1800 may include using the application integration to access digital content from an external server location indicated by the block proposal for embedding within a new content block, and generating a new content block by embedding the digital content from the external server location for display within the new content block. The sequence of operations 1800 may also include generating a new block summary from the external server location for the digital content embedded within the new content block. Virtual space platform for content-blocking browsers
[0166] As described above, in certain embodiments described, the content block system 102 can generate and provide a content block browser for integrating the functionality of web pages within content blocks with the virtual space. Specifically, the content block system 102 can utilize the virtual space platform as a web browser, and each content block contains the content and functionality of a web page. Figure 19 shows an exemplary overview of generating and providing a content block-based web browser via the virtual space according to one or more embodiments. Further details regarding the various operations of Figure 19 are provided thereafter with reference to subsequent figures.
[0167] As shown in Figure 19, the content block system 102 can perform operation 1902 to generate a virtual space for a content block browser. Specifically, the content block system 102 can generate a virtual space that functions as a web browser by integrating web page functionality into the content block. For example, the content block system 102 can identify or access application integrations of web browser applications to install on or integrate with a virtual space platform. In some cases, the content block system 102 can thus generate a virtual space that behaves like an instance of a web browser for accessing and interacting with content items stored over the internet and / or within the content management system 106.
[0168] As further shown in Figure 19, the content block system 102 performs operation 1904 to embed content blocks in virtual space. More specifically, the content block system 102 can embed content blocks as described above. In fact, the content block system 102 can generate content blocks that include (or are defined by) a block identifier associated with a source identifier that references a web page. In some cases, the content block system 102 can further determine the block type of the content block as a web browser block based on the source identifier that references the web page.
[0169] Furthermore, the content block system 102 performs operation 1906 to integrate web page functionality into the content block. More specifically, based on determining that the source identifier of the content block refers to a web page (and / or based on determining that the content block is a web browser block), the content block system 102 can integrate web page functionality into the content block. For example, the content block system 102 can easily implement web page functionality, such as navigation inputs via links, buttons, and search bars, as well as content modification functions, content creation functions, content sharing functions, and / or other functions available on various web pages, by utilizing installed application integrations. In some cases, the content block system 102 utilizes application integrations installed for web browsers to incorporate such functionality into the content block.
[0170] As shown in Figure 19, the content block system 102 performs operation 1908, which receives input change block content. Specifically, the content block system 102 can receive instructions for user interaction that change the web page content shown within the content block. For example, the content block system 102 receives input from a web page hosted at a server location to change a spreadsheet, image, video, or any other content item. In fact, the content block system 102 can also receive change input within the content block that is rendering the web page, and the content block system 102 can render the changes within the content block.
[0171] As further shown, the content block system 102 performs operation 1910 to propagate the changes to the web page. More specifically, the content block system 102 applies the content block changes to the web page. For example, in response to detecting a change to the web page content drawn in a content block, the content block system 102 can generate computer code to encode that change and provide that computer code to the web server hosting the web page, which then executes the computer code to apply the changes to the web page. Thus, the content block system 102 can cause the web page server location to change the web page content by propagating changes made to the content block in the virtual space interface (e.g., a virtual space interface that functions as a content block web browser).
[0172] Furthermore, the content block system 102 performs an operation 1912 to receive interaction for adding a new content block. For example, in some embodiments, the content block system 102 may receive instructions for user interaction to add a new content block. Specifically, the content block system 102 may add a new content block to the virtual space (and virtual space interface). In some cases, the content block system 102 adds a new content block to integrate the web page content and web page functionality of different web pages within the content block browser. As illustrated, the content block system 102 may further repeat one or more operations shown in Figure 19 to embed the new content block, integrate web page functionality, receive change input, and modify the web page for the new content block.
[0173] As already mentioned, the content block system 102 can generate a virtual space interface as an instance of a content block-based web browser. In some cases, the content block system 102 can generate a hybrid virtual space interface that includes content blocks for web pages and content blocks for non-web page content items. Figure 20 shows an illustrative diagram of a hybrid virtual space interface that includes web page content blocks for modifying web page content, according to one or more embodiments.
[0174] As shown in Figure 20, the content block system 102 generates and provides a virtual space interface 2004 for display on the client device 2002. Specifically, the content block system 102 generates the virtual space interface 2004 as a hybrid virtual space interface that includes a web page content block 2006 for integration and a non-web page content block ("design") for content items other than web pages. As shown in the figure, the content block system 102 generates a web page content block 2006 for a web-based spreadsheet hosted at the web page server location 2014. In some cases, a web page content block refers to a content block that integrates functionality and / or content from a web browser and provides additional functionality for content blocks in the virtual space. Conversely, a non-web page content block may refer to a content block that incorporates content and / or functionality from different sources, such as private URLs of content items stored for user accounts in the content management system 106 (e.g., URLs for web pages that are not publicly accessible).
[0175] To integrate the webpage content block 2006, the content block system 102 generates a block identifier 2008 and a source identifier 2010. Specifically, the content block system 102 generates a block identifier 2008 to indicate or define the webpage content block 2006, which can be sent to the client device 2002 (and other client devices) to embed the webpage content block 2006. Furthermore, the content block system 102 associates the block identifier 2008 with a source identifier 2010 that references the webpage server location 2014. In fact, by using the source identifier 2010, the content block system 102 integrates digital content 2012 (e.g., a spreadsheet) and its corresponding webpage functionality (e.g., functionality to interact with the spreadsheet and navigate between webpages) from the webpage server location 2014. In some cases, the content blocking system 102 integrates web page functionality by accessing application integration for external web browser applications installed on the virtual space platform (corresponding to the web browser block type of Web Page Content Block 2006).
[0176] As further shown in Figure 20, the content block system 102 can receive user interaction to modify the web page content block 2006. Specifically, the content block system 102 receives user input to enter a string ("12345") into a spreadsheet field shown in the web page content block 2006. Based on the user input, the content block system 102 can propagate the changes to the web page content block 2006 to the web page hosted at the web page server location 2014. Specifically, the content block system 102 can generate modification computer code to modify the digital content 2012. The content block system 102 can also provide the computer code to the web page server location 2014. The web page server location 2014 then updates the web page of the spreadsheet stored and hosted at the web page server location 2014 by executing the computer code.
[0177] As described above, the content block system 102 can integrate other webpage functionalities, such as navigating between webpages (going beyond interacting with and modifying webpage content). Based on receiving an interaction within the webpage content block 2006 to navigate away from a spreadsheet webpage and access another webpage, the content block system 102 can update the webpage content block 2006 accordingly to display the new webpage. More specifically, the content block system 102 can modify the webpage content block 2006 by updating the block identifier 2008 with a new source identifier that references the server location hosting the new webpage, and then combining it with the new source identifier.
[0178] As described above, in certain described embodiments, the content block system 102 generates a virtual space interface for a content block-based web browser. Specifically, the content block system 102 can generate a virtual space interface containing multiple web page content blocks, each web page content block incorporating web page content for different web pages hosted at different server locations. Figure 21 shows an exemplary diagram of embedding web page content from different web pages into different web page content blocks, according to one or more embodiments.
[0179] As shown in Figure 21, the content block system 102 generates a virtual space interface 2104 for display on the client device 2102. Specifically, the content block system 102 generates the virtual space interface 2104 to include web page content blocks, including web page content block 2106a and web page content block 2106b, and to include non-web page content block 2106c. The content block system 102 further incorporates different web page content and corresponding web page functionality for each of the web page content blocks. In fact, as described above, the content block system 102 associates the block identifiers of the web page content blocks (and non-web page content blocks) with the server location hosting the respective web pages.
[0180] More specifically, the content block system 102 associates the block identifier of the web page content block 2106a with the source identifier that references server location A. Therefore, the content block system 102 incorporates the web page content 2108 into the web page content block 2106a to display the "homepage" web page. Furthermore, the content block system 102 integrates the web page functionality of the homepage web page from server location A.
[0181] Within the same virtual space interface 2104, the content block system 102 further incorporates web page content 2110 into web page content block 2106b by associating the corresponding block identifier with server location B. Similarly, the content block system 102 also incorporates content item 2112 (for example, content item stored for a user account in the content management system 106) into content block 2106c by associating the corresponding block identifier with server location C. Furthermore, the content block system 102 can integrate web page functionality from server locations into web page content blocks and integrate other application functionality into non-web page content blocks.
[0182] As described above, in certain embodiments described, the content block system 102 can integrate web page functionality into web page content blocks by utilizing application integration. Specifically, the content block system 102 can identify web browser application integrations that include web page functionality for interacting with web page content and navigating between web pages using content blocks. Figure 22 shows an exemplary diagram of using application integration (for example, for a hybrid virtual space interface) for web page content blocks and non-web page content blocks according to one or more embodiments.
[0183] As shown in Figure 22, the content block system 102 generates an application integration interface 2204 for display on the client device 2202. Specifically, the content block system 102 generates the application integration interface 2204 to include application integrations that can be connected to or installed within the virtual space platform. As shown in the figure, the application integration interface 2204 includes various integration elements corresponding to each application integration. For example, the application integration interface 2204 includes an integration element 2206a for integration with the Dropbox application, an integration element 2206b for integration with the Calendar application, an integration element 2206c for integration with the Project Management application, and an integration element 2206c for integration with the Web browser application ("Content Block Browser").
[0184] In some embodiments, the content block system 102 integrates web page functionality for one or more web page content blocks by using application integrations corresponding to integration element 2206d. Furthermore, the content block system 102 can embed content blocks 2208 for non-web page content. For example, the content block system 102 can include and integrate content items within the content management system 106 by utilizing integration A for block A, which corresponds to integration element 2206a. Similarly, the content block system 102 can integrate a digital calendar into block B by utilizing integration B, which corresponds to integration element 2206b. Furthermore, the content block system 102 can integrate project management content items into block C by utilizing integration C, which corresponds to integration element 2206c.
[0185] As part of utilizing application integration for each content item, the content block system 102 can access the content renderer repository 2210 to render content items within a content block, including web page content and other digital content. In fact, the content block system 102 can access content renderers corresponding to the block type and / or application integration associated with the content block. Thus, the content block system 102 can render content items within a content block as described herein.
[0186] In one embodiment, the content block system 102 can generate and provide block previews from content blocks in a virtual space. Specifically, the content block system 102 can generate block previews to provide a limited version of a content block to a client device (e.g., a third-party client device) that does not have full authority to interact with the content block. Figure 23 shows illustrative diagrams of generating and providing block previews according to one or more embodiments.
[0187] As shown in Figure 23, the content block system 102 generates a virtual space interface 2304 for display on the client device 2302. Specifically, the content block system 102 generates a virtual space interface 2304 that includes content blocks within block sections and further includes various user interface elements for interacting with the virtual space interface 2304. For example, the content block system 102 generates a content block 2306 to be included within the virtual space interface 2304, which includes a block identifier 2308 and a source identifier 2310, and digital content 2312 (accessed from a location referenced by the source identifier 2310, but not copied into the data of content block 2306).
[0188] In some cases, content block 2306 further generates a block preview 2314 from content block 2306. More specifically, content block system 102 generates a block preview 2314 to include digital content 2312 available within the virtual space interface 2304 and / or modified block content 2316 with various block functions simplified or partially removed. For example, content block system 102 generates a block preview 2314 to include a modified version of digital content 2312 by removing sensitive information and / or user-selected information. Furthermore, content block system 102 generates a block preview 2314 by removing certain interact functions of content block 2306, including the ability to modify the visual characteristics of digital content 2312 and / or content block 2306.
[0189] In some cases, the content blocking system 102 generates a block preview 2314 in a format or file type accessible by a third-party client device 2318 without requiring the installation of a virtual space platform. The content blocking system 102 can also provide a block preview 2314 for display within a web browser on a third-party client device 2318. As shown in the figure, the content blocking system 102 generates a spatial preview 2320 for display on a third-party client device 2318. Within the spatial preview 2320, the content blocking system 102 provides a block preview 2314 within a modified version of the virtual space interface 2304, which does not include selectable options for adding content blocks or linking content blocks to a virtual meeting. In some cases, the content blocking system 102 can also provide a block preview 2314 containing only a block summary (as described above), or modified block content 2316 in another format suitable for access by a third-party client device 2318, rather than digital content 2312. In fact, the content block system 102 can generate a spatial preview 2320 and / or a block preview 2314 due to the limited interactivity with the content of the content block.
[0190] Figures 19 to 23, the corresponding text, and the examples provide several different systems and methods for generating and managing a virtual space platform for a content-blocking browser. In addition to the foregoing, implementation forms can be described in the form of flowcharts, which include the operational steps in a method for achieving a particular result. For example, Figure 24 shows an example of a set of operations for generating and managing a virtual space platform for a content-blocking browser.
[0191] Figure 24 illustrates the operation of one implementation, but alternative implementations may omit, add, rearrange, and / or modify any of the operations shown in Figure 24. The operation in Figure 24 can be performed as part of a method. Alternatively, a non-temporary computer-readable medium may, when executed by one or more processors, provide instructions that cause a computing device to perform the operation in Figure 24. In yet another implementation, the system may perform the operation in Figure 24.
[0192] As shown in Figure 24, a set of operations 2400 may include an operation 2410 that generates a virtual space for a content block browser. For example, operation 2410 involves generating a virtual space containing one or more content blocks, each having a block identifier associated with a source identifier that references a web page. Furthermore, a set of operations 2400 may include an operation 2420 that embeds the content blocks of the web page. For example, operation 2420 involves embedding a content block within the virtual space that integrates the (digital content and) functionality of the web page referenced by the source identifier of the content block. Furthermore, a set of operations 2400 may include an operation 2430 that receives interaction with the content block. For example, operation 2430 includes receiving instructions for user interaction with the content block (e.g., changing the digital content within the content block). Furthermore, a set of operations 2400 may include an operation 2440 that modifies the web page in accordance with the interaction. For example, operation 2440 includes modifying the web page in accordance with the user interaction with the content block.
[0193] In some embodiments, the sequence of operations 2400 includes an operation to embed a content block by using the content block's source identifier to access a server location hosting the digital content associated with the web page and integrating the digital content associated with the web page into the content block. Furthermore, the sequence of operations 2400 includes an operation to generate a virtual space, which includes an operation to generate an instance of a content block-based web browser, the web browser displaying one or more content blocks placed within the virtual space as individual user interface elements whose size and position within the virtual space can be changed.
[0194] In certain embodiments, the sequence of operations 2400 includes operations that receive instructions for user interaction with a content block by receiving instructions to modify digital content stored in a server location associated with the web page. Furthermore, the sequence of operations 2400 includes operations that modify the web page in accordance with the user interaction by modifying the digital content stored in a server location associated with the web page in response to the user interaction with the content block. Furthermore, the sequence of operations 2400 includes operations that embed content blocks that integrate the functionality of the web page by identifying application integrations for a virtual space that integrate the functionality of a web browser application into the virtual space.
[0195] In one or more embodiments, the sequence of operations 2400 includes operations to create a virtual space by generating additional content blocks for display within the virtual space, each additional content block including a block identifier associated with a source identifier that references digital content associated with an external application other than a web browser. Furthermore, the sequence of operations 2400 includes operations to embed the content block by using the source identifier of the content block to access a server location hosting the digital content associated with the web page, and by adapting the functionality of the web page for the content block to facilitate interaction with the digital content at the server location via the content block.
[0196] In some embodiments, the sequence of operations 2400 includes operations that generate a spatial preview for a virtual space by modifying the accessibility of the functionality of one or more content blocks for providing a spatial preview to client devices outside the system associated with the virtual space. Furthermore, the sequence of operations 2400 includes operations that embed additional content blocks into the virtual space that integrate the functionality of additional web pages, and these content blocks and additional content blocks are displayed simultaneously in the virtual space. Furthermore, the sequence of operations 2400 may include operations that generate communication threads associated with the content blocks and / or operations that provide communication threads for display within the content blocks, along with digital content from web pages referenced by source identifiers.
[0197] In certain embodiments, the sequence of operations 2400 includes operations to generate a virtual space by generating an instance of a content block-based web browser that presents one or more content blocks placed in the virtual space as individual user interface elements having modifiable visual properties. Furthermore, the sequence of operations 2400 includes operations to embed a content block by accessing a server location hosting digital content associated with a web page using the source identifier of the content block and integrating the digital content associated with the web page into the content block. Furthermore, the sequence of operations 2400 includes operations to receive instructions for user interaction with a content block by receiving instructions to modify the digital content presented within the content block, and / or operations to modify a web page in accordance with a user interaction by propagating the changes made to the digital content presented within the content block to the web page referenced by the source identifier based on the user interaction.
[0198] In some embodiments, the sequence of operations 2400 includes operations to generate a block preview of a content block by modifying the functionality of the content block in order to provide a block preview to client devices having different permission settings. Furthermore, the sequence of operations 2400 includes operations to embed a content block that integrates the functionality of a web page by identifying an application integration for a virtual space that integrates the functionality of a web browser application into the virtual space. In some cases, the sequence of operations 2400 includes operations to generate a virtual space by generating an additional content block for display within the virtual space, the additional content block including a block identifier associated with a source identifier that references digital content stored in a content management system.
[0199] The components of the content block system 102 may include software, hardware, or both. For example, the components of the content block system 102 may include one or more instructions stored in a computer-readable storage medium and executable by the processor of one or more computing devices. When executed by one or more processors, the computer-executable instructions of the content block system 102 may cause the computing device to perform the methods described herein. Alternatively, the components of the content block system 102 may include hardware such as dedicated processing devices for performing a particular function or group of functions. Additionally or alternatively, the components of the content block system 102 may include combinations of computer-executable instructions and hardware.
[0200] Furthermore, the components of the content block system 102 that perform the functions described herein may be implemented, for example, as part of a standalone application, as a module of an application, as a plug-in to an application including a content management application, as a library function or function that can be called by other applications, and / or as a cloud computing model. Thus, the components of the content block system 102 may be implemented as part of a standalone application on a personal computing device or a mobile device.
[0201] Embodiments of the present disclosure may include or utilize a dedicated or general-purpose computer, for example, one or more processors and system memory, among other computer hardware. Implementations within the scope of the present disclosure also include physical and other computer-readable media for carrying or storing computer-executable instructions and / or data structures. Specifically, one or more of the processes described herein may be implemented as instructions that are at least partially embodied in non-temporary computer-readable media and executable by one or more computing devices (e.g., any of the media content access devices described herein). Generally, a processor (e.g., a microprocessor) receives instructions from non-temporary computer-readable media (e.g., memory), executes those instructions, and thereby executes one or more processes, including one or more of the processes described herein.
[0202] A computer-readable medium can be any available medium that can be accessed by a general-purpose or dedicated computer system. A computer-readable medium that stores computer-executable instructions is a non-temporary computer-readable storage medium (device). A computer-readable medium that carries computer-executable instructions is a transmission medium. Therefore, implementations of the present disclosure may comprise at least two distinctly different types of computer-readable mediums, namely, a non-temporary computer-readable storage medium (device) and a transmission medium.
[0203] Non-temporary computer-readable storage media (devices) include RAM, ROM, EEPROM, CD-ROM, solid-state drives ("SSDs") (e.g., based on RAM), flash memory, phase-change memory ("PCM"), other types of memory, other optical disk storage devices, magnetic disk storage devices, or other magnetic storage devices, or any other media that may be used to store desired program code means in the form of computer-executable instructions or data structures and may be accessed by a general-purpose or dedicated computer.
[0204] A “network” is defined as one or more data links that enable the transfer of electronic data between computer systems and / or modules and / or other electronic devices. When information is transferred to or provided to a computer via a network or another communication connection (wired, wireless, or a combination of wired and wireless), the computer appropriately views that connection as a transmission medium. A transmission medium can be used to carry desired program code means in the formation of computer executable instructions or data structures and may include network links and / or data links that can be accessed by a general-purpose or dedicated computer. The above combinations should also be included within the scope of computer-readable media.
[0205] Furthermore, upon reaching various computer system configurations, program code in the form of computer-executable instructions or data structures can be automatically transferred from a transmission medium to a non-temporary computer-readable storage medium (device) (or vice versa). For example, computer-executable instructions or data structures received via a network or data link can be buffered in RAM within a network interface module (e.g., a "NIC") and then, finally, transferred to computer system RAM and / or a non-volatile computer storage medium (device) within the computer system. Therefore, it should be understood that non-temporary computer-readable storage mediums (devices) can be included in computer system components that also (or primarily) utilize a transmission medium.
[0206] Computer executable instructions include, for example, instructions and data that, when executed by a processor, cause a general-purpose computer, a dedicated computer, or a dedicated processing device to perform a specific function or group of functions. In some implementations, computer executable instructions are executed on a general-purpose computer, transforming the general-purpose computer into a dedicated computer implementing the elements of this disclosure. Computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or source code. While the subject matter has been described in language specific to structural features and / or methodological acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the features or acts described above. Rather, the features and acts described are disclosed as exemplary formations for implementing the claims.
[0207] Those skilled in the art will understand that this disclosure can be implemented in network computing environments having many types of computer system configurations, including personal computers, desktop computers, laptop computers, message processors, handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile phones, PDAs, tablets, pagers, routers, switches, and the like. This disclosure can also be implemented in distributed system environments where both local and remote computer systems linked over a network (by wired data links, wireless data links, or a combination of wired and wireless data links) perform tasks. In a distributed system environment, program modules can be located on both local and remote memory storage devices.
[0208] Implementations of this disclosure may also be implemented in a cloud computing environment. In this specification, “cloud computing” is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources. For example, cloud computing may be used in the market to provide ubiquitous and convenient on-demand access to a shared pool of configurable computing resources. The shared pool of configurable computing resources can be rapidly provisioned via virtualization, freed up with low management effort or service provider interaction, and then scaled accordingly.
[0209] A cloud computing model can consist of various characteristics such as on-demand self-service, broad network access, resource pooling, rapid resilience, and measurement services. A cloud computing model can also expose various service models, such as Software-as-a-Service ("SaaS"), Platform-as-a-Service ("PaaS"), and Infrastructure-as-a-Service ("IaaS"). A cloud computing model can also be deployed using different deployment models, such as private cloud, community cloud, public cloud, and hybrid cloud. In this specification and the claims, "cloud computing environment" refers to an environment in which cloud computing is employed.
[0210] Figure 25 shows a block diagram of an exemplary computing device 2500 (e.g., server 104 and / or client devices 108a-108n) that may be configured to perform one or more of the processes described above. It will be understood that server 104 and / or client devices 108a-108n may comprise one or more computing devices, such as computing device 2500. As shown in Figure 25, computing device 2500 may comprise a processor 2502, memory 2504, storage device 2506, I / O interface 2508, and communication interface 2510, which may be communicatively coupled by a communication infrastructure 2512. While an exemplary computing device 2500 is shown in Figure 25, the components shown in Figure 25 are not intended to be limiting. Additional or alternative components may be used in other implementations. Furthermore, in some implementations, computing device 2500 may contain fewer components than those shown in Figure 25. The components of computing device 2500 shown in Figure 25 will now be described in more detail.
[0211] In certain implementations, the processor 2502 includes hardware for executing instructions, such as instructions that make up a computer program. To execute instructions, the processor 2502 may retrieve (or fetch) instructions from internal registers, internal caches, memory 2504, or storage device 2506, decode them, and execute them. In certain implementations, the processor 2502 may include one or more internal caches for data, instructions, or addresses. To include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). Instructions in the instruction cache may be copies of instructions in memory 2504 or storage device 2506.
[0212] Memory 2504 may be used to store data, metadata, and programs for execution by the processor. Memory 2504 may include one or more volatile and non-volatile memories, such as random access memory ("RAM"), read-only memory ("ROM"), solid-state disks ("SSD"), flash memory, phase-change memory ("PCM"), or other types of data storage devices. Memory 2504 may be internal or distributed memory.
[0213] The storage device 2506 includes a storage device for storing data or instructions. For example, but not limited to, the storage device 2506 may comprise the non-temporary storage media described above. The storage device 2506 may include a hard disk drive (HDD), a floppy disk (registered trademark) disk drive, flash memory, an optical disk, a magneto-optical disk, a magnetic tape, or a Universal Serial Bus (USB) drive, or a combination of two or more of these. The storage device 2506 may include removable or non-removable (or fixed) media, as required. The storage device 2506 may be located inside or outside the computing device 2500. In certain implementations, the storage device 2506 is non-volatile solid-state memory. In other implementations, the storage device 2506 includes read-only memory (ROM). Where appropriate, this ROM may be a masked program ROM, a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), an electrically modifiable ROM (EAROM), or flash memory, or a combination of two or more of these.
[0214] The I / O interface 2508 allows the user to provide input to the computing device 2500, receive output from it, and otherwise send and receive data from it. The I / O interface 2508 may include a mouse, keypad or keyboard, touchscreen, camera, optical scanner, network interface, modem, other known I / O devices, or combinations of such I / O interfaces. The I / O interface 2508 may include, but is not limited to, a graphics engine, a display (e.g., a display screen), one or more output drivers (e.g., display drivers), one or more audio speakers, and one or more audio drivers, for presenting output to the user. In some implementations, the I / O interface 2508 is configured to provide graphical data to the display for presentation to the user. The graphical data may represent one or more graphical user interfaces and / or any other graphical content, fulfilling a specific implementation.
[0215] The communication interface 2510 may include hardware, software, or both. In any case, the communication interface 2510 may provide one or more interfaces for communication (e.g., packet-based communication) between the computing device 2500 and one or more other computing devices or networks. For example, but not limited to, the communication interface 2510 may include a network interface controller (NIC) or network adapter for communication with Ethernet® or other wired-based networks, or a wireless NIC (WNIC) or wireless adapter for communication with wireless networks such as Wi-Fi.
[0216] As an addition or alternative, the communication interface 2510 may facilitate communication with one or more parts of an ad hoc network, personal area network (PAN), local area network (LAN), wide area network (WAN), metropolitan area network (MAN), or the Internet, or two or more combinations thereof. One or more parts of one or more of these networks may be wired or wireless. As an example, the communication interface 2510 may enable communication with a wireless PAN (WPAN) (e.g., Bluetooth WPAN), a Wi-Fi network, a Wi-MAX network, a cellular telephone network (e.g., a Global System for Mobile Communications (GSM) network), or other suitable wireless network, or a combination thereof.
[0217] Furthermore, the communication interface 2510 facilitates communication using various communication protocols. Examples of communication protocols used include, but are not limited to, data transmission media, Transmission Control Protocol ("TCP"), Internet Protocol ("IP"), File Transfer Protocol ("FTP"), Telnet, Hypertext Transfer Protocol ("HTTP"), Hypertext Transfer Protocol Secure ("HTTPS"), Session Initiation Protocol ("SIP"), Simple Object Access Protocol ("SOAP"), Extensible Markup Language ("XML") and its derivatives, Simple Mail Transfer Protocol ("SMTP"), Real-Time Transfer Protocol ("RTP"), User Datagram Protocol ("UDP"), Global System for Mobile Communications ("GSM") technology, Code Division Multiple Access ("CDMA") technology, Time Division Multiple Access ("TDMA") technology, Short Message Service ("SMS"), Multimedia Message Service ("MMS"), Radio Frequency ("RF") signaling technology, Long-Term Evolution (LTE) technology, wireless communication technology, in-band and out-of-band signaling technology, and other appropriate communication networks and technologies.
[0218] The communication infrastructure 2512 may include hardware, software, or both that connect the components of the computing device 2500 to one another. Examples, but not limited to, the communication infrastructure 2512 may include Accelerated Graphics Port (AGP) or other graphics buses, Extensible Industry Standard Architecture (EISA) buses, Frontside Bus (FSB), Hypertransport (HT) interconnects, Industry Standard Architecture (ISA) buses, Infiniband interconnects, Low Pin Count (LPC) buses, memory buses, Microchannel Architecture (MCA) buses, Peripheral Components Interconnect (PCI) buses, PCI-Express (PCIe) buses, Serial Advanced Technology Attachment (SATA) buses, Video Electronics Standards Association Local (VLB) buses, or other appropriate buses, or combinations thereof.
[0219] Figure 26 is a schematic diagram showing an environment 2600 in which one or more implementations of the content block system 102 may be implemented. For example, the content block system 102 may be part of a content management system 2602 (e.g., content management system 106). The content management system 2602 can generate, store, manage, receive, and transmit digital content (such as digital content items). For example, the content management system 2602 can send and receive digital content to and from a client device 2606 via a network 2604. Specifically, the content management system 2602 can store and manage collections of digital content. The content management system 2602 can manage the sharing of digital content between computing devices associated with multiple users. For example, the content management system 2602 can facilitate the sharing of digital content between users of the content management system 2602.
[0220] Specifically, the content management system 2602 can manage the synchronization of digital content across multiple client devices 2606 associated with one or more users. For example, a user can edit digital content using a client device 2606. The content management system 2602 can then have the client device 2606 send the edited digital content to the content management system 2602. The content management system 2602 then synchronizes the edited digital content on one or more additional computing devices.
[0221] In addition to synchronizing digital content across multiple devices, one or more implementations of the content management system 2602 can provide efficient storage options for users with large collections of digital content. For example, the content management system 2602 can store a collection of digital content on its own, while the client device 2606 stores only reduced-size versions of the digital content. Users can navigate and view reduced-size versions of the digital content (e.g., thumbnails of digital images) on the client device 2606. Specifically, one way a user can experience digital content is by viewing reduced-size versions of the digital content on the client device 2606.
[0222] Another way for users to experience digital content is by selecting a reduced-size version of the digital content and requesting the full-size or high-resolution version from the content management system 2602. Specifically, when a user selects a reduced-size version of the digital content, the client device 2606 sends a request to the content management system 2602 requesting the digital content associated with the reduced-size version. The content management system 2602 can respond to the request by sending the digital content to the client device 2606. Then, upon receiving the digital content, the client device 2606 can present it to the user. In this way, the user can access a large collection of digital content while minimizing the amount of resources used on the client device 2606.
[0223] The client device 2606 may be a desktop computer, laptop computer, tablet computer, personal data assistant (PDA), in-car or out-of-car navigation system, handheld device, smartphone or other cellular or mobile phone, or mobile gaming device, other mobile device, or other suitable computing device. The client device 2606 may run one or more client applications, such as a web browser (e.g., Microsoft Windows Internet Explorer, Mozilla Firefox, Apple Safari, Google Chrome, Opera, etc.) or a native or dedicated client application (e.g., Dropbox Paper for iPhone or iPad, Dropbox Paper for Android, etc.), to access and view content via the network 2604.
[0224] Network 2604 can represent a network or a collection of networks (such as the Internet, a corporate intranet, a virtual private network (VPN), a local area network (LAN), a wireless local area network (WLAN), a cellular network, a wide area network (WAN), a metropolitan area network (MAN), or a combination of two or more such networks), and client devices 2606 can access the content management system 2602 through that network.
[0225] In the aforementioned specification, the Disclosure has been described with reference to specific exemplary implementations thereof. Various implementations and aspects of the Disclosure are described with reference to the details discussed herein, and the accompanying drawings illustrate various implementations. The above description and drawings are illustrative of the Disclosure and should not be construed as limiting. Numerous specific details are described in order to provide a complete understanding of the various implementations of the Disclosure.
[0226] This disclosure may be implemented in other specific forms without departing from its intent or essential features. The described implementations should be considered in all respects to be illustrative and not limiting. For example, the methods described herein may be performed in fewer or more steps / operations, or the steps / operations may be performed in a different order. Furthermore, the steps / operations described herein may be repeated, performed in parallel with one another, or in parallel with different instances of the same or similar steps / operations. Accordingly, the scope of this application is indicated not by the foregoing description but by the appended claims. All modifications that fall within the meaning and scope of the equivalents of the claims should be encompassed within those scopes.
[0227] The aforementioned specification is described with reference to its specific exemplary implementation. Various implementations and aspects of this disclosure are described with reference to the details discussed herein, and the accompanying drawings illustrate various implementations. The above description and drawings are illustrative and should not be construed as limiting. Numerous specific details are described in order to provide a complete understanding of the various implementations.
[0228] Additional or alternative implementations may be carried out in other specific forms without departing from the spirit or essential features thereof. The described implementations should be considered in all respects to be illustrative and not limiting. Accordingly, the scope of the invention is indicated not by the foregoing description but by the appended claims. All modifications that fall within the meaning and scope of the equivalents of the claims should be encompassed within those scopes.
Claims
1. To generate a source identifier that indicates the server location where the content item is stored, The process involves generating a multi-location data block from the source identifier that references the content item stored in the server location of the source identifier, wherein the multi-location data block can be simultaneously embedded in multiple virtual spaces using a single block identifier. With respect to the multi-location data block, determine a plurality of block configurations that exhibit different visual characteristics for displaying the multi-location data block in each virtual space, For the multi-location data block, the content renderer repository is identified to determine which content renderer is suitable for visualizing the multi-location data block according to the block configuration from among the multiple block configurations. Methods that include...
2. The method according to claim 1, wherein generating the source identifier includes generating a data element that associates the server location storing the content item with a multi-location data block that includes a block identifier referencing the source identifier.
3. The method according to claim 1, wherein generating the multi-location data block comprises generating a data element stored in a single server location, the data element incorporating at least a portion of the content item by associating the single block identifier with the source identifier.
4. The method according to claim 1, wherein determining the plurality of block configurations includes determining visual characteristics set by different client devices to present different visual representations of the multi-location data blocks in each of the virtual spaces.
5. The method according to claim 1, wherein identifying the content renderer suitable for the visualization of the multi-location data block includes identifying the application integration associated with the block type of the multi-location data block.
6. The method according to claim 1, further comprising determining the content renderer in the repository of content renderers by receiving instructions from a client device for a plurality of application integrations to be incorporated into the virtual space platform using their respective application programming interfaces.
7. The method according to claim 1, further comprising generating additional multilocation data blocks that include block identifiers specific to the virtual space platform and not associated with a corresponding source identifier.
8. It is a system, At least one processor, When executed by the at least one processor, the system Generate a source identifier that indicates the server location where the content item is stored, From the source identifier, a multi-location data block is generated that references the content item stored in the server location of the source identifier, and the multi-location data block can be simultaneously embedded in multiple virtual spaces using a single block identifier. For the multi-location data block, a plurality of block configurations are determined that exhibit different visual characteristics set by different client devices for displaying the multi-location data block in each virtual space. For the multi-location data block, a content renderer is identified from the content renderer repository that is suitable for visualizing the multi-location data block according to the block configuration from among the multiple block configurations. A non-temporary computer-readable medium containing instructions to cause it to operate in such a way, A system that includes this.
9. The system according to claim 8, further comprising instructions, when executed by the at least one processor, causing the system to generate the source identifier by generating a data element that references the server location storing the content item, in order to incorporate the content item into a multi-location data block without copying the content item.
10. The system according to claim 8, further comprising instructions, when executed by the at least one processor, causing the system to generate the multilocation data block by generating data elements stored in a single server location, wherein the data elements incorporate the content items by associating the single block identifier with the source identifier, without storing the content items in the single server location of the data element.
11. When executed by the at least one processor, the system Determine the block type associated with the aforementioned multi-location data block, Identifying the application integration associated with the aforementioned block type, The system according to claim 8, further comprising instructions to cause the content renderer to operate in such a manner as to identify the content renderer suitable for visualizing the multi-location data block.
12. The system according to claim 8, further comprising instructions, when executed by the at least one processor, causing the system to operate to identify the content renderer from the repository of content renderers, which includes segments of computer code generated from corresponding application integrations for rendering content items in a multilocation data block.
13. When executed by the at least one processor, the system The multi-location data block is provided for display in the first virtual space according to the first block configuration set by the first client device. The system according to claim 8, further comprising instructions to operate to provide the multi-location data blocks for display in a second virtual space according to a second block configuration set by a second client device.
14. When executed by the at least one processor, the system The system according to claim 8, further comprising instructions to cause it to operate in order to generate a unique multilocation data block containing a block identifier not associated with a corresponding source identifier.
15. When executed by at least one processor, the at least one processor is Generate a source identifier that indicates the server location where the content item is stored, From the source identifier, a multi-location data block is generated that references the content item stored in the server location of the source identifier, and the multi-location data block can be simultaneously embedded in multiple virtual spaces using a single block identifier. For the multi-location data block, a plurality of block configurations exhibiting different visual characteristics for displaying the multi-location data block in each virtual space are determined. For the multi-location data block, a content renderer is identified from the repository of content renderers associated with application integration for the virtual space platform, according to the block configuration from among the multiple block configurations, that is suitable for the visualization of the multi-location data block. A computer program that contains instructions to make something work in a certain way.
16. The computer program according to claim 15, further comprising instructions that, when executed by the at least one processor, cause the at least one processor to generate the multilocation data block by generating the data elements stored in the single server location, which incorporate the content items by associating the single block identifier with the source identifier, without storing the content items in a single server location of data elements.
17. The computer program according to claim 15, which, when executed by the at least one processor, further includes instructions causing the at least one processor to determine the plurality of block configurations by determining the locations and dimensions related to the versions of the multilocation data blocks displayed together with each of the virtual spaces.
18. When executed by the at least one processor, the at least one processor is Determine the task list associated with the aforementioned multi-location data block, The computer program according to claim 15, further comprising instructions to cause the task list to generate a task identifier that includes a data element associated with the single block identifier of the multilocation data block.
19. When executed by the at least one processor, the at least one processor is Determine the communication thread associated with the multi-location data block, The computer program according to claim 15, further comprising an instruction causing the communication thread to generate a thread identifier that includes a data element associated with the single block identifier of the multilocation data block.
20. When executed by the at least one processor, the at least one processor is The system receives instructions for user interaction with the multilocation data block to change the content presented within the multilocation data block. The computer program according to claim 15, further comprising instructions to operate, based on the instructions of the user interaction, to propagate changes made to the content presented in the multilocation data block to the content item stored in the server location associated with the source identifier, using a bidirectional change channel.
Citation Information
Patent Citations
Content synchronization method for multiple authorized spaces based on digital map
CN112783993A
Method and apparatus for enabling related portlets of a web portal to cooperate for synchronized content presentation
JP2006501557A
System and method for maintaining local virtual state during server-side storage and intermittent network connectivity across multiple devices and multiple users
JP2016529634A
Information processing system, information processing method, and information processing program
JP2022093785A
Reverse proxy portlet with rule-based, instance level configuration
US20060041637A1