US9864793B2 - Language tag management on international data storage - Google Patents

Language tag management on international data storage Download PDF

Info

Publication number
US9864793B2
US9864793B2 US14/100,157 US201314100157A US9864793B2 US 9864793 B2 US9864793 B2 US 9864793B2 US 201314100157 A US201314100157 A US 201314100157A US 9864793 B2 US9864793 B2 US 9864793B2
Authority
US
United States
Prior art keywords
language
tags
records
tag
language tag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US14/100,157
Other versions
US20150142813A1 (en
Inventor
Amanda Y. Burgmeier
Su Liu
Kiai Weidemann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US14/100,157 priority Critical patent/US9864793B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BURGMEIER, AMANDA Y., LIU, Su, WEIDEMANN, KIAI
Priority to DE102014116369.9A priority patent/DE102014116369A1/en
Publication of US20150142813A1 publication Critical patent/US20150142813A1/en
Priority to US15/803,576 priority patent/US10621211B2/en
Priority to US15/803,598 priority patent/US10621212B2/en
Application granted granted Critical
Publication of US9864793B2 publication Critical patent/US9864793B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • G06F17/30598
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • G06F17/30011

Definitions

  • Metadata management is often used for data categorization.
  • language tags have been used in metadata to classify, archive, categorize, and process collected international documents in text, graphic, audio, and video stream data formats under certain language, script, territory, and encoding categories.
  • the language tag may be embedded and/or integrated into collected information to support networked information processing and management.
  • HTML and XML language tags may indicate the language of text or other items in HTML and XML documents.
  • a method and technique for language tag management on international data storage includes: accessing a standardized language tag repository to identify changes in repository language tags; searching records of a data source categorized using language tags to identify language tags present in records of the data source; determining whether the language tags present in the records of the data source are inconsistent with the repository language tags; responsive to determining that the language tags present in the records of the data source are inconsistent with the repository language tags, determining a language tag update policy for the data source; and performing a language tag update process for the records according to the language tag update policy to re-categorize the records based on the repository language tags.
  • FIG. 1 is an embodiment of a network of data processing systems in which the illustrative embodiments of the present disclosure may be implemented;
  • FIG. 2 is an embodiment of a data processing system in which the illustrative embodiments of the present disclosure may be implemented
  • FIG. 3 is a diagram illustrating an embodiment of a data processing system for language tag management in which embodiments of the present disclosure may be implemented;
  • FIG. 4 is a diagram illustrating a language tag update process according to an embodiment of the present disclosure
  • FIG. 5 is a diagram illustrating another embodiment of a language tag update process using an abstraction layer for language tags according to the present disclosure
  • FIG. 6 is a flow diagram illustrating a method for language tag management according to the present disclosure.
  • FIG. 7 is a flow diagram illustrating another embodiment of a method for language tag management according to the present disclosure.
  • Embodiments of the present disclosure provide a method, system and computer program product for language tag management on international data storage. For example, embodiments of the present disclosure enhance language tag management, update new language tags in old metadata, and re-categorize data collected from worldwide sources. For example, embodiments of the present disclosure enable stored metadata with language tags to be managed and/or updated by detecting new language tags in language tag repositories, dynamically synchronizing local language tag tables from the language tag repositories, and dynamically updating and/or re-categorizing the stored data using the new language tags according to profiles/policies established for the data source.
  • standardized language tag repositories are accessed to identify changes in repository language tags; records of a data source categorized using language tags are searched to identify language tags present in records of the data source; a determination is made whether the language tags present in the records of the data source are inconsistent with the repository language tags; and if so, a language tag update policy for the data source is determined a language tag update process for the records according to the language tag update policy is performed to re-categorize the records based on the repository language tags.
  • aspects of the present disclosure may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
  • the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
  • a computer readable storage medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus or device.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • LAN local area network
  • WAN wide area network
  • Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
  • These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • FIGS. 1-2 exemplary diagrams of data processing environments are provided in which illustrative embodiments of the present disclosure may be implemented. It should be appreciated that FIGS. 1-2 are only exemplary and are not intended to assert or imply any limitation with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environments may be made.
  • FIG. 1 is a pictorial representation of a network of data processing systems in which illustrative embodiments of the present disclosure may be implemented.
  • Network data processing system 100 is a network of computers in which the illustrative embodiments of the present disclosure may be implemented.
  • Network data processing system 100 contains network 130 , which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100 .
  • Network 130 may include connections, such as wire, wireless communication links, or fiber optic cables.
  • server 140 and server 150 connect to network 130 along with data store 160 .
  • Server 140 and server 150 may be, for example, IBM® Power SystemsTM servers.
  • clients 110 and 120 connect to network 130 .
  • Clients 110 and 120 may be, for example, personal computers or network computers.
  • server 140 provides data and/or services such as, but not limited to, data files, operating system images, and applications to clients 110 and 120 .
  • Network data processing system 100 may include additional servers, clients, and other devices.
  • network data processing system 100 is the Internet with network 130 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, governmental, educational and other computer systems that route data and messages.
  • network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
  • FIG. 1 is intended as an example, and not as an architectural limitation for the different illustrative embodiments.
  • FIG. 2 is an embodiment of a data processing system 200 such as, but not limited to, client 110 and/or server 140 in which an embodiment of a system for language tag management according to the present disclosure may be implemented.
  • data processing system 200 includes a bus or communications fabric 202 , which provides communications between processor unit 204 , memory 206 , persistent storage 208 , communications unit 210 , input/output (I/O) unit 212 , and display 214 .
  • bus or communications fabric 202 which provides communications between processor unit 204 , memory 206 , persistent storage 208 , communications unit 210 , input/output (I/O) unit 212 , and display 214 .
  • Processor unit 204 serves to execute instructions for software that may be loaded into memory 206 .
  • Processor unit 204 may be a set of one or more processors or may be a multi-processor core, depending on the particular implementation. Further, processor unit 204 may be implemented using one or more heterogeneous processor systems in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit 204 may be a symmetric multi-processor system containing multiple processors of the same type.
  • memory 206 may be a random access memory or any other suitable volatile or non-volatile storage device.
  • Persistent storage 208 may take various forms depending on the particular implementation. For example, persistent storage 208 may contain one or more components or devices. Persistent storage 208 may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage 208 also may be removable such as, but not limited to, a removable hard drive.
  • Communications unit 210 provides for communications with other data processing systems or devices.
  • communications unit 210 is a network interface card.
  • Modems, cable modem and Ethernet cards are just a few of the currently available types of network interface adapters.
  • Communications unit 210 may provide communications through the use of either or both physical and wireless communications links.
  • Input/output unit 212 enables input and output of data with other devices that may be connected to data processing system 200 .
  • input/output unit 212 may provide a connection for user input through a keyboard and mouse. Further, input/output unit 212 may send output to a printer.
  • Display 214 provides a mechanism to display information to a user.
  • Instructions for the operating system and applications or programs are located on persistent storage 208 . These instructions may be loaded into memory 206 for execution by processor unit 204 .
  • the processes of the different embodiments may be performed by processor unit 204 using computer implemented instructions, which may be located in a memory, such as memory 206 .
  • These instructions are referred to as program code, computer usable program code, or computer readable program code that may be read and executed by a processor in processor unit 204 .
  • the program code in the different embodiments may be embodied on different physical or tangible computer readable media, such as memory 206 or persistent storage 208 .
  • Program code 216 is located in a functional form on computer readable media 218 that is selectively removable and may be loaded onto or transferred to data processing system 200 for execution by processor unit 204 .
  • Program code 216 and computer readable media 218 form computer program product 220 in these examples.
  • computer readable media 218 may be in a tangible form, such as, for example, an optical or magnetic disc that is inserted or placed into a drive or other device that is part of persistent storage 208 for transfer onto a storage device, such as a hard drive that is part of persistent storage 208 .
  • computer readable media 218 also may take the form of a persistent storage, such as a hard drive, a thumb drive, or a flash memory that is connected to data processing system 200 .
  • the tangible form of computer readable media 218 is also referred to as computer recordable storage media. In some instances, computer readable media 218 may not be removable.
  • program code 216 may be transferred to data processing system 200 from computer readable media 218 through a communications link to communications unit 210 and/or through a connection to input/output unit 212 .
  • the communications link and/or the connection may be physical or wireless in the illustrative examples.
  • a storage device in data processing system 200 is any hardware apparatus that may store data.
  • Memory 206 , persistent storage 208 , and computer readable media 218 are examples of storage devices in a tangible form.
  • FIG. 3 is an illustrative embodiment of a system 300 for language tag management according to the present disclosure.
  • System 300 may be implemented on data processing systems or platforms such as, but not limited to, servers 140 and/or 150 , clients 110 and/or 120 , or at other data processing system locations.
  • System 300 enables the dynamic management of multilingual data collected in the past based on new language tags.
  • embodiments of the present disclosure enable stored metadata with language tags to be managed and/or updated by detecting new language tags in language tag repositories, dynamically synchronizing local language tag tables from the language tag repositories, and dynamically updating and/or re-categorizing the stored data using the new language tags.
  • language tags are used in metadata to classify, archive, categorize, and process collected international documents in text, graphic, audio, and video stream data formats under certain language, script, territory, and encoding categories.
  • the language tag may be embedded and/or integrated into collected information to support networked information processing and management.
  • language tags are a way to tag digital resources to indicate in the particular human language they are in.
  • stored materials are categorized with machine-readable cataloging XML (MARCXML), and language tags are saved as part of metadata attributes.
  • MMCXML machine-readable cataloging XML
  • Modern web page archiving is another example (e.g., language tags have been saved as part of web page snap-shots for different information retrieval purposes).
  • language tags are used as a metadata attribute to indicate the language of text or other items in HTML and XML documents.
  • the language attribute is used to specify language tags in HTML
  • the xml:lang attribute is used for XML.
  • Table 1 illustrates an example of a language tag in the Open Graph protocol
  • Table 2 illustrate several examples of different language tag types and formats.
  • Modern language tag syntax is defined by BCP 47 (BCP representing “Best Current Practice”) and is a persistent name for a series of RFCs (Request for Comments) whose numbers change as the RFCs are updated.
  • the latest RFC describing language tag syntax is RFC 5646, Tags for the Identification of Languages, and it obsoletes the older RFCs 4646, 3066 and 1766.
  • Industry also refers to various ISO (International Organization for Standardization) standards (e.g., ISO 639-1, ISO 639-2, ISO 639-3, ISO-15924, ISO-3166) to create language tags for multicultural support.
  • ISO International Organization for Standardization
  • ISO International Organization for Standardization
  • application or operating system vendors are also allowed to register their own tags from an IRNA (Internet Assigned Numbers Authority) Language Subtag Registry.
  • language tags are changed, updated, merged, split, or deprecated due to technical or political reasons. For example, since 2004, more than twenty-seven scripts have been changed and modified. One such example is that of the Chinese script “Han,” which has been divided to “Hant” and “Hans” for traditional Chinese and Simplified Chinese, respectively. Due to language tag changes, the saved and collected multilingual data, the old language tags are not consistent based on different products, platforms, standards, and different historic times. Table 3 illustrates several examples of language tag changes over time.
  • system 300 includes a host 302 (e.g., such as servers 140 and/or 150 or clients 110 and/or 120 ) having processor unit 310 , a memory 312 , and A categorized data source 314 which has been categorized using language tags (at least some of such data).
  • Data source 314 may reside in memory 312 or be located in a separate storage location (locally or remotely relative to host 302 ).
  • a language tag may include a series of “subtags” where each subtag refines or narrows the range of language identified by the overall tag. In the illustrated embodiment, three language subtags are identified: 1) a language subtag; 2) a script subtag; and 3) a region subtag.
  • the “language tag” refers to a complete tag (e.g., “zh_Hans_CN”).
  • the language subtag is the primary language
  • the script subtag indicates the script or writing system variations that distinguish the written forms of a language or its dialects
  • the region subtag indicates linguistic variations associated with or appropriate to a specific territory or region. It should be understood that embodiments of the present disclosure are applicable to various language tag and subtag identifiers.
  • memory 312 includes one or more language tag management profiles 320 , one or more language tag tables 322 , and a language tag management module 324 .
  • Language tag management module 324 enables records/files of data source 314 with language tags to be managed and/or updated by detecting language tag changes in language tag repositories, dynamically synchronizing local language tag tables (e.g., tables 322 ) from the language tag repositories, and dynamically updating embedded language tags and metadata in the data of stored data source 314 .
  • language tag management module 324 includes a search module 330 , an update module 332 , a watch agent 334 , an interface 336 and a verification module 338 .
  • Language tag management module 324 may be implemented in any suitable manner using known techniques that may be hardware-based, software-based, or some combination of both.
  • language tag management module 324 may comprise software, logic and/or executable code for performing various functions as described herein (e.g., residing as software and/or an algorithm running on a processor unit, hardware logic residing in a processor or other type of logic chip, centralized in a single integrated circuit or distributed among different chips in a data processing system).
  • Language tag management module 324 may be used to setup and/or configure one or more language tag management profiles 320 .
  • a profile 320 may be used to predefine the policies, preferences and/or rules of language tag management module 324 for managing language tag processes and/or certain policies/preferences/rules applicable to certain data stores/archives such as, but not limited to, the frequency of updating language tags, whether language tags are to be replaced/modified in data source 314 , whether a new data record from the original data record should be created with new language tags (modifying the tag in the new record while leaving the original record unchanged), whether a process of mapping new/current language tags to old language tags should be performed for data source 314 (leaving original data records unchanged/intact while linking current language tag codes to the old language tag codes used in such data records), etc.
  • Profiles 320 may be linked to a particular data source 314 source, a particular user, a combination thereof, or other features.
  • Interface 336 may be used by a user/administrator to establish profiles 320 as well as to log, track, review, modify, analyze, and report language tags; initiate and/or control the process of replacing and mapping old language tags; controlling language tag updates; creating, supplementing and/or editing language tag tables; etc.
  • Language tag tables 322 may comprise information defining and/or indicating language tag history as derived from different language tag standards (e.g., RFC, ISO standards, etc.).
  • tables 322 include a language subtag history table 340 , a script subtag history table 342 , a region subtag history table 344 and a language tag alias table 346 .
  • Tables 340 , 342 , 344 and 346 are used to indicate and/or identify historical changes in language codes and/or cross-references between codes of different standards, platforms and/or applications.
  • language subtag history table 340 may include language subtag code history entries such as:
  • management module 324 may access, or have access to, one or more language tag repositories 350 (e.g., via network 130 or other type of communication network).
  • Language tag repositories 350 may be associated with a language tag repository or language tag standard source such as ISO, BCP, RFC, IRNA, etc., such that repository(ies) 350 contain current, standardized language tag syntax codes.
  • repositories 350 include a language subtag code repository 352 , a script subtag code repository 354 , a regional subtag code repository 356 , and a language tag alias reference repository 358 .
  • Repositories 352 , 354 , 356 and 358 generally include current language tag code information, such as information pertaining to language subtag code changes, script subtag code changes, region subtag code changes, and changes related to certain platform-specific, application-specific or other types of tag codes, respectively.
  • language tag management module 324 includes watch agent 334 .
  • Watch agent 334 is configured to monitor and/or track, in real time or according to a predefined/desired schedule, language tag code changes in repositories 350 .
  • Watch agent 334 accesses repositories 350 and/or is otherwise notified (e.g., by repositories 350 ) of any changes to language tag codes (e.g., language subtag codes, script subtag codes, region subtag codes and/or language tag alias code references) and updates the corresponding/respective language tag tables 322 .
  • language tag codes e.g., language subtag codes, script subtag codes, region subtag codes and/or language tag alias code references
  • Watch agent 334 is also configured to monitor, in real time or according to a predefined/desired schedule, data source 314 (or information/records added/merged to data source 314 ) to identify language tags in data source 314 and, in some instances, add any discovered language tags into tables 322 .
  • data source 314 or information/records added/merged to data source 314
  • Watch agent 334 is also configured to monitor, in real time or according to a predefined/desired schedule, data source 314 (or information/records added/merged to data source 314 ) to identify language tags in data source 314 and, in some instances, add any discovered language tags into tables 322 .
  • a database of records may be merged into data source 314 , and the merged records may contain language tags that have been replaced with newer language tags, language tags that are not reflected in tables 322 , etc.
  • Watch agent 334 may monitor and/or automatically analyze added/merged records of data source 314 and initiate a corresponding action (e.g., if profile 320 indicates, replace language tags in the merged records; generate an alert regarding the discovered language tags; interface with repositories 350 to acquire change-related information of such language tags; add information to tables 322 regarding the discovered language tags; etc.). Watch agent 334 may also be configured to monitor repositories 350 and/or data source 314 and alert a user/administrator of any changes to language tags and/or any discovered language tags in data source 314 (e.g., as a result of added/merged records into data source 314 ).
  • a corresponding action e.g., if profile 320 indicates, replace language tags in the merged records; generate an alert regarding the discovered language tags; interface with repositories 350 to acquire change-related information of such language tags; add information to tables 322 regarding the discovered language tags; etc.
  • Watch agent 334 may also be configured to monitor repositories 350 and/or data source 3
  • Search module 330 is configured to find language tags in data source 314 and tie/relate the discovered language tags in data source 314 to new language tags as set forth in tables 322 .
  • Search module 330 may perform nested search loops to find language tags in data source 314 (e.g., first round: search based on language subtag history code table 340 ; second round: search based on script subtag history code table 342 ; third round: search based on region subtag history code table 344 ; and fourth round: search based on alias history code table 346 ) and tie/relate discovered tags in data source 314 to the new tag codes according to tables 322 .
  • search module 330 may be configured to find all related language tags in data source 314 from a single language tag input (e.g., via interface 336 ).
  • Update module 332 is configured to perform real time language tag update processing in data source 314 and/or perform virtualized metadata generation for data source 314 based on current language tag codes. For example, based on a user's options and/or profile 320 , module 332 may search data source 314 , find old and inconsistent language tags in data source 314 , and then either replace the old tags with current language tags or use an abstraction layer (such as generating new virtualized metadata (e.g., a metadata of metadata)) to map the old and inconsistent language tags to the current language tag. For example, in one embodiment, update module 332 may automatically replace the old language tags in data source 314 with the current language tags.
  • an abstraction layer such as generating new virtualized metadata (e.g., a metadata of metadata)
  • update module 332 may be configured to create a reference metadata 360 (file_ID, old_langTag, new_langTag) and link the created reference metadata 360 to the data source 314 record, thereby mapping the old language tag to the new language tag for the data source 314 record.
  • Verification module 338 is configured to verify that language tag replacement/updating has been performed correctly and/or verify that reference metadata 360 links to the corresponding data source 314 record. For example, in some embodiments, verification module 338 may track updated/changed data source 314 records and verify that the updated/changed records contain the current language tags and/or may be otherwise located based on the current language tags. If not, verification module 338 may be configured to undo and/or reverse the process and generate an alert regarding an unsuccessful update/replace operation. In some embodiments, verification module 338 may be configured to generate a copy and/or alternate data source 314 record, update the language tag, verify its accuracy, then replace the original data source 314 record with the updated record.
  • Verification module 338 may also generate log files corresponding to the records to be updated and the records after updating and verify that the same records (or quantity of records) or log file information matches for a particular language tag update process. Thus, it should be understood that verification module 338 may be configured to verify acceptable language tag processing using a variety of different techniques.
  • management module 324 may interface with language tag repositories 350 and determine/identify any changes to language tag codes. Management module 324 may then automatically update language tag tables 322 to reflect the historic change(s) in such language tag codes. Management module 324 may also automatically (e.g., depending on certain rules and/or processes set in a particular profile 320 ) process data source 314 with the new/updated language tag code information (e.g., update, modify and/or create reference metadata based on the new language tag codes, generate a report indicating language tag status information, etc.). Management module 324 may then automatically verify that the language tag processing for data source 314 has been performed correctly.
  • the new/updated language tag code information e.g., update, modify and/or create reference metadata based on the new language tag codes, generate a report indicating language tag status information, etc.
  • FIG. 4 is a diagram illustrating language tag replacement according to the present disclosure.
  • data source 314 may comprise old and/or inconsistent language tags based on current standard language tags.
  • Management module 324 may search data source 314 (e.g., the existing or old records of data source 314 1 ), locate language tags in such data records, determine current language tags based on language tag tables 322 , and automatically replace the language tags, thereby creating updated records of data source 314 2 with the current language tags.
  • Management module may track which records are being updated and verify that the updated records have been updated with the current language tags correctly.
  • FIG. 5 is a diagram illustrating another embodiment of language tag replacement according to the present disclosure.
  • data source 314 may comprise records that a user does not want to modify or cannot modify without adversely affecting the integrity or characteristics of such data (or for another reason).
  • relational metadata is created linking the affected data records (and the old language tags thereof) to the current language tags.
  • certain data source 314 records may be organized into folders or other types of groupings (although such groupings are not necessary) where the data records of particular folders reference or use old language tags.
  • Management module 324 searches data source 314 , identifies the old language tags in data source 314 , identifies current language tags from tables 322 , and creates language tag reference metadata 360 that tie/link the current language tag to the old language tag.
  • metadata 360 1 is created for folder 1 to link the current language tag sr_Latin_RS to a folder of data records using the old language tag sr_Latin_CS.
  • Metadata 360 2 is created for folder 2 to link the current language tag sr_Latin_RS to a folder of data records using the old language tag sh_CS.
  • Metadata 360 3 is created for folder 3 to link the current language tag sr_Latin_RS to a folder of data records using the old language tag sh_YU.
  • Metadata 360 4 is created for folder 4 to link the current language tag sr_Cyrl_RS to a folder of data records using the old language tag sr_RS.
  • Metadata 360 5 is created for folder 5 to link the current language tag sr_Cyrl_RS to a folder of data records using the old language tag sr_CS.
  • Metadata 360 6 is created for folder 6 to link the current language tag sr_Cyrl_RS to a folder of data records using the old language tag sr_YU.
  • the reference metadata 360 may be stored as part of data source 314 or be otherwise located. Thus, when searching for data using the current language tags, reference metadata 360 will point/link to data records using the old language tags, thereby enabling the old, original data records to remain intact.
  • FIG. 6 is a flow diagram illustrating an embodiment of a method for language tag management according to the present disclosure.
  • the method begins at block 602 , where watch agent 334 monitors language tag repository(ies) 350 for changes and/or updates to language tag codes.
  • decisional block 604 a determination is made whether a change and/or update to a language tag code has occurred. If not, the method continues monitoring language tag respository(ies) 350 for changes and/or updates to language tag codes. If at decisional block 604 a determination is made that an update and/or change to a language tag code has occurred, the method proceeds to block 606 , where watch agent 334 adds and/or updates the corresponding language tag code in language code history tables 322 .
  • FIG. 7 is a flow diagram illustrating an embodiment of a method for language tag management according to the present disclosure.
  • the method begins at block 702 , where language tag management profile(s) 320 may be setup and/or loaded.
  • management module 324 loads and/or otherwise accesses language tag history tables 322 .
  • management module 324 analyzes data source 314 .
  • management module 324 identifies language tags used in data source 314 .
  • management module 324 reports the status of the discovered language tags.
  • management module 324 may generate a report and/or otherwise make available status information identifying the discovered language tags, indicating whether certain language tags are obsolete or have been otherwise replaced/updated, indicating language tags that require additional information (e.g., perhaps indicating that there is a lack of history information for the discovered language tag in tables 322 ), etc.
  • management module 324 replaces the old/invalid language tags in data source 314 with the current language tags.
  • decisional block 718 a determination is made whether the language tags were replaced. For example, if data source 314 cannot be modified or management module 324 encounters a condition preventing management module 324 from successfully replacing/updating the language tag in data source 314 , management module 324 may generate an error log at block 720 detailing the condition of such condition.
  • management module 324 verifies the language tag replacement/update process. As indicated above, management module 324 may verify that the updated records of data source 314 may be located using the current language tags, search data source 314 again to verify that no old/invalid language tags remain in data source 314 , compare log files of data source 314 before and after language tag replacement, or perform other actions to verify the successful updating of the old language tags with current language tag codes. At decisional block 724 , a determination is made whether the language tag replacement/update process has been successfully verified. If not, the method proceeds to block 720 , where management module 324 may generate an error log indicating the details of the lack of verification. If the language tag replacement/update process is verified at decisional bloc 724 , the method ends.
  • the method proceeds to decisional block 726 , where a determination is made whether language tag reference metadata 360 is to be generated for the discovered language tags. For example, as indicated earlier, certain data records may be compromised if the records are changed. Thus, it may be undesirable to modify/replace old language tags in such data. If reference metadata 360 is not to be created (e.g., if another method to link the old tags to the new tags is desired or if further review/analysis of data source 314 is needed), the method ends.
  • management module 324 creates the language tag reference metadata for the old language tag based on the current language tag (e.g., by using information in tables 322 ).
  • management module 324 links the reference metadata 360 to the old language tag.
  • decisional block 732 a determination is made whether the reference metadata 360 has been linked to the old language tag. If not, the method proceeds to block 720 , where management module 324 may generate an error log indicating details of the unsuccessful linking. If linking is successful, the method proceeds to block 734 , where management module 324 verifies the linking of the reference metadata 360 to the old language tags.
  • management module 324 may verify that the records of data source 314 linked by the reference metadata 360 may be located using the current language tags or perform other actions to verify the successful linking of the old language tags to the current language tag codes. If verification is unsuccessful, the method proceeds to block the method proceeds to block 720 , where management module 324 may generate an error log indicating details of the unsuccessful verification. If verification is successful, the method ends.
  • embodiments of the present disclosure enables the dynamic management of multilingual data collected in the past based on new language tags.
  • embodiments of the present disclosure enable stored data with language tags to be managed and/or updated by detecting new language tag changes in language tag repositories, dynamically synchronizing local language tag tables from the language tag repositories, and dynamically updating embedded language tags and metadata in stored data.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

