DATA TRANSFORMATION SYSTEM AND METHOD
20240037348 ยท 2024-02-01
Assignee
Inventors
Cpc classification
G06F5/00
PHYSICS
G06Q10/087
PHYSICS
G06F40/47
PHYSICS
H04M3/487
ELECTRICITY
G06Q30/0633
PHYSICS
International classification
G06F40/47
PHYSICS
G06Q10/087
PHYSICS
Abstract
A method of transforming data including receiving data in a first language specific form, converting the data in the first language specific form to a language agnostic form, storing the data in the language agnostic form, converting the data in the language agnostic form to at least one second language specific form and exporting, on demand, the data in at least one of the at least one second language specific form.
Claims
1-87. (canceled)
88. A method of transforming data comprising: receiving unstructured product data describing attributes of an article, said unstructured product data comprising attribute values, which are assignable to a multiplicity of structured product attributes; automatically converting said unstructured product data to structured product data in a form suitable for export to a specific electronic commerce platform, said structured product data comprising, for each attribute of said article, an attribute value associated with said attribute and at least one of a language specific attribute name of said attribute and a language agnostic attribute ID associated with said attribute; and exporting said structured product data to the specific electronic commerce platform in said form suitable for export.
89. The method according to claim 88 and wherein said language agnostic attribute ID is specific to said electronic commerce platform.
90. The method according to claim 88 and wherein said unstructured product data and said structured product data are in the same language.
91. The method according to claim 88 and wherein said unstructured product data and said structured product data are in the different languages.
92. The method according to claim 88 and wherein said automatically converting comprises automatically converting measurements to units of measure applicable to said specific electronic commerce platform.
93. The method according to claim 88 and wherein said automatically converting comprises automatically converting prices to a currency applicable to said specific electronic commerce platform.
94. The method according to claim 88 and wherein said automatically converting comprises utilizing a pricing policy applicable to said specific electronic commerce platform.
95. The method according to claim 88 and wherein said automatically converting said unstructured product data to structured product data in a form suitable for export comprises: analyzing said unstructured product data; and extracting, from said unstructured product data, unstructured product-specific attribute values, which are assignable to corresponding ones of said multiplicity of structured product attributes.
96. The method according to claim 95 and wherein said automatically converting said unstructured product data to structured product data in a form suitable for export also comprises, subsequent to said extracting, assigning each of said unstructured product-specific attribute values to a corresponding one of said structured product attributes as at least one of a value and a value ID.
97. The method according to claim 88 and wherein said receiving said unstructured product data comprises automatically retrieving said unstructured product data from an electronic commerce platform different from said specific electronic commerce platform.
98. A system for transforming data comprising: a data receptacle, receiving unstructured product data describing attributes of an article, said unstructured product data comprising attribute values, which are assignable to a multiplicity of structured product attributes; a data transformer, automatically converting said unstructured product data to structured product data in a form suitable for export to a specific electronic commerce platform, said structured product data comprising, for each attribute of said article, an attribute value associated with said attribute and at least one of a language specific attribute name of said attribute and a language-agnostic attribute ID associated with said attribute; and a marketplace listing exporter, exporting said structured product data to said specific electronic commerce platform in said form suitable for export.
99. The system according to claim 98 and wherein said language agnostic attribute ID is specific to said electronic commerce platform.
100. The system according to claim 98 and wherein said unstructured product data and said structured product data are in the same language.
101. The system according to claim 98 and wherein said unstructured product data and said structured product data are in the different languages.
102. The system according to claim 98 and wherein said data transformer automatically converts measurements to units of measure applicable to said specific electronic commerce platform.
103. The system according to claim 98 and wherein said data transformer automatically converts prices to a currency applicable to said specific electronic commerce platform.
104. The system according to claim 98 and wherein said data transformer utilizes a pricing policy applicable to said specific electronic commerce platform.
105. The system according to claim 98 and wherein said data transformer analyzes said unstructured product data and extracts, from said unstructured product data, unstructured product-specific attribute values, which are assignable to corresponding ones of said multiplicity of structured product attributes.
106. The method according to claim 105 and wherein said data transformer assigns each of said unstructured product-specific attribute values to a corresponding one of said structured product attributes as at least one of a value and a value ID.
107. The system according to claim 98 and wherein said data receptacle automatically retrieves said unstructured product data from an electronic commerce platform different from said specific electronic commerce platform.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0053] The present invention will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which:
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
[0080] Reference is now made to
[0081] Conventional electronic commerce platforms typically facilitate listing of products in a semi-structured form. The formats required for listing feeds to the various conventional electronic commerce platforms differ from one to the other and are language specific. Therefore, merchants wishing to list product offerings on a wide range of electronic commerce platforms typically need to list their products separately on each electronic commerce platform and in every desired language.
[0082] It is a particular feature of an embodiment of the present invention that it facilitates importing unstructured product listings in any of a first plurality of languages, converting the imported product listings to a structured language-agnostic form, and subsequently providing the product listings in any of a second plurality of languages. The system of an embodiment of the present invention renders a product listing suitable for listing in a structured multi-language catalog or on any suitable electronic commerce platform, in any language.
[0083] It is appreciated that the second plurality of languages typically also includes the language of the original product listing and that the system of an embodiment of the present invention may be utilized to import an unstructured product listing in a first language and to provide a structured product listing in the same language.
[0084] As seen in
[0085] The data manipulation functionality 102 of data transformation system 100 preferably includes at least the following, preferably interfacing with database 110:
[0086] unstructured product data receiving functionality 120, which is described further hereinbelow with reference to
[0094] These functionalities are explained further hereinbelow with reference to
[0095] Reference is now made to
[0096] As seen in the illustrated embodiment of
[0097] It is appreciated that each of the examples of seller listing feed files in
[0098] Unstructured Product Data Receiving Functionality (UPDRF) 120 is illustrated generally in
[0099] Feed uploading tool 122 includes, inter alia, input data column mapper 124, which, on the basis of instructions received from the seller, maps the columns in the seller listing feed file to columns in database 110. The input data column mapper 124 provides a mapping instruction output, which is employed by unstructured product data receiving functionality 120 of data transformation system 100 to rearrange the columns in the seller listing feed file to correspond to the columns in database 110 and then uploads the rearranged data to database 110.
[0100] A simplified flow chart summarizing a preferred process for uploading a seller listing feed file to the database 110 appears in
[0101] Feed File Receiving Functionality 128 includes data writing functionality 130, which writes data from each row in the seller listing feed into a corresponding row in the database 110 in accordance with the mapping instructions generated by input data column mapper 124. The data writing functionality 130 also adds to each row a unique listing key, which is preferably generated by operation of a hash function, such as a conventional MD5 hash function, on the listing data.
[0102] The data writing functionality 130 also preferably adds to each row an update date, indicating the date at which the seller listing data is uploaded to database 110.
[0103] Feed File Receiving Functionality 128 also includes a NEED TO PROCESS ascertainer 132, which ascertains whether a newly loaded listing relates to a listing already present on the database, and if not, lists the newly loaded listing as being subject to a need to process. The NEED TO PROCESS ascertainer 132 compares the unique listing key of the newly added row with the unique listing key of all listings in the database. If no match is found, a NEED TO PROCESS flag appears in a NEED TO PROCESS column of the newly added row.
[0104] Feed File Receiving Functionality 128 additionally includes classifier/matcher trigger 134. Classifier/matcher trigger 134 operates only when the entire seller listing feed file has been uploaded to database 110 and a unique listing key has been generated for each new row.
[0105] Following uploading of the entire seller listing feed file, the classifier/matcher trigger 134 initiates classification/matching functionality 136, which processes rows in which a NEED TO PROCESS flag appears in the NEED TO PROCESS column of a newly added row. Classification/matching functionality 136 attempts to match a new listing with a product which is already in database 110.
[0106] An exemplary updated unstructured language specific listing table stored in database 110, which includes the listing data appearing in the seller listing feed files of
[0107] As described hereinabove, following uploading of the entire seller listing feed file, the classifier/matcher trigger 134 initiates classification/matching functionality 136 which processes rows in which a NEED TO PROCESS flag appears.
[0108] Classification/matching functionality 136 is described hereinbelow with respect to
[0109] As seen in
[0110] Should matching using a unique product identifier not be achieved, classification/matching functionality 136 then tries to extract a manufacturer and Manufacturer's Product Number, which may consist of numbers and letters, normally in Latin characters, from the new listing. If a manufacturer and a Manufacturer's Product Number is extracted from the data in the listing description column of a row as stored in database 110 (
[0111] Should matching using a unique product identifier or a manufacturer and Manufacturer's Product Number not be achieved, classification/matching functionality 136 then tries to identify the language of the new listing. This is achieved using conventional techniques, such as can be found at https://pypi.python.org/pypi/langdetect.
[0112] Once the language of the new listing is identified, the listing is classified into a category. Classification/matching functionality 136 classifies the listing into a category by employing language specific functionality, and preferably employing a trained statistical model to classify all of the listing data in each newly added row and to classify the row as relating to one of a plurality of categories in a category structure table, stored in database 110, a simplified example of which appears in
[0113] Considering
[0114] Once the category of the listing is ascertained, unstructured product data extracting functionality 140 extracts various attributes and values from the listing data and stores the attributes and values in a listing extracted data language specific cache. An example of such a step is illustrated diagrammatically in
[0115] From a consideration of
[0116] Each attribute has an attribute ID.
[0119] Each value has a value ID.
[0120] It is appreciated that various attributes and values can be applicable to multiple categories although this is rare and is generally assumed not to occur.
[0121] It is appreciated that structures exemplified in the tables of
[0122] Preferably the entire language specific/language agnostic table, which typically includes hundreds of thousands, if not millions, of entries is not used in matching. Instead, only those entries in the ascertained language are used, and of those entries, initially only those entries relating to categories (
[0123] Preferably in matching attributes and values, an attempt is first made to match values, using a value table, exemplified in
[0124] Turning once again to
[0125] Returning now to
[0126] If the attributes and values required to establish a product match are extracted, and a product in the database includes all of the attributes and values specified in the matrix, the product in the new listing is matched to a product in the database.
[0127] If the attributes and values required to establish a product match are not extracted, system 100 adds the listing to database 110 utilizing the new product creation and data enrichment functionality 146.
[0128] Reference is now made to
[0129] As seen in
[0130] It is then ascertained whether all of the attribute-value pairs appearing in the new listing appear in the product data as stored in the database. If there are attributes and values in the new listing which do not appear in the product data as stored in the database, these new attributes and values are added to the existing product in database 110.
[0131] If the new listing is not matched to a product already in the database, a new product row is created in the structured product table in database 110. An example of a structured product table appears in
[0132] As seen in
[0133] At this stage, the data in the database 110 is ready for export to one or more marketplaces designated by the seller (
[0134] Preferably, language agnostic product data to language specific product data converting functionality 150 initially converts attributes from language agnostic form into language specific form suitable for the designated marketplace. Thereafter, language agnostic product data to language specific product data converting functionality 150 translates values which are not numbers. As can be seen in
[0135] Since different marketplaces employ different units of measure and currencies, various manipulations of the product data may be carried out by data export functionality 160. Typical rules for such manipulations appear in
[0136] As seen in
[0137] Preferably, selected marketplace listing functionality 170 employs an API of a designated marketplace to board the listing onto the designated marketplace. Selected marketplace listing functionality 170 of system 100 submits a listing feed in a marketplace specific format and language via the API. The marketplace specific format includes the category mapping and attribute-value pair mapping to the specific marketplace. Examples of this mapping are seen in
[0138] There exist cases wherein this mapping is one to one and cases where the mapping is more complex, such as one to many and/or many to one. In such cases, the attribute-value pairs may be involved in the mapping.
[0139] Once the boarded marketplace category of each listed product has been selected, the attribute value pairs are mapped into the specific attribute value pairs of the boarded marketplace. This typically employs a one-to-one mapping. An example of attribute-value pair mapping appears in
[0140] A further important step is unifying the marketplace-specific product information with listing information, which is not included in the product data. One example of such listing information is price information. As noted hereinabove with reference to
[0141] Aside from price, the listing information may include seller selected parameters relating to condition of the product, as seen in
[0142] It will be appreciated by persons skilled in the art that the scope of the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the present invention includes the combinations and subcombinations of the features described hereinabove as well as modifications thereof which are not in the prior art.