WO2011103665A1 - System, method and apparatus for managing electronic content - Google Patents

System, method and apparatus for managing electronic content Download PDF

Info

Publication number
WO2011103665A1
WO2011103665A1 PCT/CA2011/000201 CA2011000201W WO2011103665A1 WO 2011103665 A1 WO2011103665 A1 WO 2011103665A1 CA 2011000201 W CA2011000201 W CA 2011000201W WO 2011103665 A1 WO2011103665 A1 WO 2011103665A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
content item
processor
identifier
content items
Prior art date
Application number
PCT/CA2011/000201
Other languages
French (fr)
Inventor
Alexander A. Gibson
S. Bradley Milne
Mohamed Ahmed
Philippe Mironenko
Original Assignee
Room 7B Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Room 7B Inc. filed Critical Room 7B Inc.
Publication of WO2011103665A1 publication Critical patent/WO2011103665A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Definitions

  • the specification relates generally to content management, and specifically to a method, system and apparatus for electronic content management.
  • Figure 1 depicts an overview of electronic content management, according to a non-limiting embodiment
  • Figure 2 depicts a system for managing electronic content, according to a non-limiting embodiment
  • Figure 3 depicts certain components of a server and client device of the system of Figure 2, according to a non-limiting embodiment
  • Figure 4 depicts a method for managing electronic content, according to a non-limiting embodiment
  • Figure 5 depicts alternative performances of block 405 of the method of Figure 4, according to a non-limiting embodiment
  • Figure 6 depicts views generated at block 410 of the method of Figure 4, according to a non-limiting embodiment
  • Figure 7 depicts a performance of block 420 of the method of Figure 4, according to a non-limiting embodiment
  • Figure 8 depicts an unpublished feed webpage generated during the performance of the method of Figure 4, according to a non-limiting embodiment
  • Figure 9 depicts an interface presented at block 425 of the method of Figure 4, according to a non-limiting embodiment
  • Figures 10-14 depict a model of the content management application executed by the server of Figures 2 and 3, according to a non-limiting embodiment
  • Figure 15 depicts a method of managing electronic content, according to another non-limiting embodiment.
  • Figure 16 depicts a message generated during the performance of the method of Figure 15.
  • a method of managing content comprising: receiving one or more content items and storing the one or more content items in a memory in association with a group identifier; generating and storing at least one view of the content item; receiving a selection of one of the one or more content items; receiving publication data in connection with the selected content item; publishing the selected content item, wherein publishing includes: transmitting an identifier of the selected content item to at least one destination, and generating a webpage comprising the selected content item.
  • a non-transitory computer readable medium comprising a plurality of computer- readable instructions executable by a processor, the instructions for implementing the above method.
  • a server comprising: a memory; a network interface controller; and a processor interconnected with the memory and the network interface controller, the processor configured to receive one or more content items via the network interface controller and to store the one or more content items in the memory in association with a group identifier; the processor further configured to generate at least one view of the content item and store the at least one view in the memory; the processor further configured to receive a selection of one of the one or more content items via the network interface controller; the processor further configured to receive publication data, via the network interface controller, in connection with the selected content item; the processor further configured to publish the selected content item, wherein publishing includes: transmitting an identifier of the selected content item to at least one destination, and generating a webpage comprising the selected content item.
  • a content management platform 100 provides content management services to a plurality of subscribing entities.
  • One such subscribing entity is an enterprise 104, such as a fundraising organization, a law firm, a government agency and the like. It is contemplated that content management platform 100 can serve any number of subscribing entities.
  • the content management services provided to subscribing entities by content management platform 100 allow for the collection of content from various sources, and the selection and publication of some or all of the collected content to various destinations.
  • Electronic content, or simply "content”, as referred to herein is intended to include a wide variety of data.
  • Content thus includes text data such as Uniform Resource Locators (URLs), news articles, blog posts, and the like.
  • Content also includes image data such as individual images and slideshows, video data, audio data and any suitable combination thereof.
  • Content can originate from a wide variety of sources, including sources within enterprise 104 and sources outside (i.e. independent of) enterprise 104.
  • Content sources 108a and 108b are shown in Figure 1.
  • Content sources can be, for example, online newspapers, blogs, video hosting websites and the like.
  • Content received from content sources 108 and sources within enterprise 104 can be published to a wide variety of destinations.
  • Content destinations, as with content sources, can be within enterprise 104, as well as outside enterprise 104.
  • Content destinations 1 12a and 112b are shown in Figure 1 , and can be, for example, microblogging websites such as TwitterTM, networking websites such as LinkedlnTM, email services and the like.
  • enterprise 104 is provided with a plurality of user accounts 1 16a, 1 16b, each of which permits access to the content collection and publication functions provided by content management platform 100.
  • Each user account 116 can be assigned, for example, to a different individual within enterprise 104.
  • Enterprise 104 may be engaged in a variety of different activities, with the result that individuals within enterprise 104 may be involved in different activities from each other. For example, if enterprise 104 is a law firm, different individuals within the enterprise may practice in different areas of law. Thus, some content produced by content sources 108 or other sources may be relevant only to a subset of those individuals.
  • User accounts 116 can therefore be members of groups 120a, 120b within enterprise 104. While no user accounts are shown as being members of group 120b, it is contemplated that any number of user accounts 116 can exist as members of any number of groups 120. It is also contemplated that any given user account 116 can be a member of more than one group 120.
  • Content management platform 100 manages content at the level of a group.
  • content management platform 100 allows for content to be collected and made available to user accounts that are members of a particular group (for example, user accounts 1 16 in group 120a as shown in Figure 1). Content management platform 100 further allows the content to be published to destinations identified in connection with the group, in response to publication instructions received from user accounts within the group.
  • the functionality of collecting and publishing content can be provided for any number of groups, independently of other groups. As will be discussed in greater detail below, however, content management platform 100 can also provide for interaction between groups.
  • System 200 includes a content management server 204, which can be based on any known server environment.
  • server 204 can comprise one or more processing units, volatile and non-volatile memory, a network interface and other associated components in any number of physical enclosures.
  • server 204 can be based on a cloud computing architecture. The components of an embodiment of server 204 will be described in further detail below.
  • content management server 204 hosts content management platform 100 as discussed above.
  • System 200 also includes a content server 208, corresponding to a content source 108 as described in connection with Figure 1.
  • Content server 208 can be based on any known server environment, and includes a memory in which are stored various content items, such as articles including text and images, blog posts, image files, slideshows comprising multiple image files, videos, audio files and the like.
  • content server 208 can be a server hosting the website of an online newspaper.
  • System 200 also includes a plurality of client computing devices 212a, 212b and so on.
  • Client computing devices 212 can be based on any known computing environment, and thus can include any combination of desktop computers, laptop computers, mobile phones, smart phones, tablet computers and the like.
  • Each client devices 212 is associated with a user account as described in connection with Figure 1.
  • client devices 212 are associated with enterprise 104 as described above and shown as a dashed box in Figure 2.
  • System 200 further includes a destination server 216, corresponding to a content destination 112 as described in connection with Figure 1.
  • Destination server 216 can be based on any known server environment, and is configured to receive content items and make such content items available to other computing devices.
  • destination server 216 can be a server hosting a microblogging webpage associated with enterprise 104, such as a TwitterTM feed associated with enterprise 104.
  • any number of content servers 208, destination servers 216, and client devices 212 can be present.
  • the restricted number of computing devices in system 200 is provided simply for illustrative purposes.
  • Network 220 can include any suitable combination of wired and/or wireless networks, including but not limited to a Wide Area Network (WAN) such as the Internet, a Local Area Network (LAN), cell phone networks, WiFi networks, WiMax networks and the like.
  • WAN Wide Area Network
  • LAN Local Area Network
  • network 220 includes the Internet.
  • Content management server 204, content server 208, client devices 212a and 212b, and destination server 216 are each connected to network 220 via respective links 224, 228, 232a, 232b and 236.
  • Each link illustrated in Figure 2 can be wired or wireless, and is selected for compatibility with network 220.
  • links 224, 228, 232b and 236 are wired links of any suitable nature, while link 232a is a wireless link.
  • Link 232a can therefore be based on, for example, Institute of Electrical and Electronic Engineers (IEEE) 802.1 1 (WiFi) or other wireless protocols. It is contemplated that other wireless standards (Global System for Mobile communications (GSM), General Packet Radio Service (GPRS), Enhanced Data rates for GSM Evolution (EDGE), the third and fourth-generation mobile communication system (3G and 4G) and the like) can also be employed.
  • GSM Global System for Mobile communications
  • GPRS General Packet Radio Service
  • EDGE Enhanced Data rates for GSM Evolution
  • 3G and 4G third and fourth-generation mobile communication system
  • client devices 212 can be connected directly to network 220, as shown, or can be connected to network 220 via a corporate firewall, an email server and the like, or any combination thereof.
  • client device 212a certain internal components of content management server 204 and client device 212a are shown. It is contemplated that although only client device 212a is shown in Figure 3, all client devices 212 can contain internal components similar to those discussed below. It is also contemplated, however, that client devices 212 need not all be identical, and that there may therefore be differences in the internal components of different client devices 212.
  • Server 204 includes a processor 304 interconnected with a non- transitory computer readable storage medium such as a memory 308.
  • Memory 112 includes any suitable combination of volatile memory - such as Random Access Memory (“RAM”) - and non-volatile memory - such as read only memory (“ROM”), Electrically Erasable Programmable Read Only Memory (“EEPROM”), flash memory, magnetic storage devices, or optical discs.
  • RAM Random Access Memory
  • ROM read only memory
  • EEPROM Electrically Erasable Programmable Read Only Memory
  • flash memory magnetic storage devices, or optical discs.
  • Server 204 also includes a network interface controller (NIC) 312 interconnected with processor 304.
  • NIC 312 allows server 204 to communicate with other computing devices, such as client device 212a, via link 224 with network 220.
  • Server 204 can also include input and output devices (not shown) interconnected with processor 304.
  • Input devices such as a keyboard, a mouse, a touch screen, a microphone or any suitable combination thereof, transmit input data to processor 304.
  • the input data is representative of commands for causing processor 304 to carry out certain tasks.
  • Output devices can include one or more displays, each including display circuitry controllable by processor 304 for generating interfaces which include representations of data stored in memory 308.
  • Output devices can also include any combination of speakers, light-emitting indicators and the like.
  • the input and output devices can be co- located with server 204 and connected with server 204 via local connections such as Universal Serial Bus (USB) connections. In other embodiments, the input and output devices can be located remotely from server 204 - that is, connected to another computing device (not shown) which is in turn connected with server 204 via network 220.
  • USB Universal Serial Bus
  • server 204 The various components of server 204 are interconnected, for example via a communication bus (not shown). Server 204 can be supplied with electricity by a wired connection to a wall outlet or other power source.
  • Client device 212b is, in the present example embodiment, a desktop computer.
  • Client device 212b thus includes a processor 316 interconnected with a non-transitory computer readable storage medium such as a memory 320.
  • Memory 320 can be any suitable combination of volatile (e.g. Random Access Memory (“RAM”)) and non-volatile (e.g. read only memory (“ROM”), Electrically Erasable Programmable Read Only Memory (“EEPROM”), flash memory, magnetic computer storage device, or optical disc) memory.
  • Client device 212b also includes one or more input devices interconnected with processor 316. Such input devices are configured to receive input and provide input data representative of the received input to processor 316.
  • Input devices can include, for example, a keyboard 324 and a mouse 238. It is contemplated that client device 212b can include further input devices (e.g. a touch screen) in addition to or instead of the above-mentioned keyboard 324 and mouse 238.
  • Client device 212b further includes one or more output devices.
  • the output devices of client device 212b include a display 332.
  • Display 332 includes display circuitry 334 controllable by processor 316 for generating interfaces which include representations of data and/or applications maintained in memory 320.
  • Display 332 includes one or more cathode ray tube (CRT) displays or flat panel displays comprising any one, or suitable combination, of a Liquid Crystal Display (LCD), a plasma display, an Organic Light Emitting Diode (OLED) display, and the like.
  • Circuitry 124 can thus include any suitable combination of display buffers, transistors, LCD cells, plasma cells, phosphors, LEDs and the like.
  • the touch screen can be integrated with display 332.
  • the output devices of client device 212b can also include a speaker 336 interconnected with processor 316.
  • Client device 212b also includes a NIC 340 interconnected with processor 108.
  • NIC 340 allows client device 212b to communicate with other computing devices via link 232b and network 220.
  • the various components of client device 212b are interconnected, for example via a communication bus (not shown).
  • Client device 212b can be supplied with electricity by a wired connection to a wall outlet or other power source.
  • Server 204 maintains, in memory 308, a content management application 344.
  • Content management application includes a plurality of computer readable instructions which are executable by processor 304.
  • processor 304 When executing content management application 344, processor 304 is configured to control the other components of server 204 in order to implement various functionality, as will be discussed below in greater detail.
  • the functionality implemented by content management application 344 can be offered to organizations such as enterprise 104 a Software As A Service (SAAS) capacity.
  • SAAS Software As A Service
  • Client device 212b also maintains various collections of computer- readable instructions in memory 320.
  • memory 320 contains a web browser application 348 and a messaging application 350 (such as a email application).
  • Method 400 will be described in conjunction with its performance on system 200. That is, the blocks of method 400 are performed by processor 304 of server 204 as configured via the execution of content management application 344. It will now be apparent, however, that both method 400 and the system in which it is performed, can be varied.
  • processor 304 is configured to receive and store a content item.
  • the content item is received at processor 304 from NIC 312.
  • the received content item can arrive at NIC 312 from a variety of sources.
  • the received content item can be received from a computing device in connection with a user account, or the content item can be received from a computing device without a connection to a particular user account.
  • FIG. 5 depicts three example performances of block 405.
  • a performance of block 405 in which a content item is received in connection with a user account is shown at blocks 505 to 515.
  • a message containing a content item is received at processor 304 via NIC 312.
  • the message can also contain multiple content items - a single content item is described herein for illustrative purposes.
  • the received message can be an email message, a Short Message Service (SMS) message, a Multimedia Messaging Service (MMS) message, or any other suitable message.
  • Server 204 can therefore have identifiers such as an email address, a telephone number and the like, as necessary in order to receive various types of message.
  • processor 304 is configured to determine a group identifier with which the content item in the received message is to be associated. The determination at block 510 is made based on the contents of the message. For example, an email message includes the email address of its sender, while an SMS message includes a telephone number or a device identifier (e.g. an International Mobile Equipment Identity (IMEI)) of its sender. More broadly, the message received at block 505 includes an identifier of the message's originator. Processor 304 detects such originator identifiers and refers to a user account database maintained in memory 308. [0048] Referring briefly to Figure 3, a user account database 352 is shown in memory 308.
  • IMEI International Mobile Equipment Identity
  • User account database 352 includes a record for each user account 1 16 which has access to content management platform 100. Each record includes a variety of data relating to the user account. In particular, each user account record includes any available email addresses, device identifiers, telephone numbers and the like, for email addresses and client devices 212 associated with the user account. Thus, a user account for an individual named Alice Smith can contain, in addition to the name of the individual, the following data: [0049] One or more email addresses, including for example the email address "asmith@104.com";
  • One or more device identifiers including, for example, the device identifier "212a" indicating that client device 212a is associated with Alice Smith's user account.
  • Client device 212a may be a smart phone operated by Alice Smith, for instance;
  • One or more telephone numbers including, for example, the telephone number "555-123-4567", which is the telephone number associated with the Subscriber Identity Module (SIM) card in client device 212a.
  • SIM Subscriber Identity Module
  • Each record also contains one or more group identifiers, indicating which group or groups the user account is a member of.
  • group identifiers indicating which group or groups the user account is a member of.
  • the user account described above can include the group identifier "120a”.
  • processor 304 is therefore configured to extract an originator identifier from the message received at block 505, and to compare the extracted originator identifier with the records of user account database 352. When a user account record is located which contains the same originator identifier, processor 304 selects the group identifier stored in that record. It is contemplated that if, at block 510, no match for the originator identifier received at block 505 can be found in user account database 352, the message received at block 505 can be discarded and the performance of method 400 terminated (unless there are further content items to be received and processed).
  • processor 304 is configured to store the received content item (extracting it from the message as necessary) in memory 308 along with the group ID determined at block 510.
  • a content store 356 is shown, in which received content items are stored.
  • Content store 356 contains a database record for each content item.
  • Each record of content store 356 contains the actual content item, and the group ID associated with the content item.
  • user account database can include records for content sources to which server 204 is subscribed in connection with group 120a.
  • the message received at block 505 can be an email message from a service such as Google AlertsTM.
  • an email address or other identifier for the subscription can be stored in accounts database 352, along with any other data defining the subscription (such as keywords, in the case of Google AlertsTM).
  • Certain user accounts can be permitted to alter the subscriptions stored in user account database 352.
  • such subscriptions can be maintained in a separate database.
  • a second performance of block 405 begins at block 520 of Figure 5.
  • Blocks 520 to 535 relate to the receipt of a content item at server 204 in connection with a user account, as with blocks 505 to 515.
  • blocks 520 to 535 relate to receipt of the content item via a website hosted by server 204 rather than in a message.
  • a website 360 is shown stored in memory 308.
  • Website 360 is thus hosted by server 204 and available to other computing devices via network 220.
  • website 360 comprises a plurality of web pages. Some of the web pages are accessible by any computing device, while others are accessible only in connection with a user account.
  • website 360 is associated with a particular group, such as group 120a shown in Figure 1.
  • Server 204 can therefore a different website for each of a plurality of groups.
  • processor 304 is configured to receive an authentication request from a computing device, such as client device 212a. Such a request can be formed by client device 212a executing browser application 348 to access a login page 362 (shown in Figure 3) of website 360 and enter authentication data, such as a login and password. Having received the authentication request at block 520, processor 304 is configured to determine whether or not to grant the authentication request at block 525. The determination at block 525 is made with reference to user account database 352, which can also include (in addition to the data discussed above), for each record, a login and a password.
  • the determination at block 525 is affirmative.
  • the request is denied at block 530.
  • processor 304 proceeds to receive a content item and store the content item in content store 356, in association with the group ID of the user account which was authenticated at block 525.
  • Receiving the content item at block 535 can include transmitting data to client device 212a (or any other computing device from which the authentication request was received), representative of an upload page within website 360.
  • the upload page can include, for example, a field into which the storage path of the content item in memory 320 can be entered.
  • client device 212a can transmit a further message (such as a Hypertext Transfer Protocol (HTTP) message) which includes the content item.
  • HTTP Hypertext Transfer Protocol
  • a third example performance of block 405 begins at block 540. While the first two performances of block 405, described above, related to the receipt of content items in connection with a user account, the third performance of block 405 involves the receipt of content items from computing devices not directly associated with a user account.
  • processor 304 is configured to transmit requests for content to other computing devices. Such requests are transmitted based on the contents of a content source database (shown at 364 in Figure 3).
  • Content source database 364 includes a plurality of content source records, each identifying a source of content which processor 304 can be configured to query at configurable intervals.
  • content source database 364 includes an identifier for the content source (such as a URL or network address, e.g. Internet Protocol (IP) address or Media Access Control (MAC) address), a group ID with which content retrieved from the content source is to be associated, and a frequency with which the content source is to be queried.
  • IP Internet Protocol
  • MAC Media Access Control
  • the performance of block 540 therefore includes consulting the content source database 364 and determining whether any requests are to be sent. This determination can be carried out, for each source, by comparing the date and time at which the last request was sent to that source (which can also be stored in content source database 364) with the current date and time and the frequency parameter stored in content source database 364. For example, if the elapsed time between the last request and the current date and time is greater than the frequency parameter, processor can be configured to determine that a new request for content should be sent. When processor 304 determines that one or more sources are due to be queried, processor 304 generates and transmits requests, via NIC 312, to the relevant content sources. Such sources can include, for example, online news websites, social networking websites, and the like.
  • the requests can also include keywords, times and dates, or both, in order to limit the scope of the eventual response from each content source. It will now be apparent that such additional parameters can also be maintained in content source database 364, and that their use will depend in part on the capabilities of each individual content source.
  • the requests transmitted at block 540 can take a variety of forms.
  • an HTTP request can be used when the content source is a website such as that of an online newspaper.
  • the request can be an Application Programming Interface (API) call to the service.
  • API Application Programming Interface
  • Various types content sources and corresponding requests will now be apparent to those skilled in the art. Neither the content sources nor the requests used to query them are particularly limited herein.
  • processor 304 is configured to receive and store any responses from the content sources to which requests were transmitted at block 540. Each content item contained in the responses is stored in content store 356, in association with the group ID with which the source of that content item is associated in content source database 364.
  • processor 304 is configured to proceed in the performance of method 400, to block 410.
  • processor 304 is configured to assign a content type and generate views of the content item received at block 405.
  • the content type assigned to the received content item is assigned based on characteristics of the content item as detected by processor 304.
  • processor 304 can be configured to detect a file type, formatting tags and other attributes of the received content item.
  • Non-limiting examples of content types which can be assigned to the content item are as follows:
  • the "Document" content type when the content item is a file such as a word processing file or a URL which references such a file.
  • Examples of files which would be assigned the content type Document include Portable Document Format (PDF) files, Microsoft WordTM (.doc, .docx) files, Microsoft PowerpointTM files (.ppt, .pps) and the like.
  • the "Video” content type when the content item is a video file (for example, a file having any of the extensions .mov, .mp4, .avi and the like), or a URL which reference such a file.
  • a video file for example, a file having any of the extensions .mov, .mp4, .avi and the like
  • a URL which reference such a file.
  • the "Short Message” content type when the content item is a text entry with a length of less than one hundred and forty characters.
  • the "Blog Post” content type when the content item is a text entry with a length greater than one hundred and forty characters.
  • the "Gallery" content type when the content item comprises multiple image files which were received as a single entry at block 405.
  • the "Audioclip" content type when the content item is an audio file (for example, a file having any of the extensions .mp3, .wav and the like).
  • Event when the content item defines a calendar event (for example, in the iCalendar format, .ical).
  • the assigned content type is stored in content store 356 in association with the content item (that is, in the database record for that content item).
  • Processor 304 then proceeds to generate views for the content item, based on the assigned content type. In particular, a feed view and a page view are generated.
  • the feed view is for use on a web page in which the content item will be displayed along with other content items, while the page view is for use on a web page in which that particular content item will be the only one displayed. For example, if the received content item is a news article, processor 304 can assign the content type "blog post" to the content item. In generating views, processor 304 can then be configured to detect a headline and a body of the article based on formatting tags contained in the content item.
  • Feed view 600 includes the headline 608 of the article, and a portion 612 of the body of the article (such as the first ten words).
  • Page view 604 includes the headline 608 and the entirety of the body 616 of the article.
  • feed and page views 600 and 604 are stored in content store 356.
  • feed and page views 600 and 604 can be stored separately from content store 356, in association with a unique identifier which identifies content store 356. Such a unique identifier can be stored in association with each content item in content store 356, even in embodiments where the views are also in content store 356.
  • the generation of views at block 410 can also include creating versions of the content item formatted for syndication, for example according to the RSS or Atom feed formats. Such versions can also be stored in content store 356.
  • processor 304 is configured to update the status of the content item received at block 405.
  • Content store 356 can include, for each content item record, a status indicator.
  • the status indicator for the received content item is updated to "unpublished", indicating that the content item has been accepted into content store 356 and that views have been generated, but that the content item has not yet been published.
  • processor 304 is configured to receive a selection of the content item received at block 405.
  • the selection of a content item at block 420 is an instruction to processor 304 to proceed with the publication of the selected content item.
  • the selection received at block 420 can be received in a variety of ways.
  • the performance of block 420 can include the receipt of an authentication request from a computing device in connection with a user account.
  • the authentication request can be a request to login to website 160.
  • processor 304 can be configured to generate an unpublished feed webpage (shown at 366 in Figure 3).
  • Unpublished feed webpage 366 can be transmitted to the computing device from which the authentication request was received (e.g. client device 212a) following successful authentication.
  • unpublished feed webpage 366 can be transmitted to client device 212a after an additional request is received.
  • a "home" webpage (not shown) can be transmitted which contains a link to unpublished feed webpage 366.
  • Processor 304 can generate unpublished feed webpage 366 by selecting the feed views of any content items with the group ID associated with website 360 and the user account from which the authentication request was received, as well as the status "unpublished” in content store 356, and inserting the selected feed views into a configurable webpage template. It will now be appreciated that the performance of block 705 need not result in the generation of an entirely new webpage. Rather, webpage 366 can be updated at every performance of block 705.
  • processor is then configured to receive a selection of a feed view as displayed in webpage 366 at block 710.
  • FIG 8 an example webpage 366 is shown as displayed at client device 212a.
  • Webpage 366 includes feed view 600, as well as additional feed views 800 and 804 of other unpublished content items.
  • Selection of the 808 element of webpage 366 causes client device 212a to transmit a message to server 304 indicating that feed view 600 has been selected (selection of elements 812 and 816 would cause similar messages to be sent relating to feed views 800 and 804, respectively).
  • multiple feed views can be selected at block 710.
  • the selection of a feed view at block 710 can lead to a further webpage in which the corresponding page view is displayed, along with an "approve" button similar to elements 808, 812 and 816.
  • selection of a content item can involve selection of the page view for that item, as well as selection of the feed view.
  • processor 304 is configured to receive publication data defining the publication of the selected content item.
  • Publication data can include identifications of one or more content destinations.
  • the received publication data can include an identification of an additional server (not shown in Figure 3) which hosts a corporate website for enterprise 104 or for group 120a.
  • Publication data can also include a date and time of publication.
  • the destination identifications and the date and time can be received from a computing device such as client device 212a. In other embodiments, the destination identifications can be received from client device 212a, while the time and date of publication can be determined automatically by processor 304.
  • processor 304 can be configured to assign a time and date to a content item to be published in order to publish the content item at a particular time of day.
  • processor 304 can be configured to automatically select the beginning of the next business day (for example, at 9:05am) for publication.
  • interface 900 is shown, which can be transmitted to client device 212a for display as an overlay to webpage 366, or as a separate web page.
  • Interface 900 enables the receipt of input data at client device 212a defining publication data. Once the input data has been received, client device 212a can transmit the publication data to server 204, for receipt at block 425.
  • interface 900 includes an identification 904 of the content item which is to be published, and selectable elements 908, 912 for identifying the destinations to publish to.
  • any number of selectable destination identifiers can be provided, including destinations related to both the group to which the content item is connected (such as a group TwitterTM feed) and the individual user account providing the publication data (such as an individual LinkedlnTM profile).
  • the destinations to be made available for publication can be stored in memory 308 and retrieved to generate interface 900.
  • memory 308 can contain a destinations database (not shown) which contains a record for each destination, including an identifier of the destination (such as a URL), any authentication information (i.e. login and password) necessary to access the destination, and one or more group IDs indicating which groups the destination is to be available for publishing. Destinations can also include email addresses or other identifiers (such as telephone numbers, for publishing via SMS message and the like).
  • Interface 900 also includes a field 914 for receiving supplementary content, such as a brief comment concerning the content item to be shared.
  • Interface 900 can also include selectable elements 916, 920 for indicating a permission level to be associated with the published content item, as will be discussed below in greater detail.
  • processor 304 is configured to publish the content item at block 430, according to the publication data.
  • Publication comprises generating a unique URL which refers to the selected content item in content store 356, storing the URL in the content store 356 and creating a webpage 368 (shown in Figure 3) identified by that URL within website 360.
  • Publication further comprises transmitting a message to each specified destination, comprising the unique URL and any supplementary content received at block 425.
  • the webpage 368 is configured to be publicly available. That is, authentication by a user account 1 16 is not necessary to view webpage 368.
  • server 204 itself acts as a destination for publication.
  • requests to view the published content item even if received at destinations outside the direct control of server 204 or enterprise 304, can be monitored by server 304.
  • processor 304 is also configured, during the performance of block 430, to create tracking identifiers for each selected destination and to store the identifiers in memory 308. Any request for the unique URL received at server 204 can be tracked in a database in memory 308, in connection with the identifier corresponding to the content destination from which the request was received.
  • Processor 304 can also be configured to store, along with the tracking identifiers, an identifier of the user account from which publication data was received. Thus, processor 304 can gather and store statistics defining which content items have been published to where, by which user accounts, as well as which published content items are most popular, which destinations result in the most visits to webpage 368 and the like.
  • Processor 304 can also be configured, as part of the performance of block 430, to update the status of the published content item in content store 356 to "published”. Additionally, processor 304 can generate a further publicly available published feed webpage (370 in Figure 3), which comprises the feed views of any published content items for group 120a.
  • processor 304 can also be configured to transmit messages, such as email messages, at configurable intervals, containing the unique URLs of selected content items which have previously been published. Processor 304 can automatically select such content items based on the statistics gathered as a result of requests for webpage 368. For example, processor 304 can be configured to select the five most requested content items in a certain time period (such as the previous week) for "re- publication”. Processor 304 can then be configured to select recipient addresses for the email messages. Recipient addresses can be stored in connection with user accounts in user account database 356 (that is, each user account can have one or more contacts whose email addresses are stored in database 356).
  • memory 308 can also store a list of group contacts, comprising email addresses associated with group 120a, but not with any particular user account 1 16. Also in some embodiments, email addresses in addition to the above, or instead of the above, can be received from a client device.
  • recipients of such re-publications can be granted limited access to user account database 352, in order to modify the keywords which they are associated or the frequency with which the receive republication messages. Such modifications can be received at server 204 from other computing devices (not shown) associated with the recipients.
  • the re-publication emails can include a link to a recipient webpage (not shown) within website 360 which allows for such modifications.
  • processor 304 is configured to generate and transmit the messages. It is also contemplated that the above email re-publication can occur automatically at a configurable interval, or can occur in response to an instruction received from a client device 212.
  • email messages can be generated based on keywords and other metadata associated with recipient addresses.
  • an email can be generated as described above not only for the most requested content items, but for the most requested content items relating to a certain topic.
  • content store 356 can include metadata (which can be received at blocks 405, 425, or both) including keywords, and recipient addresses are stored in association with metadata.
  • Processor 304 is then configured to generate email messages to re-publish selected content items that are associated with certain keywords, to recipients which are also associated with those keywords.
  • processor 304 can be configured to generate separate published feed webpages for each keyword, or for certain combinations of keywords.
  • webpage 368 generated at block 430 for each published content item can be generated as a sub-page of a webpage which contains all the webpages 368 for content items having certain keywords.
  • processor 304 can be configured to dynamically generated response to requests for webpages 368 and 370. The dynamically generated responses can contain only content items (whether feed or page views thereof) associated with keywords received in the request for the webpages.
  • processor 304 can also be configured to receive re-publication requests via the published feed webpage 370 or via webpage 368 for a given content item. Such requests can be received, via network 220, from any computing device, including client devices 212 and other computing devices not associated with enterprise 104. Processor 304 is configured to determine whether to grant such requests, or whether to allow for such requests to be made, based on the permission level described above in connection with block 425 of method 400. Referring again to Figure 9, the selection of element 916 results in a permission level of "public" being received at block 425, while the selection of element 920 results in the receipt of a permission level of "private".
  • processor 304 For content items with a permission level of "public", processor 304 is configured to make a selectable element available on (for example) webpage 370 whose selection by a computing device results in processor 304 receiving a re-publication request. Such a request causes processor 304 to perform blocks 425 and 430 again for the content item associated with the re-publication request.
  • Content items with a permission level of "private" can only be re-published by way of requests received from authenticated user accounts.
  • user account database 352 can include, for each user account record, a role identifier indicating a level of rights accorded to the user account.
  • re-publication rights can be limited to only certain group members, such as group members having the roles "moderator” or "administrator”. It will now be apparent that user account roles can also determine the level of interaction permitted to a client device 212 prior to publication.
  • processor 304 can be configured to examine the role of a user account from which a content item is received at block 505 or 535, and to allow the receipt of the content item only if the user account's role is "contributor” (and to deny the receipt if the role is, for example, "reader”).
  • selection of a content item for publication at block 420 may be allowed only to certain roles which have publishing rights (the "reader" role, for example, may be barred from publishing).
  • Figure 10 depicts examples of the organization and attributes of user accounts and content items.
  • Figure 1 1 depicts attributes of an event content type.
  • Figure 12 depicts further attributes of content types.
  • Figure 13 depicts the attributes stored in connection with a subscribing entity such as enterprise 104, including attributes defining the billing of the entity.
  • Figure 14 depicts certain attributes stored in connection with groups and user accounts.
  • processor 304 can be configured to perform method 400 for any number of content items and publication requests received from any authorized client devices 212.
  • various performances of method 400 can be executing simultaneously on processor 304.
  • client device 212a was discussed as the source of content items, selections and publication data, it will now be apparent that a content item can be submitted in connection with one user account, and selected for publication in connection with a different user account.
  • server 204 and client devices 212 described above can be conducted by way of API requests from a client application on the client device 212 and responses to such requests, rather than by HTTP requests and responses in connection with the above-mentioned websites.
  • the performance of method 400 can include an approval process for content items retrieved automatically by processor 304 (that is, at blocks 540 and 550 of Figure 5).
  • processor 304 can be configured to determine whether to send received content items for approval at block 1505.
  • the determination at block 1505 can involve a determination of whether or not a certain amount of time has elapsed since the previous performance of method 1500. For example, processor 304 can be configured to transmit new content items for approval every twenty-four hours. If the time period has not elapsed, processor 304 can "wait" at block 1505. When the determination is affirmative, however, processor 304 continues to block 1510.
  • processor 304 is configured to generate and transmit a new content digest to one or more client devices 212.
  • Generating the new content digest comprises retrieving content items from content store 356 which have not yet been sent in previous digests (content store 356 can maintain a time stamp for the receipt of each content item for this purpose).
  • processor 304 is configured to generate a message - in the present example embodiment, an email message - which includes an identification of the retrieved content item.
  • Various formats can be used for the message.
  • the message includes the feed view generated at block 410.
  • message 1600 generated at block 1510 is shown.
  • message 1600 includes feed view 600, as well as a selectable "Approve” button 1604, which will be discussed in greater detail below.
  • processor 304 is configured to refer to user account database 352. Users having certain roles (such as “contributor"), and in some embodiments, certain keywords matching metadata associated with the content items to be approved, can be selected as recipients.
  • the email addresses of the selected recipients are inserted in the "To" field of message 1600, and message 1600 is transmitted via NIC 312.
  • each recipient client device 212 can generate a representation of message 1600 on a display, allowing for selection of the "approve” button 1604 by way of input devices at the client devices.
  • processor 304 is configured to receive a selection of one or the content items for which feed views were transmitted at block 1510.
  • selection of the "approve” button 1604 at, for example, client device 212a causes client device 212a to transmit a message to server 204 indicating that feed view 600 has been selected.
  • the selection received at block 1515 is an indication that the content item is to be made available for eventual publication. That is, processor proceeds to perform block 415 of method 400, updating the status of the selected content item to "unpublished".
  • processor 304 can be configured to update their status to "listening", and to maintain them in content store 356 for a configurable time period (such as one week) before being deleted. During that time period, the feed views of such content items (i.e. those marked with the status "listening") can be inserted in a listening feed webpage (not shown) of website 360. Such content items, up until their deletion, can still be selected for publication, initiating a performance of block 415 of method 400, at which the status of such items is updated to "unpublished”.
  • the listening feed webpage can be requested by client devices 212 in connection with authenticated user accounts.
  • processor 304 can determine whether approval is required prior to publishing a selected content item.
  • processor 304 can be configured to examine the role of the user account in connection with which the publication data was received. For example, publication by a user account with the "contributor" role may require approval by a user account with the "moderator” role.
  • An explicit request for approval can also be received with the publication data at block 425.
  • the publication data can include an identifier of one or more user accounts other than the user account submitting the publication data, the identifiers acting as a request to obtain approval from one or more of the identified user accounts prior to publishing the content item.
  • processor 304 determines that no approval is required, method 400 proceeds to block 430 as described above. If processor 304, however, determines that approval is required, processor 304 can transmit a message to the identified user accounts (the message can be similar to that shown in Figure 16), and only proceed to block 430 once affirmative responses are received. In further embodiments, processor 304 can determine whether approval is required based on the group ID of the user account from which the publication data is received. For example, enterprise 104 may have an "approvers" group which must approve the publication of any item by any other group within enterprise 104. The requirement to obtain approval from another group can be stored in user account database 352, such as in an "approver group ID" field or a "parent organization" field.

Abstract

According to embodiments described in the specification, a method, system and apparatus for managing electronic content are provided. The method comprises: receiving one or more content items and storing the one or more content items in a memory in association with a group identifier; generating and storing at least one view of the content item; receiving a selection of one of the one or more content items; receiving publication data in connection with the selected content item; publishing the selected content item, wherein publishing includes: transmitting an identifier of the selected content item to at least one destination, and generating a webpage comprising the selected content item.

Description

SYSTEM, METHOD AND APPARATUS FOR MANAGING
ELECTRONIC CONTENT
REFERENCE TO RELATED APPLICATION
[0001] This application claims priority from United States provisional patent application no. 61/308,473, the contents of which is hereby incorporated by reference.
FIELD
[0002] The specification relates generally to content management, and specifically to a method, system and apparatus for electronic content management.
BACKGROUND
[0003] Continuing growth in Internet usage, as well as the increasing availability of cost-effective data storage, allows for a proliferation of electronic content such as text and multimedia data. The proliferation can be such that it outpaces the abilities of content management systems, resulting in the
inefficient use of computing resources when managing such content.
BRIEF DESCRIPTIONS OF THE DRAWINGS
[0004] Embodiments are described with reference to the following figures, in which:
[0005] Figure 1 depicts an overview of electronic content management, according to a non-limiting embodiment;
[0006] Figure 2 depicts a system for managing electronic content, according to a non-limiting embodiment;
[0007] Figure 3 depicts certain components of a server and client device of the system of Figure 2, according to a non-limiting embodiment;
[0008] Figure 4 depicts a method for managing electronic content, according to a non-limiting embodiment; [0009] Figure 5 depicts alternative performances of block 405 of the method of Figure 4, according to a non-limiting embodiment;
[0010] Figure 6 depicts views generated at block 410 of the method of Figure 4, according to a non-limiting embodiment;
[0011] Figure 7 depicts a performance of block 420 of the method of Figure 4, according to a non-limiting embodiment;
[0012] Figure 8 depicts an unpublished feed webpage generated during the performance of the method of Figure 4, according to a non-limiting embodiment;
[0013] Figure 9 depicts an interface presented at block 425 of the method of Figure 4, according to a non-limiting embodiment;
[0014] Figures 10-14 depict a model of the content management application executed by the server of Figures 2 and 3, according to a non-limiting embodiment;
[0015] Figure 15 depicts a method of managing electronic content, according to another non-limiting embodiment; and
[0016] Figure 16 depicts a message generated during the performance of the method of Figure 15.
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0017] According to an aspect of the specification, a method of managing content is provided, the method comprising: receiving one or more content items and storing the one or more content items in a memory in association with a group identifier; generating and storing at least one view of the content item; receiving a selection of one of the one or more content items; receiving publication data in connection with the selected content item; publishing the selected content item, wherein publishing includes: transmitting an identifier of the selected content item to at least one destination, and generating a webpage comprising the selected content item. [0018] According to another aspect of the specification, a non-transitory computer readable medium is provided comprising a plurality of computer- readable instructions executable by a processor, the instructions for implementing the above method. [0019] According to yet another aspect of the specification, a server is provided, comprising: a memory; a network interface controller; and a processor interconnected with the memory and the network interface controller, the processor configured to receive one or more content items via the network interface controller and to store the one or more content items in the memory in association with a group identifier; the processor further configured to generate at least one view of the content item and store the at least one view in the memory; the processor further configured to receive a selection of one of the one or more content items via the network interface controller; the processor further configured to receive publication data, via the network interface controller, in connection with the selected content item; the processor further configured to publish the selected content item, wherein publishing includes: transmitting an identifier of the selected content item to at least one destination, and generating a webpage comprising the selected content item.
[0020] Referring to Figure 1 , a conceptual overview of the management of electronic content is depicted. In particular, a content management platform 100 provides content management services to a plurality of subscribing entities. One such subscribing entity is an enterprise 104, such as a fundraising organization, a law firm, a government agency and the like. It is contemplated that content management platform 100 can serve any number of subscribing entities.
[0021] In general, the content management services provided to subscribing entities by content management platform 100 allow for the collection of content from various sources, and the selection and publication of some or all of the collected content to various destinations. Electronic content, or simply "content", as referred to herein is intended to include a wide variety of data. Content thus includes text data such as Uniform Resource Locators (URLs), news articles, blog posts, and the like. Content also includes image data such as individual images and slideshows, video data, audio data and any suitable combination thereof.
[0022] Content can originate from a wide variety of sources, including sources within enterprise 104 and sources outside (i.e. independent of) enterprise 104. Content sources 108a and 108b are shown in Figure 1. Content sources can be, for example, online newspapers, blogs, video hosting websites and the like.
[0023] Content received from content sources 108 and sources within enterprise 104 can be published to a wide variety of destinations. Content destinations, as with content sources, can be within enterprise 104, as well as outside enterprise 104. Content destinations 1 12a and 112b are shown in Figure 1 , and can be, for example, microblogging websites such as Twitter™, networking websites such as Linkedln™, email services and the like.
[0024] As a subscribing entity, enterprise 104 is provided with a plurality of user accounts 1 16a, 1 16b, each of which permits access to the content collection and publication functions provided by content management platform 100. Each user account 116 can be assigned, for example, to a different individual within enterprise 104.
[0025] Enterprise 104 may be engaged in a variety of different activities, with the result that individuals within enterprise 104 may be involved in different activities from each other. For example, if enterprise 104 is a law firm, different individuals within the enterprise may practice in different areas of law. Thus, some content produced by content sources 108 or other sources may be relevant only to a subset of those individuals. User accounts 116 can therefore be members of groups 120a, 120b within enterprise 104. While no user accounts are shown as being members of group 120b, it is contemplated that any number of user accounts 116 can exist as members of any number of groups 120. It is also contemplated that any given user account 116 can be a member of more than one group 120. [0026] Content management platform 100 manages content at the level of a group. That is, content management platform 100 allows for content to be collected and made available to user accounts that are members of a particular group (for example, user accounts 1 16 in group 120a as shown in Figure 1). Content management platform 100 further allows the content to be published to destinations identified in connection with the group, in response to publication instructions received from user accounts within the group. The functionality of collecting and publishing content can be provided for any number of groups, independently of other groups. As will be discussed in greater detail below, however, content management platform 100 can also provide for interaction between groups.
[0027] Turning now to Figure 2, a system 200 for managing content according to the overview described above is shown. System 200 includes a content management server 204, which can be based on any known server environment. Thus, server 204 can comprise one or more processing units, volatile and non-volatile memory, a network interface and other associated components in any number of physical enclosures. In other embodiments, server 204 can be based on a cloud computing architecture. The components of an embodiment of server 204 will be described in further detail below. Briefly, content management server 204 hosts content management platform 100 as discussed above.
[0028] System 200 also includes a content server 208, corresponding to a content source 108 as described in connection with Figure 1. Content server 208 can be based on any known server environment, and includes a memory in which are stored various content items, such as articles including text and images, blog posts, image files, slideshows comprising multiple image files, videos, audio files and the like. For example, content server 208 can be a server hosting the website of an online newspaper.
[0029] System 200 also includes a plurality of client computing devices 212a, 212b and so on. Client computing devices 212 can be based on any known computing environment, and thus can include any combination of desktop computers, laptop computers, mobile phones, smart phones, tablet computers and the like. Each client devices 212 is associated with a user account as described in connection with Figure 1. Thus, client devices 212 are associated with enterprise 104 as described above and shown as a dashed box in Figure 2.
[0030] System 200 further includes a destination server 216, corresponding to a content destination 112 as described in connection with Figure 1. Destination server 216 can be based on any known server environment, and is configured to receive content items and make such content items available to other computing devices. For example, destination server 216 can be a server hosting a microblogging webpage associated with enterprise 104, such as a Twitter™ feed associated with enterprise 104.
[0031] It is contemplated that any number of content servers 208, destination servers 216, and client devices 212 can be present. The restricted number of computing devices in system 200 is provided simply for illustrative purposes.
[0032] The various computing devices of system 200 are interconnected by a network 220. Network 220 can include any suitable combination of wired and/or wireless networks, including but not limited to a Wide Area Network (WAN) such as the Internet, a Local Area Network (LAN), cell phone networks, WiFi networks, WiMax networks and the like. In the present embodiment, network 220 includes the Internet. Content management server 204, content server 208, client devices 212a and 212b, and destination server 216 are each connected to network 220 via respective links 224, 228, 232a, 232b and 236. Each link illustrated in Figure 2 can be wired or wireless, and is selected for compatibility with network 220. In the present example embodiment, links 224, 228, 232b and 236 are wired links of any suitable nature, while link 232a is a wireless link. Link 232a can therefore be based on, for example, Institute of Electrical and Electronic Engineers (IEEE) 802.1 1 (WiFi) or other wireless protocols. It is contemplated that other wireless standards (Global System for Mobile communications (GSM), General Packet Radio Service (GPRS), Enhanced Data rates for GSM Evolution (EDGE), the third and fourth-generation mobile communication system (3G and 4G) and the like) can also be employed.
[0033] It is contemplated that client devices 212 can be connected directly to network 220, as shown, or can be connected to network 220 via a corporate firewall, an email server and the like, or any combination thereof.
[0034] Turning now to Figure 3, certain internal components of content management server 204 and client device 212a are shown. It is contemplated that although only client device 212a is shown in Figure 3, all client devices 212 can contain internal components similar to those discussed below. It is also contemplated, however, that client devices 212 need not all be identical, and that there may therefore be differences in the internal components of different client devices 212.
[0035] Server 204 includes a processor 304 interconnected with a non- transitory computer readable storage medium such as a memory 308. Memory 112 includes any suitable combination of volatile memory - such as Random Access Memory ("RAM") - and non-volatile memory - such as read only memory ("ROM"), Electrically Erasable Programmable Read Only Memory ("EEPROM"), flash memory, magnetic storage devices, or optical discs.
[0036] Server 204 also includes a network interface controller (NIC) 312 interconnected with processor 304. NIC 312 allows server 204 to communicate with other computing devices, such as client device 212a, via link 224 with network 220.
[0037] Server 204 can also include input and output devices (not shown) interconnected with processor 304. Input devices, such as a keyboard, a mouse, a touch screen, a microphone or any suitable combination thereof, transmit input data to processor 304. The input data is representative of commands for causing processor 304 to carry out certain tasks. Output devices can include one or more displays, each including display circuitry controllable by processor 304 for generating interfaces which include representations of data stored in memory 308. Output devices can also include any combination of speakers, light-emitting indicators and the like. The input and output devices can be co- located with server 204 and connected with server 204 via local connections such as Universal Serial Bus (USB) connections. In other embodiments, the input and output devices can be located remotely from server 204 - that is, connected to another computing device (not shown) which is in turn connected with server 204 via network 220.
[0038] The various components of server 204 are interconnected, for example via a communication bus (not shown). Server 204 can be supplied with electricity by a wired connection to a wall outlet or other power source.
[0039] Client device 212b is, in the present example embodiment, a desktop computer. Client device 212b thus includes a processor 316 interconnected with a non-transitory computer readable storage medium such as a memory 320. Memory 320 can be any suitable combination of volatile (e.g. Random Access Memory ("RAM")) and non-volatile (e.g. read only memory ("ROM"), Electrically Erasable Programmable Read Only Memory ("EEPROM"), flash memory, magnetic computer storage device, or optical disc) memory. Client device 212b also includes one or more input devices interconnected with processor 316. Such input devices are configured to receive input and provide input data representative of the received input to processor 316. Input devices can include, for example, a keyboard 324 and a mouse 238. It is contemplated that client device 212b can include further input devices (e.g. a touch screen) in addition to or instead of the above-mentioned keyboard 324 and mouse 238.
[0040] Client device 212b further includes one or more output devices. The output devices of client device 212b include a display 332. Display 332 includes display circuitry 334 controllable by processor 316 for generating interfaces which include representations of data and/or applications maintained in memory 320. Display 332 includes one or more cathode ray tube (CRT) displays or flat panel displays comprising any one, or suitable combination, of a Liquid Crystal Display (LCD), a plasma display, an Organic Light Emitting Diode (OLED) display, and the like. Circuitry 124 can thus include any suitable combination of display buffers, transistors, LCD cells, plasma cells, phosphors, LEDs and the like. In embodiments of client device 212b that include a touch screen input device, the touch screen can be integrated with display 332. The output devices of client device 212b can also include a speaker 336 interconnected with processor 316.
[0041] Client device 212b also includes a NIC 340 interconnected with processor 108. NIC 340 allows client device 212b to communicate with other computing devices via link 232b and network 220. The various components of client device 212b are interconnected, for example via a communication bus (not shown). Client device 212b can be supplied with electricity by a wired connection to a wall outlet or other power source.
[0042] Server 204 maintains, in memory 308, a content management application 344. Content management application includes a plurality of computer readable instructions which are executable by processor 304. When executing content management application 344, processor 304 is configured to control the other components of server 204 in order to implement various functionality, as will be discussed below in greater detail. The functionality implemented by content management application 344 can be offered to organizations such as enterprise 104 a Software As A Service (SAAS) capacity. Server 204 maintains additional data, which will be discussed in further detail below.
[0043] Client device 212b also maintains various collections of computer- readable instructions in memory 320. In particular, memory 320 contains a web browser application 348 and a messaging application 350 (such as a email application).
[0044] Referring now to Figure 4, a method 400 of managing content is depicted. Method 400 will be described in conjunction with its performance on system 200. That is, the blocks of method 400 are performed by processor 304 of server 204 as configured via the execution of content management application 344. It will now be apparent, however, that both method 400 and the system in which it is performed, can be varied.
[0045] Beginning at block 405, processor 304 is configured to receive and store a content item. In particular, the content item is received at processor 304 from NIC 312. As mentioned earlier, for example in connection with Figure 1 , the received content item can arrive at NIC 312 from a variety of sources. In broad terms, the received content item can be received from a computing device in connection with a user account, or the content item can be received from a computing device without a connection to a particular user account. Turning now to Figure 5, the various ways of performing block 405 will be described.
[0046] Figure 5 depicts three example performances of block 405. A performance of block 405 in which a content item is received in connection with a user account is shown at blocks 505 to 515. At block 505, a message containing a content item is received at processor 304 via NIC 312. The message can also contain multiple content items - a single content item is described herein for illustrative purposes. The received message can be an email message, a Short Message Service (SMS) message, a Multimedia Messaging Service (MMS) message, or any other suitable message. Server 204 can therefore have identifiers such as an email address, a telephone number and the like, as necessary in order to receive various types of message.
[0047] At block 510, processor 304 is configured to determine a group identifier with which the content item in the received message is to be associated. The determination at block 510 is made based on the contents of the message. For example, an email message includes the email address of its sender, while an SMS message includes a telephone number or a device identifier (e.g. an International Mobile Equipment Identity (IMEI)) of its sender. More broadly, the message received at block 505 includes an identifier of the message's originator. Processor 304 detects such originator identifiers and refers to a user account database maintained in memory 308. [0048] Referring briefly to Figure 3, a user account database 352 is shown in memory 308. User account database 352 includes a record for each user account 1 16 which has access to content management platform 100. Each record includes a variety of data relating to the user account. In particular, each user account record includes any available email addresses, device identifiers, telephone numbers and the like, for email addresses and client devices 212 associated with the user account. Thus, a user account for an individual named Alice Smith can contain, in addition to the name of the individual, the following data: [0049] One or more email addresses, including for example the email address "asmith@104.com";
[0050] One or more device identifiers, including, for example, the device identifier "212a" indicating that client device 212a is associated with Alice Smith's user account. Client device 212a may be a smart phone operated by Alice Smith, for instance;
[0051] One or more telephone numbers, including, for example, the telephone number "555-123-4567", which is the telephone number associated with the Subscriber Identity Module (SIM) card in client device 212a.
[0052] Each record also contains one or more group identifiers, indicating which group or groups the user account is a member of. For example, the user account described above can include the group identifier "120a".
[0053] Returning to Figure 5, processor 304 is therefore configured to extract an originator identifier from the message received at block 505, and to compare the extracted originator identifier with the records of user account database 352. When a user account record is located which contains the same originator identifier, processor 304 selects the group identifier stored in that record. It is contemplated that if, at block 510, no match for the originator identifier received at block 505 can be found in user account database 352, the message received at block 505 can be discarded and the performance of method 400 terminated (unless there are further content items to be received and processed). [0054] Proceeding to block 515, processor 304 is configured to store the received content item (extracting it from the message as necessary) in memory 308 along with the group ID determined at block 510. Referring again to Figure 3, a content store 356 is shown, in which received content items are stored. Content store 356 contains a database record for each content item. Each record of content store 356 contains the actual content item, and the group ID associated with the content item.
[0055] It is also contemplated that user account database can include records for content sources to which server 204 is subscribed in connection with group 120a. For example, the message received at block 505 can be an email message from a service such as Google Alerts™. Thus, an email address or other identifier for the subscription can be stored in accounts database 352, along with any other data defining the subscription (such as keywords, in the case of Google Alerts™). Certain user accounts can be permitted to alter the subscriptions stored in user account database 352. In other embodiments, such subscriptions can be maintained in a separate database.
[0056] A second performance of block 405 begins at block 520 of Figure 5. Blocks 520 to 535 relate to the receipt of a content item at server 204 in connection with a user account, as with blocks 505 to 515. However, blocks 520 to 535 relate to receipt of the content item via a website hosted by server 204 rather than in a message. Referring briefly to Figure 3, a website 360 is shown stored in memory 308. Website 360 is thus hosted by server 204 and available to other computing devices via network 220. As will be discussed in further detail below, website 360 comprises a plurality of web pages. Some of the web pages are accessible by any computing device, while others are accessible only in connection with a user account. Of note at this point is that website 360 is associated with a particular group, such as group 120a shown in Figure 1. Server 204 can therefore a different website for each of a plurality of groups.
[0057] Returning to Figure 5, at block 520 processor 304 is configured to receive an authentication request from a computing device, such as client device 212a. Such a request can be formed by client device 212a executing browser application 348 to access a login page 362 (shown in Figure 3) of website 360 and enter authentication data, such as a login and password. Having received the authentication request at block 520, processor 304 is configured to determine whether or not to grant the authentication request at block 525. The determination at block 525 is made with reference to user account database 352, which can also include (in addition to the data discussed above), for each record, a login and a password. When the login and password provided at block 520 match the login and password of a record in user account database 352 which includes the group ID associated with website 360, the determination at block 525 is affirmative. When the proffered login and password do not match a record in user account database (or when they match a record that does not include the group ID associated with website 360), the request is denied at block 530.
[0058] Assuming the authentication is successful, processor 304 proceeds to receive a content item and store the content item in content store 356, in association with the group ID of the user account which was authenticated at block 525. Receiving the content item at block 535 can include transmitting data to client device 212a (or any other computing device from which the authentication request was received), representative of an upload page within website 360. The upload page can include, for example, a field into which the storage path of the content item in memory 320 can be entered. Following entry of the storage path, client device 212a can transmit a further message (such as a Hypertext Transfer Protocol (HTTP) message) which includes the content item.
[0059] A third example performance of block 405 begins at block 540. While the first two performances of block 405, described above, related to the receipt of content items in connection with a user account, the third performance of block 405 involves the receipt of content items from computing devices not directly associated with a user account. At block 540, processor 304 is configured to transmit requests for content to other computing devices. Such requests are transmitted based on the contents of a content source database (shown at 364 in Figure 3). Content source database 364 includes a plurality of content source records, each identifying a source of content which processor 304 can be configured to query at configurable intervals. Thus, content source database 364 includes an identifier for the content source (such as a URL or network address, e.g. Internet Protocol (IP) address or Media Access Control (MAC) address), a group ID with which content retrieved from the content source is to be associated, and a frequency with which the content source is to be queried.
[0060] The performance of block 540 therefore includes consulting the content source database 364 and determining whether any requests are to be sent. This determination can be carried out, for each source, by comparing the date and time at which the last request was sent to that source (which can also be stored in content source database 364) with the current date and time and the frequency parameter stored in content source database 364. For example, if the elapsed time between the last request and the current date and time is greater than the frequency parameter, processor can be configured to determine that a new request for content should be sent. When processor 304 determines that one or more sources are due to be queried, processor 304 generates and transmits requests, via NIC 312, to the relevant content sources. Such sources can include, for example, online news websites, social networking websites, and the like. The requests can also include keywords, times and dates, or both, in order to limit the scope of the eventual response from each content source. It will now be apparent that such additional parameters can also be maintained in content source database 364, and that their use will depend in part on the capabilities of each individual content source.
[0061] It is contemplated that the requests transmitted at block 540 can take a variety of forms. For example, an HTTP request can be used when the content source is a website such as that of an online newspaper. When the content source is a social networking service, such as Facebook™ or Linked In™, the request can be an Application Programming Interface (API) call to the service. Various types content sources and corresponding requests will now be apparent to those skilled in the art. Neither the content sources nor the requests used to query them are particularly limited herein.
[0062] At block 550, processor 304 is configured to receive and store any responses from the content sources to which requests were transmitted at block 540. Each content item contained in the responses is stored in content store 356, in association with the group ID with which the source of that content item is associated in content source database 364.
[0063] Having completed one or more of the above performances of block 405, processor 304 is configured to proceed in the performance of method 400, to block 410.
[0064] Returning to Figure 4, at block 410, processor 304 is configured to assign a content type and generate views of the content item received at block 405. The content type assigned to the received content item is assigned based on characteristics of the content item as detected by processor 304. For example, processor 304 can be configured to detect a file type, formatting tags and other attributes of the received content item. Non-limiting examples of content types which can be assigned to the content item are as follows:
[0065] The "Link" content type, when the content item is a URL.
[0066] The "Document" content type, when the content item is a file such as a word processing file or a URL which references such a file. Examples of files which would be assigned the content type Document include Portable Document Format (PDF) files, Microsoft Word™ (.doc, .docx) files, Microsoft Powerpoint™ files (.ppt, .pps) and the like.
[0067] The "Video" content type, when the content item is a video file (for example, a file having any of the extensions .mov, .mp4, .avi and the like), or a URL which reference such a file.
[0068] The "Short Message" content type, when the content item is a text entry with a length of less than one hundred and forty characters. [0069] The "Blog Post" content type, when the content item is a text entry with a length greater than one hundred and forty characters.
[0070] The "Image" content type, when the content item is an image without accompanying text entries.
[0071] The "Gallery" content type, when the content item comprises multiple image files which were received as a single entry at block 405.
[0072] The "Audioclip" content type, when the content item is an audio file (for example, a file having any of the extensions .mp3, .wav and the like).
[0073] The "Event" content type, when the content item defines a calendar event (for example, in the iCalendar format, .ical).
[0074] The assigned content type is stored in content store 356 in association with the content item (that is, in the database record for that content item). Processor 304 then proceeds to generate views for the content item, based on the assigned content type. In particular, a feed view and a page view are generated. The feed view is for use on a web page in which the content item will be displayed along with other content items, while the page view is for use on a web page in which that particular content item will be the only one displayed. For example, if the received content item is a news article, processor 304 can assign the content type "blog post" to the content item. In generating views, processor 304 can then be configured to detect a headline and a body of the article based on formatting tags contained in the content item. Referring to Figure 6, a feed view 600 and a page view 604 are shown. Feed view 600 includes the headline 608 of the article, and a portion 612 of the body of the article (such as the first ten words). Page view 604, on the other hand, includes the headline 608 and the entirety of the body 616 of the article. Once generated, the feed and page views 600 and 604 are stored in content store 356. In other embodiments, feed and page views 600 and 604 can be stored separately from content store 356, in association with a unique identifier which identifies content store 356. Such a unique identifier can be stored in association with each content item in content store 356, even in embodiments where the views are also in content store 356.
[0075] The generation of views at block 410 can also include creating versions of the content item formatted for syndication, for example according to the RSS or Atom feed formats. Such versions can also be stored in content store 356.
[0076] Returning to Figure 4, the performance of method 400 continues at block 415. At block 415, processor 304 is configured to update the status of the content item received at block 405. Content store 356 can include, for each content item record, a status indicator. At block 415, the status indicator for the received content item is updated to "unpublished", indicating that the content item has been accepted into content store 356 and that views have been generated, but that the content item has not yet been published.
[0077] Continuing to block 420 of method 400, processor 304 is configured to receive a selection of the content item received at block 405. In general, the selection of a content item at block 420 is an instruction to processor 304 to proceed with the publication of the selected content item. The selection received at block 420 can be received in a variety of ways. For example, referring to Figure 7, the performance of block 420 can include the receipt of an authentication request from a computing device in connection with a user account. The authentication request can be a request to login to website 160.
[0078] Following successful authentication of the request (as described in connection with Figure 5), processor 304 can be configured to generate an unpublished feed webpage (shown at 366 in Figure 3). Unpublished feed webpage 366 can be transmitted to the computing device from which the authentication request was received (e.g. client device 212a) following successful authentication. In other embodiments, unpublished feed webpage 366 can be transmitted to client device 212a after an additional request is received. For example, following authentication, a "home" webpage (not shown) can be transmitted which contains a link to unpublished feed webpage 366. [0079] Processor 304 can generate unpublished feed webpage 366 by selecting the feed views of any content items with the group ID associated with website 360 and the user account from which the authentication request was received, as well as the status "unpublished" in content store 356, and inserting the selected feed views into a configurable webpage template. It will now be appreciated that the performance of block 705 need not result in the generation of an entirely new webpage. Rather, webpage 366 can be updated at every performance of block 705.
[0080] Following the generation (or updating, as noted above) of unpublished feed webpage 366 at block 705, processor is then configured to receive a selection of a feed view as displayed in webpage 366 at block 710. Turning to Figure 8, an example webpage 366 is shown as displayed at client device 212a. Webpage 366 includes feed view 600, as well as additional feed views 800 and 804 of other unpublished content items. Selection of the 808 element of webpage 366 causes client device 212a to transmit a message to server 304 indicating that feed view 600 has been selected (selection of elements 812 and 816 would cause similar messages to be sent relating to feed views 800 and 804, respectively).
[0081] It is also contemplated that multiple feed views can be selected at block 710. In other embodiments, the selection of a feed view at block 710 can lead to a further webpage in which the corresponding page view is displayed, along with an "approve" button similar to elements 808, 812 and 816. Thus, selection of a content item can involve selection of the page view for that item, as well as selection of the feed view.
[0082] Returning to Figure 4, once processor 304 has received the selection of the content item, processor 304 is configured to receive publication data defining the publication of the selected content item. Publication data can include identifications of one or more content destinations. For example, the received publication data can include an identification of an additional server (not shown in Figure 3) which hosts a corporate website for enterprise 104 or for group 120a. Publication data can also include a date and time of publication. The destination identifications and the date and time can be received from a computing device such as client device 212a. In other embodiments, the destination identifications can be received from client device 212a, while the time and date of publication can be determined automatically by processor 304. For example, processor 304 can be configured to assign a time and date to a content item to be published in order to publish the content item at a particular time of day. In some embodiments, processor 304 can be configured to automatically select the beginning of the next business day (for example, at 9:05am) for publication.
[0083] Referring to Figure 9, an interface 900 is shown, which can be transmitted to client device 212a for display as an overlay to webpage 366, or as a separate web page. Interface 900 enables the receipt of input data at client device 212a defining publication data. Once the input data has been received, client device 212a can transmit the publication data to server 204, for receipt at block 425. In particular, interface 900 includes an identification 904 of the content item which is to be published, and selectable elements 908, 912 for identifying the destinations to publish to. It is contemplated that any number of selectable destination identifiers can be provided, including destinations related to both the group to which the content item is connected (such as a group Twitter™ feed) and the individual user account providing the publication data (such as an individual Linkedln™ profile). The destinations to be made available for publication can be stored in memory 308 and retrieved to generate interface 900. In particular, memory 308 can contain a destinations database (not shown) which contains a record for each destination, including an identifier of the destination (such as a URL), any authentication information (i.e. login and password) necessary to access the destination, and one or more group IDs indicating which groups the destination is to be available for publishing. Destinations can also include email addresses or other identifiers (such as telephone numbers, for publishing via SMS message and the like). [0084] Interface 900 also includes a field 914 for receiving supplementary content, such as a brief comment concerning the content item to be shared.
[0085] Interface 900 can also include selectable elements 916, 920 for indicating a permission level to be associated with the published content item, as will be discussed below in greater detail.
[0086] Referring again to Figure 4, having received the publication data at block 425 and stored the publication data in memory 308 (for example, in content store 356 in the record for the selected content item), processor 304 is configured to publish the content item at block 430, according to the publication data. Publication comprises generating a unique URL which refers to the selected content item in content store 356, storing the URL in the content store 356 and creating a webpage 368 (shown in Figure 3) identified by that URL within website 360. Publication further comprises transmitting a message to each specified destination, comprising the unique URL and any supplementary content received at block 425.
[0087] The webpage 368 is configured to be publicly available. That is, authentication by a user account 1 16 is not necessary to view webpage 368. Thus, server 204 itself acts as a destination for publication. As the publication messages transmitted to other destinations contain the URL of webpage 368, requests to view the published content item, even if received at destinations outside the direct control of server 204 or enterprise 304, can be monitored by server 304. Thus, processor 304 is also configured, during the performance of block 430, to create tracking identifiers for each selected destination and to store the identifiers in memory 308. Any request for the unique URL received at server 204 can be tracked in a database in memory 308, in connection with the identifier corresponding to the content destination from which the request was received. Processor 304 can also be configured to store, along with the tracking identifiers, an identifier of the user account from which publication data was received. Thus, processor 304 can gather and store statistics defining which content items have been published to where, by which user accounts, as well as which published content items are most popular, which destinations result in the most visits to webpage 368 and the like.
[0088] Processor 304 can also be configured, as part of the performance of block 430, to update the status of the published content item in content store 356 to "published". Additionally, processor 304 can generate a further publicly available published feed webpage (370 in Figure 3), which comprises the feed views of any published content items for group 120a.
[0089] In some embodiments, processor 304 can also be configured to transmit messages, such as email messages, at configurable intervals, containing the unique URLs of selected content items which have previously been published. Processor 304 can automatically select such content items based on the statistics gathered as a result of requests for webpage 368. For example, processor 304 can be configured to select the five most requested content items in a certain time period (such as the previous week) for "re- publication". Processor 304 can then be configured to select recipient addresses for the email messages. Recipient addresses can be stored in connection with user accounts in user account database 356 (that is, each user account can have one or more contacts whose email addresses are stored in database 356). In some embodiments, memory 308 can also store a list of group contacts, comprising email addresses associated with group 120a, but not with any particular user account 1 16. Also in some embodiments, email addresses in addition to the above, or instead of the above, can be received from a client device.
[0090] It is also contemplated that recipients of such re-publications can be granted limited access to user account database 352, in order to modify the keywords which they are associated or the frequency with which the receive republication messages. Such modifications can be received at server 204 from other computing devices (not shown) associated with the recipients. For example, the re-publication emails can include a link to a recipient webpage (not shown) within website 360 which allows for such modifications. [0091] Having selected the content items and recipients, processor 304 is configured to generate and transmit the messages. It is also contemplated that the above email re-publication can occur automatically at a configurable interval, or can occur in response to an instruction received from a client device 212. It is further contemplated that email messages can be generated based on keywords and other metadata associated with recipient addresses. Thus, an email can be generated as described above not only for the most requested content items, but for the most requested content items relating to a certain topic. In such embodiments, content store 356 can include metadata (which can be received at blocks 405, 425, or both) including keywords, and recipient addresses are stored in association with metadata. Processor 304 is then configured to generate email messages to re-publish selected content items that are associated with certain keywords, to recipients which are also associated with those keywords.
[0092] It is further contemplated that the above-mentioned metadata stored in content store 356 can be used in the generation of webpages such as the published feed webpage 370. For example, rather than generating and updating a single published feed webpage 370, processor 304 can be configured to generate separate published feed webpages for each keyword, or for certain combinations of keywords. Likewise, the webpage 368 generated at block 430 for each published content item can be generated as a sub-page of a webpage which contains all the webpages 368 for content items having certain keywords. In yet another embodiment, processor 304 can be configured to dynamically generated response to requests for webpages 368 and 370. The dynamically generated responses can contain only content items (whether feed or page views thereof) associated with keywords received in the request for the webpages.
[0093] Following publication at block 430, processor 304 can also be configured to receive re-publication requests via the published feed webpage 370 or via webpage 368 for a given content item. Such requests can be received, via network 220, from any computing device, including client devices 212 and other computing devices not associated with enterprise 104. Processor 304 is configured to determine whether to grant such requests, or whether to allow for such requests to be made, based on the permission level described above in connection with block 425 of method 400. Referring again to Figure 9, the selection of element 916 results in a permission level of "public" being received at block 425, while the selection of element 920 results in the receipt of a permission level of "private". For content items with a permission level of "public", processor 304 is configured to make a selectable element available on (for example) webpage 370 whose selection by a computing device results in processor 304 receiving a re-publication request. Such a request causes processor 304 to perform blocks 425 and 430 again for the content item associated with the re-publication request. Content items with a permission level of "private" can only be re-published by way of requests received from authenticated user accounts.
[0094] It is contemplated that additional permission levels can also be used. In some embodiments, user account database 352 can include, for each user account record, a role identifier indicating a level of rights accorded to the user account. Thus, re-publication rights can be limited to only certain group members, such as group members having the roles "moderator" or "administrator". It will now be apparent that user account roles can also determine the level of interaction permitted to a client device 212 prior to publication. For example, referring to Figure 5, processor 304 can be configured to examine the role of a user account from which a content item is received at block 505 or 535, and to allow the receipt of the content item only if the user account's role is "contributor" (and to deny the receipt if the role is, for example, "reader"). Similarly, selection of a content item for publication at block 420 may be allowed only to certain roles which have publishing rights (the "reader" role, for example, may be barred from publishing).
[0095] Referring now to Figures 10-14, example models of content management application 344 are shown. In particular, Figure 10 depicts examples of the organization and attributes of user accounts and content items. Figure 1 1 depicts attributes of an event content type. Figure 12 depicts further attributes of content types. Figure 13 depicts the attributes stored in connection with a subscribing entity such as enterprise 104, including attributes defining the billing of the entity. Figure 14 depicts certain attributes stored in connection with groups and user accounts.
[0096] Certain variations to the above methods and systems are contemplated. For example, while the performance of method 400 was discussed in connection with a single content item, processor 304 can be configured to perform method 400 for any number of content items and publication requests received from any authorized client devices 212. Thus, various performances of method 400 can be executing simultaneously on processor 304. Further, while client device 212a was discussed as the source of content items, selections and publication data, it will now be apparent that a content item can be submitted in connection with one user account, and selected for publication in connection with a different user account.
[0097] It is also contemplated that the interactions between server 204 and client devices 212 described above can be conducted by way of API requests from a client application on the client device 212 and responses to such requests, rather than by HTTP requests and responses in connection with the above-mentioned websites.
[0098] According to some variations, the performance of method 400 can include an approval process for content items retrieved automatically by processor 304 (that is, at blocks 540 and 550 of Figure 5). Referring to Figure 15, a method 1500 of obtaining approvals for automatically retrieved content items is depicted. Following the generation of views at block 410, processor 304 can be configured to determine whether to send received content items for approval at block 1505. The determination at block 1505 can involve a determination of whether or not a certain amount of time has elapsed since the previous performance of method 1500. For example, processor 304 can be configured to transmit new content items for approval every twenty-four hours. If the time period has not elapsed, processor 304 can "wait" at block 1505. When the determination is affirmative, however, processor 304 continues to block 1510.
[0099] At block 15 0, processor 304 is configured to generate and transmit a new content digest to one or more client devices 212. Generating the new content digest comprises retrieving content items from content store 356 which have not yet been sent in previous digests (content store 356 can maintain a time stamp for the receipt of each content item for this purpose). Having retrieved at least one content item, processor 304 is configured to generate a message - in the present example embodiment, an email message - which includes an identification of the retrieved content item. Various formats can be used for the message. In the present example embodiment, the message includes the feed view generated at block 410.
[00100] Referring to Figure 16, a message 1600 generated at block 1510 is shown. In particular, message 1600 includes feed view 600, as well as a selectable "Approve" button 1604, which will be discussed in greater detail below. In order to determine the recipients of message 1600, processor 304 is configured to refer to user account database 352. Users having certain roles (such as "contributor"), and in some embodiments, certain keywords matching metadata associated with the content items to be approved, can be selected as recipients. The email addresses of the selected recipients are inserted in the "To" field of message 1600, and message 1600 is transmitted via NIC 312. Upon receipt of message 1600, each recipient client device 212 can generate a representation of message 1600 on a display, allowing for selection of the "approve" button 1604 by way of input devices at the client devices.
[00101] Returning to Figure 15, the performance of method 1500 continues at block 1515, at which processor 304 is configured to receive a selection of one or the content items for which feed views were transmitted at block 1510. Referring again to Figure 16, selection of the "approve" button 1604 at, for example, client device 212a, causes client device 212a to transmit a message to server 204 indicating that feed view 600 has been selected. The selection received at block 1515 is an indication that the content item is to be made available for eventual publication. That is, processor proceeds to perform block 415 of method 400, updating the status of the selected content item to "unpublished".
[00102] For any content items which were transmitted at block 1510 and not selected, processor 304 can be configured to update their status to "listening", and to maintain them in content store 356 for a configurable time period (such as one week) before being deleted. During that time period, the feed views of such content items (i.e. those marked with the status "listening") can be inserted in a listening feed webpage (not shown) of website 360. Such content items, up until their deletion, can still be selected for publication, initiating a performance of block 415 of method 400, at which the status of such items is updated to "unpublished". The listening feed webpage can be requested by client devices 212 in connection with authenticated user accounts.
[00103] In a further variation, processor 304 can determine whether approval is required prior to publishing a selected content item. Thus, following the receipt of publication data at block 425, processor 304 can be configured to examine the role of the user account in connection with which the publication data was received. For example, publication by a user account with the "contributor" role may require approval by a user account with the "moderator" role. An explicit request for approval can also be received with the publication data at block 425. For example, the publication data can include an identifier of one or more user accounts other than the user account submitting the publication data, the identifiers acting as a request to obtain approval from one or more of the identified user accounts prior to publishing the content item.
[00104] If processor 304 determines that no approval is required, method 400 proceeds to block 430 as described above. If processor 304, however, determines that approval is required, processor 304 can transmit a message to the identified user accounts (the message can be similar to that shown in Figure 16), and only proceed to block 430 once affirmative responses are received. In further embodiments, processor 304 can determine whether approval is required based on the group ID of the user account from which the publication data is received. For example, enterprise 104 may have an "approvers" group which must approve the publication of any item by any other group within enterprise 104. The requirement to obtain approval from another group can be stored in user account database 352, such as in an "approver group ID" field or a "parent organization" field.
[00105] Persons skilled in the art will appreciate that there are yet more alternative implementations and modifications possible for implementing the embodiments, and that the above implementations and examples are only illustrations of one or more embodiments. The scope, therefore, is only to be limited by the claims appended hereto.