According to one aspect of the present disclosure, a method and technique for language tag management includes: accessing a standardized language tag repository to identify changes in repository language tags; searching records of a data source categorized using language tags to identify language tags present in records of the data source; determining whether the language tags present in the records of the data source are inconsistent with the repository language tags; responsive to determining that the language tags present in the records of the data source are inconsistent with the repository language tags, determining a language tag update policy for the data source; and performing a language tag update process for the records according to the language tag update policy to re-categorize the records based on the repository language tags.

Description

BACKGROUND
Public libraries, national data warehouses, public service data banks, and historical newspaper databases often collect, categorize and mine historic records. Metadata management is often used for data categorization. For example, language tags have been used in metadata to classify, archive, categorize, and process collected international documents in text, graphic, audio, and video stream data formats under certain language, script, territory, and encoding categories. The language tag may be embedded and/or integrated into collected information to support networked information processing and management. Specifically, in HTML and XML, language tags may indicate the language of text or other items in HTML and XML documents.
BRIEF SUMMARY
According to one aspect of the present disclosure a method and technique for language tag management on international data storage is disclosed. The method includes: accessing a standardized language tag repository to identify changes in repository language tags; searching records of a data source categorized using language tags to identify language tags present in records of the data source; determining whether the language tags present in the records of the data source are inconsistent with the repository language tags; responsive to determining that the language tags present in the records of the data source are inconsistent with the repository language tags, determining a language tag update policy for the data source; and performing a language tag update process for the records according to the language tag update policy to re-categorize the records based on the repository language tags.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
For a more complete understanding of the present application, the objects and advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
FIG. 1 is an embodiment of a network of data processing systems in which the illustrative embodiments of the present disclosure may be implemented;
FIG. 2 is an embodiment of a data processing system in which the illustrative embodiments of the present disclosure may be implemented;
FIG. 3 is a diagram illustrating an embodiment of a data processing system for language tag management in which embodiments of the present disclosure may be implemented;
FIG. 4 is a diagram illustrating a language tag update process according to an embodiment of the present disclosure;
FIG. 5 is a diagram illustrating another embodiment of a language tag update process using an abstraction layer for language tags according to the present disclosure;
FIG. 6 is a flow diagram illustrating a method for language tag management according to the present disclosure; and
FIG. 7 is a flow diagram illustrating another embodiment of a method for language tag management according to the present disclosure.
DETAILED DESCRIPTION
Embodiments of the present disclosure provide a method, system and computer program product for language tag management on international data storage. For example, embodiments of the present disclosure enhance language tag management, update new language tags in old metadata, and re-categorize data collected from worldwide sources. For example, embodiments of the present disclosure enable stored metadata with language tags to be managed and/or updated by detecting new language tags in language tag repositories, dynamically synchronizing local language tag tables from the language tag repositories, and dynamically updating and/or re-categorizing the stored data using the new language tags according to profiles/policies established for the data source. In some embodiments, standardized language tag repositories are accessed to identify changes in repository language tags; records of a data source categorized using language tags are searched to identify language tags present in records of the data source; a determination is made whether the language tags present in the records of the data source are inconsistent with the repository language tags; and if so, a language tag update policy for the data source is determined a language tag update process for the records according to the language tag update policy is performed to re-categorize the records based on the repository language tags.
As will be appreciated by one skilled in the art, aspects of the present disclosure may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present disclosure are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
With reference now to the Figures and in particular with reference to FIGS. 1-2, exemplary diagrams of data processing environments are provided in which illustrative embodiments of the present disclosure may be implemented. It should be appreciated that FIGS. 1-2 are only exemplary and are not intended to assert or imply any limitation with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environments may be made.
FIG. 1 is a pictorial representation of a network of data processing systems in which illustrative embodiments of the present disclosure may be implemented. Network data processing system 100 is a network of computers in which the illustrative embodiments of the present disclosure may be implemented. Network data processing system 100 contains network 130, which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100. Network 130 may include connections, such as wire, wireless communication links, or fiber optic cables.
In some embodiments, server 140 and server 150 connect to network 130 along with data store 160. Server 140 and server 150 may be, for example, IBM® Power Systems™ servers. In addition, clients 110 and 120 connect to network 130. Clients 110 and 120 may be, for example, personal computers or network computers. In the depicted example, server 140 provides data and/or services such as, but not limited to, data files, operating system images, and applications to clients 110 and 120. Network data processing system 100 may include additional servers, clients, and other devices.
In the depicted example, network data processing system 100 is the Internet with network 130 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, governmental, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN). FIG. 1 is intended as an example, and not as an architectural limitation for the different illustrative embodiments.
FIG. 2 is an embodiment of a data processing system 200 such as, but not limited to, client 110 and/or server 140 in which an embodiment of a system for language tag management according to the present disclosure may be implemented. In this embodiment, data processing system 200 includes a bus or communications fabric 202, which provides communications between processor unit 204, memory 206, persistent storage 208, communications unit 210, input/output (I/O) unit 212, and display 214.
Processor unit 204 serves to execute instructions for software that may be loaded into memory 206. Processor unit 204 may be a set of one or more processors or may be a multi-processor core, depending on the particular implementation. Further, processor unit 204 may be implemented using one or more heterogeneous processor systems in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit 204 may be a symmetric multi-processor system containing multiple processors of the same type.
In some embodiments, memory 206 may be a random access memory or any other suitable volatile or non-volatile storage device. Persistent storage 208 may take various forms depending on the particular implementation. For example, persistent storage 208 may contain one or more components or devices. Persistent storage 208 may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage 208 also may be removable such as, but not limited to, a removable hard drive.
Communications unit 210 provides for communications with other data processing systems or devices. In these examples, communications unit 210 is a network interface card. Modems, cable modem and Ethernet cards are just a few of the currently available types of network interface adapters. Communications unit 210 may provide communications through the use of either or both physical and wireless communications links.
Input/output unit 212 enables input and output of data with other devices that may be connected to data processing system 200. In some embodiments, input/output unit 212 may provide a connection for user input through a keyboard and mouse. Further, input/output unit 212 may send output to a printer. Display 214 provides a mechanism to display information to a user.
Instructions for the operating system and applications or programs are located on persistent storage 208. These instructions may be loaded into memory 206 for execution by processor unit 204. The processes of the different embodiments may be performed by processor unit 204 using computer implemented instructions, which may be located in a memory, such as memory 206. These instructions are referred to as program code, computer usable program code, or computer readable program code that may be read and executed by a processor in processor unit 204. The program code in the different embodiments may be embodied on different physical or tangible computer readable media, such as memory 206 or persistent storage 208.
Program code 216 is located in a functional form on computer readable media 218 that is selectively removable and may be loaded onto or transferred to data processing system 200 for execution by processor unit 204. Program code 216 and computer readable media 218 form computer program product 220 in these examples. In one example, computer readable media 218 may be in a tangible form, such as, for example, an optical or magnetic disc that is inserted or placed into a drive or other device that is part of persistent storage 208 for transfer onto a storage device, such as a hard drive that is part of persistent storage 208. In a tangible form, computer readable media 218 also may take the form of a persistent storage, such as a hard drive, a thumb drive, or a flash memory that is connected to data processing system 200. The tangible form of computer readable media 218 is also referred to as computer recordable storage media. In some instances, computer readable media 218 may not be removable.
Alternatively, program code 216 may be transferred to data processing system 200 from computer readable media 218 through a communications link to communications unit 210 and/or through a connection to input/output unit 212. The communications link and/or the connection may be physical or wireless in the illustrative examples.
The different components illustrated for data processing system 200 are not meant to provide architectural limitations to the manner in which different embodiments may be implemented. The different illustrative embodiments may be implemented in a data processing system including components in addition to or in place of those illustrated for data processing system 200. Other components shown in FIG. 2 can be varied from the illustrative examples shown. For example, a storage device in data processing system 200 is any hardware apparatus that may store data. Memory 206, persistent storage 208, and computer readable media 218 are examples of storage devices in a tangible form.
FIG. 3 is an illustrative embodiment of a system 300 for language tag management according to the present disclosure. System 300 may be implemented on data processing systems or platforms such as, but not limited to, servers 140 and/or 150, clients 110 and/or 120, or at other data processing system locations. System 300 enables the dynamic management of multilingual data collected in the past based on new language tags. For example, embodiments of the present disclosure enable stored metadata with language tags to be managed and/or updated by detecting new language tags in language tag repositories, dynamically synchronizing local language tag tables from the language tag repositories, and dynamically updating and/or re-categorizing the stored data using the new language tags.
For example, language tags are used in metadata to classify, archive, categorize, and process collected international documents in text, graphic, audio, and video stream data formats under certain language, script, territory, and encoding categories. The language tag may be embedded and/or integrated into collected information to support networked information processing and management. For example, language tags are a way to tag digital resources to indicate in the particular human language they are in. In most instances, stored materials are categorized with machine-readable cataloging XML (MARCXML), and language tags are saved as part of metadata attributes. Modern web page archiving is another example (e.g., language tags have been saved as part of web page snap-shots for different information retrieval purposes). In HTML and XML, language tags are used as a metadata attribute to indicate the language of text or other items in HTML and XML documents. The language attribute is used to specify language tags in HTML, and the xml:lang attribute is used for XML. Table 1 illustrates an example of a language tag in the Open Graph protocol, and Table 2 illustrate several examples of different language tag types and formats.
TABLE 1
<html>
<head>
<meta property=“og:locale:alternate” content=“fr_FR”/>
</head>
...
</html>
TABLE 2
Language Tag Language Subtags
en English language
mas Masai language
fr-CA French as used in Canada language + region
es-419 Spanish as used in Latin language + region
America
zh-Hans Chinese written with language + script
Simplified script
zh-Hans-CN Chinese written with language + script + region
Simplified script in China
Modern language tag syntax is defined by BCP 47 (BCP representing “Best Current Practice”) and is a persistent name for a series of RFCs (Request for Comments) whose numbers change as the RFCs are updated. The latest RFC describing language tag syntax is RFC 5646, Tags for the Identification of Languages, and it obsoletes the older RFCs 4646, 3066 and 1766. Industry also refers to various ISO (International Organization for Standardization) standards (e.g., ISO 639-1, ISO 639-2, ISO 639-3, ISO-15924, ISO-3166) to create language tags for multicultural support. In addition to ISO standards, application or operating system vendors are also allowed to register their own tags from an IRNA (Internet Assigned Numbers Authority) Language Subtag Registry.
However, language tags are changed, updated, merged, split, or deprecated due to technical or political reasons. For example, since 2004, more than twenty-seven scripts have been changed and modified. One such example is that of the Chinese script “Han,” which has been divided to “Hant” and “Hans” for traditional Chinese and Simplified Chinese, respectively. Due to language tag changes, the saved and collected multilingual data, the old language tags are not consistent based on different products, platforms, standards, and different historic times. Table 3 illustrates several examples of language tag changes over time.
TABLE 3
Language Script Region Language
Language subtag subtag subtag Tag Year
Serbian sr YU sr_YU Before
(Cyrillic) 2000
Serbian sr (Cyrl) CS sr_CS 2000
(Cyrillic)
Serbian sr (Cyrl) RS sr_ RS 2006
(Cyrillic)
Serbian sr Cyrl RS sr_Cyrl_ RS 2011
(Cyrillic)
Serbian (Latin) sh YU sr_YU Before
2000
Serbian (Latin) sh SP sh_SP 2000
Serbian (Latin) sr Latin CS sr_ Latin_CS 2006
Serbian (Latin) sr Latin RS sr_ Latin_RS 2011
Hebrew iw IL iw_IL Before
2003
Hebrew he IL he_IL 2003
Chinese zh CN zh_CN Before
(Simplified) 2011
Chinese zh Hans CN zh_Hans_CN 2011
(Simplified)
Chinese zh TW zh_TW Before
(Traditional) 2011
Chinese zh Hant TW zh_Hant_TW 2011
(Traditional)
Thus, some language tags and related rules have been changed over time. Different languages tags were used to store and classify information and records in a same language at different times. In other words, the stored files, records and metadata in a same language may be treated, handled and classified differently in the past, present and future. Such language tag differences cause problems in data management, data mining, and information retrieval. With the mixed old, new or even deprecated language tags in metadata files, it may be difficult to find the desired or correct information.
In the embodiment illustrated in FIG. 3, system 300 includes a host 302 (e.g., such as servers 140 and/or 150 or clients 110 and/or 120) having processor unit 310, a memory 312, and A categorized data source 314 which has been categorized using language tags (at least some of such data). Data source 314 may reside in memory 312 or be located in a separate storage location (locally or remotely relative to host 302). As illustrated in Table 3, a language tag may include a series of “subtags” where each subtag refines or narrows the range of language identified by the overall tag. In the illustrated embodiment, three language subtags are identified: 1) a language subtag; 2) a script subtag; and 3) a region subtag. The “language tag” refers to a complete tag (e.g., “zh_Hans_CN”). The language subtag is the primary language, the script subtag indicates the script or writing system variations that distinguish the written forms of a language or its dialects, and the region subtag indicates linguistic variations associated with or appropriate to a specific territory or region. It should be understood that embodiments of the present disclosure are applicable to various language tag and subtag identifiers.
In the illustrated embodiment, memory 312 includes one or more language tag management profiles 320, one or more language tag tables 322, and a language tag management module 324. Language tag management module 324 enables records/files of data source 314 with language tags to be managed and/or updated by detecting language tag changes in language tag repositories, dynamically synchronizing local language tag tables (e.g., tables 322) from the language tag repositories, and dynamically updating embedded language tags and metadata in the data of stored data source 314. For example, in FIG. 3, language tag management module 324 includes a search module 330, an update module 332, a watch agent 334, an interface 336 and a verification module 338. Language tag management module 324 may be implemented in any suitable manner using known techniques that may be hardware-based, software-based, or some combination of both. For example, language tag management module 324 may comprise software, logic and/or executable code for performing various functions as described herein (e.g., residing as software and/or an algorithm running on a processor unit, hardware logic residing in a processor or other type of logic chip, centralized in a single integrated circuit or distributed among different chips in a data processing system).
Language tag management module 324 may be used to setup and/or configure one or more language tag management profiles 320. A profile 320 may be used to predefine the policies, preferences and/or rules of language tag management module 324 for managing language tag processes and/or certain policies/preferences/rules applicable to certain data stores/archives such as, but not limited to, the frequency of updating language tags, whether language tags are to be replaced/modified in data source 314, whether a new data record from the original data record should be created with new language tags (modifying the tag in the new record while leaving the original record unchanged), whether a process of mapping new/current language tags to old language tags should be performed for data source 314 (leaving original data records unchanged/intact while linking current language tag codes to the old language tag codes used in such data records), etc. Profiles 320 may be linked to a particular data source 314 source, a particular user, a combination thereof, or other features. Interface 336 may be used by a user/administrator to establish profiles 320 as well as to log, track, review, modify, analyze, and report language tags; initiate and/or control the process of replacing and mapping old language tags; controlling language tag updates; creating, supplementing and/or editing language tag tables; etc.
Language tag tables 322 may comprise information defining and/or indicating language tag history as derived from different language tag standards (e.g., RFC, ISO standards, etc.). In the embodiment illustrated in FIG. 3, tables 322 include a language subtag history table 340, a script subtag history table 342, a region subtag history table 344 and a language tag alias table 346. Tables 340, 342, 344 and 346 are used to indicate and/or identify historical changes in language codes and/or cross-references between codes of different standards, platforms and/or applications. For example, language subtag history table 340 may include language subtag code history entries such as:
    • sh->sr
    • iw->he
      Script subtag history table 342 may include script subtag code history entries such as:
    • sh->sr-Latn
    • sr->sr-Cyrl
    • zh->zh-Hans
    • zh->zh-Hant
      Region subtag history table 344 may include region subtag code history entries such as:
    • YU->CS->RS
      Language tag alias table 346 may include code entries relating or cross-referencing tag codes across different standards, platforms, applications, tag codes unique to a particular user, etc., such as:
    • sr_Cyrl_RS, sr_Cyrl_CS, sr_CS, sr_RS, sr_YU
    • sr_Latn_RS, sr_Latn_CS, sh_CS, sh_RS, sh_YU
In FIG. 3, management module 324 may access, or have access to, one or more language tag repositories 350 (e.g., via network 130 or other type of communication network). Language tag repositories 350 may be associated with a language tag repository or language tag standard source such as ISO, BCP, RFC, IRNA, etc., such that repository(ies) 350 contain current, standardized language tag syntax codes. In the illustrated embodiment, repositories 350 include a language subtag code repository 352, a script subtag code repository 354, a regional subtag code repository 356, and a language tag alias reference repository 358. Repositories 352, 354, 356 and 358 generally include current language tag code information, such as information pertaining to language subtag code changes, script subtag code changes, region subtag code changes, and changes related to certain platform-specific, application-specific or other types of tag codes, respectively.
As indicated above, language tag management module 324 includes watch agent 334. Watch agent 334 is configured to monitor and/or track, in real time or according to a predefined/desired schedule, language tag code changes in repositories 350. Watch agent 334 accesses repositories 350 and/or is otherwise notified (e.g., by repositories 350) of any changes to language tag codes (e.g., language subtag codes, script subtag codes, region subtag codes and/or language tag alias code references) and updates the corresponding/respective language tag tables 322. Watch agent 334 is also configured to monitor, in real time or according to a predefined/desired schedule, data source 314 (or information/records added/merged to data source 314) to identify language tags in data source 314 and, in some instances, add any discovered language tags into tables 322. For example, a database of records may be merged into data source 314, and the merged records may contain language tags that have been replaced with newer language tags, language tags that are not reflected in tables 322, etc. Watch agent 334 may monitor and/or automatically analyze added/merged records of data source 314 and initiate a corresponding action (e.g., if profile 320 indicates, replace language tags in the merged records; generate an alert regarding the discovered language tags; interface with repositories 350 to acquire change-related information of such language tags; add information to tables 322 regarding the discovered language tags; etc.). Watch agent 334 may also be configured to monitor repositories 350 and/or data source 314 and alert a user/administrator of any changes to language tags and/or any discovered language tags in data source 314 (e.g., as a result of added/merged records into data source 314).
Search module 330 is configured to find language tags in data source 314 and tie/relate the discovered language tags in data source 314 to new language tags as set forth in tables 322. Search module 330 may perform nested search loops to find language tags in data source 314 (e.g., first round: search based on language subtag history code table 340; second round: search based on script subtag history code table 342; third round: search based on region subtag history code table 344; and fourth round: search based on alias history code table 346) and tie/relate discovered tags in data source 314 to the new tag codes according to tables 322. In some embodiments, search module 330 may be configured to find all related language tags in data source 314 from a single language tag input (e.g., via interface 336).
Update module 332 is configured to perform real time language tag update processing in data source 314 and/or perform virtualized metadata generation for data source 314 based on current language tag codes. For example, based on a user's options and/or profile 320, module 332 may search data source 314, find old and inconsistent language tags in data source 314, and then either replace the old tags with current language tags or use an abstraction layer (such as generating new virtualized metadata (e.g., a metadata of metadata)) to map the old and inconsistent language tags to the current language tag. For example, in one embodiment, update module 332 may automatically replace the old language tags in data source 314 with the current language tags. However, in some instances, replacement of the old tag with the new tag may be undesirable (e.g., a user may not want to destroy and/or modify the integrity of the original data record). Thus, in another embodiment, instead of replacing or updating the old tag with the current tag in a data source 314 record, update module 332 may be configured to create a reference metadata 360 (file_ID, old_langTag, new_langTag) and link the created reference metadata 360 to the data source 314 record, thereby mapping the old language tag to the new language tag for the data source 314 record.
Verification module 338 is configured to verify that language tag replacement/updating has been performed correctly and/or verify that reference metadata 360 links to the corresponding data source 314 record. For example, in some embodiments, verification module 338 may track updated/changed data source 314 records and verify that the updated/changed records contain the current language tags and/or may be otherwise located based on the current language tags. If not, verification module 338 may be configured to undo and/or reverse the process and generate an alert regarding an unsuccessful update/replace operation. In some embodiments, verification module 338 may be configured to generate a copy and/or alternate data source 314 record, update the language tag, verify its accuracy, then replace the original data source 314 record with the updated record. Verification module 338 may also generate log files corresponding to the records to be updated and the records after updating and verify that the same records (or quantity of records) or log file information matches for a particular language tag update process. Thus, it should be understood that verification module 338 may be configured to verify acceptable language tag processing using a variety of different techniques.
Thus, in operation, management module 324 may interface with language tag repositories 350 and determine/identify any changes to language tag codes. Management module 324 may then automatically update language tag tables 322 to reflect the historic change(s) in such language tag codes. Management module 324 may also automatically (e.g., depending on certain rules and/or processes set in a particular profile 320) process data source 314 with the new/updated language tag code information (e.g., update, modify and/or create reference metadata based on the new language tag codes, generate a report indicating language tag status information, etc.). Management module 324 may then automatically verify that the language tag processing for data source 314 has been performed correctly.
FIG. 4 is a diagram illustrating language tag replacement according to the present disclosure. As discussed above, in some instances data source 314 may comprise old and/or inconsistent language tags based on current standard language tags. Management module 324 may search data source 314 (e.g., the existing or old records of data source 314 1), locate language tags in such data records, determine current language tags based on language tag tables 322, and automatically replace the language tags, thereby creating updated records of data source 314 2 with the current language tags. Management module may track which records are being updated and verify that the updated records have been updated with the current language tags correctly.
FIG. 5 is a diagram illustrating another embodiment of language tag replacement according to the present disclosure. As described earlier, data source 314 may comprise records that a user does not want to modify or cannot modify without adversely affecting the integrity or characteristics of such data (or for another reason). In this embodiment, instead of modifying and/or replacing the language tag in such data records, relational metadata is created linking the affected data records (and the old language tags thereof) to the current language tags. For example, in the illustrated embodiment, certain data source 314 records may be organized into folders or other types of groupings (although such groupings are not necessary) where the data records of particular folders reference or use old language tags. Management module 324 searches data source 314, identifies the old language tags in data source 314, identifies current language tags from tables 322, and creates language tag reference metadata 360 that tie/link the current language tag to the old language tag. For example, in FIG. 5, metadata 360 1 is created for folder1 to link the current language tag sr_Latin_RS to a folder of data records using the old language tag sr_Latin_CS. Metadata 360 2 is created for folder2 to link the current language tag sr_Latin_RS to a folder of data records using the old language tag sh_CS. Metadata 360 3 is created for folder3 to link the current language tag sr_Latin_RS to a folder of data records using the old language tag sh_YU. Metadata 360 4 is created for folder4 to link the current language tag sr_Cyrl_RS to a folder of data records using the old language tag sr_RS. Metadata 360 5 is created for folder5 to link the current language tag sr_Cyrl_RS to a folder of data records using the old language tag sr_CS. Metadata 360 6 is created for folder6 to link the current language tag sr_Cyrl_RS to a folder of data records using the old language tag sr_YU. The reference metadata 360 may be stored as part of data source 314 or be otherwise located. Thus, when searching for data using the current language tags, reference metadata 360 will point/link to data records using the old language tags, thereby enabling the old, original data records to remain intact.
FIG. 6 is a flow diagram illustrating an embodiment of a method for language tag management according to the present disclosure. The method begins at block 602, where watch agent 334 monitors language tag repository(ies) 350 for changes and/or updates to language tag codes. At decisional block 604, a determination is made whether a change and/or update to a language tag code has occurred. If not, the method continues monitoring language tag respository(ies) 350 for changes and/or updates to language tag codes. If at decisional block 604 a determination is made that an update and/or change to a language tag code has occurred, the method proceeds to block 606, where watch agent 334 adds and/or updates the corresponding language tag code in language code history tables 322.
FIG. 7 is a flow diagram illustrating an embodiment of a method for language tag management according to the present disclosure. The method begins at block 702, where language tag management profile(s) 320 may be setup and/or loaded. At block 704, management module 324 loads and/or otherwise accesses language tag history tables 322. At block 706, management module 324 analyzes data source 314. At block 708, management module 324 identifies language tags used in data source 314. At block 710, management module 324 reports the status of the discovered language tags. For example, in some embodiments, management module 324 may generate a report and/or otherwise make available status information identifying the discovered language tags, indicating whether certain language tags are obsolete or have been otherwise replaced/updated, indicating language tags that require additional information (e.g., perhaps indicating that there is a lack of history information for the discovered language tag in tables 322), etc.
At decisional block 712, a determination is made whether data source 314 contains old, invalid or outdated language tags. For example, management module 324 may evaluate the discovered tags in data source 314 with information in tables 322 to determine whether the discovered tags have been updated/changed. If not, no further action may be needed. However, if data source 314 does contain old/invalid language tags, the method proceeds to decisional block 714, where a determination is made whether the old/invalid tags should be replaced. For example, management module 324 may evaluate profile 320 to determine whether the old/invalid language tags should be automatically replaced or whether another action, if any, should be performed. If the old/invalid language tags are to be replaced, the method proceeds to block 716, where management module 324 replaces the old/invalid language tags in data source 314 with the current language tags. At decisional block 718, a determination is made whether the language tags were replaced. For example, if data source 314 cannot be modified or management module 324 encounters a condition preventing management module 324 from successfully replacing/updating the language tag in data source 314, management module 324 may generate an error log at block 720 detailing the condition of such condition.
If the language tags were replaced/updated, the method proceeds from decisional block 718 to block 722, where management module 324 verifies the language tag replacement/update process. As indicated above, management module 324 may verify that the updated records of data source 314 may be located using the current language tags, search data source 314 again to verify that no old/invalid language tags remain in data source 314, compare log files of data source 314 before and after language tag replacement, or perform other actions to verify the successful updating of the old language tags with current language tag codes. At decisional block 724, a determination is made whether the language tag replacement/update process has been successfully verified. If not, the method proceeds to block 720, where management module 324 may generate an error log indicating the details of the lack of verification. If the language tag replacement/update process is verified at decisional bloc 724, the method ends.
At decisional block 714, if replacement/updating of the discovered old/invalid language tags are not to be replaced, the method proceeds to decisional block 726, where a determination is made whether language tag reference metadata 360 is to be generated for the discovered language tags. For example, as indicated earlier, certain data records may be compromised if the records are changed. Thus, it may be undesirable to modify/replace old language tags in such data. If reference metadata 360 is not to be created (e.g., if another method to link the old tags to the new tags is desired or if further review/analysis of data source 314 is needed), the method ends. If reference metadata 360 is to be created, the method proceeds to block 728, where management module 324 creates the language tag reference metadata for the old language tag based on the current language tag (e.g., by using information in tables 322). At block 730, management module 324 links the reference metadata 360 to the old language tag. At decisional block 732, a determination is made whether the reference metadata 360 has been linked to the old language tag. If not, the method proceeds to block 720, where management module 324 may generate an error log indicating details of the unsuccessful linking. If linking is successful, the method proceeds to block 734, where management module 324 verifies the linking of the reference metadata 360 to the old language tags. For example, management module 324 may verify that the records of data source 314 linked by the reference metadata 360 may be located using the current language tags or perform other actions to verify the successful linking of the old language tags to the current language tag codes. If verification is unsuccessful, the method proceeds to block the method proceeds to block 720, where management module 324 may generate an error log indicating details of the unsuccessful verification. If verification is successful, the method ends.
Thus, embodiments of the present disclosure enables the dynamic management of multilingual data collected in the past based on new language tags. For example, embodiments of the present disclosure enable stored data with language tags to be managed and/or updated by detecting new language tag changes in language tag repositories, dynamically synchronizing local language tag tables from the language tag repositories, and dynamically updating embedded language tags and metadata in stored data.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosure. The embodiment was chosen and described in order to best explain the principles of the disclosure and the practical application, and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

