Patent ID: 12260172

DETAILED DESCRIPTION

The storage of information in digital files is inherently problematic. Firstly, different productivity software will generally store information in proprietary file types. In proprietary file types, content, formatting, and metadata are generally bundled together in a manner rendering the content inaccessible to workers without particular productivity software configured to read and manipulate the bundle.

Second, sharing a specific set of information stored within a file generally entails searching through several files to find the set of information desired, extracting the information manually, and sending the information through a direct communications means such as a file transfer protocol or email. Alternatively, a worker may share an entire file containing the set of information desired, but the file will typically contain much more information than is desired by the recipient, causing an undue burden on information transmission networks and storage systems.

Third, the updating and versioning of content stored in files when a particular set of information in a file is updated are problematic because the versioning takes place at the file level. Updating a specific set of information stored within a file means creating a new version of the entire file, causing an undue burden on storage systems, and undue complexity in managing and distributing content updates.

Recent developments in file management such as cloud file storage systems go some way toward providing for smoother file sharing, but existing systems still store and share information in the form of files, and thus do not address the issues described above.

The present disclosure provides a system for digital information management which enables the fileless sharing of information. The system stores raw information content including text, numerical information, formatting information, image information, and other raw information which may otherwise be bundled into files, in a database stored on a content-management server. Uploading, downloading, sharing, editing, versioning, and security control of the raw information content is managed through the use of objects which may be termed content cards.

A content card includes two aspects: content card instances, which can appear as snippets of content in a document, on a webpage, or in another content-editing or content-displaying area, and content card templates, which are stored on a content-management server and which serve as mediators for uploading, downloading, sharing, editing versioning, and security control of content card instances.

A content card instance includes a content layer having raw text, numerical, or image content, a metadata layer having security metadata, formatting data, and content bindings which integrate with the document, webpage, or other content-editing or content-displaying area in which the content card instance is present, which enables data to be transmitted and received between the content card instance and the content-management server.

Generally, a content card instance will reflect an associated content card template, which points to content data, which includes raw content stored on the content-management server which should be included in the content card instance, along with metadata which enables compatibility between different productivity software. A content card instance inherits metadata, including permissions and formatting data, unless otherwise specified, from a content card template. Where an instance of a content card is edited in a document by a user, a new version of the content card can be created and associated with the content card template, and made available to other users. Where a user wishes to create a new document drawing from raw content stored on the content-management server, the user may select cards to pull into the document, allowing easy creation of new documents using the most up-to-date information. Editing and security control can be managed at the content card level.

Existing productivity software can be configured with a plugin enabling integration with the system. A word processor, for example, may include a toolbar dedicated to content card management, where existing content cards can be pulled into the document, and where new content cards can be created and uploaded to the system for sharing with other users.

Thus, instead of storing information in files, a user is able to store the information in smaller, more manageable snippets, through content cards, which can be independently shared, edited, updated, and controlled. Raw content can be created in one productivity software program, shared with another program, without compatibility issues, and without the burden of managing files. Raw content can, therefore, be consistently and congruently maintained across different productivity software and productivity suites.

Furthermore, the management of content data in more manageable quantities enables the application of several power analytical methods. For example, the system can identify content cards containing similar raw content and categorize the content cards accordingly. As another example, the system can recognize that when one content card is updated, and whether any related content cards may also require updating. For example, where a snippet of language in an important term in a standardized contract is updated in one content card instance in one document, notifications may be sent suggesting that similar terms in similar contracts in other documents should be similarly updated.

Other features and advantages of the system are described in greater detail below, with reference to the non-limiting embodiments described in the attached Figures. Although the following embodiments generally describe a system for digital information management in the context of document editing, it is to be understood that the example embodiments provided do not limit the scope of the present disclosure.

FIG.1is a schematic diagram of a system for digital information management, according to a non-limiting embodiment. The system includes a client device100and a content-management server150in communication over one or more computer networks, indicated as network connection50. The client device100includes a computing device having storage, communication, and processing means, and is configured to run productivity software programs, as described further below. The content-management server150similarly includes a computing device having storage, communication, and processing means, and is configured to receive, store, and transmit content data via content card templates.

The network connection50can include a connection via the internet, a Wi-Fi network, a local-area network, a wide-area network (WAN), a wireless cellular data network, a virtual private network (VPN), a combination of such, and similar.

Client device100includes a processor102, a graphical display surface103, a network interface104, and a memory106, and may include several other computing components not shown for brevity, such as one or more input devices.

Although a single processor102is shown, the term “processor” as discussed herein refers to any quantity and combination of a processor, a central processing unit (CPU), a microprocessor, a microcontroller, a field-programmable gate array (FPGA), and similar.

The network interface includes programming logic enabling the client device100to communicate over network connection50, is configured for bidirectional data communications through the network connection50, and accordingly can include a network adaptor and driver suitable for the type of network used.

The memory106can include volatile storage and non-volatile storage. Volatile storage may include random-access memory (RAM) or similar. Non-volatile storage may include a hard drive, flash memory, and similar. The memory106stores programming instructions for executing a productivity program110. A productivity program110can include any program with which a user may create or edit productive or creative content, such as a word processor, a spreadsheet processor, a presentation processor, a code editor, an image editor, animation software, and the like. Examples of word processors include Microsoft® Word and Google® Docs. Examples of spreadsheet processors include Microsoft® Excel and Google® Sheets. Examples of presentation processors include Microsoft® PowerPoint and Google® Slides. An example image editor includes Adobe® Illustrator.

The memory106further stores various files108as a means for storing information generated using the productivity program110. The content data, which includes raw content and metadata such as formatting data, stored in the various files108, may be stored in different file types, such as .docx, .xlsx, or .pptx, depending on the productivity program110used to generate a particular file108. The storage of information in files effectively locks the information stored therein from access without the proper productivity program110designed to manipulate the file. However, the content-management server150provides infrastructure for sharing information without being restricted to files. For example, the content management program160may provide a platform for users to directly share information via content cards. In some examples, the productivity program110may include a plugin for integrating with the content-management program160, and the transmission and receiving of data between the content-management server150via network connection50, for the sharing of information.

In some embodiments, the client device100may include a smartphone running an operating system such as, for example, Android®, iOS®, Windows® mobile, or similar, or in other embodiments, a desktop computer, a tablet computer, a laptop, a desktop computer, or similar.

The content-management server150includes a processor152, a network interface154, and a memory156, and may include several other computing components not shown for brevity, such as a display screen and one or more input devices. Although a single content-management server150is described, it is understood that content-management server150may refer to a combination of computers and/or servers, such as in a cloud computing environment.

For a description of processor152, network interface154, and memory156, reference may be had to analogous components of client device100. The memory156, however, stores programming instructions for executing a content management program160for managing raw content and content cards. The content-management server150stores in memory106raw content which should be included in content card instance which may be present in any of the files108, along with the metadata which enables compatibility between different productivity software programs. The content card database158stores content card templates and raw content data associated with content card templates. The content card database158can store raw content in any suitable format, such as in plain text, raw image formats, and markup languages such as XML, OOXML, and HTML, such that the information can be readily shared with users regardless of the productivity software program being used. By storing raw content in the content card database158, and making the raw content shareable and editable through the use of content cards, as discussed below, the need to store documents in the form of files can be obviated. Further, content can be shared using content cards across different productivity programs110irrespective of the particular productivity program110used to generate a particular content card. For example, a first user may create content using a first productivity program110(e.g. draft a document using a word processor), generate a content card containing a portion of the content (e.g. text from the document), and upload the content card to the content-management server150. A second user may access the content card from the content-management server150and use the content in the content card in a second productivity program110(e.g. include the text into an illustrator program). Thus, information may be shared between different users using different programs without regard to compatibility issues between different programs.

The content management program160may provide a platform on which users may access content card templates, generate content card templates, and manage or edit content card templates. A user may use the platform to configure a data model for how content is treated by the content card template. Content card templates accessible on the platform may be restricted in access to particular user accounts, and content card templates may be shareable between different user accounts. A user may interact with the platform through an application programming interface (API) or a graphical user interface hosted by the content-management server150or another server.

Although a single content card database158is shown, it is understood that content card database158may refer to a combination of databases, libraries, and data stores, and can be distributed across several devices, such as in a cloud computing environment. Further, the content card database158may comprise a relational database or a non-relational database.

In some examples, the content card database158may also be based on blockchain or distributed ledger technology that stores raw content card data on a distributed ledger. In such examples, the content-management server150may include a plurality of nodes which process transactions relating to content cards stored on the distributed ledger, such as the addition or editing of a content card. A content card database158based on blockchain or distributed ledger technology provides infrastructure for a decentralized database of content card data and an immutable and tamper-proof history of changes to the content card database158. Further, the nodes may cooperate to store all or parts of the content cards, each independently validating and executing the required logic and permission policies.

FIG.2is a block diagram showing the functional modules of a content management program200, according to a non-limiting embodiment. The functional modules described herein include the programming instructions for executing the methods discussed throughout the Figures.

The content management program200includes a content data transmitter/receiver202for transmitting/receiving raw content and associated metadata to/from client devices. In some embodiments, the content data transmitter/receiver202communicates with a plugin integrated into a productivity software application.

The content management program200includes a content card template manager204for creating and modifying content card templates stored on the content-management server. The content card template manager204includes an association manager206, which creates, deletes, and modifies associations of content card templates stored on the content-management server; a version manager208which creates new versions of content card templates; and a permissions manager210which manages user permissions to view, edit, share, or perform other tasks with content cards; and a format manager212for managing formatting metadata associated with content card templates so that raw content is viewable consistently across different platforms.

The content management program200includes a request manager214which sends requests for content and receives requests for content, from client devices and other third-party software for content stored on the content-management server.

The content management program200includes an analytics module216, which can be used to analyze and gain insights from the content stored on the content-management server.

FIG.3is a schematic diagram of a word processor application300, according to a non-limiting embodiment. The word processor application300is running on a client device in communication with a content-management server over a network connection. The application includes a plugin320for integrating with a content-management server for ease of transferring information via content cards. The word processor application300may generally be configured for creating and editing documents where the documents are stored in files. However, using the features described herein, the word processor application300can be used to create and edit documents and/or content for use in documents that are stored not in files, but distributed on a content-management server.

The application includes a user interface301showing an opened document, which includes a content-editing area302where content can be generated and edited by a user, a word processor tools area304, and a content card management area306. The content included in the document is organized and stored in the background in XML layer312. The XML layer312provides the organizational structure, formatting, and raw content, displayed in content-editing area302. Although in the present embodiment an XML layer312is shown, in other embodiments, other background layers of other markup languages or other background formatting, may be used.

The content-editing area302includes various types of content, including text, tables, images, and other content, formatted and organized according to XML layer312. The content-editing area302also includes content card instances310A,310B, and310C (generally termed content card instances310). As an example, content card instance310A contains image content, content card instance310B includes a table with tabular numerical data, and content card instance310C includes text. Content card instances310can wrap around or overlay the other content in the content-editing area302as the XML layer312dictates. Content card instances310A,310B,310C, are embedded into the document via content bindings314A,314B, and314C, respectively (generally termed bindings314), in XML layer312. Bindings314provide an anchor for content card instances310in the content-editing area302and provide a linkage through which data may be transmitted to and from the content-management server through plugin320.

Using the content card management area306, a user can select an existing content card using content card icon308to import a content card instance into the content-editing area302. Where a content card is imported into content-editing area302, an empty content card instance310is generated in the document, with a binding314linking into XML layer312. Raw content is then transmitted by the content-management server through plugin320for use as content in the new content card instance310. Thus, a user can manipulate content for the use in documents without the content being stored in files. Drag-and-drop functionality may be employed, whereby a user may drag and drop a new content card into content-editing area302.

Using the content card management area306, a user can also upload/generate a new content card using upload icon309. The content card management area306can include drag-and-drop functionality, whereby a user may drag a content card from the content card management area306, or may generate a new content card by selecting text, a table, an image, or other content in the content-editing area302, and dropping the selected content into upload icon309. The plugin320may then communicate with the content-management server to generate a new content card template on the content-management server, or update an existing content card template, as appropriate. Thus, the user does not need to store the document in files, and can more freely share the content with other users, and manage versioning and access permissions, to such content, using content cards.

FIG.4Ais a schematic diagram of a content card instance400, according to a non-limiting embodiment. A content card instance400includes metadata412and raw content422and associated metadata412.

Raw content422can include any type of raw content, including text, table, or image. The metadata412includes the binding, formatting, and permissions data associated with raw content422.

The content card instance400is associated with a content card template on a content-management server. The content card template stores the raw content422, different versions thereof, and the associated metadata. Where, for example, text raw content422is updated in the content card template, the updated raw content can be pulled to instance400to replace text raw content422in a document through a binding in the file.