Claims

We claim:
1. A method of managing content, the method comprising:
receiving one or more content items and storing the one or more content items in a memory in association with a group identifier;
generating and storing at least one view of the content item;
receiving a selection of one of the one or more content items;
receiving publication data in connection with the selected content item; publishing the selected content item, wherein publishing includes:
transmitting an identifier of the selected content item to at least one destination, and generating a webpage comprising the selected content item.
2. The method of claim 1 , wherein the content item comprises at least one of text, image and video data.
3. The method of claim 1 or claim 2, wherein the identifier is a unique Uniform Resource Locator, URL.
4. The method of any of claims 1 to 3, wherein receiving the one or more content items comprises:
receiving a message containing an identifier of the originator of the message, and the one or more content items; and
determining the group identifier based on an originator identifier included in the message.
5. The method of any one of claims 1 to 3, wherein receiving the one or more content items comprises:
receiving an authentication request including an identifier of a user account;
determining whether to grant the authentication request based on the contents of a user account database and the user account identifier; and,
when the request is granted, receiving the content item and determining the group identifier based on the contents of the user account database.
6. The method of any one of claims 1 to 3, wherein receiving the one or more content items comprises:
transmitting at least one request to a content source; and,
receiving a response to the at least one request, the response including the one or more content items;
7. The method of claim 6, further comprising:
prior to receiving a selection of one of the one or more content items, determining whether to send the one or more content items for approval;
when the determination is affirmative, selecting an approval recipient from a user account database;
transmitting a message to the selected recipient; and
receiving a response from the selected recipient, the response indicating an approval or disapproval of the one or more content items.
8. The method of any one of claims 1 to 7, wherein publishing the selected content item further comprises: after transmitting the identifier of the selected content item and generating the webpage, selecting the published content item; and
generating and transmitting an email message comprising an identifier of the published content item.
9. A server, comprising:
a memory;
a network interface controller; and
a processor interconnected with the memory and the network interface controller, the processor configured to receive one or more content items via the network interface controller and to store the one or more content items in the memory in association with a group identifier;
the processor further configured to generate at least one view of the content item and store the at least one view in the memory;
the processor further configured to receive a selection of one of the one or more content items via the network interface controller;
the processor further configured to receive publication data, via the network interface controller, in connection with the selected content item;
the processor further configured to publish the selected content item, wherein publishing includes:
transmitting an identifier of the selected content item to at least one destination, and generating a webpage comprising the selected content item.
10. The server of claim 9, wherein the content item comprises at least one of text, image and video data.
11. The server of claim 9 or claim 10, wherein the identifier is a unique Uniform Resource Locator, URL.
12. The server of any of claims 9 to 11 , the processor being further configured to receive the one or more content items by:
receiving a message containing an identifier of the originator of the message, and the one or more content items; and
determining the group identifier based on an originator identifier included in the message.
13. The server of any one of claims 9 to 11 , the processor being further configured to receive the one or more content items by:
receiving an authentication request including an identifier of a user account;
determining whether to grant the authentication request based on the contents of a user account database and the user account identifier; and,
when the request is granted, receiving the content item and determining the group identifier based on the contents of the user account database.
14. The server of any one of claims 9 to 11 , the processor being further configured to receive the one or more content items by:
transmitting at least one request to a content source; and,
receiving a response to the at least one request, the response including the one or more content items;
15. The server of claim 14, the processor being further configured to: determine, prior to receiving a selection of one of the one or more content items, whether to send the one or more content items for approval;
when the determination is affirmative, to select an approval recipient from a user account database;
to transmit a message to the selected recipient; and
to receive a response from the selected recipient, the response indicating an approval or disapproval of the one or more content items.
16. The server of any one of claims 9 to 15, the processor being further configured to publish the selected content item by:
selecting, after transmitting the identifier of the selected content item and generating the webpage, the published content item; and
generating and transmitting an email message comprising an identifier of the published content item.
17. A non-transitory computer readable medium comprising a plurality of computer-readable instructions executable by a processor, the instructions for implementing the method of any one of claims 1 to 8.
PCT/CA2011/000201 2010-02-26 2011-02-25 System, method and apparatus for managing electronic content WO2011103665A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30847310P 2010-02-26 2010-02-26
US61/308,473 2010-02-26