Claims (5)

What is claimed is:
1. A method, comprising:
accessing a standardized language tag repository to identify changes in repository language tags;
searching records of a data source stored in a memory where one or more of the records are categorized using language tags as metadata attributes to identify language tags present in the records of the data source;
determining whether the language tags present in the records of the data source are inconsistent with the repository language tags;
responsive to determining that the language tags present in the records of the data source are inconsistent with the repository language tags, determining a language tag update policy for the data source;
responsive to determining that the language tag update policy indicates preserving an integrity of a first set of the records of the data source, creating a reference metadata based on the repository language tags;
linking the reference metadata to the respective first set of records having inconsistent language tag metadata attributes while maintaining the first set of data records intact with the inconsistent language tag metadata attributes; and
performing a language tag update process for a second set of the records having inconsistent language tag metadata attributes according to the language tag update policy to replace the inconsistent language tag metadata attributes based on the repository language tags.
2. The method of claim 1, further comprising:
monitoring the standardized language tag repository for a change to a repository language tag; and
responsive to detecting a change to the repository language tag, automatically updating a language tag table with a change history for the repository language tag.
3. The method of claim 2, further comprising identifying the language tags in the records of the data source inconsistent with the repository language tags based on the change history in the language tag table.
4. The method of claim 2, further comprising:
monitoring the data source for added records;
in response to detecting added records, determining whether the added records have language tags inconsistent with the repository language tags based on the language tag table; and
in response to determining that the added records have language tags inconsistent with the repository language tags, automatically performing the language tag update process for the added records according to the language tag update policy.
5. The method of claim 1, further comprising, upon completion of the language tag update process, automatically verifying the consistency of the language tag metadata attributes of the records of the data source based on the repository language tags.
US14/100,157 2013-11-20 2013-12-09 Language tag management on international data storage Expired - Fee Related US9864793B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US14/100,157 US9864793B2 (en) 2013-11-20 2013-12-09 Language tag management on international data storage
DE102014116369.9A DE102014116369A1 (en) 2013-11-20 2014-11-10 MANAGEMENT OF LANGUAGE MARKERS IN INTERNATIONAL DATA STORAGE
US15/803,576 US10621211B2 (en) 2013-11-20 2017-11-03 Language tag management on international data storage
US15/803,598 US10621212B2 (en) 2013-11-20 2017-11-03 Language tag management on international data storage

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/084,890 US9830376B2 (en) 2013-11-20 2013-11-20 Language tag management on international data storage
US14/100,157 US9864793B2 (en) 2013-11-20 2013-12-09 Language tag management on international data storage

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/084,890 Continuation US9830376B2 (en) 2013-11-20 2013-11-20 Language tag management on international data storage

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US15/803,598 Continuation US10621212B2 (en) 2013-11-20 2017-11-03 Language tag management on international data storage
US15/803,576 Continuation US10621211B2 (en) 2013-11-20 2017-11-03 Language tag management on international data storage

Publications (2)

Publication Number Publication Date
US20150142813A1 US20150142813A1 (en) 2015-05-21
US9864793B2 true US9864793B2 (en) 2018-01-09

Family

ID=53174362

Family Applications (4)

Application Number Title Priority Date Filing Date
US14/084,890 Expired - Fee Related US9830376B2 (en) 2013-11-20 2013-11-20 Language tag management on international data storage
US14/100,157 Expired - Fee Related US9864793B2 (en) 2013-11-20 2013-12-09 Language tag management on international data storage
US15/803,576 Active 2034-02-11 US10621211B2 (en) 2013-11-20 2017-11-03 Language tag management on international data storage
US15/803,598 Active 2034-02-27 US10621212B2 (en) 2013-11-20 2017-11-03 Language tag management on international data storage

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US14/084,890 Expired - Fee Related US9830376B2 (en) 2013-11-20 2013-11-20 Language tag management on international data storage

Family Applications After (2)

Application Number Title Priority Date Filing Date
US15/803,576 Active 2034-02-11 US10621211B2 (en) 2013-11-20 2017-11-03 Language tag management on international data storage
US15/803,598 Active 2034-02-27 US10621212B2 (en) 2013-11-20 2017-11-03 Language tag management on international data storage

Country Status (3)

Country Link
US (4) US9830376B2 (en)
CN (1) CN104657402B (en)
DE (1) DE102014116369A1 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569421B2 (en) * 2012-10-31 2017-02-14 Excalibur Ip, Llc Method and system for improved language identification using language tags
US10169373B2 (en) * 2014-08-26 2019-01-01 Sugarcrm Inc. Retroreflective object tagging
US20160267075A1 (en) * 2015-03-13 2016-09-15 Panasonic Intellectual Property Management Co., Ltd. Wearable device and translation system
US10152476B2 (en) * 2015-03-19 2018-12-11 Panasonic Intellectual Property Management Co., Ltd. Wearable device and translation system
US10437586B2 (en) * 2017-01-03 2019-10-08 Infosys Limited Method and system for dynamic impact analysis of changes to functional components of computer application
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11271955B2 (en) * 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US11615208B2 (en) * 2018-07-06 2023-03-28 Capital One Services, Llc Systems and methods for synthetic data generation
US11200294B2 (en) * 2019-03-20 2021-12-14 Hisense Visual Technology Co., Ltd. Page updating method and display device
US11727083B2 (en) * 2019-09-13 2023-08-15 Oracle International Corporation System and method for automatic selection for dynamic site compilation within a cloud-based content hub environment
US11372947B2 (en) * 2019-09-13 2022-06-28 Oracle International Corporation System and method for automatic selection for dynamic site compilation within a cloud-based content hub environment
CN111177123A (en) * 2019-12-30 2020-05-19 联想(北京)有限公司 Method, apparatus, electronic device and medium for optimizing tag library
US11586820B2 (en) * 2020-08-10 2023-02-21 Ebay Inc. Techniques for enhancing the quality of human annotation

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030154071A1 (en) * 2002-02-11 2003-08-14 Shreve Gregory M. Process for the document management and computer-assisted translation of documents utilizing document corpora constructed by intelligent agents
US20040034521A1 (en) * 2000-10-13 2004-02-19 Yasushi Kawakura Data relay system, data relay method, data relay program, information processing method, and information processing program
US20050065930A1 (en) * 2003-09-12 2005-03-24 Kishore Swaminathan Navigating a software project repository
US20050234785A1 (en) 2004-04-13 2005-10-20 Burman Robert F Electronic shipping label with updateable visual display
CN101043346A (en) 2006-03-22 2007-09-26 腾讯科技(深圳)有限公司 Method and system for adding label for contacts
WO2007148289A2 (en) 2006-06-23 2007-12-27 Koninklijke Philips Electronics N.V. Representing digital content metadata
US7548927B2 (en) 2005-04-21 2009-06-16 Microsoft Corporation Abstracted metadata policy component and related architecture
US20090287671A1 (en) * 2008-05-16 2009-11-19 Bennett James D Support for international search terms - translate as you crawl
US20090287471A1 (en) * 2008-05-16 2009-11-19 Bennett James D Support for international search terms - translate as you search
US7627598B1 (en) * 1998-06-26 2009-12-01 Alexander James Burke User interface and search system for internet and other applications
US20090299725A1 (en) * 2008-06-03 2009-12-03 International Business Machines Corporation Deep tag cloud associated with streaming media
CN101996207A (en) 2009-08-24 2011-03-30 宏碁股份有限公司 File tag system and method for searching and managing file tag
US20110270602A1 (en) * 2010-04-29 2011-11-03 International Business Machines Corporation Opening A Message Catalog File For a Language That Is Not Installed
US20110301938A1 (en) * 2010-06-08 2011-12-08 Oracle International Corporation Multilingual tagging of content with conditional display of unilingual tags
US20120226490A1 (en) * 2009-07-09 2012-09-06 Eliyahu Mashiah Content sensitive system and method for automatic input language selection
US20130254553A1 (en) * 2012-03-24 2013-09-26 Paul L. Greene Digital data authentication and security system
US8676863B1 (en) * 2008-09-15 2014-03-18 Liberty Mutual Insurance Company Maintaining a relational database and its schema in response to a stream of XML messages based on one or more arbitrary and evolving XML schemas
US20140122055A1 (en) * 2012-10-31 2014-05-01 Yahoo! Inc. Method and system for improved language identification using language tags
US20140309993A1 (en) * 2013-04-10 2014-10-16 Nuance Communications, Inc. System and method for determining query intent
US20150142794A1 (en) * 2013-11-18 2015-05-21 Oracle International Corporation Hierarchical linguistic tags for documents

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129021A1 (en) * 2000-12-26 2002-09-12 Appareon System, method and article of manufacture for handling global data in a supply chain system
US7086004B2 (en) * 2001-04-19 2006-08-01 International Business Machines Corporation Generalized mechanism for unicode metadata
JP2002333895A (en) * 2001-05-10 2002-11-22 Sony Corp Information processor and information processing method, recording medium and program
US7043716B2 (en) * 2001-06-13 2006-05-09 Arius Software Corporation System and method for multiple level architecture by use of abstract application notation
US8266215B2 (en) * 2003-02-20 2012-09-11 Sonicwall, Inc. Using distinguishing properties to classify messages
US20070255712A1 (en) * 2005-01-10 2007-11-01 Instant Information Inc. Methods and systems for enabling the collaborative management of information using controlled access electronic workspace
US7792833B2 (en) * 2005-03-03 2010-09-07 Microsoft Corporation Ranking search results using language types
US7783644B1 (en) * 2006-12-13 2010-08-24 Google Inc. Query-independent entity importance in books
US8996376B2 (en) * 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
JP5879260B2 (en) * 2009-06-09 2016-03-08 イービーエイチ エンタープライズィーズ インコーポレイテッド Method and apparatus for analyzing content of microblog message
US9262398B2 (en) * 2011-05-31 2016-02-16 Google Inc. Language set disambiguator
US9368104B2 (en) * 2012-04-30 2016-06-14 Src, Inc. System and method for synthesizing human speech using multiple speakers and context
US9672209B2 (en) * 2012-06-21 2017-06-06 International Business Machines Corporation Dynamic translation substitution
EP2946279B1 (en) * 2013-01-15 2019-10-16 Viki, Inc. System and method for captioning media

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627598B1 (en) * 1998-06-26 2009-12-01 Alexander James Burke User interface and search system for internet and other applications
US20040034521A1 (en) * 2000-10-13 2004-02-19 Yasushi Kawakura Data relay system, data relay method, data relay program, information processing method, and information processing program
US20030154071A1 (en) * 2002-02-11 2003-08-14 Shreve Gregory M. Process for the document management and computer-assisted translation of documents utilizing document corpora constructed by intelligent agents
US20050065930A1 (en) * 2003-09-12 2005-03-24 Kishore Swaminathan Navigating a software project repository
US20050234785A1 (en) 2004-04-13 2005-10-20 Burman Robert F Electronic shipping label with updateable visual display
US7548927B2 (en) 2005-04-21 2009-06-16 Microsoft Corporation Abstracted metadata policy component and related architecture
CN101043346A (en) 2006-03-22 2007-09-26 腾讯科技(深圳)有限公司 Method and system for adding label for contacts
WO2007148289A2 (en) 2006-06-23 2007-12-27 Koninklijke Philips Electronics N.V. Representing digital content metadata
US20090282060A1 (en) * 2006-06-23 2009-11-12 Koninklijke Philips Electronic N.V. Representing digital content metadata
US20090287671A1 (en) * 2008-05-16 2009-11-19 Bennett James D Support for international search terms - translate as you crawl
US20090287471A1 (en) * 2008-05-16 2009-11-19 Bennett James D Support for international search terms - translate as you search
US20090299725A1 (en) * 2008-06-03 2009-12-03 International Business Machines Corporation Deep tag cloud associated with streaming media
US8676863B1 (en) * 2008-09-15 2014-03-18 Liberty Mutual Insurance Company Maintaining a relational database and its schema in response to a stream of XML messages based on one or more arbitrary and evolving XML schemas
US20120226490A1 (en) * 2009-07-09 2012-09-06 Eliyahu Mashiah Content sensitive system and method for automatic input language selection
CN101996207A (en) 2009-08-24 2011-03-30 宏碁股份有限公司 File tag system and method for searching and managing file tag
US20110270602A1 (en) * 2010-04-29 2011-11-03 International Business Machines Corporation Opening A Message Catalog File For a Language That Is Not Installed
US20110301938A1 (en) * 2010-06-08 2011-12-08 Oracle International Corporation Multilingual tagging of content with conditional display of unilingual tags
US20130254553A1 (en) * 2012-03-24 2013-09-26 Paul L. Greene Digital data authentication and security system
US20140122055A1 (en) * 2012-10-31 2014-05-01 Yahoo! Inc. Method and system for improved language identification using language tags
US20140309993A1 (en) * 2013-04-10 2014-10-16 Nuance Communications, Inc. System and method for determining query intent
US20150142794A1 (en) * 2013-11-18 2015-05-21 Oracle International Corporation Hierarchical linguistic tags for documents

