text:
|Publication number
|Publication type
|Application number
|PCT number
|Publication date
|Feb 1, 2011
|Filing date
|Mar 17, 2006
|Priority date
|Mar 18, 2005
|Fee status
|Also published as
|Publication number
|Kwok Kay Wong
|Original Assignee
|Capital Source Far East Limited
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (31), Non-Patent Citations (3), Referenced by (32), Classifications (7), Legal Events (5)
|External Links: USPTO, USPTO Assignment, Espacenet
This invention generally relates to the fields of mobile communication, information retrieval and data management. More particularly, the present invention relates to a novel system that allows remote end users to rapidly and securely access and update information at heterogeneous data sources from a variety of devices, in particular mobile devices.
Recent innovations in communication have led to the production and availability of a large variety of mobile devices. Innovations in information retrieval and database technologies have provided improved capabilities of handling information of a spectrum of heterogeneous formats. The availability of these mobile devices has essentially transformed methods of communication and information retrieval, and has added an element of convenience to every day life. No longer is it required for an individual to transmit and receive information via a stationary unit. Additionally, the advancements of information retrieval and database technologies have produced a variety of specialized database products from traditional relational database systems to document content management systems to multimedia database systems. These advancements have introduced the search capability from the Internet search to the desktop file search (e.g., Google� desktop search). As a result, corporate entities and enterprises usually maintain more than one database (e.g., linked by a middleware system such as IBM� Websphere) and need to handle information search and management of an increasing complexity. The production and availability of mobile devices have resulted in mobile devices changing from being a luxury item, to an item of necessity. In fact, corporate entities and enterprises are moving towards providing their workforces with ubiquitous access to networked corporate applications and a wide array of heterogeneous data sources, such as, for example, e-mail, address books, appointment calendars, customer databases, minutes of a meeting, etc.
Problems with providing remote access to heterogeneous information sources are associated with accessing and presenting results from multiple systems. Accessing heterogeneous data systems involves interacting with their individual interfaces, access control and authorization mechanisms. Further, because many of the data repositories have different structures, the types of queries that are sent to one repository might be very different from the queries that would be sent to another repository. Finally, due to these different structures or formats, it is usually necessary to launch different computer software to present the contents of the results. For example, document management systems and Internet search engines return their matched results in a similar way, i.e., a list of links pointing to the locations of the corresponding documents or web pages respectively. By clicking on a link, the application associated with the format of the document or page is invoked and used to present its content. Problems arise when an individual is searching for a contact phone number urgently. The individual will have to browse through the content of each matched results until the answer is found. The problem is worse when the number of matches is large.
Although many systems provide remote access to data sources through an Internet connection (e.g., via a Web browser) or wireless connection interface (e.g., via Wireless Application Protocol), the remote access usually involves programming efforts (i.e. to build client programs or interfaces for each system). Furthermore, these custom-built access interfaces are usually distinct from one another. As a result, users will have to interact with different user interfaces when they access different applications. Similarly, for remote data repositories that have built-in remote access support, these systems present unique or proprietary interfaces to the user once connected.
Further, because many of the data repositories have different structures, the types of queries that a user would present to one repository might be very different from the queries that would be put to another repository. The situation becomes worse when a developer is trying to write a program that can access data from heterogeneous information sources, which provide a unique, proprietary API (Application Programming Interface). Middleware software provides an easy way to connect to multiple data repositories. However, they only provide a generic API to access these systems without attempting to dispatch the queries and integrate the query results according to the structures or semantics of the data. Accordingly, although much information is available over the Internet, much of the information is stored in dissimilar systems. Thus, a person wanting to search several of these systems must access each of them separately and organize all the received information locally after it has been downloaded.
Along with the problem of accessing information from different remote data sources, users frequently have access to different devices, each having different data access and display abilities/requirements. For example, certain cellular telephone handsets have the ability to receive e-mail, but do not have a built-in word processor to display a Microsoft� Word document. Certain mobile phone handsets can play music in MP3 format but cannot process songs in WMA format. Also, many PDAs (Personal Digital Assistants) do not have the ability to edit any document or update enterprise databases, but can retrieve or even maintain personal data, such as emails, calendars and contact address. Other PDAs have the ability to access to the enterprise network through their Virtual Private Network (VPN). Some systems or networks allow users to download their e-mail headers to a remote device and read some portion or all of the e-mail. However, while most devices are able to display the body of an email properly, most fail to display/render email attachments that may be of arbitrary formats. Hence the ability for users to access, maintain, and dynamically utilize information is heavily dependent on the device being used.
Working with data that requires launching multiple applications is cumbersome and tedious, especially on a mobile device. It involves interacting with a limited device to invoke each application. Within each application, the corresponding document/data file has to be identified/selected, loaded, edited and then saved. Due to the limitations of the display of a device, which may impose a limit on the number of applications visible at any one time, the transition from one application to anther is usually not seamless and involves many repetitive steps. Furthermore, individual applications have unique user interfaces and functionalities that can reduce the productivity of mobile device users.
Further, certain organizations limit and maintain access to the information maintained in an enterprise. For example, many corporations control e-mail access using a dedicated server (e.g., VPN server) having restricted access, including using firewalls and encryption. Access to this information requires making the information available under conditions imposed and maintained by the corporation. Once the users connect to the dedicated server, each remote data source still normally requires the user authorization and access control information. Even for the same user, this information could be different for different remote data sources. Therefore, a more convenient secure access scheme, without compromising the degree of security, is needed for remote accessing information from mobile devices. This is especially necessary for mobile users that need information immediately and from a device with limited resources).
For purposes of this application, a corporation or other entity, public private, or otherwise, is referred to as an "enterprise." As used herein, an enterprise represents any entity maintaining or controlling information at a remote location from a user. Examples of enterprises include a secure corporate network, a dedicated server, or a publicly accessible web site network. Other enterprises may be employed which maintain and control certain information as may be appreciated by those of skill in the art.
Certain enterprises also have particular needs and preferences. For example, some corporate enterprises may maintain a network that interfaces with offices in different countries, and depending on the person accessing the information, he or she may have a particular language preference. Certain enterprises also find it highly desirable to have a reconfigurable interface to provide updated graphics, information, and presence to network users. These user interfaces may change rapidly in some industries. A system offering information access should therefore be seamless and automatically transform data to an appropriate format. It should also offer user interfaces structured for the enterprise, for use on a variety of devices.
Such a system should be easy to set up and maintain, and use readily available hardware and software wherever possible. Further, the system should provide for data access tracking, data management, data backup and efficient security and authorization.
It is therefore an object of the current invention to provide a single system and interface for offering convenient and efficient access to heterogeneous data, including e-mail, calendar/date book, spreadsheets and legacy data in proprietary database systems. These terms are commonly known in the art, wherein e-mail represents electronic mail deliverable in a recognized format, including attachments and other electronic mail attributes. Calendar/date book data represents dates of meetings, appointments, holidays, or other noteworthy events maintained in a searchable database type format. Spreadsheets represent financial records and statements in a tabular, electronic format. Legacy data in proprietary database systems includes data stored in relational database systems or other type of database systems such as object-oriented databases or multimedia databases. Access to the information should preferably be provided through a single and simple query interface.
It is another object of this invention to provide a new way of using software applications to manage data via remote devices, including but not limited to personal computers, laptop computers, PDAs, cellular telephones, through a variety or mixture of various communication networks, including but not limited to a modem communication network, a broadband digital network, a wireless network, and a cellular network. This new way includes the steps of searching for the data and selecting series of applicable actions/operations/applications on the data.
It is a further object of this invention to provide for access to the desired information using any of a variety of devices, including but not limited to a personal computer, a laptop computer, a PDA, a cellular telephone, through a variety or mixture of various communication networks, including but not limited to a modem communication network, a broadband digital network, a wireless network, and a cellular network. In particular, the target remote devices for this invention are devices with limited processing power, limited output display area and restricted input capabilities. For example, PDAs, cellular telephones, etc. Although the present invention is applicable to all types of remote devices, devices exhibiting these limitations are targeted because of the optimizations for format transformations, and user and display preferences.
It is still a further object of the present invention to provide a system which recognizes the type of device requesting information and to transform the information to be displayed on the device in an appropriate format and layout. The format and layout used depends on various constraints, requirements and preferences, including but not limited to the preferences of the device user, the system requirements of the device, the availability of the software that support the format.
It is another object of the current invention to provide a central location for enabling a series of users (using various devices) to access information at multiple data sources that may be at the same enterprise or various enterprises. Such a central location should offer a single point of access to the information desired in a robust manner, offer security and maintain access control for information stored in the heterogeneous data sources, and provide for authentication and access tracking.
It is yet another object of the current invention to provide an interconnection between a central data location and the heterogeneous data sources such that the interconnection can quickly, reliably, and efficiently communicate between the central data location and each data source. Such communication involves transforming the queries and commands that originated from the device to a form that can be accepted and executed by the application programming interface (API) of the individual data source.
It is a further object of the current invention to provide a remote enterprise architecture that supports queries from and responses to the central data location for use in a multiple user and multiple device data access scheme. The remote enterprise architecture should permit rapid access to the information and transmission of the information while simultaneously maintaining firewall, security, and encryption requirements.
It is yet a further object of the current system to provide a user interface that can be easily customised by an enterprise. This allows for the maintenance of information or preferences of users. Further, the user interface should preferably provide access to enterprise data via various devices and take into account enterprise and user preferences when interfacing with a user. If necessary, information can be transformed accordingly and displayed to the user.
It is another object of the current invention to provide a new model for presenting remote data from heterogeneous data sources, which includes searching, collecting, transforming and collating query results from these remote data sources. This model should transform the query results from the remote data sources into a suitable form that can be presented in the remote device. The transformation should address all the requirements, preferences and constraints associated with a user, device or enterprise.
Accordingly, there is herein provided a method and system for providing remote access to heterogeneous information sources from computing devices including but not limited to personal computers, laptop computers, PDAs, cellular telephones.
One aspect of the present invention is directed to a computer implemented method and system for accessing information in a distributed networked environment having multiple clients, a middle tier server, and one or more remote data repositories. The middle tier server may consist of multiple computers. The method includes the steps of allowing access to said middle tier server for client queries; processing client queries, including converting said queries to native query languages supported by the appropriate remote data repositories, and dispatching said native queries to said remote data repositories; and finally processing of native query results, including integrating said native query results and converting said native query result into one or more data views, where a data view is a single presentation of heterogeneous information content in a homogeneous form.
The method may further include the steps of determining client specific information, including but not limited to, display configuration, list of installed software and their configuration and user profiles and configuration, in said client; maintaining query history for each client in said middle tier server; accessing and maintaining client specific information in said middle tier server; if necessary, transforming said data view to an appropriate data view format based on said client specific information in said middle tier server; adaptively compressing said data view based on said client specific information and network bandwidth in said middle tier server; and if necessary, decompressing said data view in said client.
A second aspect of the present invention is directed to a computer implemented method and system for accessing information in a distributed networked environment having multiple clients, a middle tier server, and one or more remote data repositories. The middle tier server may consist of multiple computers. The method includes the steps of allowing access to said middle tier server for client queries; processing client queries; allowing a user to modify query results directly and have said modifications applied to the content in the underlying data repositories.
API calls, modules or commands may further invoke other applications, commands or operations that can be accessed by Server 210. Furthermore, the API calls, modules or commands may operate on data repositories 200. The results or output of a client command can be stored at Server 210 or at remote data repositories 200.
A third aspect of the present invention is directed to a computer implemented method and system for accessing information in a distributed networked environment having multiple clients, a middle tier server, and one or more remote data repositories. The middle tier server may consist of multiple computers. The method includes the steps of allowing access to said middle tier server for client commands, where a client command is a list of one or more API calls, modules or commands that may further invoke other applications, commands or operations; processing client commands, where said client commands may operate on remote data repositories; and transforming the result or output of said client command to an appropriate format, depending on the capabilities and preferences of the device and user, where said result or output can be stored at said middle tier server or remote data repositories.
It is an object of the current invention to provide a new solution for word processing. This will be achieved by searching for relevant information from remote data sources and allowing the user to paste the search results in an appropriate format automatically. All the advantages of remote information access from the current invention would be applied and add value during the task of word processing.
It is yet another object of the current invention to provide a new business model for remote data management. For example, facility/asset management people may use a mobile device to identity the location of the asset or facility by simply searching for the relevant information from the enterprise system or network through a remote device, and update the information if necessary on the spot. While there are similar existing solutions around, most of these solutions involve a proprietary system that is tailor-made for that specific application with specific corporate requirements. Secondly, all these solutions normally require a well-defined and properly designed database (e.g., with a rigid relational schema). It is an object of this invention to provide a solution for these applications without the need for a fixed database schema and custom-made application framework. For instance, some of the facility/asset management information may be in relational databases, while others are in spreadsheets or even emails.
Other objects, features, and advantages of the present invention will become more apparent from a consideration of the following detailed description and from the accompanying drawings.
The following detailed description of the embodiments of the present invention refers to the accompanying drawings that illustrate these. Other embodiments are possible and modifications may be made to the embodiments without departing from the spirit and scope of the invention. Therefore, the following detailed description is not meant to limit the invention.
It will be apparent to one of ordinary skill in the art that an embodiment of the present invention, as described below, may be realized in a variety of implementations, including the software, firmware, and hardware of the entities illustrated in the figures (i.e., messaging servers 201, data network 220 and mobile devices 215). The actual software code or control hardware used to implement the present invention is not limiting of the present invention. Thus, the operation and behavior of the present invention will be described without specific reference to the actual software code or hardware components. Such non-specific references are acceptable because it is clearly understood that a person of ordinary skill in the art would be able to design software and control hardware to implement the embodiment of the present invention based on the description herein.
In light of the foregoing, the preferred embodiment of the present invention generally relates to a system that allows a data-centric approach to retrieving, modifying, updating and creating data and documents that may reside in one or more remote data sources in a mobile environment. The data-centric approach allows users to search for the information they need regardless of the location and format of the information. They are then able to modify or update this information by choosing the available operations, commands or applications. The availability of these operations, commands or applications is determined by the authorization and access control of the information, hardware limitations, preferences and software availability. This is a data-centric approach because the workflow of the user is tied to the information. This is in contrast to the current approach (or application-centric approach). When users modify a Microsoft� Word document and email the document to their clients, they would need to launch the appropriate application (in this case Microsoft� Word) and then edit the document there. Afterwards, they will need to launch the email program (for example Microsoft� Outlook) to type up an email and attach the document that they just modified. The process becomes more complicated when multiple applications are involved in completing a task. This issue is exacerbated on mobile devices with a small display area. In such devices, only one application can be displayed at one time. Switching between applications and modifying the same file on these devices can be very ineffective and tedious.
The preferred embodiment of the present invention is practiced in a three tier distributed processing architecture a shown in
Furthermore, in the present invention, a remote data repository can be practiced as an Internet search engine (e.g. Google�, Yahoo�). Server 210 is able to use the search technology in Internet search engines to identify matches within web pages and documents. However, server 210 performs additional processing on native search results from Internet search engines in order to perform query answering and automatic result transformation.
The present invention is directed to a computer system, computer implemented method, and computer program product for performing search and transformation in a multi-tiered networked computer environment. The preferred embodiment of the invention is practiced on a personal computer (PC) such as an IBM PC compatible having an Intel microprocessor. Alternatively, the invention can be practiced using a workstation or server such as the IBM RS/6000 Server or similar servers from Sun Microsystems� or Hewlett-Packard�. The server is under the control of an operating system such as the Microsoft� Windows NT, Microsoft� Windows 2000, Microsoft� Windows XP, IBM� OS/2, IBM� AIX, Sun Solaris, FreeBSD, or Linux operating system. The preferred embodiment uses the Linux operating system. Alternatively, in a multi-tiered network, the network will typically consist of many different computers and operating systems.
Alternatively, the present invention can also be practiced using a network of multiple computers, which may run different operating systems. In this embodiment, modules or components of the present invention can be distributed and run on different computers. They can communicate with each other via standard communication protocols such as RPC or in the form of web services using, for example, Simple Object Access Protocol (SOAP).
The present invention can also be practiced as an embedded software development library with an Application Programming Interface (API) to access the functionality. This allows the functionality to be embedded in other mobile and enterprise applications or systems. For example, an email client can embed client program 217 such that it can search email archives and automatically transform attachments to a preferred format.
Additionally, the present invention can also be practiced in a peer to peer environment. In this case, the client computer system and server computer system are the same system and forms a "peer".
The components of a server computer system according to the preferred embodiment of the present invention are shown in
The components of a client computer system according to the preferred embodiment of the present invention are shown in
Additionally, to satisfy the system requirements, settings, or architecture of the enterprise, the present invention can be practiced in a way that some or all of the components (301, 305, 310, 315, 320, 325, 330, 335) within server 210 are practiced at client devices 215 by adjusting the ways that these components interacting with each other. Similarly, some or all of client components (405, 410, 415, 420) can be practiced at server 210.
If the client request is a query, server 210 performs the preprocessing and analyzing of the client request in 510. Next, Step 515 involves repository interfacing component 305 dispatching the client query to the appropriate remote data repositories and search component 320 to determine the search results. A search query is specified by user 218 using a search string (e.g. "john and number").
Result integration component 315 then integrates the query results from the remote data repositories into one or more "data view"s in 520. A "data view" is a single presentation of heterogeneous information content in a homogeneous form. For example, given a series of query results consisting of small fragments of a Microsoft� Word document, HTML file and Microsoft� Excel document (e.g. containing the address of customers), step 520 will integrate these results into a "data view" that is in a tabular form. Each entry in a "data view" is augmented with a "direct link". A "direct link" allows the client or internal system process to have direct access to the underlying document or data stored in the remote data repository 200. In the preferred embodiment, a "direct link" is practiced as a string representing a combination of (parameter, value) pairs corresponding to the document or data stored in the remote data repository 200. For example, according to the preferred embodiment, a direct link for an Oracle database can be "repository_id='MyOracle' &command='select name, phone from employees"', where repository_id uniquely identifies "MyOracle" as the Oracle database to be accessed by server 210, and command is the native query required to extract content data from the database. Another example, a direct link for a local file repository can be "repository_id='MyFiles' & command='z:/my documents/project/employees.doc"', where repository_id uniquely identifies "MyFiles" as the local file system to be accessed, and command identifies the path on the file repository where the document is located.
Next, the generated "data view" is converted in 525 by transformation component 325 to an appropriate format based on the client specific information obtained by client specific database component 335. Another embodiment of the present invention may combine steps 520 and 525 such that the "data view" generated is in a format that is suitable to the client specific information stored by client specific database component 335.
Referring to
Next, optionally, if transformation is required for the client to be able to display the content of the file, transformation component 325 performs the document transformation in step 545.
Optionally, in step 530, communication component 330 manages adaptive compression of the final "data view" (or file retrieved by a "direct link") before it is transmitted to the client. Display/layout optimization step 535 is practiced in client program 217. Based on user interaction or customization, step 535 optimizes the result output on-screen to the user and allows the user to perform a local search on the result.
If the client request is to update documents or data in a remote data repository 200, Step 550 in
Repository Interfacing Module
Processing module 720 consists of three main modules: query dispatching and search module W, retrieval module 722 and update module 723. Processing module 720 handles the processing of incoming requests based on API calls 710. Search queries, document retrievals and document check-ins are examples of incoming requests to repository interfacing module 705. Processing module 720 accesses remote data repositories 200 via a common API (not shown in
Processing module 720 also accesses and maintains repository and connector registry 715. In the preferred embodiment, repository and connector registry 715 is practiced as a configuration file containing (repository_type, connector_module) entries. repository_type identifies the type of remote data repository, and connector_module identifies the appropriate module implementation of the common API associated with repository_type. In the preferred embodiment, connectors 725, 730, 735, 740 and 745 are practiced as Dynamic Link Libraries (DLLs). Referring to
Each remote data repository instance has a repository structure associated with it. The repository structure represents the general format of the data stored in the repository. In the preferred embodiment, a repository structure can be one of: tabular, loosely structured (or 'semistructured' in the database industry), free form or mixed. For example, relational databases have tabular structure. An example of a loosely structured repository is a messaging server that contains emails. Each email has a fixed structure, in terms of the subject, title, date, etc, but also usually has an unstructured text body. A local file repository consisting of business documents (e.g. letters, reports, etc) in plain text is an example of a free form structured repository. A repository containing data with mixed structure can be a document management system that contains both tabular data and loosely structured data.
Additionally, repository and connector registry 715 contains (repository_id, repository_structure, keywords) entries, where repository_id uniquely identifies each remote data repository that server 210 has access to. repository_structure is the structure of the data in the data repository; and keywords is a list of words that can be used to search and describe the corresponding repository (also known as the metadata associated with the data repository). For example, in the preferred embodiment, the (repository_id, repository_structure, keywords) entry associated with a particular Oracle database could be ("dbID1", "tabular", "employees, wages, age, department").
Security Integration component 310 (
In the preferred embodiment, Server 210 is accessible by mobile devices 215 in a sessioned or sessionless manner. Server 210, in turn, accesses each remote data repositories 200 in a sessioned or sessionless manner. Sessioned access enables a given system to login to a target system (by supplying a user name and password) once and perform a series of actions on the target system before logging off. Sessionless access requires a given system to login to a target system (by providing a user name and password) for each action to be performed on the target system. Sessionless access may be enforced when the preferred embodiment of the present invention is deployed in a security critical domain or when remote data repositories 200 contain sensitive information. Server 210 determines the type of access to each remote data repository 200 based on the type of access (i.e. sessioned or sessionless) from mobile device 217 and the session capabilities of the repositories. By default, when mobile device 217 accesses server 210 in sessioned mode, server 210 accesses remote data repositories 200 in sessioned mode for efficiency purposes. In order to authenticate subsequent requests from each mobile devices 215, within the same session, in a sessioned access mode, server 210 assigns a unique identifier to the mobile device on the successful login of the device. Authentication across multiple requests within a single session is necessary due to the occasionally unreliable nature of a wireless connection. For example, consider if mobile device 217 accesses server 210 in sessioned mode and server 210 accesses legacy databases 203 in sessionless mode, server 210 manages access to legacy databases 203. Server 210 uses the unique identifier, which was assigned on the successful login of the mobile device, to obtain the login information for access to legacy databases 203. This login information is used to execute each action on legacy databases 203 for sessionless access.
Note that, in general, each client connection is identified by a unique connection identifier. In the preferred embodiment, the connection identifier is associated with user 218 during authentication. For example, when the user is connected in sessionless mode, the connection identifier is used for subsequent requests until user 218 explicitly terminates the connection.
Query Analyzing and Preprocessing
A search request from a mobile device 216 arrives at server 210 as a search string. In the preferred embodiment, user 218 can specify a keyword search using a combination of boolean operators AND and OR, in any combination of groupings. For example, valid search strings are: "phone and number", "phone number", "john or number" and "john and (phone or number)". In the preferred embodiment, Step 1705 parses the search string and normalizes the search string to its disjunctive normal form. That is, the search string is converted into a series of AND expressions, connected by OR operators. For example, "john and (phone or number)" is normalized in Step 1705 to "(john and phone) or (john and number)". From
Parsing the search string in Step 1705 identifies the search terms within the search query. For example, from the search string "phone number", the search terms "phone" and "number" are identified. Subsequent steps will involve annotating these search terms.
After the search string is parsed, Step 1710 caches the query and identifier of the target remote data repositories. The query is cached for optimization purposes. Standard ranking methods use cached queries to determine the rankings of results based on popularity. In the preferred embodiment, in order to reduce communication costs between mobile devices 215 and server 210, the client application only includes the target data repositories to be queried in its initial request. Subsequent requests only contain the search string. Thus, Step 1710 caches the identifier of the target data repositories (i.e. repository_id) in order to process subsequent search requests.
Step 1715 performs stop word filtering, while Step 1720 performs query expansion on the search query. Stop word filtering involves removing or ignoring certain common words. Step 1715 reduces the number of search terms, while Step 1720 increases the number of expressions and hence the number of search terms. In the preferred embodiment, query expansion includes the use of a thesaurus and stemming. The definitions for the thesaurus, stemming and list of stop words can be practiced as a definition file that can be modified and updated by user 218. At step 1720, each resulting term expansion is annotated with its original search term.
For example, suppose the stemming rules specify that "apply" can be expanded to "applied", "apply" and "applying". A search query "john and apply", where "john" and "apply" are identified as search terms, will become "(john and apply) or (john and applied) or (john and applying)". Expanded search terms "applied" and "applying" are annotated with their original search term: "apply". This annotation is used in result integration step 525 (
Finally, in
In the type definition section, a (data) type name is matched to a list of formats and methods to convert data in one format to another. In the present invention, the method to convert between data formats is practiced as the location of the plug-in module that can perform the conversion. Format conversions may be required when presenting a consistent query result, as determined in step 520.
In the search term definition section, a search term is associated with a list of possible data types. For example, suppose the data type "dateType" was defined in the type definition section, the search term "deadline" can be associated with data type "dateType" in the search term definition section. Query dispatching and search step 515 uses the data type annotations for each search term to identify search type matches from the data in a target remote data repository.
Instead of a definitions file, the type and format definitions can be practiced in a relational database for efficiency. In the preferred embodiment, the type and format definitions can be updated and maintained by user 218.
Query Dispatching and Search
Step 515 in
At Step 515, search results are annotated with a value (or weight) representing their relevance to answering the query. The weight value of a result can be determined based on query histories, user preferences and the original ranking as provided by the native data repository (if available).
For each target remote data repository, a metadata search, Step 1510, is performed. In the preferred embodiment, if the data repository has a tabular structure, the metadata search involves searching on the field names of the tabular data. For a loosely structured data repository, in the preferred embodiment, Step 515 models each document or database as a tree (or hierarchy), augmented with information describing the data (i.e. the metadata). A tree contains a hierarchy of nodes, where each node represents data of a basic "form". A "form" identifies the presentation format of a piece of data, in terms of its layout and structure. In the preferred embodiment, the possible basic "form"s of data includes tabular, a text segment (e.g. a paragraph, sentence), bulleted and numbered item format. The metadata can include the document (or database) name, author name, creation date, etc. Similarly, for data stored in repository that is of free form structure, each document or data in the repository is associated with metadata describing the information associated with it (e.g. document name, author name, creation date, etc.).
If a full text index is available for the target remote data repository, Step 1520 performs a search using the full text index. Otherwise, Step 1515 performs a manual search for keyword matches. For data with tabular structure, Step 1515 performs a manual search by querying each table. Additionally, in the preferred embodiment, Step 1515 only queries the columns of tables that have the correct data type. For data with loose structure, Step 1515 traverses the tree hierarchy to perform the search. Similarly, free form data is manually searched by scanning the text of the document or repository. The manual search on free form data for search terms can be implemented using standard string pattern matching algorithms from the field of information retrieval. For example, these free form data can be indexed using inverted file index.
Step 1525 identifies the search methods to be applied to each remote data repository. The search method for data with tabular structure is tabular search; the search method for data with loose structure is loosely structured search; the search method for data with free form structure is free form search; and the search method for data with mixed structure is defined by the repository connector (as shown in
For each search method, if the search method is a tabular search, Step 1530 performs a tabular search. If the search method is free-form search, Step 1535 processes the search. Step 1540 performs the loosely structured search. The step of processing of mixed structure search method (not shown in
Step 1530 combines the results obtained from Step 1515 or 1520 by performing a join (as defined in relational databases). For relational databases, the join involves combining the results based on their primary key and foreign key dependencies. These dependencies can normally be retrieved from the database system catalogs. Step 1530 performs the join by executing the associated query on the remote data repository. For all other data sources containing data with tabular structure (e.g. spreadsheet data), Step 1530 performs the join based on common attribute names. Alternatively, the primary key and foreign key dependencies between data tables can be defined by user 218 in a definitions file.
Step 1530 processes the join, firstly, by joining the two results that contain the least number of matches, forming an intermediate result. Next, the remaining results are joined to the intermediate result incrementally, starting with results with the least number of matches. That is, the results are joined two at a time, to reduce the processing requirements of Step 1530. Alternatively, Step 1530 can perform the join on all results at once.
In another embodiment, Steps 1515 or 1520 and Step 1530 can be combined. That is, the tables in the remote data repository are incrementally queried for matches. Firstly, two tables are queried for matches, and their results are joined to form an intermediate result. Next, the remaining tables are searched and joined incrementally to the intermediate result. That is, the results are joined two at a time, to reduce the memory requirements of Step 1530.
Step 1535 identifies the minimal list of sentences or paragraphs that include at least one match corresponding to each search term. In the case where at least one search term cannot be found within a single sentence or paragraph, a minimal region that contains at least one match corresponding to each search term is determined. Step 1535 defines a region to be a combination of one or more sentences or paragraphs. For example, when user 218 issues a request for search terms A and B, and search term A is matched in a free form document at the first paragraph, while search term B is matched in the same document at the second paragraph, the first and second paragraph are identified by Step 1535 as the minimal region.
When the number of matches within a document or data exceeds a predefined threshold or the matches are distributed across the entire document or data, Step 1535 returns the entire document as the native result. In the preferred embodiment, the pre-defined threshold can be specified by user 218 and may be specified as the number of matches or a percentage value.
Each minimal region is checked if it contains data that matches the required search term types. If the search term type is not found within the minimal region, the search is expanded to adjacent data forms within the document or data, until the entire document or data is searched. Once a match is found, the search term type matches, together with the minimal region, form the match result, which is the input of Step 1545. For example, referring to
Referring to
Step 1540 uses the results or nodes obtained from Step 1515 or 1520 to identify "match regions". A match region is identified by the minimal subtree, which has descendants that include at least one result node corresponding to each search term. Alternatively, in the case where a result node is the ancestor of another result node, Step 1540 may identify the match region rooted at the latter result node rather than the former. Once the match regions have been identified, the match region is adjusted for accuracy by using term type information (if available). That is, in the preferred embodiment, matched nodes are processed in order of their depth in the matched region, starting with the deepest matched node. For each matched node, its descendants are checked if they contain data that match the required term types, followed by the matched node's ancestors. If a term type match has not been found, the rest of the nodes in the match region that have not been processed are checked for matching term types. The order that the nodes are processed is important because data that matches the required term type is assumed to be more relevant in a result node subtree than its ancestors. Similarly, the rest of the nodes in a match region are less relevant than a result node's ancestors.
For steps 1530, 1535 and 1540, if search types are not defined in the type and format definitions configuration (as described in query analysing and preprocessing) for the search terms specified, the process of matching term types is not executed.
Step 515 performs a mixed structure search by processing the results obtained by step 1515 or step 1520. Each result obtained from step 1515 or 1520 is identified as containing data of tabular form, free form or loosely structured form. Thus, each result can be processed and searched directly by step 1530, 1535 or 1540, depending on its structure of data.
Finally, after the search has been performed, Step 1545 post-processes and caches the native search results. Step 1545 annotates each term in the native search result with its repository identifier, query identifier, data type, display format and editable field. The repository identifier for each term is the unique identifier that identifies the target remote data repository. The query identifier is the native command used to retrieve or locate the term. The data type and display format of each term is determined by the term type definitions (as described in Query Analyzing and Preprocessing). The editable field associated with each term in the native search result identifies whether the term can be updated or modified by the mobile client user. This information is obtained from the remote data repository via the repository connector (e.g. connector 725, 730, 735, 740 or 745 in
Result Integration
Step 810 identifies the "form" of the final result, based on the requirements of the client profile, preferences, settings and parameters of mobile device 216 and user 218. In the preferred embodiment, Server 210 identifies an ordered list of preferred forms based on the requirements mentioned above. By identifying the native result "form"s and final result "form", Server 210 is able to determine the number of "data view"s to be generated in Step 815. For example, suppose Step 810 identifies the mobile client 215 as having a preferred final result of tabular form, followed by a preference for text paragraph form, text sentence form and finally bullet form. Based on the forms of native results 905, 908, 912 and 915, and the list of preferred final result forms, Step 815 determines that a single "data view" should be generated. This is because, although native results 905 and 915 are listed as preferred forms of the final result (as determined by Server 210), they can also be transformed into tabular form—to suit the first preference (as identified by Server 210 in Step 810) of the mobile device 216 and user 218. Step 815 identifies if a native result can be transformed from its original form to a target (or preferred) form based on a predefined threshold value, which may be specified as a system default value or by an administrator of Server 210.
In the preferred embodiment, the threshold values for transforming a source result form to a target result form are defined as follows:
Form Transformation Table
Number of
Number of
Number of
Number of
Number of
Number of
The threshold value for determining if a result with a sentence form can be transformed to tabular form is defined by specifying the maximum number of words within the source sentence. If a native result with a sentence form has more than the threshold number of words, Server 210 determines that the native result cannot be transformed to tabular form. Native results with numbered bullet form can only be transformed to sentence form if the result has one sentence. In this case, in the preferred embodiment, the threshold value is a default value and cannot be modified by a user or administrator externally. "Yes" and "No" entries in the definition of threshold values above indicate that a transformation can and cannot be performed respectively. In these cases, the threshold values cannot be specified externally. The threshold value for transforming a source result of tabular form to bullet form can be either "Yes" or "No". If the transformation is allowed, Server 210 allows the user or administrator to specify how to convert tabular cells to bullet form (e.g. one cell to one bullet, or multiple cells to one bullet). In the preferred embodiment, for native results that have more than one "form", each "form" has to satisfy the threshold value in order for Server 210 to determine that the native result can be transformed to the target "form". Alternatively, Server 210 may transform only the subset of each native result that satisfies the threshold values based on their "form".
Referring to
After determining the number of data views to be generated, Step 820 transforms each native result form to the appropriate "data view" form.
An embedded form is a basic form with a list of forms embedded in it. Decomposition involves creating a list of embedded forms such that each embedded form consists of a basic form with a single form embedded in it. That is, each item in the embedded list of forms is associated with the outer basic form. For example, embedded result 905 is decomposed into 2 embedded results: "John Smith phone numbers:" as the outer basic form with "9888 1111 (home)" as the single embedded bullet item, and "John Smith phone numbers:" as the outer basic form with "9888 1112 (work)" as the single embedded bullet item.
Decomposition in Step 820 is also performed on data containing mixed forms. Referring to
Finally, in
Next, in
Number of columns in final result=(T*t_max)+1
Hence, the number of columns in the final result from
Consider a search request using the search terms "name" and "number", which generates the intermediate result 945. Suppose Step 1310 identified "John" as a data type of a string consisting of a name (which is also the data type for search term "name"), but was unable to identify any data to match the data type for search term "number". In this case, if Step 1315 calculates the number of columns to be 3, due to the data in other intermediate results, Step 1320 is unable to partition 945 into 3 columns—one for "name", one for "number" and another for the remaining text. The output of Step 1320 will be a "data view" with tabular form where the entry corresponding to 945 will have "John" in the "name" cell, "mobile number is 0288459911" in the text cell and an empty "number" cell.
Additionally, the number of columns in the final "data view" can have a pre-defined upper bound on the client profile (e.g. due to limited display size of the client device). If the value calculated in Step 1315 exceeds this upper bound, each intermediate result will be partitioned into the pre-defined number of columns as necessary. For example, columns with the most number of empty cells will have their data merged with the single text form cell.
Step 1325 performs ranking and duplication elimination of each final "data view". Each entry in the final "data view" is annotated with its weight value at Step 515 (
As a final step to the result integration process, Step 825 performs type coercion and data translation for each "data view". Type coercion converts each data entry's values in the final "data view" to a consistent format across entries. This allows users of mobile devices 215 to view, process and manipulate "data view"s easily. From Step 1545, each entry is annotated with its data type and display format. For each data type, the most common display format or the preferred display format is identified as the target display form. All values of that data type are converted to the target display format. Each entry value that is converted to the target display format has its annotation augmented with the new display format (i.e. each entry is now annotated with the data type, native display format and actual display format). This extra annotation is used by Step 550 for processing a client check-in request. For example,
As described in query analyzing and preprocessing, the methods for converting between formats is defined by the type and format definitions configuration.
Furthermore, Step 825 translates search terms that are included in the final "data view" to their original search terms. Referring to the description on query analyzing and preprocessing, during query expansion step 1720, expanded search terms are annotated with their original search term. Step 825 uses the annotation containing the original search term to provide a consistent query result to user 218.
Result Transformation
Step 525 performs transformation of the final "data view" to a format that is determined from the client profile. Transformation component 325 (
For example,
Based on this architecture, any new document formats that have not been built into Transformation component 325 (
Note that the architecture illustrated in
Transformation component 325 (
The original format (or form) of the final "data view" is one of the forms specified in result transformation 525. In the preferred embodiment, it includes tabular, a text segment (e.g. a paragraph, sentence), bulleted and numbered item format. Step 525 is different from the transformations performed in Step 520 in that Step 525 determines the final document format of the "data view", while Step 520 determines the basic "form" of the "data view". For example, from
As mentioned above, a "data view" is augmented with a "direct link". Standard applications will display a "direct link" as a clickable link that allows user 218 to navigate to the target of the link (e.g. a link in a HTML document). In the preferred embodiment, in the case where the final format of the "data view" is unable to be represented as a clickable link that user 218 can follow, the string representing the "direct link" is shown in textual form instead. User 218 can then use this string representation to access the document or data in the remote data repository manually by executing the string request on server 210 via a client command (rather than clicking and following a link).
To facilitate efficient communication between the mobile client and server 210, compression algorithms can be employed to compress data transmitted between mobile device 216 and server 210 in Step 530 (in
Display/Layout Optimization
Display/layout optimization step 535 is practiced in client program 217 (
Additionally, in the preferred embodiment, based on the edit annotations of each entry in the query result (as annotated in Step 1545), Step 535 displays entries that are editable as editable fields in the query result. This restricts the user of mobile device 215 to modifying only the entries that can be modified at the remote data repository. Although some modifications allowed by Step 535 in the display may still not be able to be executed on the remote data repository (e.g. due to the complexity of the query for a relational database), this reduces the number of client check-in error messages that user 218 will encounter.
Display/layout optimization step 535 caches and stores a history of queries, links or results that were requested by mobile device 215 user. This enables fast invocation of a past query, link or result. For example, in the preferred embodiment, the history is utilized in client program 217 via the graphical user interface as a drop down list in the keyword search field 1630 (
Document or Data Retrieval
Step 540 in
In the preferred embodiment, if the remote data repository is a relational database, consisting of several tables of rows and columns of data, data retrieval would involve accessing the remote data repository, executing the native query associated with the "direct link" and converting the native query results into a tabular document. If the remote data repository is a local file repository, document retrieval would involve accessing the document using the file path as specified in the "direct link".
Document Transformation
Step 545 performs document transformation when the client request is for a document or data from the remote data repository 200. Using the transformation clusters, as described in Step 525 for result transformation, Step 545 is able to transform any document from its original format to a target format. As with result transformation, the target format in Step 545 is determined based on the client profile and capabilities of mobile device 216. For example, if the client requests for an XHTML document and the client is unable to view XHTML documents, Step 545 converts the XHTML document to RTF, which the client can view. Here, the target format is RTF. The transformation is done by converting the XHTML document to XML, the converted XML document to Microsoft� Word and finally the converted Microsoft� Word document to RTF. The transformed document in the target format is transmitted to the client for processing.
In addition, Transformation module 325 (
Client Check-In
In the preferred embodiment, consider if Step 540 retrieves data from a relational database and returns a tabular document to the client. When the client updates the tabular document and checks-in the updated document, Steps 1405, 1410 and 1415 save the tabular document to the remote relational database by updating the database based on the entries that have been modified, added or removed. If an update of the database is not possible due to the complexity of the query that retrieved the tabular document, user 218 will be notified that the check-in is not allowed.
If the client check-in request is to modify a data value (i.e. when the user modifies a data value directly in the search result), Step 1401 determines a (repository_id, command, old_value, new_value) value to be used to update the remote data repository 200 appropriately. repository_id is the unique identifier used to identify a remote data repository and command is the native command or query used to retrieve the data that is being modified. For example, if accessing local files 205, command represents the file offset where the data value to be modified is located. If accessing relational databases, command represents the SQL statement used to retrieve the data being modified. Alternatively, for relational databases, command can have a reference to the cursor of the executed SQL statement used to retrieve the data being modified. old_value is the original value of the data in its original format before it was modified. new_value is the new value of the data (in its original format) that is has been modified to. Referring to
In Step 825 of result integration, data values, which are converted to a target display format, are annotated with their target display format. If the data value that is checked-in is associated with a target display format annotation, Step 1401 performs a conversion to convert the modified data value from the target display format to the original display format. This conversion is similar to the conversion in Step 825. Step 1401 accesses the appropriate remote data repository 200 using the value of repository_id and uses API calls 710 to update data values in remote data repositories 200 as necessary.
Referring to
All accesses to remote data repositories 200 in Step 1401, 1405, 1410 and 1420 (in
Note that the client is required to have the appropriate access permissions to modify, add or remove any data or documents in the remote data repository 200. In the preferred embodiment, if the client does not have the necessary permissions for the request, feedback will be provided to the user via a message dialog displayed on mobile device 216. Additionally, in the case where the modification of data or documents involve multiple remote data repositories 200, the client is able to pre-define the behaviour of Step 550 if one or more of the updates are unable to be executed (e.g. due to insufficient access permissions to the repository). That is, the client can specify that if one or more of the updates are unable to be executed, all updates should not be committed to the repositories, or that only those that can be executed are committed.
In an alternative embodiment, where display/layout optimization 535 (in
Client Command
Referring to
In the preferred embodiment, the user interface presented to user 218 for executing a client command is the same as the search query interface 1605 (in
In the preferred embodiment, user 218 can browse through available documents in a remote data repository 200, rather than search for a specific document.
Referring to
A browse command is available to browse the summary of the files available in the remote data repositories 200. A summary of each file includes a "direct link" to the actual document, last modified date, etc. Server 210 also allows user 218 to retrieve a document based on a "direct link" specification (i.e. the string representation of a "direct link"). This is necessary for manually following a "direct link" from a search result displayed on a limited mobile device. In particular, suppose Server 210 defines the mapping "browse" to the system command for retrieving the statistics or properties of all documents in a remote data repository 200. User 218 can perform the client command "browse C:\windows" on a target local file data repository 205. In the preferred embodiment, this returns a list of result entries, containing an entry corresponding to the client command for locating all files in folder "C:\windows" and entries corresponding to the search results for the search terms "browse" and "C:\windows". The result entries are collated in step 525 result transformation (
Additionally, other commands that server 210 supports in the preferred embodiment include user account administration, file management (e.g. renaming, removing files, etc) and saving search results locally or on server 210.
Alternate Mode Of Invention—Document Processor
In an alternate embodiment, the present invention can be practiced as a document processor program. Referring to
An example of the document processor program is shown in
Referring to
When user 218 executes a search by clicking on "Search" button 1925, Step 510 analyzes and preprocesses the search string. The target remote data repositories can be predefined or determined previously (e.g. by user 218 specifying a list of remote data repositories that contain bibliographic information). Next, similar to the preferred embodiment, Step 515 performs query dispatching to the appropriate data repositories and performs a search for matches.
Finally, result integration Step 520 integrates all search results. In particular, referring to
Next, user 218 selects the result entries (from results 1930) that they want to insert into the document at cursor 1945. The results are "pasted" in the document when the "Paste" button 1835 is clicked. Depending on the cursor location 1845, it may be necessary to perform result transformation (Step 525) on the selected result entries. For example, if the document being edited is a Microsoft� Word document, it is necessary to transform each selected result in 1930 from bulleted "data view" form to Microsoft� Word format.
Note that each result entry also has a "direct link" (details) 1940. In the alternate embodiment, the "direct link" allows user 218 to navigate to extra information about the result (e.g. the search result before translation and coercion, the remote data repository where the search result was obtained from, etc).
By performing type coercion, data translation and result transformation, search results 1930 can be easily used by user 218 by inserting the selected search result entries into the document.
There have been described and illustrated herein a method and system for wireless remote information retrieval, and document and data updates. While a preferred embodiment of the invention has been described, it is not intended that the invention be limited thereto, as it is intended that the invention be as broad in scope as the art will allow and that the specification be read likewise. Thus, while particular hardware and software has been disclosed in order to implement the invention, it will be appreciated that other hardware and/or software could be utilized to achieve substantially the same results in substantially the same manner. It will therefore be appreciated by those skilled in the art that yet other modifications could be made to the provided invention without deviating from its spirit and scope as so described.
|Cited Patent
|Filing date
|Publication date
|Aug 30, 1990
|Oct 29, 1991
|Tnet, Inc.
|Information retrieval system and method
|Apr 18, 1995
|Apr 22, 1997
|Waverley Holdings, Inc.
|System and method for creating and manipulating notes each containing multiple sub-notes, and linking the sub-notes to portions of data objects
|Mar 10, 1995
|Aug 11, 1998
|Telogy Networks, Inc.
|System for transferring facsimile data without dedicated G3 hardware
|Nov 21, 1997
|Apr 18, 2000
|International Business Machines Corporation
|Multiple remote data access security mechanism for multitiered internet computer networks
|Nov 21, 1997
|May 23, 2000
|International Business Machines Corp.
|System and method for secure web server gateway access using credential transform
|May 12, 1998
|Oct 31, 2000
|International Businss Machines Corporation
|Systems, methods and computer program products for retrieving documents from multiple document servers via a single client session
|Dec 17, 1996
|Dec 5, 2000
|Tran; Bao Q.
|Remote data access and management system
|Aug 23, 2001
|May 28, 2002
|Acer Inc.
|Method and system for translating the format of the content of document file
|Aug 26, 1999
|Aug 27, 2002
|Unisys Corporation
|Method, apparatus, and computer program product for replacing a dynamic link library (dll) of a first computing environment with a dll of a second computing environment that can be invoked from the first computing environment in a transparent manner
|May 20, 1998
|Apr 22, 2003
|Guillaume Martin
|Device for data analysis and organization
|Sep 24, 1998
|Jul 22, 2003
|Worldcom, Inc.
|Secure customer interface for web based data management
|Oct 6, 2000
|Sep 2, 2003
|Google, Inc.
|Detecting query-specific duplicate documents
|May 18, 2000
|Sep 23, 2003
|Rajendra Kumar Bera
|Method and apparatus for data searching and computer-readable medium for supplying program instructions
|Jul 27, 2000
|Jan 6, 2004
|Science Applic Int Corp
|Concept-based search and retrieval system
|Jul 16, 1999
|Mar 29, 2005
|International Business Machines Corporation
|Ordering of database search results based on user feedback
|Jun 22, 2001
|Oct 18, 2005
|The Johns Hopkins University
|Architecture for distributed database information access
|Jun 28, 2002
|Apr 24, 2007
|Microsoft Corporation
|Method, system and apparatus for routing a query to one or more providers
|Jan 16, 2004
|Oct 30, 2007
|International Business Machines Corporation
|Apparatus, system, and method for passing data between an extensible markup language document and a hierarchical database
|Feb 13, 2002
|Jun 10, 2008
|Realtime Data Llc
|Bandwidth sensitive data compression and decompression
|Sep 30, 2003
|Jul 15, 2008
|International Business Machines Corporation
|Method, system, and storage medium for providing web-based electronic research and presentation functions via a document creation application
|Dec 6, 2002
|Oct 28, 2008
|3M Innovative Properties Company
|Method and system for sequential insertion of speech recognition results to facilitate deferred transcription services
|Jul 9, 2004
|Mar 17, 2009
|Computer Associates Think, Inc.
|Apparatuses and methods for dynamic creation of phase Gantt charts
|Aug 31, 2004
|Dec 22, 2009
|Research In Motion Limited
|Method for paginating a document structure of a document for viewing on a mobile communication device
|Dec 28, 2000
|Oct 18, 2001
|Gabos John S.
|Marketing information system for remote computing platforms
|Aug 9, 2001
|Apr 25, 2002
|Microsoft Corporation
|System and method for searching multiple disparate search engines
|Mar 30, 2001
|May 9, 2002
|Harlequin Limited
|Method and system for gathering, organizing, and displaying information from data searches
|Dec 14, 2001
|Jun 19, 2003
|Amphire Solutions, Inc.
|Document exchange
|Apr 5, 2002
|Oct 9, 2003
|Koteshwerrao Adusumilli
|Response time of transformed documents based on caching and dynamic transformation
|Dec 31, 2002
|Jul 1, 2004
|France Telecom Research And Development Llc
|Method and system for automated annotation and retrieval of remote digital content
|Jun 24, 2003
|Dec 30, 2004
|Don Cliff M. R.
|Database driven type extensibility
|Nov 12, 2004
|May 19, 2005
|Institute Of Medicinal Molecular Design, Inc.
|Describing and storing method of alignment information
|Author: Amihai Motro; Title: Browsing in a Loosely Structured Database; year of publicatin: 1984; pp. 197-207; Link: http://delivery.acm.org/10.1145/610000/602286/p197-motro.pdf?key1=602286&key2=3932723721&coll=GUIDE&dl=GUIDE&CFID=89509384&CFTOKEN=52976326.
|Author: Marc Gyssens et al.; Title: Tables As a Paradigm for Querying and Restructuring; Year of publication: 1996; pp. 93-103; Link: http://delivery.acm.org/10.1145/240000/237688/p93-gyssens.pdf?key1=237688&key2=7062723721&coll=GUIDE&dl=GUIDE&CFID=89509590&CFTOKEN=16319538.
|Author: Shaul Dar et al. ; Title: DTL's DataSpot: Database Exploration Using Plain Language; Date: 1998; pp. 645-649.
|Citing Patent
|Filing date
|Publication date
|Jan 26, 2010
|Mar 20, 2012
|Google Inc.
|Harvesting relational tables from lists on the web
|Aug 30, 2010
|Aug 7, 2012
|Oracle International Corporation
|Techniques for compression and processing optimizations by using data transformations
|Apr 28, 2010
|Jan 15, 2013
|Oracle International Corporation
|Compression analyzer
|Sep 10, 2011
|Apr 30, 2013
|Microsoft Corporation
|Flexible metadata composition
|Oct 30, 2009
|Jun 18, 2013
|International Business Machines Corporation
|Semantic-aware record matching
|Feb 21, 2006
|Aug 13, 2013
|Connectif Solutions Inc.
|Distributed asset management system and method
|Oct 1, 2012
|Jan 7, 2014
|Oracle International Corporation
|Storing row-major data with an affinity for columns
|Apr 28, 2010
|Feb 4, 2014
|Oracle International Corporation
|Storing compression units in relational tables
|Mar 5, 2012
|May 20, 2014
|Google Inc.
|Harvesting relational tables from lists on the web
|Jul 13, 2011
|Jul 29, 2014
|International Business Machines Corporation
|Avoiding duplicate and equivalent data objects in service registries
|Mar 28, 2012
|Aug 5, 2014
|International Business Machines Corporation
|Avoiding duplicate and equivalent data objects in service registries
|Dec 9, 2013
|Sep 16, 2014
|Oracle International Corporation
|Storing row-major data with an affinity for columns
|Apr 29, 2013
|Dec 16, 2014
|Microsoft Corporation
|Flexible metadata composition
|Nov 12, 2009
|Jan 13, 2015
|Oracle International Corporation
|Structure of hierarchical compressed data structure for tabular data
|Nov 14, 2014
|May 26, 2015
|Microsoft Technology Licensing, Llc
|Flexible metadata composition
|Dec 5, 2011
|Sep 29, 2015
|Microsoft Technology Licensing, Llc
|Action generation based on voice data
|Sep 28, 2012
|Jan 31, 2017
|Oracle International Corporation
|Compression analyzer
|Feb 21, 2006
|Jan 1, 2009
|Connectif Solutions, Inc.
|Distributed Asset Management System and Method
|Jan 11, 2010
|Jul 22, 2010
|Seiko Epson Corporation
|Information retrieval device, information retrieval system, information retrieval program and information retrieval method
|Nov 12, 2009
|Nov 4, 2010
|Oracle International Corporation
|Structure of hierarchical compressed data structure for tabular data
|Apr 28, 2010
|Nov 4, 2010
|Oracle International Corporation
|Storing compression units in relational tables
|Apr 28, 2010
|Nov 4, 2010
|Oracle International Corporation
|Compression analyzer
|Oct 30, 2009
|May 5, 2011
|International Business Machines Corporation
|Semantic-Aware Record Matching
|Oct 30, 2009
|May 5, 2011
|International Business Machines Corporation
|Semantic Link Discovery
|Dec 22, 2009
|Jun 23, 2011
|Nokia Corporation
|Method and apparatus for utilizing a scalable data structure
|Nov 12, 2010
|Aug 18, 2011
|Rabstejnek Wayne S
|Enterprise rendering platform
|Aug 20, 2010
|Aug 18, 2011
|Rabstejnek Wayne S
|Enterprise Rendering Platform
|Jun 8, 2010
|Dec 8, 2011
|Albert Marcella
|Sql processing for data conversion
|Jul 13, 2011
|Feb 23, 2012
|International Business Machines Corporation
|Avoiding duplicate and equivalent data objects in service registries
|Jun 22, 2011
|Oct 4, 2012
|National Central University
|Data transmission system and method
|Dec 5, 2011
|Jun 6, 2013
|Microsoft Corporation
|Action generation based on voice data
|Dec 4, 2015
|Jun 8, 2017
|Vmware, Inc.
|Plug-in-based artifact-management subsystem
|U.S. Classification
|707/760, 707/769, 707/722, 707/770
|International Classification
|Cooperative Classification
|European Classification
|Oct 24, 2008
Owner name: CAPITAL SOURCE FAR EAST LIMITED, HONG KONG
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WONG, KWOK KAY;REEL/FRAME:021730/0469
Effective date: 20081014
|Sep 12, 2014
|Maintenance fee reminder mailed
|Jan 28, 2015
|Fee payment
Year of fee payment: 4
|Jan 28, 2015
|Surcharge for late payment
|Jan 29, 2015
Owner name: STATE CAPITAL RESOURCES LIMITED, CHINA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAPITAL SOURCE FAR EAST LIMITED;REEL/FRAME:034845/0226
Effective date: 20141219


text: Monarchy released one of the finest singles of the year with "Living Without You" last spring, and now they're back with another out-of-this-world space heater on "Almost Human". As it warms up and floods you with layers upon layers of vocoded harmonies, gradually introducing understated synth tones and falling comet synths as it swells towards its conclusion, Monarchy take things to "Hide And Seek" levels of future-perfect emotion that would make Imogen proud. And if you've got a flair for the cinematic, Monarchy are also hosting a competition to make their next music video for "Almost Human" with a cash money prize, all talented humans welcome.

subset: commoncrawl


text:
Expand Messages
- On our 18 day trip I was able to meet Tom and Janice Fairbanks and Jean Souza
(Mandarin Books of Hilo). It was so great to put the faces with the years of emails and
discussions. Tom and Janice have a beautiful home and B&B and a great place to stay on
future trips. We had dinner together and lots of great talk. We even talked about DB for a
short while. Jean Souza has a beautiful shop on Hilo and is very comfortable there. With
the help of Tom Fairbanks I was able to talk with the conservators of Blandings
memoriabilia from the Hula Moons bar. It is stored in boxes and unavailable for viewing at
this time. The Hotel plans has plans to revive the display in the future after they finish
remodeling. There is no inventory list available to know exactly what is in the box(s). I
have offered to help uncover any mysteries surrounding the box and how to display it.
There is no known date of completion of the remodel at this time. Somewhere in my
ephemera I have a photo of the old Hula Moon Bar and all or some of the collection. I'll
look it up. Interesting to me was the fact that antique dealers can't keep DB stuff in stock.
It just flys off the shelves. The dealers I spoke to all loved DB for his descriptions of
Hawaii and his poetry. One dealer even makes Batik (I think thats the spelling) prints from
DB's works. One dealer had a photo of Amelia Earhart and "The Duke" and starting
describing a possible affair between them. She didn't know of the connection between
DB/George&Dorothy Putnam/Earhhart....then throw in the Duke and she was off an
running with her thoughts......kinda fun. She brought out another photo of George/
Amelia/Duke (no Dorothy) all together and started wondering what else went on. KEITH:
Do you remember a photo from several years ago that we at first thought was Don? He
was in a bathing suit on a beach.....I saw a photo of 4 surfers, one being the Duke and this
one person on the end was very similar to our mistaken photo. I still have the photo
somewhere and will locate it. Not sure why I'm curious about it........enough...tj
Your message has been successfully submitted and would be delivered to recipients shortly.


text:
Chicago Mayor pushes for $13 minimum wage
Earlier this week, a task force appointed by Chicago Mayor Rahm Emanuel released a recommendation that the city's minimum wage be raised to $13 an hour by the year 2018.
According to the Chicago Tribune, state lawmakers are expected to also come up with a solution following the November elections, and the task force "don't want to deter" a statewide wage increase.
Chicago's current minimum wage is $8.25.
The task force was created by Mayor Emanuel in May, following protests pushing for a $15/hour amount. The $13/hour compromise was approved by a vote of 13-3.
Voting against the proposal, according to the story, were representatives of the Chicagoland Chamber of Commerce, the Chicago Retail Merchants Association and the Illinois Restaurant Association. A rep from the IRA said his group would prefer one set minimum wage for the entire state.
The task force's recommendation is that the wage is increased by $1.25 throughout the next three years, and $1 in 2018. After that, the group suggests annual increases based on the rate of inflation.
IFA: Recommendations will result in job losses
In response to the task force's recommendations, Steve Caldeira, the International Franchise Association president and CEO said their "progressive nature" will "undoubtedly result in lost jobs and higher prices for consumers."
"The franchise industry has outpaced growth of the overall U.S. economy for the last five years, and that's because we create much-needed entry-level jobs, career advancement opportunities and small business ownership opportunities that fuel the American Dream," he said in a statement. "Moving forward, we will work with the Mayor and the City Council as the legislative process continues to ensure equitable treatment for franchisees under any potential wage increase, and to mitigate its impact for employers, employees and consumers."
Topics: Franchising & Growth, Operations Management, Staffing & Training, Trends / Statistics
Sponsored Links:


text:
Dear all, Actually i am trying to insert some values within a transaction. I am also carrying out some data select operations after opening the transaction. But i am getting the above mentioned error. But i want the insert to happen. Please reply back to me as early as possible. i would be very thankful to you guys. I am sending through mail because i am unable to post my issue. Regards, Sangeetha (Team lead/GBBPR Soft).
Next: From: Dave Cramer Date: 2008-05-13 17:54:36 Subject: Re: 25P02, current transaction is aborted, commands ignored Previous: From: Achilleas Mantzios Date: 2008-05-12 08:47:13 Subject: scrollable ResultSet advise


text:
In the first three years of Journalistics, we published 236 posts. In the following four years, we only published 34 posts. While I'm tempted to convince you the past four years were simply a sabbatical (why should professors have all the fun?), it's hard to justify such a dramatic decline in post volume.
As part of my effort to get the blog back on track in 2016, I spent the past month doing some quantitative and qualitative analysis to better understand how this happened. I'm a firm believer in using historical performance data to guide or inform strategy development (more on that topic in a future post).
For the quantitative input – because numbers don't lie – I did a thorough review of our Google Analytics data going back to 2009 when we launched. I've shared my findings from this exercise, along with some recommendations for action in the form of "lessons learned," for each insight in the second half of this post (starting with my first insight, "You Can Increase Traffic By NOT Blogging").
For qualitative input – to add color and context to what actions (or inaction) produced the numbers – I conducted an objective self-assessment. I forced myself to be honest and to take responsibility for the past decisions I made which led me to post less. I've shared the results from this exercise in the first half of this post below ("Why I Was Not Blogging").
Why am I admitting this publicly? I know I'm not the only one to find themselves in a slump. I'm openly sharing this experience, what I've learned, and how I plan to use this information to fix things – because I want to help anyone who's been here, is here, gets here, or wants to avoid getting here all together.
I hope you find this post helpful – if not now, at some point down the road. If that happens, please share your story (it will help me feel like this Jerry Maguire moment I'm having was worth the effort).
And with that, let's get into the first part of my analysis… the dreaded self-assessment. [Read more…]


text:
THIS refers to Asghar Mahmood's letter 'Vacant Ombudsman office' (Nov 16). It is truly strange that the Federal Ombudsman's office has been vacant since October 27, 2010, while the huge setup of the Federal Ombudsman secretariat headed by a federal secretary is in place without delivering.
Due to absence of the Federal Ombudsman (Wafaqi Mohtasib), not only a huge number of complainants against the government departments have been denied justice in the last two years, the position of the president of the Asian Ombudsman Association (AOA) having over 30 members is also vacant for, according to its charter, only Pakistan's Federal Ombudsman could be the president of the association.
The Pakistan's Federal Ombudsman office also houses the AOA secretariat.In 2009 and 2010, I worked for the AOA as ADB consultant in the ADB regional technical assistance project. It ended in August 2010 and another run of the same project was sanctioned by the ADB.
After the completion of the formalities it was ready to be signed by the ADB and president AOA but it could not materialise due to the absence of the president. One wonders why the government could not find one person to be appointed as Federal Ombudsman in the last two years.
HAIDER BHURGRI Islamabad


text:
Don't miss out on a lower price on this hotel
Get an overview of this hotelBed & breakfast with free breakfast, walk to Fort St-Andre
Popular property highlights
Located in the heart of Villeneuve-les-Avignon, this bed & breakfast is within a 10-minute walk of Musee Pierre de Luxembourg and Fort St-Andre. Tour Philippe le Bel and Pont Saint-Bénézet are also within 2 mi (3 km).
Property Features
A restaurant, an outdoor pool, and conference rooms are available at this bed & breakfast. Free continental breakfast, free WiFi in public areas, and free self parking are also provided. Other amenities include tour/ticket assistance and a garden.
Room Amenities
All rooms are soundproofed and offer free WiFi and phones. Other amenities available to guests include flat-screen TVs.
Guest Highlights
- Prime location
Les Jardins de la Livrée
Bed & Breakfast Amenities
Bed & Breakfast Amenities
The bed & breakfast offers a restaurant. A complimentary breakfast is offered. Wireless Internet access is complimentary. This Villeneuve-les-Avignon bed & breakfast also offers an outdoor pool, a terrace, and tour/ticket assistance. Onsite self parking is complimentary.
- Free WiFi
- Year Built 1300
- Free breakfast
- Number of floors - 1
- Number of buildings/towers - 1
- Luggage storage
- Terrace
- Total number of rooms - 4
- Conference space
- Tours/ticket assistance
- Garden
- Restaurant
- Free self parking
- Outdoor pool
- Front desk (limited hours)
Family Friendly Amenities
- Outdoor pool
- Free Wi-Fi
- Soundproofed rooms
Available in all rooms: Free WiFi
Available in some public areas: Free WiFi
Free self parking
Room Amenities
- Free WiFi
- Soundproofed rooms
- Air conditioning
- Phone
- Daily housekeeping
- Hair dryer (on request)
- Flat-panel TV
Where to Eat
Guests are offered a complimentary continental breakfast.
Onsite venue - This restaurant overlooks the pool and garden. Open select days.
Nearby Things to Do
Recreational amenities at the bed & breakfast include an outdoor pool.
Bed & Breakfast Policies
Check-in time starts at 4 PM
Check-in time ends at 7 PM
Special check-in instructions:
Check-out time is noon
Payment types
Children and extra beds
- Children are welcome.
- Kids stay free! Children 4 years old and younger stay free when using existing bedding.
- Rollaway/extra beds are not available.
- Pets not allowed
You need to know
Extra-person charges may apply and vary depending on property policy.
- A tax is imposed by the city: EUR 0.83 per person, per night. This tax does not apply to children under 18 years of age.
Bed & Breakfast Name
- Jardins Livrée
- Jardins Livrée B&B
- Jardins Livrée B&B Villeneuve-les-Avignon
- Jardins Livrée Villeneuve-les-Avignon
We should mention
Children 4 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.


text:
The CoDWaW-1.2-1.4-PatchSetup.exe file you have requested: Official Patches / v14 / Call of Duty: World at War Patch 1.4 - 581.37mb is not available. Perhaps try browsing all files for the game Call of Duty: World at War and upload any files you want to share or are missing. This is the only information we could locate:
3 new Multiplayer maps: Knee Deep, Nightfire, Station! Nazi Zombies map with more weapons, Perks-a-Cola machines, and electroshock defenses: Verrckt! Improved spawning logic. Auto balancing improvements. Players are no longer auto balance This patch updates clients from 1.2 to 1.4. See Extended Description for patch notes.
We recommend you return to the download list and browse the links from there. If the problem persists, contact us with the details.


text:
Abdullah Khadr's lawyers claim he was abused
Canadian Press
Published Wednesday, May 9, 2007 6:28PM EDT
TORONTO - Abdullah Khadr received no legal advice during the 14 months he was held in a Pakistani jail despite repeated meetings with the RCMP, CSIS and the FBI, court heard Wednesday as the Canadian citizen continued his fight against extradition to the U.S. on terrorism charges.
Arrested in Islamabad in October 2004 and held without charge until his release to Canada, Khadr made statements during his detention indicating that he was part of an apparent al Qaeda plot to assassinate the prime minister of Pakistan.
Lawyer Dennis Edney, who has said the statement was the product of torture and should be discounted, said Wednesday that Canadian and American officials did little to help Khadr.
"Neither counsel nor his family were ever informed of his whereabouts or his condition throughout his lengthy detention in Pakistan,'' Edney told the court.
"In fact, it was only after Khadr, on returning to Canada ... is dropped outside his home, and that is the first thing his family had heard from him in 14 months.''
Edney said that while Khadr's mother immediately hired him after her son was detained, the now 26-year old wasn't informed he had a lawyer until five months later -- long after he had met with CSIS officials.
Shortly after that, Khadr met with RCMP Sgt. Konrad Shourie and was again denied access to basic rights, said Edney.
"He wasn't provided with access to a lawyer, told about his right to remain silent, or given contact to his family,'' he told the court.
Shourie asked Khadr many of the same questions that he had already been asked by other agencies, including Pakistani intelligence, Edney added.
Khadr was subsequently interviewed by FBI officials who also asked him the same questions and again denied him the same basic rights, said Edney. A Pakistani official who had been involved in his torture was present at all times, he added.
"By this point he'd been asked the same questions so many times that he knew most of what he had to say in order to appear consistent,'' said Edney, who argued that Khadr's initial responses, which he now felt compelled to repeat, were coerced under torture.
In addition to speaking about a plot to assassinate the prime minister of Pakistan, Khadr also said he made about $7,000 in Pakistan buying and selling light machine guns, rocket propelled grenades and a shoulder-fired rocket launcher.
Edney said that Khadr was questioned for 12 hours a day for three days straight by the FBI officials, and that he was "shackled, cuffed, sleep-deprived and hungry.''
The same line of questioning continued to be used by both the RCMP and the FBI when Khadr returned to Canada, said Edney.
Edney concluded that any rights afforded to Khadr were "a sham.''
"Officials of the U.S.A. and Canada attended Pakistan and interrogated Mr. Khadr, while the systemic use of torture and illegal detention was both open and notorious in that country,'' he said.
"These officials must have known that Mr. Khadr's ongoing detention was hopelessly illegal.''
Khadr faces charges of buying weapons for al Qaeda and plotting to kill American troops in Afghanistan if he's extradited to the U.S. He is the son of Ahmed Said Khadr, an alleged Canadian al Qaeda financier who was killed by Pakistani forces in 2003.
He is also the brother of Omar Khadr, 20, who has been held for almost five years at the American detention centre at Guantanamo Bay for allegedly killing a U.S. soldier in Afghanistan.
The case was scheduled to continue Thursday.


text:
Michigan will be down one more big man next season. Jon Horford, who just capped his redshirt junior season with the Wolverines with an outright Big Ten title and a return trip to the Elite Eight, will not return to the program next season.
Horford will instead transfer to another school, although he has not decided where, exactly, he will spend his final year of eligibility. Because Horford has graduated, he can enroll in a graduate program at another university and be eligible to play immediately, according to the NCAA rulebook.
"My time at Michigan has been the most beneficial period of my life in terms of athletic development and overall enlightenment," Horford said in a statement released by the Michigan athletic department. "The bonds created over the last four years are everlasting, and the memories made are truly priceless. As on all journeys, new paths must be taken and intuition must be trusted. I leave Michigan with nothing but love in my heart."
As one of the team's three captains this season, Horford helped the Wolverines clinch the program's first outright Big Ten title since 1986, finishing three games ahead of second-place Michigan State with a 15-3 conference record.
Horford played in in all 37 games, making seven starts (both were career highs for a season). He averaged 3.8 points and 4.2 rebounds per game and shot 56.4 percent from the field (62-of-110).
"Jon has been an integral part of our many accomplishments over the last four years," Michigan coach John Beilein said in the statement. "He brought great enthusiasm, leadership and work ethic to our program. Jon is a wonderful young man, who has a very bright future ahead of him. With his graduation this May, he will have the opportunity to play immediately at another Division I program. We will be rooting for him every step of the way."
Horford played in 107 career games, making 12 starts. He averaged 2.9 points and 2.9 rebounds per game over the course of his career, shooting 54.7 percent from the field (127-of-232), making last year his most production season, by far.
With the loss of Horford, the Wolverines will be without their top two contributors at the five position. Jordan Morgan, who made 27 starts this season and 122 in 142 total games played in his career, expired his eligibility after the 2014 season.
The Wolverines return Max Bielfeldt, who will be a redshirt junior next season. He played in 19 games in 2013-14.
And Michigan may have the services of Mitch McGary, who played in just eight games this year because of a surgery stemming from a back injury sustained in last summer.
McGary, who was an Associated Press preseason All-American heading in into the year, was the breakout star of the 2013 NCAA Tournament, receiving NCAA Final Four All-Tournament Team honors.
He and fellow sophomores Nik Stauskas and Glenn Robinson III are expected to announced whether they will return to school for their junior seasons or enter the NBA Draft soon.
The Wolverines will also have Mark Donnal, a four-star prospect according to Rivals.com who redshirted in 2013-14, and incoming freshman Ricky Doyle, a 6-9 prospect from Fort Meyers, Fla. who is rated a three-star by Rivals.com.
Subscribe to our podcast on iTunes
If you're not a subscriber and would like to read all of our great content plus interact on our premium message board with our staff and thousands of other U-M fans, sign up here
Bring TheWolverine.com to your mobile platform. Download the app for either the iPhone or Android platforms.
Follow us on Twitter: @TheWolverineMag, @JB_Wolverine, @Balas_Wolverine, @Spath_Wolverine, @AReid_Wolverine, and @TimS_Wolverine.
And share this story:


text:
I hope everyone's summer is in full swing. Here are suggestions for some good juice at decent prices to enjoy this summer.
First off, the search for a good value, good tasting Bordeaux continues. At times I feel a little like Don Quixote on this quest, but recently there was an encouraging find.
I enjoyed the 2005 Bad Boy Bordeaux recently. Robert Parker was very complimentary of this wine by Jean-Luc Thunevin, one of the leaders of the so-called "garagistes" movement in Bordeaux. "Garage" wines are supposed to be less tannic and more immediately drinkable than traditional Bordeauxs, and this one was pretty good. The wine is 95% Merlot and 5% Cabernet Franc. It had a deep color and powerful bouquet out of the bottle. It had a silky texture, tasted smoky on the palate and had a lot of blueberry and currant fruit. It was definitely livelier and less tart than the typical Bordeaux. I can't say my search is finished, but this was a big improvement. It retails for $25 at Whole Foods.
A few weeks ago Total Wine had a very fun event that was a good wine experience for us and no doubt a nice marketing day for them. The Landmark Alexandria store held a World Tour event, which consisted of multiple producers from around the world offering tasting stations. Two of them stood out for us — a father daughter team behind Matariki Wines from New Zealand, and a cooperative of independent producers from the Languedoc region of France called Val d'Orbieu.
We liked the Matariki 2005 Quintology, sort of a New Zealand Bordeaux blend with a couple of extra varietals thrown in. It's 41% Merlot, 30% Cabernet Sauvignon, 12% Malbec, 10% Cab Franc and 7% Syrah. It's deep purple in color with a nice, velvety feel on the tongue. Lots of black fruit flavor, mild tannins and a quick finish. Very smooth wine and not as big or jumbled as the collection of grapes might suggest. We paid $20 at Total for the bottle.
From Val d'Orbieu we enjoyed the 2007 Cuvee Mythique, a Languedoc GSM containing Syrah, Mourvedre, Grenache and Carignan. This wine starts with an alcoholic nose but is delicious and easy drinking. There was a little bit of spice and a mildly tart finish. I think that boysenberry and plum were the dominant fruit flavors. A nice wine and a tremendous value at $13 from Total.
After enjoying their 2006 Cabernet so much, Gabriele and I returned to Turnbull Estates for their 2007 Old Bull. Wow, this is a big, tasty wine. It's another long list of varietals — mostly Merlot and Cab Sauvignon, with smaller amounts of Cab Franc, Syrah, Tempranillo and Malbec. It was totally delicious, with a big jammy aroma that doesn't lie. Blackberries dominate, with some cassis and pepper as well. The wine is medium bodied and while very rich tasting it's not heavy. Based on Internet searching it sounds like we overpaid a bit at $27, and the wine was still a great value.
Finally, in honor of their World Cup victory let's close with a Spanish star. I've written previously about the Lan Rioja Reserva, and it's a very nice Rioja. But the Gran Reserva is even better, and a very different tasting wine. Extra time in oak produces a Rioja that is a lot smoother and with a more complex interplay of flavors. It's still light bodied and has the trademark "dustiness" of a Rioja, with nice strawberry and blueberry fruit. And it's only a few bucks more than the Reserva — we paid $22 at Whole Foods.
We brought two bottles to the Lobster Luau at the Donaldson Run Rec Center in Arlington. We went as guests of our friends David and Ingrid Matuszewski, and had a blast at the obviously popular event — there must have been 400 people there. It was the perfect July 4 event, one week later.
Whatever you're doing this summer, one of these wines can make the time more enjoyable. What have you found? Drop me a comment and let me know.
Other stories you might like:
- The Good Juice Report I've been drinking some good wine this month, or "good juice" as a friend of...
- The Long Tail Wine Post The rise of the Internet made popular the concept of the long tail — serving...
- Recession Fighting Reds The economic news continues to be bleak, and as a result many people are naturally...