Method and apparatus for parallel XML processing
AssigneeInternational Characters, Inc.
InventorRobert D. Cameron
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Characters, Inc.
InventorRobert D. Cameron
Estimating the term…
One embodiment of the present invention is an XML application module that processes an XML character stream, which module includes an XML interface module, a parallel bit stream module, a lexical item stream module, a parser and a parsed data receiver. The XML interface module applies the XML character stream as input to the parallel bit stream module and the parser; the parallel bit stream module forms parallel bit streams and applies them as input to the lexical item stream module; the lexical stream module forms lexical item streams and applies them as input to the parser; the parser forms a stream of parsed XML data and applies it as input to the parsed data receiver; and the parsed data receiver processes the stream of parsed XML data. The parsed data receiver may be, for example, a communication module of a portable communication device.
An Extensible Markup Language (XML) application processor module that receives an XML character stream, which processor module comprises:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Handling natural language data
Of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML: indexing, e.g. XML tags; Data structures therefor;…
Of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML: querying
Recognition of textual entities: lexical analysis, e.g. tokenisation or collocates
About 10 months of term left · ends 3 Sep 2027 (estimated)
One or more embodiments of the present invention relate to method and apparatus for parallel XML processing.
Text processing applications deal with textual data encoded as strings or streams of characters following conventions of a particular character encoding scheme. Historically, many text processing applications have been developed that are based on fixed-width, single-byte, character encoding schemes such as ASCII and EBCDIC. Further, text processing applications involving textual data in various European languages or non-Roman alphabets may use one of the 8-bit extended ASCII schemes of ISO 8859. Still further, a number of alternative variable-length encoding schemes have been used for Chinese, Japanese or Korean applications.
Increasingly, Unicode is being used as a basis for text processing applications that may need to accommodate, and/or perhaps combine, text arising from different sources. The Unicode character set is designed to include characters of all the world's languages, as well as many additional characters arising from formal notation systems used in mathematics, music and other application areas. As is well known, UTF-8, UTF-16 and UTF-32 are the three basic encoding schemes of Unicode that are based on 8-bit, 16-bit, or 32-bit code units, respectively. In particular, UTF-8 is a variable-length encoding scheme that requires one to four 8-bit code units per character; UTF-16 is an encoding scheme that generally requires a single 16-bit code unit per character (some rarely used characters require 2 code units); and UTF-32 is a fixed-length encoding scheme that requires a single 32-bit code unit for each character. UTF-16 and UTF-32 have variations known as UTF-16LE, UTF-16BE, UTF-32LE and UTF-32BE, depending on byte-ordering conventions within code units.
FIG. 1 illustrates UTF-8 code units and parallel property streams for a Unicode text “$, ¥, ?”;
FIG. 2 shows a loop fragment illustrating shift across block and buffer boundaries using the C-language interface for Altivec programming on a Power PC in accordance with an embodiment of the present invention;
FIG. 3 illustrates serial byte to parallel bit stream transposition using an inductive instruction set architecture in accordance with an embodiment of the present invention;
The following definitions apply herein.
Data stream: A sequence of data values of a particular data type. A data stream may be of finite length or it may be nonterminating.
Data string: A data stream of finite length that may be processed as a single entity.