wontomedia 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|