The permissions data in metadata412can set permissions restrictions on which users may view certain raw content422pulled to a content card instance400. Further, permissions data can include permissions restrictions on which users may edit, insert into, or update, certain raw content422.

The permission system may also use a policy engine powered by blockchain or distributed ledger technology to determine the permissions of a particular content card, and delegate decryption access to the requesting user provided they pass the policy engine test.

Thus, collaboration on documents can be more granularly managed at the content level. For example, a group of workers building a project proposal comprising text, images, and tabular data, can generate the document using a plurality of content card instances for the raw content. Editing of certain portions of raw content can be restricted to particular teams. For example, the artwork in the project proposal may be restricted to a first team, such as a team of graphic designers, the text content can be restricted to a second team, such as a team of copywriters, and the tabular content can be restricted to a third team, such as a team of developers.

Although one piece of raw content422is shown, it is to be understood that several different pieces of content, including text, table, video, sound, and images, can be included in raw content422. The metadata412applies formatting, binding, and permissions to the raw content422as a whole.

Further, it is to be understood that content card instances400can be nested, whereby a child content card instance400can be associated with a parent content card instance400. The child content card instance can be termed a nested content card instance. Where formatting or permissions are to be handled for different pieces of raw content differently, nested content card instances may be used, such as described in the followingFIG.4B.

FIG.4Bis a schematic diagram of a parent content card instance402, according to a non-limiting embodiment. The parent instance402includes several nested instances400A,400B, and400C (each may generally be referred to as instance400).

Nested instances400A,400B,400C, include raw content422A,422B, and422C (each may generally be referred to as raw content422), respectively. In the present embodiment, raw content422A comprises text, raw content422B comprises a table, and raw content422C comprises an image. However, it is to be understood that in other embodiments, each piece of raw content422can include a combination of text, tables, and images.

Each nested instance400A,400B,400C includes metadata associated with each piece of raw content422A,422B,422C, indicated as metadata412A,412B, and412C (each may generally be referred to as metadata412). The metadata412includes the binding, formatting, and permissions data associated with raw content422.

The parent content card instance402is associated with a content card template on a content-management server. The content card template stores the raw content422, different versions thereof, and the associated metadata. Where, for example, text raw content422A is updated in the content card template, the updated raw content can be pulled to nested instance400A to replace text raw content422A in a document through binding in the file. As another example, where the content card template is modified to change the formatting of text raw content422A, the associated metadata can be pulled to nested instance400A for inclusion into metadata412A such that the text raw content422A can be appropriately displayed in a document through binding in the file.

The permissions data in metadata412can set permissions restrictions on which users may view certain raw content422pulled to a content card instance400. Further, permissions data can include permissions restrictions on which users may edit, insert into, or update, certain raw content422.

FIG.5is a schematic diagram of a content card template510, according to a non-limiting embodiment. The content card template510serves as a mediator for uploading, downloading, sharing, editing versioning, and security control of content, for content card instances502A,502B, and502C (generally termed content card instances502), situated in productivity software programs506A,506B, and506C, respectively, without the use of files.

Productivity software programs506may include different types of software programs. For example, productivity software program506A may be a word processor, productivity software program506B may be a spreadsheet processor, and productivity software program506C may be a presentation processor. Furthermore, productivity software programs506may be part of separate productivity suits which store information in proprietary file types bundled together in a manner rendering the content inaccessible to workers without particular productivity software configured to read and manipulate the bundle.

Each content card instance502is linked to the content card template510by a binding link504A,504B, or504C (generally termed binding link504). A binding link may be formed through a content binding included in XML or other background data, as described inFIG.3.

The content card template510includes metadata512, including association data514, version data518, permission data516, and format data520.

Association data514includes references to binding links504, and pointers between binding links504and content data, such as raw content stored on raw content database520. For example, association data514includes a pointer indicating that content card instance502A should be filled with a particular set of raw content stored on raw content database520. As such, the appropriate data may be transmitted to content card instance502A through binding link504A.

Permission data516includes permissions restrictions defining which users may view certain raw content422pulled to a content card instance400. Further, permissions data can include permissions restrictions on which users may edit, insert into, or update, certain raw content422.

Version data518includes associations to separate versions of content card templates. Content card templates may include several versions, each of which includes different pointers to different sets of raw content in raw content database520. Each content card template version may also differ in metadata, such as permissions or format data.

Format data519includes metadata relating to the formatting of raw content in content card instances502. Format data519may include formatting data for different productivity software programs506. Thus, where raw content is to be transmitted to a particular productivity software program506, it may be transmitted along with the particular set of formatting data readable by that productivity software program506, allowing the raw content to be viewed in a consistent manner across platforms.

Generally, metadata512may include any other metadata to enable congruent viewing and manipulation of raw content data across different productivity software programs. Thus, where a user stores information in a file on Google Docs, the metadata512includes all associated data for the presentation of the information in Google Docs. In addition, corresponding metadata512is generated to enable compatibility between other programs like Microsoft Word. Thus, where an instance of content card template510is inserted into a Microsoft Word document, the information is formatted properly and displayed in a manner congruent with how it is displayed in Google Docs. Where metadata512is not included which enables compatibility with a particular program, a user pulling a content card into the program may be prompted to select a set of metadata which may display the content in the most appropriate manner.

Furthermore, where content in a particular content card instance502is edited in one productivity software program506, other associated content card instances502may be updated in a manner consistent with the edits to the edited content card instance502.

Metadata512may also include grouping data, which includes associations between grouped content card templates510. For example, a particular document, such as a contract used in the legal industry, may include several different content cards, each content card defining a particular term in the contract. Such content cards may be grouped together on a content-management server for organizational purposes. Thus, where a new contract is to be drafted, a user can more easily select related content cards to include into the document.

FIG.6is a data structure diagram of a content card database600of a content-management server, according to a non-limiting embodiment. The content card database600includes several tables of data serving as the infrastructure for the management of content cards on a content-management server.

Content card database600includes a user table602, content card template table604, content card instance table606, activity log table608, and raw content table610.

User table602includes attributes for identification tags, names, and other attributes for users who may interact with the content-management server. Each user may be related to one or more content card instances and may have one or more activity logs describing the user's interactions with content card instances. Each user may also be related to one or more content card templates.

Content card template table604includes attributes for identification tags, names, ownerships, descriptions, linkages to raw content, linkages to metadata, version data, permission data, and other attributes for content card templates stored on the content-management server. Each content card template may be related to one or more users who may interact with the content card template. Each content card template may be related to one or more content card instance with which the content card template is associated, and may be related to one or more stores of raw content.

Content card instances table606includes attributes for identification tags, linkages to raw content, linkages to content card templates, and other attributes for content card instances present in documents. Each content card instance may be related to one or more activity logs describing activities and edits made to content card instances.

Activity log table608includes attributes for identification tags, descriptions of activities, and other attributes for activities or edits made to content card instances.

Raw content table610includes stores of raw content present in content card instances and associated with content card templates. The raw content may be stored in any suitable format, such as in plain text, raw image formats, and markup languages such as XML, OOXML, and HTML, such that the information can be readily shared with users regardless of the productivity software program being used.

In some embodiments, data in the content card database600may be accessible through an application programming interface (API) which enables querying, and in some embodiments, adding to, or modifying, the content card database600. The content card database600can thereby be integrated into software platforms. As one example, the plugin320inFIG.3may communicate with a content card database600through the API. In other embodiments, various third-party software platforms may integrate with the content card database600to, for example, receive updates to content. For example, a webpage platform may be integrated to include content card instances which may be pushed the most updated version of content. Thus, where a set of content associated with a content card template is edited in a productivity software application, a corresponding update could be pushed to a webpage having a content card associated with the same content card template.

FIG.7is a flowchart showing a method700for generating a content card template, according to a non-limiting embodiment. Briefly, a client device creates and fills an instance of a content card in a document, and a content-management server updates or generates a new associated content card template. It is to be emphasized, however, that the blocks of method700need not be performed in the exact sequence as shown. Further, although the method700may be described as performed by a system and device discussed herein, this is not limiting and the method can alternatively be performed by other systems and/or devices.

At block702, a client device creates a content card instance and fills the content card instance. With reference toFIG.3, a user of user interface301may generate text content in the content-editing area302, format the text, and saves the text as a content card instance, such as by clicking the upload icon309. In some embodiments, to generate and save a content card instance, a user may select the text, and drag-and-drop the selected text into content card management area306. Plugin320may then generate a content card instance310, and designate the selected text as filling the content card instance310.FIG.4provides an example of a content card instance400.

