US20040216030A1 - Method and system for deriving a transformation by referring schema to a central model - Google Patents

Method and system for deriving a transformation by referring schema to a central model Download PDF

Info

Publication number
US20040216030A1
US20040216030A1 US10/053,045 US5304502A US2004216030A1 US 20040216030 A1 US20040216030 A1 US 20040216030A1 US 5304502 A US5304502 A US 5304502A US 2004216030 A1 US2004216030 A1 US 2004216030A1
Authority
US
United States
Prior art keywords
schema
source
xml
xsl
target
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.)
Abandoned
Application number
US10/053,045
Inventor
Ziv Hellman
Marcel Schreiber
Tom Yuval
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
Individual
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 Individual filed Critical Individual
Priority to US10/053,045 priority Critical patent/US20040216030A1/en
Priority to US10/104,785 priority patent/US7146399B2/en
Priority to EP02006919A priority patent/EP1327941A3/en
Priority to US10/159,516 priority patent/US20030101170A1/en
Assigned to UNICOR SOLUTIONS, INC. reassignment UNICOR SOLUTIONS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YUVAL, TOM Y., SCHREIBER, MARCEL ZVI, HELLMAN, ZIV Z.
Priority to US10/302,370 priority patent/US7673282B2/en
Priority to CA002416102A priority patent/CA2416102A1/en
Priority to US10/340,068 priority patent/US20030163450A1/en
Priority to JP2003007391A priority patent/JP2003233528A/en
Priority to US10/637,171 priority patent/US20040093559A1/en
Priority to US10/637,339 priority patent/US7877421B2/en
Priority to US10/821,464 priority patent/US20050038629A1/en
Publication of US20040216030A1 publication Critical patent/US20040216030A1/en
Priority to US11/026,358 priority patent/US8412746B2/en
Priority to US11/029,966 priority patent/US7930293B2/en
Priority to US11/134,725 priority patent/US7475084B2/en
Priority to US11/165,650 priority patent/US7921098B2/en
Priority to US11/182,455 priority patent/US7472137B2/en
Priority to US11/219,039 priority patent/US20060064666A1/en
Assigned to 2006 TRIDENT COMPANY reassignment 2006 TRIDENT COMPANY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: UNICORN SOLUTIONS, INC.
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: 2006 TRIDENT COMPANY, INC.
Priority to US12/141,637 priority patent/US7962503B2/en
Priority to US12/253,798 priority patent/US8060531B2/en
Priority to US13/421,611 priority patent/US8548938B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • 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/25Integrating or interfacing systems involving database management systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Definitions

  • the present invention relates to data schema, and in particular to deriving transformations for transforming data from one schema to another.
  • Ontology is a philosophy of what exists. In computer science ontology is used to model entities of the real world and the relations between them, so as to create common dictionaries for their discussion. Basic concepts of ontology include (i) classes of instances/things, and (ii) relations between the classes, as described hereinbelow. Ontology provides a vocabulary for talking about things that exist.
  • Ontological models are used to talk about “things.”
  • An important vocabulary tool is “relations” between things.
  • An ontology model itself does not include the “things,” but introduces class and property symbols which can then be used as a vocabulary for talking about and classifying things.
  • Properties are specific associations of things with other things. Properties include:
  • Some properties also relate things to fundamental concepts such as natural numbers or strings of characters—for example, the value of a weight in kilograms, or the name of a person.
  • individual things are referenced by way of properties, for example, a person by his name, or a book by its title and author.
  • knowledge being shared is often a property of things, too.
  • a thing can be specified by way of some of its properties, in order to query for the values of other of its properties.
  • Fiat Cars can also be a class, with a restricted value of a manufacturer property. It may be unnecessary to address this class, however, since Fiat cars may not have special properties of interest that are not common to other cars.
  • Abstract concepts such as measures, as well as media such as a body of water which cannot maintain its identity after coming into contact with other bodies of water, may be modeled as classes with a quantity property mapping them to real numbers.
  • a basic ontology comprises:
  • a set P the elements of which are called “property symbols;”
  • a binary transitive reflexive anti-symmetric relation, I called the inheritance relation on C ⁇ C.
  • C 1 is referred to as a subclass of C 2
  • C 2 is referred to as a superclass of C 1
  • C 1 is said to inherit from C 2 .
  • a distinguished universal class “Being” is typically postulated to be a superclass of all classes in C.
  • Variations on an ontology model may include:
  • instances of the species within the genus are referred to as “instances” of the class.
  • “Gone with the Wind” is an instance of a class for books
  • “IBM” is an instance of a class for companies.
  • the notions of a property symbol is conceptual, in that it serves as a template for actual properties that operate on instances of classes.
  • Class symbols and property symbols are similar to object-oriented classes in computer programming, such as C++ classes.
  • Classes along with their members and field variables, defined within a header file, serve as templates for specific class instances used by a programmer.
  • a compiler uses header files to allocate memory for, and enables a programmer to use instances of classes.
  • a header file can declare a rectangle class with members left, right, top and bottom. The declarations in the header file do not instantiate actual “rectangle objects,” but serve as templates for rectangles instantiated in a program.
  • classes of an ontology serve as templates for instances thereof.
  • C++ classes are templates and they are instantiated to create programming objects.
  • ontology classes document common structure but the instances exist in the real world and are not created through the class.
  • Ontology provides a vocabulary for speaking about instances, even before the instances themselves are identified.
  • a class Book is used to say that an instance “is a Book.”
  • a property Author allows one to create clauses “author of” about an instance.
  • a property Siblings allows one to create statements “are siblings” about instances. Inheritance is used to say, for example, that “every Book is a PublishedWork”. Thus all vocabulary appropriate to PublishedWork can be used for Book.
  • Ontology enables creation of a model of multiple classes and a graph of properties therebetween.
  • a class When a class is defined, its properties are described using handles to related classes. These can in turn be used to look up properties of the related classes, and thus properties of properties can be accessed to any depth.
  • the bag symbol is used for describing unordered finite sequences of a class, namely, subsets that can contain repeated elements, and is followed by a single class or complex class.
  • set[C] describes the class of sets of instances of a class C
  • list[C] describes the class of lists of instances of class C
  • bag[C] describes the class of bags of instances of class C.
  • the composite mapping ⁇ maps a the sequence (s 1 , s 2 , .
  • Relational database schema are used to define templates for organizing data into tables and fields. SQL queries are used to populate tables from existing tables, generally by using table join operations.
  • Extensible markup language (XML) schema are used to described documents for organizing data into a hierarchy of elements and attributes.
  • XSLT script is used to generate XML documents from existing documents, generally by importing data between tags in the existing documents. XSLT was originally developed in order to generate HTML pages from XML documents.
  • the present invention provides a method and system for deriving transformations for transforming data from one schema to another.
  • the present invention describes a general method and system for transforming data confirming with an input, or source data schema into an output, or target data schema.
  • the present invention can be used to provide (i) an SQL query, which when applied to relational databases from a source RDBS, populates relational databases in a target RDBS; and (ii) XSLT script which, when applied to documents conforming with a source XML schema generates documents conforming with a target XML schema.
  • the present invention preferably uses an ontology model to determine a transformation that accomplishes a desired source to target transformation.
  • the present invention employs a common ontology model into which both the source data schema and target data schema can be mapped.
  • the present invention derives interrelationships among their components, and uses the interrelationships to determine a suitable transformation for transforming data conforming with the source data schema into data conforming with the target data schema.
  • source and target RDBS are mapped into a common ontology model
  • the derived transformations of the present invention go directly from source RDBS to target RDBS without having to transform data via an ontological format.
  • prior art Universal Data Model approaches transform via a neutral model or common business objects.
  • the present invention applies to N relational database schema, where N ⁇ 2.
  • N N relational database schema
  • Using the present invention by mapping the RDBS into a common ontology model, data can be moved from any one of the RDBS to any other one.
  • the present invention requires at most N mappings.
  • SQL queries generated by the present invention are preferably deployed within an Enterprise Application Integration infrastructure.
  • transformation languages other than SQL that are used by enterprise application infrastructures can be generated using the present invention.
  • IBM's ESQL language can similarly be derived for deployment on their WebSphere MQ family of products.
  • a method for deriving transformations for transforming data from one data schema to another including receiving a source data schema and a target data schema, mapping the source data schema into an ontology model, mapping the target data schema into the ontology model, and deriving a transformation for transforming data conforming to the source data schema into data conforming to the target data schema, using the ontology model.
  • a system for deriving transformations for transforming data from one data schema to another including a schema receiver receiving a source data schema and a target data schema, a mapping processor mapping a data schema into an ontology model, and a transformation processor deriving a transformation for transforming data conforming to the source data schema into data conforming to the target data schema, based on respective source and target mappings generated by said mapping processor for mapping said source data schema and said target data schema into a common ontology model.
  • a system for building an ontology model into which data schema can be embedded including a schema receiver receiving at least one data schema, and a model builder building an ontology model into which the at least one data schema can be embedded.
  • an article of manufacture including one or more computer-readable media that embody a program of instructions for transforming data from one schema to another, wherein the program of instructions, when executed by a processing system, causes the processing system to receive a source data schema and a target data schema, map the source data schema into an ontology model, map the target data schema into the ontology model, and derive a transformation for transforming data conforming to the source data schema into data conforming to the target relational database schema, using the ontology model.
  • an article of manufacture including one or more computer-readable media that embody a program of instructions for building a common ontology model into which data schema can be embedded, wherein the program of instructions, when executed by a processing system, causes the processing system to receive at least one data schema, and build an ontology model into which the at least one data schema can be embedded.
  • FIG. 1 is a simplified flowchart of a method for deriving transformations for transforming data from one schema to another, in accordance with a preferred embodiment of the present invention
  • FIG. 2 is a simplified block diagram of a system for deriving transformations for transforming data from one schema to another, in accordance with a preferred embodiment of the present invention
  • FIG. 3 is a simplified flowchart of a method for building a common ontology model into which one or more data schema can be embedded, in accordance with a preferred embodiment of the present invention
  • FIG. 4 is a simplified block diagram of a system for building a common ontology model into which one or more data schema can be embedded, in accordance with a preferred embodiment of the present invention
  • FIG. 5 is a simplified illustration of a mapping from an RDBS into an ontology model, in accordance with a preferred embodiment of the present invention
  • FIG. 6 is a second simplified illustration of a mapping from an RDBS into an ontology model, in accordance with a preferred embodiment of the present invention.
  • FIG. 7 is a simplified illustration of relational database transformations involving constraints and joins, in accordance with a preferred embodiment of the present invention.
  • FIG. 8 is a simplified illustration of use of a preferred embodiment of the present invention to deploy XSLT scripts within an EAI product such as Tibco;
  • FIGS. 9A-9E are illustrations of a user interface for a software application that transforms data from one relational database schema to another, in accordance with a preferred embodiment of the present invention.
  • FIG. 10 is an illustration of a user interface for an application that imports an RDBS into the software application illustrated in FIGS. 8A-8E, in accordance with a preferred embodiment of the present invention
  • FIGS. 11A-11R are illustrations of a user interface for a software application that transforms data from one XML schema to another, in accordance with a preferred embodiment of the present invention
  • FIG. 12 is an illustration of ontology model corresponding to a first example
  • FIG. 13 is an illustration of ontology model corresponding to a second example
  • FIG. 14 is an illustration of ontology model corresponding to a third example
  • FIG. 15 is an illustration of ontology model corresponding to a fourth example
  • FIG. 16 is an illustration of ontology model corresponding to a fifth and sixth example
  • FIG. 17 is an illustration of ontology model corresponding to a seventh example.
  • FIG. 18 is an illustration of ontology model corresponding to an eighth example
  • FIG. 19 is an illustration of ontology model corresponding to a ninth example
  • FIG. 20 is an illustration of ontology model corresponding to a tenth example
  • FIG. 21 is an illustration of ontology model corresponding to an eleventh example
  • FIG. 22 is an illustration of ontology model corresponding to a twelfth and seventeenth example.
  • FIG. 23 is an illustration of ontology model corresponding to a thirteenth example
  • FIG. 24 is an illustration of ontology model corresponding to a fourteenth example
  • FIG. 25 is an illustration of ontology model corresponding to a twenty-second example.
  • FIG. 26 is an illustration of ontology model corresponding to a twenty-third example.
  • the present invention concerns deriving transformations for transforming data conforming with one data schema to data conforming to another data schema.
  • Preferred embodiments of the invention are described herein with respect to table-based data schema, such as RDBS and document-based schema, such as XML schema.
  • FIG. 1 is a simplified flowchart of a method for deriving transformations for transforming data from one schema to another, in accordance with a preferred embodiment of the present invention.
  • the flowchart begins at step 110 .
  • a source data schema and a target data schema are imported. These data schema describe templates for storing data, such as templates for tables and table columns, and templates for structured documents. If necessary, the source data schema and/or the target data schema may be converted from a standard format to an internal format. For example, they may be converted from Oracle format to an internal format.
  • a common ontology model is obtained, into which the source data schema and the target data schema can both be embedded.
  • a determination is made as to whether or not an initial ontology model is to be imported. If not, logic passes directly to step 160 . Otherwise, at step 140 an initial ontology model is imported. If necessary, the initial ontology model may be converted from a standard format, such as one of the formats mentioned hereinabove in the Background, to an internal format.
  • step 170 the source and target data schema are mapped into the common ontology model, and mappings therefor are generated.
  • a transformation is derived for transforming data conforming with the source data schema into data conforming with the target data schema, based on the mappings derived at step 170 .
  • the flowchart terminates at step 190 .
  • FIG. 2 is a simplified block diagram of a system 200 for deriving transformations for transforming data from one schema to another, in accordance with a preferred embodiment of the present invention.
  • a schema receiver 210 for importing a source data schema and a target data schema. These data schema describe templates for storing data, such as templates for tables and table columns, and templates for structured documents. If necessary, schema receiver 210 converts the source and target data schema from an external format to an internal format.
  • an ontology receiver/builder 220 for obtaining a common ontology model, into which the source data schema and the target data schema can both be embedded.
  • the operation of ontology receiver/builder 220 is described hereinabove in steps 130 - 160 of FIG. 1.
  • mapping processor 230 uses mapping processor 230 to generate respective source and target mappings, for mapping the source data schema into the common model and for mapping the target data schema into the common ontology model.
  • mapping processor 230 includes a class identifier 240 for identifying ontology classes with corresponding to components of the source and target data schema, and a property identifier 250 for identifying ontology properties corresponding to other components of the source and target data schema, as described in detail hereinbelow.
  • the source and target mappings generated by mapping processor, and the imported source and target data schema are used by a transformation generator 260 to derive a source-to-target transformation, for transforming data conforming to the source data schema into data conforming to the target data schema.
  • FIG. 3 is a simplified flowchart of a method for building a common ontology model into which one or more data schema can be embedded, in accordance with a preferred embodiment of the present invention.
  • the flowchart begins are step 310 .
  • Steps 120 , 140 and 160 are similar to these same steps in FIG. 1, as described hereinabove.
  • the flowchart terminates at step 320 .
  • FIG. 4 is a simplified block diagram of a system 400 for building a common ontology model into which one or more data schema can be embedded, in accordance with a preferred embodiment of the present invention.
  • schema receiver 210 from FIG. 2 for importing data schema.
  • ontology receiver 420 for importing an initial ontology model. If necessary, ontology receiver 420 converts the initial ontology model from an external format to an internal format.
  • the initial ontology model and the imported data schema are used by an ontology builder 430 for generating a common ontology model, into which the imported data schema can all be embedded.
  • ontology builder 430 generates the common ontology model by editing the initial ontology model; specifically, by using a class builder 440 to add classes thereto based on components of the imported data schema, and by using a property builder 450 to add properties thereto based on other components of the imported data schema.
  • Relational database schema also referred to as table definitions or, in some instances, metadata
  • RDBS Relational database schema
  • table definitions or, in some instances, metadata
  • metadata are used to define templates for organizing data into tables and table columns, also referred to as fields.
  • the present invention describes a general method and system for transforming an input, or source relational database schema into an output, or target schema.
  • the present invention can be used to provide an SQL query, which when applied to a relational database from the source schema, produces a relational database in the target schema.
  • the present invention preferably uses an ontology model to determine an SQL query that accomplishes a desired source to target transformation.
  • the present invention employs a common ontology model into which both the source RDBS and target RDBS can be mapped.
  • the present invention derives interrelationships among their tables and fields, and uses the interrelationships to determine a suitable SQL query for transforming databases conforming with the source RDBS into databases conforming with the target RDBS.
  • the present invention can also be used to derive executable code that transforms source relational databases into the target relational databases.
  • the present invention creates a Java program that executes the SQL query using the JDBC (Java Database Connectivity) library.
  • the Java program manipulates the databases directly, without use of an SQL query.
  • SQL queries generated by the present invention are preferably deployed within an Enterprise Application Integration infrastructure.
  • the present invention applies to N relational database schema, where N ⁇ 2.
  • N N relational database schema
  • a “mapping” from an RDBS into an ontology model is defined as:
  • a mapping from an RDBS into an ontology model need not be surjective. That is, there may be classes and properties in the ontology that do not correspond to tables and columns, respectively, in the RDBS.
  • a mapping is useful in providing a graph representation of an RDBS.
  • mappings from an RDBS into an ontology model may exist, the nomenclature used in the RDBS may differ entirely from that used in the ontology model. Part of the utility of the mapping is being able to translate between RDBS language and ontology language. It may be appreciated by those skilled in the art, that in addition to translating between RDBS table/column language and ontology class/property language, a mapping is also useful in translating between queries from an ontology query language and queries from an RDBS language such as SQL (standard query language).
  • SQL standard query language
  • FIG. 5 is a first simplified illustration of a mapping from an RDBS into an ontology model, in accordance with a preferred embodiment of the present invention.
  • a table 500 denoted T1, having four columns denoted C1, C2, C3 and C4.
  • an ontology model 550 having a class denoted K1 and properties P1, P2, P3 and P4 defined on class T1.
  • the labeling indicates a mapping from table T1 into class K1, and from columns C1, C2, C3 and C4 into respective properties P1, P2, P3 and P4.
  • FIG. 6 is a second simplified illustration of a mapping from an RDBS into an ontology model, in accordance with a preferred embodiment of the present invention.
  • table T1 from FIG. 5, and a second table 600 , denoted T2, having four columns denoted D1, D2, D3 and D4.
  • Column C1 of table T1 is a key; i.e., each entry for column C1 is unique, and can be used as an identifier for the row in which it is situated.
  • Column D3 of table T2 refers to table T1, by use of the key from column C1. That is, each entry of column D3 refers to a row within table T1, and specifies such row by use of the key from C1 for the row.
  • an ontology model 650 having two classes, denoted K1 and K2.
  • Class K1 has properties P1, P2, P3 and P4 defined thereon
  • class K2 has properties Q1, Q2, Q4 and S defined thereon
  • Property S has as its source class K1 and as its target class K2.
  • the labeling indicates a mapping from table T1 into class K1, and from columns C1, C2, C3 and C4 into respective properties P1, P2, P3 and P4.
  • C1 serves as a key corresponds to property P1 being one-to-one, so that no two distinct instances of class K1 have the same values for property P1.
  • the labeling also indicates a mapping from table T2 into class K2, and from columns D1, D2 and D4 into respective properties Q1, Q2 and Q4.
  • Column D3 corresponds to a composite property P1oS, where o denotes function composition.
  • column D3 corresponds to property P1 of S(K2).
  • the targets of properties P1, P2, P3, P4, Q1, Q2 and Q4 are not shown in FIG. 6, since these properties preferably map into fundamental types corresponding to the data types of the corresponding columns entries.
  • the target of P1 may be an integer
  • the target of P2 may be a floating point number
  • the target of P3 may be a character string.
  • Classes for such fundamental types are not shown in order to focus on more essential parts of ontology model 650 .
  • Classes K1 and K2, and property S are indicated with dotted lines in ontology model 650 . These parts of the ontology are transparent to the RDBS underlying tables T1 and T2. They represent additional structure present in the ontology model which is not directly present in the RDBS.
  • an appropriate transformation of source to target RDBS is generated by:
  • FIG. 7 is a simplified illustration of relational database transformations involving constraints and joins, in accordance with a preferred embodiment of the present invention.
  • the present invention preferably uses an ontology model to determine an XSLT transformation that accomplishes a desired source to target transformation.
  • the present invention employs a common ontology model into which both the source XML schema and target XML schema can be mapped.
  • the present invention derives interrelationships among their elements and attributes, and uses the interrelationships to determine suitable XSLT script for transforming documents generating documents conforming with the target XML schema from documents conforming with the source XML schema.
  • the present invention can also be used to derive executable code that transforms source XML documents into the target XML documents.
  • the present invention packages the derived XSLT script with a Java XSLT engine to provide an executable piece of Java code that can execute the transformation.
  • this is used to deploy XSLTs within an EAI product such as Tibco.
  • a function (similar to a plug-in) is installed in a Tibco MessageBroker, which uses the Xalan XSLT engine to run XSLT scripts that are presented in text form.
  • the XSLT script files are preferably compiled to Java classfiles.
  • FIG. 8 is a simplified illustration of use of a preferred embodiment of the present invention to deploy XSLT scripts within an EAI product such as Tibco.
  • Applicant has developed a software application, named COHERENCETM, which implements a preferred embodiment of the present invention to transform data from one schema to another. Coherence enables a user
  • Coherence generates an SQL query to transform the source RDBS into the target RDBS.
  • FIGS. 9A-9E are illustrations of a user interface for transforming data from one relational database schema to another using the Coherence software application, in accordance with a preferred embodiment of the present invention.
  • Shown in FIG. 9A is a main Coherence window 905 with a left pane 910 and a right pane 915 .
  • Window 905 includes three primary tabs 920 , 925 and 930 , labeled Authoring, Mapping and Transformations, respectively.
  • Authoring tab 920 is invoked in order to display information about the ontology model, and to modify the model by adding, deleting and editing classes and properties.
  • Mapping tab 925 is invoked in order to display information about the RDBS and the mappings of the RDBS into the ontology, and to edit the mappings. Transformations tab 930 is invoked to display transformations in the form of SQL queries, from a source RDBS into a target RDBS. In FIG. 9A, tab 920 for Authoring is shown selected.
  • Left pane 910 includes icons for two modes of viewing an ontology: icon 935 for viewing in inheritance tree display mode, and icon 940 for viewing in package display mode.
  • Inheritance tree display mode shows the classes of the ontology in a hierarchical fashion corresponding to superclass and subclass relationships.
  • FIG. 9A in addition to the fundamental classes for Date, Number, Ratio, String and NamedElement, there is a class for City.
  • right pane 915 displays information about the selected class.
  • Right pane 915 includes six tabs for class information display: tab 945 for General, tab 950 for Properties, tab 955 for Subclasses, tab 960 for Enumerated Values, tab 965 for Relations and tab 970 for XML schema. Shown in FIG. 9A is a display under tab 945 for General.
  • the display includes the name of the class, Being, and the package to which it belongs; namely, fundamental. Also shown in the display is a list of immediate superclasses, which is an empty list for class Being. Also shown in the display is a textual description of the class; namely, that Being is a root class for all classes.
  • Tab 960 for Enumerated Values applies to classes with named elements; i.e., classes that include a list of all possible instances. For example, a class Boolean has enumerated values “True” and “False,” and a class Gender may have enumerated values “Male” and “Female.”
  • FIG. 9B illustrates package display mode for the ontology.
  • Packages are groups including one or more ontology concepts, such as classes, and properties. Packages are used to organize information about an ontology into various groupings.
  • FIG. 9B there is a fundamental package that includes fundamental classes, such as Being, Boolean, Date and Integer.
  • a package named WeatherFahrenheit which includes a class named City.
  • City is selected in left pane 910 and, correspondingly, right pane 915 displays information about the class City.
  • Right pane 915 display information under Tab 950 for Properties.
  • class City belongs to the package WeatherFahrenheit, and has four properties; namely, Celsius of type RealNumber, city of type String, Fahrenheit of type RealNumber and year of type RealNumber.
  • FIG. 9C the tab 925 for Mapping is shown selected.
  • two RDBS have been imported into Coherence.
  • a first RDBS named WeatherCelsius, which includes a table named Towns
  • a second RDBS named WeatherFahrenheit, which includes a table named Cities.
  • the table named Cities is shown selected in FIG. 9C, and correspondingly the right pane display information regarding the mapping of Cities into the ontology.
  • the table Cities contains three fields; namely, Fahrenheit, city and year.
  • the table Cities has been mapped into the ontology class City, the field Fahrenheit has been mapped into the ontology property Fahrenheit, the field city has been mapped into the ontology property name, and the field year has been mapped into the ontology property year.
  • the RDBS WeatherFahrenheit will be designated as the source RDBS.
  • the right pane includes three tabs for displaying information about the RDBS: tab 975 for Map Info, tab 980 for Table Info and tab 985 for Foreign Keys.
  • the RDBS named WeatherCelsius is displayed in FIG. 9D.
  • the table Towns contains three fields; namely, town, Celcius and year.
  • the table Towns has been mapped into the ontology class City, the field town has been mapped into the ontology property name, the field Celcius has been mapped into the ontology property Celcius, and the field year had been mapped into the ontology property year.
  • the RDBS WeatherCelcius will be designated as the target RDBS.
  • the target RDBS is TABLE I Towns Town Celcius Year
  • FIG. 9E the tab 930 for Transformations is shown selected.
  • the source table is Cities and the target table is Towns.
  • the SQL query INSERT INTO WeatherCelcius.Towns(CELCIUS, TOWN, YEAR) (SELECT (5 * (A.FAHRENHEIT ⁇ 32)/9) AS CELCIUS, A.CITY AS TOWN, A.YEAR AS YEAR FROM WeatherFahrenheit.Cities A);
  • FIG. 10 is an illustration of a user interface for an application that imports an RDBS into Coherence, in accordance with a preferred embodiment of the present invention. Shown in FIG. 10 is a window 1010 for a schema convertor application. Preferably, a user specifies the following fields:
  • Database Name 1020 What Oracle refers to as an SID (System Identifier).
  • Host Name 1030 The name of an Oracle 8i server (or Global Database Name).
  • Username 1050 The username of a user with privileges to the relevant schemas.
  • Password 1060 The password of the user with privileges to the relevant schemas.
  • Oracle schema 1070 The schema or database in Oracle to be converted to .SML format.
  • the .SML format is an internal RDBS format used by Coherence.
  • a semicolon (;) is placed between schema names.
  • Coherence schema 2080 The label identifying the RDBS that is displayed on the Mapping Tab in Coherence. This field is optional; if left blank, the Oracle schema name will be used.
  • Output File 1090 A name for the .SML file generated.
  • FIGS. 11A-11R are illustrations of a for transforming data from one XML schema to another using the Coherence software application, in accordance with a preferred embodiment of the present invention.
  • Shown in FIG. 11A is a window with package view of an Airline Integration ontology model in its left lane.
  • the left pane displays classes from a fundamental package.
  • a class Date is shown highlighted, and its properties are shown in the right pane.
  • Fundamental packages are used for standard data types.
  • FIG. 11B is a window with a hierarchical view of the Airline Integration ontology model in its left pane.
  • the left pane indicates that FrequentFlyer is a subclass of Passenger, Passenger is a subclass of Person, and Person is a subclass of Being.
  • the right pane displays general information about the class FrequentFlyer.
  • FIG. 11C shows a window used for opening an existing ontology model.
  • ontology models are described using XML and stored in .oml files. Such files are described in applicant's co-pending patent application U.S. Ser. No. 09/866,101 filed on May 25, 2001 and entitled METHOD AND SYSTEM FOR COLLABORATIVE ONTOLOGY MODELING, the contents of which are hereby incorporated by reference.
  • FIG. 11D shows the hierarchical view from FIG. 11B, indicating properties of the FrequentFlyer class.
  • the property fullName is highlighted, and a window for constraint information indicates that there is a relationship among the ontology properties firstName, lastName and fullName; namely, that fullName is the concatenation of firstName and lastName with a white space therebetween. This relationship is denoted as Constraint — 5.
  • FIG. 11E shows the hierarchical view from FIG. 11B, indicating test instance of the Passenger class. A list of instances is displayed in the right pane, along with property values for a specific selected instance from the list.
  • FIG. 11F shows two imported XML schema for airline information.
  • FIG. 11G shows a window for importing XML schema into Coherence.
  • FIG. 11H shows a window with a display of an imported XML schema for British Airways, with a list of complexTypes from the imported schema. The complexType Journey is selected, and the right pane indicates that Journey and its elements are currently not mapped to a class and properties of the ontology model.
  • FIG. 11I shows a window for generating a mapping from the British Airways XML schema into the Airline Integration ontology model.
  • the ontology class Flight is shown selected to correspond to the XML ComplexType Journey.
  • FIG. 11J shows the left pane from FIG. 11H, with the right pane now indicating that the XML complexType Journey from the British Airways XML schema has been mapped to the class Flight from the Airline Integration ontology model.
  • FIG. 11K shows the left pane from FIG. 11H, with a window for selecting properties and indirect properties (i.e., compositions of properties) to correspond to elements from the XML schema. Shown selected in FIG. 11K is a property distanceInMiles( ) of the class Flight.
  • FIG. 11K Shown selected in FIG. 11K is a property distanceInMiles( ) of the class Flight.
  • FIG. 11L shows the left pane from FIG. 11H, with the right pane now indicated that Journey has been mapped to Flight, and the XML element distance_in_miles within the complexType Journey has been mapped to the property distanceInMiles( ) of the class Flight.
  • FIG. 11M shows the left pane from FIG. 11H, with the right pane now indicating that the mapping has been extended to all XML elements of the complexType Journey, showing the respective properties to which each element is mapped.
  • FIG. 11N shows schema info for the complexType Journey, listing its elements and their data types.
  • FIG. 11O shows a window for specifying a transformation to be derived.
  • Shown in FIG. 10 is a request to derive a transformation from a source data schema, namely, the imported SwissAir XML schema to a target data schema, namely, the imported British Airways XML schema.
  • Shown in FIG. 11P is an XSLT script generated to transform XML documents conforming to the SwissAir schema to XML documents conforming to the British Airways schema.
  • FIG. 11Q shows a specific transformation of a SwissAir XML document to a British Airways XML document, obtained by applying the derived XSLT script from FIG. 11P.
  • FIG. 11R shows a display of the newly generated British Airways XML document with specific flights and passengers.
  • the first series comprising the first eleven examples, relates to RDBS transformations.
  • a source RDBS and target RDBS are presented as input, along with mappings of these schema into a common ontology model.
  • the output is an appropriate SQL query that transforms database tables that conform to the source RDBS, into database tables that conform to the target RDBS.
  • Each example steps through derivation of source and target symbols, expression of target symbols in terms of source symbols and derivation of an appropriate SQL query based on the expressions.
  • the second series of examples relates to XSLT transformation.
  • a source XML schema and target XML schema are presented as input, along with mappings of these schema into a common ontology model.
  • the output is an appropriate XSLT script that transforms XML documents that conform to the source schema into XML documents that conform to the target schema.
  • a target table is of the following form: TABLE III Target Table T for First Example Child_Name Mother_Name School_Location Form
  • FIG. 12 The underlying ontology is illustrated in FIG. 12.
  • the dotted portions of the ontology in FIG. 12 show additional ontology structure that is transparent to the relational database schema.
  • the unique properties of the ontology are identified as: TABLE VIII Unique Properties within Ontology for First Example Property Property Index name(Child) 6 national_insurance_number(Person) 4 name(School) 10
  • mapping of the target schema into the ontology is as follows: TABLE IX Mapping from Target schema to Ontology for First Example Property schema Ontology Index T Class: Child T.Child_Name Property: name(Child) 6 T.Mother_Name Property: name(mother(Child)) 3o5 T.School_Location Property: 12o9 location(school_attending(Child)) T.Form Property: current_school_form(Child) 8
  • the indices of the source properties are: TABLE XI Source Symbols for First Example Source Table Source Symbols S 1 10o9o6 ⁇ 1 4o5o6 ⁇ 1 S 2 3o4 ⁇ 1 1o4 ⁇ 1 2o4 ⁇ 1 S 3 12o10 ⁇ 1 3o11o10 ⁇ 1 S 4 7o6 ⁇ 1 8o6 ⁇ 1
  • Table XI relate fields of a source table to a key field.
  • S 1 the first field, S 1 .Name is a key field.
  • the second field, S 1 .School_Attending is related to the first field by the composition 10o9o6 ⁇ 1
  • S 1 .Mother_NI_Number is related to the first field by the composition 4o5o6 ⁇ 1 .
  • expressions relative to each of the key fields are listed.
  • the inverse notation such as 6 ⁇ 1 is used to indicate the inverse of property 6. This is well defined since property 6 is a unique, or one-to-one, property in the ontology model.
  • the indices of the target properties, keyed on Child_Name are: TABLE XII Target Symbols for First Example Target Table Target Symbols Paths T 3o5o6 ⁇ 1 (3o4 ⁇ 1 ) o (4o5o6 ⁇ 1 ) 12o9o6 ⁇ 1 (12o10 ⁇ 1 ) o (10o9o6 ⁇ 1 ) 8o6 ⁇ 1 (8o6 ⁇ 1 )
  • Rule 2 When a target symbol is represented as a composition of source symbols, say (aob ⁇ 1 ) o (boc ⁇ 1 ), where aob ⁇ 1 is taken from a first source table, say S 1 , and boc ⁇ 1 is taken from a second source table, say S 2 , then S 1 and S 2 must be joined in the SQL query by the respective columns mapping to b.
  • a target table is of the following form: TABLE XVIII Target Table T for Second Example Name Department Supervisor Room#
  • FIG. 13 The underlying ontology is illustrated in FIG. 13.
  • the dotted portions of the ontology in FIG. 13 are additional ontology structure that is transparent to the relational database schema.
  • the unique properties of the ontology are: TABLE XXIII Unique Properties within Ontology for Second Example Property Property Index name(Employee) 3 ID#(Employee) 4
  • mapping of the target schema into the ontology is as follows: TABLE XXIV Mapping from Target schema to Ontology for Second Example Property schema Ontology Index T Class: Employee T.Name Property: name(Employee) 3 T.Department Property: 8o7 code(departmental_affiliation(Employee)) T.Supervisor Property: name(supervisor(Employee)) 3o6 T.Room# Property: room_number(Employee) 1
  • the indices of the source properties are: TABLE XXVI Source Symbols for Second Example Source Table Source Symbols S 1 3o4 ⁇ 1 8o7o4 ⁇ 1 4o3 ⁇ 1 8o7o3 ⁇ 1 S 2 3o6o3 ⁇ 1 5o3 ⁇ 1 S 3 1o4 ⁇ 1 2o4 ⁇ 1 S 4 9o8 ⁇ 1
  • Table S 4 not required in the SQL.
  • Tables XXVIIII, XXIX and XXX the above SQL query produces the target data in Table XXXI.
  • TABLE XXVIII Sample Source Table S 1 for Second Example Emp_ID# Name Department 198 Patricia SW 247 Eric QA 386 Paul IT
  • a target table is of the following form: TABLE XXXII Target Table T for Third Example FlightID DepartingCity ArrivingCity
  • FIG. 14 The underlying ontology is illustrated in FIG. 14.
  • the dotted portions of the ontology in FIG. 14 are additional ontology structure that is transparent to the relational database schema.
  • the unique properties of the ontology are: TABLE XXXV Unique Properties within Ontology for Third Example Property Property Index name(Airport) 1 ID(Flight) 6
  • mapping of the target schema into the ontology is as follows: TABLE XXXVI Mapping from Target schema to Ontology for Third Example Property schema Ontology Index T Class: Flight T.FlightID Property: ID#(Flight) 6 T.DepartingCity Property: location(from_airport(Flight)) 2o4 T.ArrivingCity Property: location(to_airport(Flight)) 2o5
  • the indices of the source properties are: TABLE XXXVIII Source Symbols for Third Example Table Source Symbols S 1 1o3 ⁇ 1 2o3 ⁇ 1 3o1 ⁇ 1 2o1 ⁇ 1 S 2 1o4o6 ⁇ 1 1o5o6 ⁇ 1
  • the indices of the target properties, keyed on FlightID are: TABLE XXXIX Target Symbols for Third Example Table Target Symbols Paths T 2o4o6 ⁇ 1 (2o1 ⁇ 1 ) o (1o4o6 ⁇ 1 ) 2o5o6 ⁇ 1 (2o1 ⁇ 1 ) o (1o5o6 ⁇ 1 )
  • a target table is of the following form: TABLE XLIII Target Table T for Fourth Example ID Name Father_Name
  • the underlying ontology is illustrated in FIG. 15.
  • the dotted portions of the ontology in FIG. 15 are additional ontology structure that is transparent to the relational database schema.
  • the unique properties of the ontology are: TABLE XLV Unique Properties within Ontology for Fourth and Fifth Examples Property Property Index name(Person) 1 ID#(Person) 2
  • mapping of the target schema into the ontology is as follows: TABLE XLVI Mapping from Target schema to Ontology for Fourth Example Property schema Ontology Index T Class: Person T.ID Property: ID#(Person) 2 T.Name Property: name(Person) 1 T.Father_Name Property: name(father(Person)) 1o3
  • mapping of the source schema into the ontology is as follows: TABLE XLVII Mapping from Source schema to Ontology for Fourth and Fifth Examples Property schema Ontology Index S Class: Person S.ID Property: ID#(Person) 2 S.Name Property: name(Person) 1 S.Father_ID Property: ID#(father(Person)) 2o3
  • the indices of the source properties are: TABLE XLVIII Source Symbols for Fourth and Fifth Examples Table Source Symbols S 1 1o2 ⁇ 1 2o3o2 ⁇ 1
  • the indices of the target properties, keyed on ID are: TABLE XLIX Target Symbols for Fourth Example Table Target Symbols Paths T 1o2 ⁇ 1 (1o2 ⁇ 1 ) 1o3o2 ⁇ 1 (1o2 ⁇ 1 ) o (2o3o2 ⁇ 1 )
  • the target property of Father_Name in the fourth example is changed to Grandfather_Name, and the target table is thus of the following form: TABLE L Target Table T for Fifth Example ID Name Grandfather_Name
  • mapping of the target schema into the ontology is as follows: TABLE LI Mapping from Target schema to Ontology for Fifth Example Property schema Ontology Index T Class: Person T.ID Property: ID#(Person) 2 T.Name Property: name(Person) 1 T.Grandfather_Name Property: 1o3o3 name(father(father(Person)))
  • the indices of the target properties, keyed on ID are: TABLE LII Target Symbols for Fifth Example Table Target Symbols Paths T 1o2 ⁇ 1 (1o2 ⁇ 1 ) 1o3o3o2 ⁇ 1 (1o2 ⁇ 1 ) o (2o3o2 ⁇ 1 ) o (2o3o2 ⁇ 1 )
  • a target table is of the following form: TABLE LIII Target Table T for Sixth Example ID Name Dogs_Previous_Owner
  • the underlying ontology is illustrated in FIG. 16.
  • the dotted portions of the ontology in FIG. 16 are additional ontology structure that is transparent to the relational database schema.
  • the unique properties of the ontology are: TABLE LVI Unique Properties within Ontology for Sixth Example Property Property Index ID#(Person) 2 name(Dog) 6
  • mapping of the target schema into the ontology is as follows: TABLE LVII Mapping from Target schema to Ontology for Sixth Example Property schema Ontology Index T Class: Person T.ID Property: ID#(Person) 2 T.Name Property: name(Person) 1 T.Dogs_Previous_Owner Property: 5o3 previous_owner(dog(Person))
  • the mapping of the source schema into the ontology is as follows: TABLE LVIII Mapping from Source schema to Ontology for Sixth Example Property schema Ontology Index S 1 Class: Person S 1 .ID Property: ID#(Person) 2 S 1 .Name Property: name(Person) 1 S 1 .Dog Property: name(dog(Person)) 6o3 S 2 Class: Dog S 2 .Owner Property: name(owner(Dog)) 1o4 S 2 .Name Property: name(Dog) 6 S 2 .Previous_Owner Property: name(previous_owner(Dog)) 1o5
  • the indices of the source properties are: TABLE LIX Source Symbols for Sixth Example Table Source Symbols S 1 1o2 ⁇ 1 6o3o2 ⁇ 1 S 2 1o4o6 ⁇ 1 1o5o6 ⁇ 1
  • the indices of the target properties, keyed on ID are: TABLE LX Target Symbols for Sixth Example Table Target Symbols Paths T 1o2 ⁇ 1 (1o2 ⁇ 1 ) 5o3o2 ⁇ 1 (1o5o6 ⁇ 1 ) o (6o3o2 ⁇ 1 )
  • a target table is of the following form: TABLE LXI Target Table T for Seventh Example ID Name Email Department
  • FIG. 17 The underlying ontology is illustrated in FIG. 17.
  • the dotted portions of the ontology in FIG. 17 are additional ontology structure that is transparent to the relational database schema.
  • the unique properties of the ontology are: TABLE LXVII Unique Properties within Ontology for Seventh Example Property Property Index ID#(Person) 2
  • mapping of the target schema into the ontology is as follows: TABLE LXVIII Mapping from Target schema to Ontology for Seventh Example schema Ontology Property Index T Class: Person T.ID Property: ID#(Person) 2 T.Name Property: name(Person) 1 T.Email Property: e-mail(Person) 3 T.Department Property: department(Person) 4
  • the indices of the source properties are: TABLE LXX Source Symbols for Seventh Example Table Source Symbols S 1 4o2 ⁇ 1 S 2 3o2 ⁇ 1 S 3 1o2 ⁇ 1 S 4 3o2 ⁇ 1 S 5 4o2 ⁇ 1
  • the indices of the target properties, keyed on ID are: TABLE LXXI Target Symbols for Seventh Example Table Target Symbols Paths T 1o2 ⁇ 1 (1o2 ⁇ 1 ) 3o2 ⁇ 1 (3o2 ⁇ 1 ) 4o2 ⁇ 1 (4o2 ⁇ 1 )
  • Rule 5 When a source symbol used to represent a target symbol is present in multiple source tables each such table must be referenced in an SOL querv and the resultant queries joined.
  • a target table is of the following form: TABLE LXXVIII Target Table T for Eighth Example Emp_Name Emp_Division Emp_Tel_No
  • the underlying ontology is illustrated in FIG. 18.
  • the dotted portions of the ontology in FIG. 18 are additional ontology structure that is transparent to the relational database schema.
  • the unique properties of the ontology are: TABLE LXXXI Unique Properties within Ontology for Eighth Example Property Property Index name(Employee) 1
  • mapping of the target schema into the ontology is as follows: TABLE LXXXII Mapping from Target schema to Ontology for Eighth Example Property schema Ontology Index T Class: Employee T.Emp_Name Property: name(Employee) 1 T.Emp_Division Property: division 4 (Employee) T.Emp_Tel_No Property: telephone_number 2 (Employee)
  • the mapping of the source schema into the ontology is as follows: TABLE LXXXIII Mapping from Source schema to Ontology for Eighth Example Property schema Ontology Index S 1 Class: Employee S 1 .Employee_Division Property: division 4 ( Employee) S 1 .Employee_Tel# Property: telephone_number 2 (Employee) S 1 .Employee_Name Property: name(Employee) 1 S 1 .Employee_Room# Property: room_number 3 (Employee) S 2 Class: Employee S 2 .Name Property: name(Employee) 1 S 2 .Employee_Tel Property: telephone_number 2 (Employee) S 2 .Division Property: division(Employee) 4
  • the indices of the source properties are: TABLE LXXXIV Source Symbols for Eighth Example Table Source Symbols S 1 4o1 ⁇ 1 2o1 ⁇ 1 3o1 ⁇ 1 S 2 2o1 ⁇ 1 4o1 ⁇ 1
  • the desired SQL is a union of a query involving S 1 alone and a query involving S 2 alone.
  • the desired SQL query is: INSERT INTO T(Emp_Name, Emp_Division, Emp_Tel_No) (SELECT S 1 .Employee_Name AS Emp_Name, S 1 .Employee_Division AS Emp_Division, S 1 .Employee_Tel# AS Emp_Tel_No FROM S 1 UNION SELECT S 2 .Employee_Name AS Emp_Name, S 2 .Employee_Division AS Emp_Division, S 2 .Employee_Tel# AS Emp_Tel_No FROM S 2 );
  • Rule 6 When one or more source tables contain source symbols sufficient to generate all of the target symbols, then each such source table must be used alone in an SQL query and the resultant queries joined. (Note that Rule 6 is consistent with Rule 5.)
  • a target table is of the following form: TABLE LXXXIX Target Table T for Ninth Example City Temperature
  • the underlying ontology is illustrated in FIG. 19.
  • the dotted portions of the ontology in FIG. 19 are additional ontology structure that is transparent to the relational database schema.
  • the properties temperature_in_Centrigade and temperature_in_Fahrenheit are related by the constraint:
  • mapping of the target schema into the ontology is as follows: TABLE XCIII Mapping from Target schema to Ontology for Ninth Example Property schema Ontology Index T Class: City T.City Property: name(City) 1 T.Temperature Property: 2 temperature_in_Centigrade (City)
  • mapping of the source schema into the ontology is as follows: TABLE XCIV Mapping from Source schema to Ontology for Ninth Example Property schema Ontology Index S 1 Class: City S 1 .City Property: name(City) 1 S 1 .Temperature Property: 3 temperature_in_Fahrenheit (City) S 2 Class: City S 2 .City Property: name(City) 1 S 2 .C_Temperature Property: 2 temperature_in_Centrigade (City)
  • the desired SQL is a union of a query involving S 1 alone and a query involving S 2 alone.
  • the desired SQL query is: INSERT INTO T(City, Temperature) (SELECT S 1 .City AS City, 5/9 * (S 1 .Temperature ⁇ 32) AS Temperature FROM S 1 UNION SELECT S 2 .City AS City, S 2 .Temperature AS Temperature FROM S 2 );
  • Rule 7 When a target symbol can be expressed in terms of one or more source symbols by a dependency constraint then such constraint must appear in the list of target symbols.
  • a target table is of the following form: TABLE C Target Table T for Tenth Example Product Price
  • FIG. 20 The underlying ontology is illustrated in FIG. 20.
  • the dotted portions of the ontology in FIG. 20 are additional ontology structure that is transparent to the relational database schema.
  • the properties price, cost_of_production and margin are related by the constraint:
  • mapping of the target schema into the ontology is as follows: TABLE CIV Mapping from Target schema to Ontology for Tenth Example schema Ontology Property Index T Class: Product T.Product Property: SKU(Product) 1 T.Price Property: price(Product) 4
  • mapping of the source schema into the ontology is as follows: TABLE CV Mapping from Source schema to Ontology for Tenth Example Property schema Ontology Index S 1 Class: Product S 1 .SKU Property: SKU(Product) 1 S 1 .Cost Property: cost_of_production(Product) 2 S 2 Class: Product S 2 .Item Property: SKU(Product) 1 S 2 .Margin Property: margin(Product) 3
  • a target table is of the following form: TABLE CXI Target Table T for Eleventh Example ID# Full_Name
  • FIG. 21 The underlying ontology is illustrated in FIG. 21.
  • the dotted portions of the ontology in FIG. 21 a re additional ontology structure that is transparent to the relational database schema.
  • the properties full_name, first_name and last_name are related by the constraint:
  • mapping of the target schema into the ontology is as follows: TABLE CXIV Mapping from Target schema to Ontology for Eleventh Example schema Ontology Property Index T Class: Person T.ID# Property: ID#(Person) 1 T.Full_Name Property: full_name(Person) 4
  • mapping of the source schema into the ontology is as follows: TABLE CXV Mapping from Source schema to Ontology for Eleventh Example schema Ontology Property Index S Class: Person S.ID# Property: ID#(Person) 1 S.First_Name Property: first_name(Person) 2 S.Last_Name Property: last_name(Person) 3
  • the desired SQL query is: INSERT INTO T(ID#, Full_Name) (SELECT S.ID# AS ID#, (S.First_Name)
  • FIG. 22 A common ontology model for the source and target XML schema is illustrated in FIG. 22.
  • a mapping of the source XML schema into the ontology model is given by: TABLE CXX Mapping from Source schema to Ontology for Twelfth and Thirteenth Examples schema
  • Ontology Property Index complexType book Class: Book element: book/name/text( )
  • complexType author Class: Person element: author/@name Property: name(Person) 3
  • a mapping of the target XML schema into the ontology model is given by: TABLE CXXI Mapping from Target schema to Ontology for Twelfth
  • Ontology Index complexType document Class: Book element: document/writer/text( )
  • Tables CXX and CXXI use XPath notation to designate XSL elements and attributes.
  • an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks:
  • a common ontology model for the source and target XML schema is illustrated in FIG. 23.
  • a mapping of the source XML schema into the ontology model is given by Table CXVIII above.
  • a mapping of the target XML schema into the ontology model is given by: TABLE CXXII Mapping from Target schema to Ontology for Thirteenth Example Property schema Ontology Index complexType: document Class: Book element: document/writer/text( ) Property: 3o2 name(author(Book)) element: document/title/text( ) Property: 1 name(Book) element: document/ISBN/text( ) Property: 4 ISBN(Book)
  • an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks:
  • a common ontology model for the source and first target XML schema is illustrated in FIG. 24.
  • a mapping of the source XML schema into the ontology model is given by: TABLE CXXIII Mapping from Source schema to Ontology for Fourteenth Example Property schema
  • Ontology Index complexType review Class: Document element: review/author/text( )
  • title(Document) 2 complexType letter Class: Letter (inherits from Document) element: letter/sender/text( )
  • a mapping of the first target XML schema into the ontology model is given by: TABLE CXXIV Mapping from First Target schema to Ontology for Fourteenth Example Property schema
  • Ontology Index complexType document Class: Document element: document/author/text( )
  • complexType storage Class: Storage element: storage/articles Property: articles(Storage) 9 element: storage/reviews Property: reviews(Storage) 10 element: storage/letters Property: letters(Storage) 11
  • an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks:
  • a mapping of the second target XML schema into the ontology model is given by: TABLE CXXV Mapping from Second Target schema to Ontology for Fourteenth Example Property schema Ontology Index complexType: document Class: Document element: Property: author(Document) 1 document/author/text( ) attribute: Property: title(Document) 2 document/@title complexType: letter Class: Letter (inherits from Document) element: Property: author(Letter) 1 letter/author/text( ) attribute: letter/@name Property: title(Letter) 2 attribute: letter/@subject Property: subject(Letter) 3 attribute: letter/@receiver Property: receiver(Letter) 4 complexType: storage Class: Storage element: storage/books Property: books(Storage) 12 element: storage/magazines Property: magazines(Storage) 13 complexType: book Class: Book element: book/articles Property: articles(Book) 5 element: book/reviews Property: reviews(Book) 6 complexType: magazine Class: Magazine element: magazine/articles Property
  • an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks:
  • a mapping of the third target XML schema into the ontology model is given by: TABLE CXXVI Mapping from Third Target schema to Ontology for Fourteenth Example Property schema
  • Ontology Index complexType AB Class: Document element: AB/author/text( ) Property: author(Document) 1 attribute: AB/@title Property: title(Document) 2 complexType: AM Class: Document element: AM/writer/text( ) Property: author(Document) 1 attribute: AM/@title Property: title(Document) 2 complexType: storage Complex Class: set[Document] ⁇ set[Document]
  • an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks:
  • a common ontology model for the source and target XML schema is illustrated in FIG. 22.
  • a mapping of the source XML schema into the ontology model is given by Table CXX, with an additional correspondence between the complexType and the container class set[Book].
  • a mapping of the target XML schema into the ontology model is given by Table CXXI, with an additional correspondence between the complexType storage and the container class set ⁇ Book].
  • an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks:
  • FIG. 25 A common ontology model for the source and target XML schema is illustrated in FIG. 25.
  • a mapping of the source XML schema into the ontology model is given by: TABLE CXXVII Mapping from Source schema to Ontology for Twenty-Second Example Property schema Ontology Index complexType: book Class: Book element: book/title/text( ) Property: name(Book) 1 element: book/author_name/text( ) Property: author(Book) 2 complexType: library Class: Library element: library/books Container Class: 5 set[Book] element: library/name/text( ) Property: name(Library) 6 complexType: town Class: Town element: town/libraries Container Class: 1 set[Library] element: town/name/text( ) Property: name(Town) 2
  • a mapping of the target XML schema into the ontology model is given by: TABLE CXXVIII Mapping from Target schema to Ontology for Twenty-Second Example Property schema Ontology Index complexType: book Class: Book element: book/title/text( ) Property: name(Book) 1 element: book/author_name/text( ) Property: author(Book) 2 element: list_of_books Set[Book]
  • FIG. 26 A common ontology model for the source and target XML schema is illustrated in FIG. 26.
  • a mapping of the source XML schema into the ontology model is given by: TABLE CXXIX Mapping from Source schema to Ontology for Twenty-Third Example Property schema
  • Ontology Index complexType book Class: Book element: book/title/text( )
  • a mapping of the first target XML schema into the ontology model is given by: TABLE CXXX Mapping from Target schema to Ontology for Twenty-Third Example Property schema Ontology Index complexType: officer Class: Person element: Property: name(Person) 7 officer/name/text( ) complexType: station Class: Station element: station/officers Container Class: 8 set[Person] element: Property: 9 station/@identifier identifier(Station) complexType: Class: police_stations set[Station]
  • a desired transformation from a source RDBS to a target RDBS is generated by:
  • the common ontology model is built by adding classes and properties to an initial ontology model, as required to encompass tables and fields from the source and target RDBS.
  • the addition of classes and properties can be performed manually by a user, automatically by a computer, or partially automatically by a user and a computer in conjunction.
  • mappings from the source and target RDBS into the ontology model are also built by identifying tables and fields of the source and target RDBS with corresponding classes and properties of the ontology model. Fields are preferably identified as being either simple properties or compositions of properties.
  • the present invention preferably automatically presents a user with the ability to create classes that corresponds to tables, if such classes are not already defined within the ontology.
  • the present invention preferably automatically present a user with the ability to create properties that correspond to fields, if such properties are not already defined within the ontology.
  • This automatic guidance feature of the present invention enables users to build a common ontology on the fly, while mapping the source and target RDBS.
  • automatic guidance is used to provide a user with a choice of properties to which a given table column may be mapped.
  • the choice of properties only includes properties with target types that are compatible with a data type of the given table column. For example, if the given table column has data type VARCHAR2, then the choice of properties only includes properties with target type string. Similarly, if the given table column is a foreign key to a foreign table, then the choice of properties only includes properties whose target is the class corresponding to the foreign table.
  • automatic guidance is provided in determining inheritance among classes of the common ontology.
  • Conditions are identified under which the present invention infers that two tables should be mapped to classes that inherit one from another. Such a condition arises when a table, T 1 , contains a primary key that is a foreign key to a table, T 2 . In such a situation, the present invention preferably infers that the class corresponding to T 1 inherits from the class corresponding to T 2 .
  • T 1 may be a table for employees with primary key Social_Security_No, which is a foreign key for a table T 2 for citizens.
  • the user is given an opportunity to confirm or decline.
  • the user may not be given such an opportunity.
  • representing fields of the source and target RDBS in terms of properties of the ontology model is performed by identifying a key field among the fields of a table and expressing the other fields in terms of the identified key field using an inverse property symbol for the key field. For example, if a key field corresponds to a property denoted by 1, and a second field corresponds to a property denoted by 2, then the relation of the second field to the first field is denoted by 2o1 ⁇ 1 . If a table has more than one key field, then preferably symbols are listed for each of the key fields, indicating how the other fields relate thereto. For example, if the second field above also is a key field, then the relation of the first field to the second field is denoted by 1o2 ⁇ 1 , and both of the symbols 2o1 ⁇ 1 and 1o2 ⁇ 1 are listed.
  • deriving expressions for target symbols in terms of source symbols is implemented by a search over the source symbols for paths that result in the target symbols. For example, if a target symbol is given by 3o1 ⁇ 1 , then chains of composites are formed starting with source symbols of the form ao1 ⁇ 1 , with each successive symbol added to the composite chain inverting the leftmost property in the chain. Thus, a symbol ending with a ⁇ 1 is added to the left of the symbol ao1 ⁇ 1 , and this continues until property 3 appears at the left end of the chain.
  • converting symbol expressions into SQL queries is accomplished by use of Rules 1-7 described hereinabove with reference to the examples.
  • a flag is set that indicates whether it is believed that the table contains all instances of the class.
  • the next step is to identify the elements in the target schema that have been mapped to ontological classes.
  • the easiest case, and probably the one encountered most often in practice, is one in which the root itself is mapped to a class, be it a simple class, a container class or a cross-product. If not, then preferably the code-generator goes down a few levels until it comes across elements mapped to classes.
  • the elements that are not mapped to classes should then preferably be placed in the XSLT between the ⁇ root> tags mentioned above, in the correct order, up to the places where mappings to classes begin.
  • the XSLT script generation algorithm is described in terms of an element ⁇ fu> that is expected to appear in the target XML document and is mapped to an ontological class, whether that means the root element or a parallel set of elements inside a tree emanating from the root.
  • the treatment is the same in any event from that point onwards.
  • Pieces of code are generated to deal with different maximum and minimum occurrences.
  • Such pieces of code are generated inside the ⁇ fu> ⁇ /fu> tags that were generated as described hereinabove.
  • the general rule for producing such pieces of code is as follows: TABLE CXXXI Conditions for Filling in ⁇ xsl:for-each> Segments XSLT Condition Segment
  • a first variation to which the present invention applies is a setup where source relational database tables reside in more than one database.
  • the present invention preferably operates by using Oracle's cross-database join, if the source databases are Oracle databases.
  • the present invention can be applied to generate a first SQL query for a first source database, and use the result to generate a second SQL query for a second source database. The two queries taken together can feed a target database.

Abstract

A method for transforming data from one data schema to another including receiving a source data schema and a target data schema, mapping the source data schema into an ontology model, mapping the target data schema into the ontology model, and deriving a transformation for transforming data conforming to the source data schema into data conforming to the target data schema, using the ontology model. A system is also described and claimed.

Description

    CROSS REFERENCES TO RELATED APPLICATIONS
  • This application is a continuation-in-part of assignee's pending application U.S. Ser. No. 09/866,101 filed on May 25, 2001, entitled “Method and System for Collaborative Ontology Modeling.”[0001]
  • FIELD OF THE INVENTION
  • The present invention relates to data schema, and in particular to deriving transformations for transforming data from one schema to another. [0002]
  • BACKGROUND OF THE INVENTION
  • Ontology is a philosophy of what exists. In computer science ontology is used to model entities of the real world and the relations between them, so as to create common dictionaries for their discussion. Basic concepts of ontology include (i) classes of instances/things, and (ii) relations between the classes, as described hereinbelow. Ontology provides a vocabulary for talking about things that exist. [0003]
  • Instances/Things [0004]
  • There are many kinds of “things” in the world. There are physical things like a car, person, boat, screw and transistor. There are other kinds of things which are not physically connected items or not even physical at all, but may nevertheless be defined. A company, for example, is a largely imaginative thing the only physical manifestation of which is its appearance in a list at a registrar of companies. A company may own and employ. It has a defined beginning and end to its life. [0005]
  • Other things can be more abstract such as the Homo Sapiens species, which is a concept that does not have a beginning and end as such even if its members do. [0006]
  • Ontological models are used to talk about “things.” An important vocabulary tool is “relations” between things. An ontology model itself does not include the “things,” but introduces class and property symbols which can then be used as a vocabulary for talking about and classifying things. [0007]
  • Properties [0008]
  • Properties are specific associations of things with other things. Properties include: [0009]
  • Relations between things that are part of each other, for example, between a PC and its flat panel screen; [0010]
  • Relations between things that are related through a process such as the process of creating the things, for example, a book and its author; [0011]
  • Relations between things and their measures, for example, a thing and its weight. [0012]
  • Some properties also relate things to fundamental concepts such as natural numbers or strings of characters—for example, the value of a weight in kilograms, or the name of a person. [0013]
  • Properties play a dual role in ontology. On the one hand, individual things are referenced by way of properties, for example, a person by his name, or a book by its title and author. On the other hand, knowledge being shared is often a property of things, too. A thing can be specified by way of some of its properties, in order to query for the values of other of its properties. [0014]
  • Classes [0015]
  • Not all properties are relevant to all things. It is convenient to discuss the source of a property as a “class” of things, also referred to as a frame or, for end-user purposes, as a category. Often sources of several properties coincide, for example, the class Book is the source for both Author and ISBN Number properties. [0016]
  • There is flexibility in the granularity to which classes are defined. Cars is a class. Fiat Cars can also be a class, with a restricted value of a manufacturer property. It may be unnecessary to address this class, however, since Fiat cars may not have special properties of interest that are not common to other cars. In principle, one can define classes as granular as an individual car unit, although an objective of ontology is to define classes that have important properties. [0017]
  • Abstract concepts such as measures, as well as media such as a body of water which cannot maintain its identity after coming into contact with other bodies of water, may be modeled as classes with a quantity property mapping them to real numbers. [0018]
  • In a typical mathematical model, a basic ontology comprises: [0019]
  • A set C, the elements of which are called “class symbols;”[0020]
  • For each CεC, a plain language definition of the class C; [0021]
  • A set P, the elements of which are called “property symbols;”[0022]
  • For each PεF: [0023]
  • a plain language definition of P; [0024]
  • a class symbol called the source of P; and [0025]
  • a class symbol called the target of P; and [0026]
  • A binary transitive reflexive anti-symmetric relation, I, called the inheritance relation on C×C. [0027]
  • In the ensuing discussion, the terms “class” and “class symbol” are used interchangeably, for purposes of convenience and clarity. Similarly, the terms “property” and “property symbol” are also used interchangeably. [0028]
  • It is apparent to those skilled in the art that if an ontology model is extended to include sets in a class, then a classical mathematical relation on C×D can be considered as a property from C to sets in D. [0029]
  • If I(C[0030] 1, C2) then C1 is referred to as a subclass of C2, and C2 is referred to as a superclass of C1. Also, C1 is said to inherit from C2.
  • A distinguished universal class “Being” is typically postulated to be a superclass of all classes in C. [0031]
  • Variations on an ontology model may include: [0032]
  • Restrictions of properties to unary properties, these being the most commonly used properties; [0033]
  • The ability to specify more about properties, such as multiplicity and invertibility. [0034]
  • The notion of a class symbol is conceptual, in that it describes a generic genus for an entire species such as Books, Cars, Companies and People. [0035]
  • Specific instances of the species within the genus are referred to as “instances” of the class. Thus “Gone with the Wind” is an instance of a class for books, and “IBM” is an instance of a class for companies. Similarly, the notions of a property symbol is conceptual, in that it serves as a template for actual properties that operate on instances of classes. [0036]
  • Class symbols and property symbols are similar to object-oriented classes in computer programming, such as C++ classes. Classes, along with their members and field variables, defined within a header file, serve as templates for specific class instances used by a programmer. A compiler uses header files to allocate memory for, and enables a programmer to use instances of classes. Thus a header file can declare a rectangle class with members left, right, top and bottom. The declarations in the header file do not instantiate actual “rectangle objects,” but serve as templates for rectangles instantiated in a program. Similarly, classes of an ontology serve as templates for instances thereof. [0037]
  • There is, however, a distinction between C++ classes and ontology classes. In programming, classes are templates and they are instantiated to create programming objects. In ontology, classes document common structure but the instances exist in the real world and are not created through the class. [0038]
  • Ontology provides a vocabulary for speaking about instances, even before the instances themselves are identified. A class Book is used to say that an instance “is a Book.” A property Author allows one to create clauses “author of” about an instance. A property Siblings allows one to create statements “are siblings” about instances. Inheritance is used to say, for example, that “every Book is a PublishedWork”. Thus all vocabulary appropriate to PublishedWork can be used for Book. [0039]
  • Once an ontology model is available to provide a vocabulary for talking about instances, the instances themselves can be fit into the vocabulary. For each class symbol, C, all instances which satisfy “is a C” are taken to be the set of instances of C, and this set is denoted B(C). Sets of instances are consistent with inheritance, so that B(C[0040] 1)⊂B(C2) whenever C1 is a subclass of C2. Property symbols with source C1 and target C2 correspond to properties with source B(C1) and target B(C2). It is noted that if class C1 inherits from class C, then every instance of C1 is also an instance of C, and it is therefore known already at the ontology stage that the vocabulary of C is applicable to C1.
  • Ontology enables creation of a model of multiple classes and a graph of properties therebetween. When a class is defined, its properties are described using handles to related classes. These can in turn be used to look up properties of the related classes, and thus properties of properties can be accessed to any depth. [0041]
  • Provision is made for both classes and complex classes. Generally, complex classes are built up from simpler classes using tags for symbols such as intersection, Cartesian product, set, list and bag. The “intersection” tag is followed by a list of classes or complex classes. The “Cartesian product” tag is also followed by a list of classes or complex classes. The set symbol is used for describing a class comprising subsets of a class, and is followed by a single class or complex class. The list symbol is used for describing a class comprising ordered subsets of a class; namely, finite sequences, and is followed by a single class or complex class. The bag symbol is used for describing unordered finite sequences of a class, namely, subsets that can contain repeated elements, and is followed by a single class or complex class. Thus set[C] describes the class of sets of instances of a class C, list[C] describes the class of lists of instances of class C, and bag[C] describes the class of bags of instances of class C. [0042]
  • In terms of formal mathematics, for a set S, set[S] is P(S), the power set of S; bag[S] is N[0043] S, where N is the set of non-negative integers; and list[S] is n = 1 S n .
    Figure US20040216030A1-20041028-M00001
  • There are natural mappings [0044] list [ S ] φ bag [ S ] ψ set [ S ] . ( 1 )
    Figure US20040216030A1-20041028-M00002
  • Specifically, for a sequence (s[0045] 1, s2, . . . , sn) ε list[S], φ(s1, s2, . . . , sn) is the element fεbag[S] that is the “frequency histogram” defined by f(s)=#{1≦i≦n: si=s}; and for fεbag[S], ψ(f)Eset[S] is the subset of S given by the support of f, namely, supp(f)={sεS: f(s)>0}. It is noted that the composite mapping φψ maps a the sequence (s1, s2, . . . , sn) into the set of its elements {s1, s2, . . . , sn}. For finite sets S, set[S] is also finite, and bag[S] and list[S] are countably infinite.
  • A general reference on ontology systems is Sowa, John F., “Knowledge Representation,” Brooks/Cole, Pacific Grove, Calif., 2000. [0046]
  • Relational database schema (RDBS) are used to define templates for organizing data into tables and fields. SQL queries are used to populate tables from existing tables, generally by using table join operations. Extensible markup language (XML) schema are used to described documents for organizing data into a hierarchy of elements and attributes. XSLT script is used to generate XML documents from existing documents, generally by importing data between tags in the existing documents. XSLT was originally developed in order to generate HTML pages from XML documents. [0047]
  • A general reference on relation databases and SQL is the document “Oracle 9i: SQL Reference,” available on-line at http://www.oracle.com. XML, XML schema, XPath and XSLT are standards of the World-Wide Web Consortium, and are available on-line at http://www.w3.org. [0048]
  • Often multiple schema exist for the same source of data, and as such the data cannot readily be imported or exported from one application to another. For example, two airline companies may each run applications that process relational databases, but if the relational databases used by the two companies conform to two different schema, then neither of the companies can readily use the databases of the other company. In order for the companies to share data, it is necessary to export the databases from one schema to another. [0049]
  • There is thus a need for a tool that can transform data conforming with a first schema into data that conforms with a second schema. [0050]
  • SUMMARY OF THE INVENTION
  • The present invention provides a method and system for deriving transformations for transforming data from one schema to another. The present invention describes a general method and system for transforming data confirming with an input, or source data schema into an output, or target data schema. In a preferred embodiment, the present invention can be used to provide (i) an SQL query, which when applied to relational databases from a source RDBS, populates relational databases in a target RDBS; and (ii) XSLT script which, when applied to documents conforming with a source XML schema generates documents conforming with a target XML schema. [0051]
  • The present invention preferably uses an ontology model to determine a transformation that accomplishes a desired source to target transformation. Specifically, the present invention employs a common ontology model into which both the source data schema and target data schema can be mapped. By mapping the source and target data schema into a common ontology model, the present invention derives interrelationships among their components, and uses the interrelationships to determine a suitable transformation for transforming data conforming with the source data schema into data conforming with the target data schema. [0052]
  • Given a source RDBS and a target RDBS, in a preferred embodiment of the present invention an appropriate transformation of source to target databases is generated by: [0053]
  • (i) mapping the source and target RDBS into a common ontology model; [0054]
  • (ii) representing table columns of the source and target RDBS in terms of properties of the ontology model; [0055]
  • (iii) deriving expressions for target table columns in terms of source table columns; and [0056]
  • (iv) converting the expressions into one or more SQL queries. [0057]
  • Although the source and target RDBS are mapped into a common ontology model, the derived transformations of the present invention go directly from source RDBS to target RDBS without having to transform data via an ontological format. In distinction, prior art Universal Data Model approaches transform via a neutral model or common business objects. [0058]
  • The present invention applies to N relational database schema, where N≧2. Using the present invention, by mapping the RDBS into a common ontology model, data can be moved from any one of the RDBS to any other one. In distinction to prior art approaches that require on the order of N[0059] 2 mappings, the present invention requires at most N mappings.
  • For enterprise applications, SQL queries generated by the present invention are preferably deployed within an Enterprise Application Integration infrastructure. Those skilled in the art will appreciate that transformation languages other than SQL that are used by enterprise application infrastructures can be generated using the present invention. For example, IBM's ESQL language can similarly be derived for deployment on their WebSphere MQ family of products. [0060]
  • Given a source XML schema and a target XML schema, in a preferred embodiment of the present invention an appropriate transformation of source to target XML documents is generated by: [0061]
  • (i) mapping the source and target XML schema into a common ontology model; [0062]
  • (ii) representing elements and attributes of the source and target XML schema in terms of properties of the ontology model; [0063]
  • (iii) deriving expressions for target XML elements and XML attributes in terms of source XML elements and XML attributes; and [0064]
  • (iv) converting the expressions into an XSLT script. [0065]
  • There is thus provided in accordance with a preferred embodiment of the present invention a method for deriving transformations for transforming data from one data schema to another, including receiving a source data schema and a target data schema, mapping the source data schema into an ontology model, mapping the target data schema into the ontology model, and deriving a transformation for transforming data conforming to the source data schema into data conforming to the target data schema, using the ontology model. [0066]
  • There is further provided in accordance with a preferred embodiment of the present invention a system for deriving transformations for transforming data from one data schema to another, including a schema receiver receiving a source data schema and a target data schema, a mapping processor mapping a data schema into an ontology model, and a transformation processor deriving a transformation for transforming data conforming to the source data schema into data conforming to the target data schema, based on respective source and target mappings generated by said mapping processor for mapping said source data schema and said target data schema into a common ontology model. [0067]
  • There is yet further provided in accordance with a preferred embodiment of the present invention a method for building an ontology model into which data schema can be embedded, including receiving at least one data schema, and building an ontology model into which the at least one data schema can be embedded. [0068]
  • There is additionally provided in accordance with a preferred embodiment of the present invention a system for building an ontology model into which data schema can be embedded, including a schema receiver receiving at least one data schema, and a model builder building an ontology model into which the at least one data schema can be embedded. [0069]
  • There is moreover provided in accordance with a preferred embodiment of the present invention an article of manufacture including one or more computer-readable media that embody a program of instructions for transforming data from one schema to another, wherein the program of instructions, when executed by a processing system, causes the processing system to receive a source data schema and a target data schema, map the source data schema into an ontology model, map the target data schema into the ontology model, and derive a transformation for transforming data conforming to the source data schema into data conforming to the target relational database schema, using the ontology model. [0070]
  • There is further provided in accordance with a preferred embodiment of the present invention an article of manufacture including one or more computer-readable media that embody a program of instructions for building a common ontology model into which data schema can be embedded, wherein the program of instructions, when executed by a processing system, causes the processing system to receive at least one data schema, and build an ontology model into which the at least one data schema can be embedded. [0071]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention will be more fully understood and appreciated from the following detailed description, taken in conjunction with the drawings in which: [0072]
  • FIG. 1 is a simplified flowchart of a method for deriving transformations for transforming data from one schema to another, in accordance with a preferred embodiment of the present invention; [0073]
  • FIG. 2 is a simplified block diagram of a system for deriving transformations for transforming data from one schema to another, in accordance with a preferred embodiment of the present invention; [0074]
  • FIG. 3 is a simplified flowchart of a method for building a common ontology model into which one or more data schema can be embedded, in accordance with a preferred embodiment of the present invention; [0075]
  • FIG. 4 is a simplified block diagram of a system for building a common ontology model into which one or more data schema can be embedded, in accordance with a preferred embodiment of the present invention; [0076]
  • FIG. 5 is a simplified illustration of a mapping from an RDBS into an ontology model, in accordance with a preferred embodiment of the present invention; [0077]
  • FIG. 6 is a second simplified illustration of a mapping from an RDBS into an ontology model, in accordance with a preferred embodiment of the present invention; [0078]
  • FIG. 7 is a simplified illustration of relational database transformations involving constraints and joins, in accordance with a preferred embodiment of the present invention; [0079]
  • FIG. 8 is a simplified illustration of use of a preferred embodiment of the present invention to deploy XSLT scripts within an EAI product such as Tibco; [0080]
  • FIGS. 9A-9E are illustrations of a user interface for a software application that transforms data from one relational database schema to another, in accordance with a preferred embodiment of the present invention; [0081]
  • FIG. 10 is an illustration of a user interface for an application that imports an RDBS into the software application illustrated in FIGS. 8A-8E, in accordance with a preferred embodiment of the present invention; [0082]
  • FIGS. 11A-11R are illustrations of a user interface for a software application that transforms data from one XML schema to another, in accordance with a preferred embodiment of the present invention; [0083]
  • FIG. 12 is an illustration of ontology model corresponding to a first example; [0084]
  • FIG. 13 is an illustration of ontology model corresponding to a second example; [0085]
  • FIG. 14 is an illustration of ontology model corresponding to a third example; [0086]
  • FIG. 15 is an illustration of ontology model corresponding to a fourth example; [0087]
  • FIG. 16 is an illustration of ontology model corresponding to a fifth and sixth example; [0088]
  • FIG. 17 is an illustration of ontology model corresponding to a seventh example. [0089]
  • FIG. 18 is an illustration of ontology model corresponding to an eighth example [0090]
  • FIG. 19 is an illustration of ontology model corresponding to a ninth example [0091]
  • FIG. 20 is an illustration of ontology model corresponding to a tenth example; [0092]
  • FIG. 21 is an illustration of ontology model corresponding to an eleventh example; [0093]
  • FIG. 22 is an illustration of ontology model corresponding to a twelfth and seventeenth example. [0094]
  • FIG. 23 is an illustration of ontology model corresponding to a thirteenth example [0095]
  • FIG. 24 is an illustration of ontology model corresponding to a fourteenth example [0096]
  • FIG. 25 is an illustration of ontology model corresponding to a twenty-second example; and [0097]
  • FIG. 26 is an illustration of ontology model corresponding to a twenty-third example. [0098]
  • DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
  • The present invention concerns deriving transformations for transforming data conforming with one data schema to data conforming to another data schema. Preferred embodiments of the invention are described herein with respect to table-based data schema, such as RDBS and document-based schema, such as XML schema. [0099]
  • Reference is now made to FIG. 1, which is a simplified flowchart of a method for deriving transformations for transforming data from one schema to another, in accordance with a preferred embodiment of the present invention. The flowchart begins at [0100] step 110. At step, 120 a source data schema and a target data schema are imported. These data schema describe templates for storing data, such as templates for tables and table columns, and templates for structured documents. If necessary, the source data schema and/or the target data schema may be converted from a standard format to an internal format. For example, they may be converted from Oracle format to an internal format.
  • At steps [0101] 130-160 a common ontology model is obtained, into which the source data schema and the target data schema can both be embedded, At step 130 a determination is made as to whether or not an initial ontology model is to be imported. If not, logic passes directly to step 160. Otherwise, at step 140 an initial ontology model is imported. If necessary, the initial ontology model may be converted from a standard format, such as one of the formats mentioned hereinabove in the Background, to an internal format.
  • At step [0102] 150 a determination is made as to whether or not the initial ontology model is suitable for embedding both the source and target data schema. If so, logic passes directly to step 170. Otherwise, at step 160 a common ontology model is built. If an initial ontology model was exported, then the common ontology is preferably build by editing the initial ontology model; specifically, by adding classes and properties thereto. Otherwise, the common ontology model is built from scratch. It may be appreciated that the common ontology model may be built automatically with or without user assistance.
  • At [0103] step 170 the source and target data schema are mapped into the common ontology model, and mappings therefor are generated. At step 180 a transformation is derived for transforming data conforming with the source data schema into data conforming with the target data schema, based on the mappings derived at step 170. Finally, the flowchart terminates at step 190.
  • Reference is now made to FIG. 2, which is a simplified block diagram of a [0104] system 200 for deriving transformations for transforming data from one schema to another, in accordance with a preferred embodiment of the present invention. Shown in FIG. 2 is a schema receiver 210 for importing a source data schema and a target data schema. These data schema describe templates for storing data, such as templates for tables and table columns, and templates for structured documents. If necessary, schema receiver 210 converts the source and target data schema from an external format to an internal format.
  • Also shown in FIG. 2 is an ontology receiver/[0105] builder 220 for obtaining a common ontology model, into which the source data schema and the target data schema can both be embedded. The operation of ontology receiver/builder 220 is described hereinabove in steps 130-160 of FIG. 1.
  • The source and target data schema, and the common ontology model are used by a [0106] mapping processor 230 to generate respective source and target mappings, for mapping the source data schema into the common model and for mapping the target data schema into the common ontology model. In a preferred embodiment of the present invention, mapping processor 230 includes a class identifier 240 for identifying ontology classes with corresponding to components of the source and target data schema, and a property identifier 250 for identifying ontology properties corresponding to other components of the source and target data schema, as described in detail hereinbelow.
  • Preferably, the source and target mappings generated by mapping processor, and the imported source and target data schema are used by a [0107] transformation generator 260 to derive a source-to-target transformation, for transforming data conforming to the source data schema into data conforming to the target data schema.
  • Reference is now made to FIG. 3, which is a simplified flowchart of a method for building a common ontology model into which one or more data schema can be embedded, in accordance with a preferred embodiment of the present invention. The flowchart begins are [0108] step 310. Steps 120, 140 and 160 are similar to these same steps in FIG. 1, as described hereinabove. Finally, the flowchart terminates at step 320.
  • Reference is now made to FIG. 4, which is a simplified block diagram of a [0109] system 400 for building a common ontology model into which one or more data schema can be embedded, in accordance with a preferred embodiment of the present invention. Shown in FIG. 4 is schema receiver 210 from FIG. 2 for importing data schema. Also shown in FIG. 4 is an ontology receiver 420, for importing an initial ontology model. If necessary, ontology receiver 420 converts the initial ontology model from an external format to an internal format.
  • The initial ontology model and the imported data schema are used by an [0110] ontology builder 430 for generating a common ontology model, into which the imported data schema can all be embedded. In a preferred embodiment of the present invention, ontology builder 430 generates the common ontology model by editing the initial ontology model; specifically, by using a class builder 440 to add classes thereto based on components of the imported data schema, and by using a property builder 450 to add properties thereto based on other components of the imported data schema.
  • Applications of the present invention include inter alia: [0111]
  • integrating between two or more applications that need to share data; [0112]
  • transmitting data from a database schema across a supply chain to a supplier or customer using a different database schema; [0113]
  • moving data from two or more databases with different schemas into a common database, in order that queries may be performed across the two or more databases; [0114]
  • loading a data warehouse database for off-line analysis of data from multiple databases; [0115]
  • synchronizing two databases; [0116]
  • migrating data when a database schema is updated; [0117]
  • moving data from an old database or database application to a replacement database or database application, respectively. [0118]
  • Relational Database Schema [0119]
  • Relational database schema (RDBS), also referred to as table definitions or, in some instances, metadata, are used to define templates for organizing data into tables and table columns, also referred to as fields. Often multiple schema exist for the same source of data, and as such the data cannot readily be imported or exported from one application to another. The present invention describes a general method and system for transforming an input, or source relational database schema into an output, or target schema. In a preferred embodiment, the present invention can be used to provide an SQL query, which when applied to a relational database from the source schema, produces a relational database in the target schema. [0120]
  • As described in detail hereinbelow, the present invention preferably uses an ontology model to determine an SQL query that accomplishes a desired source to target transformation. Specifically, the present invention employs a common ontology model into which both the source RDBS and target RDBS can be mapped. By mapping the source and target RDBS into a common ontology model, the present invention derives interrelationships among their tables and fields, and uses the interrelationships to determine a suitable SQL query for transforming databases conforming with the source RDBS into databases conforming with the target RDBS. [0121]
  • The present invention can also be used to derive executable code that transforms source relational databases into the target relational databases. In a preferred embodiment, the present invention creates a Java program that executes the SQL query using the JDBC (Java Database Connectivity) library. In an alternative embodiment the Java program manipulates the databases directly, without use of an SQL query. [0122]
  • For enterprise applications, SQL queries generated by the present invention are preferably deployed within an Enterprise Application Integration infrastructure. [0123]
  • Although the source and target RDBS are mapped into a common ontology model, the derived transformations of the present invention go directly from source RDBS to target RDBS without having to transform data via an ontological format. In distinction, prior art Universal Data Model approaches transform via a neutral model. [0124]
  • The present invention applies to N relational database schema, where N≧2. Using the present invention, by mapping the RDBS into a common ontology model, data can be moved from any one of the RDBS to any other one. In distinction to prior art approaches that require on the order of N[0125] 2 mappings, the present invention requires at most N mappings.
  • A “mapping” from an RDBS into an ontology model is defined as: [0126]
  • (i) an association of each table from the RDBS with a class in the ontology model, in such a way that rows of the table correspond to instances of the class; and [0127]
  • (ii) for each given table from the RDBS, an association of each column of the table with a property or a composition of properties in the ontology model, the source of which is the class corresponding to the given table and the target of which has a data type that is compatible with the data type of the column. [0128]
  • A mapping from an RDBS into an ontology model need not be surjective. That is, there may be classes and properties in the ontology that do not correspond to tables and columns, respectively, in the RDBS. A mapping is useful in providing a graph representation of an RDBS. [0129]
  • In general, although a mapping from an RDBS into an ontology model may exist, the nomenclature used in the RDBS may differ entirely from that used in the ontology model. Part of the utility of the mapping is being able to translate between RDBS language and ontology language. It may be appreciated by those skilled in the art, that in addition to translating between RDBS table/column language and ontology class/property language, a mapping is also useful in translating between queries from an ontology query language and queries from an RDBS language such as SQL (standard query language). [0130]
  • Reference is now made to FIG. 5, which is a first simplified illustration of a mapping from an RDBS into an ontology model, in accordance with a preferred embodiment of the present invention. Shown in FIG. 5 is a table [0131] 500, denoted T1, having four columns denoted C1, C2, C3 and C4. Also shown in FIG. 1 is an ontology model 550 having a class denoted K1 and properties P1, P2, P3 and P4 defined on class T1. The labeling indicates a mapping from table T1 into class K1, and from columns C1, C2, C3 and C4 into respective properties P1, P2, P3 and P4.
  • Reference is now made to FIG. 6, which is a second simplified illustration of a mapping from an RDBS into an ontology model, in accordance with a preferred embodiment of the present invention. Shown in FIG. 6 are table T1 from FIG. 5, and a second table [0132] 600, denoted T2, having four columns denoted D1, D2, D3 and D4. Column C1 of table T1 is a key; i.e., each entry for column C1 is unique, and can be used as an identifier for the row in which it is situated. Column D3 of table T2 refers to table T1, by use of the key from column C1. That is, each entry of column D3 refers to a row within table T1, and specifies such row by use of the key from C1 for the row.
  • Also shown in FIG. 6 is an [0133] ontology model 650 having two classes, denoted K1 and K2. Class K1 has properties P1, P2, P3 and P4 defined thereon, and class K2 has properties Q1, Q2, Q4 and S defined thereon. Property S has as its source class K1 and as its target class K2. The labeling indicates a mapping from table T1 into class K1, and from columns C1, C2, C3 and C4 into respective properties P1, P2, P3 and P4. The fact that C1 serves as a key corresponds to property P1 being one-to-one, so that no two distinct instances of class K1 have the same values for property P1.
  • The labeling also indicates a mapping from table T2 into class K2, and from columns D1, D2 and D4 into respective properties Q1, Q2 and Q4. Column D3 corresponds to a composite property P1oS, where o denotes function composition. In other words, column D3 corresponds to property P1 of S(K2). [0134]
  • The targets of properties P1, P2, P3, P4, Q1, Q2 and Q4 are not shown in FIG. 6, since these properties preferably map into fundamental types corresponding to the data types of the corresponding columns entries. For example, the target of P1 may be an integer, the target of P2 may be a floating point number, and the target of P3 may be a character string. Classes for such fundamental types are not shown in order to focus on more essential parts of [0135] ontology model 650.
  • Classes K1 and K2, and property S are indicated with dotted lines in [0136] ontology model 650. These parts of the ontology are transparent to the RDBS underlying tables T1 and T2. They represent additional structure present in the ontology model which is not directly present in the RDBS.
  • Given a source RDBS and a target RDBS, in a preferred embodiment of the present invention an appropriate transformation of source to target RDBS is generated by: [0137]
  • (i) mapping the source and target RDBS into a common ontology model; [0138]
  • (ii) representing fields of the source and target RDBS in terms of properties of the ontology model, using symbols for properties; [0139]
  • (iii) deriving expressions for target symbols in terms of source symbols; and [0140]
  • (iv) converting the expressions into one or more SQL queries. [0141]
  • Reference is now made to FIG. 7, which is a simplified illustration of relational database transformations involving constraints and joins, in accordance with a preferred embodiment of the present invention. [0142]
  • XML Schema [0143]
  • As described in detail hereinbelow, the present invention preferably uses an ontology model to determine an XSLT transformation that accomplishes a desired source to target transformation. Specifically, the present invention employs a common ontology model into which both the source XML schema and target XML schema can be mapped. By mapping the source and target XML schema into a common ontology model, the present invention derives interrelationships among their elements and attributes, and uses the interrelationships to determine suitable XSLT script for transforming documents generating documents conforming with the target XML schema from documents conforming with the source XML schema. [0144]
  • The present invention can also be used to derive executable code that transforms source XML documents into the target XML documents. In a preferred embodiment, the present invention packages the derived XSLT script with a Java XSLT engine to provide an executable piece of Java code that can execute the transformation. [0145]
  • Preferably, this is used to deploy XSLTs within an EAI product such as Tibco. Specifically, in a preferred embodiment of the present invention, a function (similar to a plug-in) is installed in a Tibco MessageBroker, which uses the Xalan XSLT engine to run XSLT scripts that are presented in text form. As an optimization, the XSLT script files are preferably compiled to Java classfiles. [0146]
  • Reference is now made to FIG. 8, which is a simplified illustration of use of a preferred embodiment of the present invention to deploy XSLT scripts within an EAI product such as Tibco. [0147]
  • User Interface [0148]
  • Applicant has developed a software application, named COHERENCE™, which implements a preferred embodiment of the present invention to transform data from one schema to another. Coherence enables a user [0149]
  • to import source and target RDBS; [0150]
  • to build an ontology model into which both the source and target RDBS can be mapped; [0151]
  • to map the source and target RDBS into the ontology model; and [0152]
  • to impose constraints on properties of the ontology model. [0153]
  • Once the mappings are defined, Coherence generates an SQL query to transform the source RDBS into the target RDBS. [0154]
  • Reference is now made to FIGS. 9A-9E, which are illustrations of a user interface for transforming data from one relational database schema to another using the Coherence software application, in accordance with a preferred embodiment of the present invention. Shown in FIG. 9A is a [0155] main Coherence window 905 with a left pane 910 and a right pane 915. Window 905 includes three primary tabs 920, 925 and 930, labeled Authoring, Mapping and Transformations, respectively. Authoring tab 920 is invoked in order to display information about the ontology model, and to modify the model by adding, deleting and editing classes and properties. Mapping tab 925 is invoked in order to display information about the RDBS and the mappings of the RDBS into the ontology, and to edit the mappings. Transformations tab 930 is invoked to display transformations in the form of SQL queries, from a source RDBS into a target RDBS. In FIG. 9A, tab 920 for Authoring is shown selected.
  • [0156] Left pane 910 includes icons for two modes of viewing an ontology: icon 935 for viewing in inheritance tree display mode, and icon 940 for viewing in package display mode.
  • Inheritance tree display mode shows the classes of the ontology in a hierarchical fashion corresponding to superclass and subclass relationships. As illustrated in FIG. 9A, in addition to the fundamental classes for Date, Number, Ratio, String and NamedElement, there is a class for City. Corresponding to the class selected in [0157] left pane 910, right pane 915 displays information about the selected class. Right pane 915 includes six tabs for class information display: tab 945 for General, tab 950 for Properties, tab 955 for Subclasses, tab 960 for Enumerated Values, tab 965 for Relations and tab 970 for XML schema. Shown in FIG. 9A is a display under tab 945 for General. The display includes the name of the class, Being, and the package to which it belongs; namely, fundamental. Also shown in the display is a list of immediate superclasses, which is an empty list for class Being. Also shown in the display is a textual description of the class; namely, that Being is a root class for all classes.
  • [0158] Tab 960 for Enumerated Values applies to classes with named elements; i.e., classes that include a list of all possible instances. For example, a class Boolean has enumerated values “True” and “False,” and a class Gender may have enumerated values “Male” and “Female.”
  • FIG. 9B illustrates package display mode for the ontology. Packages are groups including one or more ontology concepts, such as classes, and properties. Packages are used to organize information about an ontology into various groupings. As illustrated in FIG. 9B, there is a fundamental package that includes fundamental classes, such as Being, Boolean, Date and Integer. Also shown in FIG. 9B is a package named WeatherFahrenheit, which includes a class named City. [0159]
  • As shown in FIG. 9B, City is selected in [0160] left pane 910 and, correspondingly, right pane 915 displays information about the class City. Right pane 915 display information under Tab 950 for Properties. As can be seen, class City belongs to the package WeatherFahrenheit, and has four properties; namely, Celsius of type RealNumber, city of type String, Fahrenheit of type RealNumber and year of type RealNumber. FIG. 9B indicates that the property Celsius satisfies a constraint. Specifically, Celsius=5*(Fahrenheit −32)/9.
  • In FIG. 9C, the [0161] tab 925 for Mapping is shown selected. As shown in the left pane of FIG. 9C, two RDBS have been imported into Coherence. A first RDBS named WeatherCelsius, which includes a table named Towns, and a second RDBS named WeatherFahrenheit, which includes a table named Cities.
  • The table named Cities is shown selected in FIG. 9C, and correspondingly the right pane display information regarding the mapping of Cities into the ontology. As can be seen, the table Cities contains three fields; namely, Fahrenheit, city and year. The table Cities has been mapped into the ontology class City, the field Fahrenheit has been mapped into the ontology property Fahrenheit, the field city has been mapped into the ontology property name, and the field year has been mapped into the ontology property year. The RDBS WeatherFahrenheit will be designated as the source RDBS. [0162]
  • When [0163] tab 925 for Mapping is selected, the right pane includes three tabs for displaying information about the RDBS: tab 975 for Map Info, tab 980 for Table Info and tab 985 for Foreign Keys.
  • The RDBS named WeatherCelsius is displayed in FIG. 9D. As can be seen, the table Towns contains three fields; namely, town, Celcius and year. The table Towns has been mapped into the ontology class City, the field town has been mapped into the ontology property name, the field Celcius has been mapped into the ontology property Celcius, and the field year had been mapped into the ontology property year. The RDBS WeatherCelcius will be designated as the target RDBS. [0164]
  • As such, the target RDBS is [0165]
    TABLE I
    Towns
    Town Celcius Year
  • and the source RDBS is [0166]
    TABLE II
    Cities
    Fahrenheit City Year
  • In FIG. 9E, the [0167] tab 930 for Transformations is shown selected. As can be seen in the right pane, the source table is Cities and the target table is Towns. The SQL query
    INSERT INTO WeatherCelcius.Towns(CELCIUS, TOWN, YEAR)
    (SELECT
    (5 * (A.FAHRENHEIT − 32)/9) AS CELCIUS,
    A.CITY AS TOWN,
    A.YEAR AS YEAR
    FROM
    WeatherFahrenheit.Cities A);
  • accomplishes the desired transformation. [0168]
  • Reference is now made to FIG. 10, which is an illustration of a user interface for an application that imports an RDBS into Coherence, in accordance with a preferred embodiment of the present invention. Shown in FIG. 10 is a [0169] window 1010 for a schema convertor application. Preferably, a user specifies the following fields:
  • Database Name [0170] 1020: What Oracle refers to as an SID (System Identifier).
  • Host Name [0171] 1030: The name of an Oracle 8i server (or Global Database Name).
  • Port [0172] 1040: Port number
  • Username [0173] 1050: The username of a user with privileges to the relevant schemas.
  • Password [0174] 1060: The password of the user with privileges to the relevant schemas.
  • Oracle schema [0175] 1070: The schema or database in Oracle to be converted to .SML format. The .SML format is an internal RDBS format used by Coherence. When importing more than one schema, a semicolon (;) is placed between schema names.
  • Coherence schema [0176] 2080: The label identifying the RDBS that is displayed on the Mapping Tab in Coherence. This field is optional; if left blank, the Oracle schema name will be used.
  • Output File [0177] 1090: A name for the .SML file generated.
  • Reference is now made to FIGS. 11A-11R, which are illustrations of a for transforming data from one XML schema to another using the Coherence software application, in accordance with a preferred embodiment of the present invention. Shown in FIG. 11A is a window with package view of an Airline Integration ontology model in its left lane. The left pane displays classes from a fundamental package. A class Date is shown highlighted, and its properties are shown in the right pane. Fundamental packages are used for standard data types. Shown in FIG. 11B is a window with a hierarchical view of the Airline Integration ontology model in its left pane. The left pane indicates that FrequentFlyer is a subclass of Passenger, Passenger is a subclass of Person, and Person is a subclass of Being. The right pane displays general information about the class FrequentFlyer. [0178]
  • FIG. 11C shows a window used for opening an existing ontology model. In the Coherence software application, ontology models are described using XML and stored in .oml files. Such files are described in applicant's co-pending patent application U.S. Ser. No. 09/866,101 filed on May 25, 2001 and entitled METHOD AND SYSTEM FOR COLLABORATIVE ONTOLOGY MODELING, the contents of which are hereby incorporated by reference. [0179]
  • FIG. 11D shows the hierarchical view from FIG. 11B, indicating properties of the FrequentFlyer class. The property fullName is highlighted, and a window for constraint information indicates that there is a relationship among the ontology properties firstName, lastName and fullName; namely, that fullName is the concatenation of firstName and lastName with a white space therebetween. This relationship is denoted as [0180] Constraint 5.
  • FIG. 11E shows the hierarchical view from FIG. 11B, indicating test instance of the Passenger class. A list of instances is displayed in the right pane, along with property values for a specific selected instance from the list. [0181]
  • FIG. 11F shows two imported XML schema for airline information. FIG. 11G shows a window for importing XML schema into Coherence. FIG. 11H shows a window with a display of an imported XML schema for British Airways, with a list of complexTypes from the imported schema. The complexType Journey is selected, and the right pane indicates that Journey and its elements are currently not mapped to a class and properties of the ontology model. [0182]
  • FIG. 11I shows a window for generating a mapping from the British Airways XML schema into the Airline Integration ontology model. The ontology class Flight is shown selected to correspond to the XML ComplexType Journey. FIG. 11J shows the left pane from FIG. 11H, with the right pane now indicating that the XML complexType Journey from the British Airways XML schema has been mapped to the class Flight from the Airline Integration ontology model. FIG. 11K shows the left pane from FIG. 11H, with a window for selecting properties and indirect properties (i.e., compositions of properties) to correspond to elements from the XML schema. Shown selected in FIG. 11K is a property distanceInMiles( ) of the class Flight. FIG. 11L shows the left pane from FIG. 11H, with the right pane now indicated that Journey has been mapped to Flight, and the XML element distance_in_miles within the complexType Journey has been mapped to the property distanceInMiles( ) of the class Flight. FIG. 11M shows the left pane from FIG. 11H, with the right pane now indicating that the mapping has been extended to all XML elements of the complexType Journey, showing the respective properties to which each element is mapped. FIG. 11N shows schema info for the complexType Journey, listing its elements and their data types. [0183]
  • FIG. 11O shows a window for specifying a transformation to be derived. Shown in FIG. 10 is a request to derive a transformation from a source data schema, namely, the imported SwissAir XML schema to a target data schema, namely, the imported British Airways XML schema. Shown in FIG. 11P is an XSLT script generated to transform XML documents conforming to the SwissAir schema to XML documents conforming to the British Airways schema. FIG. 11Q shows a specific transformation of a SwissAir XML document to a British Airways XML document, obtained by applying the derived XSLT script from FIG. 11P. Finally, FIG. 11R shows a display of the newly generated British Airways XML document with specific flights and passengers. [0184]
  • EXAMPLES
  • For purposes of clarity and exposition, the workings of the present invention are described first through a series of twenty-three examples, followed by a general description of implementation. Two series of examples are presented. The first series, comprising the first eleven examples, relates to RDBS transformations. For each of these examples, a source RDBS and target RDBS are presented as input, along with mappings of these schema into a common ontology model. The output is an appropriate SQL query that transforms database tables that conform to the source RDBS, into database tables that conform to the target RDBS. Each example steps through derivation of source and target symbols, expression of target symbols in terms of source symbols and derivation of an appropriate SQL query based on the expressions. [0185]
  • The second series of examples, comprising the last twelve examples, relates to XSLT transformation. For each of these examples, a source XML schema and target XML schema are presented as input, along with mappings of these schema into a common ontology model. The output is an appropriate XSLT script that transforms XML documents that conform to the source schema into XML documents that conform to the target schema. [0186]
  • A First Example Schoolchildren
  • In a first example, a target table is of the following form: [0187]
    TABLE III
    Target Table T for First Example
    Child_Name Mother_Name School_Location Form
  • Four source tables are given as follows: [0188]
    TABLE IV
    Source Table S1 for First Example
    Name School_Attending Mother_NI_Number
  • [0189]
    TABLE V
    Source Table S2 for First Example
    NI_Number Name Region Car_Number
  • [0190]
    TABLE VI
    Source Table S3 for First Example
    Name Location HeadTeacher
  • [0191]
    TABLE VII
    Source Table S4 for First Example
    Name Year Form
  • The underlying ontology is illustrated in FIG. 12. The dotted portions of the ontology in FIG. 12 show additional ontology structure that is transparent to the relational database schema. Using the numbering of properties indicated in FIG. 12, the unique properties of the ontology are identified as: [0192]
    TABLE VIII
    Unique Properties within Ontology for First Example
    Property Property Index
    name(Child) 6
    national_insurance_number(Person) 4
    name(School) 10
  • The mapping of the target schema into the ontology is as follows: [0193]
    TABLE IX
    Mapping from Target schema to Ontology for First Example
    Property
    schema Ontology Index
    T Class: Child
    T.Child_Name Property: name(Child) 6
    T.Mother_Name Property: name(mother(Child)) 3o5
    T.School_Location Property: 12o9
    location(school_attending(Child))
    T.Form Property: current_school_form(Child) 8
  • The symbol o is used to indicate composition of properties. The mapping of the source schema into the ontology is as follows: [0194]
    TABLE X
    Mapping from Source schema to Ontology for First Example
    Property
    schema Ontology Index
    S1 Class: Child
    S1.Name Property: name(Child) 6
    S1.School_Attending Property: name(school_attending(Child)) 10o9
    S1.Mother_NI_Number Property: national_insurance_number(mother(Child)) 4o5
    S2 Class: Person
    S2.NI_Number Property: national_insurance_number(Person) 4
    S2.Name Property: name(Person) 3
    S2.Region Property: region_of_residence(Person) 1
    S2.Car_Number Property: car_registration_number(Person) 2
    S3 Class: School
    S3.Name Property: name(School) 10
    S3.Location Property: location(School) 12
    S3.HeadTeacher Property: name(headteacher(School)) 3o11
    S4 Class: Child
    S4.Name Property: name(Child) 6
    S4.Year Property: year_of_schooling(Child} 7
    S4.Form Property: current_school_form(Child) 8
  • The indices of the source properties are: [0195]
    TABLE XI
    Source Symbols for First Example
    Source Table Source Symbols
    S1 10o9o6−1
    4o5o6−1
    S2 3o4−1
    1o4−1
    2o4−1
    S3 12o10−1
    3o11o10−1
    S4 7o6−1
    8o6−1
  • The symbols in Table XI relate fields of a source table to a key field. Thus in table S[0196] 1 the first field, S1.Name is a key field. The second field, S1.School_Attending is related to the first field by the composition 10o9o6−1, and the third field, S1.Mother_NI_Number is related to the first field by the composition 4o5o6−1. In general, if a table contains more than one key field, then expressions relative to each of the key fields are listed.
  • The inverse notation, such as 6[0197] −1 is used to indicate the inverse of property 6. This is well defined since property 6 is a unique, or one-to-one, property in the ontology model. The indices of the target properties, keyed on Child_Name are:
    TABLE XII
    Target Symbols for First Example
    Target Table Target Symbols Paths
    T 3o5o6−1 (3o4−1) o (4o5o6−1)
    12o9o6−1 (12o10−1) o (10o9o6−1)
    8o6−1 (8o6−1)
  • Based on the paths given in Table XII, the desired SQL query is: [0198]
    INSERT INTO T(Child_Name, Mother_Name, School_Location, Form)
    (SELECT
    S1.Name AS Child_Name,
    S2.Name AS Mother_Name,
    S3.Location AS School_Location,
    S4.Form AS Form
    FROM
    S1, S2, S3, S4
    WHERE
    S2.NI_Number = S1.Mother_NI_Number AND
    S3.Name = S1.School_Attending AND
    S4.Name = S1.Name);
  • The rules provided with the examples relate to the stage of converting expressions of target symbols in terms of source symbols, into SQL queries. In general, [0199]
  • Rule 1: When a target symbol is represented using a source symbols, say (aob[0200] −1) from a source table, S, then the column of S mapping to a is used in the SELECT clause of the SOL query and the column of S mapping to b is used in the WHERE clause.
  • Rule 2: When a target symbol is represented as a composition of source symbols, say (aob[0201] −1) o (boc−1), where aob−1 is taken from a first source table, say S1, and boc−1 is taken from a second source table, say S2, then S1 and S2 must be joined in the SQL query by the respective columns mapping to b.
  • Rule 3: When a target symbol is represented using a source symbols, say (aob[0202] −1), from a source table, S, and is not composed with another source symbol of the form boc−1, then table S must be joined to the target table through the column mapping to b.
  • When applied to the following sample source data, Tables XIII, XIV, XV and XVI, the above SQL query produces the target data in Table XVII. [0203]
    TABLE XIII
    Sample Source Table S1 for First Example
    Name School_Attending Mother_NI_Number
    Daniel Ashton Chelsea Secondary School 123456
    Peter Brown Warwick School for Boys 673986
    Ian Butler Warwick School for Boys 234978
    Matthew Davies Manchester Grammar School 853076
    Alex Douglas Weatfields Secondary School 862085
    Emma Harrison Camden School for Girls 275398
    Martina Howard Camden School for Girls 456398
  • [0204]
    TABLE XIV
    Sample Source Table S2 for First Example
    NI_Number Name Region Car_Number
    123456 Linda London NULL
    673986 Amanda Warwick NULL
    456398 Claire Cambridgeshire NULL
    862085 Margaret NULL NULL
    234978 Amanda NULL NULL
    853076 Victoria Manchester NULL
    275398 Elizabeth London NULL
  • [0205]
    TABLE XV
    Sample Source Table S3 for First Example
    Name Location HeadTeacher
    Manchester Grammar School Manchester M. Payne
    Camden School for Girls London J. Smith
    Weatfields Secondary School Cambridgeshire NULL
    Chelsea Secondary School London I. Heath
    Warwick School for Boys Warwickshire NULL
  • [0206]
    TABLE XVI
    Sample Source Table S4 for First Example
    Name Year Form
    Peter Brown
    7 Lower Fourth
    Daniel Ashton
    10 Mid Fifth
    Matthew Davies
    4 Lower Two
    Emma Harrison
    6 Three
    James Kelly
    3 One
    Greg McCarthy 5 Upper Two
    Tina Reynolds
    8 Upper Fourth
  • [0207]
    TABLE XVII
    Sample Target Table T for First Example
    Child_Name Mother_Name School_Location Form
    Daniel Ashton Linda London Mid Fifth
    Peter Brown Amanda Warwickshire Lower Fourth
    Matthew Davies Victoria Manchester Lower Two
    Emma Harrison Elizabeth London Three
  • A Second Example Employees
  • In a second example, a target table is of the following form: [0208]
    TABLE XVIII
    Target Table T for Second Example
    Name Department Supervisor Room#
  • Four source tables are given as follows: [0209]
    TABLE XIX
    Source Table S1 for Second Example
    Emp_ID# Name Department
  • [0210]
    TABLE XX
    Source Table S2 for Second Example
    Employee_Name Supervisor Project
  • [0211]
    TABLE XXI
    Source Table S3 for Second Example
    ID# Room_Assignment Telephone#
  • [0212]
    TABLE XXII
    Source Table S4 for Second Example
    Department Budget
  • The underlying ontology is illustrated in FIG. 13. The dotted portions of the ontology in FIG. 13 are additional ontology structure that is transparent to the relational database schema. The unique properties of the ontology are: [0213]
    TABLE XXIII
    Unique Properties within Ontology for Second Example
    Property Property Index
    name(Employee) 3
    ID#(Employee) 4
  • The mapping of the target schema into the ontology is as follows: [0214]
    TABLE XXIV
    Mapping from Target schema to Ontology for Second Example
    Property
    schema Ontology Index
    T Class: Employee
    T.Name Property: name(Employee) 3
    T.Department Property: 8o7
    code(departmental_affiliation(Employee))
    T.Supervisor Property: name(supervisor(Employee)) 3o6
    T.Room# Property: room_number(Employee) 1
  • The mapping of the source schema into the ontology is as follows: [0215]
    TABLE XXV
    Mapping from Source schema to Ontology for Second Example
    Property
    schema Ontology Index
    S1 Class: Employee
    S1.Emp_ID# Property: ID#(Employee) 4
    S1.Name Property: name(Employee) 3
    S1.Department Properly: code(departmental_affiliation(Employee)) 8o7
    S2 Class: Employee
    S2.Employee_Name Property: name(Employee) 3
    S2.Supervisor Property: name(supervisor(Employee)) 3o6
    S2.Project Property: project_assignment(Employee) 5
    S3 Class: Employee
    S3.ID# Property: ID#(Employee) 4
    S3.Room_Assignment Property: room_number(Employee) 1
    S3.Telephone# Property: tel#(Employee) 2
    S4 Class: Department
    S4.Department Property: code(Department) 8
    S4.Budget Property: budget_amount(Department) 9
  • The indices of the source properties are: [0216]
    TABLE XXVI
    Source Symbols for Second Example
    Source Table Source Symbols
    S1 3o4−1
    8o7o4−1
    4o3−1
    8o7o3−1
    S2 3o6o3−1
    5o3−1
    S3 1o4−1
    2o4−1
    S4 9o8−1
  • The indices of the target properties, keyed on Name are: [0217]
    TABLE XXVII
    Target Symbols for Second Example
    Target Table Target Symbols Paths
    T 8o7o3−1 (8o7o3−1)
    3o6o3−1 (3o6o3−1)
    1o3−1 (1o4−1) o (4o3−1)
  • Based on the paths given in Table XXVII, the desired SQL query is: [0218]
    INSERT INTO T(Name, Department, Supervisor, Room#)
    (SELECT
    S1.Name AS Name,
    S1.Department AS Department,
    S2.Supervisor AS Supervisor,
    S3.Room_Assignment AS Room#
    FROM
    S1, S2, S3
    WHERE
    S2.Employee Name = S1.Name AND S3.ID# =
    S1.Emp_ID#);
  • It is noted that Table S[0219] 4 not required in the SQL. When applied to the following sample source data, Tables XXVIIII, XXIX and XXX, the above SQL query produces the target data in Table XXXI.
    TABLE XXVIII
    Sample Source Table S1 for Second Example
    Emp_ID# Name Department
    198 Patricia SW
    247 Eric QA
    386 Paul IT
  • [0220]
    TABLE XXIX
    Sample Source Table S2 for Second Example
    Employee_Name Supervisor Project
    Eric John Release 1.1
    Patricia George Release 1.1
    Paul Richard Release 1.1
  • [0221]
    TABLE XXX
    Sample Source Table S3 for Second Example
    ID# Room_Assignment Telephone#
    386 10 106
    198 8 117
    247 7 123
  • [0222]
    TABLE XXXI
    Sample Target Table T for Second Example
    Name Department Supervisor Room#
    Patricia SW George 8
    Eric QA John 7
    Paul IT Richard 10
  • A Third Example Airline Flights
  • In a third example, a target table is of the following form: [0223]
    TABLE XXXII
    Target Table T for Third Example
    FlightID DepartingCity ArrivingCity
  • Two source tables are given as follows: [0224]
    TABLE XXXIII
    Source Table S1 for Third Example
    Index APName Location
  • [0225]
    TABLE XXXIV
    Source Table S2 for Third Example
    FlightID FromAirport ToAirport
  • The underlying ontology is illustrated in FIG. 14. The dotted portions of the ontology in FIG. 14 are additional ontology structure that is transparent to the relational database schema. The unique properties of the ontology are: [0226]
    TABLE XXXV
    Unique Properties within Ontology for Third Example
    Property Property Index
    name(Airport) 1
    ID(Flight) 6
  • The mapping of the target schema into the ontology is as follows: [0227]
    TABLE XXXVI
    Mapping from Target schema to Ontology for Third Example
    Property
    schema Ontology Index
    T Class: Flight
    T.FlightID Property: ID#(Flight) 6
    T.DepartingCity Property: location(from_airport(Flight)) 2o4
    T.ArrivingCity Property: location(to_airport(Flight)) 2o5
  • The mapping of the source schema into the ontology is as follows: [0228]
    TABLE XXXVII
    Mapping from Source schema to Ontology for Third Example
    Property
    schema Ontology Index
    S1 Class: Airport
    S1.Index Property: Index(Airport) 3
    S1.APName Property: name(Airport) 1
    S1.Location Property: location(Airport) 2
    S2 Class: Flight
    S2.FlightID Property: ID#(Flight) 6
    S2.FromAirport Property: name(from_airport(Flight)) 1o4
    S2.ToAirport Property: name(to_airport(Flight)) 1o5
  • The indices of the source properties are: [0229]
    TABLE XXXVIII
    Source Symbols for Third Example
    Table Source Symbols
    S1 1o3−1
    2o3−1
    3o1−1
    2o1−1
    S2 1o4o6−1
    1o5o6−1
  • The indices of the target properties, keyed on FlightID are: [0230]
    TABLE XXXIX
    Target Symbols for Third Example
    Table Target Symbols Paths
    T 2o4o6−1 (2o1−1) o (1o4o6−1)
    2o5o6−1 (2o1−1) o (1o5o6−1)
  • Since the path (2o1[0231] −1) appears in two rows of Table XXXIX, it is necessary to create two tables for S1 in the SQL query. Based on the paths given in Table XXXVII, the desired SQL query is:
    INSERT INTO T(FlightID, DepartingCity, ArrivingCity)
    (SELECT
    S2.FlightID AS FlightID,
    S11.Location AS DepartingCity,
    S12.Location AS ArrivingCity
    FROM
    S1 S11, S1 S12, S2
    WHERE
    S11.APName = S2.FromAirport AND
    S12.APName = S2.ToAirport);
  • In general, [0232]
  • Rule 4: When the same source symbol is used multiple times in representing target symbols, each occurrence of the source symbol must refer to a different copy of the source table containing it. [0233]
  • When applied to the following sample source data, Tables XL and XLI, the above SQL query produces the target data in Table XLII. [0234]
    TABLE XL
    Sample Source Table S1 for Third Example
    Index APName Location
    1 Orly Paris
    2 JFK New York
    3 LAX Los Angeles
    4 HNK Hong Kong
    5 TLV Tel Aviv
    6 Logan Boston
  • [0235]
    TABLE XLI
    Sample Source Table S2 for Third Example
    FlightID FromAirport ToAirport
    001 Orly JFK
    002 JFK LAX
    003 TLV HNK
    004 Logan TLV
  • [0236]
    TABLE XLII
    Sample Target Table T for Third Example
    FlightID DepartingCity ArrivingCity
    001 Paris New York
    002 New York Los Angeles
    003 Tel Aviv Hong Kong
    004 Boston Tel Aviv
  • A Fourth Example Lineage
  • In a fourth example, a target table is of the following form: [0237]
    TABLE XLIII
    Target Table T for Fourth Example
    ID Name Father_Name
  • One source table is given as follows: [0238]
    TABLE XLIV
    Source Table S for Fourth and Fifth Examples
    ID Name Father_ID
  • The underlying ontology is illustrated in FIG. 15. The dotted portions of the ontology in FIG. 15 are additional ontology structure that is transparent to the relational database schema. The unique properties of the ontology are: [0239]
    TABLE XLV
    Unique Properties within Ontology for Fourth and Fifth Examples
    Property Property Index
    name(Person) 1
    ID#(Person) 2
  • The mapping of the target schema into the ontology is as follows: [0240]
    TABLE XLVI
    Mapping from Target schema to Ontology for Fourth Example
    Property
    schema Ontology Index
    T Class: Person
    T.ID Property: ID#(Person) 2
    T.Name Property: name(Person) 1
    T.Father_Name Property: name(father(Person)) 1o3
  • The mapping of the source schema into the ontology is as follows: [0241]
    TABLE XLVII
    Mapping from Source schema to Ontology
    for Fourth and Fifth Examples
    Property
    schema Ontology Index
    S Class: Person
    S.ID Property: ID#(Person) 2
    S.Name Property: name(Person) 1
    S.Father_ID Property: ID#(father(Person)) 2o3
  • The indices of the source properties are: [0242]
    TABLE XLVIII
    Source Symbols for Fourth and Fifth Examples
    Table Source Symbols
    S1 1o2−1
    2o3o2−1
  • The indices of the target properties, keyed on ID are: [0243]
    TABLE XLIX
    Target Symbols for Fourth Example
    Table Target Symbols Paths
    T 1o2−1 (1o2−1)
    1o3o2−1 (1o2−1) o (2o3o2−1)
  • Based on the paths given in Table XLIX, the desired SQL query is: [0244]
    INSERT INTO T(ID, Name, Father_ID)
    (SELECT
    S1.ID AS ID,
    S1.Name AS Name,
    S2.ID AS Father_ID
    FROM
    S S1, S S2
    WHERE
    S2.ID = S1.Father_ID);
  • A Fifth Example Lineage
  • In a fifth example, the target property of Father_Name in the fourth example is changed to Grandfather_Name, and the target table is thus of the following form: [0245]
    TABLE L
    Target Table T for Fifth Example
    ID Name Grandfather_Name
  • One source table is given as above in Table XLIV. [0246]
  • The underlying ontology is again illustrated in FIG. 15. The unique properties of the ontology are as above in Table XLV. [0247]
  • The mapping of the target schema into the ontology is as follows: [0248]
    TABLE LI
    Mapping from Target schema to Ontology for Fifth Example
    Property
    schema Ontology Index
    T Class: Person
    T.ID Property: ID#(Person) 2
    T.Name Property: name(Person) 1
    T.Grandfather_Name Property: 1o3o3
    name(father(father(Person)))
  • The mapping of the source schema into the ontology is given in Table XLVII above. [0249]
  • The indices of the source properties are given in Table XLVIII above. [0250]
  • The indices of the target properties, keyed on ID are: [0251]
    TABLE LII
    Target Symbols for Fifth Example
    Table Target Symbols Paths
    T 1o2−1 (1o2−1)
    1o3o3o2−1 (1o2−1) o (2o3o2−1) o
    (2o3o2−1)
  • Based on the paths given in Table LII, the desired SQL query is: [0252]
    INSERT INTO T(ID, Name, Grandfather_ID)
    (SELECT
    S1.ID AS ID, S1.Name AS Name,
    S3.ID AS Grandfather_ID
    FROM
    S S1, S S2, S S3
    WHERE
    S3.ID = S2.Father_ID AND
    S2.ID = S1.Father_ID);
  • A Sixth Example Dog Owners
  • In a sixth example, a target table is of the following form: [0253]
    TABLE LIII
    Target Table T for Sixth Example
    ID Name Dogs_Previous_Owner
  • Two source tables are given as follows: [0254]
    TABLE LIV
    Source Table S1 for Sixth Example
    ID Name Dog
  • [0255]
    TABLE LV
    Source Table S2 for Sixth Example
    Owner Name Previous_Owner
  • The underlying ontology is illustrated in FIG. 16. The dotted portions of the ontology in FIG. 16 are additional ontology structure that is transparent to the relational database schema. The unique properties of the ontology are: [0256]
    TABLE LVI
    Unique Properties within Ontology for Sixth Example
    Property Property Index
    ID#(Person) 2
    name(Dog) 6
  • The mapping of the target schema into the ontology is as follows: [0257]
    TABLE LVII
    Mapping from Target schema to Ontology for Sixth Example
    Property
    schema Ontology Index
    T Class: Person
    T.ID Property: ID#(Person) 2
    T.Name Property: name(Person) 1
    T.Dogs_Previous_Owner Property: 5o3
    previous_owner(dog(Person))
  • The mapping of the source schema into the ontology is as follows: [0258]
    TABLE LVIII
    Mapping from Source schema to Ontology for Sixth Example
    Property
    schema Ontology Index
    S1 Class: Person
    S1.ID Property: ID#(Person) 2
    S1.Name Property: name(Person) 1
    S1.Dog Property: name(dog(Person)) 6o3
    S2 Class: Dog
    S2.Owner Property: name(owner(Dog)) 1o4
    S2.Name Property: name(Dog) 6
    S2.Previous_Owner Property: name(previous_owner(Dog)) 1o5
  • The indices of the source properties are: [0259]
    TABLE LIX
    Source Symbols for Sixth Example
    Table Source Symbols
    S1 1o2−1
    6o3o2−1
    S2 1o4o6−1
    1o5o6−1
  • The indices of the target properties, keyed on ID are: [0260]
    TABLE LX
    Target Symbols for Sixth Example
    Table Target Symbols Paths
    T 1o2−1 (1o2−1)
    5o3o2−1 (1o5o6−1) o (6o3o2−1)
  • Based on the paths given in Table LX, the desired SQL query is: [0261]
    INSERT INTO T(ID, Name, Dogs_Previous_Owner)
    (SELECT
    S1.ID AS ID, S1.Name AS Name,
    S2.Previous_Owner AS Dogs_Previous_Owner
    FROM
    S1, S2
    WHERE
    S2.Name = S1.Dog);
  • A Seventh Example Employees
  • In a seventh example, a target table is of the following form: [0262]
    TABLE LXI
    Target Table T for Seventh Example
    ID Name Email Department
  • Five source tables are given as follows: [0263]
    TABLE LXII
    Source Table S1 for Seventh Example
    ID Department
  • [0264]
    TABLE LXIII
    Source Table S2 for Seventh Example
    ID Email
  • [0265]
    TABLE LXIV
    Source Table S3 for Seventh Example
    ID Name
  • [0266]
    TABLE LXV
    Source Table S4 for Seventh Example
    ID Email
  • [0267]
    TABLE LXVI
    Source Table S5 for Seventh Example
    ID Department
  • The underlying ontology is illustrated in FIG. 17. The dotted portions of the ontology in FIG. 17 are additional ontology structure that is transparent to the relational database schema. The unique properties of the ontology are: [0268]
    TABLE LXVII
    Unique Properties within Ontology for Seventh Example
    Property Property Index
    ID#(Person) 2
  • The mapping of the target schema into the ontology is as follows: [0269]
    TABLE LXVIII
    Mapping from Target schema to Ontology for Seventh Example
    schema Ontology Property Index
    T Class: Person
    T.ID Property: ID#(Person) 2
    T.Name Property: name(Person) 1
    T.Email Property: e-mail(Person) 3
    T.Department Property: department(Person) 4
  • The mapping of the source schema into the ontology is as follows: [0270]
    TABLE LXIX
    Mapping from Source schema to Ontology for Seventh Example
    schema Ontology Property Index
    S1 Class: Employee
    S1.ID Property: ID#(Employee) 2
    S1.Department Property: department(Employee) 4
    S2 Class: Employee
    S2.ID Properly: ID#(Employee) 2
    S2.Email Property: e-mail(Employee) 3
    S3 Class: Employee
    S3.ID Property: ID#(Employee) 2
    S3.Name Property: name(Employee) 1
    S4 Class: Employee
    S4.ID Property: ID#(Employee) 2
    S4.Email Property: e-mail(Employee) 3
    S5 Class: Employee
    S5.ID Property: ID#(Employee) 2
    S5.Department Property: department(Employee) 4
  • The indices of the source properties are: [0271]
    TABLE LXX
    Source Symbols for Seventh Example
    Table Source Symbols
    S1
    4o2−1
    S2
    3o2−1
    S3
    1o2−1
    S4
    3o2−1
    S5
    4o2−1
  • The indices of the target properties, keyed on ID are: [0272]
    TABLE LXXI
    Target Symbols for Seventh Example
    Table Target Symbols Paths
    T
    1o2−1 (1o2−1)
    3o2−1 (3o2−1)
    4o2−1 (4o2−1)
  • Based on the paths given in Table LXXI, the desired SQL query is: [0273]
    INSERT INTO T(ID, Name, Email, Department)
    (SELECT
    S1.ID AS ID, S3.Name AS Name,
    S2.Email AS Email,
    S1.Department AS Department
    FROM
    S1, S2, S3
    WHERE
    S2.ID = S1.ID AND S3.ID = S1.ID
    UNION
    SELECT
    S1.ID AS ID,
    S3.Name AS Name,
    S4.Email AS Email,
    S1.Department AS Department
    FROM
    S1, S3, S4
    WHERE
    S3.ID = S1.ID AND S4.ID = S1.ID
    UNION
    SELECT
    S1.ID AS ID,
    S3.Name AS Name,
    S2.Email AS Email,
    S5.Department AS Department
    FROM
    S1, S2, S3, S5
    WHERE
    S2.ID = S1.ID and S3.ID = S1.ID and S5.ID = S1.ID
    UNION
    SELECT
    S1.ID AS ID,
    S3.Name AS Name,
    S4.Email AS Email,
    S5.Department AS Department
    FROM
    S1, S3, S4, S5
    WHERE
    S2.ID = S1.ID and S3.ID = S1.ID and
    S4.ID = S1.ID AND S5.ID = S1.ID);
  • In general, [0274]
  • Rule 5: When a source symbol used to represent a target symbol is present in multiple source tables each such table must be referenced in an SOL querv and the resultant queries joined. [0275]
  • When applied to the following sample source data, Tables LXXII, LXXIII, LXXIV, LXXV and LXXVI, the above SQL query produces the target data in Table LXXVII. [0276]
    TABLE LXXII
    Sample Source Table S1 for Seventh Example
    ID Department
    123 SW
    456 PdM
    789 SW
  • [0277]
    TABLE LXXIII
    Sample Source Table S2 for Seventh Example
    ID Email
    123 jack@company
    456 jan@company
    789 jill@company
  • [0278]
    TABLE LXXIV
    Sample Source Table S3 for Seventh Example
    ID Name
    123 Jack
    456 Jan
    789 Jill
    999 Joe
    111 Jim
    888 Jeffrey
  • [0279]
    TABLE LXXV
    Sample Source Table S4 for Seventh Example
    ID Email
    999 joe@ company
    111 jim@ company
    888 Jeffrey@ company
  • [0280]
    TABLE LXXVI
    Sample Source Table S5 for Seventh Example
    ID Department
    999 Sales
    111 Business_Dev
    888 PdM
  • [0281]
    TABLE LXXVII
    Sample Target Table T for Seventh Example
    ID Name Email Department
    123 Jack jack@company SW
    456 Jan jan@company PdM
    789 Jill jill@company SW
    111 Jim jim@company Business_Dev
    888 Jeffrey jeffrey@company PdM
    999 Joe joe@company Sales
  • An Eighth Example Employees
  • In an eighth example, a target table is of the following form: [0282]
    TABLE LXXVIII
    Target Table T for Eighth Example
    Emp_Name Emp_Division Emp_Tel_No
  • Two source tables are given as follows: [0283]
    TABLE LXXIX
    Source Table S1 for Eighth Example
    Employee_Division Employee_Tel# Employee_Name Room#
  • [0284]
    TABLE LXXX
    Source Table S2 for Eighth Example
    Name Employee_Tel Division
  • The underlying ontology is illustrated in FIG. 18. The dotted portions of the ontology in FIG. 18 are additional ontology structure that is transparent to the relational database schema. The unique properties of the ontology are: [0285]
    TABLE LXXXI
    Unique Properties within Ontology for Eighth Example
    Property Property Index
    name(Employee) 1
  • The mapping of the target schema into the ontology is as follows: [0286]
    TABLE LXXXII
    Mapping from Target schema to Ontology for Eighth Example
    Property
    schema Ontology Index
    T Class: Employee
    T.Emp_Name Property: name(Employee) 1
    T.Emp_Division Property: division 4
    (Employee)
    T.Emp_Tel_No Property: telephone_number 2
    (Employee)
  • The mapping of the source schema into the ontology is as follows: [0287]
    TABLE LXXXIII
    Mapping from Source schema to Ontology for Eighth Example
    Property
    schema Ontology Index
    S1 Class: Employee
    S1.Employee_Division Property: division 4
    ( Employee)
    S1.Employee_Tel# Property: telephone_number 2
    (Employee)
    S1.Employee_Name Property: name(Employee) 1
    S1.Employee_Room# Property: room_number 3
    (Employee)
    S2 Class: Employee
    S2.Name Property: name(Employee) 1
    S2.Employee_Tel Property: telephone_number 2
    (Employee)
    S2.Division Property: division(Employee) 4
  • The indices of the source properties are: [0288]
    TABLE LXXXIV
    Source Symbols for Eighth Example
    Table Source Symbols
    S1 4o1−1
    2o1−1
    3o1−1
    S2 2o1−1
    4o1−1
  • The indices of the target properties, keyed on Emp_Name are: [0289]
    TABLE LXXXV
    Target Symbols for Eighth Example
    Table Target Symbols Paths
    T 4o1−1 (4o1−1)
    2o1−1 (2o1−1)
  • Since each of the source tables S[0290] 1 and S2 suffice to generate the target table T, the desired SQL is a union of a query involving S1 alone and a query involving S2 alone. Specifically, based on the paths given in Table LXXXV, the desired SQL query is:
    INSERT INTO T(Emp_Name, Emp_Division, Emp_Tel_No)
    (SELECT
    S1.Employee_Name AS Emp_Name,
    S1.Employee_Division AS Emp_Division,
    S1.Employee_Tel# AS Emp_Tel_No
    FROM
    S1
    UNION
    SELECT
    S2.Employee_Name AS Emp_Name,
    S2.Employee_Division AS Emp_Division,
    S2.Employee_Tel# AS Emp_Tel_No
    FROM S2);
  • In general, [0291]
  • Rule 6: When one or more source tables contain source symbols sufficient to generate all of the target symbols, then each such source table must be used alone in an SQL query and the resultant queries joined. (Note that [0292] Rule 6 is consistent with Rule 5.)
  • When applied to the following sample source data, Tables LXXXVI and LXXXVII, the above SQL query produces the target data in Table LXXXVIII. [0293]
    TABLE LXXXVI
    Sample Source Table S1 for Eighth Example
    Employee_Division Employee_Tel# Employee_Name Room#
    Engineering 113 Richard 10
    SW 118 Adrian 4
    Engineering 105 David 10
  • [0294]
    TABLE LXXXVII
    Sample Source Table S2 for Eighth Example
    Name Employee_Tel Division
    Henry 117 SW
    Robert 106 IT
    William 119 PdM
    Richard 113 Engineering
  • [0295]
    TABLE LXXXVIII
    Sample Target Table T for Eighth Example
    Emp_Name Emp_Division Emp_Tel_No
    Tom Engineering 113
    Adrian SW 118
    David Engineering 105
    Henry SW 117
    Robert IT 106
    William PdM 119
  • A Ninth Example Data Constraints
  • In a ninth example, a target table is of the following form: [0296]
    TABLE LXXXIX
    Target Table T for Ninth Example
    City Temperature
  • Two source tables are given as follows: [0297]
    TABLE XC
    Source Table S1 for Ninth Example
    City Temperature
  • [0298]
    TABLE XCI
    Source Table S2 for Ninth Example
    City C_Temperature
  • The underlying ontology is illustrated in FIG. 19. The dotted portions of the ontology in FIG. 19 are additional ontology structure that is transparent to the relational database schema. The properties temperature_in_Centrigade and temperature_in_Fahrenheit are related by the constraint: [0299]
  • Temperature_in_Centrigade(City) 5/9*(Temperature_in_Fahrenheit(City)−32)
  • The unique properties of the ontology are: [0300]
    TABLE XCII
    Unique Properties within Ontology for Ninth Example
    Property Property Index
    name(City) 1
  • The mapping of the target schema into the ontology is as follows: [0301]
    TABLE XCIII
    Mapping from Target schema to Ontology for Ninth Example
    Property
    schema Ontology Index
    T Class: City
    T.City Property: name(City) 1
    T.Temperature Property: 2
    temperature_in_Centigrade
    (City)
  • The mapping of the source schema into the ontology is as follows: [0302]
    TABLE XCIV
    Mapping from Source schema to Ontology for Ninth Example
    Property
    schema Ontology Index
    S1 Class: City
    S1.City Property: name(City) 1
    S1.Temperature Property: 3
    temperature_in_Fahrenheit
    (City)
    S2 Class: City
    S2.City Property: name(City) 1
    S2.C_Temperature Property: 2
    temperature_in_Centrigade
    (City)
  • The indices of the source properties are: [0303]
    TABLE XCV
    Source Symbols for Ninth Example
    Table Source Symbols
    S1 3o1−1
    S2 2o1−1
  • The indices of the target properties, keyed on City are: [0304]
    TABLE XCVI
    Target Symbols for Ninth Example
    Table Target Symbols Paths
    T 2o1−1 {fraction (5/9)} * ((3o1−1)−32)
    (2o1−1)
  • Since each of the source tables S[0305] 1 and S2 suffice to generate the target table T, the desired SQL is a union of a query involving S1 alone and a query involving S2 alone. Specifically, based on the paths given in Table XCVI, the desired SQL query is:
    INSERT INTO T(City, Temperature)
    (SELECT
    S1.City AS City,
    5/9 * (S1.Temperature − 32) AS Temperature
    FROM
    S1
    UNION
    SELECT
    S2.City AS City, S2.Temperature AS Temperature
    FROM
    S2);
  • In general, [0306]
  • Rule 7: When a target symbol can be expressed in terms of one or more source symbols by a dependency constraint then such constraint must appear in the list of target symbols. [0307]
  • When applied to the following sample source data, Tables XCVII and XCVIII, the above SQL query produces the target data in Table XCIX. [0308]
    TABLE XCVII
    Sample Source Table S1 for Ninth Example
    City Temperature
    New York 78
    Phoenix 92
    Anchorage 36
    Boston 72
  • [0309]
    TABLE XCVIII
    Sample Source Table S2 for Ninth Example
    City C_Temperature
    Moscow
    12
    Brussels 23
    Tel Aviv 32
    London 16
  • [0310]
    TABLE XCIX
    Sample Target Table T for Ninth Example
    City Temperature
    New York 25.5
    Phoenix 33.3
    Anchorage 2.22
    Boston 22.2
    Moscow 12
    Brussels 23
    Tel Aviv 32
    London 16
  • A Tenth Example Pricing
  • In a tenth example, a target table is of the following form: [0311]
    TABLE C
    Target Table T for Tenth Example
    Product Price
  • Two source tables are given as follows: [0312]
    TABLE CI
    Source Table S1 for Tenth Example
    SKU Cost
  • [0313]
    TABLE CII
    Source Table S2 for Tenth Example
    Item Margin
  • The underlying ontology is illustrated in FIG. 20. The dotted portions of the ontology in FIG. 20 are additional ontology structure that is transparent to the relational database schema. The properties price, cost_of_production and margin are related by the constraint: [0314]
  • price(Product)=cost_of_production(Product)*margin(Product).
  • The unique properties of the ontology are: [0315]
    TABLE CIII
    Unique Properties within Ontology for Tenth Example
    Property Property Index
    SKU(Product) 1
  • The mapping of the target schema into the ontology is as follows: [0316]
    TABLE CIV
    Mapping from Target schema to Ontology for Tenth Example
    schema Ontology Property Index
    T Class: Product
    T.Product Property: SKU(Product) 1
    T.Price Property: price(Product) 4
  • The mapping of the source schema into the ontology is as follows: [0317]
    TABLE CV
    Mapping from Source schema to Ontology for Tenth Example
    Property
    schema Ontology Index
    S1 Class: Product
    S1.SKU Property: SKU(Product) 1
    S1.Cost Property: cost_of_production(Product) 2
    S2 Class: Product
    S2.Item Property: SKU(Product) 1
    S2.Margin Property: margin(Product) 3
  • The indices of the source properties are: [0318]
    TABLE CVI
    Source Symbols for Tenth Example
    Table Source Symbols
    S1 2o1−1
    S2 3o1−1
  • The indices of the target properties, keyed on Product are: [0319]
    TABLE CVII
    Target Symbols for Tenth Example
    Table Target Symbols Paths
    T 4o1−1 (2o1−1) * (3o1−1)
  • Based on the paths given in Table CVII, the desired SQL query is: [0320]
    INSERT INTO T(Product, Price)
    (SELECT
    S1.SKU AS Product, (S1.Cost) * (S2.Margin) AS Price
    FROM
    S1, S2
    WHERE
    S2.Item = S1.SKU);
  • When applied to the following sample source data, Tables CVIII and CVIX, the above SQL query produces the target data in Table CX. [0321]
    TABLE CVIII
    Sample Source Table S1 for Tenth Example
    SKU Cost
    123 2.2
    234 3.3
    345 4.4
    456 5.5
  • [0322]
    TABLE CIX
    Sample Source Table S2 for Tenth Example
    Item Margin
    123 1.2
    234 1.1
    345 1.04
    456 1.3
  • [0323]
    TABLE CX
    Sample Target Table T for Tenth Example
    Product Price
    123 2.86
    234 3.96
    345 4.84
    456 5.72
  • An Eleventh Example String Concatenation
  • In an eleventh example, a target table is of the following form: [0324]
    TABLE CXI
    Target Table T for Eleventh Example
    ID# Full_Name
  • One source table is given as follows: [0325]
    TABLE CXII
    Source Table S for Eleventh Example
    ID# First_Name Last_Name
  • The underlying ontology is illustrated in FIG. 21. The dotted portions of the ontology in FIG. 21 a re additional ontology structure that is transparent to the relational database schema. The properties full_name, first_name and last_name are related by the constraint: [0326]
  • full_name(Person)=first_name(Person)∥last_name(Person),
  • where ∥ denotes string concatenation. [0327]
  • The unique properties of the ontology are: [0328]
    TABLE CXIII
    Unique Properties within Ontology for Eleventh Example
    Property Property Index
    ID#(Product) 1
  • The mapping of the target schema into the ontology is as follows: [0329]
    TABLE CXIV
    Mapping from Target schema to Ontology for Eleventh Example
    schema Ontology Property Index
    T Class: Person
    T.ID# Property: ID#(Person) 1
    T.Full_Name Property: full_name(Person) 4
  • The mapping of the source schema into the ontology is as follows: [0330]
    TABLE CXV
    Mapping from Source schema to Ontology for Eleventh Example
    schema Ontology Property Index
    S Class: Person
    S.ID# Property: ID#(Person) 1
    S.First_Name Property: first_name(Person) 2
    S.Last_Name Property: last_name(Person) 3
  • The indices of the source properties are: [0331]
    TABLE CXVI
    Source Symbols for Eleventh Example
    Table Source Symbols
    S 2o1−1
    2o1−1
  • The indices of the target properties, keyed on ID# are: [0332]
    TABLE CXVII
    Target Symbols for Eleventh Example
    Table Target Symbols Paths
    T 4o1−1 (2o1−1)|| (3o1−1)
  • Based on the paths given in Table CXVII, the desired SQL query is: [0333]
    INSERT INTO T(ID#, Full_Name)
    (SELECT
    S.ID# AS ID#,
    (S.First_Name)|| (S.Last_Name) AS Full_Name
    FROM
    S);
  • When applied to the following sample source data, Table CXVIII, the above SQL query produces the target data in Table CXIX. [0334]
    TABLE CXVIII
    Sample Source Table S for Eleventh Example
    ID# First_Name Last_Name
    123 Timothy Smith
    234 Janet Ferguson
    345 Ronald Thompson
    456 Marie Baker
    567 Adrian Clark
  • [0335]
    TABLE CXIX
    Sample Target Table T for Eleventh Example
    ID# Full_Name
    123 Timothy Smith
    234 Janet Ferguson
    345 Ronald Thompson
    456 Marie Baker
    567 Adrian Clark
  • A Twelfth Example Books→Documents
  • A source XML schema for books is given by: [0336]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”>
    <xs:element name=“book” type=“Book”/>
    <xs:complexType name=“Book”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”/>
    <xs:element name=“author” type=“Author“/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Author”>
    <xs:attribute name=“name”/>
    </xs:complexType>
    </xs:schema>
  • A target XML schema for documents is given by: [0337]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”>
    <xs:element name=“document” type=“Document”/>
    <xs:complexType name=“Document”>
    <xs:all>
    <xs:element name=“writer” type=“xs:string”/>
    </xs:all>
    <xs:attribute name=“title”/>
    </xs:complexType>
    </xs:schema>
  • A common ontology model for the source and target XML schema is illustrated in FIG. 22. A mapping of the source XML schema into the ontology model is given by: [0338]
    TABLE CXX
    Mapping from Source schema to Ontology
    for Twelfth and Thirteenth Examples
    schema Ontology Property Index
    complexType: book Class: Book
    element: book/name/text( ) Property: name(Book) 1
    element: book/author Property: author(Book) 2
    complexType: author Class: Person
    element: author/@name Property: name(Person) 3
  • A mapping of the target XML schema into the ontology model is given by: [0339]
    TABLE CXXI
    Mapping from Target schema to Ontology for Twelfth Example
    Property
    schema Ontology Index
    complexType: document Class: Book
    element: document/writer/text( ) Property: 3o2
    name(author(Book))
    attribute: document/@title Property: 1
    name(Book)
  • Tables CXX and CXXI use XPath notation to designate XSL elements and attributes. [0340]
  • Based on Tables CXX and CXXI, an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks: [0341]
  • 1. document/@title←book/name/text( ) [0342]
  • 2. document/writer/text( )←book/author/@name [0343]
  • Such a transformation is given by: [0344]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0” xmlns:xsl=
    “http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0” encoding=“UTF-8”
    indent=“yes”/>
    <xsl:template match=“/”>
    <document>
    <xsl:for-each select=“.//book[position( )=1]“>
    <xsl:attribute name=“title”>
    <xsl:value-of select=“name( )”/>
    </xsl:attribute>
    <xsl:element name=“writer”>
    <xsl:value-of select=“author/@name” />
    </xsl:element>
    </xsl:for-each>
    </document>
    </xsl:template>
    </xsl:stylesheet>
  • A Thirteenth Example Books→Documents
  • A source XML schema for books is given by: [0345]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”>
    <xs:element name=“book” type=“Book”/>
    <xs:complexType name=“Book”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”/>
    <xs:element name=“author” type=“Author” minOccurs=“0”
    maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Author”>
    <xs:attribute name=“name”/>
    </xs:complexType>
    </xs:schema>
  • A target XML schema for documents is given by: [0346]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”>
    <xs:element name=“document” type=“Document”/>
    <xs:complexType name=“Document”>
    <xs:choice>
    <xs:element name=“writer” type=“xs:string” minOccurs=“1”
    maxOccurs=“unbounded”/>
    <xs:element name=“title” type=“xs:string”/>
    <xs:element name=“ISBN” type=“xs:string” />
    </xs:choice>
    </xs:complexType>
    </xs:schema>
  • A common ontology model for the source and target XML schema is illustrated in FIG. 23. A mapping of the source XML schema into the ontology model is given by Table CXVIII above. A mapping of the target XML schema into the ontology model is given by: [0347]
    TABLE CXXII
    Mapping from Target schema to Ontology for Thirteenth Example
    Property
    schema Ontology Index
    complexType: document Class: Book
    element: document/writer/text( ) Property: 3o2
    name(author(Book))
    element: document/title/text( ) Property: 1
    name(Book)
    element: document/ISBN/text( ) Property: 4
    ISBN(Book)
  • Based on Tables CXX and CXXII, an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks: [0348]
  • 1. document/title/text( )←book/name/text( ) [0349]
  • 2. document/writer/text( )←book/author/@name [0350]
  • Such a transformation is given by: [0351]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”xmlns:xsl=
    “http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0” encoding=“UTF-8”
    indent=“yes”/>
    <xsl:template match=“/”>
    <document>
    <xsl:apply-templates select=“book” />
    </document>
    </xsl:template>
    <xsl:template match=“book”>
    <xsl:choose>
    <xsl:when test=“author”>
    <xsl:for-each select=“author”>
    <xsl:element name=“writer”>
    <xsl:value-of select=“@name”/>
    </xsl:element>
    </xsl:for-each>
    </xsl:when>
    <xsl:when test=“name”>
    <xsl:element name=“title”>
    <xsl:value-of select=“name/text( )”/>
    </xsl:element>
    </xsl:when>
    </xsl:choose>
    </xsl:template>
    </xsl:stylesheet>
  • A Fourteenth Example Document Storage
  • A source XML schema for books is given by: [0352]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”>
    <xs:element name=“library” type=“Library”/>
    <xs:complexType name=“Library”>
    <xs:sequence>
    <xs:element name=“source” type=“Source”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Source”>
    <xs:sequence>
    <xs:element name=“review” type=“Review”
    minOccurs=“0” maxOccurs=“unbounded”/>
    <xs:element name=“article” type=“Article”
    minOccurs=“0” maxOccurs=“unbounded”/>
    <xs:element name=“letter” type=“Letter”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Review”>
    <xs:sequence>
    <xs:element name=“author” type=“xs:string”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“title”/>
    </xs:complexType>
    <xs:complexType name=“Article”>
    <xs:sequence>
    <xs:element name=“writer” type=“xs:string”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“name”/>
    </xs:complexType>
    <xs:complexType name=“Letter”>
    <xs:sequence>
    <xs:element name=“sender” type=“xs:string”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“name”/>
    <xs:attribute name=“subject”/>
    <xs:attribute name=“receiver”/>
    </xs:complexType>
    </xs:schema>
  • A first target XML schema for documents is given by: [0353]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”>
    <xs:element name=“storage” type=“Storage”/>
    <xs:complexType name=“Storage”>
    <xs:sequence>
    <xs:element name=“articles” type=“Documents”/>
    <xs:element name=“reviews” type=“Documents”/>
    <xs:element name=“letters” type=“Letters”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Documents”>
    <xs:sequence>
    <xs:element name=“document” type=“Document”
    minOccurs=“0”
    maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Letters”>
    <xs:sequence>
    <xs:element name=“letter” type=“Letter”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Document”>
    <xs:sequence>
    <xs:element name=“author” type=“xs:string”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“title”/>
    </xs:complexType>
    <xs:complexType name=“Letter”>
    <xs:sequence>
    <xs:element name=“author” type=“xs:string”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“name”/>
    <xs:attribute name=“subject”/>
    <xs:attribute name=“receiver”/>
    </xs:complexType>
    </xs:schema>
  • A common ontology model for the source and first target XML schema is illustrated in FIG. 24. A mapping of the source XML schema into the ontology model is given by: [0354]
    TABLE CXXIII
    Mapping from Source schema to Ontology
    for Fourteenth Example
    Property
    schema Ontology Index
    complexType: review Class: Document
    element: review/author/text( ) Property: author(Document) 1
    attribute: review/@title Property: title(Document) 2
    complexType: article Class: Document
    element: article/writer/text( ) Property: author(Document) 1
    attribute: article/@name Property: title(Document) 2
    complexType: letter Class: Letter
    (inherits from Document)
    element: letter/sender/text( ) Property: author(Letter) 1
    attribute: letter/@name Property: title(Letter) 2
    attribute: letter/@subject Property: subject(Letter) 3
    attribute: letter/@receiver Property: receiver(Letter) 4
    complexType: source Class: Storage
    ComplexType: library Container Class:
    set[Storage]
  • A mapping of the first target XML schema into the ontology model is given by: [0355]
    TABLE CXXIV
    Mapping from First Target schema to
    Ontology for Fourteenth Example
    Property
    schema Ontology Index
    complexType: document Class: Document
    element: document/author/text( ) Property: author(Document) 1
    attribute: document/@title Property: title(Document) 2
    complexType: letter Class: Letter
    (inherits from Document)
    element: letter/author/text( ) Property: author(Letter) 1
    attribute: letter/@name Property: title(Letter) 2
    attribute: letter/@subject Property: subject(Letter) 3
    attribute: letter/@receiver Property: receiver(Letter) 4
    complexType: storage Class: Storage
    element: storage/articles Property: articles(Storage) 9
    element: storage/reviews Property: reviews(Storage) 10
    element: storage/letters Property: letters(Storage) 11
  • Based on Tables CXXIII and CXXIV, an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks: [0356]
  • 1. storage←library [0357]
  • 2. letter/author/text( )←letter/sender/text( ) [0358]
  • Such a transformation is given by: [0359]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:template match=“/”>
    <xsl:apply-templates select=“/library”/>
    </xsl:template>
    <xsl:template match=“/library”>
    <storage>
    <articles>
    <xsl:apply-templates select=“source[not(letter)]/article |
    source[not(review)]/article”/>
    </articles>
    <reviews>
    <xsl: apply-templates select=“source[not(letter)]/review”/>
    </reviews>
    <letters>
    <xsl:apply-templates select=“source[not(review)]/letter”/>
    </letters>
    </storage>
    </xsl:template>
    <xsl:template match=“article”>
    <article>
    <xsl:attribute name=“title”><xsl:value-of
    select=“@name”/></xsl:attribute>
    <xsl:apply-templates select=“writer”/>
    </article>
    </xsl:template>
    <xsl:template match=“review”>
    <review>
    <xsl:attribute name=“title”><xsl:value-of
    select=“@title”/></xsl:attribute>
    <xsl:apply-templates select=“author”/>
    </review>
    </xsl:template>
    <xsl:template match=“letter”>
    <review>
    <xsl:attribute name=“name”><xsl:value-of
    select=“@name”/></xsl:attribute>
    <xsl:attribute name=“subject”><xsl:value-of
    select=“@subject”/></xsl:attribute>
    <xsl:attribute name=“receiver”><xsl:value-of
    select=“@receiver”/></xsl:attribute>
    <xsl:apply-templates select=“sender”/>
    </review>
    </xsl:template>
    <xsl:template match=“article/writer | review/author | letter/sender”>
    <author>
    <xsl:value-of select=“text( )”/>
    </author>
    </xsl:template>
    </xsl:stylesheet>
  • A second target XML schema for documents is given by: [0360]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”>
    <xs:element name=“storage” type=“Storage”/>
    <xs:complexType name=“Storage”>
    <xs:sequence>
    <xs:element name=“books” type=“Books”/>
    <xs:element name=“magazines” type=“Magazines”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Books”>
    <xs:sequence>
    <xs:element name=“articles” type=“Documents”/>
    <xs:element name=“reviews” type=“Documents”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexTypename=“Magazines”>
    <xs:sequence>
    <xs:element name=“articles” type=“Documents”/>
    <xs:element name=“letters” type=“Letters”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Documents”>
    <xs:sequence>
    <xs:element name=“document” type=“Document”
    minOccurs=“0”
    maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Letters”>
    <xs:sequence>
    <xs:element name=“letter” type=“Letter”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Document”>
    <xs:sequence>
    <xs:element name=“author” type=“xs:string”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“title”/>
    </xs:complexType>
    <xs:complexType name=“Letter”>
    <xs:sequence>
    <xs:element name=“author” type=“xs:string”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“name”/>
    <xs:attribute name=“subject”/>
    <xs:attribute name=“receiver”/>
    </xs:complexType>
    </xs:schema>
  • A mapping of the second target XML schema into the ontology model is given by: [0361]
    TABLE CXXV
    Mapping from Second Target schema
    to Ontology for Fourteenth Example
    Property
    schema Ontology Index
    complexType: document Class: Document
    element: Property: author(Document) 1
    document/author/text( )
    attribute: Property: title(Document) 2
    document/@title
    complexType: letter Class: Letter
    (inherits from Document)
    element: Property: author(Letter) 1
    letter/author/text( )
    attribute: letter/@name Property: title(Letter) 2
    attribute: letter/@subject Property: subject(Letter) 3
    attribute: letter/@receiver Property: receiver(Letter) 4
    complexType: storage Class: Storage
    element: storage/books Property: books(Storage) 12
    element: storage/magazines Property: magazines(Storage) 13
    complexType: book Class: Book
    element: book/articles Property: articles(Book) 5
    element: book/reviews Property: reviews(Book) 6
    complexType: magazine Class: Magazine
    element: magazine/articles Property: articles(Magazine) 7
    element: magazine/letters Property: letters(Magazine) 8
  • Based on Tables CXXIII and CXXV, an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks: [0362]
  • 1. storage←library [0363]
  • 2. letter/author/text( )←letter/sender/text( ) [0364]
  • Such a transformation is given by: [0365]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:template match=“/”>
    <xsl:apply-templates select=“/library”/>
    </xsl:template>
    <xsl:template match=“/library”>
    <storage>
    <books>
    <articles>
    <xsl:apply-templates select=
    “source[not(letter)]/article”/>
    </articles>
    <reviews>
    <xsl:apply-templates select=
    “source[not(letter)]/review”/>
    </reviews>
    </books>
    <magazines>
    <articles>
    <xsl:apply-templates select=
    “source[not(review)]/article”/>
    </articles>
    <letters>
    <xsl:apply-templates select=
    “source[not(review)]/letter”/>
    </letters>
    </magazines>
    </storage>
    </xsl:template>
    <xsl:template match=“article”>
    <article>
    <xsl:attribute name=“title”><xsl:value-of
    select=“@name”/></xsl:attribute>
    <xsl:apply-templates select=“writer”/>
    </article>
    </xsl:template>
    <xsl:template match=“review”>
    <review>
    <xsl:attribute name=“title”><xsl:value-of
    select?=“@title”/></xsl:attribute>
    <xsl:apply-templates select=“author”/>
    </review>
    </xsl:template>
    <xsl:template match=“letter”>
    <review>
    <xsl:attribute name=“name”><xsl:value-of
    select=“@name”/></xsl:attribute>
    <xsl:attribute name=“subject”><xsl:value-of
    select=“@subject”/></xsl:attribute>
    <xsl:attribute name=“receiver”><xsl:value-of
    select=“@receiver”/></xsl:attribute>
    <xsl:apply-templates select=“sender”/>
    </review>
    </xsl:template>
    <xsl:template match=“article/writer | review/author |
    letter/sender”>
    <author>
    <xsl:value-of select=“text( )”/>
    </author>
    </xsl:template>
    </xsl:stylesheet>
  • A third target XML schema for documents is given by: [0366]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”>
    <xs:element name=“storage” type=“Storage”/>
    <xs:complexType name=“Storage”>
    <xs:sequence>
    <xs:element name=“article_from_books”
    type=“AB” minOccurs=“0”
    maxOccurs=“unbounded”/>
    <xs:element name=“article_from_magazines”
    type=“AM” minOccurs=“0”
    maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“AB”>
    <xs:sequence>
    <xs:element name=“authors” type=“xs:string”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“title”/>
    </xs:complexType>
    <xs:complexType name=“AM”>
    <xs:sequence>
    <xs:element name=“writers” type=“xs:string”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“name”/>
    </xs:complexType>
    </xs:schema>
  • A mapping of the third target XML schema into the ontology model is given by: [0367]
    TABLE CXXVI
    Mapping from Third Target schema to
    Ontology for Fourteenth Example
    Property
    schema Ontology Index
    complexType: AB Class: Document
    element: AB/author/text( ) Property: author(Document) 1
    attribute: AB/@title Property: title(Document) 2
    complexType: AM Class: Document
    element: AM/writer/text( ) Property: author(Document) 1
    attribute: AM/@title Property: title(Document) 2
    complexType: storage Complex Class:
    set[Document] × set[Document]
  • Based on Tables CXXIII and CXXVI, an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks: [0368]
  • 1. storage←library [0369]
  • 2. letter/author/text( )←letter/sender/text( ) [0370]
  • Such a transformation is given by: [0371]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:template match=“/”>
    <xsl:apply-templates select=“/library”/>
    </xsl:template>
    <xsl:template match=“/library”>
    <storage>
    <xsl:apply-templates
    select=“source[not(letter)]/article”mode=“AB”/>
    <xsl:apply-templates
    select=“source[not(review)]/article”mode=“AM”/>
    </storage>
    </xsl:template>
    <xsl:template match=“article” mode=“AB”>
    <article_from_books>
    <xsl:attribute name=“title”><xsl:value-of
    select=“@name”/></xsl:attribute>
    <xsl:apply-templates select=“writer” mode=“AB”/>
    </article_from_books>
    </xsl:template>
    <xsl:template match=“article” mode=“AM”>
    <article_from_magazines>
    <xsl:attribute name=“name”><xsl:value-of
    select=“@name”/></xsl:attribute>
    <xsl:apply-templates select=“writer” mode=“AM”/>
    </article_from_magazines>
    </xsl:template>
    <xsl:template match=“article/writer” mode=“AB”>
    <author>
    <xsl:value-of select=“text( )”/>
    </author>
    </xsl:template>
    <xsl:template match=“article/writer” mode=“AM”>
    <writer>
    <xsl:value-of select=“text( )”/>
    </writer>
    </xsl:template>
    </xsl:stylesheet>
  • A Fifteenth Example String Conversion
  • A source XML schema for people is given by: [0372]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“Person” type=“Person”/>
    <xs:complexType name=“Person”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”/>
    <!-- name expected input in format
    firstName#LastName -->
    <xs:element name=“ID” type=“xs:string”/>
    <!-- ID expected input in format XXXXXXXXX-X -->
    <xs:element name=“age” type=“xs:string”/>
    <!-- age expected input in exponential form XXXeX -->
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • A target XML schema for people is given by: [0373]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“Person” type=“Person”/>
    <xs:complexType name=“Person”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”/>
    <!-- name expected input in format LastName,
    FirstName -->
    <xs:element name=“ID” type=“xs:string”/>
    <!-- ID expected input in format
    12XX-XXXXXXXX3E -->
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • An XSLT transformation that maps the source schema into the target schema is given by: [0374]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0” xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0” encoding=“UTF-8” indent=“yes”/>
    <xsl:template match=“/”>
    <Person>
    <xsl:for-each select=“Person”>
    <xsl:element name=“name”>
    <xsl:value-of select=
    “concat(substring-after(name,‘#’),′,′,substring-before(name,‘#’))”/>
    </xsl:element>
    <xsl:element name=“ID”>
    <xsl:variable name=“plainID” select=
    “concat(substring-before(ID/text( ),‘-’),substring-after(ID/text(),‘-’))”/>
    <xsl:value-of select=
    “concat(‘12’,substring($plainID,1,2),‘-’,substring($plainID,3),‘3E’)”/>
    </xsl:element>
    <xsl:element name=“age”>
    <xsl:call-template name=“exponentiate”>
    <xsl:with-param name=“power” select=“substring-after(age,‘e’)”/>
    <xsl:with-param name=“digit” select=“substring-before(age,‘e’)”/>
    <xsl:with-param name=“ten” select=“1”/>
    </xsl:call-template>
    </xsl:element>
    </xsl:for-each>
    </Person>
    </xsl:template>
    <xsl:template name=“exponentiate”>
    <xsl:param name=“power”/>
    <xsl:param name=“digit”/>
    <xsl:param name=“ten”/>
    <xsl:choose>
    <xsl:when test=“$power &gt; 0”>
    <xsl:call-template name=“exponentiate”>
    <xsl:with-param name=“power” select=“$power − 1”/>
    <xsl:with-param name=“digit” select=“$digit”/>
    <xsl:with-param name=“ten” select=“$ten * 10”/>
    </xsl:call-template>
    </xsl:when>
    <xsl:when test=“$power &lt; 0”>
    <xsl: call-template name=“exponentiate”>
    <xsl:with-param name=“power” select=“$power + 1”/>
    <xsl:with-param name=“digit” select=“$digit”/>
    <xsl:with-param name=“ten” select=“$ten div 10”/>
    </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
    <xsl:value-of select=“format-number($digit * $ten,‘,###.###’) ”/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:template>
    </xsl:stylesheet>
  • A Sixteenth Example String Conversion
  • A source XML schema for people is given by: [0375]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=http://www.w3.org/2001/XMLschema
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“Person” type=“Person”/>
    <Xs:complexType name=“Person”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”/>
    <xs:element name=“homeTown” type=“xs:string”/>
    </xs:sequence>
    <xs:attribute name=“dog_name”/>
    </xs:complexType>
    </xs:schema>
  • A target XML schema for people is given by: [0376]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified” attributeFormDefault=“unqualified”>
    <xs:element name=“Person” type=“Person”/>
    <xs:complexType name=“Person”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”/>
    <xs:element name=“homeTown” type=“xs:string”/>
    </xs:sequence>
    <xs:attribute name=“dog_name”/>
    </xs:complexType>
    </xs:schema>
  • An XSLT transformation that maps the source schema into the target schema is given by: [0377]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“ 1.0”
    encoding=“UTF-8” indent=“yes”/>
    <xsl:template match=“/”>
    <Person>
    <xsl:for-each select=“Person”>
    <xsl:attribute name=“dog”>
    <xsl:value-of select=“@dog_name”/>
    </xsl:attribute>
    <xsl: element name=“name”>
    <xsl:value-of select=“name/text( )”/>
    </xsl:element>
    <xsl:elementname=“indexOfcarString_CaseInSensitive”>
    <xsl:variable name=“case_neutral”
    select=“translate(name,
    ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’,
    ‘abcdefghijklmnopqrstuvwxyz’)”/>
    <xsl:value-of select=
    “string-length(substring-before($case_neutral,
    ‘car’)) − 1”/>
    </xsl:element>
    <xsl:element name=“indexOfcarString_CaseSensitive”>
    <xsl:value-of select=“string-length(substring-before(name,
    ‘car’)) − 1”/>
    </xsl:element>
    <xsl:element name=“homeTown”>
    <xsl:value-of select=“homeTown” />
    </xsl:element>
    </xsl:for-each>
    </Person>
    </xsl:template>
    </xsl:stylesheet>
  • A Seventeenth Example Library→Storage
  • A source XML schema for libraries is given by: [0378]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”>
    <xs:element name=“library” type=“Library”/>
    <xs:complexType name=“Library”>
    <xs:sequence>
    <xs:element name=“book” type=“Book”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Book”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”/>
    <xs:element name=“author” type=“Author”
    maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Author”>
    <xs:attribute name=“name”/>
    </xs:complexType>
    </xs:schema>
  • A target XML schema for storage is given by: [0379]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”>
    <xs:element name=“storage” type=“Storage”/>
    <xs:complexType name=“Storage”>
    <xs:sequence>
    <xs:element name=“document” type=“Document”
    minOccurs=“0”
    maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Document”>
    <xs:sequence>
    <xs:element name=“writer” type=“xs:string”
    maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“title”/>
    </xs:complexType>
    </xs:schema>
  • A common ontology model for the source and target XML schema is illustrated in FIG. 22. A mapping of the source XML schema into the ontology model is given by Table CXX, with an additional correspondence between the complexType and the container class set[Book]. A mapping of the target XML schema into the ontology model is given by Table CXXI, with an additional correspondence between the complexType storage and the container class set{Book]. [0380]
  • Based on Tables CXX and CXXI, an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema should accomplish the following tasks: [0381]
  • 1. document/@title←book/name/text( ) [0382]
  • 2. document/writer/text( )←book/author/@name [0383]
  • Such a transformation is given by: [0384]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0” encoding=“UTF-8”
    indent=“yes”/>
    <xsl:template match=“/”>
    <storage>
    <xsl:for-each select=“.//library”>
    <xsl:for-each select=“book”>
    <document>
    <xsl:attribute name=“title”>
    <xsl:value-of select=“name”/>
    </xsl:attribute>
    <writer>
    <xsl:for-each select=“author/@name”>
    <xsl: value-of select=“.”/>
    </xsl:for-each>
    </writer>
    </document>
    </xsl:for-each>
    </xsl:for-each>
    </storage>
    </xsl:template>
    </xsl:stylesheet>
  • An Eighteenth Example Change Case
  • A source XML schema for plain text is given by: [0385]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=http://www.w3.org/2001/XMLschema
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“Person” type=“Person”/>
    <xs:complexType name=“Person”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”/>
    <xs:element name=“homeTown” type=“xs:string”/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • A target XML schema for case sensitive text is given by: [0386]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“Person” type=“Person”/>
    <xs:complexType name=“Person”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”/>
    <xs:element name=“homeTown” type=“xs:string”/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • An XSLT transformation that maps the source schema into the target schema is given by: [0387]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl: stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0” encoding=“UTF-8”
    indent=“yes”/>
    <xsl:template match=“/”>
    <Person>
    <xsl:for-each select=“Person”>
    <xsl:element name=“low_name”>
    <xsl:value-of select=“translate(name,
    ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’,
    ‘abcdefghijklmnopqrstuvwxyz’)”/>
    </xsl:element>
    <xsl:element name=“upper_homeTown”>
    <xsl:value-of select=“translate(homeTown,
    ‘abcdefghijklmnopqrstuvwxyz’,
    ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’)”/>
    </xsl:element>
    </xsl:for-each
    </Person>
    </xsl:template>
    </xsl:stylesheet>
  • An Nineteenth Example Number Manipulation
  • A source XML schema for list of numbers is given by: [0388]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“List_o_Numbers” type=“NumList”/>
    <xs:complexType name=“NumList”>
    <xs:sequence>
    <xs:element name=“first” type=“xs:string”/>
    <xs:element name=“second” type=“xs:float”/>
    <xs:element name=“third” type=“xs:float”/>
    <xs:element name=“fourth” type=“xs:float”/>
    <xs:element name=“fifth” type=“xs:float”/>
    <xs:element name=“sixth” type=“xs:float”/>
    <xs:element name=“seventh” type=“xs:float” />
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • A target XML schema for a list of numbers is given by: [0389]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“List_o_Numbers” type=“NumList”/>
    <xs:complexType name=“NumList”>
    <xs:sequence>
    <xs:element name=“first_as_num”
    type=“xs:decimal”/> <!-- first_as_num - take a
    string and return a numerical value. Exemplifies use of
    the operator value(string) -->
    <xs:element name=“second_floor”
    type=“xs:decimal”/> <!--second_floor return
    nearest integer less than number. Exemplifies use
    of the operator floor(number) -->
    <xs:element name=“second_firstDecimal_floor”
    type=“xs:decimal”/>
    <!-- second_firstDecimal_floor - return nearest first
    decimal place less than number.
    Exemplifies use of the operator
    floor(number, significance) -->
    <xs:element name=“third_ceil”
    type=“xs:decimal”/> <!- third_ceil - return nearest
    integer greater than number. Exemplifies use of
    the operator ceil(number) -->
    <xs:element name=“third_secondDecimal_ceil”
    type=“xs:decimal”/>
    <!-- third_secondDecimal_ceil - return nearest second
    decimal place greater than number.
    Exemplifies use of the operator
    cei(number, significance) -->
    <xs:element name=“fourth_round”
    type=“xs:decimal”/> <!--fourth_round - round
    the number in integers. Exemplifies use of the
    operator round(number) -->
    <xs:element name=“fourth_thirdDecimal_round”
    type=“xs:decimal”/>
    <!-- fourth_thirdDecimal_round - round the number up to
    third decimal.
    Exemplifies use of the operator
    round(number, significance) -->
    <xs:element name=“fifth_roundToThousand”
    type=“xs:decimal”/>
    <!-- fifth_roundToThousand - round the number up to
    nearest ten to the third.
    Exemplifies use of the operator
    roundToPower(number, power) -->
    <xs:element name=“abs_sixth”
    type=“xs:decimal”/> <!-- abs_sixth - return
    absolute value of number. Exemplifies use
    of operator abs(number) -->
    <xs:element name=“seventh”
    type=“xs:string” /> <!-- seventh - return number as
    string. Exemplifies use of operator
    string(number) -->
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • An XSLT transformation that maps the source schema into the target schema is given by: [0390]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0” encoding=“UTF-8” indent=“yes”/>
    <xsl:template match=“/”>
    <List_o_Numbers>
    <xsl:for-each select=“List_o_Numbers”>
    <xsl:element name=“first_as_num”>
    <xsl:value-of select=“number(first)”/>
    </xsl:element> <!-- first_as_num - take a string and return a numerical value.
    Exemplifies use of the operator value(string) -->
    <xsl:element name=“second_floor”>
    <xsl:value-of select=“floor(second)”/>
    </xsl:element> <!-- second_floor return nearest integer less than number.
    Exemplifies use of the operator floor(number) -->
    <xsl:elementname=“second_firstDecimal_floor”>
    <xsl:value-of select=“floor(second*10) div 10”/>
    </xsl:element> <!-- second_firstDecimal_floor - return nearest first decimal
    place less than number. Exemplifies use of the operator floor(number, significance) -->
    <xsl: element name=“third_ceil”>
    <xsl:value-of select=“ceiling(third)”/>
    </xsl:element>
    <xsl: element name=“third secondDecimal_ceil”>
    <xsl:value-of select=“ceiling(third*100) div 100”/>
    </xsl:element> <!-- third_ceil - return nearest integer greater than number.
    Exemplifies use of the operator ceil(number) -->
    <xsl:element name=“fourth_round”>
    <xsl:value-of select=“round(fourth)”/>
    </xsl:element> <!--fourth_round - round the number in integers
    Exemplifies use of the operator round(number) -->
    <xsl:element name=“fourth_thirdDecimal_round”>
    <xsl:value-of select=“round(fourth*1000) div 1000” />
    </xsl:element> <!-- fourth_thirdDecimal_round - round the number up to
    third decimal. Exemplifies use of the operator round(number, significance) -->
    <xsl:element name=“fifth_roundToThousand”>
    <xsl:value-of select=“round(fifth div 1000) * 1000” />
    </xsl:element> <!-- fifth_roundToThousand - round the number up to nearest
    ten to the third. Exemplifies use of the operator roundToPower(number, power) -->
    <xsl:element name=“abs_sixth”>
    <xsl:choose>
    <xsl:when test=“sixth &lt; 0”>
    <xsl:value-of select=“sixth * −1”/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:value-of select=“sixth”/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:element> <!-- abs_sixth - return absolute value of number.
    Exemplifies use of operator abs(number) -->
    <xsl:element name=“seventh”>
    <xsl:value-of select=“concat(‘ ’,string(seventh),‘ ’)”/>
    </xsl:element> <!-- seventh - return number as string.
    Exemplifies use of operator string(number) -->
    </xsl:for-each>
    </List_o_Numbers>
    </xsl:template>
    </xsl:stylesheet>
  • A Twentieth Example String Manipulation
  • A source XML schema for a person is given by: [0391]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“Person” type=“Person”/>
    <xs:complexType name=“Person”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”/>
    <xs:element name=“homeTown” type=“xs:string”/>
    </xs:sequence>
    <xs:attribute name=“dog_name” />
    </xs:complexType>
    </xs:schema>
  • A target XML schema for a person is given by: [0392]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“Person” type=“Person”/>
    <xs:complexType name=“Person”>
    <xs:sequence>
    <xs:element name=“four_name”
    type=“xs:string”/>
    <xs:element name=“capital_homeTown”
    type=“xs:string”/>
    <!-- four-Name is only four characters long, please.
    This exemplifies use of the substring(string, start,
    length) operator-->
    <!--capital_homeTown - we must insist you capitalize
    the first letter of a town,
    out of respect. This exemplifies use of the capital
    operator-->
    </xs:sequence>
    <xs:attribute name=“dog_trim”/>
    <xs:attribute name=“dog_length”/>
    <!-- dog_trim - keep your dog trim - no blank spaces
    in front or after the name.
    This exemplifies use of the trim operator -->
    <!--dog_length - gives the number of characters
    (in integers, not dog years) in your
    dog's name. This exemplifies use of the length(string)
    operator -->
    </xs:complexType>
    </xs:schema>
  • An XSLT transformation that maps the source schema into the target schema is given by: [0393]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0”
    encoding=“UTF-8” indent=“yes”/>
    <xsl:template match=“/”>
    <Person>
    <xsl:for-each select=“Person”>
    <xsl:attribute name=“dog_trim”>
    <xsl:value-of
    select=“normalize-space(@dog_name)”/>
    </xsl:attribute>
    <xsl:attribute name=“dog_length”>
    <xsl:value-of
    select=“string-length(normalize-space(@dog_name))”/>
    </xsl:attribute>
    <!-- dog_trim - This exemplifies use of the
    trim operator -->
    <!--dog_length - This exemplifies use of the
    length(string) operator ->
    <xsl:element name=“four_name”>
    <xsl:value-of
    select=“substring(name,1, 4)”/>
    </xsl:element>
    <xsl:element name=“capital_homeTown”>
    <xsl:value-of
    select=“concat(translate(substring(normalize-
    space(homeTown),1,1),
    ‘abcdefghijklrnnopqrstuvwxyz’,
    ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’),
    substring(normalize-space(homeTown),2))” />
    </xsl:element>
    <!-- four-Name. This exemplifies use of the
    substring(string,start,length) operator-->
    <!-- capital_hometown. This exemplifies use of
    the capital operator-->
    </xsl:for-each>
    </Person>
    </xsl:template>
    </xsl:stylesheet>
  • A Twenty-First Example Temperature Conversion
  • A source XML schema for temperature in Fahrenheit is given by: [0394]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“city” type=“city”/>
    <xs:complexType name=“city”>
    <xs:sequence>
    <xs:element name=“temperatureF” type=“xs:string”/>
    </xs:sequence>
    <xs:attribute name=“name” />
    </xs:complexType>
    </xs:schema>
  • A target XML schema for temperature in Centigrade is given by: [0395]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“town” type=“town” />
    <xs:complexType name=“town”>
    <xs:sequence>
    <xs:element name=“temperatureC” type=“xs:string” />
    </xs:sequence>
    </xs:complexType>
    <xs:attribute name=“name” />
    </xs:schema>
  • An XSLT transformation that maps the source schema into the target schema is given by: [0396]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0”
    encoding=“UTF-8” indent=“yes”/>
    <xsl:template match=“/”>
    <town>
    <xsl:for-each select=“city”>
    <xsl:attribute name=“name”>
    <xsl:value-of select=“@name”/>
    </xsl:attribute>
    <xsl:element name=“temperatureC”>
    <xsl:value-of
    select=select=“floor( (temperatureF - 32) *
    (5 div 9))” />
    </xsl:element>
    </xsl:for-each>
    </town>
    </xsl:template>
    </xsl:stylesheet>
  • A Twenty-Second Example Town with Books
  • A source XML schema for a town with books is given by: [0397]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“town” type=“Town” />
    <xs:complexType name=“Town”>
    <xs:sequence>
    <xs:element name=“library”
    type=“Library” minOccurs=“0”
    maxOccurs=“unbounded” />
    </xs:sequence>
    <xs:attribute name=“name” type=“xs:string” />
    </xs:complexType>
    <xs:complexType name=“Library”>
    <xs:sequence>
    <xs:element name=“book”
    type=“Book” minOccurs=“0”
    maxOccurs=“unbounded” />
    </xs:sequence>
    <xs:attribute name=“name”
    type=“xs:string” />
    </xs:complexType>
    <xs:complexType name=“Book”>
    <xs:sequence>
    <xs:element name=“title”
    type=“xs:string” />
    <xs:element name=“author_name”
    type=“xs:string” minOccurs=“1”
    maxOccurs=“unbounded” />
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • A target XML schema for a list of books is given by: [0398]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“list_of_books” type=“books”/>
    <xs:complexType name=“books”>
    <xs:sequence>
    <xs:element name=“book”
    type=“book” minOccurs=“0”
    maxOccurs=“unbounded” />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“book”>
    <xs:sequence>
    <xs:element name=“title”
    type=“xs:string” />
    <xs:element name=“author_name”
    type=“xs:string” minOccurs=“1”
    maxOccurs=“unbounded” />
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • A common ontology model for the source and target XML schema is illustrated in FIG. 25. A mapping of the source XML schema into the ontology model is given by: [0399]
    TABLE CXXVII
    Mapping from Source schema to Ontology
    for Twenty-Second Example
    Property
    schema Ontology Index
    complexType: book Class: Book
    element: book/title/text( ) Property: name(Book) 1
    element: book/author_name/text( ) Property: author(Book) 2
    complexType: library Class: Library
    element: library/books Container Class: 5
    set[Book]
    element: library/name/text( ) Property: name(Library) 6
    complexType: town Class: Town
    element: town/libraries Container Class: 1
    set[Library]
    element: town/name/text( ) Property: name(Town) 2
  • A mapping of the target XML schema into the ontology model is given by: [0400]
    TABLE CXXVIII
    Mapping from Target schema to Ontology
    for Twenty-Second Example
    Property
    schema Ontology Index
    complexType: book Class: Book
    element: book/title/text( ) Property: name(Book) 1
    element: book/author_name/text( ) Property: author(Book) 2
    element: list_of_books Set[Book]
  • Based on Tables CXXVII and CXXVIII, an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the target schema is given by: [0401]
    <?xml versions“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0”
    encoding=“UTF-8” indent=“yes”/>
    <xsl:template match=“/”>
    <books>
    <xsl:for-each select=“.//book”>
    <book>
    <xsl:element name=“title”>
    <xsl:value-of select=“title/text( )”/>
    </xsl:element>
    <xsl:for-each select=“author_name”>
    <xsl:element name=“author_name”>
    <xsl:value-of select=“.”/>
    </xsl:element>
    </xsl:for-each>
    </book>
    </xsl:for-each>
    </books>
    </xsl:template>
    </xsl:stylesheet>
  • A Twenty-Third Example Town with Books
  • A source XML schema for a town is given by: [0402]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“town” type=“Town”/>
    <xs:complexType name=“Town”>
    <xs:sequence>
    <xs:element name=“library”
    type=“Library” minOccurs=“0”
    maxOccurs=“unbounded”/>
    <xs:element name=“police_station”
    type=“PoliceStation” minOccurs=“0”
    maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“name” type=“xs:string”/>
    </xs:complexType>
    <xs:complexType name=“Library”>
    <xs:sequence>
    <xs:element name=“book” type=“Book”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    <xs:attribute name=“name” type=“xs:string”/>
    </xs:complexType>
    <xs:complexType name=“Book”>
    <xs:sequence>
    <xs:element name=“title” type=“xs:string”/>
    <xs:element name=“author_name”
    type=“xs:string” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“PoliceStation”>
    <xs:sequence>
    <xs:element name=“Officers”
    type=“Officers”/>
    </xs:sequence>
    <xs:attribute name=“identifier”
    type=“xs:string”/>
    </xs:complexType>
    <xs:complexType name=“Officers”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”
    minOccurs=“1” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • A first target XML schema for police stations is given by: [0403]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“PoliceStations”
    type=“PoliceStations”/>
    <xs:complexType name=“PoliceStations”>
    <xs:sequence>
    <xs:element name=“Station” type=“Station”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Station”>
    <xs:sequence>
    <xs:element name=“Officers”
    type=“Officers”/>
    </xs:sequence>
    <xs:attribute name=“identifier” type=“xs:string”/>
    </xs:complexType>
    <xs:complexType name=“Officers”>
    <xs:sequence>
    <xs:elementname=“name” type=“xs:string”
    minOccurs=“1” maxOccurs=“10”/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • A common ontology model for the source and target XML schema is illustrated in FIG. 26. A mapping of the source XML schema into the ontology model is given by: [0404]
    TABLE CXXIX
    Mapping from Source schema to Ontology
    for Twenty-Third Example
    Property
    schema Ontology Index
    complexType: book Class: Book
    element: book/title/text( ) Property: title(Book) 2
    element: book/author Property: author(Book) 1
    name/text( )
    complexType: library Class: Library
    element: library/books Container Class: 5
    set[Book]
    element: library/@name Property: name(Library) 6
    complexType: officer Class: Person
    element: officer/name/text( ) Property: name(Person) 7
    complexType: police_station Class: Station
    element: police_station/officers Container Class: 8
    set[Person]
    element: police_station/ Property: 9
    @identifier identifier(Station)
    complexType: town Class: Town
    element: town/libraries Container Class: 3
    set[Library]
    element: town/police_stations Container Class: 10
    set[Station]
    element: town/@name Property: name(Town) 4
  • A mapping of the first target XML schema into the ontology model is given by: [0405]
    TABLE CXXX
    Mapping from Target schema to Ontology
    for Twenty-Third Example
    Property
    schema Ontology Index
    complexType: officer Class: Person
    element: Property: name(Person) 7
    officer/name/text( )
    complexType: station Class: Station
    element: station/officers Container Class: 8
    set[Person]
    element: Property: 9
    station/@identifier identifier(Station)
    complexType: Class:
    police_stations set[Station]
  • Based on Tables CXXIX and CXXX, an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the first target schema is given by: [0406]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0”
    encoding=“UTF-8” indent=“yes”/>
    <xsl:template match=“/”>
    <PoliceStations>
    <xsl:for-each select=“.//PoliceStation”>
    <Station>
    <xsl:attribute name=“identifier”>
    <xsl:value-of select=“@identifier”/>
    </xsl:attribute>
    <xsl:for-each select=“Officers”>
    <Officers>
    <xsl:for-each
    select=“name[position( ) &lt;11]”>
    <xsl:element name=“name”>
    <xsl:value-of select=“.”/>
    </xsl:element>
    </xsl:for-each>
    </Officers>
    </xsl:for-each>
    </Station>
    </xsl:for-each>
    </PoliceStations>
    </xsl:template>
    </xsl:stylesheet>
  • A second target XML schema for temperature in Centigrade is given by: [0407]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“PoliceStations”
    type=“PoliceStations”/>
    <xs:complexType name=“PoliceStations”>
    <xs:sequence>
    <xs:element name=“Station” type=“Station”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Station”>
    <xs:sequence>
    <xs:element name=“Officers” type=“Officers”/>
    </xs:sequence>
    <xs:attribute name=“identifier” type=“xs:string”/>
    </xs:complexType>
    <xs:complexType name=“Officers”>
    <xs:sequence>
    <xs:element name=“name” type=“xs:string”
    minOccurs=“10” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • Based on Tables CXXIX and CXXX, an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the second target schema is given by: [0408]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0”
    encoding=“UTF-8” indent=“yes”/>
    <xsl:template match=“/”>
    <PoliceStations>
    <xsl:for-each select=“.//PoliceStation”>
    <Station>
    <xsl:attribute name=“identifier”>
    <xsl:value-of select=“@identifier”/>
    </xsl:attribute>
    <xsl:for-each select=“Officers”>
    <Officers>
    <xsl:for-each select=“name”>
    <xsl:element name=“name”>
    <xsl:value-of select=“.”/>
    </xsl:element>
    </xsl:for-each>
    </Officers>
    </xsl:for-each>
    <xsl:call-template name=“generate_officer”>
    <xsl:with-param name=“so_far”
    select=“count(name)”/>
    </xsl:call-template>
    </Station>
    </xsl:for-each>
    </PoliceStations>
    </xsl:template>
    <xsl:template name=“generate_officer”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; 10”>
    <bar>
    </bar>
    <xsl:call-template name=“generate_officer”>
    <xsl:with-param name=“so_far”
    select=“$so_far + 1”/>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
    </xsl:stylesheet>
  • A third target XML schema for temperature in Centigrade is given by: [0409]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLschema”
    elementFormDefault=“qualified”
    attributeFormDefault=“unqualified”>
    <xs:element name=“PoliceStations”
    type=“PoliceStations”/>
    <xs:complexType name=“PoliceStations”>
    <xs:sequence>
    <xs:element name=“Station” type=“Station”
    minOccurs=“0” maxOccurs=“unbounded”/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name=“Station”>
    <xs:sequence>
    <xs:element name=“Officers”
    type=“Officers”/>
    </xs:sequence>
    <xs:attribute name=“identifier”type=“xs:string”/>
    </xs:complexType>
    <xs:complexType name=“Officers”>
    <xs:sequence>
    <xs:element name=“name”
    type=“xs:string”minOccurs=“10” maxOccurs=“20”/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
  • Based on Tables CXXIX and CXXX, an XSLT transformation that maps XML documents that conform to the source schema to corresponding documents that conform to the first target schema is given by: [0410]
    <?xml version=“1.0” encoding=“UTF-8”?>
    <xsl:stylesheet version=“1.0”
    xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
    <xsl:output method=“xml” version=“1.0”
    encoding=“UTF-8”indent=“yes”/>
    <xsl:template match=“/”>
    <PoliceStations>
    <xsl:for-each select=“.//PoliceStation”>
    <Station>
    <xsl:attribute name=“identifier”>
    <xsl:value-of select=“@identifier”/>
    </xsl:attribute>
    <xsl:for-each select=“Officers”>
    <Officers>
    <xsl:for-each
    select=“name[position( )&lt; 11]”>
    <xsl:element name=“name”>
    <xsl:value-of select=“.”/>
    </xsl:element>
    </xsl:for-each>
    </Officers>
    </xsl:for-each>
    <xsl:call-template name=“generate_officer”>
    <xsl:with-param name=“so_far”
    select=“count(name)”/>
    </xsl:call-template>
    </Station>
    </xsl:for-each>
    </PoliceStations>
    </xsl:template>
    <xsl:template name=“generate_officer”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; 20”>
    <bar>
    </bar>
    <xsl:call-template name=“generate_officer”>
    <xsl:with-param name=“so_far”
    select=“$so_far + 1”/>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
    </xsl:stylesheet>
  • Implementation Details—SOL Generation [0411]
  • As mentioned hereinabove, and described through the above series of examples, in accordance with a preferred embodiment of the present invention a desired transformation from a source RDBS to a target RDBS is generated by: [0412]
  • (i) mapping the source and target RDBS into a common ontology model; [0413]
  • (ii) representing fields of the source and target RDBS in terms of properties of the ontology model, using symbols for properties; [0414]
  • (iii) deriving expressions for target symbols in terms of source symbols; and [0415]
  • (iv) converting the expressions into one or more SQL queries. [0416]
  • Preferably the common ontology model is built by adding classes and properties to an initial ontology model, as required to encompass tables and fields from the source and target RDBS. The addition of classes and properties can be performed manually by a user, automatically by a computer, or partially automatically by a user and a computer in conjunction. [0417]
  • Preferably, while the common ontology model is being built, mappings from the source and target RDBS into the ontology model are also built by identifying tables and fields of the source and target RDBS with corresponding classes and properties of the ontology model. Fields are preferably identified as being either simple properties or compositions of properties. [0418]
  • In a preferred embodiment of the present invention, automatic user guidance is provided when building the common ontology model, in order to accommodate the source and target RDBS mappings. Specifically, while mapping source and target RDBS into the common ontology model, the present invention preferably automatically presents a user with the ability to create classes that corresponds to tables, if such classes are not already defined within the ontology. Similarly, the present invention preferably automatically present a user with the ability to create properties that correspond to fields, if such properties are not already defined within the ontology. [0419]
  • This automatic guidance feature of the present invention enables users to build a common ontology on the fly, while mapping the source and target RDBS. [0420]
  • In a preferred embodiment of the present invention, automatic guidance is used to provide a user with a choice of properties to which a given table column may be mapped. Preferably, the choice of properties only includes properties with target types that are compatible with a data type of the given table column. For example, if the given table column has data type VARCHAR2, then the choice of properties only includes properties with target type string. Similarly, if the given table column is a foreign key to a foreign table, then the choice of properties only includes properties whose target is the class corresponding to the foreign table. [0421]
  • In a preferred embodiment of the present invention, automatic guidance is provided in determining inheritance among classes of the common ontology. Conditions are identified under which the present invention infers that two tables should be mapped to classes that inherit one from another. Such a condition arises when a table, T[0422] 1, contains a primary key that is a foreign key to a table, T2. In such a situation, the present invention preferably infers that the class corresponding to T1 inherits from the class corresponding to T2.
  • For example, T[0423] 1 may be a table for employees with primary key Social_Security_No, which is a foreign key for a table T2 for citizens. The fact that Social_Security_No serves both as a primary key for T1 and as a foreign key for T2 implies that the class Employees inherits from the class Citizens.
  • Preferably, when the present invention infers an inheritance relation, the user is given an opportunity to confirm or decline. Alternatively, the user may not be given such an opportunity. [0424]
  • Preferably, representing fields of the source and target RDBS in terms of properties of the ontology model is performed by identifying a key field among the fields of a table and expressing the other fields in terms of the identified key field using an inverse property symbol for the key field. For example, if a key field corresponds to a property denoted by 1, and a second field corresponds to a property denoted by 2, then the relation of the second field to the first field is denoted by 2o1[0425] −1. If a table has more than one key field, then preferably symbols are listed for each of the key fields, indicating how the other fields relate thereto. For example, if the second field above also is a key field, then the relation of the first field to the second field is denoted by 1o2−1, and both of the symbols 2o1−1 and 1o2−1 are listed.
  • Preferably, deriving expressions for target symbols in terms of source symbols is implemented by a search over the source symbols for paths that result in the target symbols. For example, if a target symbol is given by 3o1[0426] −1, then chains of composites are formed starting with source symbols of the form ao1−1, with each successive symbol added to the composite chain inverting the leftmost property in the chain. Thus, a symbol ending with a−1 is added to the left of the symbol ao1−1, and this continues until property 3 appears at the left end of the chain.
  • Preferably, converting symbol expressions into SQL queries is accomplished by use of Rules 1-7 described hereinabove with reference to the examples. [0427]
  • Preferably, when mapping a table to a class, a flag is set that indicates whether it is believed that the table contains all instances of the class. [0428]
  • Implementation Details—XSLT Generation Algorithm [0429]
  • 1. Begin with the target schema. Preferably, the first step is to identify a candidate root element. Assume in what follows that one such element has been identified—if there are more than one such candidate, then preferably a user decides which is to be the root of the XSLT transformation. Assume that a <root> element has thus been identified. Create the following XSLT script, to establish that any document produced by the transformation will at minimum conform to the requirement that its opening and closing tags are identified by root: [0430]
    <xsl:template match=“/”>
    <root>
    </root>
    </xsl:template>
  • 2. Preferably, the next step is to identify the elements in the target schema that have been mapped to ontological classes. The easiest case, and probably the one encountered most often in practice, is one in which the root itself is mapped to a class, be it a simple class, a container class or a cross-product. If not, then preferably the code-generator goes down a few levels until it comes across elements mapped to classes. The elements that are not mapped to classes should then preferably be placed in the XSLT between the <root> tags mentioned above, in the correct order, up to the places where mappings to classes begin. [0431]
    <xsl:template match=“/”>
    <root>
    <sequence1>
    [ <element1> mapped to class ]
    <element2>
    </sequence1>
    <sequence2>
    </sequence2>
    </root>
    </xsl:template>
  • 3. Henceforth, for purposes of clarity and exposition, the XSLT script generation algorithm is described in terms of an element <fu> that is expected to appear in the target XML document and is mapped to an ontological class, whether that means the root element or a parallel set of elements inside a tree emanating from the root. The treatment is the same in any event from that point onwards. [0432]
  • 4. Preferably the XSLT generation algorithm divides into different cases depending on a number of conditions, as detailed hereinbelow: [0433]
    TABLE CXXXI
    Conditions for <xsl:for-each> Segments
    XSLT
    Condition Segment
    <fu> is mapped to a simple class Foo with cardinality A
    parameters minOccurs=“1” maxOccurs=“1” in the
    XML schema and there is a corresponding element <foo>
    in the source document that is associated to the same
    class Foo.
    <fu> is mapped to a simple class Foo with cardinality B
    parameters minOccurs=“0” maxOccurs=“1” in the
    XML schema and there is a corresponding element <foo>
    in the source document that is associated to the same
    class Foo.
    <fus> is mapped to a container class set[Foo] with C
    cardinality parameters minOccurs=“0”
    maxOccurs=“unbounded” in the XML schema,
    and there are corresponding elements <foos1>,
    <foos2>, . . . , <foosn> in the source document
    each of which is associated to the same container-
    class set[Foo].
    fus> is mapped to a container class set[Foo] with D
    cardinality parameters minOccurs=“0”
    maxOccurs=“unbounded” in the XML schema,
    but there is no corresponding element <foos> in
    the source document that is associated with the
    same container-class set[Foo]. There are,
    however, perhaps elements <foo1>, <foo2> . . . <foom>
    which are each individually mapped to the class Foo.
    <fus> is mapped to a container class set[Foo] E
    with cardinality parameters minOccurs=“0”
    maxOccurs=“n” in the XML schema, and
    there are corresponding elements <foos1>, <foos2>, . . . ,
    <foosk> in the source document each of which is
    associated to the same container-class set[Foo].
    <fus> is mapped to a container class set[Foo] with F
    cardinality parameters minOccurs=“0”
    maxOccurs=“n” in the XML schema, but
    there is no corresponding element <foos> in the
    source document that is associated with the same container-
    class set[Foo]. There are, however, perhaps elements
    <foo1>, <foo2> . . . <fook> which are each individually
    mapped to the class Foo.
    fus> is mapped to a container class set[Foo] with G
    cardinality parameters minOccurs=“m”
    maxOccurs=“n” in the XML schema, and there
    are corresponding elements <foos1>, <foos2>, . . . ,
    <foosk> in the source document each of which is
    associated to the same container-class set[Foo].
    fus> is mapped to a container class set[Foo] with H
    cardinality parameters minOccurs=“m”
    maxOccurs=“n” in the XML schema, but
    there is no corresponding element <foos> in the
    source document that is associated with the same
    container-class set[Foo]. There are, however,
    perhaps elements <foo1>, <foo2> . . . <fook> which
    are each individually mapped to the class Foo.
  • For cases C and D, the XML schema code preferably looks like: [0434]
    <xsd:complexType name=“fus”>
    <xsd:sequence>
    <xsd:element name=“fu” type=“fu_view” minOccurs=“0”
    maxOccurs=“unbounded”/>
    </xsd:sequence>
    </xsd:complexType>
  • For cases E and F, the XML schema code preferably looks like: [0435]
    <xsd:complexType name=“fus”>
    <xsd:sequence>
    <xsd:element name=“fu” type=“fu_view” minOccurs=“0”
    maxOccurs=“n”>
    </xsd:sequence>
    </xsd:complexType>
  • For cases G and H, the XML schema code preferably looks like: [0436]
    <xsd:complexType name=“fus”>
    <xsd:sequence>
    <xsd:element name=“fu” type=“fu_view” minOccurs=“0”
    maxOccurs=“n”>
    </xsd: sequence>
    </xsd:complexType>
  • For the rules as to what should appear in between the <for-each> tags, see [0437] step 5 hereinbelow.
    CASE A:
    <fu>
    <xsl:for-each select=“.//foo[position( ) = 1”>
    </xsl:for-each>
    </fu>
    CASE B:
    <xsl:for-each select=“.//foo[position( ) = 1]”>
    <fu>
    </fu>
    </xsl:for-each>
    CASE C:
    <fus>
    <xsl:for-each select=“.//foos1”>
    <xsl:for-each select=“foo”>
    <fu>
    </fu>
    </xsl:for-each>
    </xsl:for-each>
    <xsl:for-each select=“.//foos2”>
    <xsl:for-each select=“foo”>
    <fu>
    </fu>
    </xsl:for-each>
    </xsl:for-each>
    <xsl:for-each select=“.//foosn”>
    <xsl:for-each select=“foo”>
    <fu>
    </fu>
    </xsl:for-each>
    </xsl:for-each>
    </fus>
    CASE D:
    <fus>
    <xsl:for-each select=“.//foo1”>
    <fu>
    </fu>
    </xsl:for-each>
    <xsl:for-each select=“.//foo2”>
    <fu>
    </fu>
    </xsl:for-each>
    <xsl:for-each select=“.//foom”>
    <fu>
    </fu>
    </xsl:for-each>
    </fus>
    CASE E:
    <xsl:template match=“/”>
    <fus>
    <xsl:call-template name=“find foos1”>
    <xsl:with-param name=“so_far” select=“0”/>
    </xsl:call-template>
    </fus>
    </xsl:template>
    <xsl:template name=“find_foos1”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; n+1”>
    <xsl:for-each select=“.//foos1/foo”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    <xsl:call-template name=“find_foos2”>
    <xsl:with-param name=“so_far” select=“$so_far+count(.//foos1/foo)”/>
    </xsl:call-template>
    </xsl:template>
    <xsl:template name=“find_foos2”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; n+1”>
    <xsl:for-each select=“.//foos2/foo”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    <xsl:call-template name=“find_foos3”>
    <xsl:with-param name=“so_far” select=“$so_far+count(.//foos2/foo)”/>
    </xsl:call-template>
    </xsl:template>
    <xsl:template name=“find_foosk”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; n+1”>
    <xsl:for-each select=“.//foosn/foo”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    </xsl:template>
    CASE F:
    <xsl:template match=“/”>
    <fus>
    <xsl:call-template name=“find_foo 1 ”>
    <xsl:with-param name=“so_far” select=“0”/>
    </xsl:call-template>
    </fus>
    </xsl:template>
    <xsl:template name=“find_foo1”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; n+1”>
    <xsl:for-each selects“.//foo1”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    <xsl:call-template name=“find_foo2”>
    <xsl:with-param name=“so_far” select=“$so_far+count(.//foo1)”/>
    </xsl:call-template>
    </xsl:template>
    <xsl:template name=“fmd_foo2”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; n+1”>
    <xsl:for-each select=“.//foo2”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    <xsl:call-template name=“find_foo3”>
    <xsl:with-param name=“so_far” select=“$so_far+count(.//foo2)”/>
    </xsl:call-template>
    </xsl:template>
    <xsl:template name=“find_fook”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; n+1”>
    <xsl:for-each select=“.//fook”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if
    </xsl:template>
    CASE G:
    <xsl:template match=“/”>
    <fus>
    <xsl:call-template name=“find_foos1”>
    <xsl:with-param name=“so_far” select=“0”/>
    </xsl:call-template>
    </fus>
    </xsl:template>
    <xsl:template name=“find foos1”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; n+1”>
    <xsl:for-each select=“.//foos1/foo”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    <xsl:call-template name=“findd_foos2”>
    <xsl:with-param name=“so_far” select=“$so_far+count(.//foos1/foo)”/>
    </xsl:call-template>
    </xsl:template>
    <xsl:template name=“find foos2”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; n+1”>
    <xsl:for-each select=“.//foos2/foo”>
    <xsl:if test=“$so far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    <xsl:call-template name=“find_foos3”>
    <xsl:with-param name=“so_far” select=“$so_far+count(.//foos2/foo)”/>
    </xsl:call-template>
    </xsl:template>
    <xsl:template name=“find_foosn”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; k+1”>
    <xsl:for-each select=“.//foosn/foo”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    <xsl:call-template name=“generate_fus”>
    <xsl:with-param name=“so_far” select=“$so_far+count(.//foosk/foo)”/>
    </xsl:call-template>
    </xsl:template>
    <xsl:templatename=“generate_fus”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; m”>
    <fu>
    </fu>
    <xsl:call-template name=“generate_fus”>
    <xsl:with-param name=“so_far” select=“$so_far + 1”/>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
    CASE H:
    <xsl:template match=“/”>
    <fus>
    <xsl:call-template name=“find_foo1”>
    <xsl:with-param name=“so_far” select=“0”/>
    </xsl:call-template>
    </fus>
    </xsl:template>
    <xsl:template name=“find_foo1”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; n+1”>
    <xsl:for-each select=“.//foo1”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    <xsl:call-template name=“find_foo2 ”>
    <xsl:with-param name=“so_far” select=“$so_far+count(.//foo1)”/>
    </xsl:call-template>
    </xsl:template>
    <xsl:template name=“find_foo2”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; n+1”>
    <xsl:for-each select=“.//foo2”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    <xsl:call-template name=“find_foo3 ”>
    <xsl:with-param name=“so_far” select=“$so_far+count(.//foo2)”/>
    </xsl:call-template>
    </xsl:template>
    <xsl:template name=“find_foon”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; k+1”>
    <xsl:for-each select=“.//foon”>
    <xsl:if test=“$so_far+position( ) &lt; n+1”>
    <fu>
    </fu>
    </xsl:if>
    </xsl:for-each>
    </xsl:if>
    <xsl:call-template name=“generate_fus”>
    <xsl:with-param name=“so_far” select=“$so_far+count(.//fook)”/>
    </xsl:call-template>
    </xsl:template>
    <xsl:template name=“generate_fus”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; m”>
    <fu>
    </fu>
    <xsl:call-template name=“generate_fus”>
    <xsl:with-param name=“so_far” select=“$so_far + 1”/>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
  • 5. Next assume that the classes have been taken care of as detailed hereinabove in [0438] step 4. Preferably, from this point onwards the algorithm proceeds by working with properties rather than classes. Again, the algorithm is divided up into cases.
  • Assume that the <fu> </fu> tags have been treated, and that the main issue now is dealing with the elements <bar> that are properties of <fu>. [0439]
  • Sequence Lists [0440]
  • Suppose that the properties of <fu> are listed in a sequence complex-type in the target schema. Assume, for the sake of definitiveness, that a complexType fu is mapped to an ontological class Foo, with elements bar[0441] i mapped to respective property, Foo.bari. Assume further that the source XML schema has an Xpath pattern fill that maps to the ontological class Foo, with further children patterns fu1/barr1, fu1/barr2, etc., mapping to the relevant property paths.
  • In a preferred embodiment of the present invention, specific pieces of code are generated to deal with different maximum and minimum occurrences. Such pieces of code are generated inside the <fu> </fu> tags that were generated as described hereinabove. Preferably, the general rule for producing such pieces of code is as follows: [0442]
    TABLE CXXXI
    Conditions for Filling in <xsl:for-each> Segments
    XSLT
    Condition Segment
    The target XML code says <xs:element name=“bar” I
    minOccurs=“1” maxOccurs=“1”/> or
    equivalently <xs:element name=“bar” />, and
    the source has an associated tag <barr>.
    The target XML code says <xs:element name=“bar” J
    minOccurs=“0” maxOccurs=“unbounded”/>
    and the source has an associated tag <barr>.
    The XML code says <xs:element name=“bar” L
    minOccurs=“0” maxOccurs=“n”/>
    and the source has an associated tag <barr>.
    The XML code says <xs:element name=“bar” M
    minOccurs=“m” maxOccurs=“unbounded”/>
    where m > 0, and the source has an associated tag <barr>.
    The XML code says <xs:element name=“bar” N
    minOccurs=“m” maxOccurs=“n”/>
    where m > 0, and n is a finite integer, and the source
    has an associated tag <barr>.
    The target sequence includes a line <xs:element O
    name=“bar” minOccurs=“m”
    maxOccurs=“n”/> where m > 0, but the source has
    no associated tag.
  • [0443]
    CASE I:
    <bar>
    <xsl:value-of select=“barr”/>
    </bar>
    CASE J:
    <xsl:for-each select=“barr”>
    <bar>
    <xsl:value-of select=“.”/>
    </bar>
    </xsl:for-each>
    CASE K:
    <xsl:for-each select=“barr[position( ) &lt; n+1]”>
    <bar>
    <xsl:value-of select=“.”/>
    </bar>
    </xsl:for-each>
    CASE L:
    <xsl:for-each select=“barr”>
    <bar>
    <xsl:value-of select=“.”/>
    </bar>
    </xsl:for-each>
    <xsl:call-template name=“generate_bar”>
    <xsl:with-param name=“so_far” select=“count(barr)”/>
    </xsl:call-template>
    <xsl:template name=“generate_bar”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; m”>
    <bar>
    </bar>
    <xsl:call-template name=“generate_bar”>
    <xsl:with-param name=“so_far” select=“$so_far + 1”/>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
    CASE M:
    <xsl:for-each select=“barr[position( ) &lt; n+1]”>
    <bar>
    <xsl:value-of select=“.”/>
    <bar>
    </xsl:for-each>
    <xsl:call-template name=“generate_bar”>
    <xsl:with-param name=“so_far” select=“count(barr)”/>
    </xsl:call-template>
    <xsl:template name=“generate_bar”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; m”>
    <bar>
    </bar>
    <xsl:call-template name=“generate_bar”>
    <xsl:with-param name=“so_far” select=“$so_far + 1”/>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
    CASE N:
    <bar>
    </bar>
  • As an exemplary illustration, suppose the complexType appears in the target schema as follows: [0444]
    <xs:complexType name=“fu”>
    <xs:sequence>
    <xs:element name=“bar1” type=“xs:string” />
    <xs:element name=“bar2” type=“xs:string” minOccurs=“0”
    maxOccurs=“7”/>
    <xs:element name=“bar3” type=“xs:string” minOccurs=“1”
    maxOccurs=“8”/>
    <xs:element name=“bar4” type=“xs:string” minOccurs=“3”
    maxOccurs=“unbounded”/>
    <xs:element name=“bar5” type=“xs:string” minOccurs=“0”
    maxOccurs=“unbounded”/>
    <xs:element name=“barn” type=“xs:string” />
    </xs:sequence>
    </xs:complexType>
  • Then, based on the above cases, the following XSLT script is generated. [0445]
    <fu>
    <barr1>
    <xsl:value-of select=“bar1”/>
    </barr1>
    <xsl:for-each select=“bar2[position( ) &lt; 5]”>
    <barr2>
    <xsl:value-of select=“.”/>
    </barr2>
    </xsl:for-each>
    <xsl:for-each select=“bar3[position( ) &lt; 9]”>
    <barr3>
    <xsl:value-of select=“.”/>
    </barr3>
    </xsl:for-each>
    <xsl:call-template name=“generate_barr3”>
    <xsl:with-param name=“so_far”
    select=“count(bar3)”/>
    </xsl:call-template>
    <xsl:for-each select=“bar4”>
    <barr4>
    <xsl:value-of select=“.”/>
    </barr4>
    </xsl:for-each>
    <xsl:call-template name=“generate_barr4”>
    <xsl:with-param name=“so_far”
    select=“count(bar4)”/>
    </xsl:call-template>
    <xsl:for-each select=“bar5”>
    <barr5>
    <xsl:value-of select=“.”/>
    </barr5>
    </xsl:for-each>
    </xsl:if>
    </fu>
    </xsl:template>
    <xsl:template match=“text( )|@*”/>
    <xsl:template name=“generate_barr3”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; 1”>
    <barr3>
    </barr3>
    <xsl:call-template name=“generate_barr3 ”>
    <xsl:with-param name=“so_far”
    select=“$so_far + 1”/>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
    <xsl:template name=“generate_barr4”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; 3”>
    <barr4>
    </barr4>
    <xsl:call-template name=”generate_barr4“>
    <xsl:with-param name=”so_far“
    select=”$so_far + 1“/>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
  • Choice Lists [0446]
  • Suppose that the properties of <fu> are listed in a choice complex-type in the target schema. Assume again, as above, that fu is mapped to an ontological class Foo, with each of bar[0447] i mapped to a property, Foo.bari. Assume further, as above, that the source XML schema has an Xpath pattern foo that maps to the ontological class Foo, with further children patterns foo/barr1, foo/barr2, etc., mapping to the relevant property paths.
  • Preferably, the general rule for producing XSLT script associated with a target choice bloc is as follows. Start with the tags <xsl:choose> </xsl:choose>. For each element in the choice sequence, insert into the choose bloc <xsl:when test=“barr”></xsl:when> and within that bloc insert code appropriate to the cardinality restrictions of that element, exactly as above for sequence blocs, including the creation of new templates if needed. Finally, if there are no elements with minOccurs=“0” in the choice bloc, select any tag <barr> at random in the choice bloc, and insert into the XSLT, right before the closing </xsl:choose>, <xsl:otherwise><barr></barr></xsl:otherwise>. [0448]
  • As an exemplary illustration, suppose the complexType appears I the target schema as follows: [0449]
    <xs:choice>
    <xs:element name=“bar1” type=“xs:string” />
    <xs:element name=“bar2” type=“xs:string” minOccurs=“0”
    maxOccurs=“7”/>
    <xs:element name=“bar3” type=“xs:string” minOccurs=“1”
    maxOccurs=“8”/>
    <xs:element name=“bar4” type=“xs:string” minOccurs=“3”
    maxOccurs=“unbounded”/>
    <xs:element name=“bar5” type=“xs:string” minOccurs=“0”
    maxOccurs=“unbounded”/>
    <xs:element name=“barn” type=“xs:string” />
    </xs:choice>
  • Then, based on the above cases, the following XSLT script is generated. [0450]
    <fu>
    <xsl:choose>
    <xsl:when test=“bar1”>
    <barr1>
    <xsl:value-of select=“bar1”/>
    </barr1>
    </xsl:when>
    <xsl:when test=“bar2”>
    <xsl:for-each select=“bar2[position( ) &lt; 8]”>
    <barr2>
    <xsl:value-of select=“.”/>
    </barr2>
    </xsl:for-each>
    </xsl:when>
    <xsl:when test=“bar3”>
    <xsl:for-each select=“bar3[position( ) &lt; 9]”>
    <barr3>
    <xsl:value-of select=“.”/>
    <barr3>
    </xsl:for-each>
    <xsl:call-template name=“generate_barr3”>
    <xsl:with-param name=“so_far”
    select=“count(bar3)”/>
    </xsl:call-template>
    </xsl:when>
    <xsl:when test=“bar4”>
    <xsl:for-each select=“bar4”>
    <barr4>
    <xsl:value-of select=“.”/>
    </barr4>
    </xsl:for-each>
    <xsl:call-template name=“generate barr4”>
    <xsl:with-param name=“so_far”
    select=“count(bar4)”/>
    </xsl:call-template>
    </xsl:when>
    <xsl:when test=“bar5”>
    <xsl:for-each select=“bar5”>
    <barr5>
    <xsl:value-of select=“.”/>
    </barr5>
    </xsl:for-each>
    </xsl:when>
    <xsl:otherwise>
    </xsl:otherwise>
    </xsl:choose>
    </fu>
    </xsl:template>
    <xsl:template match=“text( )|@*”/>
    <xsl:template name=“generate_barr3 ”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; 1”>
    <barr3>
    </barr3>
    <xsl:call-template name=“generate_barr3”>
    <xsl:with-param name=”so_far“
    select=”$so_far + 1“/>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
    <xsl:template name=“generate barr4”>
    <xsl:param name=“so_far”/>
    <xsl:if test=“$so_far &lt; 3”>
    <barr4>
    </barr4>
    <xsl:call-template name=“generate_barr4”>
    <xsl:with-param name=“so_far”
    select=“$so_far + 1”/>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
  • All Lists [0451]
  • Suppose that the properties of <fu> are listed in an all complex-type in the target schema. Assume again, as above, that foo is mapped to an ontological class Foo, with each of bar[0452] i mapped to a property, Foo.bari. Assumer further that the source XML schema has an Xpath pattern foo that maps to the ontological class Foo, with further children patterns foo/barr1, foo/barr2, etc., mapping to the relevant property paths.
  • In a preferred embodiment of the present invention, a general rule is to test for the presence of each of the source tags associated with the target tags, by way of [0453]
    <xsl:if test=“foo”>
    <fu>
    <xsl:value-of select=“foo”/>
    </fu>
    </xsl:if>
  • Preferably, if any of the elements has minOccurs=“1” then the negative test takes place as well: [0454]
    <xsl:if test=“not (foo)”>
    <fu>
    </fu>
    </xsl:if>
  • As an exemplary illustration, suppose the complexType appears I the target schema as follows: [0455]
    <xs:complexType name=“bar”>
    <xs:all>
    <xs:element name=“bar2” type=“xs:string” minOccurs=“0” maxOccurs=“1”/>
    <xs:element name=“bar3” type=”xs:string“ minOccurs=“1” maxOccurs=“1”/>
    </xs:all>
    </xs:complexType>
  • Then the following XSLT script is generated. [0456]
    <fu>
    <xsl:template match=“foo”>
    <xsl:if test=“position( ) = 1”>
    <xsl:if test=“bar1”>
    <barr1>
    <xsl:value-of select=“bar1”/>
    </barr1>
    </xsl:if>
    <xsl:if test=“bar2”>
    <barr2>
    <xsl:value-of select=“bar2”/>
    </barr2>
    </xsl:if>
    <xsl:if test=“not (bar2)”>
    <barr2>
    </barr2>
    </xsl:if>
    </xsl:if>
    </xsl:template>
  • 6. In a preferred embodiment of the present invention, when the elements of foo/bar1, foo/bar2, etc. have been processed as above in [0457] step 5, everything repeats in a recursive manner for properties that are related to each of the bari elements. That is, if the target XML schema has further tags that are children of bar1, bar2, etc., then preferably each of those is treated as properties of the respective target classes of bar1, bar2, and so on, and the above rules apply recursively.
  • Additional Considerations [0458]
  • In reading the above description, persons skilled in the art will realize that there are many apparent variations that can be applied to the methods and systems described. A first variation to which the present invention applies is a setup where source relational database tables reside in more than one database. The present invention preferably operates by using Oracle's cross-database join, if the source databases are Oracle databases. In an alternative embodiment, the present invention can be applied to generate a first SQL query for a first source database, and use the result to generate a second SQL query for a second source database. The two queries taken together can feed a target database. [0459]
  • In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made to the specific exemplary embodiments without departing from the broader spirit and scope of the invention as set forth in the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. [0460]

Claims (140)

What is claimed is:
1. A method for deriving transformations for transforming data from one data schema to another, comprising:
receiving a source data schema and a target data schema;
mapping the source data schema into an ontology model;
mapping the target data schema into the ontology model; and
deriving a transformation for transforming data conforming to the source data schema into data conforming to the target data schema, using the ontology model.
2. The method of claim 1 further comprising converting at least one of the source data schema and the target schema from an external format to an internal format.
3. The method of claim 1 further comprising receiving the ontology model.
4. The method of claim 3 further comprising converting the ontology model from an external format to an internal format.
5. The method of claim 1 further comprising generating the ontology model.
6. The method of claim 5 further comprising receiving an initial ontology model, wherein said generating generates the ontology model from the initial ontology model.
7. The method of claim 6 further comprising converting the initial ontology model from an external format to an internal format.
8. The method of claim 1 further comprising generating executable program code that transforms data conforming to the source data schema into data conforming to the target data schema.
9. The method of claim 1 wherein the source data schema is a source table schema describing source data tables, wherein the target data schema is a target table schema describing target data tables, and wherein the source table schema and the target table schema each describes at least one table having columns.
10. The method of claim 9 wherein the source table schema is a source relational database schema describing source relational database tables, wherein the target table schema is a target relational database schema describing target relational database tables, and wherein the transformation is an SQL query.
11. The method of claim 10 wherein said mapping a source data schema and said mapping a target data schema each comprise:
identifying at least one class in the ontology model corresponding to at least one table; and
identifying at least one property or composition of properties in the ontology model corresponding to at least one table column.
12. The method of claim 11 wherein said deriving comprises:
labeling properties of the ontology model with symbols;
converting at least one column in the source relational database schema into at least one source symbol;
converting at least one column in the target relational database schema into at least one target symbol; and
expressing the at least one target symbol in terms of at least one source symbol.
13. The method of claim 12 wherein said expressing uses expressions involving composition of properties.
14. The method of claim 12 wherein at least one dependency exists among properties in the ontology model, and wherein said deriving further comprises translating the at least one dependency among properties in the ontology model as at least one dependency between target relational database columns and source relational database columns, and wherein said expressing incorporates the at least one dependency between target relational database columns and source relational database columns.
15. The method of claim 14 wherein said expressing uses expressions involving arithmetic operations.
16. The method of claim 14 wherein said expressing uses expressions involving character string operations.
17. The method of claim 10 further comprising applying the query to at least one source relational database table to populate at least one target relational database table.
18. The method of claim 17 wherein the at least one source relational database table reside in a single database.
19. The method of claim 17 wherein the at least one source relational database table reside in multiple databases.
20. The method of claim 1 wherein the source data schema is a source document schema describing source documents, and wherein the target data schema is a target document schema describing target documents.
21. The method of claim 20 wherein the source document schema is a source DTD describing source XML documents, wherein the target document schema is a target DTD describing target XML documents, and wherein the source DTD and the target DTD each describes at least one XML element or XML attribute.
22. The method of claim 21 wherein the transformation is an XQuery.
23. The method of claim 21 wherein the transformation is an XSLT script.
24. The method of claim 20 wherein the source document schema is a source XML schema describing source XML documents, wherein the target document schema is a target XML schema describing target XML documents, and wherein the source XML schema and the target XML schema each describes at least one XML complexType having at least one XML element or XML attribute.
25. The method of claim 24 wherein the transformation is an XQuery.
26. The method of claim 24 wherein the transformation is an XSLT script.
27. The method of claim 24 wherein said mapping a source data schema and said mapping a target data schema each comprise:
identifying at least one class in the ontology model corresponding to at least one XML complexType; and
identifying at least one property or composition of properties in the ontology model corresponding to at least one XML element or XML attribute.
28. The method of claim 24 wherein said deriving comprises expressing XML elements and XML attributes of the target XML schema in terms of XML elements and XML attributes of the source XML schema.
29. The method of claim 28 wherein said expressing is performed recursively through XPath paths.
30. The method of claim 27 wherein at least one dependency exists among properties in the ontology model, and wherein said deriving further comprises translating the at least one dependency among properties in the ontology model as at least one dependency between target XML elements and source XML elements.
31. The method of claim 26 further comprising applying the XSLT script to at least one source XML document to generate at least one target XML document.
32. The method of claim 31 wherein the at least one source XML document reside in a single database.
33. The method of claim 31 wherein the at least one source XML document reside in multiple databases.
34. A system for deriving transformations for transforming data from one data schema to another, comprising:
a schema receiver receiving a source data schema and a target data schema;
a mapping processor mapping a data schema into an ontology model; and
a transformation processor deriving a transformation for transforming data conforming to the source data schema into data conforming to the target data schema, based on respective source and target mappings generated by said mapping processor for mapping said source data schema and said target data schema into a common ontology model.
35. The system of claim 34 further comprising a schema format convertor, converting at least one of the source data schema and the target data schema from an external format to an internal format.
36. The system of claim 34 further comprising an ontology receiver receiving the ontology model.
37. The system of claim 36 further comprising an ontology format convertor, converting the ontology model from an external format to an internal format.
38. The system of claim 34 further comprising an ontology builder generating the ontology model.
39. The system of claim 38 further comprising an ontology receiver receiving an initial ontology model, wherein said ontology builder generates the ontology model from the initial ontology model.
40. The system of claim 39 further comprising an ontology format convertor, converting the initial ontology model from an external format to an internal format.
41. The system of claim 34 further comprising a program code generator generating executable program code that transforms data conforming to the source data schema into data conforming to the target data schema.
42. The system of claim 34 wherein the source data schema is a source table schema describing source data tables, wherein the target data schema is a target table schema describing target data tables, and wherein the source table schema and the target table schema each describes at least one data table having columns.
43. The system of claim 42 wherein the source table schema is a source relational database schema describing source relational database tables, wherein the target table schema is a target relational database schema describing target database tables, and wherein the transformation is an SQL query.
44. The system of claim 43 wherein said mapping processor comprises:
a class identifier identifying at least one class in the common ontology model corresponding to at least one table; and
a property identifier identifying at least one property or composition of properties in the common ontology model corresponding to at least one table column.
45. The system of claim 44 wherein said property identifier presents a user with a choice of at least one property in the common ontology model that may correspond to a given table column.
46. The system of claim 45 wherein the choice of at least one property only includes properties having targets that are compatible with a data type of the given table column.
47. The system of claim 46 wherein, for a given table column that is a foreign key to a foreign table, the choice of at least one property only includes properties whose target is a class corresponding to the foreign table.
48. The system of claim 43 wherein said transformation processor comprises:
an ontology labeller labeling properties of the common ontology model with symbols;
a column converter converting at least one column in the source relational database schema into at least one source symbol, and converting at least one column in the target relational database schema into at least one target symbol; and
a symbol processor expressing the at least one target symbol in terms of at least one source symbol.
49. The system of claim 48 wherein said symbol processor uses expressions involving composition of properties.
50. The system of claim 48 wherein at least one dependency exists among properties in the ontology model, and wherein said transformation processor further comprises a dependency processor translating the at least one dependency among properties in the ontology model as at least one dependency between target relational database columns and source relational database columns, and wherein said symbol processor incorporates the at least one dependency between target relational database columns and source relational database columns.
51. The system of claim 50 wherein said symbol processor uses expressions involving arithmetic operations.
52. The system of claim 50 wherein said symbol processor uses expressions involving character string operations.
53. The system of claim 43 further comprising:
a data receiver receiving at least one source relational database table; and
a data processor applying the query to the at least one source relational database table to populate at least one target relational database table.
54. The system of claim 53 wherein the at least one source relational database table reside in a single database.
55. The system of claim 53 wherein the at least one source relational database table resides in multiple databases.
56. The system of claim 34 wherein the source data schema comprises a source document schema describing source documents, and wherein the target data schema comprises a target document schema describing target documents.
57. The system of claim 56 wherein the source document schema is a source DTD describing source XML documents, wherein the target document schema is a target DTD describing target XML documents, and wherein the source DTD and the target DTD each describes at least one XML element or XML attribute.
58. The system of claim 57 wherein the transformation is an XQuery.
59. The system of claim 57 wherein the transformation is an XSLT script.
60. The system of claim 56 wherein the source document schema comprises a source XML schema that describes XML source documents, wherein the target document schema comprises a target XML schema that describes XML target documents, and wherein the source XML schema and the target XML schema each comprises at least one XML complexType having at least one XML element or XML attribute.
61. The system of claim 60 wherein the transformation is an XQuery.
62. The system of claim 60 wherein the transformation is an XSLT script.
63. The system of claim 60 wherein said mapping processor comprises:
a class identifier identifying at least one class in the ontology model corresponding to at least one XML complexType; and
an property identifier identifying at least one property or composition of properties in the ontology model corresponding to at least one XML element or XML attribute.
64. The system of claim 60 wherein said transformation processor comprises an XML processor expressing XML elements and XML attributes of said target XML schema in terms of XML elements and XML attributes of said source XML schema.
65. The system of claim 64 wherein said XML processor operates recursively through XPath paths.
66. The system of claim 64 wherein at least one dependency exists among properties in the ontology model, and wherein said transformation processor further comprises a dependency processor translating the at least one dependency among properties in the ontology model as at least one dependency between target XML elements or attributes, and source XML elements or attributes, and wherein said XML processor incorporates the at least one dependency between target XML elements or attributes, and source XML elements or attributes.
67. The system of claim 60 further comprising
a data receiver receiving at least one source XML document; and
a data processor applying the XSLT script to the at least one source XML document to generate at least one target XML document.
68. The system of claim 67 wherein the at least one source XML document reside in a single database.
69. The system of claim 67 wherein the at least one source XML document reside in multiple databases.
70. A method for building an ontology model into which data schema can be embedded, comprising:
receiving at least one data schema; and
building an ontology model into which the at least one data schema can be embedded.
71. The method of claim 70 further comprising converting at least one of the at least one data schema from an external format to an internal format.
72. The method of claim 70 wherein the at least one data schema is at least one table schema describing data tables having columns.
73. The method of claim 72 wherein the at least one table schema is at least one relational database schema describing relational database tables.
74. The method of claim 73 wherein said building an ontology model comprises:
providing an initial ontology model;
adding classes to the initial ontology model corresponding to tables described in the at least one relational database schema; and
adding properties to the initial ontology model corresponding to columns described in the at least one relational database schema.
75. The method of claim 74 wherein the initial ontology model is empty.
76. The method of claim 74 wherein the initial ontology model is non-empty.
77. The method of claim 76 further comprising converting the initial ontology model from an external format to an internal format.
78. The method of claim 74 wherein said adding classes is performed by a computer in conjunction with a user.
79. The method of claim 78 wherein said adding classes prompts a user to add a class to the ontology model when there is a table described in the at least one relational database schema that does not correspond to an existing class in the ontology model.
80. The method of claim 74 wherein said adding classes is performed automatically by a computer.
81. The method of claim 80 wherein said adding classes automatically adds a class to the ontology model when there is a table described in the at least one relational database schema that does not correspond to an existing class in the ontology model.
82. The method of claim 74 wherein said adding properties is performed by a computer in conjunction with a user.
83. The method of claim 82 wherein said adding properties prompts a user to add a property to the ontology model when there is a table column described in the at least one relational database schema that does not correspond to an existing property or composition of properties in the ontology model.
84. The method of claim 74 wherein said adding properties is performed automatically by a computer.
85. The method of claim 84 wherein said adding properties automatically adds a property to the ontology model when there is a table column described in the at least one relational database schema that does not correspond to an existing property or composition of properties in the ontology model.
86. The method of claim 70 wherein said building an ontology model comprises inferring inheritance relationships between classes in the ontology model based on relationships between tables described in the at least one relational database schema.
87. The method of claim 86 wherein a first class in the ontology model is inferred to inherit from a second class in the ontology model when a table corresponding to the first class has a primary key that is a foreign key to a table corresponding to the second class.
88. The method of claim 86 wherein said inferring inheritance relationships includes prompting a user to confirm an inferred inheritance relationship.
89. The method of claim 70 wherein the at least one data schema is at least one document schema describing documents.
90. The method of claim 89 wherein the at least one document schema is an XML schema describing XML documents having at least one XML complexType with at least one XML element or XML attribute.
91. The method of claim 90 wherein said building an ontology model comprises:
providing an initial ontology model;
adding classes to the initial ontology model corresponding to XML complexTypes described in the at least one XML schema; and
adding properties to the initial ontology model corresponding to XML elements and XML attributes described in the at least one XML schema.
92. The method of claim 91 wherein the initial ontology model is empty.
93. The method of claim 92 wherein the initial ontology model is non-empty.
94. The method of claim 91 wherein said adding classes is performed by a computer in conjunction with a user.
95. The method of claim 94 wherein said adding classes prompts a user to add a class to the ontology model when there is an XML complexType described in the at least one XML schema that does not correspond to an existing class in the ontology model.
96. The method of claim 91 wherein said adding classes is performed-automatically by a computer.
97. The method of claim 96 wherein said adding classes automatically adds a class to the ontology model when there is an XML complexType described in the at least one XML schema that does not correspond to an existing class in the ontology model.
98. The method of claim 91 wherein said adding properties is performed by a computer in conjunction with a user.
99. The method of claim 98 wherein said adding properties prompts a user to add a property to the ontology model when there is an XML element or an XML attribute described in the at least one XML schema that does not correspond to an existing property or composition of properties in the ontology model.
100. The method of claim 91 wherein said adding properties is performed automatically by a computer.
101. The method of claim 100 wherein said adding properties automatically adds a property to the ontology model when there is an XML element or an XML attribute described in the at least one relational database schema that does not correspond to an existing property or composition of properties in the ontology model.
102. A system for building an ontology model into which data schema can be embedded, comprising:
a schema receiver receiving at least one data schema; and
a model builder building an ontology model into which the at least one data schema can be embedded.
103. The system of claim 102 further comprising a schema format convertor, converting at least one of the at least one data schema from an external format to an internal format.
104. The system of claim 102 wherein the at least one data schema is at least one table schema describing data tables having columns.
105. The system of claim 104 wherein the at least one table schema is at least one relational database schema describing relational database tables.
106. The system of claim 105 further comprising an ontology receiver receiving an initial ontology model, and wherein said model builder comprises:
a class adder adding classes to the initial ontology model corresponding to tables described in the at least one relational database schema; and
a property adder adding properties to the initial ontology model corresponding to table columns described in the at least one relational database schema.
107. The system of claim 106 wherein the initial ontology model is empty.
108. The system of claim 106 wherein the initial ontology model is non-empty.
109. The system of claim 108 further comprising an ontology format convertor, converting the initial ontology model from an external format to an internal format.
110. The system of claim 106 wherein said class adder is guided by a user in conjunction with a computer.
111. The system of claim 110 wherein said class adder prompts a user to add a class to the ontology model when there is a table described in the at least one relational database schema that does not correspond to an existing class in the ontology model.
112. The system of claim 106 wherein said class adder is automatically guided by a computer.
113. The system of claim 112 wherein said class adder automatically adds a class to the ontology model when there is a table described in the at least one relational database schema that does not correspond to an existing class in the ontology model.
114. The system of claim 106 wherein said property adder is guided by a user in conjunction with a computer.
115. The system of claim 114 wherein said property adder prompts a user to add a property to the ontology model when there is a table column described in the at least one relational database schema that does not correspond to an existing property or composition of properties in the ontology model.
116. The system of claim 106 wherein said property adder is automatically guided by a computer.
117. The system of claim 116 wherein said property adder automatically adds a property to the ontology model when there is a table column described in the at least one relational database schema that does not correspond to an existing property or composition of properties in the ontology model.
118. The system of claim 105 wherein said model builder comprises an inheritance processor inferring inheritance relationships between classes in the ontology model based on relationships between tables in the at least one relational database schema.
119. The system of claim 118 wherein said inheritance processor infers that a first class in the ontology model inherits from a second class in the ontology model when a table corresponding to the first class has a primary key that is a foreign key to a table corresponding to the second class.
120. The system of claim 118 wherein said model builder ensures that classes corresponding to tables in the at least one relational database schema obey the inferred inheritance relationships.
121. The system of claim 120 wherein said inheritance processor prompts a user to confirm an inferred inheritance relationship.
122. The system of claim 102 wherein the at least one data schema comprises at least one document schema describing documents.
123. The system of claim 122 wherein the at least one document schema comprises at least one XML schema that describes XML documents, wherein having at least one XML complexType with at least one XML element or XML attribute.
124. The system of claim 123 further comprising an ontology receiver receiving an initial ontology model, and wherein said model builder comprises:
a class adder adding classes to the initial ontology model corresponding to XML complexTypes described in the at least one XML schema; and
a property adder adding properties to the initial ontology model corresponding to table columns in the at least one relational database schema.
125. The system of claim 124 wherein the initial ontology model is empty.
126. The system of claim 124 wherein the initial ontology model is non-empty.
127. The system of claim 124 wherein said class adder is guided by a user in conjunction with a computer.
128. The system of claim 127 wherein said class adder prompts a user to add a class to the ontology model when there is an XML complexType described in the at least one XML schema that does not correspond to an existing class in the ontology model.
129. The system of claim 124 wherein said class adder is automatically guided by a computer.
130. The system of claim 129 wherein said class adder automatically adds a class to the ontology model when there is an XML complexType described in the at least one XML schema that does not correspond to an existing class in the ontology model.
131. The system of claim 124 wherein said property adder is guided by a user in conjunction with a computer.
132. The system of claim 131 wherein said property adder prompts a user to add a property to the ontology model when there is an XML element or XML attribute described in the at least one XML schema that does not correspond to an existing property or composition of properties in the ontology model.
133. The system of claim 124 wherein said property adder is automatically guided by a computer.
134. The system of claim 133 wherein said property adder automatically adds a property to the ontology model when there is an XML element or XML attribute described in the at least one XML schema that does not correspond to an existing property or composition of properties in the ontology model.
135. An article of manufacture including one or more computer-readable media that embody a program of instructions for transforming data from one schema to another, wherein the program of instructions, when executed by a processing system, causes the processing system to:
receive a source data schema and a target data schema;
map the source data schema into an ontology model;
map the target data schema into the ontology model; and
derive a transformation for transforming data conforming to the source data schema into data conforming to the target relational database schema, using the ontology model.
136. The article of claim 135 wherein the one or more computer-readable media include one or more non-volatile storage devices.
137. The article of claim 135 wherein the one or more compute-readable media include a carrier wave modulated with a data signal.
138. An article of manufacture including one or more computer-readable media that embody a program of instructions for building a common ontology model into which data schema can be embedded, wherein the program of instructions, when executed by a processing system, causes the processing system to:
receive at least one data schema; and
build an ontology model into which the at least one data schema can be embedded.
139. The article of claim 138 wherein the one or more computer-readable media include one or more non-volatile storage devices.
140. The article of claim 138 wherein the one or more compute-readable media include a carrier wave modulated with a data signal.
US10/053,045 2001-05-25 2002-01-15 Method and system for deriving a transformation by referring schema to a central model Abandoned US20040216030A1 (en)

Priority Applications (20)

Application Number Priority Date Filing Date Title
US10/053,045 US20040216030A1 (en) 2001-05-25 2002-01-15 Method and system for deriving a transformation by referring schema to a central model
US10/104,785 US7146399B2 (en) 2001-05-25 2002-03-22 Run-time architecture for enterprise integration with transformation generation
EP02006919A EP1327941A3 (en) 2002-01-15 2002-03-26 Method and system for deriving a transformation by referring schema to a central model
US10/159,516 US20030101170A1 (en) 2001-05-25 2002-05-31 Data query and location through a central ontology model
US10/302,370 US7673282B2 (en) 2001-05-25 2002-11-22 Enterprise information unification
CA002416102A CA2416102A1 (en) 2002-01-15 2003-01-09 Method and system for deriving a transformation by referring schema to a central model
US10/340,068 US20030163450A1 (en) 2001-05-25 2003-01-09 Brokering semantics between web services
JP2003007391A JP2003233528A (en) 2002-01-15 2003-01-15 Method and system for deriving conversion of data from one data schema to another data schema, and method and system for constructing ontology model allowing embedding of data schema
US10/637,171 US20040093559A1 (en) 2001-05-25 2003-08-07 Web client for viewing and interrogating enterprise data semantically
US10/637,339 US7877421B2 (en) 2001-05-25 2003-08-08 Method and system for mapping enterprise data assets to a semantic information model
US10/821,464 US20050038629A1 (en) 2001-05-25 2004-04-09 Pricing of enterprise information resource management systems
US11/026,358 US8412746B2 (en) 2001-05-25 2004-12-29 Method and system for federated querying of data sources
US11/029,966 US7930293B2 (en) 2001-05-25 2005-01-04 Run-time architecture for enterprise integration with transformation generation
US11/134,725 US7475084B2 (en) 2001-05-25 2005-05-20 Data query and location through a central ontology model
US11/165,650 US7921098B2 (en) 2001-05-25 2005-06-24 Data query and location through a central ontology model
US11/182,455 US7472137B2 (en) 2001-05-25 2005-07-15 Data query and location through a central ontology model
US11/219,039 US20060064666A1 (en) 2001-05-25 2005-09-01 Business rules for configurable metamodels and enterprise impact analysis
US12/141,637 US7962503B2 (en) 2001-05-25 2008-06-18 Data query and location through a central ontology model
US12/253,798 US8060531B2 (en) 2001-05-25 2008-10-17 Data query and location through a central ontology model
US13/421,611 US8548938B2 (en) 2001-05-25 2012-03-15 Business rules for configurable metamodels and enterprise impact analysis

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/866,101 US7099885B2 (en) 2001-05-25 2001-05-25 Method and system for collaborative ontology modeling
US10/053,045 US20040216030A1 (en) 2001-05-25 2002-01-15 Method and system for deriving a transformation by referring schema to a central model

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
US09/866,101 Continuation-In-Part US7099885B2 (en) 2001-05-25 2001-05-25 Method and system for collaborative ontology modeling
US09/904,457 Continuation-In-Part US7093200B2 (en) 2001-05-25 2001-07-06 Instance browser for ontology

Related Child Applications (3)

Application Number Title Priority Date Filing Date
US10/104,785 Continuation-In-Part US7146399B2 (en) 2001-05-25 2002-03-22 Run-time architecture for enterprise integration with transformation generation
US10/821,464 Continuation-In-Part US20050038629A1 (en) 2001-05-25 2004-04-09 Pricing of enterprise information resource management systems
US11/219,039 Continuation-In-Part US20060064666A1 (en) 2001-05-25 2005-09-01 Business rules for configurable metamodels and enterprise impact analysis

Publications (1)

Publication Number Publication Date
US20040216030A1 true US20040216030A1 (en) 2004-10-28

Family

ID=25346912

Family Applications (7)

Application Number Title Priority Date Filing Date
US09/866,101 Expired - Fee Related US7099885B2 (en) 2001-05-25 2001-05-25 Method and system for collaborative ontology modeling
US09/904,457 Expired - Fee Related US7093200B2 (en) 2001-05-25 2001-07-06 Instance browser for ontology
US10/053,045 Abandoned US20040216030A1 (en) 2001-05-25 2002-01-15 Method and system for deriving a transformation by referring schema to a central model
US11/344,545 Abandoned US20060156253A1 (en) 2001-05-25 2006-02-01 Instance browser for ontology
US11/373,340 Expired - Fee Related US7533124B2 (en) 2001-05-25 2006-03-13 Method and system for collaborative ontology modeling
US12/141,637 Active 2026-08-06 US7962503B2 (en) 2001-05-25 2008-06-18 Data query and location through a central ontology model
US12/253,798 Expired - Fee Related US8060531B2 (en) 2001-05-25 2008-10-17 Data query and location through a central ontology model

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US09/866,101 Expired - Fee Related US7099885B2 (en) 2001-05-25 2001-05-25 Method and system for collaborative ontology modeling
US09/904,457 Expired - Fee Related US7093200B2 (en) 2001-05-25 2001-07-06 Instance browser for ontology

Family Applications After (4)

Application Number Title Priority Date Filing Date
US11/344,545 Abandoned US20060156253A1 (en) 2001-05-25 2006-02-01 Instance browser for ontology
US11/373,340 Expired - Fee Related US7533124B2 (en) 2001-05-25 2006-03-13 Method and system for collaborative ontology modeling
US12/141,637 Active 2026-08-06 US7962503B2 (en) 2001-05-25 2008-06-18 Data query and location through a central ontology model
US12/253,798 Expired - Fee Related US8060531B2 (en) 2001-05-25 2008-10-17 Data query and location through a central ontology model

Country Status (2)

Country Link
US (7) US7099885B2 (en)
EP (1) EP1260916A3 (en)

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093760A1 (en) * 2001-11-12 2003-05-15 Ntt Docomo, Inc. Document conversion system, document conversion method and computer readable recording medium storing document conversion program
US20030097637A1 (en) * 2001-09-04 2003-05-22 International Business Machines Corporation Schema generation apparatus, data processor, and program for processing in the same data processor
US20030167445A1 (en) * 2002-03-04 2003-09-04 Hong Su Method and system of document transformation between a source extensible markup language (XML) schema and a target XML schema
US20040015783A1 (en) * 2002-06-20 2004-01-22 Canon Kabushiki Kaisha Methods for interactively defining transforms and for generating queries by manipulating existing query data
US20040205469A1 (en) * 2002-06-19 2004-10-14 Mellor Nathan D. Method for processing a rule using computer-independent program instructions and computer for use therewith
US20050022160A1 (en) * 2002-06-17 2005-01-27 Adaptik Corporation Method and apparatus for creating an adaptive application
US20050050056A1 (en) * 2003-08-25 2005-03-03 Oracle International Corporation Mechanism to enable evolving XML schema
US20050060645A1 (en) * 2003-09-12 2005-03-17 International Business Machines Corporation System and method for validating a document conforming to a first schema with respect to a second schema
US20050228803A1 (en) * 2004-04-02 2005-10-13 Microsoft Corporation Adapter framework for line-of-business application integration
US20050235271A1 (en) * 2004-04-20 2005-10-20 Dibyapran Sanyal Method and apparatus for creating data transformation routines for binary data
US20060015843A1 (en) * 2004-07-13 2006-01-19 Marwan Sabbouh Semantic system for integrating software components
US20060053130A1 (en) * 2004-09-03 2006-03-09 Hite Thomas D System and method for describing a relation ontology
US20060106876A1 (en) * 2004-11-12 2006-05-18 Macgregor Robert M Method and apparatus for re-using presentation data across templates in an ontology
US20060206883A1 (en) * 2004-07-13 2006-09-14 The Mitre Corporation Semantic system for integrating software components
US20060230063A1 (en) * 2005-04-08 2006-10-12 International Business Machines Corporation Method and apparatus for mapping structured query language schema to application specific business objects in an integrated application environment
US20060242563A1 (en) * 2005-04-22 2006-10-26 Liu Zhen H Optimizing XSLT based on input XML document structure description and translating XSLT into equivalent XQuery expressions
US20060288021A1 (en) * 2005-06-20 2006-12-21 Junichi Kojima Information processor, schema definition method and program
US20070136353A1 (en) * 2005-12-09 2007-06-14 International Business Machines Corporation System and method for data model and content migration in content management application
US20070143666A1 (en) * 2005-12-15 2007-06-21 Xerox Corporation Architecture for arbitrary extensible markup language processing engine
US20070150494A1 (en) * 2006-12-14 2007-06-28 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
US20070150808A1 (en) * 2005-12-22 2007-06-28 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
US20070203931A1 (en) * 2006-02-06 2007-08-30 Ukelson Jacob P Creating and Managing XML Schema Version Transformations
US7293010B2 (en) 2005-01-25 2007-11-06 Ontoprise Gmbh Enterprise information integration platform
US7299237B1 (en) * 2004-08-19 2007-11-20 Sun Microsystems, Inc. Dynamically pipelined data migration
US20070294678A1 (en) * 2006-06-20 2007-12-20 Anguel Novoselsky Partial evaluation of XML queries for program analysis
US20080033967A1 (en) * 2006-07-18 2008-02-07 Ravi Murthy Semantic aware processing of XML documents
US20080082560A1 (en) * 2006-09-28 2008-04-03 Oracle International Corporation Implementation of backward compatible XML schema evolution
US20080162415A1 (en) * 2006-12-28 2008-07-03 Sap Ag Software and method for utilizing a common database layout
US20080235260A1 (en) * 2007-03-23 2008-09-25 International Business Machines Corporation Scalable algorithms for mapping-based xml transformation
US20080243916A1 (en) * 2007-03-26 2008-10-02 Oracle International Corporation Automatically determining a database representation for an abstract datatype
US7451403B1 (en) * 2002-12-20 2008-11-11 Rage Frameworks, Inc. System and method for developing user interfaces purely by modeling as meta data in software application
US20090112903A1 (en) * 2007-09-27 2009-04-30 Nec (China) Co., Ltd Ontology data import/export method and apparatus
US7689581B2 (en) 2006-01-18 2010-03-30 International Business Machines Corporation Sequential composition of schema mappings
US20110066457A1 (en) * 2009-09-14 2011-03-17 International Business Machines Corporation Analytics integration server within a comprehensive framework for composing and executing analytics applications in business level languages
US20110066589A1 (en) * 2009-09-14 2011-03-17 International Business Machines Corporation Analytics information directories within a comprehensive framework for composing and executing analytics applications in business level languages
US20110066590A1 (en) * 2009-09-14 2011-03-17 International Business Machines Corporation Analytics integration workbench within a comprehensive framework for composing and executing analytics applications in business level languages
US20110087650A1 (en) * 2009-10-06 2011-04-14 Johnson Controls Technology Company Creation and use of causal relationship models in building management systems and applications
US20110088000A1 (en) * 2009-10-06 2011-04-14 Johnson Controls Technology Company Systems and methods for displaying a hierarchical set of building management system information
US20110137853A1 (en) * 2009-10-06 2011-06-09 Johnson Controls Technology Company Systems and methods for reporting a cause of an event or equipment state using causal relationship models in a building management system
US20120066661A1 (en) * 2010-09-09 2012-03-15 International Business Machines Corporation Verifying programming artifacts generated from ontology artifacts or models
US8190648B1 (en) * 2002-05-14 2012-05-29 Bentley Systems, Incorporated Method and system for the storage and use of engineering modeling alternatives with unitized data
US8412746B2 (en) 2001-05-25 2013-04-02 International Business Machines Corporation Method and system for federated querying of data sources
US20130179772A1 (en) * 2011-07-22 2013-07-11 International Business Machines Corporation Supporting generation of transformation rule
US8516016B2 (en) 2010-07-07 2013-08-20 Johnson Controls Technology Company Systems and methods for facilitating communication between a plurality of building automation subsystems
US8548938B2 (en) 2001-05-25 2013-10-01 International Business Machines Corporation Business rules for configurable metamodels and enterprise impact analysis
US8606799B2 (en) 2006-12-28 2013-12-10 Sap Ag Software and method for utilizing a generic database query
US8682921B2 (en) 2010-07-07 2014-03-25 Johnson Controls Technology Company Query engine for building management systems
US20140379761A1 (en) * 2013-06-25 2014-12-25 Outside Intelligence, Inc. Method and system for aggregate content modeling
US8959117B2 (en) 2006-12-28 2015-02-17 Sap Se System and method utilizing a generic update module with recursive calls
US20160248888A1 (en) * 2012-09-17 2016-08-25 Exaptive, Inc. Schema-independent data modeling apparatus and method
USRE47594E1 (en) * 2011-09-30 2019-09-03 Palantir Technologies Inc. Visual data importer
US10585862B2 (en) 2014-02-28 2020-03-10 Red Hat, Inc. Efficient data migration with reversible database schema modification
US10706047B2 (en) * 2012-10-22 2020-07-07 Sap Se Boolean content search
WO2022084745A1 (en) * 2020-10-23 2022-04-28 Privacy Analytics Inc. System and method for intermediary mapping and de-identification of non-standard datasets

Families Citing this family (388)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035864B1 (en) * 2000-05-18 2006-04-25 Endeca Technologies, Inc. Hierarchical data-driven navigation system and method for information retrieval
US7617184B2 (en) * 2000-05-18 2009-11-10 Endeca Technologies, Inc. Scalable hierarchical data-driven navigation system and method for information retrieval
US20030217333A1 (en) * 2001-04-16 2003-11-20 Greg Smith System and method for rules-based web scenarios and campaigns
US7146399B2 (en) * 2001-05-25 2006-12-05 2006 Trident Company Run-time architecture for enterprise integration with transformation generation
US7877421B2 (en) * 2001-05-25 2011-01-25 International Business Machines Corporation Method and system for mapping enterprise data assets to a semantic information model
US20030101170A1 (en) * 2001-05-25 2003-05-29 Joseph Edelstein Data query and location through a central ontology model
US7099885B2 (en) * 2001-05-25 2006-08-29 Unicorn Solutions Method and system for collaborative ontology modeling
US20030018616A1 (en) * 2001-06-05 2003-01-23 Wilbanks John Thompson Systems, methods and computer program products for integrating databases to create an ontology network
US8086643B1 (en) * 2001-06-28 2011-12-27 Jda Software Group, Inc. Translation between product classification schemas
US7047517B1 (en) * 2001-07-03 2006-05-16 Advanced Micro Devices System for integrating data between a plurality of software applications in a factory environment
US20030055914A1 (en) * 2001-08-01 2003-03-20 Izuru Tanaka Communication apparatus and method, recording medium, program, and content providing apparatus
AUPR701701A0 (en) * 2001-08-14 2001-09-06 Mcdonald, Nathan Document analysis system and method
AUPR796701A0 (en) * 2001-09-27 2001-10-25 Plugged In Communications Pty Ltd Database query system and method
US7039669B1 (en) * 2001-09-28 2006-05-02 Oracle Corporation Techniques for adding a master in a distributed database without suspending database operations at extant master sites
US7284196B2 (en) * 2001-10-05 2007-10-16 Vitria Technology, Inc. Vocabulary and syntax based data transformation
US7398519B2 (en) * 2001-11-30 2008-07-08 International Business Machines Corporation Inheritance breakpoints for use in debugging object-oriented computer programs
US7124140B2 (en) * 2001-12-10 2006-10-17 Oracle International Corporation Database system having heterogeneous object types
US20030120630A1 (en) * 2001-12-20 2003-06-26 Daniel Tunkelang Method and system for similarity search and clustering
US7454743B2 (en) * 2001-12-28 2008-11-18 Sun Microsystems, Inc. Java to SNMP MIB mapping
JP2003203076A (en) * 2001-12-28 2003-07-18 Celestar Lexico-Sciences Inc Knowledge searching device and method, program and recording medium
US20030131144A1 (en) * 2002-01-10 2003-07-10 Ncr Corporation Data wedge
WO2003065251A1 (en) * 2002-01-29 2003-08-07 Children's Hospital Boston Information exchange between heterogeneous databases through automated identification of concept equivalence
US7369984B2 (en) * 2002-02-01 2008-05-06 John Fairweather Platform-independent real-time interface translation by token mapping without modification of application code
US7424701B2 (en) * 2002-02-12 2008-09-09 Sandpiper Software, Inc. Method and apparatus for frame-based knowledge representation in the unified modeling language (UML)
WO2003077142A1 (en) * 2002-03-04 2003-09-18 Medstory.Com Method, apparatus, and system for data modeling and processing
US7725560B2 (en) * 2002-05-01 2010-05-25 Bea Systems Inc. Web service-enabled portlet wizard
US20030212587A1 (en) * 2002-05-13 2003-11-13 International Business Machines Corporation Apparatus and methods for coordinating Web services using role based interpretation of coordination plans
AU2003274345A1 (en) * 2002-06-05 2003-12-22 Sap Aktiengesellschaft Apparatus and method for integrating variable subsidiary information with main office information in an enterprise system
US6986121B1 (en) * 2002-06-28 2006-01-10 Microsoft Corporation Managing code when communicating using heirarchically-structured data
US7493253B1 (en) * 2002-07-12 2009-02-17 Language And Computing, Inc. Conceptual world representation natural language understanding system and method
US20050216459A1 (en) * 2002-08-08 2005-09-29 Aditya Vailaya Methods and systems, for ontological integration of disparate biological data
CA2398043C (en) * 2002-08-27 2004-10-05 Kevin W. Jameson Collection view expander
JP3891909B2 (en) * 2002-09-03 2007-03-14 日本アイ・ビー・エム株式会社 Information search support system, application server, information search method, and program
US7668885B2 (en) * 2002-09-25 2010-02-23 MindAgent, LLC System for timely delivery of personalized aggregations of, including currently-generated, knowledge
GB0226778D0 (en) * 2002-11-18 2002-12-24 Hewlett Packard Co Using semantic web technology to enhance current business-to-business integration approaches
US7584208B2 (en) * 2002-11-20 2009-09-01 Radar Networks, Inc. Methods and systems for managing offers and requests in a network
US7640267B2 (en) * 2002-11-20 2009-12-29 Radar Networks, Inc. Methods and systems for managing entities in a computing device using semantic objects
US7925246B2 (en) 2002-12-11 2011-04-12 Leader Technologies, Inc. Radio/telephony interoperability system
US8195714B2 (en) 2002-12-11 2012-06-05 Leaper Technologies, Inc. Context instantiated application protocol
US20050038781A1 (en) * 2002-12-12 2005-02-17 Endeca Technologies, Inc. Method and system for interpreting multiple-term queries
US8538840B2 (en) * 2002-12-20 2013-09-17 Siebel Systems, Inc. Financial services data model
US7856454B2 (en) 2002-12-20 2010-12-21 Siebel Systems, Inc. Data model for business relationships
FR2849706B1 (en) * 2003-01-02 2005-07-08 Thomson Licensing Sa METHOD AND DEVICE FOR ACCESSING MULTIMEDIA ELEMENTS USING IMAGES ASSOCIATED WITH THESE ELEMENTS
US8831966B2 (en) 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US7653930B2 (en) 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US7591000B2 (en) 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US20040167880A1 (en) * 2003-02-20 2004-08-26 Bea Systems, Inc. System and method for searching a virtual repository content
US7293286B2 (en) 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
US7840614B2 (en) * 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
US7810036B2 (en) 2003-02-28 2010-10-05 Bea Systems, Inc. Systems and methods for personalizing a portal
US8392298B2 (en) * 2003-03-04 2013-03-05 Siebel Systems, Inc. Invoice adjustment data object for a common data object format
US8473399B2 (en) * 2003-03-04 2013-06-25 Siebel Systems, Inc. Invoice data object for a common data object format
US7912932B2 (en) * 2003-03-24 2011-03-22 Siebel Systems, Inc. Service request common object
US8489470B2 (en) * 2003-03-24 2013-07-16 Siebel Systems, Inc. Inventory location common object
WO2004086198A2 (en) 2003-03-24 2004-10-07 Siebel Systems, Inc. Common common object
US7904340B2 (en) * 2003-03-24 2011-03-08 Siebel Systems, Inc. Methods and computer-readable medium for defining a product model
US9704120B2 (en) * 2003-03-24 2017-07-11 Oracle International Corporation Inventory balance common object
WO2004086197A2 (en) * 2003-03-24 2004-10-07 Siebel Systems, Inc. Custom common object
US8510179B2 (en) * 2003-03-24 2013-08-13 Siebel Systems, Inc. Inventory transaction common object
US20070208577A1 (en) * 2003-03-24 2007-09-06 Leon Maria T B Position common object
US7797203B2 (en) * 2003-03-31 2010-09-14 Sap Ag Collaborative product taxonomy instantiation
US20040210552A1 (en) * 2003-04-16 2004-10-21 Richard Friedman Systems and methods for processing resource description framework data
NZ525409A (en) * 2003-04-17 2005-04-29 Auckland Uniservices Ltd Software design system and method
WO2004102417A1 (en) * 2003-05-16 2004-11-25 Docomo Communications Laboratories Europe Gmbh Personalized service selection
US7376744B2 (en) * 2003-05-09 2008-05-20 Oracle International Corporation Using local locks for global synchronization in multi-node systems
US7530015B2 (en) * 2003-06-25 2009-05-05 Microsoft Corporation XSD inference
US20050144087A1 (en) * 2003-07-09 2005-06-30 Jane Huang Disparate sales system integration and method
US7761480B2 (en) * 2003-07-22 2010-07-20 Kinor Technologies Inc. Information access using ontologies
US20050049886A1 (en) * 2003-08-28 2005-03-03 Sbc Knowledge Ventures, L.P. System and method for managing digital rights and content assets
US7437378B2 (en) * 2003-09-02 2008-10-14 Microsoft Corporation Schema-dominant mapping user interface
US20050086384A1 (en) * 2003-09-04 2005-04-21 Johannes Ernst System and method for replicating, integrating and synchronizing distributed information
US7293253B1 (en) * 2003-09-12 2007-11-06 Nortel Networks Limited Transparent interface migration using a computer-readable mapping between a first interface and a second interface to auto-generate an interface wrapper
US7293254B2 (en) * 2003-09-18 2007-11-06 Microsoft Corporation Extensibility application programming interface and framework for meta-model objects
US20050131920A1 (en) * 2003-10-17 2005-06-16 Godfrey Rust Computer implemented methods and systems for representing multiple data schemas and transferring data between different data schemas within a contextual ontology
KR100505970B1 (en) * 2003-11-28 2005-08-30 한국전자통신연구원 System and method for knowledge modeling using ontology
US7333994B2 (en) * 2003-12-18 2008-02-19 Microsoft Corporation System and method for database having relational node structure
US20050149342A1 (en) * 2003-12-24 2005-07-07 International Business Machines Corporation Method and apparatus for creating and customizing plug-in business collaboration protocols
US7415465B2 (en) * 2004-01-08 2008-08-19 International Business Machines Corporation Method for representing an interest priority of an object to a user based on personal histories or social context
US7433876B2 (en) 2004-02-23 2008-10-07 Radar Networks, Inc. Semantic web portal and platform
EP1733316A1 (en) * 2004-03-22 2006-12-20 Nitgen Technologies Inc. A streaming based contents distribution network system and methods for splitting, merging and retrieving files
US7774601B2 (en) 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US20050251503A1 (en) * 2004-04-13 2005-11-10 Bea Systems, Inc. System and method for content and schema versioning
US20060041558A1 (en) * 2004-04-13 2006-02-23 Mccauley Rodney System and method for content versioning
US7246116B2 (en) * 2004-04-22 2007-07-17 International Business Machines Corporation Method, system and article of manufacturing for converting data values quantified using a first measurement unit into equivalent data values when quantified using a second measurement unit in order to receive query results including data values measured using at least one of the first and second measurement units
US7962453B2 (en) * 2004-04-26 2011-06-14 Oracle International Corporation Dynamic redistribution of a distributed memory index when individual nodes have different lookup indexes
US20050246367A1 (en) * 2004-04-30 2005-11-03 Rath Ralf M Context-driven automated transactions
JP2007536634A (en) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド Service-oriented architecture for process control systems
US20050262489A1 (en) * 2004-05-12 2005-11-24 Streeter Gordon S Knowledge representation language and knowledge processing environment
US7865390B2 (en) * 2004-05-21 2011-01-04 Siebel Systems, Inc. Modeling of employee performance result data
US8112296B2 (en) * 2004-05-21 2012-02-07 Siebel Systems, Inc. Modeling of job profile data
US7627671B1 (en) * 2004-05-22 2009-12-01 ClearApp, Inc. Monitoring and performance management of component-based applications
US9047583B2 (en) * 2004-05-28 2015-06-02 Lawson Software, Inc. Ontology context logic at a key field level
US7370028B2 (en) * 2004-06-08 2008-05-06 Oracle International Corp. Method of and system for providing namespace based object to XML mapping
US7447697B2 (en) * 2004-06-08 2008-11-04 Oracle International Corporation Method of and system for providing path based object to XML mapping
BE1016079A6 (en) * 2004-06-17 2006-02-07 Vartec Nv METHOD FOR INDEXING AND RECOVERING DOCUMENTS, COMPUTER PROGRAM THAT IS APPLIED AND INFORMATION CARRIER PROVIDED WITH THE ABOVE COMPUTER PROGRAM.
JP2006011739A (en) * 2004-06-24 2006-01-12 Internatl Business Mach Corp <Ibm> Device, computer system and data processing method using ontology
EP1621945B1 (en) * 2004-07-30 2017-03-29 Siemens Aktiengesellschaft Ensuring data consistency in an automation system
US20060053171A1 (en) * 2004-09-03 2006-03-09 Biowisdom Limited System and method for curating one or more multi-relational ontologies
US20060053173A1 (en) * 2004-09-03 2006-03-09 Biowisdom Limited System and method for support of chemical data within multi-relational ontologies
US20060053382A1 (en) * 2004-09-03 2006-03-09 Biowisdom Limited System and method for facilitating user interaction with multi-relational ontologies
US7496593B2 (en) 2004-09-03 2009-02-24 Biowisdom Limited Creating a multi-relational ontology having a predetermined structure
US20060053175A1 (en) * 2004-09-03 2006-03-09 Biowisdom Limited System and method for creating, editing, and utilizing one or more rules for multi-relational ontology creation and maintenance
US7505989B2 (en) 2004-09-03 2009-03-17 Biowisdom Limited System and method for creating customized ontologies
US20060074832A1 (en) * 2004-09-03 2006-04-06 Biowisdom Limited System and method for utilizing an upper ontology in the creation of one or more multi-relational ontologies
US20060053135A1 (en) * 2004-09-03 2006-03-09 Biowisdom Limited System and method for exploring paths between concepts within multi-relational ontologies
US20060074833A1 (en) * 2004-09-03 2006-04-06 Biowisdom Limited System and method for notifying users of changes in multi-relational ontologies
US20060053172A1 (en) * 2004-09-03 2006-03-09 Biowisdom Limited System and method for creating, editing, and using multi-relational ontologies
US20060053174A1 (en) * 2004-09-03 2006-03-09 Bio Wisdom Limited System and method for data extraction and management in multi-relational ontology creation
US7493333B2 (en) 2004-09-03 2009-02-17 Biowisdom Limited System and method for parsing and/or exporting data from one or more multi-relational ontologies
US7719971B1 (en) 2004-09-15 2010-05-18 Qurio Holdings, Inc. Peer proxy binding
US7774308B2 (en) * 2004-12-15 2010-08-10 Applied Minds, Inc. Anti-item for deletion of content in a distributed datastore
US8996486B2 (en) 2004-12-15 2015-03-31 Applied Invention, Llc Data store with lock-free stateless paging capability
US8275804B2 (en) 2004-12-15 2012-09-25 Applied Minds, Llc Distributed data store with a designated master to ensure consistency
US11321408B2 (en) 2004-12-15 2022-05-03 Applied Invention, Llc Data store with lock-free stateless paging capacity
US7590635B2 (en) * 2004-12-15 2009-09-15 Applied Minds, Inc. Distributed data store with an orderstamp to ensure progress
US20060136434A1 (en) * 2004-12-21 2006-06-22 Campbell Susan L System and method for managing objects in a server namespace
US20060136483A1 (en) * 2004-12-22 2006-06-22 International Business Machines Corporation System and method of decomposition of multiple items into the same table-column pair
US7620641B2 (en) * 2004-12-22 2009-11-17 International Business Machines Corporation System and method for context-sensitive decomposition of XML documents based on schemas with reusable element/attribute declarations
US7650349B2 (en) * 2005-01-05 2010-01-19 Microsoft Corporation Prescribed navigation using topology metadata and navigation path
ATE510259T1 (en) * 2005-01-31 2011-06-15 Ontoprise Gmbh MAPPING WEB SERVICES TO ONTOLOGIES
US7653528B2 (en) * 2005-03-08 2010-01-26 Microsoft Corporation Resource authoring incorporating ontology
US7774195B2 (en) 2005-03-08 2010-08-10 Microsoft Corporation Method and system for creating, storing, managing and consuming culture specific data
US8219907B2 (en) 2005-03-08 2012-07-10 Microsoft Corporation Resource authoring with re-usability score and suggested re-usable data
US20060218177A1 (en) * 2005-03-25 2006-09-28 Yuan-Chi Chang System and method for storing and retrieving data through an inferencing-enabled metadata system
US20060224571A1 (en) 2005-03-30 2006-10-05 Jean-Michel Leon Methods and systems to facilitate searching a data resource
US7921072B2 (en) * 2005-05-31 2011-04-05 Alcatel-Lucent Usa Inc. Methods and apparatus for mapping source schemas to a target schema using schema embedding
US20060288270A1 (en) * 2005-06-21 2006-12-21 Microsoft Corporation Automated presentation layer generation
US7480673B2 (en) * 2005-07-06 2009-01-20 International Business Machines Corporation Optimized computer diagramming method
US9305011B2 (en) * 2005-07-27 2016-04-05 Hitachi Data Systems Corporation Method for improving mean time to data loss (MTDL) in a fixed content distributed data storage
US7565358B2 (en) * 2005-08-08 2009-07-21 Google Inc. Agent rank
US8566789B2 (en) * 2005-08-25 2013-10-22 Infosys Limited Semantic-based query techniques for source code
US20070067343A1 (en) * 2005-09-21 2007-03-22 International Business Machines Corporation Determining the structure of relations and content of tuples from XML schema components
US7917537B2 (en) 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7818344B2 (en) 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
JP2007108877A (en) * 2005-10-11 2007-04-26 Toshiba Corp Information management system and information display device
US7827169B2 (en) * 2005-10-24 2010-11-02 Sap Ag Methods and systems for data processing
US8019752B2 (en) * 2005-11-10 2011-09-13 Endeca Technologies, Inc. System and method for information retrieval from object collections with complex interrelationships
US20070162409A1 (en) * 2006-01-06 2007-07-12 Godden Kurt S Creation and maintenance of ontologies
EP1920366A1 (en) 2006-01-20 2008-05-14 Glenbrook Associates, Inc. System and method for context-rich database optimized for processing of concepts
US20070198516A1 (en) * 2006-01-31 2007-08-23 Ganapathy Palamadai R Method of and system for organizing unstructured information utilizing parameterized templates and a technology presentation layer
US7529758B2 (en) * 2006-02-10 2009-05-05 International Business Machines Corporation Method for pre-processing mapping information for efficient decomposition of XML documents
US7764701B1 (en) 2006-02-22 2010-07-27 Qurio Holdings, Inc. Methods, systems, and products for classifying peer systems
US7779004B1 (en) 2006-02-22 2010-08-17 Qurio Holdings, Inc. Methods, systems, and products for characterizing target systems
US20070198449A1 (en) * 2006-02-23 2007-08-23 Achille Fokoue-Nkoutche Method and apparatus for safe ontology reasoning
US8495004B2 (en) 2006-03-27 2013-07-23 International Business Machines Corporation Determining and storing at least one results set in a global ontology database for future use by an entity that subscribes to the global ontology database
US7848956B1 (en) 2006-03-30 2010-12-07 Creative Byline, LLC Creative media marketplace system and method
US7596549B1 (en) 2006-04-03 2009-09-29 Qurio Holdings, Inc. Methods, systems, and products for analyzing annotations for related content
US8005841B1 (en) 2006-04-28 2011-08-23 Qurio Holdings, Inc. Methods, systems, and products for classifying content segments
US20070263010A1 (en) * 2006-05-15 2007-11-15 Microsoft Corporation Large-scale visualization techniques
US7711755B2 (en) * 2006-05-17 2010-05-04 Topcoder, Inc. Dynamic XSD enumeration
KR100864167B1 (en) * 2006-05-29 2008-10-16 주식회사 케이티 Apparatus and Method for managing ontology context based on knowledge in Ubiquitous
US7702645B2 (en) * 2006-06-30 2010-04-20 Nokia Corporation Method, apparatus and computer program product for making semantic annotations for easy file organization and search
US8615573B1 (en) 2006-06-30 2013-12-24 Quiro Holdings, Inc. System and method for networked PVR storage and content capture
US20080033993A1 (en) * 2006-08-04 2008-02-07 International Business Machines Corporation Database Access Through Ontologies With Semi-Automatic Semantic Mapping
US7788272B2 (en) * 2006-08-04 2010-08-31 Xerox Corporation Document catalog system
US8924838B2 (en) 2006-08-09 2014-12-30 Vcvc Iii Llc. Harvesting data from page
US7873988B1 (en) 2006-09-06 2011-01-18 Qurio Holdings, Inc. System and method for rights propagation and license management in conjunction with distribution of digital content in a social network
CN101145152B (en) * 2006-09-14 2010-08-11 国际商业机器公司 System and method for automatically refining reality in specific context
US7801971B1 (en) 2006-09-26 2010-09-21 Qurio Holdings, Inc. Systems and methods for discovering, creating, using, and managing social network circuits
US7925592B1 (en) 2006-09-27 2011-04-12 Qurio Holdings, Inc. System and method of using a proxy server to manage lazy content distribution in a social network
JP4171757B2 (en) * 2006-09-28 2008-10-29 株式会社東芝 Ontology integration support device, ontology integration support method, and ontology integration support program
US8554827B2 (en) 2006-09-29 2013-10-08 Qurio Holdings, Inc. Virtual peer for a content sharing system
US7782866B1 (en) 2006-09-29 2010-08-24 Qurio Holdings, Inc. Virtual peer in a peer-to-peer network
US8463852B2 (en) 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
EP1965313A1 (en) * 2006-10-31 2008-09-03 British Telecommunications Public Limited Company Data processing
US7792868B2 (en) 2006-11-10 2010-09-07 Microsoft Corporation Data object linking and browsing tool
US9208174B1 (en) * 2006-11-20 2015-12-08 Disney Enterprises, Inc. Non-language-based object search
US8676802B2 (en) 2006-11-30 2014-03-18 Oracle Otc Subsidiary Llc Method and system for information retrieval with clustering
US7886334B1 (en) * 2006-12-11 2011-02-08 Qurio Holdings, Inc. System and method for social network trust assessment
US7730216B1 (en) 2006-12-14 2010-06-01 Qurio Holdings, Inc. System and method of sharing content among multiple social network nodes using an aggregation node
US20100318558A1 (en) * 2006-12-15 2010-12-16 Aftercad Software Inc. Visual method and system for rdf creation, manipulation, aggregation, application and search
US8135800B1 (en) 2006-12-27 2012-03-13 Qurio Holdings, Inc. System and method for user classification based on social network aware content analysis
US20080162505A1 (en) * 2006-12-29 2008-07-03 Hill Charles R Context browser based navigation of pivotally related information for a document
KR100820746B1 (en) 2007-01-22 2008-04-11 조선대학교산학협력단 Browsing system and method of information using ontology
US7809705B2 (en) * 2007-02-13 2010-10-05 Yahoo! Inc. System and method for determining web page quality using collective inference based on local and global information
US7840903B1 (en) 2007-02-26 2010-11-23 Qurio Holdings, Inc. Group content representations
US8326871B2 (en) * 2007-02-27 2012-12-04 Red Hat, Inc. Method and system for dynamically generating category-based views
US20100064234A1 (en) * 2007-03-09 2010-03-11 Ghost, Inc. System and Method for Browser within a Web Site and Proxy Server
US8204856B2 (en) * 2007-03-15 2012-06-19 Google Inc. Database replication
US20080228812A1 (en) * 2007-03-15 2008-09-18 Honeywell International Inc. Method and System for Metamodeling Using Dynamic Ontology Objects
US20100174692A1 (en) * 2007-03-15 2010-07-08 Scott Meyer Graph store
US20090024590A1 (en) * 2007-03-15 2009-01-22 Sturge Timothy User contributed knowledge database
US20100121839A1 (en) * 2007-03-15 2010-05-13 Scott Meyer Query optimization
US7949938B2 (en) * 2007-03-20 2011-05-24 International Business Machines Corporation Comparing and merging multiple documents
US20080244517A1 (en) * 2007-03-26 2008-10-02 Sap Ag Horizontal and vertical filtering of multi-domain business application models
US7792838B2 (en) * 2007-03-29 2010-09-07 International Business Machines Corporation Information-theory based measure of similarity between instances in ontology
US8166465B2 (en) 2007-04-02 2012-04-24 International Business Machines Corporation Method and system for composing stream processing applications according to a semantic description of a processing goal
US8098248B2 (en) * 2007-04-02 2012-01-17 International Business Machines Corporation Method for semantic modeling of stream processing components to enable automatic application composition
US8307372B2 (en) 2007-04-02 2012-11-06 International Business Machines Corporation Method for declarative semantic expression of user intent to enable goal-driven information processing
US8370812B2 (en) * 2007-04-02 2013-02-05 International Business Machines Corporation Method and system for automatically assembling processing graphs in information processing systems
US8863102B2 (en) 2007-04-02 2014-10-14 International Business Machines Corporation Method and system for assembling information processing applications based on declarative semantic specifications
US7765241B2 (en) * 2007-04-20 2010-07-27 Microsoft Corporation Describing expected entity relationships in a model
US20080270462A1 (en) * 2007-04-24 2008-10-30 Interse A/S System and Method of Uniformly Classifying Information Objects with Metadata Across Heterogeneous Data Stores
US8332209B2 (en) * 2007-04-24 2012-12-11 Zinovy D. Grinblat Method and system for text compression and decompression
US9183290B2 (en) * 2007-05-02 2015-11-10 Thomas Reuters Global Resources Method and system for disambiguating informational objects
US8117233B2 (en) 2007-05-14 2012-02-14 International Business Machines Corporation Method and system for message-oriented semantic web service composition based on artificial intelligence planning
US8190422B2 (en) * 2007-05-20 2012-05-29 George Mason Intellectual Properties, Inc. Semantic cognitive map
US7734641B2 (en) 2007-05-25 2010-06-08 Peerset, Inc. Recommendation systems and methods using interest correlation
US20080294624A1 (en) * 2007-05-25 2008-11-27 Ontogenix, Inc. Recommendation systems and methods using interest correlation
US20080294622A1 (en) * 2007-05-25 2008-11-27 Issar Amit Kanigsberg Ontology based recommendation systems and methods
US20090024965A1 (en) * 2007-07-21 2009-01-22 Aleksandr Zhdankin Graphical method of semantic oriented model analysis and transformation design
US20210073191A1 (en) * 2007-07-26 2021-03-11 Hamid Hatami-Hanza Knowledgeable Machines And Applications
US9613138B2 (en) * 2008-09-03 2017-04-04 Hamid Hatami-Hanza Unified semantic scoring of compositions of ontological subjects
US7761483B2 (en) * 2007-07-27 2010-07-20 Sap Ag System and method for providing data handling within a human capital management system
US9256671B2 (en) * 2007-08-14 2016-02-09 Siemens Aktiengesllschaft Establishing of a semantic multilayer network
US9111285B2 (en) 2007-08-27 2015-08-18 Qurio Holdings, Inc. System and method for representing content, user presence and interaction within virtual world advertising environments
KR100899038B1 (en) * 2007-09-05 2009-05-21 한국과학기술정보연구원 System and method for nistance registering based on history
US20090076887A1 (en) * 2007-09-16 2009-03-19 Nova Spivack System And Method Of Collecting Market-Related Data Via A Web-Based Networking Environment
US20090089329A1 (en) * 2007-09-28 2009-04-02 Nelson Iii Charles F Systems and methods for the dynamic generation of repeat libraries for uncharacterized species
US8336024B2 (en) * 2007-11-08 2012-12-18 International Business Machines Corporation Extracting ontological information from software design data
US7856434B2 (en) 2007-11-12 2010-12-21 Endeca Technologies, Inc. System and method for filtering rules for manipulating search results in a hierarchical search and navigation system
US8266122B1 (en) * 2007-12-19 2012-09-11 Amazon Technologies, Inc. System and method for versioning data in a distributed data store
US7512576B1 (en) 2008-01-16 2009-03-31 International Business Machines Corporation Automatically generated ontology by combining structured and/or semi-structured knowledge sources
US8468117B1 (en) * 2008-01-22 2013-06-18 Salesforce.Com, Inc. System, method and computer program product for creating a visual component for tenants of an on-demand database service
CN101499063A (en) * 2008-01-31 2009-08-05 国际商业机器公司 Tracing-based database schema evolution method and system
US8479149B2 (en) * 2008-04-04 2013-07-02 Infosys Limited Concept-oriented software engineering system and method for identifying, extracting, organizing, inferring and querying software system facts
TWI393107B (en) * 2008-07-02 2013-04-11 Au Optronics Corp Liquid crystal display device
US8561100B2 (en) * 2008-07-25 2013-10-15 International Business Machines Corporation Using xpath and ontology engine in authorization control of assets and resources
US8768923B2 (en) * 2008-07-29 2014-07-01 Sap Ag Ontology-based generation and integration of information sources in development platforms
CN101605141A (en) * 2008-08-05 2009-12-16 天津大学 Web service relational network system based on semanteme
US8463053B1 (en) 2008-08-08 2013-06-11 The Research Foundation Of State University Of New York Enhanced max margin learning on multimodal data mining in a multimedia database
WO2010022378A1 (en) * 2008-08-21 2010-02-25 Satya Reddy Interrelated item search
EP2169495A1 (en) * 2008-09-18 2010-03-31 Siemens Aktiengesellschaft Method for modelling a manufacturing process
KR101661532B1 (en) * 2008-12-02 2016-09-30 아브 이니티오 테크놀로지 엘엘시 Mapping instances of a dataset within a data management system
US20100153948A1 (en) * 2008-12-11 2010-06-17 Ghost, Inc. Combined web and local computing environment
US8639712B2 (en) * 2008-12-12 2014-01-28 Koninklijke Philips N.V. Method and module for creating a relational database schema from an ontology
KR100993288B1 (en) * 2008-12-15 2010-11-09 한국과학기술정보연구원 System and Method for Efficient Reasoning Using View in DBMS-based RDF Triple Store
US8689352B2 (en) * 2008-12-18 2014-04-01 Sap Ag Distributed access control for document centric collaborations
US20110093500A1 (en) * 2009-01-21 2011-04-21 Google Inc. Query Optimization
US8352334B2 (en) * 2009-01-29 2013-01-08 Xerox Corporation System and method for ordering supplies for a multifunction device using a mobile wireless handset
DE102009000553B4 (en) * 2009-02-02 2012-12-06 Schott Ag Active optoceramics with cubic crystal structure, their production and uses
US8219540B2 (en) * 2009-02-26 2012-07-10 Raytheon Company Information viewing stem
US8862579B2 (en) 2009-04-15 2014-10-14 Vcvc Iii Llc Search and search optimization using a pattern of a location identifier
US8200617B2 (en) 2009-04-15 2012-06-12 Evri, Inc. Automatic mapping of a location identifier pattern of an object to a semantic type using object metadata
WO2010120934A2 (en) 2009-04-15 2010-10-21 Evri Inc. Search enhanced semantic advertising
US9037567B2 (en) 2009-04-15 2015-05-19 Vcvc Iii Llc Generating user-customized search results and building a semantics-enhanced search engine
US8838628B2 (en) * 2009-04-24 2014-09-16 Bonnie Berger Leighton Intelligent search tool for answering clinical queries
EP2246811A1 (en) 2009-04-30 2010-11-03 Collibra NV/SA Method for improved ontology engineering
KR101072937B1 (en) * 2009-05-07 2011-10-17 한국과학기술정보연구원 Semantic service system and method
US20110035418A1 (en) * 2009-08-06 2011-02-10 Raytheon Company Object-Knowledge Mapping Method
US20110035349A1 (en) * 2009-08-07 2011-02-10 Raytheon Company Knowledge Management Environment
US9002857B2 (en) * 2009-08-13 2015-04-07 Charite-Universitatsmedizin Berlin Methods for searching with semantic similarity scores in one or more ontologies
KR101688555B1 (en) * 2009-09-16 2016-12-21 아브 이니티오 테크놀로지 엘엘시 Mapping dataset elements
US8880549B2 (en) * 2009-11-09 2014-11-04 International Business Machines Corporation Concurrent database access by production and prototype applications
US8229930B2 (en) * 2010-02-01 2012-07-24 Microsoft Corporation URL reputation system
US8606792B1 (en) 2010-02-08 2013-12-10 Google Inc. Scoring authors of posts
US20110208786A1 (en) * 2010-02-23 2011-08-25 Microsoft Corporation Presentation of a web-based visual representation of a structured data solution
EP2365448A1 (en) * 2010-03-11 2011-09-14 British Telecommunications PLC Data integration system
USD656942S1 (en) * 2010-04-30 2012-04-03 American Teleconferencing Services, Ltd. Display screen portion with an animated image
USD656506S1 (en) * 2010-04-30 2012-03-27 American Teleconferencing Services, Ltd. Display screen portion with an animated image
USD642586S1 (en) * 2010-04-30 2011-08-02 American Teleconferencing Services, Ltd. Portion of a display screen with a user interface
USD656505S1 (en) * 2010-04-30 2012-03-27 American Teleconferencing Services, Ltd. Display screen portion with animated image
USD656504S1 (en) * 2010-04-30 2012-03-27 American Teleconferencing Services, Ltd. Display screen portion with an animated image
USD656941S1 (en) * 2010-04-30 2012-04-03 American Teleconferencing Services, Ltd. Display screen portion with an animated image
KR101911793B1 (en) 2010-10-25 2018-10-25 아브 이니티오 테크놀로지 엘엘시 Managing data set objects in a dataflow graph that represents a computer program
CN103314371B (en) * 2010-12-31 2017-12-15 肖岩 A kind of method and system of retrieval
US9418150B2 (en) * 2011-01-11 2016-08-16 Intelligent Medical Objects, Inc. System and process for concept tagging and content retrieval
JP5940560B2 (en) 2011-01-14 2016-06-29 アビニシオ テクノロジー エルエルシー Managing changes to a collection of data
US9053182B2 (en) * 2011-01-27 2015-06-09 International Business Machines Corporation System and method for making user generated audio content on the spoken web navigable by community tagging
US9122985B2 (en) 2011-10-28 2015-09-01 Microsoft Technology Licensing, Llc Programmatic access to terminologies expressed in hierarchical form
US8971644B1 (en) 2012-01-18 2015-03-03 Google Inc. System and method for determining an annotation for an image
US9319283B2 (en) * 2012-02-27 2016-04-19 Xerox Corporation Systems and methods for creating web service compositions
US10839046B2 (en) 2012-03-23 2020-11-17 Navya Network, Inc. Medical research retrieval engine
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
US9189531B2 (en) * 2012-11-30 2015-11-17 Orbis Technologies, Inc. Ontology harmonization and mediation systems and methods
AU2013370424A1 (en) * 2012-12-28 2015-07-23 Xsb, Inc. Systems and methods for creating, editing, storing and retrieving knowledge contained in specification documents
US9836551B2 (en) * 2013-01-08 2017-12-05 International Business Machines Corporation GUI for viewing and manipulating connected tag clouds
US20140258304A1 (en) * 2013-03-11 2014-09-11 GM Global Technology Operations LLC Adaptable framework for ontology-based information extraction
US8966593B2 (en) * 2013-03-14 2015-02-24 International Business Machines Corporation Delivering author specific content
JP6184167B2 (en) * 2013-05-21 2017-08-23 株式会社東芝 Data processing apparatus, method and program
US10223637B1 (en) 2013-05-30 2019-03-05 Google Llc Predicting accuracy of submitted data
US9720972B2 (en) 2013-06-17 2017-08-01 Microsoft Technology Licensing, Llc Cross-model filtering
US9529904B2 (en) 2013-06-18 2016-12-27 International Business Machines Corporation Utility-based ontology evolution
US10078539B1 (en) * 2013-10-30 2018-09-18 American Airlines, Inc. System and method for logging and searching history events such as airline flight or crew history
US20150186463A1 (en) * 2013-12-31 2015-07-02 International Business Machines Corporation Identifying changes to query results system and method
US11521717B2 (en) 2014-02-21 2022-12-06 Intelligent Medical Objects, Inc. System and method for generating and updating a user interface to evaluate an electronic medical record
US11488690B2 (en) 2014-02-21 2022-11-01 Intelligent Medical Objects, Inc. System and method for problem list reconciliation in an electronic medical record
US11436270B2 (en) * 2014-02-28 2022-09-06 San Diego State University Research Foundation Knowledge reference system and method
US9984136B1 (en) 2014-03-21 2018-05-29 Exlservice Technology Solutions, Llc System, method, and program product for lightweight data federation
US9898527B2 (en) * 2014-03-24 2018-02-20 Wipro Limited Methods for retrieving information and devices thereof
KR101958796B1 (en) 2014-05-05 2019-03-15 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 Ontology-based data access monitoring
US10542049B2 (en) 2014-05-09 2020-01-21 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
EP3143527A1 (en) * 2014-05-12 2017-03-22 Semantic Technologies Pty Ltd Putative ontology generating method and apparatus
US10698924B2 (en) * 2014-05-22 2020-06-30 International Business Machines Corporation Generating partitioned hierarchical groups based on data sets for business intelligence data models
CN106716352B (en) 2014-07-18 2020-04-28 起元科技有限公司 Managing parameter sets
US10740304B2 (en) * 2014-08-25 2020-08-11 International Business Machines Corporation Data virtualization across heterogeneous formats
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
US10909176B1 (en) 2014-10-28 2021-02-02 Intelligent Medical Objects, Inc. System and method for facilitating migration between electronic terminologies
US9665802B2 (en) * 2014-11-13 2017-05-30 Nec Corporation Object-centric fine-grained image classification
US9652740B2 (en) * 2014-12-30 2017-05-16 Sap Se Fan identity data integration and unification
US20160239499A1 (en) * 2015-02-12 2016-08-18 Red Hat, Inc. Object Creation Based on Copying Objects Corresponding to Similar Entities
US10885148B2 (en) 2015-03-24 2021-01-05 Intelligent Medical Objects, Inc. System and method for medical classification code modeling
US10152556B1 (en) * 2015-04-16 2018-12-11 Jpmorgan Chase Bank, N.A. Semantic modeling platform
US10007879B2 (en) 2015-05-27 2018-06-26 International Business Machines Corporation Authoring system for assembling clinical knowledge
US10929417B2 (en) 2015-09-11 2021-02-23 International Business Machines Corporation Transforming and loading data utilizing in-memory processing
US9864598B2 (en) 2015-09-18 2018-01-09 ReactiveCore LLC System and method for providing supplemental functionalities to a computer program
US9552200B1 (en) 2015-09-18 2017-01-24 ReactiveCore LLC System and method for providing supplemental functionalities to a computer program via an ontology instance
US9335991B1 (en) 2015-09-18 2016-05-10 ReactiveCore LLC System and method for providing supplemental functionalities to a computer program via an ontology instance
US9372684B1 (en) 2015-09-18 2016-06-21 ReactiveCore LLC System and method for providing supplemental functionalities to a computer program via an ontology instance
US11157260B2 (en) 2015-09-18 2021-10-26 ReactiveCore LLC Efficient information storage and retrieval using subgraphs
US10878010B2 (en) 2015-10-19 2020-12-29 Intelligent Medical Objects, Inc. System and method for clinical trial candidate matching
US10372515B1 (en) 2015-10-30 2019-08-06 American Airlines, Inc. System agnostic front end application for legacy systems
US10387465B2 (en) * 2015-12-21 2019-08-20 Sap Se Display of relevant information from multiple data sources
US11669320B2 (en) 2016-02-12 2023-06-06 Nutanix, Inc. Self-healing virtualized file server
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US11093541B2 (en) 2016-07-18 2021-08-17 International Business Machines Corporation Transforming an ontology query to an SQL query
US11915803B2 (en) 2016-10-28 2024-02-27 Intelligent Medical Objects, Inc. Method and system for extracting data from a plurality of electronic data stores of patient data to provide provider and patient data similarity scoring
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US10824455B2 (en) * 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
KR20200018792A (en) * 2017-06-02 2020-02-20 띵크스팬, 엘엘씨 Universal data scaffold based data management platform
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US11074250B2 (en) * 2017-06-27 2021-07-27 OWOX Limted Technologies for implementing ontological models for natural language queries
US10430255B2 (en) * 2017-07-03 2019-10-01 Fujitsu Limited Application program interface mashup generation
US10191786B2 (en) * 2017-07-03 2019-01-29 Fujitsu Limited Application program interface mashup generation
US11797275B2 (en) * 2017-07-10 2023-10-24 Schneider Electric USA, Inc. Model driven methods for ontology based application development
EP3447639A1 (en) * 2017-08-22 2019-02-27 Siemens Aktiengesellschaft Device and method for coupling a machine with a plurality of applications
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11500914B2 (en) 2018-09-05 2022-11-15 International Business Machines Corporation Query recommendation to locate an application programming interface
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11151169B2 (en) 2018-10-31 2021-10-19 The United States Of America As Represented By The Secretary Of The Navy System and method for motion abstraction, activity identification, and vehicle classification
US11416477B2 (en) * 2018-11-14 2022-08-16 Thoughtspot, Inc. Systems and methods for database analysis
US10489454B1 (en) 2019-06-28 2019-11-26 Capital One Services, Llc Indexing a dataset based on dataset tags and an ontology
US11531703B2 (en) 2019-06-28 2022-12-20 Capital One Services, Llc Determining data categorizations based on an ontology and a machine-learning model
EP4046040A4 (en) 2019-10-18 2023-10-25 Thinkspan, LLC Scalable scaffolding and bundled data
US11442944B2 (en) 2019-10-18 2022-09-13 Thinkspan, LLC Algorithmic suggestions based on a universal data scaffold
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11550629B2 (en) 2020-06-15 2023-01-10 Bank Of America Corporation System for implementing data analytics in mainframe environments
US11797528B2 (en) 2020-07-08 2023-10-24 OneTrust, LLC Systems and methods for targeted data discovery
WO2022032072A1 (en) 2020-08-06 2022-02-10 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US20230334158A1 (en) 2020-09-21 2023-10-19 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
CN112347280B (en) * 2020-10-15 2022-08-26 平和县鑫泰德远矿业有限公司 Pyrophyllite mineral comprehensive data acquisition and data management system
EP4241173A1 (en) 2020-11-06 2023-09-13 OneTrust LLC Systems and methods for identifying data processing activities based on data discovery results
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
WO2022170047A1 (en) 2021-02-04 2022-08-11 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
WO2022173912A1 (en) 2021-02-10 2022-08-18 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
WO2022178089A1 (en) 2021-02-17 2022-08-25 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
US11533315B2 (en) 2021-03-08 2022-12-20 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11636111B1 (en) * 2021-10-25 2023-04-25 International Business Machines Corporation Extraction of relationship graphs from relational databases
US20230205741A1 (en) * 2021-12-24 2023-06-29 Paypal, Inc. Enterprise data management platform
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499371A (en) * 1993-07-21 1996-03-12 Persistence Software, Inc. Method and apparatus for automatic generation of object oriented code for mapping relational data to objects
US5970490A (en) * 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US6374252B1 (en) * 1995-04-24 2002-04-16 I2 Technologies Us, Inc. Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US20020099738A1 (en) * 2000-11-22 2002-07-25 Grant Hugh Alexander Automated web access for back-end enterprise systems
US20020133484A1 (en) * 1999-12-02 2002-09-19 International Business Machines Corporation Storing fragmented XML data into a relational database by decomposing XML documents with application specific mappings
US20030036917A1 (en) * 2001-04-25 2003-02-20 Metallect Corporation Service provision system and method
US6591272B1 (en) * 1999-02-25 2003-07-08 Tricoron Networks, Inc. Method and apparatus to make and transmit objects from a database on a server computer to a client computer
US6732109B2 (en) * 2001-01-31 2004-05-04 The Eon Company Method and system for transferring information between a user interface and a database over a global information network
US6847974B2 (en) * 2001-03-26 2005-01-25 Us Search.Com Inc Method and apparatus for intelligent data assimilation
US6947943B2 (en) * 2001-10-26 2005-09-20 Zeosoft Technology Group, Inc. System for development, management and operation of distributed clients and servers
US6985905B2 (en) * 2000-03-03 2006-01-10 Radiant Logic Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
US7007029B1 (en) * 1999-01-15 2006-02-28 Metaedge Corporation System for visualizing information in a data warehousing environment

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295242A (en) * 1990-11-02 1994-03-15 Consilium, Inc. Apparatus and method for viewing relationships in a factory management system
US5627979A (en) * 1994-07-18 1997-05-06 International Business Machines Corporation System and method for providing a graphical user interface for mapping and accessing objects in data stores
US5838965A (en) * 1994-11-10 1998-11-17 Cadis, Inc. Object oriented database management system
US5873093A (en) * 1994-12-07 1999-02-16 Next Software, Inc. Method and apparatus for mapping objects to a data source
US6704744B1 (en) * 1994-12-07 2004-03-09 Next Computer, Inc. Method and apparatus for mapping objects to multiple tables of a database
US5799309A (en) * 1994-12-29 1998-08-25 International Business Machines Corporation Generating an optimized set of relational queries fetching data in an object-relational database
US6633869B1 (en) * 1995-05-09 2003-10-14 Intergraph Corporation Managing object relationships using an object repository
US5692184A (en) * 1995-05-09 1997-11-25 Intergraph Corporation Object relationship management system
US6003034A (en) * 1995-05-16 1999-12-14 Tuli; Raja Singh Linking of multiple icons to data units
US5768580A (en) * 1995-05-31 1998-06-16 Oracle Corporation Methods and apparatus for dynamic classification of discourse
US5710917A (en) * 1995-06-07 1998-01-20 International Business Machines Corporation Method for deriving data mappings and data aliases
US6173289B1 (en) * 1995-07-07 2001-01-09 Novell, Inc. Apparatus and method for performing actions on object-oriented software objects in a directory services system
AU6500596A (en) * 1995-07-20 1997-02-18 Novell, Inc. Transaction log management in a disconnectable computer and network
US6112201A (en) * 1995-08-29 2000-08-29 Oracle Corporation Virtual bookshelf
US5734887A (en) * 1995-09-29 1998-03-31 International Business Machines Corporation Method and apparatus for logical data access to a physical relational database
US5878434A (en) * 1996-07-18 1999-03-02 Novell, Inc Transaction clash management in a disconnectable computer and network
US10839321B2 (en) * 1997-01-06 2020-11-17 Jeffrey Eder Automated data storage system
US5995756A (en) * 1997-02-14 1999-11-30 Inprise Corporation System for internet-based delivery of computer applications
US6035342A (en) * 1997-03-19 2000-03-07 Microsoft Corporation Method and computer program product for implementing object relationships
US5905987A (en) * 1997-03-19 1999-05-18 Microsoft Corporation Method, data structure, and computer program product for object state storage in a repository
US5857197A (en) * 1997-03-20 1999-01-05 Thought Inc. System and method for accessing data stores as objects
US6424974B1 (en) * 1997-03-31 2002-07-23 International Business Machines Corporation Storing P-code in a database
US5950190A (en) * 1997-05-13 1999-09-07 Aptek, Inc. Dynamic, self-modifying graphical user interface for relational database applications
US5937409A (en) * 1997-07-25 1999-08-10 Oracle Corporation Integrating relational databases in an object oriented environment
US6301584B1 (en) * 1997-08-21 2001-10-09 Home Information Services, Inc. System and method for retrieving entities and integrating data
US6014666A (en) * 1997-10-28 2000-01-11 Microsoft Corporation Declarative and programmatic access control of component-based server applications using roles
US6094650A (en) * 1997-12-15 2000-07-25 Manning & Napier Information Services Database analysis using a probabilistic ontology
US6175837B1 (en) * 1998-06-29 2001-01-16 Sun Microsystems, Inc. Object-relational mapping toll that processes views
US6263342B1 (en) * 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
US6233586B1 (en) * 1998-04-01 2001-05-15 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated query object
US6199059B1 (en) * 1998-04-22 2001-03-06 International Computex, Inc. System and method for classifying and retrieving information with virtual object hierarchy
US6526416B1 (en) * 1998-06-30 2003-02-25 Microsoft Corporation Compensating resource managers
US6424973B1 (en) * 1998-07-24 2002-07-23 Jarg Corporation Search system and method based on multiple ontologies
US6343265B1 (en) * 1998-07-28 2002-01-29 International Business Machines Corporation System and method for mapping a design model to a common repository with context preservation
US6389414B1 (en) * 1998-09-21 2002-05-14 Microsoft Corporation Internal database validation
US6569207B1 (en) * 1998-10-05 2003-05-27 International Business Machines Corporation Converting schemas to component models
US6718320B1 (en) * 1998-11-02 2004-04-06 International Business Machines Corporation Schema mapping system and method
US6249769B1 (en) * 1998-11-02 2001-06-19 International Business Machines Corporation Method, system and program product for evaluating the business requirements of an enterprise for generating business solution deliverables
US6498795B1 (en) * 1998-11-18 2002-12-24 Nec Usa Inc. Method and apparatus for active information discovery and retrieval
US6327593B1 (en) * 1998-12-23 2001-12-04 Unisys Corporation Automated system and method for capturing and managing user knowledge within a search system
US6233566B1 (en) * 1998-12-31 2001-05-15 Ultraprise Corporation System, method and computer program product for online financial products trading
US6892238B2 (en) * 1999-01-27 2005-05-10 International Business Machines Corporation Aggregating and analyzing information about content requested in an e-commerce web environment to determine conversion rates
US6711585B1 (en) * 1999-06-15 2004-03-23 Kanisa Inc. System and method for implementing a knowledge management system
US6651244B1 (en) * 1999-07-26 2003-11-18 Cisco Technology, Inc. System and method for determining program complexity
US6633878B1 (en) * 1999-07-30 2003-10-14 Accenture Llp Initializing an ecommerce database framework
EP1305746A2 (en) * 1999-08-20 2003-05-02 Black Pearl, Inc. Ontology-driven information system
US7200563B1 (en) * 1999-08-20 2007-04-03 Acl International Inc. Ontology-driven information system
JP2001092827A (en) * 1999-09-20 2001-04-06 Toshiba Corp Device and method for managing data
US6560595B1 (en) * 1999-11-15 2003-05-06 Novell, Inc. Operator for correlated predicates in a query
US6754670B1 (en) * 1999-12-17 2004-06-22 International Business Machines Corporation Mapping relational tables to object oriented classes
US6728692B1 (en) * 1999-12-23 2004-04-27 Hewlett-Packard Company Apparatus for a multi-modal ontology engine
US6978257B1 (en) * 2000-01-31 2005-12-20 International Business Machines Corporation System and method for measuring and pricing midrange computer server outsourcing services
US6497943B1 (en) * 2000-02-14 2002-12-24 International Business Machines Corporation Surface metal balancing to reduce chip carrier flexing
US20020029207A1 (en) * 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
US6687873B1 (en) * 2000-03-09 2004-02-03 Electronic Data Systems Corporation Method and system for reporting XML data from a legacy computer system
US6311194B1 (en) * 2000-03-15 2001-10-30 Taalee, Inc. System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising
US20030110055A1 (en) * 2000-04-10 2003-06-12 Chau Bang Thinh Electronic catalogue
US7111297B1 (en) * 2000-05-02 2006-09-19 Microsoft Corporation Methods and architectures for resource management
GB0011426D0 (en) * 2000-05-11 2000-06-28 Charteris Limited A method for transforming documents written in different XML-based languages
US6772031B1 (en) * 2000-05-30 2004-08-03 International Business Machines Corporation Method of, system for, and computer program product for providing a job monitor
US6957214B2 (en) * 2000-06-23 2005-10-18 The Johns Hopkins University Architecture for distributed database information access
AU2001271891A1 (en) 2000-07-07 2002-01-21 Criticalpoint Software Corporation Methods and system for generating and searching ontology databases
US6513059B1 (en) * 2000-08-24 2003-01-28 Cambira Corporation Adaptive collaborative intelligent network system
WO2002019097A1 (en) * 2000-09-01 2002-03-07 International Interactive Commerce, Ltd. System and method for collaboration using web browsers
US7024425B2 (en) * 2000-09-07 2006-04-04 Oracle International Corporation Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system
US6871204B2 (en) * 2000-09-07 2005-03-22 Oracle International Corporation Apparatus and method for mapping relational data and metadata to XML
US7111010B2 (en) * 2000-09-25 2006-09-19 Hon Hai Precision Industry, Ltd. Method and system for managing event attributes
US6708161B2 (en) * 2000-09-26 2004-03-16 I2 Technologies Us, Inc. System and method for selective database indexing
US20020111870A1 (en) * 2000-09-26 2002-08-15 I2 Technologies, Inc. System and method for identifying a product
US6640231B1 (en) 2000-10-06 2003-10-28 Ontology Works, Inc. Ontology for database design and application development
US7027974B1 (en) * 2000-10-27 2006-04-11 Science Applications International Corporation Ontology-based parser for natural language processing
US6999956B2 (en) * 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system
KR20020045343A (en) * 2000-12-08 2002-06-19 오길록 Method of information generation and retrieval system based on a standardized Representation format of sentences structures and meanings
US6532471B1 (en) * 2000-12-11 2003-03-11 International Business Machines Corporation Interface repository browser and editor
US7302410B1 (en) * 2000-12-22 2007-11-27 Demandtec, Inc. Econometric optimization engine
US7278164B2 (en) * 2001-01-05 2007-10-02 Revit Technology Corporation Software usage/procurement management
US6792580B2 (en) * 2001-01-31 2004-09-14 Kabushiki Kaisha Toshiba Method and computer program product for software/hardware language model conversion
TW571201B (en) * 2001-02-02 2004-01-11 Wistron Corp Conversion method and system for contents format of document file
GB0108070D0 (en) 2001-03-30 2001-05-23 British Telecomm Database management system
US7143190B2 (en) * 2001-04-02 2006-11-28 Irving S. Rappaport Method and system for remotely facilitating the integration of a plurality of dissimilar systems
US6711579B2 (en) * 2001-04-20 2004-03-23 Sree Ayyanar Spinning And Weaving Mills Limited Data storage schema independent programming for data retrieval using semantic bridge
AUPR464601A0 (en) * 2001-04-30 2001-05-24 Commonwealth Of Australia, The Shapes vector
US7877421B2 (en) * 2001-05-25 2011-01-25 International Business Machines Corporation Method and system for mapping enterprise data assets to a semantic information model
US7146399B2 (en) * 2001-05-25 2006-12-05 2006 Trident Company Run-time architecture for enterprise integration with transformation generation
US20030101170A1 (en) 2001-05-25 2003-05-29 Joseph Edelstein Data query and location through a central ontology model
US7099885B2 (en) * 2001-05-25 2006-08-29 Unicorn Solutions Method and system for collaborative ontology modeling
US20020194201A1 (en) 2001-06-05 2002-12-19 Wilbanks John Thompson Systems, methods and computer program products for integrating biological/chemical databases to create an ontology network
US20030018616A1 (en) * 2001-06-05 2003-01-23 Wilbanks John Thompson Systems, methods and computer program products for integrating databases to create an ontology network
US20020194154A1 (en) * 2001-06-05 2002-12-19 Levy Joshua Lerner Systems, methods and computer program products for integrating biological/chemical databases using aliases
EP1410258A4 (en) * 2001-06-22 2007-07-11 Inc Nervana System and method for knowledge retrieval, management, delivery and presentation
US6778990B2 (en) * 2001-07-27 2004-08-17 Hewlett-Packard Development Company, L.P. Dynamic component activation method using a relational database as the repository for registration information
US7526425B2 (en) * 2001-08-14 2009-04-28 Evri Inc. Method and system for extending keyword searching to syntactically and semantically annotated data
US7398201B2 (en) * 2001-08-14 2008-07-08 Evri Inc. Method and system for enhanced data searching
AU2002334721B2 (en) * 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
US20030172368A1 (en) * 2001-12-26 2003-09-11 Elizabeth Alumbaugh System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology
US8032828B2 (en) * 2002-03-04 2011-10-04 Hewlett-Packard Development Company, L.P. Method and system of document transformation between a source extensible markup language (XML) schema and a target XML schema
AU2003224673A1 (en) * 2002-03-08 2003-09-22 Enleague Systems, Inc Methods and systems for modeling and using computer resources over a heterogeneous distributed network using semantic ontologies
US20040010491A1 (en) * 2002-06-28 2004-01-15 Markus Riedinger User interface framework
US20040117346A1 (en) * 2002-09-20 2004-06-17 Kilian Stoffel Computer-based method and apparatus for repurposing an ontology
US7398261B2 (en) * 2002-11-20 2008-07-08 Radar Networks, Inc. Method and system for managing and tracking semantic objects
GB2399665A (en) * 2003-03-18 2004-09-22 British Telecomm Access control to shared resources
US20040260576A1 (en) 2003-06-20 2004-12-23 Dongwen Wang Guideline execution task ontology (GETO)
US7739223B2 (en) * 2003-08-29 2010-06-15 Microsoft Corporation Mapping architecture for arbitrary data models
US7383302B2 (en) * 2003-09-15 2008-06-03 International Business Machines Corporation Method and system for providing a common collaboration framework accessible from within multiple applications
US7555441B2 (en) * 2003-10-10 2009-06-30 Kronos Talent Management Inc. Conceptualization of job candidate information
KR100576935B1 (en) * 2003-12-22 2006-05-10 한국전자통신연구원 Ontology-based service discovery system and method for ad hoc networks
US7254589B2 (en) * 2004-05-21 2007-08-07 International Business Machines Corporation Apparatus and method for managing and inferencing contextural relationships accessed by the context engine to answer queries received from the application program interface, wherein ontology manager is operationally coupled with a working memory
US7328209B2 (en) 2004-08-11 2008-02-05 Oracle International Corporation System for ontology-based semantic matching in a relational database system
WO2006071928A2 (en) 2004-12-29 2006-07-06 Aol Llc Routing queries to information sources and sorting and filtering query results
US20060218177A1 (en) * 2005-03-25 2006-09-28 Yuan-Chi Chang System and method for storing and retrieving data through an inferencing-enabled metadata system
FR2888210B1 (en) 2005-07-08 2007-08-17 Airbus France Sas METHOD AND DEVICE FOR RIDING LOADS ON THE WING OF AN AIRCRAFT IN ROLL

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499371A (en) * 1993-07-21 1996-03-12 Persistence Software, Inc. Method and apparatus for automatic generation of object oriented code for mapping relational data to objects
US6374252B1 (en) * 1995-04-24 2002-04-16 I2 Technologies Us, Inc. Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US5970490A (en) * 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US7007029B1 (en) * 1999-01-15 2006-02-28 Metaedge Corporation System for visualizing information in a data warehousing environment
US6591272B1 (en) * 1999-02-25 2003-07-08 Tricoron Networks, Inc. Method and apparatus to make and transmit objects from a database on a server computer to a client computer
US20020133484A1 (en) * 1999-12-02 2002-09-19 International Business Machines Corporation Storing fragmented XML data into a relational database by decomposing XML documents with application specific mappings
US6985905B2 (en) * 2000-03-03 2006-01-10 Radiant Logic Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
US20020099738A1 (en) * 2000-11-22 2002-07-25 Grant Hugh Alexander Automated web access for back-end enterprise systems
US6732109B2 (en) * 2001-01-31 2004-05-04 The Eon Company Method and system for transferring information between a user interface and a database over a global information network
US6847974B2 (en) * 2001-03-26 2005-01-25 Us Search.Com Inc Method and apparatus for intelligent data assimilation
US20030036917A1 (en) * 2001-04-25 2003-02-20 Metallect Corporation Service provision system and method
US6947943B2 (en) * 2001-10-26 2005-09-20 Zeosoft Technology Group, Inc. System for development, management and operation of distributed clients and servers

Cited By (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412746B2 (en) 2001-05-25 2013-04-02 International Business Machines Corporation Method and system for federated querying of data sources
US8548938B2 (en) 2001-05-25 2013-10-01 International Business Machines Corporation Business rules for configurable metamodels and enterprise impact analysis
US20030097637A1 (en) * 2001-09-04 2003-05-22 International Business Machines Corporation Schema generation apparatus, data processor, and program for processing in the same data processor
US20030093760A1 (en) * 2001-11-12 2003-05-15 Ntt Docomo, Inc. Document conversion system, document conversion method and computer readable recording medium storing document conversion program
US7139975B2 (en) * 2001-11-12 2006-11-21 Ntt Docomo, Inc. Method and system for converting structured documents
US20030167445A1 (en) * 2002-03-04 2003-09-04 Hong Su Method and system of document transformation between a source extensible markup language (XML) schema and a target XML schema
US8032828B2 (en) * 2002-03-04 2011-10-04 Hewlett-Packard Development Company, L.P. Method and system of document transformation between a source extensible markup language (XML) schema and a target XML schema
US8190648B1 (en) * 2002-05-14 2012-05-29 Bentley Systems, Incorporated Method and system for the storage and use of engineering modeling alternatives with unitized data
US20050022160A1 (en) * 2002-06-17 2005-01-27 Adaptik Corporation Method and apparatus for creating an adaptive application
US20040205469A1 (en) * 2002-06-19 2004-10-14 Mellor Nathan D. Method for processing a rule using computer-independent program instructions and computer for use therewith
US7574652B2 (en) * 2002-06-20 2009-08-11 Canon Kabushiki Kaisha Methods for interactively defining transforms and for generating queries by manipulating existing query data
US20040015783A1 (en) * 2002-06-20 2004-01-22 Canon Kabushiki Kaisha Methods for interactively defining transforms and for generating queries by manipulating existing query data
US7451403B1 (en) * 2002-12-20 2008-11-11 Rage Frameworks, Inc. System and method for developing user interfaces purely by modeling as meta data in software application
US20050050056A1 (en) * 2003-08-25 2005-03-03 Oracle International Corporation Mechanism to enable evolving XML schema
US7395271B2 (en) * 2003-08-25 2008-07-01 Oracle International Corporation Mechanism to enable evolving XML schema
US7596748B2 (en) * 2003-09-12 2009-09-29 International Business Machines Corporation Method for validating a document conforming to a first schema with respect to a second schema
US20050060645A1 (en) * 2003-09-12 2005-03-17 International Business Machines Corporation System and method for validating a document conforming to a first schema with respect to a second schema
US20050228803A1 (en) * 2004-04-02 2005-10-13 Microsoft Corporation Adapter framework for line-of-business application integration
US7607120B2 (en) * 2004-04-20 2009-10-20 Hewlett-Packard Development Company, L.P. Method and apparatus for creating data transformation routines for binary data
US20050235271A1 (en) * 2004-04-20 2005-10-20 Dibyapran Sanyal Method and apparatus for creating data transformation routines for binary data
US7823123B2 (en) 2004-07-13 2010-10-26 The Mitre Corporation Semantic system for integrating software components
US20060206883A1 (en) * 2004-07-13 2006-09-14 The Mitre Corporation Semantic system for integrating software components
US7877726B2 (en) * 2004-07-13 2011-01-25 The Mitre Corporation Semantic system for integrating software components
US20060015843A1 (en) * 2004-07-13 2006-01-19 Marwan Sabbouh Semantic system for integrating software components
US7299237B1 (en) * 2004-08-19 2007-11-20 Sun Microsystems, Inc. Dynamically pipelined data migration
US20060053130A1 (en) * 2004-09-03 2006-03-09 Hite Thomas D System and method for describing a relation ontology
US20060106876A1 (en) * 2004-11-12 2006-05-18 Macgregor Robert M Method and apparatus for re-using presentation data across templates in an ontology
US7293010B2 (en) 2005-01-25 2007-11-06 Ontoprise Gmbh Enterprise information integration platform
US8458201B2 (en) * 2005-04-08 2013-06-04 International Business Machines Corporation Method and apparatus for mapping structured query language schema to application specific business objects in an integrated application environment
US20060230063A1 (en) * 2005-04-08 2006-10-12 International Business Machines Corporation Method and apparatus for mapping structured query language schema to application specific business objects in an integrated application environment
US20060242563A1 (en) * 2005-04-22 2006-10-26 Liu Zhen H Optimizing XSLT based on input XML document structure description and translating XSLT into equivalent XQuery expressions
US7949941B2 (en) * 2005-04-22 2011-05-24 Oracle International Corporation Optimizing XSLT based on input XML document structure description and translating XSLT into equivalent XQuery expressions
US20060288021A1 (en) * 2005-06-20 2006-12-21 Junichi Kojima Information processor, schema definition method and program
US7774300B2 (en) 2005-12-09 2010-08-10 International Business Machines Corporation System and method for data model and content migration in content management applications
US20070136353A1 (en) * 2005-12-09 2007-06-14 International Business Machines Corporation System and method for data model and content migration in content management application
US20070143666A1 (en) * 2005-12-15 2007-06-21 Xerox Corporation Architecture for arbitrary extensible markup language processing engine
US8984397B2 (en) 2005-12-15 2015-03-17 Xerox Corporation Architecture for arbitrary extensible markup language processing engine
US20070150808A1 (en) * 2005-12-22 2007-06-28 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
US9286272B2 (en) 2005-12-22 2016-03-15 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
US7689581B2 (en) 2006-01-18 2010-03-30 International Business Machines Corporation Sequential composition of schema mappings
US20070203931A1 (en) * 2006-02-06 2007-08-30 Ukelson Jacob P Creating and Managing XML Schema Version Transformations
US7774700B2 (en) 2006-06-20 2010-08-10 Oracle International Corporation Partial evaluation of XML queries for program analysis
US20070294678A1 (en) * 2006-06-20 2007-12-20 Anguel Novoselsky Partial evaluation of XML queries for program analysis
US20080033967A1 (en) * 2006-07-18 2008-02-07 Ravi Murthy Semantic aware processing of XML documents
US7870163B2 (en) 2006-09-28 2011-01-11 Oracle International Corporation Implementation of backward compatible XML schema evolution in a relational database system
US20080082560A1 (en) * 2006-09-28 2008-04-03 Oracle International Corporation Implementation of backward compatible XML schema evolution
US20070150494A1 (en) * 2006-12-14 2007-06-28 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
US8606799B2 (en) 2006-12-28 2013-12-10 Sap Ag Software and method for utilizing a generic database query
US8959117B2 (en) 2006-12-28 2015-02-17 Sap Se System and method utilizing a generic update module with recursive calls
US7730056B2 (en) * 2006-12-28 2010-06-01 Sap Ag Software and method for utilizing a common database layout
US20080162415A1 (en) * 2006-12-28 2008-07-03 Sap Ag Software and method for utilizing a common database layout
US20080235260A1 (en) * 2007-03-23 2008-09-25 International Business Machines Corporation Scalable algorithms for mapping-based xml transformation
US20080243916A1 (en) * 2007-03-26 2008-10-02 Oracle International Corporation Automatically determining a database representation for an abstract datatype
US7860899B2 (en) 2007-03-26 2010-12-28 Oracle International Corporation Automatically determining a database representation for an abstract datatype
US8078647B2 (en) * 2007-09-27 2011-12-13 Nec (China) Co., Ltd. Ontology data import/export method and apparatus
US20090112903A1 (en) * 2007-09-27 2009-04-30 Nec (China) Co., Ltd Ontology data import/export method and apparatus
US8401993B2 (en) 2009-09-14 2013-03-19 International Business Machines Corporation Analytics integration server within a comprehensive framework for composing and executing analytics applications in business level languages
US10127299B2 (en) * 2009-09-14 2018-11-13 International Business Machines Corporation Analytics information directories within a comprehensive framework for composing and executing analytics applications in business level languages
US10242406B2 (en) 2009-09-14 2019-03-26 International Business Machines Corporation Analytics integration workbench within a comprehensive framework for composing and executing analytics applications in business level languages
US20110066590A1 (en) * 2009-09-14 2011-03-17 International Business Machines Corporation Analytics integration workbench within a comprehensive framework for composing and executing analytics applications in business level languages
US20110066457A1 (en) * 2009-09-14 2011-03-17 International Business Machines Corporation Analytics integration server within a comprehensive framework for composing and executing analytics applications in business level languages
US20110066589A1 (en) * 2009-09-14 2011-03-17 International Business Machines Corporation Analytics information directories within a comprehensive framework for composing and executing analytics applications in business level languages
US8655830B2 (en) 2009-10-06 2014-02-18 Johnson Controls Technology Company Systems and methods for reporting a cause of an event or equipment state using causal relationship models in a building management system
US9475359B2 (en) 2009-10-06 2016-10-25 Johnson Controls Technology Company Systems and methods for displaying a hierarchical set of building management system information
US8635182B2 (en) 2009-10-06 2014-01-21 Johnson Controls Technology Company Systems and methods for reporting a cause of an event or equipment state using causal relationship models in a building management system
US20110088000A1 (en) * 2009-10-06 2011-04-14 Johnson Controls Technology Company Systems and methods for displaying a hierarchical set of building management system information
US20110087650A1 (en) * 2009-10-06 2011-04-14 Johnson Controls Technology Company Creation and use of causal relationship models in building management systems and applications
US20110137853A1 (en) * 2009-10-06 2011-06-09 Johnson Controls Technology Company Systems and methods for reporting a cause of an event or equipment state using causal relationship models in a building management system
US9189527B2 (en) 2010-07-07 2015-11-17 Johnson Controls Technology Company Systems and methods for facilitating communication between a plurality of building automation subsystems
US9116978B2 (en) 2010-07-07 2015-08-25 Johnson Controls Technology Company Query engine for building management systems
US8516016B2 (en) 2010-07-07 2013-08-20 Johnson Controls Technology Company Systems and methods for facilitating communication between a plurality of building automation subsystems
US8682921B2 (en) 2010-07-07 2014-03-25 Johnson Controls Technology Company Query engine for building management systems
US20120066661A1 (en) * 2010-09-09 2012-03-15 International Business Machines Corporation Verifying programming artifacts generated from ontology artifacts or models
US8719770B2 (en) * 2010-09-09 2014-05-06 International Business Machines Corporation Verifying programming artifacts generated from ontology artifacts or models
US20130179772A1 (en) * 2011-07-22 2013-07-11 International Business Machines Corporation Supporting generation of transformation rule
US9396175B2 (en) * 2011-07-22 2016-07-19 International Business Machines Corporation Supporting generation of transformation rule
US9400771B2 (en) * 2011-07-22 2016-07-26 International Business Machines Corporation Supporting generation of transformation rule
US20130185627A1 (en) * 2011-07-22 2013-07-18 International Business Machines Corporation Supporting generation of transformation rule
USRE47594E1 (en) * 2011-09-30 2019-09-03 Palantir Technologies Inc. Visual data importer
US20160248888A1 (en) * 2012-09-17 2016-08-25 Exaptive, Inc. Schema-independent data modeling apparatus and method
US10965785B2 (en) * 2012-09-17 2021-03-30 Exaptive, Inc. Language-agnostic graph-based combinatorial application framework
US10706047B2 (en) * 2012-10-22 2020-07-07 Sap Se Boolean content search
US9400826B2 (en) * 2013-06-25 2016-07-26 Outside Intelligence, Inc. Method and system for aggregate content modeling
US20140379761A1 (en) * 2013-06-25 2014-12-25 Outside Intelligence, Inc. Method and system for aggregate content modeling
US10585862B2 (en) 2014-02-28 2020-03-10 Red Hat, Inc. Efficient data migration with reversible database schema modification
WO2022084745A1 (en) * 2020-10-23 2022-04-28 Privacy Analytics Inc. System and method for intermediary mapping and de-identification of non-standard datasets
US11782956B2 (en) 2020-10-23 2023-10-10 Privacy Analytics Inc. System and method for intermediary mapping and de-identification of non-standard datasets

Also Published As

Publication number Publication date
US20030179228A1 (en) 2003-09-25
US20060167946A1 (en) 2006-07-27
US7962503B2 (en) 2011-06-14
US20030163597A1 (en) 2003-08-28
US20080313232A1 (en) 2008-12-18
US7099885B2 (en) 2006-08-29
US7533124B2 (en) 2009-05-12
US20060156253A1 (en) 2006-07-13
US20090077051A1 (en) 2009-03-19
US8060531B2 (en) 2011-11-15
US7093200B2 (en) 2006-08-15
EP1260916A3 (en) 2005-06-15
EP1260916A2 (en) 2002-11-27

Similar Documents

Publication Publication Date Title
US20040216030A1 (en) Method and system for deriving a transformation by referring schema to a central model
US7930293B2 (en) Run-time architecture for enterprise integration with transformation generation
US7877421B2 (en) Method and system for mapping enterprise data assets to a semantic information model
US7921098B2 (en) Data query and location through a central ontology model
Chen et al. An overview of the object protocol model (OPM) and the OPM data management tools
US5974407A (en) Method and apparatus for implementing a hierarchical database management system (HDBMS) using a relational database management system (RDBMS) as the implementing apparatus
US8412746B2 (en) Method and system for federated querying of data sources
US20020059566A1 (en) Uni-level description of computer information and transformation of computer information between representation schemes
US20030018666A1 (en) Interoperable retrieval and deposit using annotated schema to interface between industrial document specification languages
EP1327941A2 (en) Method and system for deriving a transformation by referring schema to a central model
Korth et al. Query languages for nested relational databases
Privat et al. Guidelines for Modelling with NGSI-LD
Bornhövd et al. A prototype for metadata-based integration of internet sources
Lin et al. Processing OODB queries by O-algebra
Kalinichenko Integration of heterogeneous semistructured data models in the canonical one
Vidal et al. Using Correspondence Assertions for Specifying the Semantics of XML-Based Mediators.
Kwakye A Practical Approach to Merging Multidimensional Data Models
Markowitz et al. Data management for genomic mapping applications: a case study
Parsons et al. Property-based semantic reconciliation of heterogeneous information sources
Wu An approach towards virtual global information systems
Ahmed A data abstraction with inheritance in the process handbook
Gardarin et al. ESQL2-extending SQL2 to support object-oriented ans deductive databases
Al-Khudair et al. Dynamic evolution and consistency of collaborative configurations in object-oriented databases
Jandhyala An automated XPath to SQL transformation methodology for XML data
Beynon-Davies et al. Data Dictionaries

Legal Events

Date Code Title Description
AS Assignment

Owner name: UNICOR SOLUTIONS, INC., DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HELLMAN, ZIV Z.;SCHREIBER, MARCEL ZVI;YUVAL, TOM Y.;REEL/FRAME:012986/0677;SIGNING DATES FROM 20020424 TO 20020507

AS Assignment

Owner name: 2006 TRIDENT COMPANY,MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:UNICORN SOLUTIONS, INC.;REEL/FRAME:018012/0908

Effective date: 20060505

Owner name: 2006 TRIDENT COMPANY, MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:UNICORN SOLUTIONS, INC.;REEL/FRAME:018012/0908

Effective date: 20060505

AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION,NEW YO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:2006 TRIDENT COMPANY, INC.;REEL/FRAME:018627/0913

Effective date: 20061117

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:2006 TRIDENT COMPANY, INC.;REEL/FRAME:018627/0913

Effective date: 20061117

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION