wontomedia 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +9 -5
- data/VERSION.yml +2 -2
- data/app/controllers/admin_controller.rb +34 -11
- data/app/controllers/connections_controller.rb +8 -2
- data/app/controllers/items_controller.rb +213 -68
- data/app/helpers/format_helper.rb +22 -1
- data/app/helpers/items_helper.rb +43 -0
- data/app/models/connection.rb +128 -100
- data/app/models/item.rb +96 -0
- data/app/views/connections/_spo_select_controls.html.erb +65 -31
- data/app/views/connections/edit.html.erb +7 -2
- data/app/views/connections/index.html.erb +11 -4
- data/app/views/connections/show.html.erb +13 -5
- data/app/views/items/_class_select.html.erb +41 -0
- data/app/views/items/_content_examples.html.erb +21 -18
- data/app/views/items/_core_tasks.html.erb +40 -5
- data/app/views/items/_form_fields.html.erb +4 -4
- data/app/views/items/_inline_item_add_form.html.erb +48 -0
- data/app/views/items/_inline_scalar_add_form.html.erb +36 -0
- data/app/views/items/_most_populous_classes.html.erb +42 -0
- data/app/views/items/_type_select.html.erb +28 -26
- data/app/views/items/edit.html.erb +8 -2
- data/app/views/items/index.html.erb +5 -1
- data/app/views/items/new.html.erb +69 -54
- data/app/views/items/newpop.html.erb +18 -3
- data/app/views/items/show.html.erb +110 -7
- data/app/views/layouts/application.html.erb +2 -2
- data/app/views/layouts/base.html.erb +4 -2
- data/app/views/layouts/home.html.erb +2 -2
- data/assets/wontomedia-sample.rb +2 -0
- data/config/asset_packages.yml +1 -0
- data/config/cucumber.yml +11 -13
- data/db/fixtures/connections.yml +85 -4
- data/db/fixtures/items.yml +140 -8
- data/db/migrate/20100315135952_provide_scalar_objects.rb +32 -0
- data/db/migrate/20100321042343_add_timestamp_columns.rb +33 -0
- data/db/schema.rb +17 -11
- data/default-custom/app/views/items/home.html.erb +1 -1
- data/default-custom/public/stylesheets/wm.css +21 -4
- data/lib/helpers/connection_helper.rb +84 -1
- data/lib/helpers/item_helper.rb +16 -3
- data/lib/tasks/cucumber.rake +0 -2
- data/public/images/transparent_ltblue_background.png +0 -0
- data/public/images/{alert_background.png → transparent_white_background.png} +0 -0
- data/public/javascripts/forConnectionsForms.js +182 -41
- data/public/javascripts/forItemsForms.js +40 -5
- data/public/javascripts/forItemsShow.js +27 -0
- data/public/javascripts/itemCreatePopup.js +10 -3
- metadata +13 -5
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
<% content_for :page_body do %>
|
22
22
|
<% if @title_text %>
|
23
|
-
<div id="page-title"
|
23
|
+
<div id="page-title" class="page-title-text">
|
24
24
|
<h1 style="white-space: nowrap;"><%= @title_text -%></h1>
|
25
25
|
</div>
|
26
26
|
<% end %>
|
@@ -49,7 +49,7 @@
|
|
49
49
|
<%= render :partial => "layouts/search_box" %>
|
50
50
|
</div>
|
51
51
|
<div id="page-top-controls"
|
52
|
-
style="position: absolute; top: 0; right:
|
52
|
+
style="position: absolute; top: 0; right: 15.6%;">
|
53
53
|
<%= render :partial => "layouts/master_help" %>
|
54
54
|
<%= render :partial => "layouts/language_select" %>
|
55
55
|
<%= render :partial => "layouts/login_controls" %>
|
@@ -25,7 +25,9 @@
|
|
25
25
|
<head>
|
26
26
|
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
27
27
|
<% if @title_text %>
|
28
|
-
<title><%= @title_text +
|
28
|
+
<title><%= @title_text +
|
29
|
+
(@window_title_addendum.nil? ? '' : @window_title_addendum) +
|
30
|
+
" — " + WontoMedia.site_title -%></title>
|
29
31
|
<% else %>
|
30
32
|
<title><%= WontoMedia.site_title -%></title>
|
31
33
|
<% end %>
|
@@ -89,7 +91,7 @@
|
|
89
91
|
<% end %>
|
90
92
|
<% end %>
|
91
93
|
<%= yield(:last_bottom_page_js) %>
|
92
|
-
<script>
|
94
|
+
<script type="text/javascript">
|
93
95
|
moveAndDisplayDelayedDivs();
|
94
96
|
</script>
|
95
97
|
</body>
|
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
|
21
21
|
<% content_for :page_body do %>
|
22
|
-
<div id="tag-line"
|
22
|
+
<div id="tag-line" class="page-title-text">
|
23
23
|
<h1><%= WontoMedia.site_tagline -%></h1>
|
24
24
|
</div>
|
25
25
|
<div id="float-center-right"
|
@@ -56,7 +56,7 @@
|
|
56
56
|
<%= render :partial => "layouts/login_controls" %>
|
57
57
|
</div>
|
58
58
|
</div>
|
59
|
-
<div id="column-left"
|
59
|
+
<div id="column-left">
|
60
60
|
<%= logo_image %>
|
61
61
|
<%= allpages_alert %>
|
62
62
|
<%= yield( :left_column ) %>
|
data/assets/wontomedia-sample.rb
CHANGED
@@ -21,6 +21,8 @@ require "ostruct"
|
|
21
21
|
WontoMedia = OpenStruct.new({
|
22
22
|
:site_title => "", # last element in page <title>
|
23
23
|
:site_tagline => "", # top of home page
|
24
|
+
# this is optional, if you don't use it, don't define the constant
|
25
|
+
# :site_logo_title => "this is displayed above the logo",
|
24
26
|
|
25
27
|
# change these if you use a local wiki, but will work to use public
|
26
28
|
:help_url_prefix => "http://wiki.wontology.org/wiki/help.php?title=",
|
data/config/asset_packages.yml
CHANGED
data/config/cucumber.yml
CHANGED
@@ -26,19 +26,17 @@
|
|
26
26
|
dynamic_only = "--exclude=static features "
|
27
27
|
%>
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
<%= tags_common + " --tags ~@not_for_selenium" %>
|
41
|
-
--format pretty
|
29
|
+
|
30
|
+
manual:
|
31
|
+
<%= uber_common + dynamic %> <%= tags_common + " --tags ~@not_for_selenium" %> --format pretty
|
32
|
+
|
33
|
+
default:
|
34
|
+
<%= uber_common + dynamic %> <%= tags_common + " " + tags_rake +
|
35
|
+
" --tags ~@not_for_selenium" %> --format pretty features
|
36
|
+
|
37
|
+
selenium:
|
38
|
+
<%= common + dynamic %> <%= tags_common + " " + tags_rake +
|
39
|
+
" --tags ~@not_for_selenium" %> features
|
42
40
|
|
43
41
|
|
44
42
|
# profiles to be used from rake
|
data/db/fixtures/connections.yml
CHANGED
@@ -20,215 +20,296 @@ define_Item_Class:
|
|
20
20
|
subject: Item_Class
|
21
21
|
predicate: sub_class_of
|
22
22
|
obj: Item_Class
|
23
|
+
kind_of_obj: item
|
23
24
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
24
25
|
|
25
26
|
define_Property_Item:
|
26
27
|
subject: Property_Item
|
27
28
|
predicate: sub_class_of
|
28
29
|
obj: Item_Class
|
30
|
+
kind_of_obj: item
|
29
31
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
30
32
|
|
31
33
|
define_Type_Item:
|
32
34
|
subject: Type_Item
|
33
35
|
predicate: sub_class_of
|
34
36
|
obj: Item_Class
|
37
|
+
kind_of_obj: item
|
35
38
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
36
39
|
|
37
40
|
define_String_Value:
|
38
41
|
subject: String_Value
|
39
42
|
predicate: sub_class_of
|
40
43
|
obj: Type_Item
|
44
|
+
kind_of_obj: item
|
41
45
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
42
46
|
|
43
47
|
define_Integer_Value:
|
44
48
|
subject: Integer_Value
|
45
49
|
predicate: sub_class_of
|
46
50
|
obj: Type_Item
|
51
|
+
kind_of_obj: item
|
47
52
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
48
53
|
|
49
54
|
define_Number_Value:
|
50
55
|
subject: Number_Value
|
51
56
|
predicate: sub_class_of
|
52
57
|
obj: Type_Item
|
58
|
+
kind_of_obj: item
|
53
59
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
54
60
|
|
55
61
|
define_Boolean_Value:
|
56
62
|
subject: Boolean_Value
|
57
63
|
predicate: sub_class_of
|
58
64
|
obj: Type_Item
|
65
|
+
kind_of_obj: item
|
59
66
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
60
67
|
|
61
68
|
define_Value_True:
|
62
69
|
subject: Value_True
|
63
70
|
predicate: is_instance_of
|
64
71
|
obj: Boolean_Value
|
72
|
+
kind_of_obj: item
|
65
73
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
66
74
|
|
67
75
|
define_Value_False:
|
68
76
|
subject: Value_False
|
69
77
|
predicate: is_instance_of
|
70
78
|
obj: Boolean_Value
|
79
|
+
kind_of_obj: item
|
71
80
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
72
81
|
|
73
82
|
define_URL_Value:
|
74
83
|
subject: URL_Value
|
75
84
|
predicate: sub_class_of
|
76
85
|
obj: String_Value
|
86
|
+
kind_of_obj: item
|
87
|
+
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
88
|
+
|
89
|
+
define_Value_ItemType_Category:
|
90
|
+
subject: Value_ItemType_Category
|
91
|
+
predicate: is_instance_of
|
92
|
+
obj: ItemType_Item
|
93
|
+
kind_of_obj: item
|
94
|
+
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
95
|
+
|
96
|
+
define_Value_ItemType_Individual:
|
97
|
+
subject: Value_ItemType_Individual
|
98
|
+
predicate: is_instance_of
|
99
|
+
obj: ItemType_Item
|
100
|
+
kind_of_obj: item
|
101
|
+
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
102
|
+
|
103
|
+
define_Value_ItemType_Property:
|
104
|
+
subject: Value_ItemType_Property
|
105
|
+
predicate: is_instance_of
|
106
|
+
obj: ItemType_Item
|
107
|
+
kind_of_obj: item
|
77
108
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
78
109
|
|
79
110
|
set_ordered_class:
|
80
111
|
subject: ordered_relationship
|
81
112
|
predicate: sub_class_of
|
82
113
|
obj: Property_Item
|
114
|
+
kind_of_obj: item
|
83
115
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
84
116
|
|
85
117
|
set_hierarchical_class:
|
86
118
|
subject: hierarchical_relationship
|
87
119
|
predicate: sub_class_of
|
88
120
|
obj: Property_Item
|
121
|
+
kind_of_obj: item
|
89
122
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
90
123
|
|
91
124
|
set_value_class:
|
92
125
|
subject: value_relationship
|
93
126
|
predicate: sub_class_of
|
94
127
|
obj: Property_Item
|
128
|
+
kind_of_obj: item
|
95
129
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
96
130
|
|
97
131
|
set_symmetric_class:
|
98
132
|
subject: symmetric_relationship
|
99
133
|
predicate: sub_class_of
|
100
134
|
obj: Property_Item
|
135
|
+
kind_of_obj: item
|
101
136
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
102
137
|
|
103
138
|
define_sub_property_of:
|
104
139
|
subject: sub_property_of
|
105
140
|
predicate: sub_property_of
|
106
141
|
obj: hierarchical_relationship
|
142
|
+
kind_of_obj: item
|
107
143
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
108
144
|
|
109
145
|
define_sub_class_of:
|
110
146
|
subject: sub_class_of
|
111
147
|
predicate: sub_property_of
|
112
148
|
obj: hierarchical_relationship
|
149
|
+
kind_of_obj: item
|
113
150
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
114
151
|
|
115
152
|
define_is_instance_of:
|
116
153
|
subject: is_instance_of
|
117
154
|
predicate: sub_property_of
|
118
155
|
obj: hierarchical_relationship
|
156
|
+
kind_of_obj: item
|
119
157
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
120
158
|
|
121
159
|
define_inverse_relationship:
|
122
160
|
subject: inverse_relationship
|
123
161
|
predicate: sub_property_of
|
124
162
|
obj: symmetric_relationship
|
163
|
+
kind_of_obj: item
|
125
164
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
126
165
|
|
127
166
|
define_parent_of:
|
128
167
|
subject: parent_of
|
129
168
|
predicate: sub_property_of
|
130
169
|
obj: hierarchical_relationship
|
170
|
+
kind_of_obj: item
|
131
171
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
132
172
|
|
133
173
|
define_child_of:
|
134
174
|
subject: child_of
|
135
175
|
predicate: sub_property_of
|
136
176
|
obj: hierarchical_relationship
|
177
|
+
kind_of_obj: item
|
137
178
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
138
179
|
|
139
180
|
define_parent_to_child_symmetry:
|
140
181
|
subject: parent_of
|
141
182
|
predicate: inverse_relationship
|
142
183
|
obj: child_of
|
184
|
+
kind_of_obj: item
|
143
185
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
144
186
|
|
145
187
|
define_child_to_parent_symmetry:
|
146
188
|
subject: child_of
|
147
189
|
predicate: inverse_relationship
|
148
190
|
obj: parent_of
|
191
|
+
kind_of_obj: item
|
149
192
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
150
193
|
|
151
194
|
define_property_subject_is:
|
152
195
|
subject: property_subject_is
|
153
196
|
predicate: sub_property_of
|
154
|
-
obj:
|
197
|
+
obj: value_relationship
|
198
|
+
kind_of_obj: item
|
155
199
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
156
200
|
|
157
201
|
define_property_object_is:
|
158
202
|
subject: property_object_is
|
159
203
|
predicate: sub_property_of
|
160
|
-
obj:
|
204
|
+
obj: value_relationship
|
205
|
+
kind_of_obj: item
|
161
206
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
162
207
|
|
163
208
|
define_applies_to_class:
|
164
209
|
subject: applies_to_class
|
165
210
|
predicate: sub_property_of
|
166
|
-
obj:
|
211
|
+
obj: value_relationship
|
212
|
+
kind_of_obj: item
|
213
|
+
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
214
|
+
|
215
|
+
define_class_item_type_is:
|
216
|
+
subject: applies_to_class
|
217
|
+
predicate: sub_property_of
|
218
|
+
obj: value_relationship
|
219
|
+
kind_of_obj: item
|
167
220
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
168
221
|
|
169
222
|
define_has_scalar_object:
|
170
223
|
subject: has_scalar_object
|
171
224
|
predicate: sub_property_of
|
172
225
|
obj: value_relationship
|
226
|
+
kind_of_obj: item
|
173
227
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
174
228
|
|
175
229
|
define_has_item_object:
|
176
230
|
subject: has_item_object
|
177
231
|
predicate: sub_property_of
|
178
232
|
obj: value_relationship
|
233
|
+
kind_of_obj: item
|
179
234
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
180
235
|
|
181
236
|
define_max_uses_per_item:
|
182
237
|
subject: max_uses_per_item
|
183
238
|
predicate: sub_property_of
|
184
239
|
obj: value_relationship
|
240
|
+
kind_of_obj: item
|
185
241
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
186
242
|
|
187
243
|
mupi_is_scalar:
|
188
244
|
subject: max_uses_per_item
|
189
245
|
predicate: has_scalar_object
|
190
246
|
obj: Value_True
|
247
|
+
kind_of_obj: item
|
191
248
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
192
249
|
|
193
250
|
define_peer_of:
|
194
251
|
subject: peer_of
|
195
252
|
predicate: sub_property_of
|
196
253
|
obj: symmetric_relationship
|
254
|
+
kind_of_obj: item
|
197
255
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
198
256
|
|
199
257
|
define_one_of:
|
200
258
|
subject: one_of
|
201
259
|
predicate: sub_property_of
|
202
260
|
obj: child_of
|
261
|
+
kind_of_obj: item
|
262
|
+
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
263
|
+
|
264
|
+
define_part_of:
|
265
|
+
subject: part_of
|
266
|
+
predicate: sub_property_of
|
267
|
+
obj: child_of
|
203
268
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
204
269
|
|
205
270
|
define_contains:
|
206
271
|
subject: contains
|
207
272
|
predicate: sub_property_of
|
208
273
|
obj: parent_of
|
274
|
+
kind_of_obj: item
|
275
|
+
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
276
|
+
|
277
|
+
define_part_of_to_contains_symmetry:
|
278
|
+
subject: part_of
|
279
|
+
predicate: inverse_relationship
|
280
|
+
obj: contains
|
281
|
+
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
282
|
+
|
283
|
+
define_contains_to_part_of_symmetry:
|
284
|
+
subject: contains
|
285
|
+
predicate: inverse_relationship
|
286
|
+
obj: part_of
|
209
287
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
210
288
|
|
211
289
|
define_predecessor_to_successor_symmetry:
|
212
290
|
subject: predecessor_of
|
213
291
|
predicate: inverse_relationship
|
214
292
|
obj: successor_of
|
293
|
+
kind_of_obj: item
|
215
294
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
216
295
|
|
217
296
|
define_successor_to_predecessor_symmetry:
|
218
297
|
subject: successor_of
|
219
298
|
predicate: inverse_relationship
|
220
299
|
obj: predecessor_of
|
300
|
+
kind_of_obj: item
|
221
301
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
222
302
|
|
223
303
|
define_predecessor_of:
|
224
304
|
subject: predecessor_of
|
225
305
|
predicate: sub_property_of
|
226
306
|
obj: ordered_relationship
|
307
|
+
kind_of_obj: item
|
227
308
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
228
309
|
|
229
310
|
define_successor_of:
|
230
311
|
subject: successor_of
|
231
312
|
predicate: sub_property_of
|
232
313
|
obj: ordered_relationship
|
314
|
+
kind_of_obj: item
|
233
315
|
flags: <%= Connection::DATA_IS_UNALTERABLE %>
|
234
|
-
|
data/db/fixtures/items.yml
CHANGED
@@ -81,6 +81,20 @@ Type_Item:
|
|
81
81
|
"String_Value" type.)
|
82
82
|
|
83
83
|
|
84
|
+
ItemType_Item:
|
85
|
+
name: ItemType_Item
|
86
|
+
sti_type: CategoryItem
|
87
|
+
flags: <%= Item::DATA_IS_UNALTERABLE %>
|
88
|
+
title: Group of items representing possible Item Types (foundation class)
|
89
|
+
description: >-
|
90
|
+
This category item is part of the representation of the system's
|
91
|
+
basic classification scheme for items (Category, Individual,
|
92
|
+
Property) within the database of connections and items itself.
|
93
|
+
Having items representing the available Item Types allows
|
94
|
+
connections to be created that make statements about the types of
|
95
|
+
items that are acceptable as members of a class.
|
96
|
+
|
97
|
+
|
84
98
|
String_Value:
|
85
99
|
name: String_Value
|
86
100
|
sti_type: CategoryItem
|
@@ -127,6 +141,28 @@ Number_Value:
|
|
127
141
|
figures.
|
128
142
|
|
129
143
|
|
144
|
+
Date_Value:
|
145
|
+
name: Date_Value
|
146
|
+
sti_type: CategoryItem
|
147
|
+
flags: <%= Item::DATA_IS_UNALTERABLE %>
|
148
|
+
title: A Date (optionally with time, scalar type)
|
149
|
+
description: >-
|
150
|
+
This item represents a particular date (and time). It is a
|
151
|
+
relatively free-form field, allowingg a mix of letters, numbers,
|
152
|
+
and punctuation to allow easily human-readable dates to be
|
153
|
+
entered. The date/time can be as accurate as the information you
|
154
|
+
have allows. Depending on the context, it could be as general as
|
155
|
+
a single year or even a century, or it could be a date and time
|
156
|
+
down to the second: "March 24, 2010 at 12:15:22pm (Pacific)".
|
157
|
+
But it cannot be ambiguous. For example, if you spell out the
|
158
|
+
month when entering a birth date, then both "4 January 1955" and
|
159
|
+
"Jan 4, 1955" are acceptable. However, you should not type
|
160
|
+
something like "1/4/55" because of both the month/day ambiguity
|
161
|
+
(difference between U.S. and European common ordering) and because
|
162
|
+
of the century ambiguity (probably 1955, but what if it was
|
163
|
+
1855?).
|
164
|
+
|
165
|
+
|
130
166
|
Boolean_Value:
|
131
167
|
name: Boolean_Value
|
132
168
|
sti_type: CategoryItem
|
@@ -192,6 +228,36 @@ URL_Value:
|
|
192
228
|
the actual web address.
|
193
229
|
|
194
230
|
|
231
|
+
Value_ItemType_Category:
|
232
|
+
name: Value_ItemType_Category
|
233
|
+
sti_type: IndividualItem
|
234
|
+
flags: <%= Item::DATA_IS_UNALTERABLE %>
|
235
|
+
title: Item Type 'Category' (a constant value)
|
236
|
+
description: >-
|
237
|
+
This item represents the "Category" type of system items. See
|
238
|
+
the description of ItemType_Item.
|
239
|
+
|
240
|
+
|
241
|
+
Value_ItemType_Individual:
|
242
|
+
name: Value_ItemType_Individual
|
243
|
+
sti_type: IndividualItem
|
244
|
+
flags: <%= Item::DATA_IS_UNALTERABLE %>
|
245
|
+
title: Item Type 'Individual' (a constant value)
|
246
|
+
description: >-
|
247
|
+
This item represents the "Individual" type of system items. See
|
248
|
+
the description of ItemType_Item.
|
249
|
+
|
250
|
+
|
251
|
+
Value_ItemType_Property:
|
252
|
+
name: Value_ItemType_Property
|
253
|
+
sti_type: IndividualItem
|
254
|
+
flags: <%= Item::DATA_IS_UNALTERABLE %>
|
255
|
+
title: Item Type 'Property' (a constant value)
|
256
|
+
description: >-
|
257
|
+
This item represents the "Property" type of system items. See
|
258
|
+
the description of ItemType_Item.
|
259
|
+
|
260
|
+
|
195
261
|
#### Minimal set of types (predicates) for connections
|
196
262
|
#### this is WontoMedia's native "schema", and represents the minimal
|
197
263
|
#### typing information used by the UI
|
@@ -255,6 +321,35 @@ applies_to_class:
|
|
255
321
|
fill in.
|
256
322
|
|
257
323
|
|
324
|
+
class_item_type_is:
|
325
|
+
name: class_item_type_is
|
326
|
+
sti_type: PropertyItem
|
327
|
+
flags: <%= Item::DATA_IS_UNALTERABLE %>
|
328
|
+
title: Class' Item-Type is (defining relationship)
|
329
|
+
description: >-
|
330
|
+
This property is used to constrain the type (Individual, Category,
|
331
|
+
or Property) of item that is acceptable for items that are to be
|
332
|
+
instances of the subject class. For example, assume that
|
333
|
+
ChemicalElement is a class. It is reasonable to require that all
|
334
|
+
items which are instances of this class be "individual" items,
|
335
|
+
since it is unlikely to be appropriate to represent a single
|
336
|
+
chemical element as a "category". (What would go into the "Carbon
|
337
|
+
category"?) So, the connection "ChemicalElement
|
338
|
+
class_item_type_is Value_ItemType_Individual" states that all of
|
339
|
+
ChemicalElement' instance items are (must be Individual-type
|
340
|
+
items). With this connection in place, the system will only
|
341
|
+
permit the creation of new items whose class is ChemicalElement to
|
342
|
+
be of type Individual. (Note that this connection is provided to
|
343
|
+
be an aid to data entry and editing, and is not enforced as a
|
344
|
+
completely strict prohibition. For example, since class
|
345
|
+
membership is represented by the presence of "is_instance_of"
|
346
|
+
connections, like "Carbon is_instance_of ChemicalElement",
|
347
|
+
explicitly editing the connection that establishes an items class
|
348
|
+
after that item is created will circumvent the class/type checking
|
349
|
+
and can produce a wontology containing contradictory
|
350
|
+
statements&mdash<em>caveat editor</em>.)
|
351
|
+
|
352
|
+
|
258
353
|
has_scalar_object:
|
259
354
|
name: has_scalar_object
|
260
355
|
sti_type: PropertyItem
|
@@ -365,7 +460,43 @@ one_of:
|
|
365
460
|
'Contains' are approximate opposites of each other. However,
|
366
461
|
making a 'One Of' relationship between two items will not
|
367
462
|
automatically cause the symmetric 'Contains' relationship to be
|
368
|
-
created.
|
463
|
+
created/assumed.
|
464
|
+
|
465
|
+
|
466
|
+
part_of:
|
467
|
+
name: part_of
|
468
|
+
sti_type: PropertyItem
|
469
|
+
flags: <%= Item::DATA_IS_UNALTERABLE %>
|
470
|
+
title: Part Of (basic relationship)
|
471
|
+
description: >-
|
472
|
+
A relationship of this type between two items is hierarchical.
|
473
|
+
This relationship states that the subject (left-hand side) of the
|
474
|
+
relationship ("A" in the relationship "A is Part-Of B", and like
|
475
|
+
"SoftwareTesting" in "SoftwareTesting is Part-Of ComputerSoftware"
|
476
|
+
in a categorization of engineering disciplines) is assumed to be
|
477
|
+
more specific/narrow than, and contained within, what corresponds
|
478
|
+
to the object of the relationship ("B" and "ComputerSoftware").
|
479
|
+
When showing a graph of connections between items, the system will
|
480
|
+
attempt to indicate 'Part-Of' relationships as primarily vertical,
|
481
|
+
with the object-item drawn nearer "the root" of the graph and the
|
482
|
+
subject-item toward "the leaves".
|
483
|
+
|
484
|
+
'Part Of' is most appropriate for showing relationships that would
|
485
|
+
be indicated by complete inclusion when drawing a Ven Diagram.
|
486
|
+
That is, if drawing a Ven Diagram of how categories relate to each
|
487
|
+
other, the category corresponding to the subject item of this
|
488
|
+
relationship would be drawn entirely within the category
|
489
|
+
corresponding to the object item. In this way, it is more
|
490
|
+
restrictive than the 'One Of' relationship, which indicates
|
491
|
+
membership without implying complete overlap.
|
492
|
+
|
493
|
+
'Part Of' is the opposite of 'Contains'. Creating a relationship
|
494
|
+
that states one category is 'Part Of' another is exactly the same
|
495
|
+
as creating a 'Contains' relationship with the subject and object
|
496
|
+
reversed, and the system will list the relationship between them
|
497
|
+
using both relationship names. 'Part Of' is itself a child of
|
498
|
+
'Child Of'. (And 'Child Of' is the opposite of 'Parent Of', and
|
499
|
+
finally 'Contains' is a child of 'Parent Of'.)
|
369
500
|
|
370
501
|
|
371
502
|
contains:
|
@@ -389,13 +520,14 @@ contains:
|
|
389
520
|
are better indicated with 'Parent Of', as in "vehicle Contains
|
390
521
|
spacecraft" (assuming, of course, that both are categories).
|
391
522
|
|
392
|
-
'Contains' is
|
393
|
-
|
394
|
-
'
|
395
|
-
|
396
|
-
|
397
|
-
'
|
398
|
-
|
523
|
+
'Contains' is the opposite of 'Part Of'. Creating a relationship
|
524
|
+
that states one category 'Contains' another is exactly the same as
|
525
|
+
creating a 'Part Of' relationship with the subject and object
|
526
|
+
revesed, and the system will list the relationship between them
|
527
|
+
using both relationship names.'Contains' is also Child-Of 'Parent
|
528
|
+
Of'. (And 'Parent Of' and 'Child Of' are opposites of each other,
|
529
|
+
and 'One Of' is another child of 'Child Of'. But this does not
|
530
|
+
make 'Contains' and 'Child Of' opposites of each other.)
|
399
531
|
|
400
532
|
|
401
533
|
parent_of:
|