At block704, a content-management server receives a notification that a content card instance has been created, and receives the associated content and metadata. With reference toFIG.1, a content-management server150may receive the notification at content management program160, via network connection50, and the raw content and metadata may be stored in a content card database158.

Where the newly created content card is meant to create a new version of an existing content card, block708is executed, and where the newly created content card is meant to create its own content card template, block706is executed.

At block706, a content-management server generates a new content card template. At block714, the content-management server stores the content card template.FIG.5provides an example of a content card template510and the metadata512stored therein.

At block708, a content-management server associates the newly created content card instance with an existing content card template. At block710, it is determined whether the user creating the content card instance has permission to edit the existing content card template. Where permission is granted, block712is executed, where the content-management server creates a new version of the existing content card template.

Thus, users can generate new content and share the content to other users through a content-management server, with the content being compatible across different productivity software applications.

FIG.8is a flowchart showing a method800for pulling content to a content card instance using a content card template, according to a non-limiting embodiment. Briefly, a client device creates an empty content card instance to which raw content and metadata are pulled from a content-management server. It is to be emphasized, however, that the blocks of method800need not be performed in the exact sequence as shown. Further, although the method800may be described as performed by a system and device discussed herein, but this is not limiting and the method can alternatively be performed by other systems and/or devices.

At block802, a client device creates an empty content card instance associated with an existing content card template present on a content-management server.

At block804, the content-management server transmits raw content and associated metadata to the client device for use as content into the empty content card instance.

At block806, the client device fills the empty content card instance with the transmitted content.

Thus, users may receive content shared on a content-management server, and use the content to build documents using content cards. In some embodiments, the method800may include a block where one of the content-management server and the client device check the permission of a user using the client device to retrieve the content. In some embodiments, the content-management server may transmit metadata including formatting data enabling the content to be viewed and manipulated in a congruent manner across different platforms.

FIG.9is a flowchart showing a method900for editing content associated with a content card template, according to a non-limiting embodiment. Briefly, a client device edits a content card instance, and where permissions are granted, a content-management server updates the associated content card template. It is to be emphasized, however, that the blocks of method900need not be performed in the exact sequence as shown. Further, although the method900may be described as performed by a system and device discussed herein, but this is not limiting and the method can alternatively be performed by other systems and/or devices.

At block902, a client device termed an editing client device, edits the content of a content card instance. The content card instance, termed an editing content card instance, may be present in a file opened by a productivity software application running on the client device. A user of the client device may edit the raw content or the formatting of the content in the content card instance.

At block904, a client device requests to a content-management server that a content card template should be edited. Editing the content card template may include creating a new version of the content card template.

At block906, it is determined whether the user making the edit has permission to edit the content card template or to create a new version of the content card template. Where permission is granted, block908is executed.

At block908, the content-management server edits or creates a new version of the content card template. Editing or creating a new version of the content card template may entail storing new raw content on the content-management server, adjusting pointers to the new raw content, and storing metadata such as format data, permission data, and version data.

Thus, users may edit or update existing content cards, and share the updates with other users.

FIG.10is a flowchart showing a method1000for creating and fulfilling a request content card, according to a non-limiting embodiment. Briefly, a client device creates an empty content card associated with a request for the content card to be filled, and another client device fulfills the request by generating new content, which is transmitted to the requesting client device for use as content in the empty content card. It is to be emphasized, however, that the blocks of method1000need not be performed in the exact sequence as shown. Further, although the method1000may be described as performed by a system and device discussed herein, but this is not limiting and the method can alternatively be performed by other systems and/or devices.

At block1002, a requesting client device creates an empty request content card instance. The requesting content card instance is associated with a request for the request content card instance to be filled.

At block1004, the requesting client device makes a request to a content-management server that the requesting content card instance be filled with content.

At block1006, the content-management server generates a content card template, termed a requesting content card template, including a request for content.

At block1008, another client device termed the fulfilling client device, creates and fills a fulfilling content card instance, intended to fill the requesting content card instance.

At block1010, the content-management server receives a notification that the fulfilling client device has created the fulfilling content card instance, and receives the content and associated metadata.