Non-Patent Citations (11)

* Cited by examiner, † Cited by third party
Title
Internationalization and Localization-Facebook Developers; Internet site (https://developers.facebook.com/docs/opengraph/guides/internationalization/); Last update Sep. 2013.
Internationalization and Localization—Facebook Developers; Internet site (https://developers.facebook.com/docs/opengraph/guides/internationalization/); Last update Sep. 2013.
Ishida, Richard; Choosing a Language Tag; WC3; First published Dec. 3, 2009; Last substantive update Feb. 22, 2011.
Ishida, Richard; Language tags in HTML and XML; WC3; First published Sep. 20, 2006; Last substantive update Sep. 10, 2009.
ISO/DIS 25577; Information and documentation-MarcXchange; Draft review/comment version of International Standard; International Organization for Standardization; 2006.
ISO/DIS 25577; Information and documentation—MarcXchange; Draft review/comment version of International Standard; International Organization for Standardization; 2006.
ISO/DIS 2709; Information and documentation-Format for information exchange; Draft review/comment version of International Standard; International Organization for Standardization; Jul. 12, 2005.
ISO/DIS 2709; Information and documentation—Format for information exchange; Draft review/comment version of International Standard; International Organization for Standardization; Jul. 12, 2005.
Paper of Record website; Internet site (https://paperofrecord.hypernet.ca/default.asp); retrieved Nov. 4, 2013.
Phillips, A., et al.; RFC 5646; Tags for Identifying Languages; Network Working Group; BCP 47 Specification; Sep. 2009.
Rahm, Erhard, et al.; Data Cleaning: Problems and Current Approaches; IEEE Technical Bulletin on Data Engineering; Dec. 2000.

Also Published As

Publication number Publication date
US9830376B2 (en) 2017-11-28
US10621211B2 (en) 2020-04-14
US20150142764A1 (en) 2015-05-21
US20180060415A1 (en) 2018-03-01
US20180060414A1 (en) 2018-03-01
US20150142813A1 (en) 2015-05-21
US10621212B2 (en) 2020-04-14
DE102014116369A1 (en) 2015-05-21
CN104657402B (en) 2017-12-12
CN104657402A (en) 2015-05-27

Similar Documents

Publication Publication Date Title
US10621212B2 (en) Language tag management on international data storage
US8140907B2 (en) Accelerated virtual environments deployment troubleshooting based on two level file system signature
JP3946057B2 (en) Consistency inspection support method and consistency inspection support system
US11157390B2 (en) Automatic software defect repair
US8245217B2 (en) Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine
US7624394B1 (en) Software installation verification
US10929125B2 (en) Determining provenance of files in source code projects
US8126859B2 (en) Updating a local version of a file based on a rule
US20160306627A1 (en) Determining errors and warnings corresponding to a source code revision
US20130159989A1 (en) Fix delivery system
Chyrun et al. Web Resource Changes Monitoring System Development.
US11244025B2 (en) Systems and methods for updating data pipelines
CN110347573B (en) Application program analysis method, device, electronic equipment and computer readable medium
CN110716804A (en) Method and device for automatically deleting useless resources, storage medium and electronic equipment
JP6336919B2 (en) Source code review method and system
US20210200833A1 (en) Health diagnostics and analytics for object repositories
CN102591859B (en) Method and relevant device for reusing industrial standard formatted files
US11256602B2 (en) Source code file retrieval
US11176312B2 (en) Managing content of an online information system
US10866993B2 (en) Managing online help information in a data center
CN112817931A (en) Method and device for generating incremental version file
US11829230B2 (en) Globally unique error codes for knowledge document indexing in software systems
JP6798340B2 (en) Operational specification analyzer, operation specification analysis method and operation specification analysis program
CN114090428A (en) Information processing method, information processing device, computer-readable storage medium and computer equipment
CN116361171A (en) Test processing method and device, electronic equipment and computer storage medium

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BURGMEIER, AMANDA Y.;LIU, SU;WEIDEMANN, KIAI;SIGNING DATES FROM 20131101 TO 20131104;REEL/FRAME:031738/0955

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20220109