Publications (1)

Publication Number Publication Date
WO2011103665A1 true WO2011103665A1 (en) 2011-09-01

Family

ID=44506101

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA2011/000201 WO2011103665A1 (en) 2010-02-26 2011-02-25 System, method and apparatus for managing electronic content

Country Status (1)

Country Link
WO (1) WO2011103665A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008072093A2 (en) * 2006-12-13 2008-06-19 Quickplay Media Inc. Mobile media platform
WO2009070861A1 (en) * 2007-12-06 2009-06-11 Suhayya Abu-Hakima Processing of network content and services for mobile or fixed devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008072093A2 (en) * 2006-12-13 2008-06-19 Quickplay Media Inc. Mobile media platform
WO2009070861A1 (en) * 2007-12-06 2009-06-11 Suhayya Abu-Hakima Processing of network content and services for mobile or fixed devices

Similar Documents

Publication Publication Date Title
JP6427159B2 (en) Interacting with spreadsheets using text messages
US7747602B2 (en) Comment faces
EP2757744B1 (en) System for muti-point publication syndication
US9183515B2 (en) Share box for endorsements
US8504626B2 (en) System and method for content tagging and distribution through email
US10193844B1 (en) Secure cloud-based messaging and storage
US10873553B2 (en) System and method for triaging in a message system on send flow
CN110061903B (en) Method for generating social network activity streams
US20150312259A1 (en) Searching Private Content and Public Content
US20080172391A1 (en) Multiple format file archiving in an online social community
US20080177848A1 (en) System and method of sharing and dissemination of electronic information
US20140108621A1 (en) System and method for internet services aggregation
SG171452A1 (en) Method and apparatus for displaying feeds content of contact and processing apparatus and system thereof
KR20120036831A (en) Integrating updates into a social-networking service
US10296509B2 (en) Method, system and apparatus for managing contact data
US9876776B2 (en) Methods for generating and publishing a web site based on selected items and devices thereof
US20160239533A1 (en) Identity workflow that utilizes multiple storage engines to support various lifecycles
WO2014176896A1 (en) System and method for updating information in an instant messaging application
US20100325245A1 (en) Aggregated proxy browser with aggregated links, systems and methods
CN110709870B (en) Intelligent member management
US20150026266A1 (en) Share to stream
WO2011103665A1 (en) System, method and apparatus for managing electronic content
WO2012167149A1 (en) System and method for internet services aggregation
US20230325888A1 (en) Methods and systems for generating and managing electronic communication campaigns
US20170279756A1 (en) Aggregating email

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11746784

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205N DATED 29/11/2012)

122 Ep: pct application non-entry in european phase

Ref document number: 11746784

Country of ref document: EP

Kind code of ref document: A1