U.S. patent application number 10/159516 was filed with the patent office on 2003-05-29 for data query and location through a central ontology model.
Invention is credited to Edelstein, Joseph, Marchant, Hayden, Meir, Rannen, Schreiber, Marcel Zvi.
Application Number | 20030101170 10/159516 |
Document ID | / |
Family ID | 46280691 |
Filed Date | 2003-05-29 |
United States Patent
Application |
20030101170 |
Kind Code |
A1 |
Edelstein, Joseph ; et
al. |
May 29, 2003 |
Data query and location through a central ontology model
Abstract
A data query system including a first storage medium including a
data schema having a data schema query language associated
therewith, a second storage medium including an ontology model
including classes and properties, the ontology model having an
ontology query language associated therewith, wherein constructs of
the database schema are mapped to corresponding classes, properties
or compositions of properties of the ontology model, and an
ontology query processor generating a query expressed in the data
schema query language corresponding to a specified query expressed
in the ontology query language. A method is also described and
claimed.
Inventors: |
Edelstein, Joseph;
(Jerusalem, IL) ; Marchant, Hayden; (Ramat Beit
Shemesh, IL) ; Meir, Rannen; (Jerusalem, IL) ;
Schreiber, Marcel Zvi; (Jerusalem, IL) |
Correspondence
Address: |
James C. Scheller, Jr.
BLAKELY, SOKOLOFF, TAYLOR & ZAFMAN LLP
Seventh Floor
12400 Wilshire Boulevard
Los Angeles
CA
90025-1026
US
|
Family ID: |
46280691 |
Appl. No.: |
10/159516 |
Filed: |
May 31, 2002 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10159516 |
May 31, 2002 |
|
|
|
10104785 |
Mar 22, 2002 |
|
|
|
10104785 |
Mar 22, 2002 |
|
|
|
10053045 |
Jan 15, 2002 |
|
|
|
10053045 |
Jan 15, 2002 |
|
|
|
09904457 |
Jul 6, 2001 |
|
|
|
09904457 |
Jul 6, 2001 |
|
|
|
09866101 |
May 25, 2001 |
|
|
|
Current U.S.
Class: |
1/1 ;
707/999.003; 707/999.1; 707/E17.006; 707/E17.032; 707/E17.058 |
Current CPC
Class: |
G06F 16/2452 20190101;
G06F 16/25 20190101; Y10S 707/99944 20130101; Y10S 707/99942
20130101; Y10S 707/99948 20130101; Y10S 707/99943 20130101; Y10S
707/99945 20130101 |
Class at
Publication: |
707/3 ;
707/100 |
International
Class: |
G06F 007/00 |
Claims
What is claimed is:
1. A data query system comprising: a first storage medium including
a data schema having a data schema query language associated
therewith; a second storage medium including an ontology model
including classes and properties, the ontology model having an
ontology query language associated therewith, wherein constructs of
the data schema are mapped to corresponding classes, properties or
compositions of properties of the ontology model; and an ontology
query processor generating a query expressed in the data schema
query language corresponding to a specified query expressed in the
ontology query language.
2. The data query system of claim 1 wherein said second storage
medium is the same as said first storage medium.
3. The data query system of claim 1 wherein said second storage
medium is different from said first storage medium.
4. The data query system of claim 1 wherein said first storage
medium also provides at least one data source conforming to the
data schema, and further comprising a database query processor
executing the query expressed in the data schema query language on
the at least one data source.
5. The data query system of claim 1 wherein the specified query
expressed in the ontology query language includes a clause
indicating at least one subject class to which a query applies.
6. The data query system of claim 5 wherein the specified query
expressed in the ontology query language includes at least one
property or composition of properties defined on the at least one
subject class, values of which are to be displayed.
7. The data query system of claim 6 wherein at least one of the at
least one property or composition of properties defined on the at
least one subject class, are inherited from at least one property
or composition of properties defined on a superclass of the subject
class.
8. The data query system of claim 5 wherein the specified query
expressed in the ontology query language includes at least one
condition that must be satisfied by at least one value of a
property or composition of properties defined on the at least one
subject class.
9. The data query system of claim 8 wherein the property or
composition of properties defined on the at least one subject
class, is inherited from a property or composition of properties
defined on a superclass of the subject class.
10. The data query system of claim 1 further comprising an ontology
query builder generating a query expressed in the ontology query
language.
11. The data query system of claim 10 wherein said ontology query
builder enables a user to specify at least one subject class to
which the query applies.
12. The data query system of claim 11 wherein said query builder
enables a user to specify at least one property or composition of
properties defined on the at least one subject class, values of
which are to be displayed.
13. The data query system of claim 12 wherein at least one of the
at least one property or composition of properties defined on the
at least one subject class, are inherited from at least one
property or composition of properties defined on a superclass of
the subject class.
14. The data query system of claim 11 wherein said query builder
enables a user to specify at least one condition that must be
satisfied by at least one value of a property or composition of
properties defined on the at least one subject class.
15. The data query system of claim 14 wherein the property or
composition of properties defined on the at least one subject
class, is inherited from a property or composition of properties
defined on a superclass of the subject class.
16. The data query system of claim 1 wherein the data schema is a
relational database schema, the constructs of which are tables and
fields, and wherein the data schema query language is SQL.
17. The data query system of claim 1 wherein the data schema is an
XML schema, the constructs of which are complex types, elements and
attributes, and wherein the data schema query language is
XQuery.
18. The data query system of claim 1 wherein the data schema is a
COBOL Copy Book, the constructs of which are group items and
elementary items.
19. The data query system of claim 1 wherein the data schema is an
entity-relationship model.
20. The data query system of claim 1 further comprising a display
processor generating a visual display of the query expressed in the
data schema query language.
21. The data query system of claim 20 wherein the visual display
includes a display of the query expressed in the ontology query
language.
22. The data query system of claim 1 further comprising an
additional storage medium including an additional data schema
having an additional data schema query language associated
therewith, wherein constructs of the additional data schema are
also mapped to corresponding classes, properties or compositions of
properties of the ontology model, and wherein said ontology query
processor also generates a query expressed in the additional data
schema query language corresponding to the specified query
expressed in the ontology query language.
23. The data query system of claim 22 wherein said additional
storage medium is the same as said first storage medium.
24. The data query system of claim 22 wherein said additional
storage medium as different from said first storage medium.
25. The data query system of claim 22 wherein the additional data
schema is the same as the data schema, and wherein the additional
data schema query language is the same as the data schema query
language.
26. The data query system of claim 22 wherein the additional data
schema is different from the data schema, and wherein the
additional data schema query language is different from the data
schema query language.
27. The data query system of claim 26 wherein the data schema is a
relational database schema and wherein the additional data schema
is an XML schema.
28. A method for data query comprising: providing a data schema
having a data schema query language associated therewith; providing
an ontology model including classes and properties, the ontology
model having an ontology query language associated therewith,
wherein constructs of the data schema are mapped to corresponding
classes, properties or compositions of properties of the ontology
model; providing a query expressed in the ontology language; and
generating a query expressed in the data schema query language
corresponding to the query expressed in the ontology query
language.
29. The method of claim 28 further comprising: providing at least
one data source conforming to the data schema; and executing the
query expressed in the data schema language on the at least one
data source.
30. The method of claim 28 wherein the query expressed in the
ontology query language includes a clause indicating at least one
subject class to which the query applies.
31. The method of claim 28 wherein the query expressed in the
ontology language includes at least one property or composition of
properties defined on the at least one subject class, values of
which are to be displayed.
32. The method of claim 31 wherein at least one of the at least one
property or composition of properties defined on the at least one
subject class, are inherited from at least one property or
composition of properties defined on a superclass of the subject
class.
33. The method of claim 28 wherein the query expressed in the
ontology language includes at least one condition that must be
satisfied by at least one value of a property or composition of
properties defined on the at least one subject class.
34. The method of claim 33 wherein the property or composition of
properties defined on the at least one subject class, is inherited
from a property or composition of properties defined on a
superclass of the subject class.
35. The method of claim 28 further comprising generating a query
expressed in the ontology language.
36. The method of claim 35 wherein said generating a query
comprises specifying at least one subject class to which a query
applies.
37. The method of claim 36 wherein said generating a query
comprises specifying at least one property or composition of
properties defined on the at least one subject class, values of
which are to be displayed.
38. The method of claim 37 wherein at least one of the at least one
property or composition of properties defined on the at least one
subject class, are inherited from at least one property or
composition of properties defined on a superclass of the subject
class.
39. The method of claim 36 wherein said generating a query
comprises specifying at least one condition that must be satisfied
by at least one value of a property or composition of properties
defined on the at least one subject class.
40. The method of claim 39 wherein the property or composition of
properties defined on the at least one subject class, is inherited
from a property or composition of properties defined on a
superclass of the subject class
41. The method of claim 28 wherein the data schema is a relational
database schema, the constructs of which are tables and fields, and
wherein the data schema query language is SQL.
42. The method of claim 28 wherein the data schema is an XML
schema, the constructs of which are complex types, elements and
attributes, and wherein the data schema query language is
XQuery.
43. The method of claim 28 wherein the data schema is a COBOL Copy
Book, the constructs of which are group items and elementary
items.
44. The method of claim 28 wherein the data schema is an
entity-relationship model.
45. The method of claim 28 further comprising generating a visual
display of the query expressed in the data schema query
language.
46. The method of claim 45 wherein the visual display includes a
display of the query expressed in the ontology query language.
47. The method of claim 28 further comprising; providing an
additional data schema having an additional data schema query
language associated therewith, wherein constructs of the additional
data schema are also mapped to corresponding classes, properties or
compositions of properties of the ontology model; and generating a
query expressed in the additional data schema query language
corresponding to the query expressed in the ontology query
language.
48. The method of claim 47 wherein the additional data schema is
the same as the data schema, and wherein the additional data schema
query language is the same as the data schema query language.
49. The method of claim 47 wherein the additional data schema is
different from the data schema, and wherein the additional data
schema query language is different from the data schema query
language.
50. The method of claim 47 wherein the data schema is a relational
database schema and wherein the additional data schema is an XML
schema.
51. A data locator system comprising: at least one first storage
medium including at least one data schema; a second storage medium
including an ontology model including classes and properties,
wherein constructs of the at least one data schema are mapped to
corresponding classes, properties or compositions of properties of
the ontology model; and a data locator identifying constructs of
the at least one data schema corresponding to specific classes or
properties of the ontology model.
52. The data locator system of claim 51 wherein said second storage
medium is the same as said first storage medium.
53. The data locator system of claim 51 wherein said second storage
medium is different from said first storage medium.
54. The data locator system of claim 51 wherein said data locator
identifies constructs of the at least one data schema corresponding
to values of specific properties of the ontology model.
55. The data locator system of claim 54 wherein said data locator
also identifies formats according to which the values of the
specific properties are represented.
56. The data locator system of claim 51 wherein said at least one
first storage medium comprises at least one data source conforming
to the at least one data schema, and wherein said data locator also
identifies, for each identified construct, data sources that
contain data for the identified construct.
57. The data locator system of claim 51 wherein said data locator
indicates classes and properties of the ontology model that
correspond to constructs of the data schema.
58. The data locator system of claim 51 wherein at least one of the
at least one data schema is a relational database schema, the
constructs of which are tables and fields.
59. The data locator system of claim 58 wherein at least one of the
at least one data schema is an XML schema, the constructs of which
are complex types, elements and attributes.
60. The data locator system of claim 58 wherein at least one of the
at least one data schema is a COBOL Copy Book, the constructs of
which are group items and elementary items.
61. The data locator system of claim 58 wherein at least one of the
at least one data schema is an entity relationship model.
62. The data locator system of claim 51 wherein at least one of the
at least one data schema is an XML schema, the constructs of which
are complex types, elements and attributes.
63. The data locator system of claim 62 wherein at least one of the
at least one data schema is a COBOL Copy Book, the constructs of
which are group items and elementary items.
64. The data locator system of claim 62 wherein at least one of the
at least one data schema is an entity relationship model.
65. The data locator system of claim 51 wherein at least one of the
at least one data schema is a COBOL Copy Book, the constructs of
which are group items and elementary items.
66. The data locator system of claim 65 wherein at least one of the
at least one data schema is an entity relationship model.
67. The data locator system of claim 51 wherein at least one of the
at least one data schema is an entity-relationship model.
68. The data locator system of claim 51 further comprising a
display processor generating a visual display of constructs of the
at least one data schema identified by said data locator.
69. The data locator system of claim 68 wherein said at least one
first storage medium comprises at least one data source conforming
to the at least one data schema, and wherein said data locator also
identifies, for each identified construct, data sources that
contain data for the identified construct, and wherein the visual
display includes a display of the data sources identified by said
data locator.
70. The data locator system of claim 68 wherein said display
processor generates an HTML page for the visual display.
71. The data locator system of claim 51 further comprising a report
generator generating at least one report based on constructs of the
at least one data schema identified by said data locator.
72. The data locator system of claim 70 wherein said report
generator generates a list of classes and properties of the
ontology model to which more than a prescribed number of constructs
of the at least one data schema correspond.
73. A method for data location comprising: providing at least one
data schema; providing an ontology model including classes and
properties, wherein constructs of the at least one data schema are
mapped to corresponding classes, properties or compositions of
properties of the ontology model; and identifying constructs of the
at least one data schema corresponding to specific classes or
properties of the ontology model.
74. The method of claim 73 wherein said identifying constructs
identifies constructs of the at least one data schema corresponding
to values of specific properties of the ontology model.
75. The method of claim 73 wherein said identifying constructs also
identifies formats according to which the values of the specific
properties are represented.
76. The method of claim 73 further comprising providing at least
one data source conforming to said at least one data schema, and
wherein said identifying constructs comprises identifying, for each
identified construct, data sources that contain data for the
identified construct.
77. The method of claim 73 further comprising indicating classes
and properties of the ontology model that correspond to constructs
of the data schema.
78. The method of claim 73 wherein at least one of the at least one
data schema is a relational database schema, the constructs of
which are tables and fields.
79. The method of claim 78 wherein at least one of the at least one
data schema is an XML schema, the constructs of which are complex
types, elements and attributes.
80. The method of claim 78 wherein at least one of the at least one
data schema is a COBOL Copy Book, the constructs of which are group
items and elementary items.
81. The method of claim 78 wherein at least one of the at least one
data schema is an entity relationship model.
82. The method of claim 73 wherein at least one of the at least one
data schema is an XML schema, the constructs of which are complex
types, elements and attributes.
83. The method of claim 82 wherein at least one of the at least one
data schema is a COBOL Copy Book, the constructs of which are group
items and elementary items.
84. The method of claim 82 wherein at least one of the at least one
data schema is an entity relationship model.
85. The method of claim 73 wherein at least one of the at least one
data schema is a COBOL Copy Book, the constructs of which are group
items and elementary items.
86. The method of claim 85 wherein at least one of the at least one
data schema is an entity relationship model.
87. The method of claim 73 wherein at least one of the at least one
data schema is an entity-relationship model.
88. The method of claim 73 further comprising generating a visual
display of constructs of the at least one data schema identified by
said identifying constructs.
89. The method of claim 88 further comprising providing at least
one data source conforming to said at least one data schema, and
wherein said identifying constructs comprises identifying, for each
identified construct, data sources that contain data for the
identified construct, and wherein the visual display includes a
display of the data sources identified by said identifying
constructs.
90. The method of claim 88 wherein said generating a visual display
generates an HTML page for the visual display.
91. The method of claim 73 further comprising generating at least
one report based on constructs of the at least one data schema
identified by said data locator.
92. The method of claim 91 wherein said generating generates a list
of classes and properties of the ontology model to which more than
a prescribed number of constructs of the at least one data schema
correspond.
93. An ontology query system, comprising: a storage medium
providing an ontology model including classes and properties; and a
query builder generating an ontology query, the ontology query
including a first clause indicating at least one subject class to
which the query applies, and a second clause indicating at least
one property or composition of properties defined on the at least
one subject class, values of which are to be displayed.
94. The ontology query system of claim 93 wherein the ontology
query includes a third clause indicating at least one condition
that must be satisfied by values of properties or compositions of
properties defined on the at least one subject class.
95. A method for querying ontological data, comprising: providing
an ontology model including classes and properties; and generating
an ontology query, the ontology query including a first clause
indicating at least one subject class to which the query applies,
and a second clause indicating at least one property or composition
of properties defined on the at least one subject class, values of
which are to be displayed.
96. The method of claim 95 wherein the ontology query includes a
third clause indicating at least one condition that must be
satisfied by values of properties or compositions of properties
defined on the at least one subject class.
97. A data descriptor propagation system comprising: at least one
first storage medium including at least one data schema and at
least one data source conforming to the at least one data schema; a
second storage medium including an ontology model including classes
and properties, wherein constructs of the at least one data schema
are mapped to corresponding classes, properties or compositions of
properties of the ontology model; and a data descriptor propagator
associating descriptors with data for data schema constructs in the
at least one data source, corresponding to descriptors associated
with corresponding classes and properties of the ontology
system.
98. The data descriptor propagation system of claim 97 further
comprising an ontology descriptor associating descriptors with
classes and properties of an ontology.
99. The data descriptor propagation system of claim 97 wherein
descriptors are used to specify access privileges to data.
100. The data descriptor propagation system of claim 97 wherein at
least one of the at least one data schema is a relational database
schema, the constructs of which are tables and fields.
101. The data descriptor propagation system of claim 97 wherein at
least one of the at least one data schema is an XML schema, the
constructs of which are complex types, elements and attributes.
102. The data descriptor propagation system of claim 97 wherein at
least one of the at least one data schema is a COBOL Copy Book, the
constructs of which are group items and elementary items.
103. The data descriptor propagation system of claim 97 wherein at
least one of the at least one data schema is an entity-relationship
model.
104. A method for data descriptor propagation comprising: providing
at least one data schema and at least one data source conforming to
the at least one data schema; providing an ontology model including
classes and properties, wherein constructs of the at least one data
schema are mapped to corresponding classes, properties or
compositions of properties of the ontology model; and associating
descriptors with data for data schema constructs in the at least
one data source, corresponding to descriptors associated with
corresponding classes and properties of the ontology system.
105. The method of claim 104 further comprising associating
descriptors with classes and properties of an ontology.
106. The method of claim 104 wherein descriptors are used to
specify access privileges to data.
107. The method of claim 104 wherein at least one of the at least
one data schema is a relational database schema, the constructs of
which are tables and fields.
108. The method of claim 104 wherein at least one of the at least
one data schema is an XML schema, the constructs of which are
complex types, elements and attributes.
109. The method of claim 104 wherein at least one of the at least
one data schema is a COBOL Copy Book, the constructs of which are
group items and elementary items.
110. The method of claim 104 wherein at least one of the at least
one data schema is an entity-relationship model.
111. An ontology modeling system comprising: at least one data
construct for container classes for modeling sets, bags and lists;
at least one data construct for modeling multi-valued properties
whose targets are said container classes; and at least one data
construct for imposing constraints on said multi-valued
properties.
112. The ontology modeling system of claim 111 further comprising
at least one data construct for assigning a minimum number of
elements and a maximum number of elements to said multi-valued
properties.
113. A COBOL mapping system for embedding a COBOL Copy Book
including group items and elementary items into an ontology model
including classes and properties, comprising: at least one data
construct for mapping at least one COBOL group item within a COBOL
Copy Book to at least one class of an ontology model; and at least
one data construct for mapping at least one COBOL elementary items
within the COBOL Copy Book to at least one property or composition
of properties of the ontology model.
114. A method for embedding a COBOL Copy Book including group items
and elementary items into an ontology model including classes and
properties, comprising: mapping at least one COBOL group item
within a COBOL Copy Book to at least one class of an ontology
model; and at least one data construct for mapping at least one
COBOL elementary items within the COBOL Copy Book to at least one
property or composition of properties of the ontology model.
115. A computer readable medium (CRM) containing executable
computer program instructions which, when executed on a processing
system, cause the processing system to perform a method for data
query comprising: providing an ontology model including classes and
properties, the ontology model having an ontology query language
associated therewith, wherein constructs of a data schema having a
data schema query language, associated therewith are mapped to
corresponding classes, properties or compositions of properties of
the ontology model; generating a query expressed in the data schema
query language corresponding to a query expressed in the ontology
query language.
116. The CRM of claim 115, the method further comprising: providing
at least one data source conforming to the data schema; and
executing the query expressed in the data schema language on the at
least one data source.
117. The CRM of claim 115 wherein the query expressed in the
ontology query language includes a clause indicating at least one
subject class to which the query applies.
118. The CRM of claim 115 wherein the query expressed in the
ontology language includes at least one property or composition of
properties defined on the at least one subject class, values of
which are to be displayed.
119. The CRM of claim 118 wherein at least one of the at least one
property or composition of properties defined on the at least one
subject class, are inherited from at least one property or
composition of properties defined on a superclass of the subject
class.
120. The CRM of claim 115 wherein the query expressed in the
ontology language includes at least one condition that must be
satisfied by at least one value of a property or composition of
properties defined on the at least one subject class.
121. The CRM of claim 120 wherein the property or composition of
properties defined on the at least one subject class, is inherited
from a property or composition of properties defined on a
superclass of the subject class.
122. The CRM of claim 28, the method further comprising generating
a query expressed in the ontology language.
123. The CRM of claim 122 wherein said generating a query comprises
specifying at least one subject class to which a query applies.
124. The CRM of claim 123 wherein said generating a query comprises
specifying at least one property or composition of properties
defined on the at least one subject class, values of which are to
be displayed.
125. The CRM of claim 124 wherein at least one of the at least one
property or composition of properties defined on the at least one
subject class, are inherited from at least one property or
composition of properties defined on a superclass of the subject
class.
126. The CRM of claim 123 wherein said generating a query comprises
specifying at least one condition that must be satisfied by at
least one value of a property or composition of properties defined
on the at least one subject class.
127. The CRM of claim 126 wherein the property or composition of
properties defined on the at least one subject class, is inherited
from a property or composition of properties defined on a
superclass of the subject class
128. The CRM of claim 115 wherein the data schema is a relational
database schema, the constructs of which are tables and fields, and
wherein the data schema query language is SQL.
129. The CRM of claim 115 wherein the data schema is an XML schema,
the constructs of which are complex types, elements and attributes,
and wherein the data schema query language is XQuery.
130. The CRM of claim 115 wherein the data schema is a COBOL Copy
Book, the constructs of which are group items and elementary
items.
131. The CRM of claim 115 wherein the data schema is an
entity-relationship model.
132. The CRM of claim 115, the method further comprising generating
a visual display of the query expressed in the data schema query
language.
133. The CRM of claim 132 wherein the visual display includes a
display of the query expressed in the ontology query language.
134. The CRM of claim 115, the method further comprising; providing
an additional data schema having an additional data schema query
language associated therewith, wherein constructs of the additional
data schema are also mapped to corresponding classes, properties or
compositions of properties of the ontology model; and generating a
query expressed in the additional data schema query language
corresponding to the query expressed in the ontology query
language.
135. The CRM of claim 134 wherein the additional data schema is the
same as the data schema, and wherein the additional data schema
query language is the same as the data schema query language.
136. The CRM of claim 134 wherein the additional data schema is
different from the data schema, and wherein the additional data
schema query language is different from the data schema query
language.
137. The CRM of claim 134 wherein the data schema is a relational
database schema and wherein the additional data schema is an XML
schema.
138. A computer readable medium (CRM) containing executable
computer program instructions which, when executed on a processing
system, cause the processing system to perform a method for data
location comprising: providing an ontology model including classes
and properties, wherein constructs of at least one data schema are
mapped to corresponding classes, properties or compositions of
properties of the ontology model; and identifying constructs of the
at least one data schema corresponding to specific classes or
properties of the ontology model.
139. The CRM of claim 138 wherein said identifying constructs
identifies constructs of the at least one data schema corresponding
to values of specific properties of the ontology model.
140. The CRM of claim 138 wherein said identifying constructs also
identifies formats according to which the values of the specific
properties are represented.
141. The CRM of claim 138, the method further comprising providing
at least one data source conforming to said at least one data
schema, and wherein said identifying constructs comprises
identifying, for each identified construct, data sources that
contain data for the identified construct.
142. The CRM of claim 138, the method further comprising indicating
classes and properties of the ontology model that correspond to
constructs of the data schema.
143. The CRM of claim 138 wherein at least one of the at least one
data schema is a relational database schema, the constructs of
which are tables and fields.
144. The CRM of claim 143 wherein at least one of the at least one
data schema is an XML schema, the constructs of which are complex
types, elements and attributes.
145. The CRM of claim 143 wherein at least one of the at least one
data schema is a COBOL Copy Book, the constructs of which are group
items and elementary items.
146. The CRM of claim 143 wherein at least one of the at least one
data schema is an entity relationship model.
147. The CRM of claim 138 wherein at least one of the at least one
data schema is an XML schema, the constructs of which are complex
types, elements and attributes.
148. The CRM of claim 147 wherein at least one of the at least one
data schema is a COBOL Copy Book, the constructs of which are group
items and elementary items.
149. The CRM of claim 147 wherein at least one of the at least one
data schema is an entity relationship model.
150. The CRM of claim 138 wherein at least one of the at least one
data schema is a COBOL Copy Book, the constructs of which are group
items and elementary items.
151. The CRM of claim 150 wherein at least one of the at least one
data schema is an entity relationship model.
152. The CRM of claim 138 wherein at least one of the at least one
data schema is an entity-relationship model.
153. The CRM of claim 138 further comprising generating a visual
display of constructs of the at least one data schema identified by
said identifying constructs.
154. The CRM of claim 153 further comprising providing at least one
data source conforming to said at least one data schema, and
wherein said identifying constructs comprises identifying, for each
identified construct, data sources that contain data for the
identified construct, and wherein the visual display includes a
display of the data sources identified by said identifying
constructs.
155. The CRM of claim 153 wherein said generating a visual display
generates an HTML page for the visual display.
156. The CRM of claim 138 further comprising generating at least
one report based on constructs of the at least one data schema
identified by said data locator.
157. The CRM of claim 156 wherein said generating generates a list
of classes and properties of the ontology model to which more than
a prescribed number of constructs of the at least one data schema
correspond.
158. A computer readable medium (CRM) containing executable
computer program instructions which, when executed on a processing
system, cause the processing system to perform a method for
querying ontological data, comprising: storing an ontology model
including classes and properties; and generating an ontology query,
the ontology query including a first clause indicating at least one
subject class to which the query applies, and a second clause
indicating at least one property or composition of properties
defined on the at least one subject class, values of which are to
be displayed.
159. The CRM of claim 158 wherein the ontology query includes a
third clause indicating at least one condition that must be
satisfied by values of properties or compositions of properties
defined on the at least one subject class.
160. A computer readable medium (CRM) containing executable
computer program instructions which, when executed on a processing
system, cause the processing system to perform a method for data
descriptor propagation comprising: receiving an input from at least
one data source conforming to the at least one data schema;
providing an ontology model including classes and properties,
wherein constructs of the at least one data schema are mapped to
corresponding classes, properties or compositions of properties of
the ontology model; and associating descriptors with data for data
schema constructs in the at least one data source, corresponding to
descriptors associated with corresponding classes and properties of
the ontology system.
161. The CRM of claim 160, the method further comprising
associating descriptors with classes and properties of an
ontology.
162. The CRM of claim 160 wherein descriptors are used to specify
access privileges to data.
163. The CRM of claim 160 wherein at least one of the at least one
data schema is a relational database schema, the constructs of
which are tables and fields.
164. The CRM of claim 160 wherein at least one of the at least one
data schema is an XML schema, the constructs of which are complex
types, elements and attributes.
165. The CRM of claim 160 wherein at least one of the at least one
data schema is a COBOL Copy Book, the constructs of which are group
items and elementary items.
166. The CRM of claim 160 wherein at least one of the at least one
data schema is an entity-relationship model.
Description
CROSS REFERENCES TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of assignee's
pending application U.S. Ser. No. 10/104,785, filed on Mar. 22,
2002, entitled "Run-Time Architecture for Enterprise Integration
with Transformation Generation," which is a continuation-in-part of
application U.S. Ser. No. 10/053,045, filed on Jan. 15, 2002,
entitled "Method and System for Deriving a Transformation by
Referring Schema to a Central Model," which is a
continuation-in-part of assignee's application U.S. Ser. No.
09/904,457 filed on Jul. 6, 2001, entitled "Instance Brower for
Ontology," which is a continuation-in-part of assignee's
application U.S. Ser. No. 09/866,101 filed on May 25, 2001,
entitled "Method and System for Collaborative Ontology
Modeling."
FIELD OF THE INVENTION
[0002] The present invention relates to data processing;
specifically to querying of data sources and locating data within
data sources.
BACKGROUND OF THE INVENTION
[0003] Ontology provides a way to model things that exist. Basic
constructs of an ontology model are classes, properties thereof and
inheritance. Classes are sets, the elements of which are referred
to as instances of the class. For example, a class People is a set
of instances that represent specific people. A property, p, of a
class is a function p: C.fwdarw.D from a class C, referred to as
the source of p, to a class D, referred to as the target of p. The
classes C and D may be the same class of different classes. When it
is important to distinguish between properties defined on different
classes, the notation C.p is used to denote a property, p, defined
on C.
[0004] Properties may be composed, so that if p: C.fwdarw.D and q:
D.fwdarw.E, then the composition qop: C.fwdarw.E has source C and
target E. The composition is denoted by C.p.q.
[0005] A class C is said to be a subclass of D if CD, in which case
D is also said to be a superclass of C. In this case, every
instance of C is also an instance of D, and properties defined on D
are also defined on C by inheritance. For example, a class named
Passengers may be a subclass of a class named People. A property
such as firstName, defined on People is inherited by
Passengers.
[0006] A special class named Being is defined in an ontology model
as a universal class that contains all classes as subclasses
thereof. Properties defined on Being are thus inherited by all
classes in the ontology model.
[0007] Certain properties, referred to as "representations," take
on concrete fundamental alphanumeric values. The significance of
representations is that they are properties one can reason about
using arithmetic, logical and string operators, since their type
corresponds to the types of mathematical expressions and
programming language expressions.
[0008] In order to accommodate and provide values for
representations, a special class Values is preferably created, so
as to include all possible fundamental values a property may have.
In addition, a special class Formats is also created, to include
formats in which instances of Values can be expressed. Formats
include inter alia conventional integer formats, real number
formats, character string formats and date and time forrnats. A
function representation: Values.times.Formats.fwdarw.Alphanum-
erics, converts a value into an alphanumeric string according to a
specific format. For example, if lastName: People.fwdarw.Values,
then representation(person.lastName, titleCase)="Smith" (a
character string), for an instance, person, of People corresponding
to John Smith. Observe that lastName is a representation, and
titleCase is a format.
[0009] Alternatively, various formats can be modeled as properties
on the class Values, or subclasses thereof. With respect to this
alternative model design choice, the last name of John Smith
represented as a character string in title case is denoted
person.lastName.titleCase. Observe that lastName and titleCase are
both representations in this alternative model.
[0010] Applicant's co-pending application U.S. Ser. No. 10/053,045,
filed on Jan. 15, 2002 and entitled "Method and System for Deriving
a Transformation by Referring Schema to a Central Model" describes
mapping data schema, including inter alia relational database
schema and XML schema, into a central ontology model. Basic
constructs of the data schema are mapped to classes, properties and
compositions of properties in the central ontology model. Thus, for
relational database schema, tables are generally mapped to ontology
classes, and fields of tables are generally mapped to ontology
properties or compositions of properties--more specifically, to
properties or compositions of properties with target Values.
Similarly, for XML schema, complex types are generally mapped to
ontology classes, and elements and attributes within complex types
are generally mapped to ontology properties or compositions of
properties.
[0011] Enterprise data systems, especially for large enterprises,
typically include multiple data sources that may be compliant with
different data schemas. Indeed, as a result of several generations
of IT and/or mergers and acquisitions, several databases with
different schemas may contain information on the same functional
area of the business. For example, enterprise employment data may
be stored in relational databases conforming to a first relational
database schema, enterprise accounting data may be stored in
relational databases conforming to a second relational database
schema, enterprise sales forecasts may be stored in relational
databases conforming to a third relational database schema,
enterprise inventory data may be stored in XML documents conforming
to a first XML schema, and enterprise bill of materials data may be
stored in XML documents conforming to a second XML schema. Often
these various data sources may overlap, and it is difficult for a
user to query across the enterprise data sources. For example, a
user may want to know the bills of materials for items that need to
be replenished in inventory based on demand forecasts.
[0012] There is thus a need for a unified querying tool that
enables a user to query across data sources conforming to disparate
data schemas.
[0013] The need for a unified querying tool also arises with one or
multiple data sources, when engineers involved in application
development, enterprise application integration or data warehousing
may not be aware of the precise semantics of a database, and may
therefore be unable to use its data appropriately.
[0014] The need for a unified querying tool also arises when a
single question crosses multiple data sources.
[0015] Another difficulty faced by enterprises is being able to
locate data within multiple data sources. With reference to the
example above, a user may want to locate data sources containing
employee stock option data. Such data may be distributed over
multiple data sources, and may involve joining relational database
tables that conform to different data schema.
[0016] There is thus a need for a data locator tool that enables a
user to specify data of interest, and receive a list of constructs
corresponding to the data of interest, and the various data sources
containing data for such constructs.
[0017] The need for a data locator tool also arises when trying to
locate overlaps, where a single aspect of enterprise information is
stored in multiple locations. Such overlaps signal the potential
for bad data quality, as they generally lead to
inconsistencies.
SUMMARY OF THE INVENTION
[0018] Certain embodiments of the present invention provide a
method and system for unified querying of data sources conforming
to possibly disparate data schemas by use of a central ontology
model into which the data schemas are embedded. In a preferred
embodiment, the present invention uses an ontology query language
for expressing queries about an ontology. Certain embodiments of
the present invention enable a user to ask a question using an
agreed business vocabulary for an ontology, and ensures that this
question is translated accurately into a query on the underlying
data sources.
[0019] Using mappings of the data schemas into the central ontology
model, certain embodiments of the present invention convert a query
referring to the central ontology model into a corresponding query
referring to a data schema that is embedded within the central
ontology model. Thus a user can build a generic query referring to
the central ontology model, and convert it to queries that can be
executed on various data sources. In a preferred embodiment, the
present invention uses a query builder tool for generating queries
referring to an ontology.
[0020] The present invention also provides a method and system for
data location. In a preferred embodiment, a user can select a class
or property from a central ontology model, and locate constructs in
various data schema that correspond to his selection, as well as
locations of data sources that contain data for such
constructs.
[0021] Certain embodiments of the present invention enable a user
to locate overlaps, where a single aspect of enterprise information
is stored in multiple locations. The present invention can be used
to identify ontology constructs that are mapped to too many
different data sources. For example, the present invention can be
used inter alia to highlight constructs that are mapped more than a
given number, n, times.
[0022] There is thus provided in accordance with an embodiment of
the present invention a data query system including a first storage
medium including a data schema having a data schema query language
associated therewith, a second storage medium including an ontology
model including classes and properties, the ontology model having
an ontology query language associated therewith, wherein constructs
of the data schema are mapped to corresponding classes, properties
or compositions of properties of the ontology model, and an
ontology query processor generating a query expressed in the data
schema query language corresponding to a specified query expressed
in the ontology query language.
[0023] There is further provided in accordance with an embodiment
of the present invention a method for data query including
providing a data schema having a data schema query language
associated therewith, providing an ontology model including classes
and properties, the ontology model having an ontology query
language associated therewith, wherein constructs of the data
schema are mapped to corresponding classes, properties or
compositions of properties of the ontology model, providing a query
expressed in the ontology language, and generating a query
expressed in the data schema query language corresponding to the
query expressed in the ontology query language.
[0024] There is yet further provided in accordance with an
embodiment of the present invention a data locator system including
at least one first storage medium including at least one data
schema, a second storage medium including an ontology model
including classes and properties, wherein constructs of the at
least one data schema are mapped to corresponding classes,
properties or compositions of properties of the ontology model, and
a data locator identifying constructs of the at least one data
schema corresponding to specific classes or properties of the
ontology model.
[0025] There is moreover provided in accordance with an embodiment
of the present invention a method for data location including
providing at least one data schema, providing an ontology model
including classes and properties, wherein constructs of the at
least one data schema are mapped to corresponding classes,
properties or compositions of properties of the ontology model, and
identifying constructs of the at least one data schema
corresponding to specific classes or properties of the ontology
model.
[0026] There is additionally provided in accordance with an
embodiment of the present invention an ontology query system,
including a storage medium providing an ontology model including
classes and properties, and a query builder generating an ontology
query, the ontology query including a first clause indicating at
least one subject class to which the query applies, and a second
clause indicating at least one property or composition of
properties defined on the at least one subject class, values of
which are to be displayed.
[0027] There is further provided in accordance with an embodiment
of the present invention a method for querying ontological data,
including providing an ontology model including classes and
properties, and generating an ontology query, the ontology query
including a first clause indicating at least one subject class to
which the query applies, and a second clause indicating at least
one property or composition of properties defined on the at least
one subject class, values of which are to be displayed.
[0028] There is yet further provided in accordance with an
embodiment of the present invention a data descriptor propagation
system including at least one first storage medium including at
least one data schema and at least one data source conforming to
the at least one data schema, a second storage medium including an
ontology model including classes and properties, wherein constructs
of the at least one data schema are mapped to corresponding
classes, properties or compositions of properties of the ontology
model, and a data descriptor propagator associating descriptors
with data for data schema constructs in the at least one data
source, corresponding to descriptors associated with corresponding
classes and properties of the ontology system.
[0029] There is moreover provided in accordance with an embodiment
of the present invention a method for data descriptor propagation
including providing at least one data schema and at least one data
source conforming to the at least one data schema, providing an
ontology model including classes and properties, wherein constructs
of the at least one data schema are mapped to corresponding
classes, properties or compositions of properties of the ontology
model, and associating descriptors with data for data schema
constructs in the at least one data source, corresponding to
descriptors associated with corresponding classes and properties of
the ontology system.
[0030] There is additionally provided in accordance with an
embodiment of the present invention an ontology modeling system
including at least one data construct for container classes for
modeling sets, bags and lists, at least one data construct for
modeling multi-valued properties whose targets are said container
classes, and at least one data construct for imposing constraints
on the multi-valued properties.
[0031] There is further provided in accordance with an embodiment
of the present invention a COBOL mapping system for embedding a
COBOL Copy Book including group items and elementary items into an
ontology model including classes and properties, including at least
one data construct for mapping at least one COBOL group item within
a COBOL Copy Book to at least one class of an ontology model, and
at least one data construct for mapping at least one COBOL
elementary items within the COBOL Copy Book to at least one
property or composition of properties of the ontology model p There
is yet further provided in accordance with an embodiment of the
present invention a method for embedding a COBOL Copy Book
including group items and elementary items into an ontology model
including classes and properties, including mapping at least one
COBOL group item within a COBOL Copy Book to at least one class of
an ontology model, and at least one data construct for mapping at
least one COBOL elementary items within the COBOL Copy Book to at
least one property or composition of properties of the ontology
model.
[0032] Other embodiments of the invention are also described,
including, for example, computer readable medium (or media)
containing executable computer program instructions, which when
executed by a digital processing system, such as a general purpose
computer having at least one microprocessor and memory and a bus,
cause the system to perform one or more methods described herein.
The medium may be a magnetic medium (e.g. a hard disk in a drive)
or an optical medium (e.g. a CD-ROM).
BRIEF DESCRIPTION OF THE DRAWINGS
[0033] The present invention will be more fully understood and
appreciated from the following detailed description, taken in
conjunction with the drawings in which:
[0034] FIG. 1 is a simplified block diagram of a data query system,
in accordance with a preferred embodiment of the present
invention;
[0035] FIG. 2 is a simplified flowchart of a method for querying
data source, in accordance with a preferred embodiment of the
present invention;
[0036] FIG. 3 is an illustration of a user interface for converting
a query expressed in an ontology query language to a corresponding
query expressed in a data schema query language, in accordance with
a preferred embodiment of the present invention;
[0037] FIG. 4 is an illustration of a user interface for generating
a query expressed in an ontology query language, in accordance with
a preferred embodiment of the present invention;
[0038] FIG. 5 is a simplified block diagram of a data locator
system, in accordance with a preferred embodiment of the present
invention;
[0039] FIG. 6 is a simplified flowchart of a method for locating
data, in accordance with a preferred embodiment of the present
invention;
[0040] FIG. 7 is an illustration of a user interface for locating
data within at least one data source, in accordance with a
preferred embodiment of the present invention;
[0041] FIG. 8 is an illustration of a visual display for displaying
data location results, in accordance with a preferred embodiment of
the present invention;
[0042] FIG. 9 is an illustration of ontology model corresponding to
a first example;
[0043] FIG. 10 is an illustration of ontology model corresponding
to a second example;
[0044] FIG. 11 is an illustration of ontology model corresponding
to a third example;
[0045] FIG. 12 is an illustration of ontology model corresponding
to a fourth example;
[0046] FIG. 13 is a commutative diagram illustrating consistency of
multi-valued properties; and
[0047] FIG. 14 is an illustration of ontology model with
multi-valued properties.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
[0048] Certain embodiments of the present invention concern
querying of data sources, and data location within the sources,
through use of a central ontology model. Specifically, certain
embodiments of the present invention use an ontology query language
for expressing queries relating to an ontology, and a query
conversion tool for converting such queries into corresponding
queries relating to data schemas that are embedded within the
ontology. The present invention, in one embodiment, can enable a
user to ask a question using an agreed business vocabulary for an
ontology, and ensures that this question is translated accurately
into a query on the underlying data sources.
[0049] The present invention also uses, in certain embodiments, a
data locator for locating data corresponding to specified classes
and properties of an ontology, within data sources that conform to
data schemas that are embedded within the ontology.
[0050] Reference is now made to FIG. 1, which is a simplified block
diagram of a data query system, in accordance with a preferred
embodiment of the present invention. Shown in FIG. 1 is a modeling
layer 110, which enables a user to generate a central ontology
model into which one or more data schemas can be embedded. While
generating the central ontology model, the user preferably also
maps constructs of the data schemas into corresponding classes,
properties and compositions of properties in the central ontology
model, through use of a mapping layer 120. Modeling and mapping
layers are described in applicant's co-pending application U.S.
Ser. No. 10/053,045, referenced hereinabove, the contents of which
are hereby incorporated by reference.
[0051] FIG. 1 is divided by dashed vertical lines into a left part,
a middle part and a right part. The left part relates to the data
schemas and data sources, and the right part relates to the central
ontology. The middle part relates to an engine that maps items from
the left part to the right part, or vice versa.
[0052] A query later 130 processes a query expressed in an ontology
language and generates a corresponding query expressed in a data
schema language. Together, modules 110, 120 and 130 may reside
within a single computer 140 for local computing, or may be
distributed among a plurality of computers for distributed
computing.
[0053] A query processor 140 is used to execute the query expressed
in the data schema language on one or more data sources. In a
preferred embodiment of the present invention, the query expressed
in a data schema language is generated through an ontology query
builder 150.
[0054] Reference is now made to FIG. 2, which is a simplified
flowchart of a method for querying .data source, in accordance with
a preferred embodiment of the present invention. At step 210 a
central ontology model into which one or more given data schemas
are embedded is generated. At step 220 constructs of the given data
schemas are mapped into classes, properties and compositions of
properties of the central ontology model. At step 230 a query
expressed in an ontology query language is generated. At step 240
the query expressed in the ontology query language is converted to
a query expressed in a data schema language. At step 250 the query
expressed in the data schema language is executed on one or more
data sources.
[0055] Reference is now made to FIG. 3, which is an illustration of
a user interface for converting a query expressed in an ontology
query language to a corresponding query expressed in a data schema
query language, in accordance with a preferred embodiment of the
present invention. Shown in FIG. 3 is a window 300 containing
various panes. An upper left pane 305 displays components of a
project named AirlinesSample. Shown highlighted in pane 305 is a
"Queries" component. A lower left pane 310 displays an ontology
model in a class hierarchical view. Pane 310 indicates that all
classes inherit from a superclass named Being, and that a class
named Person contains a subclass named Passenger, which contains a
further subclass named FrequentFlyer. Shown highlighted in pane 310
is the class Passenger, which is the subject class for queries are
displayed in the right-hand panes.
[0056] Specifically, upper right pane 315 displays a list of
various queries on the class Passenger that already exist. Shown
highlighted in pane 315 is a query named Priests_on_Board. Each
query listed in pane 315 is expressed in an ontology query
language. A pane 320 displays the query highlighted in pane 315 in
the ontology query language. In a preferred embodiment of the
present invention, a query expressed in the ontology query language
includes three clauses. A first clause, designated as SELECT
indicates one or more properties to be displayed. A second clause,
designated as FROM indicates one or more subject class on which the
properties are defined. A third clause, designated as WHERE
indicates one or more conditions satisfied by one or more values of
properties defined on the subject class. The three clauses for the
Priests_on_Board query are displayed in a pane 320. Those skilled
in the art will appreciate that the SELECT, FROM and WHERE clauses
resemble their SQL counterparts. In a preferred embodiment of the
present invention, an ontology query also includes a clause
indicating a database for which the query is intended, as shown in
pane 320.
[0057] A bottom right pane 325 displays a query expressed in a data
schema language, which corresponds to the query displayed in pane
320. Specifically, in FIG. 3 pane 325 displays an SQL query for the
database AIRLINES, which corresponds to the query Priests_on_Board
in pane 320. The system of the present invention preferably
converts the query in pane 320 to the query in pane 325 using the
mapping from the relational database schema AIRLINES into the
ontology model AirlinesSample.
[0058] A pane 330 is used to display system messages regarding the
process of conversion from the query of pane 320 to the query of
pane 325.
[0059] Various buttons are provided in window 300 for user
interaction. Buttons 335, 340, 345, 350 and 355 relate to pane 315
and the list of queries. displayed therein. Button 335 enables a
user to build a new query for the class Passenger. Upon clicking on
button 335, a user interface for building queries is preferably
invoked. Such a user interface is described with respect to FIG. 4
hereinbelow.
[0060] Button 340 enables a user to edit an existing query on the
class Passenger. Button 345 enables a user to delete an existing
query. Button 350 enables a user to update the SQL query displayed
in pane 325 by re-executing the process that generates the SQL
query from the ontology query. A button 355 enables a user to copy
an existing query, for use inter alia in building a new query or
editing an existing query. Finally, a button 360 is provided under
pane 325 for copying a query displayed therein to a clipboard,
preferably for input to a database application that executes the
query on one or more data sources.
[0061] As can be seen in FIG. 3, the ontology language query
[0062] SELECT: Person firstName, Person.lastName,
Passenger.passportNumber
[0063] FROM: Passenger<AirDemo>
[0064] WHERE: Person.lastName="Cohen"
[0065] ON DATABASE: Airlines
[0066] is converts to the SQL query
[0067] SELECT FIRSTNAME, LASTNAME, PASSPORT
[0068] FROM BA_CUSTOMER
[0069] WHERE LASTNAME="Cohen"
[0070] on the database AIRLINES. The table BA_CUSTOMER corresponds
to the ontology class Passenger, and the fields FIRSTNAME, LASTNAME
and PASSPORT of table BA_CUSTOMER correspond respectively to the
properties firstName, lastName and passportNumber of class
Passenger.
[0071] Reference is now made to FIG. 4, which is an illustration of
a user interface for generating a query expressed in an ontology
query language, in accordance with a preferred embodiment of the
present invention. Shown in FIG. 4 is a window 400 used for filling
in the SELECT, FROM and WHERE clauses of a query on an ontology
class. A field 410 is provided to specify a name for the query.
Fields 420, 430 and 440 are provided to enter three clauses of the
query. The entries in these fields correspond to the query
displayed in pane 320 of FIG. 3. Field 450 is provided to specify
one or more databases on which the query is intended to be applied.
In a preferred embodiment, the system of the present invention
converts the query specified in fields 420, 430, 440 to a database
query on the one or more databases specified in field 450. Such a
converted query is displayed in pane 325 of FIG. 3.
[0072] To assist a user in filling in fields 420, 430 and 440, a
lower left pane 460 displays a list of properties defined on the
class Passenger. It is noted that some of these properties, such as
PersonfirstName, are inherited from the superclass Person.
Preferably, a user selects a desired property from the list
displayed in pane 440, and uses an "Insert into Field" button 470
to insert the selected property into field 420 or field 440.
Similarly, a lower right pane 480 displays a list of operators that
can be used within conditions in the "Where:" clause. A user clicks
on an "Insert into Field" button 490 to insert the selected
operator into field 440.
[0073] Reference is now made to FIG. 5, which is a simplified block
diagram of a data locator system, in accordance with a preferred
embodiment of the present invention. FIG. 5 includes modeling layer
110 and mapping layer 120 from the system illustrated in FIG. 1. As
in FIG. 1, FIG. 5 is also divided into three parts by dashed
vertical lines; namely, data schemas and data sources on the left,
central ontology model on the right, and an engine in the middle
that maps items from the left to the right or vice versa.
[0074] FIG. 5 includes a data locator 530, used to identify data
schema constructs corresponding to specified classes and properties
of the ontology, and to identify data sources having data for such
constructs.
[0075] Reference is now made to FIG. 6, which is a simplified
flowchart of a method for locating data, in accordance with a
preferred embodiment of the present invention. FIG. 6 includes
steps 210 and 220 from the flowchart of FIG. 2. At step 630
constructs of the data schemas that map to one or more specified
classes or properties of the central ontology model are identified.
In a preferred embodiment of the present invention, data sources
that have data for such constructs are also identified.
[0076] Reference is now made to FIG. 7, which is an illustration of
a user interface for locating data within at least one data source,
in accordance with a preferred embodiment of the present invention.
Shown in FIG. 7 is a window 700 for locating data corresponding to
selected classes or properties from a central ontology model. An
upper left pane 710 displays components of a project named Order.
Shown highlighted in pane 710 is a "Data Sources" component. A
lower left pane 720 displays a class hierarchical view of an
ontology model. Pane 710 indicates that all classes inherit from a
superclass named Being. Shown highlighted in pane 710 is a class
OrderItem, which is the subject class for data locating.
[0077] An upper right pane 730 displays properties defined on the
class OrderItem. Shown highlighted in pane 730 is a property named
quantity. In a preferred embodiment, the present invention is used
to generate a list of data schema constructs and data sources
having data for these constructs in a lower right pane 740. For
example, pane 740 indicates that Field53 of a relational database
table named Orders, within a relational database schema named
TRACKER, corresponds to a representation of the property quantity,
specifically to a value formatted as a real number in scientific
notation. Moreover a database named GEOSTRAT has data for
Field53.
[0078] An important feature of the present invention is the ability
to locate data schema constructs that correspond to different
representations of a specified property, such as quantity, and to
identify the specific formats in which the data for such constructs
are represented.
[0079] More generally, in a preferred embodiment the present
invention locates data schema constructs that correspond to
properties of a specified property. Consider, for example, a
database table, Employee, mapped to an ontology class Employees,
having a column for a laptop. Such a column Employee.laptop may be
mapped to a composition of ontology properties
Employee.laptop.model.name.noWhiteSpace. Here laptop is a property
of class Employees of type Laptop, model is a property of class
Laptop of type ComputerModel, name is a property of class
ComputerModel of type String, and noWhiteSpace is a property of
class String of type String. It is noted that when the present
invention locates data for an employee's laptop, it points to the
database table column Employee.laptop. It also provides the tail of
the property so as to indicate that the column Employee.laptop
contains data in the form of model.name.noWhiteSpace; i.e., the
name of the laptop model formatted with no white space.
[0080] Finally, a pane 750 is used for displaying system messages
regarding the results of the data locating process.
[0081] The data location features of the present invention may be
used for data descriptor propagation as well. Specifically, a user
may designate certain classes and properties of a central ontology
as being of a certain type, such as "private" or "restricted use,"
and in accordance with a preferred embodiment of the present
invention, such type designation is propagated to data sources
having data in schema constructs that correspond to the designated
classes and properties. Appropriate data in fields of relational
database tables and in elements of XML documents is thereby
designated as being private or of restricted use.
[0082] Reference is now made to FIG. 8, which is an illustration of
a visual display for displaying data location results, in
accordance with a preferred embodiment of the present invention.
Shown in FIG. 8 are relational database schemas and XML schemas
that have constructs corresponding to an ontology class Order and
its properties.
[0083] As can be seen in FIG. 8, a relational database named
Logistics conforming to a relational database schema named Shipping
has a table named PurchaseOrder that corresponds to the ontology
class Order. Furthermore, the table fields PurchaseOrder.id and
PurchaseOrder.totalcost correspond respectively to the ontology
properties Order.id and Order.total, the former being represented
in integer format and the latter being represented in the format of
a string in scientific notation. In addition, the table
PurchaseOrder has a field with a foreign key to a table
PurchaseOrderEntry, the key corresponding to the ontology property
Order.customer.
[0084] As can also be seen in FIG. 8, an XML schema named
orderTargetNS has a complex type named Shipment that corresponds to
the ontology class Order.
[0085] The data location feature of the present invention is useful
in generating location-based reports. Such reports provide strong
analysis capabilities and assist in identifying data duplication,
data redundancy and data inconsistency. For example, such reports
may reveal that a specific database ignores a particular property,
or that multiple data sources relate to the same class with each
one containing data for different subsets of properties of the
class.
[0086] Such reports provide statistics for classes and properties
of an ontology, including inter alia the number of data sources
that are mapped to them, distributed according to source type,
source location, source owner and source update frequency. Such
reports also show the percentage of ontology concepts covered by a
given data source, including a graph and table indicating the
number of properties of a given class mapped to the data source,
and including a list of such properties. Such reports also indicate
the number of instances per ontology class or property, and the
number of the instances having only partial data.
EXAMPLES
[0087] For purposes of clarity and exposition, the workings of the
present invention are described through three examples, followed by
a general description of implementation. The first three examples
hereinbelow correspond to the corresponding first three examples
described in applicant's co-pending application U.S. Ser. No.
10/053,045, referenced hereinabove, the contents of which are
hereby incorporated by reference. The fourth example hereinbelow
corresponds to the seventh example described in applicant's
co-pending application U.S. Ser. No. 10/053,045.
Data Query--A First Example: Schoolchildren
[0088] In a first example, three source tables are given as
follows:
1TABLE I Source Table S.sub.1 for First Example Name
School_Attending Mother_NI_Number
[0089]
2TABLE II Source Table S.sub.2 for First Example NI_Number Name
Region Car_Number
[0090]
3TABLE III Source Table S.sub.3 for First Example Name Location
HeadTeacher
[0091] The underlying ontology is illustrated in FIG. 9. The
mapping of the source schema into the ontology is as follows, where
the symbol o is used to indicate composition of properties.
4TABLE IV Mapping from Source schema to Ontology for First Example
schema Ontology Property Index S.sub.1 Class: Child S.sub.1.Name
Property: Child.name 6 S.sub.1.School_Attending Property:
Child.school.sub.-- 10o9 attending.name S.sub.1.Mother_NI_Number
Property: Child.mother. 4o5 national_insurance_number S.sub.2
Class: Person S.sub.2.NI_Number Property: Person.national.sub.-- 4
insurance_number S.sub.2.Name Property: Person.name 3
S.sub.2.Region Property: Person.region.sub.-- 1 of_residence
S.sub.2.Car_Number Property: Person.car.sub.-- 2
registration_number S.sub.3 Class: School S.sub.3.Name Property:
School.name 10 S.sub.3.Location Property: School.location 12
S.sub.3.HeadTeacher Property: School.headteacher. 3o11
nameheadteacher
[0092] The following ontology language query is used to request a
list of children's names and their mothers' names, for all children
in the database who attend schools in London.
5 SELECT: Child.name, Child.mother.name FROM: Child WHERE:
Child.school_attending.location = "London"
[0093] Using the present invention, the above ontology language
query is converted to the following corresponding SQL query:
6 SELECT S.sub.1.Name, S.sub.2.Name FROM S.sub.1, S.sub.2, S.sub.3
WHERE S.sub.2.NI_Number = S.sub.1.Mother_NI_Number AND S.sub.3.Name
= S.sub.1.School_Attending AND S.sub.3.Location = "London"
Data Query--A Second Example: Employees
[0094] In a second example, four source tables are given as
follows:
7TABLE V Source Table S.sub.1 for Second Example Emp_ID# Name
Department
[0095]
8TABLE VI Source Table S.sub.2 for Second Example Employee_Name
Supervisor Project
[0096]
9TABLE VII Source Table S.sub.3 for Second Example ID#
Room_Assignment Telephone#
[0097]
10TABLE VIII Source Table S.sub.4 for Second Example Department
Budget
[0098] The underlying ontology is illustrated in FIG. 10. The
mapping of the source schema into the ontology is as follows:
11TABLE IX Mapping from Source schema to Ontology for Second
Example Property schema Ontology Index S.sub.1 Class: Employee
S.sub.1.Emp_ID# Property: Employee.ID# 4 S.sub.1.Name Property:
Employee.name 3 S.sub.1.Department Property:
Employee.departmental.sub.-- 8o7 affiliation.code S.sub.2 Class:
Employee S.sub.2.Employee_Name Property: Employee.name 3
S.sub.2.Supervisor Property: Employee.supervisor.name 3o6
S.sub.2.Project Property: Employee.project.sub.-- 5 assignment
S.sub.3 Class: Employee S.sub.3.ID# Property: Employee.ID# 4
S.sub.3.Room_Assignment Property: Employee.room_number 1
S.sub.3.Telephone# Property: Employee.tel# 2 S.sub.4 Class:
Department S.sub.4.Department Property: Department.code 8
S.sub.4.Budget Property: Department.budget.sub.-- 9 amount
[0099] The following ontology language query is used to request a
list of employees' names, departments and supervisors, for all
employees in the database who are assigned to Room 101.
12 SELECT: Employee.name, Employee.department, Employee.supervisor
FROM: Employee WHERE: Employee.room_number = "101"
[0100] Using the present invention, the above ontology language
query is converted to the following corresponding SQL query:
13 SELECT S.sub.1.Name, S.sub.1.Department, S.sub.2.Supervisor FROM
S.sub.1, S.sub.2, S.sub.3 WHERE S.sub.2.Employee_Name =
S.sub.1.Name AND S.sub.3.ID# = S.sub.1.Emp_ID# AND
S.sub.3.Room_Assignment = "101"
Data Query--A Third Example: Airline Flights
[0101] In a third example, two source tables are given as
follows:
14TABLE X Source Table S.sub.1 for Third Example Index APName
Location
[0102]
15TABLE XI Source Table S.sub.2 for Third Example FlightID
FromAirport ToAirport
[0103] The underlying ontology is illustrated in FIG. 11. The
mapping of the source schema into the ontology is as follows:
16TABLE XII Mapping from Source schema to Ontology for Third
Example schema Ontology Property Index S.sub.1 Class: Airport
S.sub.1.Index Property: Airport.index 3 S.sub.1.APName Property:
Airport.name 1 S.sub.1.Location Property: Airport.location 2
S.sub.2 Class: Flight S.sub.2.FlightID Property: Flight.ID# 6
S.sub.2.FromAirport Property: Flight.from_airport.name 1o4
S.sub.2.ToAirport Property: Flight.to_airport.name 1o5
[0104] The following ontology language query is used to request a
list of flight numbers, for all flights from New York to San
Francisco.
17 SELECT: Flight. ID# FROM: Flight WHERE:
Flight.from_airport.location = "New York" AND
Flight.to_airport.location = "San Francisco"
[0105] Using the present invention, the above ontology language
query is converted to the following corresponding SQL query:
18 SELECT S.sub.2.FlightID, FROM S.sub.1 S.sub.11, S.sub.1
S.sub.12, S.sub.2 WHERE S.sub.11.APName = S.sub.2.FromAirport AND
S.sub.12.APName = S.sub.2.ToAirport AND S.sub.11.Location = "New
York" AND S.sub.12.Location = "San Francisco"
Data Location--A Fourth Example: Employees
[0106] In the fourth example, four source tables are given as
follows:
19TABLE XIII Source Table S.sub.1 for Seventh Example ID Group
[0107]
20TABLE XIV Source Table S.sub.2 for Seventh Example ID Email
[0108]
21TABLE XV Source Table S.sub.3 for Seventh Example ID
Email_Address
[0109]
22TABLE XVI Source Table S.sub.4 for Seventh Example ID Unit
[0110] The underlying ontology is illustrated in FIG. 12. The
mapping of the source schema into the ontology is as follows:
23TABLE XVII Mapping from Source schema to Ontology for Seventh
Example schema Ontology Property Index S.sub.1 Class: Employee
S.sub.1.ID Property: Employee.ID# 2 S.sub.1.Group Property:
Employee.department 4 S.sub.2 Class: Employee S.sub.2.ID Property:
Employee.ID# 2 S.sub.2.Email Property: Employee.e-mail 3 S.sub.3
Class: Employee S.sub.3.ID Property: Employee.ID# 2
S.sub.3.Email_Address Property: Employee.e-mail 3 S.sub.4 Class:
Employee S.sub.4.ID Property: Employee.ID# 2 S.sub.4.Unit Property:
Employee.department 4
[0111] For the property Employee, e-mail, the present invention
indicates that this data is located at S.sub.2.Email and
S.sub.4.Email_Address. Similarly, for the property
Employee.department, the present invention indicates that this data
is located at S.sub.1.Group and S.sub.3.Unit.
[0112] Multi-Valued Properties in an Ontolopy
[0113] A multi-valued property is a property that maps an instance
in its source class to more than one instance in its target class.
For example, a property Person.children may map a person from class
Person to more than one child in class Person.
[0114] In order to effectively allow for multi-valued properties in
addition to single-valued properties, provision is made in an
ontology for "container" classes. Generally, container classes are
built from simpler classes using tags for set, list and bag. The
set symbol is used for describing a class comprising subsets of a
class. The list symbol is used for describing a class comprising
ordered subsets of a class; namely, sequences. The bag symbol is
used for describing unordered finite sequences of a class, namely,
subsets that can contain repeated elements. 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. Elements of a sequence s
.epsilon. list[C] are denoted by s[0], s[1], . . .
[0115] In terms of formal mathematics, for a set C, set[C] is
2.sup.C, the power set of C; bag[C] is N.sup.C, where N is the set
of non-negative integers; and list[C] is C.sup.N; more precisely,
the subset of C.sup.N consisting of finite sequences. There are
natural projections
list [C].fwdarw./.phi.bag[C].fwdarw./.PSI.set[C]. (1)
[0116] list[C]bag[C]set[C]. (1)
[0117] Specifically, for a sequence (c[0], c[1], . . . , c[n])
.epsilon. list[C], .phi.(c[0], c[1], . . . , c[n]) is the element
f.epsilon. bag[C] that is the "frequency histogram" defined by
f(c)=#{0.ltoreq.i.ltoreq.n: c[i]=e}; and for f.epsilon. bag[C],
.psi.(f).epsilon. set[C] is the subset of C given by the support of
f, namely, supp(f)={c .epsilon. C: f(c)>0}. It is noted that the
composite mapping .phi.0.psi. maps the sequence (c[0], c[1], . . .
, c[n]) into the set of its elements {c[0], c[1], . . . , c[n]}.
Each projection in Equation (1) removes some structure.
Specifically, .phi. removes order and .psi. removes repetition.
[0118] Using container sets, provision is made for multi-valued
properties. Generally, the target of a multi-valued property is a
container class. For example, a multi-valued property named
children may have a class Person as its source and a container
class set[Person] as its target.
[0119] A single-valued property p: C.fwdarw.D, from a class C to a
class D has natural liftings to set[C], bag[C] and list[C].
Specifically, the lifting to sets, p: set[C].fwdarw.set[D] is
defined by p(S)={p(s): s .epsilon. S} for subsets SC. The lifting
to bags, p: bag[C].fwdarw.bag[D] is defined by 1 p ( f ) : d c p -
1 ( d ) f ( c ) ,
[0120] for f .epsilon. N.sup.C. The lifting to lists, p:
list[C].fwdarw.list[D] is defined by p(s)=pos, for a sequence s
.epsilon. C.sup.N.
[0121] An important feature of these liftings of p is their
consistency with the projections from Equation (1), as illustrated
by the commutative diagrams in FIG. 13.
[0122] Compositions of multi-valued properties is governed by
Equation (1). Specifically, a multi-valued property p with target
bag[C] can be followed by a property q with source set[C] according
to qp=qo.phi.op. Similarly, a multi-valued property p with target
list[C] can be followed by a property q with source bag[C]
according to qp=qo.phi.op, and a multi-valued property p with
target list[C] can be followed by a property q with source set[C]
according to qp=qo.phi.o.psi.op.
[0123] For example, a property totalCost:
bag[Components].fwdarw.Values can be applied to list[Components] by
converting a list to a bag via the projection .phi..
[0124] Familiar algebraic data structures including inter alia
vectors and matrices correspond to lists of pre-determined
length.
[0125] For data models that require the notion of an ordered set of
instances without repetition, such a structures are considered as a
special subset of list[C]; namely, lists without repetition.
[0126] To simplify compositions of properties, in one embodiment of
the present invention special identifications are made to collapse
containers of containers. Specifically, set[set[C]] is identified
as set[C], through the set union. Thus, Person.children.children is
identified as a set of people corresponding to a person's
grandchildren, instead of as a set of sets of people. Similarly,
bag[bag[C]] is identified as bag[C] by adding frequencies, and
list[list[C]] is identified as list[C] by combining a list of lists
into a single list.
[0127] Optionally, set[bag[C]], bag[set[C]], set[list[C]] and
list[set[C] may be identified as set[C] by removing order and
repetition structure through use of the projections .phi. and .psi.
from Equation (1). Similarly, bag[list[C]] and list[bag[C]] may be
identified as bag[C] by removing order structure through use of the
projection .phi. from Equation (1).
[0128] In an alternate embodiment of the present invention,
containers of containers are not collapsed.
[0129] In data models it is often important to indicate minimum and
maximum numbers of elements in the target of a multi-valued
property. For example, a property Person.parents has a maximum of
two elements in its target set. To this end, multi-valued
properties may have min_elements and max_elements as attributes.
Such attributes serve to limit the target of multi-valued
properties to specific subsets of set[C], bag[C] and list[C];
namely, those subsets, bags and lists, respectively, having a
number of elements, n, satisfying
min_elements.ltoreq.n.ltoreq.max_elemen- ts.
[0130] In a preferred embodiment of the present invention,
constraints may be imposed relating single-valued and multi-valued
properties. For example, a constraint
BillOfGoods.totalCost=.SIGMA.BillOfGoods.items[k].cost relates
properties totalCost: BillOfGoods.fwdarw.Values, items:
BillOfGoods.fwdarw.list[Part- s] and cost: Parts.fwdarw.Values.
[0131] Multi-valued properties can be used to model n-ary
relationships within an ontology. For example, a tertiary
relationship RC.sub.1.times.C.sub.2.times.C.sub.3 can be modeled as
a property r: C.sub.1.fwdarw.set[C.sub.2.times.C.sub.3], defined
according to r(c.sub.1)={(C.sub.2, C.sub.3): R(C.sub.1, C.sub.2,
C.sub.3)}. The ability to model relationships enables the present
invention to import data models that support relationships, such as
the entity-relationship data model. Many-to-many relationships can
be imported as multi-valued ontology properties. A reference for
the entity-relationship data model is Garcia-Molina, Ullman,
Jeffrey D. and Widom, Jennifer, "Database Systems: The Complete
Book," Prentice Hall, Upper Saddle River, N.J., 2002.
[0132] In a preferred embodiment of the present invention,
multi-valued properties are used for embedding data schema into an
ontology model, for schema that include constructs that can include
more than one data elements.
[0133] For example, XML complexTypes can include sets of sequences
of XML elements therewithin. Consider the XML schema from Example
Fourteen of applicant's above-referenced co-pending application
U.S. Ser. No. 10/053,045.
[0134] The underlying ontology is illustrated in FIG. 14. Observe
that the XML element "letters" within the XML complexType "storage"
corresponds to the multi-valued property Storage.letters from the
class Storage to the container class set[Letter]. Similarly the XML
elements "articles" and "reviews" within the XML complexType
"storage" correspond to multi-valued properties Storage.articles
and Storage.reviews, respectively, from the class Storage to the
container class set[Document].
[0135] Cobol Copy Books
[0136] The present invention can be used to query COBOL records.
Using COBOL, variables are declared as follows:
24 01 StudentDetails. 02 StudentId PIC 9(7). 02 StudentName. 03
FirstName PIC X(10). 03 MiddleInitial PIC X. 03 Surname PIC X(15).
02 DateofBirth. 03 DayofBirth PIC 99. 03 MonthofBirth PIC 99. 03
YearofBirth PIC 9(4). 02 CourseCode PIC X(4).
[0137] The variable StudentDetails includes group items, emphasized
above in bold, and elementary items. Data can be read or written
from variables provided that the size of the data corresponds to
the declared sizes.
[0138] In the above typing for elementary items, 9 denotes a number
and X denotes an alphanumeric. The notation 9(5) denotes a five
digit non-negative integer. In addition, V is used to denote a
decimal point, and S is used to denote a sign.
[0139] A COBOL Copy Book (CCB) is the metadata for COBOL format
data that is saved to disk. A CCB defines the format of a COBOL
record. The instances of a record defined by a CCB are in binary
format.
[0140] It is noted that the above CCB corresponds to the
following
[0141] XML schema:
[0142] Specifically, a CCB corresponds to a restricted type of XML
schema. Group items in a CCB correspond to complexTypes in an XML
schema, and elementary items in a CCB correspond to elements in an
XML schema.
[0143] Implementation Details
[0144] The present invention overcomes several challenges when
converting queries from the three-clause SELECT-FROM-WHERE ontology
query language to data schema query language. For conversion to
SQL, these include:
[0145] 1. Joining appropriate tables corresponding to one or more
classes in the FROM clause.
[0146] 2. Identifying fields corresponding to one or more
properties in the SELECT clause.
[0147] 3. Converting conditions in the WHERE clause to SQL
format.
[0148] The former two challenges involve the mapping from tables
and fields of relational database schemas into classes and
properties of an ontology model, and can be overcome using
applicant's technology for generating SQL transformations, as
described in applicant's co-pending application U.S. Ser. No.
10/053,045, referenced hereinabove. Specifically, this application
describes generating transformations for populating target data
conforming to a target data schema from source data conforming to a
source data schema. In particular, this application describes how
to express target schema constructs in terms of source schema
constructs. For the case at hand, the target schema constructs are
the properties in the SELECT clause.
[0149] The latter challenge involves converting a logical
expression from ontology format into SQL format, and can be
overcome using Codd's normalization for converting from first order
logic to SQL.
[0150] For conversion of an ontology query to an XQuery, three
similar challenges arise, where complex types correspond to one or
more classes in the FROM clause and elements and attributes
correspond to one or more properties in the SELECT clause. As
above, applicant's co-pending U.S. Ser. No. 10/053,045 describes
generating XSL transformations, which can be used to overcome the
first two challenges.
[0151] The latter challenge involves converting a logical
expression from ontology format to XQuery format.
[0152] 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.
* * * * *