<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ep-patent-document PUBLIC "-//EPO//EP PATENT DOCUMENT 1.4//EN" "ep-patent-document-v1-4.dtd">
<ep-patent-document id="EP12188248A1" file="EP12188248NWA1.xml" lang="en" country="EP" doc-number="2720185" kind="A1" date-publ="20140416" status="n" dtd-version="ep-patent-document-v1-4">
<SDOBI lang="en"><B000><eptags><B001EP>ATBECHDEDKESFRGBGRITLILUNLSEMCPTIESILTLVFIROMKCYALTRBGCZEEHUPLSKBAHRIS..MTNORSMESM..................</B001EP><B005EP>J</B005EP><B007EP>DIM360 Ver 2.40 (30 Jan 2013) -  1100000/0</B007EP><B053EP>Amended claims in accordance with Rule 137(2) EPC.</B053EP></eptags></B000><B100><B110>2720185</B110><B120><B121>EUROPEAN PATENT APPLICATION</B121></B120><B130>A1</B130><B140><date>20140416</date></B140><B190>EP</B190></B100><B200><B210>12188248.4</B210><B220><date>20121011</date></B220><B250>en</B250><B251EP>en</B251EP><B260>en</B260></B200><B400><B405><date>20140416</date><bnum>201416</bnum></B405><B430><date>20140416</date><bnum>201416</bnum></B430></B400><B500><B510EP><classification-ipcr sequence="1"><text>G06Q  30/04        20120101AFI20130318BHEP        </text></classification-ipcr></B510EP><B540><B541>de</B541><B542>Verfahren und System zur Bestimmung von Ladungen in einem hierarchischen System</B542><B541>en</B541><B542>Method and system for determining charges in a hierarchical system</B542><B541>fr</B541><B542>Procédé et système de détermination de charges dans un système hiérarchique</B542></B540><B590><B598>NONE</B598></B590></B500><B700><B710><B711><snm>Ricoh Company, Ltd.</snm><iid>100208567</iid><irf>DRW/PX210912EP</irf><adr><str>3-6, Nakamagome 1-chome 
Ohta-ku</str><city>Tokyo 143-8555</city><ctry>JP</ctry></adr></B711></B710><B720><B721><snm>Skvirski, Alexei</snm><adr><str>c/o Ricoh International B.V.
Oberrather Strasse 6</str><city>40472 Düsseldorf</city><ctry>DE</ctry></adr></B721></B720><B740><B741><snm>White, Duncan Rohan</snm><iid>101250053</iid><adr><str>Marks &amp; Clerk LLP 
Fletcher House 
Heatley Road 
The Oxford Science Park</str><city>Oxford OX4 4GE</city><ctry>GB</ctry></adr></B741></B740></B700><B800><B840><ctry>AL</ctry><ctry>AT</ctry><ctry>BE</ctry><ctry>BG</ctry><ctry>CH</ctry><ctry>CY</ctry><ctry>CZ</ctry><ctry>DE</ctry><ctry>DK</ctry><ctry>EE</ctry><ctry>ES</ctry><ctry>FI</ctry><ctry>FR</ctry><ctry>GB</ctry><ctry>GR</ctry><ctry>HR</ctry><ctry>HU</ctry><ctry>IE</ctry><ctry>IS</ctry><ctry>IT</ctry><ctry>LI</ctry><ctry>LT</ctry><ctry>LU</ctry><ctry>LV</ctry><ctry>MC</ctry><ctry>MK</ctry><ctry>MT</ctry><ctry>NL</ctry><ctry>NO</ctry><ctry>PL</ctry><ctry>PT</ctry><ctry>RO</ctry><ctry>RS</ctry><ctry>SE</ctry><ctry>SI</ctry><ctry>SK</ctry><ctry>SM</ctry><ctry>TR</ctry></B840><B844EP><B845EP><ctry>BA</ctry></B845EP><B845EP><ctry>ME</ctry></B845EP></B844EP></B800></SDOBI>
<abstract id="abst" lang="en">
<p id="pa01" num="0001">A system for determining charges in a hierarchical system. The system comprises: a data storage structure for storing one or more datasets for each of a plurality of devices within the hierarchical system, the one or more datasets comprising hierarchical location information and device IDs for each of the plurality of devices; and a crawler system comprising at least one crawler configured to crawl through the one or more datasets stored in the data storage system to determine which of a number of possible charging systems is to be assigned to each device within the plurality of devices.</p>
</abstract>
<description id="desc" lang="en"><!-- EPO <DP n="1"> -->
<heading id="h0001"><u>Technical Field</u></heading>
<p id="p0001" num="0001">The present invention relates to determining or setting charges in respect of printing and photocopying for example, for devices such as printers in a hierarchical system.</p>
<heading id="h0002"><u>Background</u></heading>
<p id="p0002" num="0002">Many modern day electronic devices, such as printers and multi-function devices (MFDs) such as multi-function printers (MFPs) are provided with network connections so that multiple devices can be more easily managed and controlled through a network. A common method for assigning a large number of devices to a network (for example, 500 or more) is to map each device to a hierarchical structure that mirrors a company's hierarchical infrastructure and/or working environment. <figref idref="f0001">Figure 1</figref> shows an example of such a hierarchical structure network. Typically, a hierarchical structured network of devices such as that shown in <figref idref="f0001">Figure 1</figref> will be controlled by a centralised system, and data for each of the devices will be stored in the form of a table (or "dataset"), the "main table", within a database. The main table will usually contain a Device ID for each device within the hierarchical structure mapped to corresponding data values for said device, such as "counter values" (e.g. number of pages printed) and hierarchical data which can be used to find the exact location of a device within the hierarchy. An example of part of a main table is shown in Table 1. The hierarchical data in Table 1 is shown using the nested-set model, but other forms may be used, for example an adjacency list model. Table 1 is a representation of the information that is available and stored on the database. The data does not necessarily have to be in tabular form, but it is easiest to represent the data in this way for the sake of this description. Table 1 should therefore, be viewed as a denormalized and grouped representation of data from the database.</p>
<p id="p0003" num="0003">Printing charges are often assigned to the devices within a network, such that a charge or cost can be associated with printing from each of the devices. For a hierarchical<!-- EPO <DP n="2"> --> structure, such as that shown in <figref idref="f0001">Figure 1</figref>, each device could fall within one of three charging systems. These are:
<ol id="ol0001" compact="compact" ol-style="">
<li>1. Device-based charging</li>
<li>2. Group based charging</li>
<li>3. System based charging</li>
</ol></p>
<p id="p0004" num="0004">Device based charging is a charging system that can be assigned to specific types of device. This print charging system is beneficial as the running and printing costs for a high speed MFP may be considerably more than that for a normal desktop laser printer. The device based charging system may also assign different charging levels for different devices. For example, the charge for printing by a high speed MFP could be higher than the charge for printing by a low speed MFP, but both high and low speed MFPs are still assigned a device based charging system.</p>
<p id="p0005" num="0005">Group based charging is a charging system that can be assigned to specific groups within the hierarchy. Groups can be defined to suit the requirements of the hierarchical system. For example, a group could be defined as any device under a specific hierarchical level, such as Tokyo. In this instance, the 150 devices shown in <figref idref="f0001">Figure 1</figref> would be assigned the same group-based charging system. There may be more than one group, with different groups having different charging levels. It may also be that certain groups have priority over others, such that if a device could fall within two or more groups, the group with the highest priority will be used to assign the charging system. For example, in addition to the Tokyo group-based charging system, another special group could be defined as all devices belonging only to Section A. In this instance, there are three devices belonging only to Section A (10-(2+3+2)=3) which are assigned the special group based charging system, and all other devices (including those found in Teams 1, 2 and 3) are assigned the Tokyo group charging system.</p>
<p id="p0006" num="0006">System based charging is a charging system that can be assigned to all other devices within the hierarchy that do not fall within either of the device based or the group based charging systems.</p>
<p id="p0007" num="0007">Typically the order of importance of the systems, and the order in which they would be assigned, is as follows:
<ul id="ul0001" list-style="none" compact="compact">
<li><i>Device-based &gt; Group-based &gt; System-based</i></li>
</ul><!-- EPO <DP n="3"> --></p>
<p id="p0008" num="0008">This means that neither a group-based nor a system-based charging system would be applied to a device to which a device-based charging system applied, and a system-based charging system wouldn't be applied to a device to which a group-based charging system applied.</p>
<p id="p0009" num="0009">These charging systems are extremely beneficial, but applying the correct charging system to each device can be a long and potentially difficult process, especially if the hierarchy contains a large number of devices and there are a number of different levels of device- and group-based charging systems. Printing charging systems are, at present, assigned to devices manually, with each device being assigned a charging system by, for example, user. This makes the process extremely costly, both financially and in terms of time, as well as potentially vulnerable to human error.</p>
<p id="p0010" num="0010">An improved method of assigning printing charges to multiple devices in a network is therefore greatly needed.</p>
<heading id="h0003"><u>Summary</u></heading>
<p id="p0011" num="0011">It is an object of the present invention to provide a quicker and more efficient way of assigning print charging systems to multiple networked printing devices within a hierarchical system.</p>
<p id="p0012" num="0012">According to a first aspect of the invention there is provided a system for determining charges in a hierarchical system, comprising: a data storage structure for storing one or more datasets for each of a plurality of devices within the hierarchical system, the one or more datasets comprising hierarchical location information and device IDs for each of the plurality of devices; and a crawler system comprising at least one crawler configured to crawl through the one or more datasets stored in the data storage system to determine which of a number of possible charging systems is to be assigned to each device within the plurality of devices.</p>
<p id="p0013" num="0013">Embodiments of the present invention may provide an automatic system for determining which of a number of print charging systems should be applied to each of<!-- EPO <DP n="4"> --> a number of printing devices within a hierarchical structure, and may further provide an automatic system for assigning said determined print charging system to said devices.</p>
<p id="p0014" num="0014">The crawler system may comprise two crawlers: a first crawler which crawls through the data from the bottom of the hierarchical system to the top, and a second crawler which crawls through the data from the top of the hierarchical system to the bottom.</p>
<p id="p0015" num="0015">The first crawler may define which pathways down the hierarchy the second crawler should take.</p>
<p id="p0016" num="0016">The second crawler may determine and assign a charging system to each of the devices in the hierarchical system.</p>
<p id="p0017" num="0017">The datasets within the data storage structure may be modifiable to include an indication of which charging system has been determined for each device.</p>
<p id="p0018" num="0018">The at least one crawler may be implemented as a single SQL statement.</p>
<p id="p0019" num="0019">The at least one crawler may refer to at least one dataset containing charging-relevant information to determine which charging system to apply to a device.</p>
<p id="p0020" num="0020">The plurality of devices within the hierarchical system may be multi-function devices, printers and/or copiers.</p>
<p id="p0021" num="0021">The number of possible charging systems may comprise device-based, group-based and system-based charging systems.</p>
<p id="p0022" num="0022">The charging system assigned to a device may further comprise an indication of which of a number of pricing tables to use when calculating charging costs for jobs carried out by that device.</p>
<p id="p0023" num="0023">According to a second aspect of the invention there is provided a method of determining charges in a hierarchical system, the method comprising: in a data storage structure, storing one or more datasets for each of a plurality of devices within the hierarchical system, the one or more datasets comprising hierarchical location<!-- EPO <DP n="5"> --> information for each of the plurality of devices; providing a crawler system having at least one crawler; and configuring the at least one crawler to crawl the one or more datasets in the data storage system to determine which of a number of possible charging systems to apply to each of the plurality of devices.</p>
<p id="p0024" num="0024">The crawler system may comprise two crawlers: a first crawler which crawls through the data from the bottom of the hierarchical system to the top, and a second crawler which crawls through the data from the top of the hierarchical system to the bottom.</p>
<p id="p0025" num="0025">The first crawler may define which pathways down the hierarchy the second crawler should take.</p>
<p id="p0026" num="0026">The second crawler may determine and assign a charging system to each of the devices in the hierarchical system.</p>
<p id="p0027" num="0027">The method may further comprise modifying a dataset to include the determined charging system for each device.</p>
<p id="p0028" num="0028">The number of possible charging systems may comprise device-based, group-based and system-based charging systems.</p>
<p id="p0029" num="0029">The crawler system may be implemented as a single SQL statement.</p>
<p id="p0030" num="0030">The crawler system may be configured to refer to at least one dataset containing charging-relevant information to determine which charging system to apply to a device.</p>
<p id="p0031" num="0031">The plurality of devices within the hierarchical system may be multi-function devices, printers and/or copiers.</p>
<p id="p0032" num="0032">The step of using the crawler system to crawl the datasets in the data storage system to determine which of a number of possible charging systems should be applied to each of the plurality of devices may further comprise providing an indication of which of a number of pricing tables to use when calculating charging costs for jobs carried out by that device.<!-- EPO <DP n="6"> --></p>
<heading id="h0004"><u>Brief Description of the Drawings</u></heading>
<p id="p0033" num="0033">Further aspects, features and advantages of the invention will become apparent to the reader of the following description of specific embodiments of the invention, provided by way of example only, with reference to the accompanying drawings, in which:
<ul id="ul0002" list-style="none" compact="compact">
<li><figref idref="f0001">Figure 1</figref> is a hierarchical graph showing an example of a hierarchical system of networked printing devices; and</li>
<li><figref idref="f0002">Figure 2</figref> is a schematic illustration of a database management system.</li>
</ul></p>
<heading id="h0005"><u>Detailed Description</u></heading>
<p id="p0034" num="0034">As discussed above, it is extremely beneficial to be able to assign print charging systems (sometimes referred to as policies) to printing devices within a network. However, it can be difficult to assign the charging systems when there are a large number of printing devices within a hierarchically structured network.</p>
<p id="p0035" num="0035">A new system and method will now be described, with reference to the figures, which can automatically judge which charging system is relevant to each of all the printing devices within a hierarchical structure, and then apply said relevant charging system accordingly.</p>
<p id="p0036" num="0036">The method comprises using one or more hierarchical "crawlers" to check which print charging system applies to the devices and then assign the correct one accordingly. A crawler is a term used in computer science to describe algorithmic behaviour, such as the ability to navigate data structures from one data node to another and perform functions on or with said data, for example analysing or processing the data as it progresses.</p>
<p id="p0037" num="0037">A crawler may also be able to amend or add to the data if required. Typically there are two crawlers: a "Top-Down" crawler (TDC) and a "Bottom-Up" crawler (BUC). The TDC works from the top of the hierarchy down to the bottom, whereas the BUC works from the bottom up to the top.<!-- EPO <DP n="7"> --></p>
<p id="p0038" num="0038">In addition to the crawlers, a number of tables (or "datasets") can be provided that contain charging-relevant information. There are two main categories of table that contain charging-relevant information: a pricing assignment table and a pricing table.</p>
<p id="p0039" num="0039">Table 2 shows a modified version of the main table. As previously explained, this table is merely a representation of information that is available and stored on the database. In this modified version, the hierarchical data has been used to generate Group_IDs that are provided in the middle column. Group_IDs are an indication of which group (or "branch") of the hierarchy a device belongs to. For example, one branch of the hierarchy of <figref idref="f0001">Figure 1</figref> might be Tokyo.</p>
<p id="p0040" num="0040">A pricing assignment table (an example of which is shown in Table 3) maps each of the possible charging systems with a specific instance of a pricing table. For example, Table 3 states that pricing table PT9 should be used to resolve the pricing for each device that is assigned the Device 2 charging system. The group charging systems provided in the pricing assignment table will correspond with the Group_IDs that are provided in the modified main table of table 2. For instance, "Group 1" in table 3 will correspond to Group_ID 1 in table 2, and "Group 2" in table 3 will correspond with Group_ID 2 in Table 2. However, not all Group_IDs will have an associated group charging system.</p>
<p id="p0041" num="0041">Pricing tables are the tables that contain the actual pricing information. Pricing tables may be relevant to, for example, a specific device ID (for device-based charging), a Group ID (indicating a group covered by group-based charging), or the rest of the system (system based charging). This relationship is attained through the use of a pricing assignment table. There may be one or more pricing tables depending on the complexity of the charging systems required within a hierarchy. The reason that multiple pricing tables may be required is, for example, that one group of devices having a first group-based charging system assigned to them may work from a different pricing table to another group of devices that have a second group-based charging system assigned to them. A typical corporate infrastructure will require a number of pricing tables in order to provide maximum flexibility for pricing schemes; the pricing tables will typically contain pricing factors for each activity that is possible for a given device. For example, the table may contain the cost of printing, copying scanning,<!-- EPO <DP n="8"> --> faxing etc for a single sheet of paper of a specific size. Table 4 is a representation of an example pricing table, PT2. The activity for which pricing is relevant is provided in the left column, and the associated price factor for the unit of activity is then mapped to it in the right hand column.</p>
<p id="p0042" num="0042">The BUC can be used to determine the absolute top of the hierarchy, or, in the case where only a portion of the hierarchy is of interest to a client (for example, when assigning printing charges only to devices within a given country / office location), an upmost node in the hierarchy that is, in essence, the root of the section hierarchy of interest to which the reported devices are registered. It starts at the devices located at the bottom of the hierarchy (or the bottom of the area of interest within the hierarchy) and works its way up the hierarchy until the desired top level is reached. The BUC may be instructed by a separate crawler that is itself instructed based on the users input to find all hierarchical nodes within the area of the user's interest that have devices attached, and to propagate each hierarchical node to the end of their hierarchies (i.e. each individual level will be followed to the end provided there are devices registered to it). Alternatively, the BUC simply uses information provided by the user. The user will typically be aware of their company's hierarchical infrastructure and/or working environment, and so will be able to specify the bottom level of the hierarchy of interest.</p>
<p id="p0043" num="0043">During its journey up the hierarchy, the BUC defines for the TDC crawler which hierarchical paths it should take down the hierarchy. The crawlers are able to follow all pathways up an down the hierarchy in parallel, and so only one journey up the hierarchy is required from the BUC in order to determine all possible pathways. The uppermost hierarchical level reached by the BUC is the point at which the TDC starts. For example, in the hierarchical structure shown in <figref idref="f0001">Figure 1</figref>, the uppermost hierarchical level will be determined to be JAPAN at Absolute Level A.</p>
<p id="p0044" num="0044">The TDC, starting from the uppermost hierarchical level determined by the BUC, works its way down the hierarchical structure, down through the groups ("branches"), and uses the information from the main table and the pricing assignment table to first determine if any devices on any given level should be assigned a device-based charging system, and if so, then determines which pricing table to use to assign charges for said devices using the information from the pricing assignment table.<!-- EPO <DP n="9"> --></p>
<p id="p0045" num="0045">Once it has completed a first trip down the hierarchy assigning device-based charging systems, it repeats the journey, but this time assigning group-based charging systems, and subsequent pricing tables for each different group. Group-based charging systems can be propagated down the hierarchy. For example, if the pricing assignment table specifies a group-based charging system for a device at the RICOH level (B) and but no charging system for a device at Tokyo level (C), then (depending on the requirements provided by the client) the Tokyo level may also adopt the group-based charging system of level B. If, however, the client's requirements specify that Tokyo level has its own group-based charging system it would not adopt the same charging system as B. A group-based charging system will be propagated down the hierarchy from level to level unless it a) comes to the end node in the hierarchy, or b) reaches a level that is provided with another group-based charging system. This is known as "rolling ball propagation", as the process closely resembles heavy ball rolling down a staircase: it will continue until it finishes at the end of the staircase or until it is stopped by hitting another ball which continues the journey down the staircase in its place.</p>
<p id="p0046" num="0046">After the second trip down the hierarchy, the TDC performs a third trip down the hierarchy to assign a system based charging system (and relevant pricing table) to all remaining devices which have not already had a charging system applied to them.</p>
<p id="p0047" num="0047">Table 5 shows a representation of the end result of the process. Once the crawlers have gone through the system, it is then known which pricing table should be used for each of the devices within the hierarchy. The table 5 would not typically be output in any such form, but instead the system simply associates the correct pricing table to each device internally.</p>
<p id="p0048" num="0048">The TDC is described above as carrying out three "cycles" in order to assign the three possible charging systems to each device in the hierarchy. However, it is understood that alternative crawlers could perform the task without the need to carry out multiple cycles through the hierarchical data.</p>
<p id="p0049" num="0049">The example above describes the use of two crawlers; however it will be appreciated that the same method can be carried out by using a single crawler that performs one task after another or potentially both tasks in parallel.<!-- EPO <DP n="10"> --></p>
<p id="p0050" num="0050">Data for each device within a hierarchical system is kept in a database. The data can be stored in special hierarchical formats, for example adjacency lists and/or nested set models. It is this data that the crawlers move through, and when a device is assigned a charging system, then this additional information can be stored in the database alongside the existing information.</p>
<p id="p0051" num="0051">The tables that contain charging relevant information, i.e. the modified main table (e.g. table 2), the pricing assignment table (e.g. table 3), the individual pricing tables (e.g. table 4), and the final resulting device assignment table (e.g. Table 5) can be stored in the same database as the main table. As previously explained, and will be understood by database experts, this information may not in fact be stored in tabular form, but the information shown in these tables will be available within the database.</p>
<p id="p0052" num="0052">In one embodiment, the crawlers are implemented as a single Structured Query Language (SQL) statement that encompasses both the TDC and BUC crawlers. SQL is particularly beneficial as it is a set orientated language and can therefore provide automatic query optimization and also parallelisation functionalities. As the SQL statement crawls through the hierarchical format data stored in the main table, the correct printing charge will be determined using parameters within the SQL statement and the information provided in the database, and the database will be updated to include the determined printing policy for each device.</p>
<p id="p0053" num="0053">Most modern relational database management systems (RDBMS) provide automatic query optimization and parallelization functionalities, which means that different parts of a single SQL query code can be executed in parallel (depending on the hardware environment and RDBMS system settings), allowing for different "branches" or pathways through the hierarchy to be analysed in parallel. The crawlers are implemented as a single SQL statement will therefore be efficiently executed at run time, and the system can automatically coordinate both the TCD and BUC crawlers.</p>
<p id="p0054" num="0054"><figref idref="f0002">Figure 2</figref> schematically shows a database management system 200, which functions to collect and store data regarding networked printing devices 220 within a hierarchical infrastructure 222. The database management system can be controlled and maintained by an administrator, for example from a computer terminal 218 connected<!-- EPO <DP n="11"> --> to the network 216. The database management system 200 comprises a database server 202 and a data storage system 204, though these do not have to be separate sub-systems as shown. Furthermore, any separation need not be "physical", i.e. they may be integrated.</p>
<p id="p0055" num="0055">The database server 202 comprises network protocols 206, and a charge determining engine 208 which further comprises a crawler module 209. The network protocols 206 provide the functions of connection handling, authentication, security, and so forth over network 216. The network 216 can be a wide area network such as the Internet. The charge determining engine 208 is responsible for assigning each device with a print charging system. Its components can comprise a crawler module 209 that runs data crawlers through the hierarchical structure data stored in the data storage system 204. These crawlers are used to determine a charging system for each of the printing devices 220 within the hierarchical structure 222. Once the correct charging system for a device has been determined, this information can be saved back to the database 212.</p>
<p id="p0056" num="0056">The data storage system 204 comprises a storage engine 210, which is responsible for the efficient storage and retrieval of data from the database 212. For hierarchical structures of networked printing devices, the database 212 will typically contain a main table 214 that stores information on each device (e.g. Device ID, hierarchical format data, counter values etc) such as that shown in Table 1. Further information can also be stored in the main table, or alternatively in separate auxiliary tables (not shown). Examples of further information that may be stored are: toner level, event statuses (e.g. low paper, paper jam, cover open, online, offline, service call, etc) and various device counters (e.g. absolute number of pages printed for a different set of counter types - black and white, colour, simplex, duplex etc). Other tables that may be stored in the database 212 are, for example, a pricing assignment table and pricing tables such as those described above. These tables are representations of the information that can be stored in the database. The actual data may not necessarily be stored in tabular form, but they are described as such herein in order to more easily describe the concepts.</p>
<p id="p0057" num="0057">The database server 202 communicates with the storage engine 210 through a storage engine application programming interface (API) (not shown). The data storage system<!-- EPO <DP n="12"> --> 204 may include a network interface for transmitting and receiving data via network 216 (i.e. not through database server 202) to and from the printing devices 220. Systems 202, 204 may be implemented as a data processing system having at least one processor. In one embodiment, the at least one processor is a conventional processing device, such as a general-purpose microprocessor. The data processing system also includes a memory, which includes program instructions or functional units that implement the aforementioned features, such as the charge determining engine 208 and the storage engine 210.</p>
<p id="p0058" num="0058">It will be appreciated by the person of skill in the art that various modifications may be made to the above described embodiments without departing from the scope of the present invention.<!-- EPO <DP n="13"> -->
<tables id="tabl0001" num="0001">
<table frame="all">
<title><b>Table 1</b></title>
<tgroup cols="2">
<colspec colnum="1" colname="col1" colwidth="20mm"/>
<colspec colnum="2" colname="col2" colwidth="31mm"/>
<thead>
<row>
<entry align="center" valign="top"><b>Device ID</b></entry>
<entry align="center" valign="top"><b>Hierarchical data</b></entry></row></thead>
<tbody>
<row>
<entry>1</entry>
<entry>[6;7]</entry></row>
<row>
<entry>2</entry>
<entry>[11;12]</entry></row>
<row>
<entry>3</entry>
<entry>[9;10]</entry></row>
<row>
<entry>...</entry>
<entry>...</entry></row>
<row>
<entry>788</entry>
<entry/></row>
<row>
<entry>789</entry>
<entry/></row>
<row>
<entry>790</entry>
<entry/></row>
<row>
<entry>791</entry>
<entry/></row>
<row>
<entry>...</entry>
<entry>...</entry></row>
<row>
<entry>985</entry>
<entry/></row>
<row>
<entry>986</entry>
<entry/></row>
<row>
<entry>987</entry>
<entry/></row>
<row>
<entry>988</entry>
<entry/></row>
<row>
<entry>989</entry>
<entry/></row>
<row>
<entry>...</entry>
<entry>...</entry></row></tbody></tgroup>
</table>
</tables><!-- EPO <DP n="14"> -->
<tables id="tabl0002" num="0002">
<table frame="all">
<title><b>Table 2</b></title>
<tgroup cols="3">
<colspec colnum="1" colname="col1" colwidth="20mm"/>
<colspec colnum="2" colname="col2" colwidth="20mm"/>
<colspec colnum="3" colname="col3" colwidth="31mm"/>
<thead>
<row>
<entry align="center" valign="top"><b>Device ID</b></entry>
<entry align="center" valign="top"><b>Group_ID</b></entry>
<entry align="center" valign="top"><b>Hierarchical data</b></entry></row></thead>
<tbody>
<row>
<entry>1</entry>
<entry>1</entry>
<entry>[6;7]</entry></row>
<row>
<entry>2</entry>
<entry>2</entry>
<entry>[11;12]</entry></row>
<row>
<entry>3</entry>
<entry>1</entry>
<entry>[9;10]</entry></row>
<row>
<entry>...</entry>
<entry>...</entry>
<entry>...</entry></row>
<row>
<entry>788</entry>
<entry/>
<entry/></row>
<row>
<entry>789</entry>
<entry/>
<entry/></row>
<row>
<entry>790</entry>
<entry/>
<entry/></row>
<row>
<entry>791</entry>
<entry/>
<entry/></row>
<row>
<entry>...</entry>
<entry/>
<entry>...</entry></row>
<row>
<entry>985</entry>
<entry/>
<entry/></row>
<row>
<entry>986</entry>
<entry/>
<entry/></row>
<row>
<entry>987</entry>
<entry/>
<entry/></row>
<row>
<entry>988</entry>
<entry/>
<entry/></row>
<row>
<entry>989</entry>
<entry/>
<entry/></row>
<row>
<entry>...</entry>
<entry/>
<entry>...</entry></row></tbody></tgroup>
</table>
</tables><!-- EPO <DP n="15"> -->
<tables id="tabl0003" num="0003">
<table frame="all">
<title><b>Table 3</b></title>
<tgroup cols="2">
<colspec colnum="1" colname="col1" colwidth="32mm"/>
<colspec colnum="2" colname="col2" colwidth="39mm"/>
<thead>
<row>
<entry align="center" valign="top"><b>Charging System</b></entry>
<entry align="center" valign="top"><b>Pricing table identifier</b></entry></row></thead>
<tbody>
<row>
<entry>System</entry>
<entry align="center">PT1</entry></row>
<row>
<entry>Group 1</entry>
<entry align="center">PT2</entry></row>
<row>
<entry>Group 2</entry>
<entry align="center">PT3</entry></row>
<row>
<entry>...</entry>
<entry align="center">...</entry></row>
<row>
<entry>Device 1</entry>
<entry align="center">PT8</entry></row>
<row>
<entry>Device 2</entry>
<entry align="center">PT9</entry></row>
<row>
<entry>...</entry>
<entry align="center">...</entry></row>
<row>
<entry>Device 18</entry>
<entry align="center">PT34</entry></row>
<row>
<entry>...</entry>
<entry align="center">...</entry></row></tbody></tgroup>
</table>
</tables>
<tables id="tabl0004" num="0004">
<table frame="all">
<title><b>Table 4</b></title>
<tgroup cols="2">
<colspec colnum="1" colname="col1" colwidth="38mm"/>
<colspec colnum="2" colname="col2" colwidth="35mm"/>
<thead>
<row>
<entry namest="col1" nameend="col2" align="center" valign="top"><b><u>Pricing Table: PT2</u></b></entry></row>
<row>
<entry valign="top"><b>Activity</b></entry>
<entry valign="top"><b>Associated price (£)</b></entry></row></thead>
<tbody>
<row>
<entry>Printing B&amp;W per sheet</entry>
<entry align="char" char="." charoff="6">0.02</entry></row>
<row>
<entry>Printing colour per sheet</entry>
<entry align="char" char="." charoff="6">0.07</entry></row>
<row>
<entry>Scanning per sheet</entry>
<entry align="char" char="." charoff="6">0.00</entry></row>
<row>
<entry>Faxing per sheet</entry>
<entry align="char" char="." charoff="6">0.12</entry></row></tbody></tgroup>
</table>
</tables><!-- EPO <DP n="16"> -->
<tables id="tabl0005" num="0005">
<table frame="all">
<title><b>Table 5</b></title>
<tgroup cols="2">
<colspec colnum="1" colname="col1" colwidth="20mm"/>
<colspec colnum="2" colname="col2" colwidth="39mm"/>
<thead>
<row>
<entry align="center" valign="top"><b>Device ID</b></entry>
<entry align="center" valign="top"><b>Assigned Pricing Table</b></entry></row></thead>
<tbody>
<row>
<entry>1</entry>
<entry>PT2</entry></row>
<row>
<entry>2</entry>
<entry>PT3</entry></row>
<row>
<entry>3</entry>
<entry>PT34</entry></row>
<row>
<entry>...</entry>
<entry>...</entry></row>
<row>
<entry>788</entry>
<entry>PT1</entry></row>
<row>
<entry>789</entry>
<entry>PT1</entry></row>
<row>
<entry>790</entry>
<entry>PT1</entry></row>
<row>
<entry>791</entry>
<entry>PT1</entry></row>
<row>
<entry>...</entry>
<entry>...</entry></row>
<row>
<entry>985</entry>
<entry>PT5</entry></row>
<row>
<entry>986</entry>
<entry>PT5</entry></row>
<row>
<entry>987</entry>
<entry>PT8</entry></row>
<row>
<entry>988</entry>
<entry>PT5</entry></row>
<row>
<entry>989</entry>
<entry>PT9</entry></row>
<row>
<entry>...</entry>
<entry>...</entry></row></tbody></tgroup>
</table>
</tables></p>
</description>
<claims id="claims01" lang="en"><!-- EPO <DP n="17"> -->
<claim id="c-en-0001" num="0001">
<claim-text>A system for determining charges in a hierarchical system, comprising:
<claim-text>a data storage structure for storing one or more datasets for each of a plurality of devices within the hierarchical system, the one or more datasets comprising hierarchical location information and device IDs for each of the plurality of devices; and</claim-text>
<claim-text>a crawler system comprising at least one crawler configured to crawl through the one or more datasets stored in the data storage system to determine which of a number of possible charging systems is to be assigned to each device within the plurality of devices.</claim-text></claim-text></claim>
<claim id="c-en-0002" num="0002">
<claim-text>A system according to claim 1, wherein the crawler system comprises two crawlers: a first crawler which crawls through the data from the bottom of the hierarchical system to the top, and a second crawler which crawls through the data from the top of the hierarchical system to the bottom.</claim-text></claim>
<claim id="c-en-0003" num="0003">
<claim-text>A system according to claim 1 or 2, wherein the at least one crawler is implemented as a single SQL statement.</claim-text></claim>
<claim id="c-en-0004" num="0004">
<claim-text>A system according to any preceding claim, wherein the at least one crawler refers to at least one dataset containing charging-relevant information to determine which charging system to apply to a device.</claim-text></claim>
<claim id="c-en-0005" num="0005">
<claim-text>A system according to any one of the preceding claims, wherein the charging system assigned to a device further comprises an indication of which of a number of pricing tables to use when calculating charging costs for jobs carried out by that device.</claim-text></claim>
<claim id="c-en-0006" num="0006">
<claim-text>A method of determining charges in a hierarchical system, the method comprising:
<claim-text>in a data storage structure, storing one or more datasets for each of a plurality of devices within the hierarchical system, the one or more datasets comprising hierarchical location information for each of the plurality of devices;</claim-text>
<claim-text>providing a crawler system having at least one crawler; and<!-- EPO <DP n="18"> --></claim-text>
<claim-text>configuring the at least one crawler to crawl the one or more datasets in the data storage system to determine which of a number of possible charging systems to apply to each of the plurality of devices.</claim-text></claim-text></claim>
<claim id="c-en-0007" num="0007">
<claim-text>A method according to claim 6, wherein the crawler system comprises two crawlers: a first crawler which crawls through the data from the bottom of the hierarchical system to the top, and a second crawler which crawls through the data from the top of the hierarchical system to the bottom.</claim-text></claim>
<claim id="c-en-0008" num="0008">
<claim-text>A method according to claim 7, wherein the first crawler defines which pathways down the hierarchy the second crawler should take.</claim-text></claim>
<claim id="c-en-0009" num="0009">
<claim-text>A method according to claim 7 or 8, wherein the second crawler determines and assigns a charging system to each of the devices in the hierarchical system.</claim-text></claim>
<claim id="c-en-0010" num="0010">
<claim-text>A method according to any one of claims 6 to 9, wherein the method further comprises modifying a dataset to include the determined charging system for each device.</claim-text></claim>
<claim id="c-en-0011" num="0011">
<claim-text>A method according to any one of claims 6 to 10, wherein the number of possible charging systems can comprise device-based, group-based and system-based charging systems.</claim-text></claim>
<claim id="c-en-0012" num="0012">
<claim-text>A method according to any one of claims 6 to 11, wherein the crawler system is implemented as a single SQL statement.</claim-text></claim>
<claim id="c-en-0013" num="0013">
<claim-text>A method according to any one of claims 6 to 12, wherein the crawler system is configured to refer to at least one dataset containing charging-relevant information to determine which charging system to apply to a device.</claim-text></claim>
<claim id="c-en-0014" num="0014">
<claim-text>A method according to any one of claims 6 to 13, wherein the plurality of devices within the hierarchical system are multi-function devices, printers and/or copiers.<!-- EPO <DP n="19"> --></claim-text></claim>
<claim id="c-en-0015" num="0015">
<claim-text>A method according to any one of claims 6 to 14, wherein the step of using the crawler system to crawl the datasets in the data storage system to determine which of a number of possible charging systems should be applied to each of the plurality of devices further comprises providing an indication of which of a number of pricing tables to use when calculating charging costs for jobs carried out by that device.</claim-text></claim>
</claims>
<amended-claims id="aclaims" lang="en" amend-claim-type="EPC">
<heading id="h0006">Amended claims in accordance with Rule 137(2) EPC.</heading>
<claim id="ac-en-0001" num="">
<claim-text><b>1.</b> A system for determining charges in a hierarchical system, comprising:
<claim-text>a data storage structure for storing one or more datasets for each of a plurality of devices within the hierarchical system, the one or more datasets comprising hierarchical location information and device IDs for each of the plurality of devices; and</claim-text>
<claim-text>a crawler system comprising at least one crawler configured to crawl through the one or more datasets stored in the data storage system to determine which of a number of possible charging systems is to be assigned to each device within the plurality of devices,</claim-text>
wherein at least one crawler in the crawler system is configured to crawl in a bottom-to-top hierarchical direction to define all possible pathways down the hierarchy, and at least one crawler is configured to crawl in a top-to-bottom hierarchical direction following the defined pathways to check which charging system applies to each device on those pathways and assign it accordingly.</claim-text></claim>
<claim id="ac-en-0002" num="">
<claim-text><b>2.</b> A system according to claim 1, wherein the crawler system comprises two crawlers: a first crawler which crawls through the data from the bottom of the hierarchical system to the top, and a second crawler which crawls through the data from the top of the hierarchical system to the bottom.</claim-text></claim>
<claim id="ac-en-0003" num="">
<claim-text><b>3.</b> A system according to claim 1 or 2, wherein the at least one crawler is implemented as a single SQL statement.</claim-text></claim>
<claim id="ac-en-0004" num="">
<claim-text><b>4.</b> A system according to any preceding claim, wherein the at least one crawler refers to at least one dataset containing charging-relevant information to determine which charging system to apply to a device.</claim-text></claim>
<claim id="ac-en-0005" num="">
<claim-text><b>5.</b> A system according to any one of the preceding claims, wherein the charging system assigned to a device further comprises an indication of which of a number of pricing tables to use when calculating charging costs for jobs carried out by that device.</claim-text></claim>
<claim id="ac-en-0006" num="">
<claim-text><b>6.</b> A method of determining charges in a hierarchical system, the method comprising:
<claim-text>in a data storage structure, storing one or more datasets for each of a plurality of devices within the hierarchical system, the one or more datasets comprising hierarchical location information for each of the plurality of devices;</claim-text>
<claim-text>providing a crawler system having at least one crawler; and</claim-text>
<claim-text>configuring the at least one crawler to crawl the one or more datasets in the data storage system to determine which of a number of possible charging systems to apply to each of the plurality of devices,</claim-text>
wherein the step of configuring the at least one crawler comprises configuring at least one crawler to crawl in a bottom-to-top hierarchical direction to define all possible pathways down the hierarchy, and further configuring at least one crawler to crawl in a top-to-bottom hierarchical direction following the defined pathways to check which charging system applies to each device on those pathways and assign it accordingly.</claim-text></claim>
<claim id="ac-en-0007" num="">
<claim-text><b>7.</b> A method according to claim 6, wherein the crawler system comprises two crawlers: a first crawler which crawls through the data from the bottom of the hierarchical system to the top, and a second crawler which crawls through the data from the top of the hierarchical system to the bottom.</claim-text></claim>
<claim id="ac-en-0008" num="">
<claim-text><b>8.</b> A method according to claim 7, wherein the first crawler defines which pathways down the hierarchy the second crawler should take.</claim-text></claim>
<claim id="ac-en-0009" num="">
<claim-text><b>9.</b> A method according to claim 7 or 8, wherein the second crawler determines and assigns a charging system to each of the devices in the hierarchical system.</claim-text></claim>
<claim id="ac-en-0010" num="">
<claim-text><b>10.</b> A method according to any one of claims 6 to 9, wherein the method further comprises modifying a dataset to include the determined charging system for each device.</claim-text></claim>
<claim id="ac-en-0011" num="">
<claim-text><b>11.</b> A method according to any one of claims 6 to 10, wherein the number of possible charging systems can comprise device-based, group-based and system-based charging systems.</claim-text></claim>
<claim id="ac-en-0012" num="">
<claim-text><b>12.</b> A method according to any one of claims 6 to 11, wherein the crawler system is implemented as a single SQL statement.</claim-text></claim>
<claim id="ac-en-0013" num="">
<claim-text><b>13.</b> A method according to any one of claims 6 to 12, wherein the crawler system is configured to refer to at least one dataset containing charging-relevant information to determine which charging system to apply to a device.</claim-text></claim>
<claim id="ac-en-0014" num="">
<claim-text><b>14.</b> A method according to any one of claims 6 to 13, wherein the plurality of devices within the hierarchical system are multi-function devices, printers and/or copiers.</claim-text></claim>
<claim id="ac-en-0015" num="">
<claim-text><b>15.</b> A method according to any one of claims 6 to 14, wherein the step of using the crawler system to crawl the datasets in the data storage system to determine which of a number of possible charging systems should be applied to each of the plurality of devices further comprises providing an indication of which of a number of pricing tables to use when calculating charging costs for jobs carried out by that device.</claim-text></claim></amended-claims>
<drawings id="draw" lang="en"><!-- EPO <DP n="20"> -->
<figure id="f0001" num="1"><img id="if0001" file="imgf0001.tif" wi="120" he="233" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="21"> -->
<figure id="f0002" num="2"><img id="if0002" file="imgf0002.tif" wi="164" he="204" img-content="drawing" img-format="tif"/></figure>
</drawings>
<search-report-data id="srep" lang="en" srep-office="EP" date-produced=""><doc-page id="srep0001" file="srep0001.tif" wi="157" he="233" type="tif"/></search-report-data><search-report-data date-produced="20130312" id="srepxml" lang="en" srep-office="EP" srep-type="ep-sr" status="n"><!--
 The search report data in XML is provided for the users' convenience only. It might differ from the search report of the PDF document, which contains the officially published data. The EPO disclaims any liability for incorrect or incomplete data in the XML for search reports.
 -->