At block1012, the content-management server transmits the content and associated metadata of the fulfilling content card instance to the requesting client device for use as content into the requesting content card instance.

Thus, users collaborating on projects can create placeholder content card instances in a document to be filled by colleagues. Permissions may be set so that only particular colleagues may fulfill the request.

FIG.11is a flowchart showing a method1100for updating content card instances in a document, according to a non-limiting embodiment. Briefly, a user opens a document, and the document is scanned and updated for content card updates, which are transmitted to the client device where permissions so enable. It is to be emphasized, however, that the blocks of method1100need not be performed in the exact sequence as shown. Further, although the method1100may be described as performed by a system and device discussed herein, but this is not limiting and the method can alternatively be performed by other systems and/or devices.

At block1102, a client device opens a document having content card instances present in the document.

At block1104, the client device scans the document for content card instances requiring an update. With reference toFIG.3, plugin320may scan the content-editing area302for content card instances310, and communicate with a content-management server to check for newer versions of the content card instances310. The client device may be termed a scanning client device.

At block1106, where the client device identifies a content card with an updated version on the content-management server, the client devices request a pull of the updated version of the content card for use as content into the content card instance in the document.

At block1108, it is determined whether the user of the client device has permission to access the updated version of the content card. Where permission is granted, block1110is executed.

At block1110, the content-management server transmits the updated content card to the client device for inclusion into the content card instance.

Thus, users can remain updated with the latest version of contents to be included in documents.

It can, therefore, be seen that a system can provide for fileless content management which allows for simplified collaboration and sharing of information through the use of content cards. Thus, instead of storing information in files, a user is able to store the information in smaller, more manageable portions, through content cards, which can be independently shared, edited, updated, and controlled.

In addition to providing ease of collaboration through plugins with productivity software applications, standalone software applications may provide for the direct management of content cards on a content-management server. Such standalone applications may be used to browse content, content card templates, to adjust permissions, and other metadata stored on the content-management server. Such standalone applications may be implemented as web applications, mobile device applications, or as software development kits providing API for interacting with a content card database. Such applications may be continually connected to the content-management server or may be periodically synced with the content-management server, while otherwise operating offline. Other examples of standalone applications include marketplaces for third-party software integrated with the content-management server.

Furthermore, although the embodiments described herein discuss the integration of a content-management server with productivity software applications, it is also contemplated that the content-management server may be integrated with other software and web applications. For example, a webpage may be integrated with the content-management server so that updates to content made in productivity software applications are automatically pushed to the web page. In other examples, social media platforms may pull content from, or be able to push content to, the content-management server, and so that links to content cards can be shared online. In other examples, messaging applications may similarly be integrated with the content-management server, so that links to content cards can be shared between individuals. In other examples, computer operating systems may be linked directly with a content-management server, so that content accessible throughout the use of the operating system can be pushed to the content-management server, and content can be used by the operating system.

In addition to providing ease of collaboration and sharing of information, the storage of content in the form of content cards enables the application of several power analytical methods. With data on a content-management server accessible by an API, raw content can be easily queried and analyzed. The data can be used in data visualizations.

In the case of text data, text analysis can be applied to study grammar usage, word usage, sentiment, and to categorize/segment snippets of content. Natural language processing can be applied to categorize content cards according to relationships in text content. Where an organization relies heavily on content cards, data inconsistencies across documents can be identified. Advanced language editing techniques may be applied. For example, an organization may enforce consistent spelling/grammar across all of its documents linked through the content-management server. As another example, text content may be translated to different languages by applying machine translation technology when a particular content card is requested in a particular language, or by storing different instances of text content in a database, with content card templates including metadata to point to particular linguistic versions of text content.

Furthermore, in addition to logging user activities in a content card database, the editing history of content cards can be integrated with blockchain technology, whereby an audit trail of user interactions with content cards, raw data, metadata, and permission-related data, can be stored publicly on a distributed ledger in an immutable tamper-proof format. Thus, objects of a content card database may be stored in a distributed storage system, hosted across a decentralized network of computing devices, with editing and version control collectively managed on the blockchain.

While the examples discussed herein are directed to specific example systems, devices, and methods, it will be understood that combinations, subsets, and variations of the examples are within the scope of the present disclosure.

The scope of the claims should not be limited by the embodiments set forth in the above examples but should be given the broadest interpretation consistent with the description as a whole.