This application claims priority to Polish Application No. P-363397, filed Nov. 12, 2003, the contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to a system for searching and defining data in tree structures and a method of searching and defining data in tree structures.
2. Brief Description of the Background of the Invention Including Prior Art
In many cases during processing of digital television data streams a situation happens when much information must be gathered, which is scattered in many components of given data streams. For example identification numbers of each service from a given stream or identification numbers of all streams, which belong to a given network.
There is SQL language known from the state of the art, which is called so from the abbreviation of words Structured Query Language, which is applicable in relational databases. Data in such databases are stored in tables, which can be connected between each other by means of relations.
It is an object of the present invention to provide a method of searching for specific data in television streams and a mechanism of performing database queries for tree structures.
This and other objects and advantages of the present invention will become apparent from the detailed description, which follows.
A system for searching and defining data in tree structures, according to the present invention, contains a block for analysis of data structure, in which the analysis of data structure takes place. These data are created by sources of data connected to the data structure analysis block, in this block a database is created, and data searching block, according to the criteria of the user. While the found data create a database for the structure of output data, which is updated in data update block, according to queries, defined in the output structure and data from the output database are transmitted to the data output, while the unit controlling the operation of the system is a control computer, which is operated by the user.
Favorably, the connected data sources are A/V streams or application for decoders.
In the method of searching and defining data in the tree structures, according to the present invention, the language of database queries is defined, adjusted to tree structures, which in recursive way allows accessing components, which compose the tree structure of data, where after initiating the search function the place of the start of the search is fetched, and next in case of when the components, in which the search should proceed, are defined, the path of these components is broken down into subcomponents, and when the first of them is set as active, the place of starting of the search is defined as a collection of results and for each result the subcomponents of components are checked subsequently in order to find the searched and defined components.
Favorably the checking of the subcomponents of components in order to find the searched and defined components starts from searching for places, which fulfill the conditions which are defined by the consecutive subcomponents of the searching range. Next is checked if the places, corresponding to the searched subcomponent were found. If not, the procedure ends its operation with an empty result. In opposite case, when such places are found, the collection of places is updated by exchanging places, which correspond to the previously processed component for the found places. Next a check is made, if all the subcomponents from the list were analyzed and if so, the current collection of places is a result, on the basis of which selected features of the found components are fetched. In opposite case, when there are subcomponents remaining for checking, the next subcomponents from the list are activated and search is made for next subcomponents until all the subcomponents are searched.
The properties, being searched for, of the components can be given in a form of a list, separated by commas (property_name1, property_name2, . . . ), optionally each property can appear in the result under a different , user defined name (output_name1), output_name2, . . . ).
Favorably, the query parameter at searching is the beginning_path used in order to limit the search to a specific part of the tree.
Favorably at searching the parameter searching_range is defined, which defines a set of places, where one should search for parameters, which fulfill the query criteria.
In case, when the procedure searching the tree does not find one of the places, defined by the searching_range parameter, it ends its operation with an empty result.
Favorably, searching and defining data is conducted in an audio/video stream in MPEG format, applied in digital television.
Favorably, a query is made, which allows to allocate to one branch of the tree a part or the whole information of another or many other branches of the structure, by creating from such information a local copy, which is not written as a physical data copy in the source database, and the connected data are automatically updated with the use of database queries.
Favorably, the query is executed by the user or is automatically updated.
Favorably a connection of the query with the elements of the tree is described with the use of markup language, especially XML.
A set of query results can be defined using the functionality of user's queries, where the user decides, which results will be considered.
The novel features, which are considered as characteristic for the invention are set forth in the appended claims. The invention itself, however, both as to its construction and its method of operation, together with additional objects and advantages thereof, will be best understood from the following description of specific embodiments when read in connection with the accompanying drawings.
In the accompanying drawings one of the possible embodiments of the present invention is shown, where:
The first block, of the system for searching and defining data in tree structures, presented in
The method according to the invention is applicable mainly in the broadcasting systems of digital television. For example, if the user wants to search all the identification numbers of digital streams of a given network, the system according to the invention gives a set of the branches of the network tree, which is represented by transport streams and the name of the field, which specifies identification numbers. Searching is conducted by means of the searching function SELECT after query is made by the user.
The general structure of the query is defined in the following way:
The output properties, being searched for, of components may be given in a form of a list, separated by commas (property_name1, property_name2, . . . ). Optionally, each property can appear in the result under a different, user-defined name (output_name1, output_name2, . . . ). For example, the identification numbers ID of services of a given stream can as a result of the query appear under the name of ID_Services.
Names of properties can also be defined in form of paths, which is applicable at complex queries made on trees of digital television data streams, MPEG for example.
The next parameter of the query is the beginning_path. The results of each query, which includes this parameter, will be limited to a specific part of the tree of the network of digital television data streams. By means of this parameter one can define a few places in the tree of the network of data streams of digital television. For example, if the value of the field beginning_path indicates the A stream of the C network, only the components, belonging to a specific stream will be considered at searching.
The last parameter of the query is the searching_range. It defines the set of places in the tree structure, where elements, which fulfill the criteria of the query, should be searched. For example, if the query has a task of searching for all services of a given stream, then the parameter beginning_path indicates a branch of the tree, which defines this stream, for example “Services” 15 from
The value of the parameter searching_range is a set of names separated by the character “/”. Each name can define the name of the tree branch, the type or subtype of a branch. The value given in the square brackets [ ] is treated as a type, and the name given in the curly brackets { } as a subtype:
The above example defines the searching range as a path, indicating all nodes in the subtype {Service} 16 in the branch of the tree with the type “Services” 15, the superior branch of which is any branch of the type of {[Transport Stream]} 17, which is a subbranch of the branch with the name of “Transport Streams” 18.
A clause “WHERE” can be added to the above syntax, which defines parameters of the searched fields, for example PID>5.
The process of query is recursive. That is why for every iteration a temporary result is stored. If the procedure searching the tree does not find one of the places, defined by the parameter searching_range, it ends its operation with an empty result. The algorithm starts searching from the place defined by the parameter of beginning_path and next searches consecutively places defined by the path given in the parameter of the searching_range.
In the next example a query is described, which searches all the services in a given stream, and gives the current properties ‘ID’, ‘Service type’ and ‘Name’ in the result as ‘Service ID’, ‘Type of service’ and ‘Service Name’ respectively:
The query starts searching from the currently selected branch of the tree ‘.’, it is for example “TS1” 17 from
The result of searching was illustrated in
The next application of the method according to the invention is the automatic update of data in the tree. It often happens that one set of data, for example a branch, appears many times in a given tree. In such case, in order to avoid unnecessary copying of data, and reduce their quantity at the same time, one can apply a mechanism of queries according to the present invention. Then, consecutive repetitions of data are defined as queries, which allow storing all other data one time in the whole tree. Moreover, possible modifications of data are made only in one place, which shortens the modification process considerably.
A special case, where one set of data appears many times in one tree is a list of descriptors of services of digital television and PSI/SI data (Program Specific Information/Service Information). For example a descriptor must include identifiers and types of all the services of a given stream. The number of services in a stream can change at any time. For example, a definition of the descriptor of the service 40 according to ETSI EN 300 468 standard v1.4.1. was illustrated in
Data, defined with the use of the query are defined as a DATA BLOCK. The mechanism of connecting the query with the tree elements is described with the use of XML language, known from the current state of the art. Such description includes a definition of the query, the place of the tree, where one should send the result and definitions of the result fields. In case, when the list of results, for example a list of service descriptors, should not include all possible results, their set can be defined using the functionality of the user's queries, where the user decides, which results will be considered. It is required also that each query should have a unique name, because many queries can reefer to one place in the structure of the tree.
Next, the places of the structure are specified, for which queries are defined. In the example, these are two places NIT2 and BAT2. Each of them has a separate definition of the query. Meanwhile, one should notice that the name of the query is the same in both cases. The query related to the place BAT2 uses the functionality of the user queries.
The definition of the query is specified in the following way:
The tag <field_defs> defines two properties of data, they are two integer numbers. These properties are only defined by name, because other, if they exist, are fetched from original data location. However, the user can define these properties, which causes overwriting of the source values. The values of the fields, which are copied automatically, are marked as read-only.
The tag <Text> defines the text of the query. Because the query is related to the descriptors from the NIT2 table, the search was started from the tree branch, which is three levels above, i.e. from the beginning of the definition of the given transport stream. The tree for this query was presented in
Moreover a place of searching was defined, which is all the nodes with the subtype of {Service} of the branch ‘Services’.
The second, below given, query is related to location BAT2.
This query is very similar to the first one with the difference that the functionality of user's queries was applied here by setting the parameter manual to 1. After adding such descriptor to the tree structure, a query is executed, and results are presented to the user, who can narrow the list of the received results. The selection of results is not a single event, the user can, at any time, narrow or broaden the list of the monitored results. In case of queries of this type, each result has the ACTIVE 71 property, as given in
The queries can be executed one time, can be made by the user and can be automatically updated. Data searched by means of a query can create a new branch of the tree in the structure of output data, i.e. in effect ascribe new data to the output structure.
The result of applying the second query was presented in
The preferred embodiment having been thus described, it will now be evident to those skilled in the art that further variation thereto may be contemplated. Such variations are not regarded as a departure from the invention, the true scope of the invention being set forth in the claims appended hereto.
Number | Date | Country | Kind |
---|---|---|---|
P-363397 | Nov 2003 | PL | national |