<srep-info><file-reference-id>DRW/PX210912EP</file-reference-id><application-reference><document-id><country>EP</country><doc-number>12188248.4</doc-number></document-id></application-reference><applicant-name><name>Ricoh Company, Ltd.</name></applicant-name><srep-established srep-established="yes"/><srep-invention-title title-approval="yes"/><srep-abstract abs-approval="yes"/><srep-figure-to-publish figinfo="by-examiner"/><srep-info-admin><srep-office><addressbook><text>DH</text></addressbook></srep-office><date-search-report-mailed><date>20130322</date></date-search-report-mailed></srep-info-admin></srep-info><srep-for-pub><srep-fields-searched><minimum-documentation><classifications-ipcr><classification-ipcr><text>G06Q</text></classification-ipcr></classifications-ipcr></minimum-documentation></srep-fields-searched><srep-citations><citation id="sr-cit0001"><nplcit id="sr-ncit0001" npl-type="s"><article><author><name>EPO</name></author><atl>Mitteilung des Europäischen Patentamts vom 1. Oktober 2007 über Geschäftsmethoden = Notice from the European Patent Office dated 1 October 2007 concerning business methods = Communiqué de l'Office européen des brevets,en date du 1er octobre 2007, concernant les méthodes dans le domaine des activités</atl><serial><sertitle>JOURNAL OFFICIEL DE L'OFFICE EUROPEEN DES BREVETS.OFFICIAL JOURNAL OF THE EUROPEAN PATENT OFFICE.AMTSBLATTT DES EUROPAEISCHEN PATENTAMTS, OEB, MUNCHEN, DE</sertitle><pubdate>20071101</pubdate><vid>30</vid><ino>11</ino><issn>0170-9291</issn></serial><location><pp><ppf>592</ppf><ppl>593</ppl></pp></location><refno>XP007905525</refno></article></nplcit><category>L</category><rel-claims>1-15</rel-claims><rel-passage><passage>* The claimed subject-matter, with due regard to the description and drawings in accordance with Article 92 EPC, relates to processes comprised in the list of subject-matter and activities excluded from patentability under Article 52(2) and (3) EPC. The information technology employed as an enabler for carrying out said processes is conventional. Its use for carrying out non-technical processes forms part of common general knowledge and it was widely available to everyone at the date of filing of the present application. No documentary evidence is therefore considered necessary. *</passage></rel-passage></citation></srep-citations><srep-admin><examiners><primary-examiner><name>Bohner, Michael</name></primary-examiner></examiners><srep-office><addressbook><text>The Hague</text></addressbook></srep-office><date-search-completed><date>20130312</date></date-search-completed></srep-admin></srep-for-pub></search-report-data>
</ep-patent-document>
