WO2009146658A1 - 一种非结构化数据处理方法和系统 - Google Patents
一种非结构化数据处理方法和系统 Download PDFInfo
- Publication number
- WO2009146658A1 WO2009146658A1 PCT/CN2009/072159 CN2009072159W WO2009146658A1 WO 2009146658 A1 WO2009146658 A1 WO 2009146658A1 CN 2009072159 W CN2009072159 W CN 2009072159W WO 2009146658 A1 WO2009146658 A1 WO 2009146658A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- instruction
- unstructured data
- document
- platform software
- abstract
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/123—Storage facilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
Definitions
- TECHNICAL FIELD The present invention relates to the field of information processing, and more particularly to an unstructured data processing system and method.
- BACKGROUND OF THE INVENTION Information can be broadly classified into structured data and unstructured data, in which unstructured data based on written documents and streaming media is more than 70% based on statistical data.
- the structure of structured data is relatively simple, that is, a two-dimensional table structure. Its processing technology is represented by data, mainly by using database system for processing. It has developed from the 1970s and 1980s, reached its peak in the 1990s, and developed and The application is relatively mature. Unstructured data has no fixed data structure, so the processing of unstructured data is very complex.
- Blocking innovation Software is an industry that is constantly innovating, but since each new feature is added, information describing the function needs to be added, and the new format can only be added when the standard revision is made. Therefore, fixing the storage format to death will hinder the technological innovation. Fight.
- Affect portability and scalability Different application requirements may have different storage requirements in different system environments. For example, storing on a hard disk requires consideration of how to reduce the number of head seeks to improve performance. In embedded applications, data is equivalent to being stored in memory, and this problem does not exist. For example, database software from the same vendor may use different storage formats on different platforms. Therefore, setting document storage standards will affect system portability and scalability.
- the present invention provides an unstructured data processing method and system that enables interoperability of unstructured data.
- the embodiment of the invention further provides an unstructured data processing method, including:
- the application software sends at least one instruction to the platform software to initiate an operation on the unstructured data; wherein the at least one instruction is independent of a stored form of the unstructured data;
- Platform software performing the operation on the unstructured data in accordance with the at least one instruction; wherein the platform software has a function of operating internal data of the unstructured data.
- the embodiment of the invention further provides an unstructured data processing system, including:
- An application software for transmitting at least one instruction to the platform software to initiate an operation on the unstructured data; wherein the at least one instruction is independent of a storage form of the unstructured data;
- the platform software configured to perform the operation on the unstructured data according to the at least one instruction; wherein the platform software has a function of operating internal data of the unstructured data.
- Embodiments of the present invention also provide a platform software having the function of operating internal data of unstructured data, for
- the embodiment of the invention further provides an unstructured data processing method, including:
- the first application software sends the first instruction to the platform software to create the first abstract information
- the platform software receives a first instruction to create unstructured data corresponding to the first abstract information; the second application software sends a second instruction to the platform software to open the created unstructured data; the platform software receiving station a second instruction, opening and parsing the unstructured data, and generating second abstract information corresponding to the unstructured data;
- the first instruction and the second instruction conform to the same interface standard.
- the embodiment of the invention further provides an unstructured data processing system, including: , ,
- the platform software is configured to receive the first instruction, and create unstructured data corresponding to the first abstract information
- a second application software configured to send a second instruction to the platform software to open the created unstructured data;
- the platform software is further configured to receive the second instruction, open and parse the unstructured data, generate and The second abstract information corresponding to the stored data;
- the first instruction and the second instruction conform to the same interface standard.
- the embodiment of the invention further provides an unstructured data processing method, including:
- the first platform software parses the first unstructured data stored in the first format, and generates first abstract information corresponding to the unstructured data;
- the application software sends a first instruction to the first platform software to obtain all the information of the first abstract information; and sends a second instruction to the second platform software to create the same or similar to the first abstract information.
- Second abstract information ;
- the second platform software generates, according to the second instruction, second unstructured data corresponding to the second abstract information and stored in a second format;
- An embodiment of the present invention further provides an unstructured data processing system, including:
- a first platform software configured to parse the first unstructured data stored in the first format, and generate first abstract information corresponding to the stored data
- the application software configured to send a first instruction to the first platform software to obtain all information of the first abstract information; and send a second instruction to the second platform software to create the first abstract information The same or similar second abstract information;
- the second platform software is configured to create, according to the second instruction, second unstructured data corresponding to the second abstract information and stored in a second format;
- the first instruction and the second instruction conform to the same interface standard.
- to the data storage is completed by a software, divided into application layer and platform software layer.
- the platform software is a general-purpose technology platform with various unstructured data operation functions.
- the application software operates on the unstructured data, it sends corresponding instructions to the platform software, and the platform software performs corresponding operations according to the instructions.
- different application software can implement the operation of non-conforming data by using the same non-constructed data, ⁇ , Instead of separately developing each unstructured data format separately.
- Figure 1 is a block diagram showing the structure of an unstructured information processing system in accordance with the present invention.
- FIG. 2 is a block diagram showing the structure of a document processing system in accordance with an embodiment of the present invention.
- FIG. 3 is a schematic diagram of processing of a document processing system according to an embodiment of the present invention.
- FIG. 4 is a diagram showing the organization of a general document model in accordance with a preferred embodiment of the present invention.
- the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It is understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
- FIG. 1 is a block diagram showing the structure of an unstructured information processing system in accordance with the present invention.
- the non-structured information processing system includes application software and platform software, wherein the storage data is unstructured data and is located on the platform software side.
- the application software is configured to send at least one operation instruction to the platform software to indicate an operation on the unstructured data (ie, the stored data), wherein the at least one operation instruction conforms to a format-independent interface standard.
- the platform software operates on the unstructured data according to the standard instructions sent by the application software, wherein the platform software has the function of operating the internal data of the unstructured data.
- platform software has powerful processing functions for unstructured data, which can meet the needs of various application software to operate on unstructured data, and perform operations indicated by operation instructions on unstructured data.
- platform software has the ability to create, open, read, and close unstructured data.
- the interface criteria may be defined based on abstract information.
- the abstract information corresponds to the stored data and is obtained by abstracting one or more features of the stored data, but is independent of the storage format of the stored data.
- the abstraction information describes the rendering effect of the stored data.
- the abstract information may also describe non-presentable features of security control, organization management, interactive information (e.g., navigation guide), metadata, and the like of the stored data.
- the rendering effect can be the visual appearance of the written document, also known as the layout.
- the rendering effect can be sound effect, dynamic visual effect. And multidimensional visual effects.
- the operation instruction sent by the application software indicates the operation of the abstract information
- the platform software maps the operation for the abstract information to the stored data corresponding to the unstructured information. Operate, and perform the operation on the stored data.
- Stored data refers to various information that is maintained or stored in a memory (including non-volatile persistent storage such as a hard disk, or volatile memory such as RAM) for long-term use, and such information can be processed by a computing device.
- the stored data can include a complete or comprehensive set of information, such as office documents, pictures, or audio/video programs.
- long-term does not refer to the storage medium, but refers to the form of data, indicating that the data is not dynamically stored (such as a memory pointer in a running instance), but can be used later by other software or another running instance.
- Storage data is usually contained in a single disk file, but it can also be contained in multiple (associated) disk files or in multiple (associated) fields of the database, or in an area of a separate disk partition. in.
- the disk partition is not managed by the operating system's file system, but is directly managed by the platform software.
- the storage data may also be distributed and stored in different devices in different geographical locations, or may have other storage forms.
- the format of the stored data may include various forms of storing the information as physical data as described above, and is not limited to the format of one or more disk files.
- the unstructured data is a document
- the stored data of the unstructured data may be referred to as document data, and may include other information, such as security control information or editing, in addition to the presentizable information of the document.
- Process information can also be called an abstract document.
- document usually has two meanings: one refers to information that can be printed on paper, also known as a written document, such as static two-dimension information; the other refers to all the letters that can be presented. , - .
- the platform software is responsible for maintaining the correspondence between the abstract document and the stored data (such as a document file with a specific format), such as: mapping the operation performed by the application software on the abstract document to the actual operation for storing the data, performing this operation, and When the operation requires a return value, the operation result is returned to the application software.
- the abstract document is the result of abstracting the document data, and the different document data may correspond to the same abstract document.
- an abstract document can be abstracted based on the visual appearance of the document (also known as the layout of the document), and different document data with the same visual appearance, regardless of how it is stored, can correspond to the same abstract document.
- the Word file and the PDF file are different storage data corresponding to the same abstract document.
- these different versions of the Word format file are also different storage data corresponding to the same abstract document.
- the storage data created by the platform software can be accessed by standard instructions and can be used by various application software conforming to the interface standard, the storage data created by the platform software can be referred to as general data.
- Application software can not only access common data through standard instructions, but also define its own unique data format, such as Office document format, but it needs to be parsed by itself. After the application software opens and parses the document with its own unique format, it can request the corresponding abstract document through one or more standard instructions, and the platform software creates corresponding storage data according to these instructions.
- the newly generated stored data (general data) is different from the original data, it has the same or similar abstract document as the original data, as it has the same or similar visual appearance as the original data.
- the platform software can create a stored data corresponding to the abstract document, so that any document data can be converted into a common document corresponding to the same abstract document. And can be used by a variety of applications. This enables document interoperability between different applications that conform to the same interface standard.
- the following two applications and one platform software are used as examples (but not limited to) to illustrate the document interoperability process.
- the first application software sends the first instruction to the platform software to create the first abstract document.
- the platform software After receiving the first instruction, the platform software creates the stored data corresponding to the first abstract document.
- the second application software sends a second instruction to the platform software to open the previously created stored data.
- the platform software opens and parses the stored data according to the second instruction and generates a second abstract document corresponding to the stored data.
- the second abstract document is identical or similar to the first abstract document, and the first instruction and the second instruction conform to the same interface standard, so that the second application software can open the document created by the first application software.
- the first platform software parses the first stored data stored in the first data format to generate a first abstract document corresponding to the stored data.
- the application software sends the first instruction to the first platform software to obtain all the information of the first abstract document.
- the application software sends a second instruction to the second platform software to create a second abstract document that is the same as or similar to the first abstract file.
- the second platform software creates second stored data corresponding to the second abstract document and stored in the second data format according to the second instruction.
- the first instruction and the second instruction are in phase ,, , change.
- the document interoperation process in the case of multiple application software and multiple platform software can be inferred from the above examples. Due to factors such as document format and related software functions, the mapping relationship between stored data and abstract documents is not necessarily 100% complete and accurate, and there is often a certain degree of bias. For example, but not limited to, no matter what precision floating point number or integer number is used to store the coordinates of the visual content, deviations cannot be avoided. For example, software displayed/printed for display/printing that lacks the necessary color management functions may have a certain deviation from the predefined colors. If these deviations are not obvious (for example, but not limited to, the position of a character deviates by 0.01 mm, or an image is distortion-compressed with JPEG), these deviations can be ignored by the user.
- the degree of deviation that the user can accept is related to factors such as actual demand. For example, a professional artist is more demanding on color deviation than the average person.
- the abstract document and the corresponding stored data may not be absolutely identical, and the display/printing effects of the plurality of stored data corresponding to an abstract visual appearance may not be absolutely the same. Even if the same application software is used to process the same stored data, the rendering effect may not be exactly the same. For example, the display effect will be slightly different under different screen resolutions.
- "similar” and “consistent” are used to indicate that the deviation is within an acceptable range (e.g., the degree of deviation does not exceed a preset threshold).
- the stored data can correspond or conform to a plurality of similar abstract documents.
- Platform software can establish the correspondence between abstract information and stored data in a variety of ways.
- the platform software can establish the correspondence between the abstract document and the stored data when opening a document file, parsing the stored data of the document file, and forming an abstract document that can be manipulated by the application software.
- the platform software can establish a correspondence between the abstract information and the stored data upon receiving an instruction from the application software to instruct to create an abstract information and create corresponding storage data.
- the application software knows the storage data corresponding to the abstract information it operates (for example: the application software can notify the platform software of the address of the stored data, or the application software can read the document data into the memory. , and submit the memory data block to the platform software for processing).
- the application software may "know nothing" about the stored data corresponding to the abstracted information it operates on.
- the application software can ask the platform software to search on the Internet for a certain condition and open the first searched document.
- abstract information is not stored, that is, it is not stored in any storage medium.
- Various information for recording and describing abstract information may be included in corresponding stored data or operational instructions, but such information is not abstract information itself. Therefore, abstract information can also be referred to as virtual unstructured information.
- the abstract information may be described by an abstract model, such as when the unstructured data is document data, the abstract model may be the generic document model mentioned below.
- the so-called "document data conforms to the general document model" can be understood as the abstract document obtained by abstracting the document data conforms to the general document model.
- abstract information can be thought of as an instance of an abstract model.
- both the abstract model and the abstract information may be a tree structure.
- abstract models should have the ability to describe arbitrary values (or their similar values) of abstract features.
- an abstract feature is a layout
- the abstract model should have the ability to describe any layout.
- the layout described by the abstract model is similar to the format being described.
- an abstract model can be used to describe its layout, resulting in an abstract document similar to its layout.
- the abstract model should have the ability to describe any sound.
- an abstract model describing abstract information defines a plurality of object types, and corresponding, abstract information is composed of objects of these types.
- the application software's operations on abstract information can be broken down into additions, deletions, reads, and writes to these objects. Therefore, as long as the standard instructions contain instructions for adding, deleting, reading, and writing to various types of objects, the platform software has the function of executing these instructions (that is, mapping the operations described by these instructions to operations on storing data and storing data. By performing this operation, the platform software can meet the requirements of various application software for storing data operations, and become a general technology platform. It should be noted that this is only a way to achieve the versatility of the platform software, and other methods can be used to achieve the same purpose.
- standard instructions can also be implemented by defining the action actions and action objects separately, and then combining them, called the "action + object" mode.
- the objects in the instruction can be the same as or different from the objects in the abstract information.
- the abstract model contains a text object.
- the operation object in the instruction to set the position of the text object can be a text object.
- the function of the instruction is to set the position attribute of the text object.
- the operation object in the instruction can also be the position object of the text.
- the object in the instruction is different from the object of the abstract model. In practical applications, for the sake of convenience, it should be as good as possible to unify the objects in the instruction with the objects of the abstract model.
- the abstract model can describe the abstract features
- the abstract model describes the abstract features to obtain abstract information (or abstract model instances)
- the standard instructions describe the operation of the abstract information.
- the method described above forms a division of labor between the application software and the platform software, making document processing more convenient.
- FIG. 2 is a schematic diagram of processing of a document processing system in accordance with an embodiment of the present invention.
- application software such as Red Office, OCR, webpage generation software, music score editing software, book reader, Office editing software, etc.
- the software also referred to as a document library system in this embodiment
- the document library system may have different models from different vendors, but the application developers are all facing the same interface standard, so they can be used together.
- the present embodiment there are a plurality of platform softwares, which are respectively labeled as the document library system 1, the document library system 2, and the document library system 3.
- the document library system operates on documents that conform to the common document model, such as creating, saving, displaying, and presenting documents, based on standard instructions from the application.
- different application software can call the same document library system at the same time or at different times, and the same application software can call different document library systems at the same time or at different times.
- the application layer and the data processing layer platform software are truly separated. Since the application software is concerned with the abstract information rather than the specific storage format when sending instructions for operating the stored data, the stored data of a certain format is no longer bound to the specific application software, and the application software is no longer used. .
- Operation is a very difficult task, but according to the present invention, this arduous task is completed by the platform software, and the application software only needs to call the command "issue order", which is very easy for the application software developer to grasp. .
- different application software can edit the same stored data through the same platform software, so that different application software has good data interoperability.
- the applicable unstructured data can be converted into general data with the same or similar abstract features, and then various application software can send instructions to the platform software to operate the general data. In this way, the range of unstructured data that is facilitated by interoperability is broad.
- the industrial division of labor is formed, the repetitive development is reduced, and it is more professional, complete, and correct; the basic operations of storing data are processed in the document library system, and the application software does not have to be repeatedly developed.
- the platform software is developed by professional vendors, the professionalism, completeness and correctness of the related technologies are more secure, and the application software vendors and users can choose to be the best platform software vendor to ensure the processing effect.
- the present invention it is convenient to optimize performance, and has better portability and scalability. No matter what platform is running, what kind of performance can follow the same call interface, so that performance can be continuously optimized and ported to different operating platforms without changing the interface standards.
- FIG. 3 is a structural block diagram of a document processing system according to an embodiment of the present invention.
- the document processing system mainly includes application software, an interface layer, platform software (also referred to as a document library system in this embodiment), and a storage device.
- the application software is located at the application layer of the document processing system, including any existing document processing and content management software.
- the application software wants to operate on the document, it sends an instruction conforming to the interface standard, which instructs the operation of the abstract document, which is independent of the specific storage format of the document.
- the application software even if multiple files are stored in the storage device, it is not necessary for the application software to care about the specific storage method of the document.
- the document data can be described by using a general document model, and an abstract document corresponding to the document data can be obtained.
- the generic model is abstracted based on the presentation information of the written document and conforms to the documents in the various formats that each application needs to process.
- the interface standard is determined based on a generic document model.
- the document library system performs specific document operations based on standard instructions from the application software.
- the document library system is the core layer of the document processing system and has in-document operations such as the ability to open, read, write, and delete document data.
- the document library system parses the document data and maps the operations of the abstract model to operations on the document data.
- the interface layer conforms to the interface standard that regulates the interaction between the application layer and the document library system.
- the interface standard defines how the application software sends instructions to the document library system.
- the application layer sends standard instructions to the document library system through the interface layer, and the document library system returns the execution result to the application layer through the interface layer.
- the interface layer may include an upper interface unit and a lower interface unit, and the application layer passes The lower interface unit is further configured to return the execution result of the document library system to the application system through the upper interface unit, and those skilled in the art can understand that in actual software development, it is not required to develop an interface layer, application software, and The platform software can follow the same interface standard at the same time.
- the storage device is the storage layer of the document processing system. It is usually a hard disk or a memory. It can also be a CD, a flash memory, a floppy disk, a tape, or a remote storage device. In short, as long as the data storage capacity is available. In the storage device, the document library data can be stored and organized freely.
- all the files of a document library can be stored in one disk file; one file can correspond to one disk file, and the file system function in the operating system can be used to implement multiple Document organization; can also correspond to a disk file on one page; you can also completely abandon the operating system, and leave a space on the disk to directly manage the tracks and sectors.
- Document library data can be saved in binary format, and document data can be saved in XML or binary XML.
- the page description language (the method of defining objects such as text, graphics, images, etc. on the page) can be PostScript, PDF, SPD (page description language used by the company), and of course any custom page description language, as long as It conforms to a uniform interface standard.
- the general document model is defined by the characteristics of the reference paper. This is because using paper as the means of recording document information is a standard method that has been used to date. As long as it has all the functions of paper, it can meet the needs of practical applications such as work and life.
- the layout of the written document is first extracted, and the generic document model needs to be able to describe any layout effect on the written document.
- the layout on a written document can ultimately be classified into three categories: text, graphics, and images.
- the common document model typically includes document types, document libraries, document sets, documents, pages, layers, object streams, layout objects, and more.
- the subdocument set type can also be included under the document set, and the subdocument set type can also be included under the subdocument set.
- the document, page, and layout objects are the necessary object types, and other object types can be omitted according to the actual situation.
- shared objects of each object type may be included under object types such as document repositories, document libraries, document sets, documents, pages, and layers.
- the shared object can be a shared font or image. If a specific font or special character is involved in the document, in order to ensure the same effect on each computer, you need to embed the corresponding font in the document. In order to improve storage efficiency, font resources should be shared so that even if the same character is used in multiple places, only one font needs to be embedded. Images can sometimes appear in multiple places, such as a common basemap for each page, or a company logo that often appears, in which case it is best to share these images as well.
- the general document model can further describe data feature information of the written document, such as metadata, navigation, navigation, micro-version, historical traces, etc., and the abstract information can be used as a secondary object.
- document objects, document libraries, document sets, documents, pages, layers, and other object types may include auxiliary objects of each object type.
- the generic document model can further describe the security control information of written documents.
- roles and permissions can also be defined in the common document model.
- Icons page objects, layer objects, object stream objects, layout objects, and more.
- the document repository includes one or more document libraries.
- the relationship between the document libraries is relatively loose relative to the relationship between the layers below the document library.
- the document libraries can be easily combined and detached without using Make changes to the data of the document library itself.
- Many retrieval operations on the document warehouse generally need to traverse the indexes of each document library without a unified index. Available.
- Each document library object can include one or more document set objects, and/or any number of document library auxiliary objects, and/or any number of document library shared objects.
- the document library auxiliary objects may include a metadata object, a role object, a rights object, a plug-in object, an index information object, a script object, a digital signature object, a historical trace object, and the like.
- Document library shared objects are objects that may be shared by different documents in a document library, such as font objects, image objects, and so on.
- Each document set object includes one or more document objects, and/or any number of document set objects and/or any number of document set helper objects.
- Document set helper objects include metadata objects, digital signature objects, and historical trace objects.
- a document set object can belong to only one document set pair ⁇ , or it can belong to multiple document set objects at the same time.
- a document library is not a simple combination of multiple documents. It organizes multiple documents closely, especially when a variety of search indexes are unified for the document content.
- the interface standard includes instructions for organization management, query retrieval, and security control of multiple documents.
- Each document object can include one or multiple page objects in a certain order (such as before and after), and/or any number of document helpers, and/or any number of document shared objects.
- Document helper objects include metadata objects, font objects, navigation information objects, guided information objects, miniature layout objects, digital signature objects, historical trace objects, and more.
- Document sharing objects include objects that may be used together by different pages in a document, such as image objects, stamp objects, and the like.
- the core of each page can be different, and the core is not necessarily rectangular, and can be any shape, and one or more closed curves can be used to represent the core.
- Each page object can contain one or multiple layer objects in a certain order (as above), and/or any number of page helpers.
- Page helpers can include metadata objects, digital signature objects, and historical trace objects.
- the layers are like a superposition of glass plates.
- the interface standard also includes various operation instructions for the layer, as well as storage and extraction of the source files corresponding to a layer of a document.
- Each layer object can include one or more layout objects, and/or any number of object streams, and/or any number of layer helper objects.
- Layer helper objects include metadata objects, digital signature objects, and historical trace objects.
- the object stream can include any number of layout objects, and/or any number of object streams, and/or optional digital signature objects.
- Layout objects are states (such as font, font size, color, ROP, etc.), text (including symbols), graphics (such as lines, curves, closed areas filled with specified colors, gradients, etc.), images (such as TIF, JPEG, BMP, JBIG, etc., (such as title start, title end, line feed, etc.), source files, scripts, plugins, embedded objects, bookmarks, links, streaming media, binary data streams, etc.
- Layout objects can include any number of state objects, text objects, graphic objects, image objects, semantic information objects, source file objects, script objects, plug-in objects, embedded objects, binary data stream objects, linked objects, bookmark objects, and streaming media.
- a text object can be a symbol object.
- Graphic objects can be line objects, curve objects, gradient objects, and more.
- Image objects can be TIF objects, JPEG objects, BMP objects, JBIG objects, and so on.
- the abstract document can further include a plurality of role objects, each of which is assigned a certain authority. Permissions are assigned in units of document libraries, document sets, documents, pages, layers, object streams, metadata, and define whether each role is readable, writable, copyable, printable, and reusable Authorization, revocation of authorization, etc. or any combination of the above rights. If a role is set to access an object, that permission applies to all child objects of that object.
- the general document model can be further enhanced or simplified on the basis of the above. If a document set object is not included in a common document model, the document library object directly includes the document object; if a layer object is not included in a common document model, the page object directly includes the layout object. It can be understood that the most simplified general document model may include only document objects, page objects, and layout objects. The layout object only includes text objects, line objects, and image objects.
- the interface standard defines various instructions for operating a document based on an abstract document, and the manner in which the application software sends instructions to the document library system.
- the instructions that operate on the document can be in the "action + object" mode.
- you need to define a variety of operational actions define a variety of operational objects, and then include the operational actions and the objects that the actions operate on in the instructions.
- An operation action can be combined with a plurality of operation objects, and an operation object can also be combined with a plurality of operation actions, but not necessarily each combination of the operation action and the operation object is a legal instruction.
- This method is easy to learn and understand, and it is also convenient to maintain the stability of the interface standard. In the future, when adding an interface standard, adding an object or an action is also simple.
- the number of operation actions and operation objects included in an instruction may be arbitrary (zero, one or more), and is not necessarily a combination of one operation action and one operation object.
- the operation object may or may not be an object contained in the abstract document.
- the following seven operational actions are defined: open, close, get, set, delete, and retrieve queries.
- An action object may be an object in an abstract document obtained after describing a document in accordance with a general document model.
- Such an action and the composition of the action object can indicate an action, such as:
- Open a document library object Used to create or open a document library
- Get object used to get the object list, object related properties and data
- Setting object Used to set/modify object data
- Insert object Insert the specified object or data
- Delete object Used to delete an object
- Retrieve the query object used to find the content that matches the object in the document, either as accurate information or as fuzzy information.
- the various instructions that operate on the document can also be defined in a non-action + object manner. For example, for each . .
- the application software sends the instruction to the document library system by generating the command string according to the predefined standard format, and the application software sends the command by sending the command string generated by the predefined format to the document library system;
- the interface function the application software sends an operation instruction to the document library system by calling an interface function; or may be a form of defining the operation instruction as a class, that is, encapsulating the operation object into each object class, and performing an operation action of the object Defined as a method of the class, the application software sends an operation instruction to the document library system in the form of a method of calling the object class.
- objects in documents such as characters and rectangles can be operated, unlike the current document management system, which can only perform document-level operations.
- the command mark string can be described in the extended markup language (XML).
- the UOML standard promulgated by the International Open Standards Organization OASIS is an embodiment of using XML to describe a command string.
- the application software wants to operate on the document, the corresponding UOML instruction is generated according to the UOML standard, and the UOML instruction is sent to the document library system, that is, the corresponding operation instruction is issued to the document library system.
- each operation action corresponds to an XML element
- each operation object also corresponds to an XML element
- the XML element " ⁇ " of the operation object is described as an XML element describing the operation action.
- command string without using XML.
- operation of the above example can be described by such an instruction:
- command string formats can be defined, and the command string can be defined in binary mode even without text mode.
- the operation command is composed of the "action + object” method.
- each operation action of each operation object is represented by a command string.
- "INSERT_DOCSET” is used to indicate the insertion of a document set.
- the specific definition of the command is as follows:
- the execution result contains a "handle" child element indicating the handle of the newly inserted document set.
- UOI Unstructured Operation Interface
- UOI_Object can be first defined as the base class of all objects, and a function is defined for each action.
- the parameter of the function can be a pointer or reference to the class. This way the function works for all objects.
- TYPE DOCSET
- each UOI object taking UOI-Doc as an example:
- the function to create a new object is:
- HANDLE InsertNewObj HANDLE hParent, int nPos, UOI — Object:: Type type
- the interface standard can It is cross-platform, so that the application software and document library system running on different platforms can use the same interface standard uniformly.
- the application software running on one platform can be executed by calling the document library system running on another platform.
- the corresponding operation For example, the Application Software Department , , , is the mainframe, Linux operating system, but the application software can still call the document library system on the server to perform the corresponding document operation as the local document library system.
- the interface standard does not contain features associated with a particular programming language, the interface standard can be made independent of the programming language. It can be seen that the command string is easy to construct an interface standard that is independent of the platform and has nothing to do with the programming language, and is more versatile. In particular, if XML is used to construct a command string, the interface standard can be well cross-platform and independent of the programming language because of the easy-to-obtain XML generation parsing tools available on various platforms and programming languages.
- operation instructions can be added in the same way on the basis of the above examples, and the operation instructions can be simplified.
- the operation instructions are simplified correspondingly when the document model is simplified.
- there are only several operation instructions such as document creation, page creation, and creation of each layout object.
- the document library system When the document library system receives the operation instruction from the application software, it performs an operation on the actual stored data according to the received operation instruction.
- XML is used to describe the document data, and the corresponding XML tree can be completely constructed against the abstract document.
- the document library system performs operations on the stored data to actually perform the corresponding operations on the XML. For example, the document library system performs a creation operation according to an operation instruction of the application software, that is, adds a node to the XML tree, and the node corresponds to the operation object indicated in the operation instruction.
- the document library system performs a delete operation according to an operation instruction of the application software, that is, deletes the corresponding node in the XML tree; performs a setting operation, that is, sets an attribute of the corresponding node in the XML tree; performs a get operation, that is, in the XML
- the property of the corresponding node is taken out from the tree and returned to the application software; the query operation is performed, that is, the XML tree is traversed to find the relevant node.
- the process of establishing an XML tree corresponding to the document data may be: First, each object is described by XML, that is, a corresponding XML tree is established for each object. Then create an XML file based on the XML tree corresponding to each object. Among them, when creating a corresponding XML tree for each object, some object attributes are relatively simple, and the corresponding XML tree has only root nodes, some objects are more complicated, and the corresponding XML trees have child nodes. For a detailed description of the method, see the previous description of using XML to define an operation object.
- the document library system when creating a new document library, create a new XML file with the root node as the document library object.
- Each child object of a document library object has a corresponding node in the XML tree with the document library object as the root node.
- the document library system inserts the XML tree corresponding to the object into the parent node (such as a layer) of the insertion position.
- the document library system When the operation instruction sent by the application software indicates that an object is deleted, the document library system deletes the node corresponding to the object, and all the child nodes of the subordinate are also deleted, and the deletion process is traversed from the bottom of the leaf node from the bottom node. .
- the document library system sets the attribute of the node corresponding to the object to the attribute; if the attribute is represented by a child node, the corresponding child node is set.
- the document library system accesses a node corresponding to the object, and obtains an attribute of the object according to the attribute and the child node of the node.
- the document library system acquires an XML path of a node corresponding to the object.
- an operation instruction sent by the application software indicates that an object (such as a page) is copied to a specified location
- the document library system copies the entire subtree starting from the node corresponding to the object to the parent node (such as a document) corresponding to the target location. under. If the operation instruction indicates that an object is copied to another document library, the document library system needs to reference the subtree. H.
- the document library system When the operation is to obtain the layout information in the specified area, the document library system is a blank bitmap in the specified bitmap format, the size is the same as the specified area, and then traverses all the layout objects of the specified page, which are located in the specified area (including Only a part of the layout object in the area explains its meaning and is reflected in the layout.
- a richer search means can be provided.
- the operation object for retrieving a query operation can be other layout objects, such as a font object, a font size object, a color object, a position object, or a combination of multiple layout objects, in addition to a plain text object.
- the search query operation instruction provided by the embodiment of the present invention, the information contained in the document can be more fully utilized to provide a more powerful retrieval means, which can not only extract plain text information from the document, but also extract other finer details.
- Information such as font information, font size information, color information, layout location information, and special decoration effect information.
- the A software issues the command UOI—Open("c: ⁇ sample ⁇ mydocbase.sep", TRUE, &hDocBase), creates the document library c: ⁇ sample ⁇ mydocbase.sep, and stores its handle in hDocBase;
- hDocSet InsertNewObj (hDocBase, 0, UOI Obj:: TYPE - DOCSET), create a new document set in the document library hDocBase, and store its handle in hDocSet;
- hDoc InsertNewObj (hDocSet, 0, UOI - Obj:: TYPE - DOC), create a new document in the document set hDocBase, and store its handle in hDoc;
- a software issues the command UOI—Insert(hDoc, 0, &page, &hPage), creates a new page in the document hDoc, the size of the core is wide w, high h, and the handle is stored in hPage;
- the A software issues the command UOI_Insert(hLayer, 0, &charSize), sets the font size to s; defines the text object: UOI_ Text text;
- the A software issues the command UOI—Insert(hLayer, 1, &text), inserts the text string at the coordinates (xl, yl), “book business swearing”;
- the A software issues the command UOI—Close(hDocBase) to close the document library hDocBase;
- the B software issues the command UOI—Open("c: ⁇ sample ⁇ mydocbase.sep", FALSE, &hDocBase), opens the document library c: ⁇ sample ⁇ mydocbase.sep, and stores its handle in hDocBase;
- the B software issues the command UOI_GetHandle(hDocBase, 0, &hDocSet), which gets the document library hDocBase ,
- the B software issues the command UOI—GetHandle(hDocSet, 0, &hDoc) to get the pointer of the first document of the document set hDocSet, and puts its handle 3 ⁇ 4” in hDoc;
- the B software issues the command UOI—GetHandle(hDoc, 0, &hPage) to get the pointer of the first page of the document hDoc, and stores its handle in hPage;
- the B software obtains the page layout bitmap UOI_GetPageBmp(hPage, rect, buf), which is used to display the page;
- the software sends an instruction UOI—GetHandle(hPage, 0, &hLayer) to get the pointer of the first layer of hPage, and store its handle in hLayer;
- the B software issues an instruction UOI—GetHandle(hLayer, 0, &hObj) to get the handle of the first layout object hObj;
- the B software issues an instruction UOI—GetObjType(hObj, &type) to obtain the type of hObj;
- the B software issues " ⁇ U0I_Set0bj(h0bj, &charSize) to double the word height;
- the application software wants to edit the document, it can send a series of instructions to the document library system, indicating that a new layer is added on the basis of the existing document, and instructing to store the newly edited content in the newly created layer, the document library system is based on The application software instructions, a new layer, the new edit content is stored in the newly added layer, and the contents of the previous layers are not modified or deleted.
- each layer can be digitally signed. It is possible to sign only the content of this layer. Preferably, it is also possible to sign the content of this layer and all the layers generated before this layer. After the signature, it does not hinder the editing of the document for further annotation. As long as the new content is located in the newly created layer, and the layers existing when the signature is destroyed are not modified, the signature is still valid, but the signer is only responsible for the content before the signature. , not responsible for the content after the signature.
- the application software can send an instruction to the document library before the document library system digitally signs the layer content according to the instruction of the application software. System, to delete or modify the edited content of this layer.
- the application software can still send an instruction to the document library system to delete or Modify the layer layout object and re-sign it after deleting or modifying it.
- other applications cannot delete or modify this layer.
- the application software may first edit the initial content or new of the document on the source file (a file that stores and records the complete relationship between the objects according to the application's own format, such as a .doc file). Add content.
- the application software sends a series of instructions to the document library system, instructing to create a new layer, and storing the object describing the edited content layout in the newly created layer, and instructing to create a new source file in the document object.
- Sub-object to embed the source file; after receiving the instruction of the application software, the document library system creates a new layer, and stores the object describing the edited content layout in the newly created layer (for example, in the XML tree) .
- , , , and the node corresponding to the file object embedding the source file (for example, embedded in binary data as a whole) into the node corresponding to the source file object.
- the application software When the application software wants to edit the document again, it sends an instruction to the platform software to obtain the source file, and the document library system takes the source file from the document and returns the source file to the application software.
- the application software can directly edit the source files.
- the application software sends a series of instructions to update the layer content according to the edited result (for example, first indicating that all the layout objects in the layer are deleted, and then instructing to add an object describing the edited content layout), and new
- the modified source file is embedded in the source file sub-object, and the document library system performs this series of operations. In this way, the original application can be used to edit the existing content in the document in the original way.
- Any application can be opened, displayed and printed correctly with any application software.
- any application can be added with any new content without breaking the existing signature of the document.
- the original editing software that uses the existing content of the document can edit the content in its original way.
- each application software adds new content only based on the existing document content, but does not modify or delete the existing content, so that one page of the document is like a piece of paper. It is possible for different people to write and draw on paper with different pens, but no one can modify or delete existing content. That is, the method provided by the embodiment of the present invention supports "just add and change", and can better simulate the characteristics of the paper.
- the following embodiments of the present invention provide a document security technique. That is, after receiving the operation instruction sent by the application software, the document library system checks whether the operation of the document data indicated by the operation instruction is permitted; if yes, performs the operation on the document data according to the received operation instruction; if not, The operation of the document data is refused.
- the document library system When an operation instruction sent by the application software is received to indicate the creation of a role object, the document library system creates a role object according to the instruction. Further, after the role object system is created, the document library system returns a key to the application software as the basis for the application software to log in as the role.
- the key is usually a private key of the PKI, and may also be a login password or other form.
- the document library system can generate a pair of random public-private key pairs (for example, a 512-bit RSA key), store the public key in the role object, and return the private key to the application software.
- a "challenge-response” mechanism can be employed to better protect the security of the private key. That is, when receiving the login instruction of the application software, the document library system encrypts a piece of random data (such as 128 bytes) with the public key in the corresponding role object and sends it to the application software, and the application software decrypts and returns it to the document library system, and the document library system compares Verify that if the application software decrypts correctly, it means that the application software does have the private key corresponding to the role, and the login is successful. For the sake of insurance, the certification process can be repeated multiple times, and all the passes are counted to be successful.
- the "challenge-response” mechanism can also be implemented in the following way, the document library system will be a piece of , ,
- the public key of the saved role is decrypted. If the decryption is correct, the application software does have the private key corresponding to the role. If the role's key is a login password, the user is required to enter the correct login password.
- the application software can also send instructions to the document library system to indicate that the target authority is granted to a role; the target authority can be for document data (one or more objects), and the platform software grants the target target authority after receiving the instruction.
- an implementation manner in which the document library system checks whether the operation of the document data indicated by the operation instruction is permitted may be: simply recording the permission of the login character to the document data, and allowing the corresponding operation if the operation of the document data indicated by the instruction conforms to the permission Otherwise, the error is returned.
- the application software can log in with multiple roles, and the rights that can be at this time can be the union of the roles of the roles, or the intersection or other combination, determined by the rules set in advance.
- a better implementation is to encrypt the document data and use the key to control the permissions. If the role does not have the corresponding key, there is no corresponding permission. This way, the attack resistance is stronger.
- the specific plan is:
- a pair of PKI key pairs are used to encrypt a data area (usually corresponding to a subtree in an abstract document) with an encryption key.
- a role with read access grant its decryption key, which the role can use to decrypt the data area to properly read the data.
- a role with write permission its encryption key is granted, and the role can encrypt the modified data with the key so that the data in the area can be correctly written.
- the data area can also be encrypted by using a symmetric key, which is used to encrypt the symmetric key, and the decryption key is used for decryption after encryption. Key data to get the correct symmetric key.
- the data area can be digitally signed with the encryption key, and each time the character having the write permission modifies the data area, the signature is re-signed. This ensures that data is not tampered with by characters without write access.
- the key can be encrypted and stored with the public key of the role, so that the key can only be retrieved if it has the private key of the role.
- the document library system When receiving an instruction sent by the application software to describe signing an object, the document library system signs the stored data corresponding to the subtree rooted at the object.
- the regularization method may be traversing (for example, depth-first or width-first traversal) to store the knots in the data that need to be signed.
- traversing for example, depth-first or width-first traversal
- Each node node in the point tree corresponding to the target object and its respective child objects
- the regular results of each node node are calculated in turn according to the traversal order and connected.
- the method for calculating the regular result of a node node of the subtree is: first calculating the HASH value of the number of child node nodes of the node node, and then calculating the node node type and its respective attributes in turn.
- the respective HASH values are sequentially connected to the HASH value of the number of child nodes of the node node, and the HASH value of the connection result is calculated to obtain a regular result of the node. If the object referenced by a node in the subtree is also signed together, the object referenced by the node can also be treated as a child of the node, as in the above method.
- the method for calculating the regular result of a node of the subtree may also be: The number of child nodes, the type and its attributes of the node are separated by a separator and then connected in order, and the HASH value of the result of the connection is calculated. , got .
- the method for calculating the regular result of a node of the subtree may also be: The number of the child nodes, the type of the node, and the length of each attribute of the node are separated by a separator, and then connected in order, and then the number of child nodes The type, the attributes, and the attributes are connected to get the regular result of the node.
- the method of calculating the regular result of a node of a subtree can adopt any of the following various schemes: For a node of a tree, its number of child nodes, type, each attribute, number of child nodes/type/ The length of each attribute (optional), the original value or a specific transformation (such as HASH, compression), connected in a predetermined order (direct connection or separated by a separator).
- the above predetermined order means that the number of child nodes, the length of the type, the length of each attribute, the number of child nodes, the type, and the attributes can be arranged in any order as long as they are in a predetermined order.
- the number of child nodes of each node is separated by a separator and then connected in depth-first order, and then connected with the regular result of other data of each node.
- the changes of this embodiment are included.
- the HASH and the signature of the character's private key can be processed using the prior art, and will not be described here.
- the method for signing the storage data corresponding to the subtree is: traversing each node in the subtree, signing the storage data corresponding to the node, and signing The results are connected.
- the method of traversing and connecting the signature results is similar to the above embodiment.
- the document library system also has information security management control functions for documents, such as role-based fine-grained rights management, and defines related operation instructions in the interface standard.
- any granularity within the document can be refined, and encryption and signature can be set for any logical data in the document, thereby providing fine-grained security management means.
- the document security technology provided by the embodiment of the present invention integrates information security at the core layer of document processing, and closely integrates the security mechanism and the document operation, and has more space to deploy security management technology, and the related code can also be hidden. Deeper, more effective in defending against illegal attacks and improving security and reliability.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Description
一种非结构化数据处理方法和系统
技术领域 本发明涉及信息处理领域, 特别是一种非结构化数据处理系统和方法。 发明背景 信息可大致分为结构化数据和非结构化数据, 其中以书面文档和流媒体为主的 非结构化数据根据资料统计占有量超过百分之七十。 结构化数据的结构比较简单, 即一个二维表结构, 其处理技术以数据为代表, 主要是利用数据库系统进行处理, 从上世纪七八十年代开始发展, 到九十年代达到顶峰, 研发和应用已经比较成熟。 非结构化数据则没有固定数据结构 , 因此对非结构化数据的处理非常的复杂。
目前处理各种非结构化数据的软件已经比较普及, 形成了多种非结构化格式林 立的状况。 以办公文档为例, 目前就存在 doc、 ODF、 OOXML、 UOF、 WPS等多种 办公文档格式。
虽然各大公司目前都努力将自己特有的格式发展为市场标准, 各标准组织也致 力于制订通用的格式标准。但不管是专有的格式(如. doc )还是开放的格式(如 ODF ), 只要是以格式为标准, 就不可避免产生以下问题:
重复开发, 效果不统一。 使用同一标准的不同软件都需要自己去解释、 生成该 格式的非结构化数据, 造成大量重复开发, 而且会因为各家解译程序不同, 例如有 的完善有的相对简单, 有的支持新版本有的只支持旧版本数据, 同一非结构化数据 在不同软件下显现出不同的版式, 甚至出现解译错误导致无法打开。
阻碍创新。 软件是不断创新的行业, 但由于每增加一个新功能就需要增加描述 该功能的信息, 而且只有等到标准修订的时候才能增加新的格式, 因此把存储格式 固定死, 将会妨碍技术创新的竟争。
影响检索性能。 对海量信息, 需要增加大量的检索信息以提高检索性能, 但固 定死的存储格式难以增加检索信息
影响可移植性和可伸缩性。 在不同的系统环境下, 不同的应用需求, 可能会有 不同的存储要求。 例如, 存储在硬盘上就需要考虑如何减少磁头寻道的次数以提高 性能, 而在嵌入式应用中数据都相当于存储在内存中的, 就不存在这个问题。 例如, 同一个厂商的数据库软件在不同平台上就可能会使用不同的存储格式。 因此, 设置 文档存储标准将会影响系统的可移植性和可伸缩性。
通常, 一个内容管理软件往往要处理二三百种数据格式, 而且这些格式还在不 断更新, 给这类软件的开发带来了巨大的困难。 更严重的问题是, 由于缺乏互操作 性, 不同软件不能对同一个文档进行操作, 一个环节生成的文档到下一个环节就可 能打不开, 这样信息流就不能畅通地流动, 人们在投入巨资进行了信息化建设后却 发现纸张还是最好的互操作平台(任何笔都可以在任何纸上书写, 但 Word写的文件 用同一家公司的 Excel都写不了), 电脑往往只用于编辑环节然后还得打印出来用纸 张文件来办事, 信息流不能代替纸张流, 阻碍了信息化建设的步伐。 不仅是书面文 档, 其它类型的非结构化数据也存在同样的互操作问题, 同样影响了数字信息的流
, . ^ ^
可见, 实现非结构化数据的互操作意义非常重大。 但现有技术都局限于采用制 定存储格式标准的方式来解决互操作问题, 而这种方式无论是理论上还是实践上都 证明成效有限。 原因在于这种方式要求每个软件都能完整准确地解析数据格式并正 确实现该格式所定义的全部功能, 而一种格式如果太简单(例如 ΤΧΤ )则应用范围 非常有限, 如果比较完备的话(例如 ODF和 OOXML ) 则正确解析并实现该格式所 定义的全部功能是非常艰巨的工作, 甚至连 IBM和 SUN这样的 IT巨头都没有能力 处理 OOXML,就更不用讲其它小公司了, 不可能做到每个软件都能处理该格式的数 据, 更不能做到每个软件的处理算法都是正确的。 发明内容 本发明提供了一种非结构化数据处理方法和系统, 实现非结构化数据的互操作。 本发明实施例还提供了一种非结构化数据处理方法, 包括:
应用软件, 发送至少一个指令到平台软件, 发起对非结构化数据的操作; 其 中所述至少一个指令与非结构化数据的存储形式无关;
平台软件, 根据所述至少一个指令, 对所述非结构化数据执行所述操作; 其 中, 所述平台软件具有操作所述非结构化数据的内部数据的功能。
本发明实施例还提供了一种非结构化数据处理处理系统, 包括:
应用软件,用于发送至少一个指令到平台软件,发起对非结构化数据的操作; 其中所述至少一个指令与非结构化数据的存储形式无关;
平台软件,用于根据所述至少一个指令,对所述非结构化数据执行所述操作; 其中, 所述平台软件具有操作所述非结构化数据的内部数据的功能。
本发明实施例还提供了一种平台软件,具有操作非结构化数据的内部数据的功 能, 用于,
接收应用软件发送的至少一个指令, 其中, 所述至少一个指令指示对非结构 化数据进行操作, 并且符合与非结构化数据的存储形式无关;
根据所述至少一个指令, 对所述非结构化数据执行所述操作。
本发明实施例还提供了一种应用软件, 用于:
发送至少一个指令到平台软件, 发起对非结构化数据进行操作; 其中, 所述 至少一个指令符合与非结构化数据的存储形式无关; 并且所述平台软件具有操作 所述非结构化数据的内部数据的功能;
其中, 根据至少一个指令, 平台软件对所述非结构化数据执行所述操作。 本发明实施例还提供了一种非结构化数据处理方法, 包括:
第一应用软件发送第一指令到平台软件, 以创建第一抽象信息;
所述平台软件接收第一指令, 创建与第一抽象信息对应的非结构化数据; 第二应用软件发送第二指令到所述平台软件以打开创建的非结构化数据; 所述平台软件接收所述第二指令, 打开并解析所述非结构化数据, 生成与所 述非结构化数据对应的第二抽象信息;
其中所述第一指令与第二指令符合相同的接口标准。
本发明实施例还提供了一种非结构化数据处理系统, 包括:
, ,
所述平台软件, 用于接收所述第一指令, 创建与所述第一抽象信息对应的非 结构化数据;
第二应用软件, 用于发送第二指令到平台软件以打开创建的非结构化数据; 所述平台软件, 进一步用于接收所述第二指令, 打开并解析所述非结构化数 据, 生成与所述存储数据对应的第二抽象信息;
其中所述第一指令与第二指令符合相同的接口标准。 本发明实施例还提供了 一种非结构化数据处理方法, 包括:
第一平台软件解析以第一格式存储的第一非结构化数据, 生成与所述非结构 化数据对应的第一抽象信息;
所述应用软件发送第一指令到所述第一平台软件, 以获取所述第一抽象信息 的所有信息; 发送第二指令到第二平台软件, 创建与所述第一抽象信息相同或相 似的第二抽象信息;
所述第二平台软件根据所述第二指令, 以创建与所述第二抽象信息对应并按 第二格式存储的第二非结构化数据;
其中所述第一指令和第二指令符合相同的接口标准。 本发明实施例还提供了 一种非结构化数据处理系统, 包括:
第一平台软件, 用于解析以第一格式存储的第一非结构化数据, 生成与所述 存储数据对应的第一抽象信息;
所述应用软件, 用于发送第一指令到所述第一平台软件, 以获取所述第一抽 象信息的所有信息; 发送第二指令到第二平台软件, 以创建与所述第一抽象信息 相同或相似的第二抽象信息;
所述第二平台软件, 用于根据所述第二指令, 创建与所述第二抽象信息对应 并按第二格式存储的第二非结构化数据;
其中所述第了指令和第二指令符合相同的接口标准。 , 、 到数据存储都由一个软件来完成的现状, 将其划分为应用层和平台软件层。 平台 软件是具备各种非结构化数据操作功能的通用技术平台, 应用软件要对非结构化 数据进行操作时就向平台软件发出相应指令, 平台软件根据该指令执行相应操 作。 这样, 只要各应用软件和各平台软件都遵循同样的标准, 不同应用软件就可 ^通过 个†台软^对同一非,构化数据,^, 即可实现 ^非结^化数据的 操作, 而不用分别对每种非结构化数据格式都进行单独开发。 附图简要说明 图 1为依照本发明的非结构化信息处理系统的结构框图。
图 2为依照本发明实施例的文档处理系统的结构框图。
图 3为依照本发明实施例的文档处理系统的处理示意图。
图 4为依照本发明一优选实施例的通用文档模型的组织结构。
以下结合附图及实施例, 对本发明进行进一步详细说明。 应当理解, 此处所描 述的具体实施例仅仅用于解释本发明, 并不用于限定本发明。
图 1为依照本发明的非结构化信息处理系统的结构框图。 如图 1所示, 该非结 构化信息处理系统包括应用软件和平台软件, 其中存储数据是非结构化数据, 位于 平台软件侧。
应用软件, 用于发送至少一个操作指令到平台软件, 以指示对非结构化数据(即 存储数据) 的操作, 其中至少一个操作指令符合与格式无关的接口标准。
平台软件, 根据应用软件发来的标准指令, 对非结构化数据进行操作, 其中, 所述平台软件具有非结构化数据的内部数据进行操作的功能。 通俗来说, 平台软件 对非结构化数据具有足够强大的处理功能, 可以满足各种不同的应用软件对非结构 化数据进行操作的需求, 在非结构化数据上执行操作指令指示的操作。 如平台软件 具备创建、 打开、 读写、 关闭非结构化数据的功能。
在本发明一实施例中, 接口标准可以基于抽象信息( abstract information )定义。 抽象信息与存储数据对应, 是对存储数据一个或多个特征抽象而获得的, 但与存储 数据的存储格式无关。 在本发明的一个实施例中, 抽象信息描述了存储数据的呈现 效果。 在本发明另一实施例中, 抽象信息还可以描述存储数据的安全控制、 组织管 理、 互动信息 (如导航导读)、 元数据等非可呈现的特征。 其中, 对于二维静态数据 (书面文档) 而言, 呈现效果可以是书面文档的可视化外观, 又称为版式, 对于其 他多维数据或者流媒体数据而言, 呈现效果可以是声音效果、 动态视觉效果以及多 维视觉效果等。
这样, 应用软件发送的操作指令中, 指示的是对抽象信息的操作, 平台软件接 收到来自应用软件的指令后, 将针对抽象信息的操作映射到针对与该非结构化信息 对应的存储数据的操作, 并且对该存储数据执行该操作。
存储数据是指维护或存储在存储器(包括硬盘等非易失性永久存储器, 或 RAM 等易失性存储器) 中供长期使用的各种信息, 这些信息可由计算装置处理。 存储数 据可以包括一份完整的或综合的信息, 如 office文档、 图片或音频 /视频节目等。 这 里 "长期" 不是指存储的介质, 而是指数据的形式, 表明数据不是动态存储(例如 运行实例中的一个内存指针) 的, 而是可被其他软件或另一个运行实例以后使用的。
存储数据通常包含于一个磁盘文件中, 但也可以包含在多个(相关联的)磁盘 文件中或在数据库的多个(相关联的) 字段中, 或者是在一个独立的磁盘分区的一 个区域中。 其中, 该磁盘分区不由操作系统的文件系统管理, 而是由平台软件直接 管理。 可选的, 存储数据还可以分布式存储在不同地理位置的不同设备上, 也可以 具有其他存储形式。 由此可见, 存储数据的格式可以包括如上所述的将信息存储为 物理数据的各种形式, 而不局限于一个或多个磁盘文件的格式。
在本发明一实施例中, 非结构化数据为文档, 非结构化数据的存储数据可称为 文档数据, 除了包含文档的可呈现信息以外, 还可以包含其它一些信息, 例如安全 控制信息或编辑过程信息。 这时, 抽象信息也可称为抽象文档。
这里 "文档" 通常有两个含义: 一个是指可打印到纸上的信息, 又称书面文档, 如静态的二维信息( static two-dimension information); 另一个则泛指所有可呈现的信
, - 。
用法。
此时, 应用软件仿佛是对一个抽象文档进行操作, 它并不需要关心文档数据的 存储方式。 平台软件负责维护抽象文档与存储数据(如具有特定格式的文档文件) 之间的对应关系, 比如: 将应用软件对抽象文档执行的操作映射到针对存储数据的 实际操作, 执行此操作, 并在操作需要返回值的情况下, 向应用软件返回操作结果。
在本发明一实施例中, 抽象文档是对文档数据进行抽象的结果, 不同的文档数 据可以对应相同的抽象文档。 例如, 抽象文档可以基于文档的可视化外观(也称为 文档的版式)进行抽象, 具有相同可视化外观的不同文档数据, 无论其以何种方式 存储, 都可以对应同一抽象文档。 比如, 当一个 Word文件被转成一个与其具有相同 可视化外观的 PDF文件后, 该 Word文件与该 PDF文件就是对应同一抽象文档的不 同存储数据。 又比如当同一文档被保存为不同版本的 Word格式文件时, 这些不同版 本的 Word格式文件也是对应相同抽象文档的不同存储数据。
在本发明一实施例中, 为了更好地记录版式信息, 最好能记录文字、 图形、 图 像等可视内容的位置信息, 并同时记录所引用的资源, 例如被链接的照片和非标准 字库。 这样, 就能保证这些可视内容不会错位、 并且随时可用。 类似 SEP这样的版 式文档满足上述条件, 因此常常被用作平台软件的存储数据。
由于平台软件创建的存储数据可被标准指令访问, 并且可被符合接口标准的各 种应用软件使用, 因此平台软件创建的存储数据又可称为通用数据。 应用软件不仅 可以通过标准指令访问通用数据, 也可以定义自己特有的数据格式, 如 Office文档 格式, 但需要自行解析处理。 应用软件打开并解析具有自己特有格式的文档后, 可 以通过一个或多个标准指令来请求生成相应的抽象文档, 平台软件再根据这些指令 创建相应的存储数据。 虽然新生成的存储数据(通用数据)与原始数据的格式不同, 但其与原始数据对应相同或相似的抽象文档, 如其具有与原始数据相同或者相似的 可视化外观。 因此, 只要一个文档数据(无论其格式如何)对应一个抽象文档, 平 台软件就可以创建一个与该抽象文档对应的存储数据, 这样任何文档数据都可以被 转化为与其对应相同抽象文档的通用文档, 并可被各种应用软件使用。 这就实现了 在符合相同接口标准的不同应用软件之间的文档互操作。
下面以两个应用软件和一个平台软件为例 (但不限于此) 来说明文档互操作过 程。 第一应用软件发送第一指令到平台软件, 以创建第一抽象文档。 平台软件接收 到第一指令后, 创建与第一抽象文档对应的存储数据。 第二应用软件发送第二指令 到平台软件以打开上述已创建的存储数据。 平台软件根据第二指令打开并解析该存 储数据, 并产生与该存储数据对应的第二抽象文档。 这里第二抽象文档与第一抽象 文档相同或相似, 并且第一指令和第二指令符合相同的接口标准, 这样第二应用软 件就可以打开由第一应用软件创建的文档。
再以一个应用软件和两个平台软件为例 (但不限于此) 来说明另一文档互操作 过程。 第一平台软件解析以第一数据格式存储的第一存储数据, 产生与该存储数据 对应的第一抽象文档。 应用软件发送第一指令到第一平台软件, 以获取第一抽象文 档的所有信息。 应用软件发送第二指令到第二平台软件, 以创建一个与第一抽象文 件相同或相似的第二抽象文档。 第二平台软件根据第二指令, 创建与第二抽象文档 对应的并且按第二数据格式存储的第二存储数据。 这里第一指令和第二指令符合相
,, , 变。
多个应用软件与多个平台软件情况下的文档互操作过程可由以上例子推知。 受到文档格式和相关软件功能等因素的限制, 存储数据与抽象文档的映射关系 不一定 100%完整准确, 往往会存在一定程度上的偏差。 例如(但不限于此), 不管 用什么精度的浮点数还是整型数来存储可视内容的坐标, 都不能避免出现偏差。 又 如, 缺乏必要色彩管理功能的用于显示 /打印的软件显示 /打印出来的颜色和预定义的 颜色可能会有一定偏差。 如果这些偏差不是艮明显的话(例如但不限于此, 某个字 符的位置偏离了 0.01mm, 或者某个图像用 JPEG进行了失真压缩), 这些偏差可以被 使用者忽略。 使用者所能接受的偏差程度与其实际需求等因素有关, 例如一个专业 美工对色彩偏差的要求就会比一般人苛刻得多。 由此可见, 抽象文档与相对应的存 储数据不一定能绝对一致, 与一个抽象可视化外观对应的多个存储数据, 其显示 /打 印效果也未必绝对相同。 即使用相同的应用软件来处理同样的存储数据, 其呈现效 果也不一定会完全一样, 例如不同的屏幕分辨率下显示效果就会有细微的不同。 在 本发明中, "相似"、 "一致" 被用来表示偏差处于可接受的范围内 (例如偏差程度不 超过预设的阈值)。由此可见,存储数据可以与多个相似的抽象文档相对应或相符合。
平台软件可以用多种方式建立抽象信息与存储数据的对应关系。 例如, 平台软 件可以在打开某个文档文件、 解析该文档文件的存储数据并形成一个可供应用软件 操作的抽象文档时, 建立此抽象文档和存储数据的对应关系。 又如, 平台软件可以 在接收到来自应用软件指令以指示创建一个抽象信息、 并创建相应的存储数据时, 建立此抽象信息和存储数据之间的对应关系。 在本发明某些实施例中, 应用软件知 道其所操作的抽象信息所对应的存储数据(比如: 此时应用软件可以通知平台软件 该存储数据的地址, 或者应用软件可以将文档数据读到内存中, 并将内存数据块提 交给平台软件供其处理)。 在本发明另外的实施例中, 应用软件可能对其所操作的抽 象信息所对应的存储数据 "一无所知"。 例如(但不限于此), 应用软件可以要求平 台软件在互联网上按某个条件搜索, 并打开第一个搜索到的文档。
一般说来, 抽象信息是不具有存储的, 也就是说其并未存储在任何存储介质中。 各种用于记录和描述抽象信息的信息可以包含在对应的存储数据或操作指令中, 但 这种信息都不是抽象信息本身。 因此, 抽象信息也可被称为虚拟非结构化信息。
在本发明一实施例中, 抽象信息可以用某种抽象模型来描述, 如当非结构化数 据为文档数据时, 抽象模型可以是下文提到的通用文档模型。 所谓 "文档数据符合 通用文档模型" 可以理解为对文档数据进行抽象得到的抽象文档符合通用文档模型。 此时, 抽象信息又可以认为是一个抽象模型的实例。 在本发明一实施例中, 抽象模 型和抽象信息都可以是树型结构。
在实际应用中, 抽象模型应当具备描述抽象特征的任意值(或其相似值) 的能 力。 例如, 当抽象特征是版式时, 抽象模型应当具备描述任意版式的能力。 在实践 中, 只要抽象模型所描述的版式与被描述的版式相似即可。 这样, 对于任意书面文 档, 都可以用抽象模型描述其版式, 得到与其版式相似的抽象文档。 同样, 当抽象 特征是音频时, 抽象模型应当具备描述任意声音的能力。
存在多种方式来发送指令以操作抽象信息, 如通过发送命令串或调用函数。 可 以用不同的指令形式来表示对抽象信息进行的操作。 之所以将函数调用也视为一种
,
对应的指令参数。
在本发明一实施例中, 描述抽象信息的抽象模型定义了多种对象类型, 对应的, 抽象信息由这些类型的对象组成。 此时, 应用软件对抽象信息的操作可以分解为对 这些对象的增、 删、 读、 写操作。 因此, 只要标准指令包含了对各种类型对象进行 增、 删、 读、 写操作的指令, 平台软件具备执行这些指令的功能(即将这些指令描 述的操作映射为对存储数据的操作并对存储数据执行该操作), 则平台软件就可以满 足各种应用软件对存储数据操作的需求, 成为通用技术平台。 需要说明的是, 这只 是实现平台软件通用性的一种方式, 也可以用其它方式来达到同样的目的。
另一方面, 标准指令也可以采用分别定义操作动作和操作对象, 然后再组合的 方式来实现, 称为 "动作 +对象" 方式。 此时, 指令中的对象可以与抽象信息中的对 象相同, 也可以不同。 例如, 抽象模型中包含了文字对象, 设置文字对象位置的指 令中的操作对象可以是文字对象, 该指令的功能是设置文字对象的位置属性, 此时 该指令中的对象与抽象模型中的对象相同; 或者, 指令中的操作对象也可以是文字 的位置对象, 此时此指令中的对象与抽象模型的对象不同。 在实际应用中, 为了方 便起见, 还是应当尽量将指令中的对象与抽象模型的对象统一为好。
另外, 本领域技术人员可以理解, 在很多情况下, 在本发明的一实施例中, 并 不一定适用于所有的非结构化数据, 往往只适用于非结构化数据的一个子集, 例如 具备特定抽象特征(如可呈现效果) 的子集, 对该子集中的任意非结构化数据, 抽 取其抽象特征, 并用标准指令创建具有相同或相似抽象特征的通用数据, 然后各应 用软件就可以通过标准指令对该通用数据进行操作了。 其中, 抽象模型能够描述抽 象特征, 用抽象模型描述该抽象特征得到抽象信息(或称抽象模型实例), 标准指令 描述的是对该抽象信息的操作。
以上描述的方法形成应用软件与平台软件的分工合作, 使得文档处理更加便利。 在实际应用中, 也可能会出现不严格区分抽象信息与存储数据, 应用软件甚至可以 通过指令直接操作文档数据的情形。 但在即使在这种情况下, 为了保持通用性, 指 令应该与具体的文档数据格式无关。
图 2为依照本发明实施例的文档处理系统的处理示意图。 如图 2所示, 在该实 例中, 应用软件, 如 Red Office, OCR, 网页生成软件、 乐谱编辑软件、 书生阅读器、 Office编辑软件等阅读器, 通过发送符合统一的接口标准的指令指示平台软件 (在该 实施例中, 又称为文档库系统)对文档进行操作。 文档库系统可能会有不同厂商的 不同型号, 但是对于应用开发厂商来说面向的都是同一个接口标准, 因此都可以与 之配套使用。
在本实施例中存在多个平台软件, 分别标记为文档库系统 1、 文档库系统 2和文 档库系统 3。文档库系统根据应用软件发来的标准指令对符合通用文档模型的文档进 行操作, 例如创建、 保存、 显示、 呈现文档。 在本发明中, 不同的应用软件可以同 时或不同时调用同一个文档库系统, 同一应用软件可以同时或不同时调用不同的文 档库系统。
由此可见, 依照本发明, 使得应用层和数据处理层一一平台软件真正分离开来。 由于应用软件在发送对存储数据进行操作的指令时, 关注的是抽象信息, 而不是具 体的存储格式, 因此某种格式的存储数据不再与特定应用软件绑定, 应用软件不再
。
操作是非常艰巨的任务, 但依照本发明, 这个艰巨任务是由平台软件来完成的, 应 用软件只需要调用指令 "发号施令" 即可, 而这一点对应用软件开发商来说是很容 易掌握的。 这样, 不同的应用软件可以通过同一平台软件对同一存储数据进行编辑, 使不同应用软件之间具有良好的数据互操作性。 在实际应用时, 对适用的非结构化 数据, 可以先转换成与其具有相同或相似抽象特征的通用数据, 然后各种应用软件 就可以向平台软件发送指令来对该通用数据进行操作了。 这样, 互操作所惠及的非 结构化数据范围就艮广泛了。
依照本发明, 形成产业分工, 减少重复开发, 并更加专业、 完备、 正确; 对存 储数据的基本操作都在文档库系统中处理, 各应用软件不必重复开发。 而且由于平 台软件是由专业厂商开发, 相关技术的专业性、 完备性、 正确性较有保障, 而且应 用软件厂商和用户可以选择做的最好的一家平台软件厂商, 从而保证处理效果的正 因此可以由少数掌握相关专业技术和充足研发资源11的^ "业 商投入巨资来实现, 这 样分摊到每个应用软件的成本比应用软件厂商自行开发要低很多, 而且正确性、 可 靠性、 性能要高很多。 进一步的, 形成合理的产业分工后, 各平台软件厂商和各应 用软件厂商就会在领域展开竟争, 而不会再出现 Microsoft Word一样靠文档格式来 垄断应用软件的情形发生。 各平台软件厂商也可以在标准之外增加新的功能以吸引 用户, 标准并不会对创新形成束縛。
依照本发明, 便于优化性能, 有更好的可移植性和可伸缩性。 无论是什么运行 平台, 什么样的性能, 都可以遵循同样的调用接口, 使得在不改变接口标准的情况 下可以不断优化性能, 并移植到不同的运行平台。
图 3为本发明一实施例提供的文档处理系统的结构框图。 如图 3所示, 该文档 处理系统主要包括应用软件、 接口层、 平台软件(在该实施例中, 又称为文档库系 统 )和存储设备。
应用软件位于文档处理系统的应用层, 包括现有的任何文档处理和内容管理软 件。 当应用软件欲对文档进行操作时, 通过发送符合接口标准的指令, 该指令指示 对抽象文档进行操作, 该抽象文档与文档的具体存储格式无关。 这样, 即使存储设 备中存储有多个文档, 但对应用软件而言并不需要关心文档的具体存储方式。
具体的, 可以利用通用文档模型描述文档数据, 即可获得与该文档数据对应的 抽象文档。 该通用模型基于书面文档的可呈现信息抽象而成, 能与各应用软件所需 要处理的各种格式的文档相符合。 在本发明一实施例中, 接口标准就是基于通用文 档模型来确定的。
文档库系统, 根据应用软件发来的标准指令, 执行具体的文档操作。 该文档库 系统为文档处理系统的核心层, 其具备文档内操作功能, 如具有打开、 读、 写、 删 除文档数据的能力。 具体来说, 文档库系统解析文档数据, 将对抽象模型的操作映 射为对文档数据的操作
接口层符合规范应用层和文档库系统之间交互的接口标准。 接口标准除了定义 对文档进行操作的各种指令外, 还定义了应用软件向文档库系统发送指令的方式。
应用层通过接口层向文档库系统发送标准指令, 文档库系统通过接口层向应用 层返回执行的结果。 优选地, 接口层可包括上接口单元和下接口单元, 应用层通过
, , 下接口单元还用于将文档库系统的执行结果通过上接口单元返回给应用系统, 本领 域技术人员可以理解, 在实际上的软件开发中, 并不需要开发出接口层, 应用软件 和平台软件同时遵循相同的接口标准即可。
正是由于本发明的应用软件 /文档库系统的架构, 不同的应用软件可以通过同一 文档库系统对同一文档进行操作 , 同一应用软件也可以通过不同文档库系统对不同 格式的文档进行操作。 存储设备为文档处理系统的存储层, 常用的是硬盘或者内存, 也可以是光盘、 闪存、 软盘、 磁带, 也可以是远程的存储设备, 总之只要具备数据 的存储能力即可。 在存储设备中, 文档库数据可以自由地存储和组织, 例如可以把 一个文档库的文件全部都存储在一个磁盘文件中; 可以一个文档对应一个磁盘文件, 利用操作系统中的文件系统功能实现多文档组织; 也可以一页对应一个磁盘文件; 还可以完全抛开操作系统, 在磁盘上留出一块空间后直接对磁道、 扇区进行管理。 可以用二进制格式保存文档库数据, 可以用 XML或者二进制 XML保存文档数据。 页面描述语言(定义页面上的文字、 图形、 图像等对象的方法)可以采用 PostScript, 可以采用 PDF、 SPD (书生公司使用的页面描述语言), 当然也可以采用自定义的任 何页面描述语言, 只要其符合统一的接口标准。
下面详细介绍一个抽象文档模型的实施例, 称为通用文档模型。 通用文档模型 是参考纸张的特性来定义的, 这是因为以纸张作为文档信息的记录手段是通行至今 的标准方法, 只要能具备纸张的所有功能, 就能满足工作、 生活等实际应用的需求。
首先抽取书面文档的版式, 通用文档模型需要能够描述书面文档上的任意版式 效果。 一般说来, 书面文档上的版式最终都可以归为文字、 图形、 图像三类。 另夕卜, 除了能够描述书面文档的版式外, 通用文档模型还有必要进一步描述书面文档的组 织结构。
图 4为依照本发明一优选实施例的通用文档模型的组织结构。 如图 4所示, 通 常而言, 通用文档模型包含文档仓库、 文档库、 文档集、 文档、 页、 层、 对象流、 版面对象等多种对象类型。 其中, 文档集下还可以包括子文档集类型, 子文档集下 还可以包括子文档集类型。 其中, 文档、 页、 版面对象是必要的对象类型, 其他的 对象类型可根据实际上的情况省略。
另外, 在文档仓库、 文档库、 文档集、 文档、 页、 层等对象类型下均有可能还 包括各对象类型的共享对象。 共享对象可以是共享字库或者图像等。 如文档中涉及 到特定字体或特殊字符的话, 为了保证在各台电脑上都能有相同的效果, 就需要在 文档中嵌入相应字库。 为了提高存储效率, 字库资源应当共享, 这样即使在多处使 用了同一字符, 也只需要嵌入一个字库。 图像有时也是可能在多处出现的, 例如每 一页共同的底图, 或经常出现的公司标识, 这种情况下最好也能共享这些图像。
在本发明某一实施例中, 通用文档模型可以进一步描述书面文档的数据特征信 息, 如元数据、 导航、 导读、 微缩版面、 历史痕迹等信息, 这些抽象信息可以作为 辅助对象。 其中文档仓库、 文档库、 文档集、 文档、 页、 层等对象类型下均有可能 包括各对象类型的辅助对象。
为了进一步保证文档处理的安全性, 通用文档模型可以进一步描述书面文档的 安全控制信息。 此时, 通用文档模型中还可以定义角色和权限。
当用通用文档模型描述一个文档时, 就可以获得一个通用文档模型实例, 即抽
、 、
象、 页对象、 层对象、 对象流对象、 版面对象等。
其中, 文档仓库包括一个或多个文档库, 文档库之间的关系相对于文档库之下 的层次之间的关系相对要松散一些, 文档库之间可以非常简单地组合和拆离, 而不 用对文档库本身的数据做改动, 该多个文档库之间往往没有建立统一索引 (特别是 全文索引) , 很多对文档仓库的检索操作一般都需要遍历各文档库的索引, 而没有 统一的索引可用。
每个文档库对象可以包括一个或多个文档集对象、 和 /或任意数量文档库辅助对 象、 和 /或任意数量的文档库共享对象。
其中, 文档库辅助对象可以包括元数据对象、 角色对象、 权限对象、 插件对象、 索引信息对象、 脚本对象、 数字签名对象、 历史痕迹对象等。 文档库共享对象是指 文档库中的不同文档可能共享的对象, 如字库对象、 图像对象等。
每个文档集对象包括一个或多个文档对象、 和 /或任意数量的文档集对象和 /或任 意数量的文档集辅助对象。 文档集辅助对象包括元数据对象、 数字签名对象、 历史 痕迹对象。 当文档集对象包括多个文档集对象时, 其类似于资源管理器中的文件夹 包括多个文件夹的形式。 一个文档对象可以只属于一个文档集对 ^, 也可以同时属 于多个文档集对象。 文档库不是多个文档的简单组合, 它把多个文档紧密地组织起 来, 特别是为文档内容统一建立了各种检索索引后就能带来更大的便利性。
相应地, 接口标准中包含对多文档的组织管理、 查询检索、 安全控制等指令。 每个文档对象可以包括一个或存在一定顺序 (如前后顺序) 的多个页面对象、 和 /或任意数量的文档辅助对象、 和 /或任意数量的文档共享对象。 文档辅助对象包括 元数据对象、 字库对象、 导航信息对象、 导读信息对象、 微缩版面对象、 数字签名 对象、 历史痕迹对象等。 文档共享对象包括文档中的不同页面可能共同使用的对象, 如图像对象、 印章对象等。 这里, 每页的版心可以不同, 而且版心也不一定是矩形 的, 可以是任意形状, 可以用一条或多条封闭曲线表示版心。
每个页面对象可以包含一个或按一定顺序 (如上下顺序) 的多个层对象、 和 /或 任意数量的页面辅助对象组成。 页面辅助对象可以包括元数据对象、 数字签名对象、 历史痕迹对象。 当页面对象包括多个层对象时, 各层之间如同玻璃板的叠加关系。 相应地, 接口标准中也包含对层的各种操作指令, 以及对一个文档某一层所对应源 文件的存储和提取。
每个层对象可以包括一个或多个版面对象、 和 /或任意数量的对象流、 和 /或任意 数量的层辅助对象。 层辅助对象包括元数据对象、 数字签名对象、 历史痕迹对象。 对象流可以包括任意数量的版面对象、 和 /或任意数量的对象流、 和 /或可选的数字签 名对象。
版面对象是指状态 (如字体、 字号、 颜色、 ROP 等) 、 文字 (包括符号) 、 图 形(如直线、 曲线、 填充了指定颜色的闭合区域、 渐变色等)、 图像(如 TIF、 JPEG, BMP, JBIG等) 、 (如标题开始、 标题结束、 换行等) 、 源文件、 脚本、 插件、 嵌 入式对象、 书签、 链接、 流媒体、 二进制数据流等。
版面对象可以包括任意数量的状态对象、 文字对象、 图形对象、 图像对象、 语 义信息对象、 源文件对象、 脚本对象、 插件对象、 嵌入式对象、 二进制数据流对象、 链接对象、 书签对象以及流媒体对象。
, 、 、 、
对象、 背景色对象、 线颜色对象、 填充色对象、 线型对象、 线宽对象、 线接头对象、 画刷对象、 阴影对象、 阴影颜色对象、 旋转对象、 空心字对象、 勾边字对象、 透明 对象和渲染模式对象。 文字对象可以是符号对象。 图形对象可以是直线对象、 曲线 对象、 渐变色对象等。 图像对象可以是 TIF对象、 JPEG对象、 BMP对象、 JBIG对 象等。
抽象文档中还可以进一步包括一个多个角色对象, 为每个角色对象分配一定权 限。 权限以文档库、 文档集、 文档、 页、 层、 对象流、 元数据为单元进行分配, 定 义每个角色对该单元是否可读、 是否可写、 是否可复制、 是否可打印、 是否可再授 权、 是否可收回授权等等或者以上权限的任意组合。 如果设置了某角色对某对象的 访问权限, 则该权限适用于该对象的所有子对象。
本领域技术人员可以理解, 通用文档模型可以在上述基础上进一步增强或简化。 如果某一种通用文档模型中不包括文档集对象, 则文档库对象直接包括文档对象; 如果某一种通用文档模型中不包括层对象, 则页面对象直接包括版面对象。 可以理 解, 最简化的通用文档模型可能仅包括文档对象、 页面对象和版面对象。 其中版面 对象仅包括文字对象、 直线对象和图像对象。
下面具体介绍接口标准的实现方式。 在一实施例中, 接口标准定义了基于抽象 文档对文档进行操作的各种指令, 以及应用软件向文档库系统发送指令的方式。
对文档进行操作的指令可以采用 "动作 +对象" 方式。 在这种方式下, 需要定义 多种操作动作, 并定义多种操作对象, 然后在指令中包含操作动作和该动作所操作 的对象。 一种操作动作可以与多种操作对象组合, 一种操作对象也可以与多种操作 动作组合, 但并不一定每一种操作动作和操作对象的组合都是合法指令。 这种方式 便于学习和理解, 也便于保持接口标准的稳定性, 今后在对接口标准进行扩充时, 增加一个对象或动作也艮简单。 例如, 如果有 10种操作动作和 30种操作对象, 采 用 "动作 +对象"方式, 只需要学习 10+30=40种指令, 而采用非 "动作 +对象"方式, 可能需要学习 10x30=300种指令。 需要说明的是, 一个指令中包含的操作动作和操 作对象的数量可以是任意的 (零、 一或多个) , 并不一定都是一个操作动作加一个 操作对象的组合。 其中, 操作对象可以是抽象文档中包含的对象, 也可能不是。
在本发明一实施例中, 定义以下 7种操作动作: 打开、 关闭、 获取、 设置、 删除 以及检索查询。
操作对象可以是按照通用文档模型描述文档后获得的抽象文档中的对象。
这样操作动作和操作对象的组成就可以指示一个操作, 如:
打开文档库对象: 用于创建或打开文档库;
关闭文档库对象: 用于关闭文档库;
获取对象: 用于获取对象列表、 对象相关属性和数据;
设置对象: 用于设置 /修改对象数据;
插入对象: 插入指定对象或数据;
删除对象: 用于删除对象;
检索查询对象:用于根据在文档中找到符合该对象的内容,既可以是准确的信息, 也可以是模糊信息。
对文档进行操作的各种指令还可以采用非 "动作 +对象" 方式来定义。 如, 对每
。 .
的每种合法操作都单独定义一条指令, 比较繁瑣。
应用软件向文档库系统发送指令的方式可以是将操作指令按照预定义标准格 式生成命令串, 应用软件通过发送预定义格式生成的命令串到文档库系统的方式 来发送指令; 可以是平台软件提供接口函数, 应用软件通过调用接口函数的方式 向文档库系统发送操作指令; 还可以是将操作指令定义为类的方法的形式, 即将 操作对象封装成各个对象类, 把该对象可以进行的操作动作定义成该类的方法, 应用软件通过调用对象类的方法的形式向文档库系统发送操作指令。
特别地, 如果在对文档进行操作的各种指令中包括获取版面位图的指令, 将对 保障版面一致性和文档互操作性起到非常关键的作用。
利用本发明实施例定义的标准指令,可以对文字、矩形等文档内对象进行操作, 而不像现在的文档管理系统只能进行文档级别的操作。
当应用软件发送操作指令到平台软件的方式为生成标准格式的命令串时,可以 用扩展标记语言 (XML ) 来描述命令串。
国际开放标准组织 OASIS颁布的 UOML标准就是一个用 XML来描述命令串 的实施例。 当应用软件欲对文档进行操作时,依照 UOML标准的规定生成相应的 UOML指令, 将该 UOML指令发给文档库系统, 即代表向文档库系统发出了相 应操作指令。
在本发明一实施例中, 每个操作动作都对应一个 XML元素, 每个操作对象也 都对应一个 XML元素; 在命令串中, 将描述操作对象的 XML元"^作为描述操作 动作的 XML元素的子元素。 例如, 可以首先定义动作 INSERT, 其具有以下子元 素 parent (父对象句柄) 、 xobj (插入对象的描述) 以及 pos (插入位置) , 那 么可以用以下命令来完成插入对象的操作:
< INSERT >
<parent val= "123.456.789 〉
<pos val=" 1 "/>
<xobj>
<docset/>
</xobj>
</ INSERT>
需要说明的是, 虽然上述指令是用 XML定义的, 但为了显得更加简洁, 在前面 省 略 了 类 似 "<?xml version="1.0" encoding="UTF-8"?>" 以 及 "xmlns:xsi= "http://www.w3.org/200 l/XMLSchema-instance",,之类的常规 XML格式, 只要是熟悉 XML语法的实施者都可以在实施过程中自行添加。
也可以不用 XML方式描述命令串, 例如改用类似 PostScript那样的方式描述命 令串, 这样上例的操作可以用这样的指令来描述:
/docset, 1, "123.456.789" , /Insert
根据同样的思路,还可以定义出其它类型的命令串格式,甚至还可以不用文本方 式, 而用二进制方式来定义命令串。
在以上的例子中, 操作指令由 "动作 +对象" 方式构成。 在本发明另一个实施例 中, 对每一个操作对象的每一个操作动作都用一个命令串来表示, 如用 "INSERT— DOCSET"来表示插入一个文档集, 该命令的具体定义如下:
一
属性: 无
子元素: arent: 文档库句柄
pos: 插入位置
返回值: 如果执行成功, 则在执行结果中包含一个" handle"子元素,表示新插 入文档集的句柄
这样上例的操作就可以用这样的指令来描述:
< INSERT— DOCSET >
<parent val="123.456.789 >
<pos val=" 1 "/>
</ INSERT— DOCSET >
现在介绍用函数调用的方式来实现接口标准的实例。 以下以 C++语言为例说明, 该实例称为非结构操作接口 (UOI ) 。
首先, 针对操作指令为 "动作 +对象" 方式的情况, 可以首先定义 UOI— Object 作为所有对象的基类, 为每个动作定义了一个函数, 该函数的参数可以是对 类的 指针或引用, 这样该函数就可适用于所有对象。
先定义一个 UOI返回值结构:
struct UOI— Ret {
BOOL m— bSuccess;
CString m— Errlnfo;
}; 一
定义所有 UOI对象的基石出类:
class UOI— Object {
public:
enum Type {
TYPE— DOCBASE,
TYPE:DOCSET,
TYPE=DOC,
TYPE PAGE,
TYPE二 LAYER,
TYPE二 TEXT,
TYPE— CHARSIZE,
Type m— Type;
UOI— Object();
virtual〜 UOI— Object();
static UOI— Object Create(Type objType);
}; 一
然后定义如下几个 UOI 函数表示操作动作: UOI— RET U01_0pen(char *path: BOOL bCreate, HANDLE *pHandle);
UOI— RET UOI— Close(HANDLE handle, HANDLE db— handle);
UOI=RET UOI二 GetHandle(HANDLE hParent, int nPos", HANDLE *pHandle);
, —
UOI二 RET UOI=GetObj (HANDLE handle, UOI— Object *pObj);
UOI二 RET UOI二 GetPageBmp(HANDLE hPage,~RECT rect, void *pBuf);
UOI二 RET UOI二 SetObj (HANDLE handle, UOI— Object *pObj);
UOI二 RET UOf Insert(HANDLE hParent, int nPos, UOI— Object *pObj, HANDLE pHandle— = NULL);" ―
UOI— RET UOI— Delete(HANDLE handle);
UOI:RET UOf_Query(HANDLE hDocbase, const char *strCondition, HANDLE
* phResult);
然后定义各 UOI对象, 以 UOI— Doc为例说明:
class UOI— Doc: public UOI— Object {
public:
UOI— MetaData m— MetaData;
int m— nPages;
UOI— Page **m_pPages;
int m— nFonts;
UOI— Font **m_pFonts;
UOI— Navigation m— Navigation;
UOI— Thread m— Thread;
UOI— MiniPage *m_pMiniPages;
UOI— Signature m— Signature;
int m_nShared;
UOI Obj *m_pShared;
UOI:Doc();
virtual ~UOI_Doc();
}; _
创建新对象的函数为:
HANDLE InsertNewObj (HANDLE hParent, int nPos, UOI— Object:: Type type)
{ 一
UOI— Ret ret;
HADNLEhandle;
UOI Obj *pNewObj = UOI_Obj ::Create(type);
if (pNewObj == NULL) ―
return NULL;
ret = UOI_Insert(hParent, nPos, pNewObj, &handle);
delete pNewObj;
return ret.m— bSuccess? handle: NULL;
} 一
还可以用同样的方法为 Java、 C#、 VB、 Delphi等各种编程语言开发的应用软件 设计各种不同的接口标准。
只要在接口标准中不含有与特定的操作系统(如 WINDOWS , UNIX/LINUX , MAC OS、 SYMBIAN )或特定的硬件平台 (如 x86CPU、 MIPS , POWER PC等)相 关连的特征, 该接口标准就可以具有跨平台性, 使得不同平台上运行的应用软件和 文档库系统都可以统一使用同样的接口标准, 特别是可以让一个平台上运行的应用 软件可以调用另一个平台上运行的文档库系统来执行相应操作。 例如, 应用软件部
, , , 用的是大型机, Linux操作系统, 但应用软件依然可以像调用本地文档库系统一样调 用服务器上的文档库系统来执行相应文档操作。
如果在接口标准中不含有与特定编程语言相关的特征, 则该接口标准还能做 到与编程语言无关。 可以看出, 用命令串的方式容易构造与平台无关、 与编程语 言无关的接口标准, 更具有通用性。 特别是用 XML来构造命令串的话, 由于目 前在各种不同平台、 不同编程语言都存在易于获得的 XML生成解析工具, 该接 口标准可以具有很好的跨平台性和与编程语言无关性。
以上列举了多种接口标准的实现方法,按照类似的思路设计的更多种类的接口标 准也包含在本发明的保护范围之内。
应该理解,可以在上述实例的基础上按同样的思路增加操作指令,也可以简化操 作指令, 特别是文档模型被简化时操作指令也会相应被简化。 最简化情况下只有文 档的创建、 页面的创建、 各版面对象的创建这几个操作指令。
当文档库系统接收到来自应用软件的操作指令后,根据接收到的操作指令,对实 际的存储数据执行操作。
在本发明一实施例中, 用 XML来描述文档数据, 可以完全对照抽象文档建立相 应的 XML树。文档库系统对存储数据执行操作实际上就是对 XML执行相应的操作。 比如, 文档库系统根据应用软件的操作指令执行创建操作, 即在 XML树中增加一个 结点, 该结点与操作指令中指示的操作对象相应。 又比如, 文档库系统根据应用软 件的操作指令执行删除操作, 即在 XML树中删掉相应结点; 执行设置操作, 即在 XML树中设置相应结点的属性; 执行获取操作, 即在 XML树中取出相应结点的属 性并返回给应用软件; 执行查询操作, 即遍历 XML树查找相关结点。
其中, 建立与文档数据对应的 XML树的过程可以是: 首先用 XML来描述每个 对象, 即为每个对象都建立了一个对应的 XML树。 然后根据每个对象对应的 XML 树建立 XML文件。 其中, 在为每个对象建立对应的 XML树时, 有的对象属性比较 简单, 其对应的 XML树就只有根结点, 有的对象比较复杂, 其对应的 XML树还有 子结点。 具体描述方法可以参见前面用 XML来定义操作对象的说明。
如新建一个文档库时就新建一个根结点为文档库对象的 XML文件。文档库对象 的每个子对象都在以文档库对象为根结点的 XML树中有一个对应的结点。 当应用软 件发送的操作指令指示在文档库中插入一个对象(如文字对象) 时, 文档库系统就 将该对象对应的 XML树插入到插入位置的父结点(如层 )之下。 当应用软件发送的 操作指令指示删除一个对象时, 文档库系统就删除该对象对应的结点, 其下属所有 子结点也都被删除, 删除过程是从叶子结点开始自下而上遍历的。 当应用软件发送 的操作指令指示设置一个对象属性时, 文档库系统将该对象对应的结点的属性设置 成该属性; 如果该属性是用子结点表示的, 则设置对应的子结点。 当应用软件发送 的操作指令指示获取一个对象的属性时, 文档库系统访问该对象对应的结点, 根据 该结点的属性和子结点获得该对象的属性。 当应用软件发送的操作指令指示获取一 个对象的句柄时, 文档库系统获取该对象对应的结点的 XML路径。 当应用软件发送 的操作指令指示复制一个对象(如页面)到指定位置时, 文档库系统将该对象对应 的结点开始的整个子树都复制到目标位置对应的父结点 (如文档)之下。 如果操作 指令指示的是将一个对象复制到另一个文档库中, 则文档库系统需要将该子树引用
H 。
的操作为获取指定区域内的版面信息时, 文档库系统先生成一个指定位图格式的空 白位图, 其尺寸和指定区域相同, 然后遍历指定页面的所有版面对象, 凡是位于指 定区域内 (包括只有一部分在该区域内) 的版面对象, 都解释其含义, 并在版面上 相应体现。
在检索查询指令中, 除了常规的关键词检索外, 还可以提供更加丰富的检索手 段。 检索查询操作的操作对象除了是纯文字对象外, 还可以是其他的版面对象, 如 字体对象、 字号对象、 颜色对象、 位置对象等或者多个版面对象的组合。 这样利用 本发明实施例提供的检索查询操作指令, 能更充分地利用文档中蕴含的信息来提供 更为强大的检索手段, 不仅能从文档中提取纯文本信息, 还可以提取其他更为细化 的信息, 如字体信息、 字号信息、 颜色信息、 版面位置信息以及特殊修饰效果信息 等。 如可以检索出 Times New Roman字体的 "Sursen,,、 20磅以上字体的 "Sursen,,、 蓝色的 "Sursen" 、 位于页脚的" Sursen"、 空心字的" Sursen"、 压图的 "Sursen"等等。
下面以 A软件创建一个文档并且 B软件对其进行编辑为例说明本发明实施例中 文档处理系统的工作流程。 在本例中选用 UOI作为接口标准:
A软件发出指令 UOI— Open("c:\\sample\\mydocbase.sep", TRUE, &hDocBase) , 创 建文档库 c:\sample\mydocbase.sep, 夺其句柄存放在 hDocBase;
A 软件发 出 指 令 hDocSet = InsertNewObj (hDocBase, 0, UOI Obj:: TYPE— DOCSET), 在文档库 hDocBase中新建文档集, 将其句柄存放在 hDocSet;
A软件发出指令 hDoc = InsertNewObj(hDocSet, 0, UOI— Obj:: TYPE— DOC) , 在文 档集 hDocBase中新建文档,将其句柄存放在 hDoc;
定义 age对象: UOI— Page page;
page. size. w=w;
page.size.h=h;
A软件发出指令 UOI— Insert(hDoc, 0, &page, &hPage) , 在文档 hDoc中新建一页 , 版心大小是宽 w,高 h, 将 句柄存放在 hPage;
A软件发出指令 hLayer = InertNewObj(hPage, 0, UOI Obj:: TYPE— LAYER) ,在页 hPage中创建一层, 将其 ^柄存放在 hLayer;
定义 charSize对象: UOI— CharSize charSize;
charSize.m— Width = charSize. m— Height = s;
A软件发出指令 UOI_Insert(hLayer, 0, &charSize), 设置字号为 s;定义 text对象: UOI— Text text;
text.m_pText = Duplicate ("书生意气挥斥方遒");
text.m— Encoding = UOI— Text:: ENCODE— GB 13000;
text, m— Start, x = xl;
text.m— Start.y = yl;
A软件发出指令 UOI— Insert(hLayer, 1, &text), 在坐标 (xl,yl)位置插入文字串"书 生意气挥斥方遒";
A软件发出指令 UOI— Close(hDocBase) , 关闭文档库 hDocBase;
B软件发出指令 UOI— Open("c:\\sample\\mydocbase.sep", FALSE, &hDocBase),打 开文档库 c:\sample\mydocbase.sep, 夺其句柄存放在 hDocBase;
B软件发出指令 UOI_GetHandle(hDocBase, 0, &hDocSet), 获取文档库 hDocBase
,
B软件发出指令 UOI— GetHandle(hDocSet, 0, &hDoc) , 获取文档集 hDocSet第一 个文档的指针, 将其句柄¾ "放在 hDoc;
B软件发出指令 UOI— GetHandle(hDoc, 0, &hPage) , 获取文档 hDoc第一页的指 针, 将其句柄存放在 hPage;
B软件获取该页版面位图 UOI— GetPageBmp(hPage, rect, buf) , 用于显示该页;
Β软件发出指令 UOI— GetHandle(hPage, 0, &hLayer) , 获取 hPage第一层的指针, 将其句柄存放在 hLayer;
B软件发出指令 UOI— GetHandle(hLayer, 0, &hObj) , 获取第一个版面对象的句柄 hObj;
B软件发出指令 UOI— GetObjType(hObj, &type) , 获取 hObj的类型;
B软件发现这是一个字号对象 UOI— GetObj(hObj, &charSize) , 获取该对象; 为 charSize.m— Height U武值: charSize.m— Height *= 2;
B软件发出指"^ U0I_Set0bj(h0bj, &charSize) , 将字高放大一倍;
Β软件发出指令 UOI— GetPageBmp(hPage, rect, buf) , 重新获取版面位图并显示, 这时会发现屏幕上的 "书 ΐ意气挥斥方遒 "变成长体字了。
下面进一步详细介绍本发明上述实施例描述的对层对象的操作。 当应用软件欲 编辑文档时, 可以发送一系列指令给文档库系统, 指示在现有文档的基础上新增加 一层, 并指示将新编辑的内容存放在新建的一层中, 文档库系统根据应用软件的指 令, 新增一层, 将新编辑内容存放在新增加的一层中, 不修改和删除前面各层的内 容。
为了确保每一层内容在生成后没有被修改、 删除, 可以对每一层做数字签名。 可以仅对本层内容进行签名, 优选地, 也可以是对本层以及本层之前生成的所有层 的内容一起签名。 签名以后并不妨碍对文档做进一步的批注等编辑, 只要新的内容 是位于新建的层, 没有修改破坏签名时存在的各层, 签名依然是有效的, 但签名者 只对签名以前的内容负责, 不对签名以后的内容负责。
上述的技术方案是一种极为严格的只加不改方案, 在本发明另一个实施例中, 在文档库系统根据应用软件的指令对层内容进行数字签名之前, 应用软件可以发送 指令到文档库系统, 以删除或修改本层已编辑的内容。 在本发明另一实施例中, 即 使一应用软件已完成对每一层的编辑并已指示文档库系统对该层进行了数字签名, 该应用软件仍可以发送指令到文档库系统, 以删除或修改该层版面对象, 并在删除 或修改之后, 重新签名。 但其他应用软件不可以删除或修改该层。
利用以上技术方案, 文档中的已有内容不能被修改, 或者即使不考虑与纸张特 性的兼容以及数字签名问题, 需要修改的话也只能做版面级编辑, 即对每个版面对 象的编辑(增、 删、 改)都不会对其它版面对象产生影响。
在本发明另一实施例中, 应用软件可以首先在源文件(按照应用软件自有的格 式存储并记录了各对象之间完整关系的文件,例如. doc文件 )上编辑文档的初始内容 或新增内容。 并在初始编辑完成后, 应用软件发送一系列指令给文档库系统, 指示 新建一层, 并将描述所编辑内容版式的对象存放在新建的一层中, 同时指示在文档 对象中新建一个源文件子对象, 以嵌入源文件; 文档库系统接收到应用软件的指令 后, 新建一层, 将描述所编辑内容版式的对象存放在新建的一层中 (例如在 XML树
. 、 , 、 文件对象对应的结点, 将该源文件嵌入(例如用二进制数据的方式整体嵌入)到该 与源文件对象对应的结点中。
当应用软件欲再次编辑该文档时, 发送指令到平台软件, 以获取源文件, 文档 库系统从文档中取出该源文件, 将所述源文件返回给应用软件。 应用软件就可以直 接编辑源文件。 编辑完成后, 应用软件发送一系列指令, 指示根据编辑后的结果更 新该层内容(例如, 首先指示全部删除该层中的版面对象, 然后指示增加描述编辑 后内容版式的对象) , 并将新修改的源文件嵌入到源文件子对象中, 文档库系统执 行这一系列操作。 如此循环往复, 就可以用原有应用软件按照原有方式对文档中的 已有内容进行编辑。
采用上述技术方案, 可以最大程度地实现文档的互操作性。 在有足够安全权限 的前提下, 可以实现以下功能: 对任何文档, 用任何应用软件都可以正确打开、 显 示、 打印。 对任何文档, 用任何应用软件都可以新添加任何内容, 而且不会破坏文 档已有签名。 对任何文档, 在不必考虑文档已有签名 (没有签名或者虽有签名但允 许破坏) 的前提下, 用任何应用软件都可以对文档已有内容进行版面级编辑。 对任 何文档, 使用文档已有内容的原始编辑软件可以对该内容进行原有方式的编辑。
由此可见, 通过对层的管理, 对文档的管理、 互操作、 安全设置都带来极大的便 利。 利用本发明实施例提供的方法, 每个应用软件都只在现有文档内容基础上添加 新的内容, 但不修改、 不删除已有的内容, 使文档的一个页面就像一张纸一样, 可 以由不同的人用不同的笔在纸上不断写写画画, 但谁都不能修改、 删除已有内容。 即, 本发明实施例提供的这种方法支持 "只加不改", 能够更好地模拟纸张的特性。
将页分成多层后,可以实现对不同层实施不同管理和控制, 更便于不同应用软件 对同一页的操作(可以设计成不同应用软件管理和维护不同层), 为以源文件方式进 行编辑提供了便利, 也是一种很好的保留历史痕迹的方式(不同环节或不同时期或 不同主体编辑的内容放在不同层)。
为了进一步保证文档处理系统的安全性,本发明以下实施例提供了一种文档安全 技术。 即文档库系统在接收到应用软件发送的操作指令后, 检查该操作指令指示的 文档数据的操作是否被允许; 如果是, 则按照接收到的操作指令, 执行对文档数据 的操作; 如果否, 则拒绝执行对文档数据的操作。
当接收到应用软件发送的操作指令, 以指示创建角色对象时, 文档库系统根据 指令, 创建角色对象。 进一步的, 文档库系统在创建角色对象后向应用软件返回一 个密钥, 作为应用软件以该角色身份登录的依据, 该密钥通常是 PKI的私钥, 也可 以是登录口令或其它形式。 当密钥为 PKI的私钥时, 文档库系统可以生成一对随 机公私钥对(例如 512位的 RSA密钥 ) , 将公钥存储在角色对象中, 将私钥返回给 应用软件。
当应用软件以某一角色身份登录时, 可以采用"挑战-应答"机制, 以更好地保护 私钥的安全性。 即接收到应用软件的登录指令时, 文档库系统用相应角色对象中的 公钥加密一块随机数据(如 128 字节)发给应用软件, 应用软件解密后返回给文档 库系统, 文档库系统比较验证, 如果应用软件解密正确, 则表明应用软件确实拥有 该角色对应的私钥, 登录成功。 为保险起见, 该认证过程可以重复多次, 多次全部 通过才算登录成功。 "挑战 -应答 "机制也可以用以下方式实现,文档库系统将一块随
, ,
存的角色的公钥解密, 如果解密正确, 则表明应用软件确实拥有该角色对应的私钥。 如果角色的密钥是登录口令, 则需要用户输入正确的登录口令。
应用软件还可以向文档库系统发送指令, 指示向某一角色授予目标权限; 该目 标权限可以是针对文档数据(一个或多个对象) , 平台软件接收到该指令后, 授予 角色目标权限。
这样, 文档库系统检查操作指令指示的对文档数据的操作是否被允许的一种实 现方式可以是: 简单记录登录角色对文档数据的权限, 如果指令指示的文档数据的 操作符合权限则允许相应操作, 否则报错返回。 应用软件可以以多个角色登录, 此 时拥有的权限可以是各角色权限的并集, 也可以是交集或其它组合, 由事先设定的 规则确定。
一种更好的实现方式是对文档数据加密, 并用密钥来控制权限,如果该角色没有 相应密钥就没有对应的权限, 这种方式抗攻击能力要更强。 具体方案为:
利用一对 PKI 密钥对, 用加密密钥对某一数据区域(通常对应抽象文档中的一 个子树) 进行加密。 对具有读权限的角色, 授予其解密密钥, 该角色可以用该密钥 解密该数据区域, 从而正确读取这些数据。 对具有写权限的角色, 将授予其加密密 钥, 该角色可以将修改后的数据用该密钥加密, 从而可以正确写入该区域的数据。
鉴于 PKI 的加密 /解密效率较低, 为提高运行效率, 也可以用对称密钥来对该 数据区域加密, 加密密钥用于对该对称密钥进行加密, 解密密钥用于解密经过加密 后的密钥数据, 从而获得正确的对称密钥。 为防止只有读权限的角色在获得对称密 钥后用其修改数据, 可以用加密密钥来对该数据区域进行数字签名, 每次拥有写权 限的角色修改该数据区域后都重新做一次签名, 从而确保数据不会被没有写权限的 角色篡改。
当授予某一角色加密密钥或解密密钥时,可以用该角色的公钥对该密钥加密后存 储, 这样只有拥有该角色的私钥时才能取出该密钥。
当接收到应用软件发送的指令,描述对某一对象进行签名时,文档库系统对以该 对象为根结点的子树对应的存储数据进行签名。
为了能够使签名不受具体物理存储方式的影响, 需要先做一个正则化,使得逻辑 上等效的变化(例如存储位置的改变导致相应指针的变化) 不会影响签名有效性。
当需要签名的子树对应的存储数据也是树状结构(例如前面提到的 XML树 )时, 该正则化的方法可以是遍历 (例如按深度优先或宽度优先遍历)存储数据中需要签 名的结点子树中的各个结点结点 (对应目标对象及其各个子对象), 按照遍历顺序依 次计算每个结点结点的正则结果并连接起来。
其中, 对子树的某一结点结点计算正则结果的方法为: 先计算该结点结点的子 结点结点数的 HASH值, 然后再依次计算该结点结点类型及其各个属性的各自的 HASH值并按顺序连接在该结点结点的子结点数的 HASH值的后面, 再计算该连接 结果的 HASH值, 得到该结点的正则结果。 如果需要对子树中的某个结点引用的对 象也一起做签名, 则可以将该结点引用的对象也作为该结点的一个子结点来处理, 方法同上。
对子树的某一结点计算正则结果的方法还可以是: 将该结点的子结点数、 类型 及其各属性用分隔符隔开后按照顺序连接起来, 计算该连接的结果的 HASH值, 得
。
对子树的某一结点计算正则结果的方法还可以是: 将该结点的子结点数、 类型 及其各属性各自的长度用分隔符隔开后按照顺序连接起来, 再与子结点数、 类型、 各属性连接起来, 即得到该结点的正则结果。
总之, 计算子树的某一结点正则结果的方法可以采用以下各种方案中的任意一 种: 对树的某一结点, 其子结点数、 类型、 各属性, 子结点数 /类型 /各属性的长 度(可选的), 原值或经过特定变换(如 HASH、 压缩), 按照预定顺序连接起来(直 接连接或用分隔符隔开)。 上述预定顺序的意思是, 子结点数长度、 类型长度、 各属 性长度、 子结点数、 类型、 各属性可以按任意顺序排列, 只要是预定的顺序即可。
不难给出上述方案的各种变化方式,如每个结点的子结点数用分隔符隔开后按照 深度优先的顺序连接起来, 再与各结点其它数据的正则结果连接起来。 总之, 只要 对该子树中的所有结点的子结点数、 类型和各属性, 按照确定的方法排列在一起就 属于本实施例的变化。
正则化以后, 再做 HASH并用角色的私钥进行签名的处理可采用现有技术, 这 里不再贅述。
在本发明另一实施例中, 对所述子树对应的存储数据进行签名的方法是, 遍历 所述子树中的每个结点, 对该结点对应的存储数据进行签名, 并将签名结果连接起 来。 所述遍历与连接签名结果的方法与上述实施例相类似。
文档库系统还具备对文档的信息安全管理控制功能,如基于角色的细粒度权限管 理, 并在接口标准中定义了相关的操作指令。
利用本发明实施例提供的文档安全技术, 可以细化到文档内的任意粒度, 对文 档内的任意逻辑数据设定加密和签名, 从而提供细粒度的安全管理手段。 另外, 本 发明实施例提供的文档安全技术将信息安全集成在文档处理的核心层, 将安全机制 与文档操作紧密地结合为一体, 同时有更多的空间部署安全管理技术, 相关代码也 能隐藏得更深, 能更有效地防御非法攻击, 提高安全可靠度。
需要说明的是, 上述实施例所描述的文档安全技术, 如基于角色的权限管理、 角色的认证方式、 多重角色登陆、 对树结构的正则化技术、 细粒度的权限管理单元、 基于加密的权限设置等, 不仅适用于本发明实施例中的文档处理系统, 还适用于本 发明实施例中的非结构化数据处理系统, 以及更为广泛的其它应用场合。
本领域技术人员应当明白, 以上基于书面文档和文档库系统描述的实施例记载
、 以上所 仅为本;^明的较佳""实施例而、已, '并不用以限制本发明, 凡在本发明 的精神和原则之内所作的任何修改、 等同替换和改进等, 均应包含在本发明的保 护范围之内。
Claims
1、 一种非结构化数据处理方法, 其特征在于, 包括:
应用软件, 发送至少一个指令到平台软件, 发起对非结构化数据的操作; 其 中所述至少一个指令与所述非结构化数据的存储形式无关;
平台软件, 根据所述至少一个指令, 对所述非结构化数据执行所述操作; 其 中, 所述平台软件具有操作所述非结构化数据的内部数据的功能。
2、 根据权利要求 1 所述的方法, 其特征在于, 所述至少一个指令描述了对 与所述非结构化数据相对应的抽象信息的操作, 所述抽象信息与所述非结构化数 据的存储形式无关;
在所述平台软件, 根据所述至少一个指令, 对所述非结构化数据执行所述操 作之前, 所述方法进一步包括:
所述平台软件将所述至少一个指令描述的对所述抽象信息的操作对应到对 非结构化数据的所述操作。
3、 根据权利要求 2 所述的方法, 其特征在于, 在对非结构化数据执行所述 操作之前, 所述平台软件建立所述抽象信息与所述非结构化数据的对应关系。
4、 根据权利要求 3 所述的方法, 其特征在于, 所述平台软件建立所述抽象 信息与所述非结构化数据对应关系为:
平台软件打开所述非结构化数据、 解析所述非结构化数据并形成所述抽象信 息; 或,
平台软件接收到来自应用软件的、 指示创建抽象信息的指令, 根据所述指令, 创建非结构化数据。
5、 根据权利要求 1 或 2所述的方法, 其特征在于, 所述非结构化数据的存 储形式是非结构化数据的存储格式。
6、 根据权利要求 1 或 2所述的方法, 其特征在于, 所述非结构化数据为一 个或多个磁盘文件, 部分磁盘文件, 数据库的一个或多个字段, 或磁盘分区的一 个区域。
7、 根据权利要求 2 所述的方法, 其特征在于, 所述抽象信息描述了所述非 结构化数据的一种或多种抽象特征。
8、 根据权利要求 7所述的方法, 其特征在于, 所述抽象特征包括呈现效果、 和 /或安全控制、 和 /或组织管理、 和 /或互动信息、 和 /或元数据。
9、 根据权利要求 7或 8所述的方法, 其特征在于, 所述非结构化数据包括 书面文档、 多维数据、 音频数据、 和 /或视频数据。
10、根据权利要求 8所述的方法, 其特征在于, 所述呈现效果包括版式效果、 声音效果、 动态视觉效果、 和 /或静态多维视觉效果。
1 1、 根据权利要求 2至 10任一所述的方法, 其特征在于, 所述抽象信息由 一个或多个对象组成。
12、 根据权利要求 1 1 所述的方法, 其特征在于, 所述平台软件具备执行对 抽象信息任意对象的增加、 删除、 读和写操作的功能。
13、 根据权利要求 6或 7所述的方法, 其特征在于, 所述抽象信息为树型结
14、 根据权利要求 2至 13任一所述的方法, 其特征在于, 所述抽象信息符 合抽象模型;
所述抽象信息描述了所述非结构化数据的一种或多种抽象特征为: 用所述抽 象模型描述所述一种或多种抽象特征得到所述抽象信息。
15、 根据权利要求 14 所述的方法, 其特征在于, 所述抽象模型定义了所述 对象的类型以及所述对象的关系。
16、 根据权利要求 14或 15所述的方法, 其特征在于, 所述抽象模型能描述 任意可呈现效果。
17、 根据权利要求 1 1 所述的方法, 其特征在于, 所述对象包括: 代表文档 的对象, 代表页的对象以及描述版面的对象。
18、 根据权利要求 17 所述的方法, 其特征在于, 所述描述版面的对象包括 描述文字的对象、 描述图形的对象和描述图像的对象中任一项或任几项的组合。
19、 根据权利要求 18 所述的方法, 其特征在于, 所述描述版面的对象还进 一步包括设置状态的对象、 记录脚本信息的对象、 插件对象、 嵌入式对象、 记录 导航信息的对象、 记录书签信息的对象、 记录链接信息的对象、 描述流媒体信息 的对象、 记录二进制数据流的对象中任一项或任几项的组合。
20、 根据权利要求 11至 19任一所述的方法, 其特征在于, 所述对象包括代 表文档库的对象和 /或代表文档集的对象。
21、 根据权利要求 17 所述的方法, 其特征在于, 所述对象进一步包括代表 层的对象和 /或代表对象流的对象。
22、 根据权利要求 11至 21任一所述的方法, 其特征在于, 所述对象包括代 表角色的对象以及代表角色访问权限的对象。
23、 根据权利要求 21 所述的方法, 其特征在于, 所述角色的访问权限包括 所述角色针对所述抽象信息的至少一个对象的访问权限。
24、 根据权利要求 22 所述的方法, 其特征在于, 所述角色的访问权限包括 读权限、 写权限、 再授权、 收回授权中任一项或任几项的组合。
25、 根据权利要求 1 至 24任一所述的方法, 所述至少一个指令符合一个接 口标准, 所述接口标准定义了所述至少一个指令的形式。
26、 根据权利要求 25 所述的方法, 其特征在于, 分别定义操作动作和操作 对象, 所述至少一个指令由操作动作和操作对象的组合形式构成。
27、 根据权利要求 26 所述的方法, 其特征在于, 为每一个对象的每一个合 法操作定义一个指令。
28、 根据权利要求 25 所述的方法, 其特征在于所述接口标准进一步定义了 应用软件发送指令到平台软件的方式。
29、 根据权利要求 28 所述的方法, 其特征在于, 所述应用软件发送指令到 平台软件的方式是:
按照预定义的标准格式生成命令串, 应用软件通过发送预定义格式的命令串 到平台软件的方式来发送指令; 或
30、 根据权利要求 29所述的方法, 其特征在于, 所述命令串为字符串。
31、 根据权利要求 30所述的方法, 其特征在于, 所述字符串用 XML描述。
32、 根据权利要求 31 所述的方法, 其特征在于, 所述预定义指令包含操作 动作和操作对象的组合方式, 所述操作动作对应一个 XML元素, 所述操作对象 为所述操作动作对应的 XML元素的子元素。
33、 根据权利要求 1 至 32任一所述的方法, 其特征在于, 所述操作包括: 获取信息、 设置对象属性、 插入对象、 删除对象以及查询中任一项或任几项的组 合。
34、 根据权利要求 25至 33任一所述的方法, 其特征在于, 所述接口标准定 义的指令中包括创建任意版式所需的指令。
35、 根据权利要求 1 至 34任一所述的方法, 其特征在于, 所述平台软件进 一步为应用软件返回操作结果。
36、 一种非结构化数据处理系统, 其特征在于, 包括:
应用软件,用于发送至少一个指令到平台软件,发起对非结构化数据的操作; 其中所述至少一个指令与非结构化数据的存储形式无关;
平台软件,用于根据所述至少一个指令,对所述非结构化数据执行所述操作; 其中, 所述平台软件具有操作所述非结构化数据的内部数据的功能。
37、一种平台软件, 其特征在于, 具有操作非结构化数据的内部数据的功能, 用于,
接收应用软件发送的至少一个指令, 其中, 所述至少一个指令指示对非结构 化数据进行操作, 并且符合与非结构化数据的存储形式无关;
根据所述至少一个指令, 对所述非结构化数据执行所述操作。
38、 一种应用软件, 其特征在于, 用于:
发送至少一个指令到平台软件, 发起对非结构化数据进行操作; 其中, 所述 至少一个指令符合与非结构化数据的存储形式无关; 并且所述平台软件具有操作 所述非结构化数据的内部数据的功能;
其中,根据所述至少一个指令,平台软件对所述非结构化数据执行所述操作。
39、 一种非结构化数据处理方法, 其特征在于, 包括:
第一应用软件发送第一指令到平台软件, 以创建第一抽象信息;
所述平台软件接收所述第一指令, 创建与所述第一抽象信息对应的非结构化 数据;
第二应用软件发送第二指令到所述平台软件以打开所述创建的非结构化数 据;
所述平台软件接收所述第二指令, 打开并解析所述非结构化数据, 生成与所 述非结构化数据对应的第二抽象信息;
其中所述第一指令与第二指令符合相同的接口标准。
40、 根据权利要求 39 所述的方法, 其特征在于, 所述第一抽象信息与所述 第二抽象信息相同或相似。
41、 根据权利要求 39 所述的方法, 其特征在于, 所述非结构化数据包含可 呈现信息。
42^Q„H6^8要求 41 所述的方法, 其特征在于, 所述 ^T/CS?^9^2,1,5^所述 第二应用软件呈现所述存储数据的效果相同或相似。
43、 一种非结构化数据处理系统, 其特征在于, 包括:
第一应用软件, 用于发送第一指令到平台软件, 以创建第一抽象信息; 所述平台软件, 用于接收所述第一指令, 创建与所述第一抽象信息对应的非 结构化数据;
第二应用软件, 用于发送第二指令到平台软件以打开所述创建的非结构化数 据;
所述平台软件, 进一步用于接收所述第二指令, 打开并解析所述非结构化数 据, 生成与所述存储数据对应的第二抽象信息;
其中所述第一指令与第二指令符合相同的接口标准。
44、 一种非结构化数据处理方法, 其特征在于, 包括:
第一平台软件解析以第一格式存储的第一非结构化数据, 生成与所述非结构 化数据对应的第一抽象信息;
所述应用软件发送第一指令到所述第一平台软件, 以获取所述第一抽象信息 的所有信息; 发送第二指令到第二平台软件, 创建与所述第一抽象信息相同或相 似的第二抽象信息;
所述第二平台软件根据所述第二指令, 以创建与所述第二抽象信息对应并按 第二格式存储的第二非结构化数据;
其中所述第一指令和第二指令符合相同的接口标准。
45、 一种非结构化数据处理系统, 其特征在于, 包括:
第一平台软件, 用于解析以第一格式存储的第一非结构化数据, 生成与所述 存储数据对应的第一抽象信息;
所述应用软件, 用于发送第一指令到所述第一平台软件, 以获取所述第一抽 象信息的所有信息; 发送第二指令到第二平台软件, 以创建与所述第一抽象信息 相同或相似的第二抽象信息;
所述第二平台软件, 用于根据所述第二指令, 创建与所述第二抽象信息对应 并按第二格式存储的第二非结构化数据;
其中所述第一指令和第二指令符合相同的接口标准。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09757092.3A EP2309398A4 (en) | 2008-06-05 | 2009-06-05 | METHOD AND SYSTEM FOR IMPLEMENTING UNSTRUCTURED DATA |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810114451.2 | 2008-06-05 | ||
CN200810114451.2A CN101599011B (zh) | 2008-06-05 | 2008-06-05 | 文档处理系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009146658A1 true WO2009146658A1 (zh) | 2009-12-10 |
Family
ID=41397741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2009/072159 WO2009146658A1 (zh) | 2008-06-05 | 2009-06-05 | 一种非结构化数据处理方法和系统 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2309398A4 (zh) |
CN (1) | CN101599011B (zh) |
WO (1) | WO2009146658A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111914305A (zh) * | 2020-09-23 | 2020-11-10 | 江西金格科技股份有限公司 | 一种基于uof文档进行国密电子签章处理系统及方法 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750362B (zh) * | 2012-06-12 | 2014-04-30 | 北京信息科技大学 | 一种文档互操作性度量方法 |
CN104463021A (zh) * | 2012-06-19 | 2015-03-25 | 张家港市鸿嘉数字科技有限公司 | 一种高安全性电子签名防篡改系统 |
CN103546502B (zh) * | 2012-07-11 | 2017-02-08 | 中国电信股份有限公司 | 元数据共享的方法和云存储服务器 |
US20140026041A1 (en) * | 2012-07-17 | 2014-01-23 | Microsoft Corporation | Interacting with a document as an application |
TWI567563B (zh) * | 2012-08-10 | 2017-01-21 | A user input screen generation system and a method thereof | |
CN103310019B (zh) * | 2013-07-04 | 2017-04-12 | 浙江省方大标准信息有限公司 | 面向检测机构标准信息与知识服务系统及方法 |
CN103310020B (zh) * | 2013-07-04 | 2016-09-28 | 浙江省方大标准信息有限公司 | 标准信息同步及状态变更预警系统及方法 |
US9740995B2 (en) | 2013-10-28 | 2017-08-22 | Morningstar, Inc. | Coordinate-based document processing and data entry system and method |
CN104268162A (zh) * | 2014-09-05 | 2015-01-07 | 广州三星通信技术研究有限公司 | 用于数据存储的方法和装置 |
CN104320402B (zh) * | 2014-10-31 | 2017-11-10 | 北京思特奇信息技术股份有限公司 | 一种基于二进制算法的服务接口访问控制方法及系统 |
CN105550241B (zh) * | 2015-12-07 | 2019-06-25 | 珠海多玩信息技术有限公司 | 多维数据库查询方法及装置 |
US10296176B2 (en) * | 2017-01-30 | 2019-05-21 | Microsoft Technology Licensing, Llc | Navigational aid for a hinged device via semantic abstraction |
CN107423271B (zh) * | 2017-08-01 | 2020-08-21 | 北京信息科技大学 | 文档生成方法和装置 |
CN107832272A (zh) * | 2017-11-02 | 2018-03-23 | 山东浪潮云服务信息科技有限公司 | 基于国产cpu的多格式文件自动转换嵌入流式文件方法 |
CN108009916B (zh) * | 2017-12-27 | 2021-08-27 | 福建省农村信用社联合社 | 一种基于事务动态调整的通用支付记账的方法以及系统 |
CN110851400B (zh) * | 2018-07-25 | 2023-01-17 | 北京国双科技有限公司 | 文本数据的处理方法及装置 |
CN110147334B (zh) * | 2019-05-08 | 2021-10-08 | 北京百度网讯科技有限公司 | 一种编辑内容的存储方法及终端 |
CN110177100B (zh) * | 2019-05-28 | 2022-05-20 | 哈尔滨工程大学 | 一种协同网络防御的安全设备数据通信协议 |
CN111125031B (zh) * | 2019-12-24 | 2020-10-23 | 珠海大横琴科技发展有限公司 | 一种对象存储方法、装置、电子设备和存储介质 |
CN114218895B (zh) * | 2021-11-22 | 2022-08-19 | 慧之安信息技术股份有限公司 | 对uof文档进行转换的方法 |
CN117272073B (zh) * | 2023-11-23 | 2024-03-08 | 杭州朗目达信息科技有限公司 | 文本单位语义距离预计算方法及装置、查询方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967535A (zh) * | 2005-11-17 | 2007-05-23 | 国际商业机器公司 | 使用文本分析从源文档中识别相关文档集合的系统和方法 |
CN1979479A (zh) * | 2005-12-09 | 2007-06-13 | 北京书生国际信息技术有限公司 | 文档处理系统和文档处理方法 |
CN101055578A (zh) * | 2006-04-12 | 2007-10-17 | 龙搜(北京)科技有限公司 | 基于规则的文档内容挖掘器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7055095B1 (en) * | 2000-04-14 | 2006-05-30 | Picsel Research Limited | Systems and methods for digital document processing |
JP5530101B2 (ja) * | 2005-12-05 | 2014-06-25 | サーセン コーポレイション | 文書処理システム及びその方法 |
CN100547590C (zh) * | 2005-12-05 | 2009-10-07 | 北京书生国际信息技术有限公司 | 文档处理系统 |
-
2008
- 2008-06-05 CN CN200810114451.2A patent/CN101599011B/zh active Active
-
2009
- 2009-06-05 WO PCT/CN2009/072159 patent/WO2009146658A1/zh active Application Filing
- 2009-06-05 EP EP09757092.3A patent/EP2309398A4/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967535A (zh) * | 2005-11-17 | 2007-05-23 | 国际商业机器公司 | 使用文本分析从源文档中识别相关文档集合的系统和方法 |
CN1979479A (zh) * | 2005-12-09 | 2007-06-13 | 北京书生国际信息技术有限公司 | 文档处理系统和文档处理方法 |
CN101055578A (zh) * | 2006-04-12 | 2007-10-17 | 龙搜(北京)科技有限公司 | 基于规则的文档内容挖掘器 |
Non-Patent Citations (1)
Title |
---|
See also references of EP2309398A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111914305A (zh) * | 2020-09-23 | 2020-11-10 | 江西金格科技股份有限公司 | 一种基于uof文档进行国密电子签章处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101599011B (zh) | 2016-11-16 |
EP2309398A1 (en) | 2011-04-13 |
EP2309398A4 (en) | 2015-08-05 |
CN101599011A (zh) | 2009-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2009146658A1 (zh) | 一种非结构化数据处理方法和系统 | |
US20080270463A1 (en) | Document processing system and method therefor | |
US8645344B2 (en) | Document processing system and method therefor | |
US8171389B2 (en) | Method of hierarchical processing of a document and system therefor | |
US11586800B2 (en) | Document architecture with fragment-driven role based access controls | |
US20090320141A1 (en) | Document data security management method and system therefor | |
CN1979478B (zh) | 文档处理系统和文档处理方法 | |
CN1979511B (zh) | 一种文档数据安全管理系统和方法 | |
US20080263333A1 (en) | Document processing method | |
US9081977B2 (en) | Method and apparatus for privilege control | |
CN100507913C (zh) | 一种文档处理方法及系统 | |
CN1979479B (zh) | 文档处理系统和文档处理方法 | |
CN102043821B (zh) | 一种显示文档的方法 | |
CN101982818A (zh) | 一种文档处理的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09757092 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2009757092 Country of ref document: EP |