iqvoc 3.2.3

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.
Files changed (376) hide show
  1. data/Gemfile +69 -0
  2. data/Gemfile.lock +134 -0
  3. data/LICENSE +13 -0
  4. data/README.md +68 -0
  5. data/Rakefile +23 -0
  6. data/app/controllers/application_controller.rb +125 -0
  7. data/app/controllers/collections/hierarchical_controller.rb +44 -0
  8. data/app/controllers/collections_controller.rb +124 -0
  9. data/app/controllers/concepts/alphabetical_controller.rb +39 -0
  10. data/app/controllers/concepts/hierarchical_controller.rb +74 -0
  11. data/app/controllers/concepts/untranslated_controller.rb +38 -0
  12. data/app/controllers/concepts/versions_controller.rb +119 -0
  13. data/app/controllers/concepts_controller.rb +174 -0
  14. data/app/controllers/dashboard_controller.rb +43 -0
  15. data/app/controllers/pages_controller.rb +22 -0
  16. data/app/controllers/rdf_controller.rb +43 -0
  17. data/app/controllers/search_results_controller.rb +101 -0
  18. data/app/controllers/triple_store_syncs_controller.rb +45 -0
  19. data/app/controllers/user_sessions_controller.rb +48 -0
  20. data/app/controllers/users_controller.rb +81 -0
  21. data/app/helpers/application_helper.rb +60 -0
  22. data/app/helpers/concepts_helper.rb +86 -0
  23. data/app/helpers/dashboard_helper.rb +46 -0
  24. data/app/helpers/rdf_helper.rb +63 -0
  25. data/app/helpers/search_results_helper.rb +32 -0
  26. data/app/models/collection/base.rb +161 -0
  27. data/app/models/collection/member/base.rb +23 -0
  28. data/app/models/collection/member/collection.rb +33 -0
  29. data/app/models/collection/member/concept.rb +33 -0
  30. data/app/models/collection/unordered.rb +18 -0
  31. data/app/models/concept/base.rb +418 -0
  32. data/app/models/concept/relation/base.rb +95 -0
  33. data/app/models/concept/relation/reverse_relation_extension.rb +49 -0
  34. data/app/models/concept/relation/skos/base.rb +37 -0
  35. data/app/models/concept/relation/skos/broader/base.rb +41 -0
  36. data/app/models/concept/relation/skos/broader/mono.rb +28 -0
  37. data/app/models/concept/relation/skos/broader/poly.rb +23 -0
  38. data/app/models/concept/relation/skos/narrower/base.rb +37 -0
  39. data/app/models/concept/relation/skos/related.rb +21 -0
  40. data/app/models/concept/skos/base.rb +28 -0
  41. data/app/models/label/base.rb +98 -0
  42. data/app/models/label/skos/base.rb +27 -0
  43. data/app/models/labeling/base.rb +81 -0
  44. data/app/models/labeling/skos/alt_label.rb +21 -0
  45. data/app/models/labeling/skos/base.rb +99 -0
  46. data/app/models/labeling/skos/hidden_label.rb +25 -0
  47. data/app/models/labeling/skos/pref_label.rb +30 -0
  48. data/app/models/match/base.rb +57 -0
  49. data/app/models/match/skos/base.rb +23 -0
  50. data/app/models/match/skos/broad_match.rb +21 -0
  51. data/app/models/match/skos/close_match.rb +21 -0
  52. data/app/models/match/skos/exact_match.rb +21 -0
  53. data/app/models/match/skos/mapping_relation.rb +21 -0
  54. data/app/models/match/skos/narrow_match.rb +21 -0
  55. data/app/models/match/skos/related_match.rb +21 -0
  56. data/app/models/note/annotated/base.rb +29 -0
  57. data/app/models/note/base.rb +127 -0
  58. data/app/models/note/skos/base.rb +52 -0
  59. data/app/models/note/skos/change_note.rb +38 -0
  60. data/app/models/note/skos/definition.rb +33 -0
  61. data/app/models/note/skos/editorial_note.rb +21 -0
  62. data/app/models/note/skos/example.rb +21 -0
  63. data/app/models/note/skos/history_note.rb +21 -0
  64. data/app/models/note/skos/scope_note.rb +21 -0
  65. data/app/models/origin_mapping.rb +58 -0
  66. data/app/models/rdf_store.rb +96 -0
  67. data/app/models/search_extension.rb +58 -0
  68. data/app/models/user.rb +49 -0
  69. data/app/models/user_session.rb +23 -0
  70. data/app/views/collections/_collection.html.erb +10 -0
  71. data/app/views/collections/_form.html.erb +47 -0
  72. data/app/views/collections/edit.html.erb +11 -0
  73. data/app/views/collections/index.html.erb +12 -0
  74. data/app/views/collections/new.html.erb +7 -0
  75. data/app/views/collections/show.html.erb +53 -0
  76. data/app/views/collections/show.iqrdf +22 -0
  77. data/app/views/concepts/_base_data.html.erb +72 -0
  78. data/app/views/concepts/_close_match.html.erb +16 -0
  79. data/app/views/concepts/_show_head.html.erb +23 -0
  80. data/app/views/concepts/_visualization.html.erb +9 -0
  81. data/app/views/concepts/alphabetical/_pref_labeling.html.erb +6 -0
  82. data/app/views/concepts/alphabetical/index.html.erb +17 -0
  83. data/app/views/concepts/edit.html.erb +32 -0
  84. data/app/views/concepts/hierarchical/_treeview.html.erb +20 -0
  85. data/app/views/concepts/hierarchical/index.html.erb +5 -0
  86. data/app/views/concepts/index.iqrdf +24 -0
  87. data/app/views/concepts/new.html.erb +3 -0
  88. data/app/views/concepts/show_published.html.erb +16 -0
  89. data/app/views/concepts/show_unpublished.html.erb +43 -0
  90. data/app/views/concepts/untranslated/index.html.erb +23 -0
  91. data/app/views/dashboard/index.html.erb +47 -0
  92. data/app/views/errors/access_denied.html.erb +3 -0
  93. data/app/views/errors/multiple_choices.html.erb +11 -0
  94. data/app/views/errors/not_found.html.erb +8 -0
  95. data/app/views/kaminari/_page.html.erb +6 -0
  96. data/app/views/kaminari/_paginator.html.erb +15 -0
  97. data/app/views/layouts/_controls.html.erb +37 -0
  98. data/app/views/layouts/_header.html.erb +1 -0
  99. data/app/views/layouts/_navigation.html.erb +27 -0
  100. data/app/views/layouts/_sections.html.erb +8 -0
  101. data/app/views/layouts/application.html.erb +83 -0
  102. data/app/views/pages/about.html.erb +77 -0
  103. data/app/views/partials/_rdf_logo.html.erb +4 -0
  104. data/app/views/partials/collection/_member.html.erb +14 -0
  105. data/app/views/partials/collection_label/_search_result.html.erb +5 -0
  106. data/app/views/partials/concept/_edit_link_base.html.erb +4 -0
  107. data/app/views/partials/concept/_inline_base.html.erb +4 -0
  108. data/app/views/partials/concept/_new_link_base.html.erb +4 -0
  109. data/app/views/partials/concept/relation/_base.html.erb +8 -0
  110. data/app/views/partials/concept/relation/_edit_base.html.erb +15 -0
  111. data/app/views/partials/concept/relation/skos/_narrower.html.erb +12 -0
  112. data/app/views/partials/concept/relation/skos/broader/_mono.html.erb +28 -0
  113. data/app/views/partials/concept/relation/skos/broader/_poly.html.erb +14 -0
  114. data/app/views/partials/labeling/skos/_base.html.erb +17 -0
  115. data/app/views/partials/labeling/skos/_edit_base.html.erb +7 -0
  116. data/app/views/partials/labeling/skos/_search_result.html.erb +12 -0
  117. data/app/views/partials/match/_base.html.erb +13 -0
  118. data/app/views/partials/match/_edit_base.html.erb +6 -0
  119. data/app/views/partials/note/_base.html.erb +15 -0
  120. data/app/views/partials/note/_edit_base.html.erb +28 -0
  121. data/app/views/partials/note/_note.html.erb +14 -0
  122. data/app/views/partials/note/_search_result.html.erb +8 -0
  123. data/app/views/partials/note/skos/_edit_change_note.html.erb +47 -0
  124. data/app/views/partials/note/skos/definition/_search_result.html.erb +8 -0
  125. data/app/views/rdf/show_concept.iqrdf +5 -0
  126. data/app/views/search_results/_head_contents.html.erb +4 -0
  127. data/app/views/search_results/_rdf_links.html.erb +4 -0
  128. data/app/views/search_results/index.html.erb +92 -0
  129. data/app/views/search_results/index.iqrdf +33 -0
  130. data/app/views/triple_store_syncs/new.html.erb +7 -0
  131. data/app/views/user_sessions/new.html.erb +11 -0
  132. data/app/views/users/_form.html.erb +45 -0
  133. data/app/views/users/_user_preference.html.erb +12 -0
  134. data/app/views/users/edit.html.erb +14 -0
  135. data/app/views/users/index.html.erb +29 -0
  136. data/app/views/users/new.html.erb +13 -0
  137. data/config/application.rb +82 -0
  138. data/config/boot.rb +29 -0
  139. data/config/database.template.yml +43 -0
  140. data/config/database.yml +40 -0
  141. data/config/deploy/common.rb +79 -0
  142. data/config/deploy/ec2.rb +43 -0
  143. data/config/deploy/history.rb +29 -0
  144. data/config/deploy/innoq.rb +37 -0
  145. data/config/deploy.rb +72 -0
  146. data/config/engine.rb +25 -0
  147. data/config/environment.rb +21 -0
  148. data/config/environments/development.rb +74 -0
  149. data/config/environments/production.rb +65 -0
  150. data/config/environments/production.template.rb +65 -0
  151. data/config/environments/production_internal.rb +65 -0
  152. data/config/environments/test.rb +51 -0
  153. data/config/initializers/action_view.rb +23 -0
  154. data/config/initializers/active_record.rb +18 -0
  155. data/config/initializers/backtrace_silencers.rb +23 -0
  156. data/config/initializers/inflections.rb +26 -0
  157. data/config/initializers/iqvoc.rb +50 -0
  158. data/config/initializers/jdbc.rb +23 -0
  159. data/config/initializers/kaminari_config.rb +8 -0
  160. data/config/initializers/language.rb +6 -0
  161. data/config/initializers/mime_types.rb +24 -0
  162. data/config/initializers/secret_token.rb +29 -0
  163. data/config/initializers/secret_token.rb.template +29 -0
  164. data/config/initializers/session_store.rb +24 -0
  165. data/config/locales/activerecord.de.yml +135 -0
  166. data/config/locales/activerecord.en.yml +135 -0
  167. data/config/locales/authlogic.de.yml +38 -0
  168. data/config/locales/authlogic.en.yml +38 -0
  169. data/config/locales/de.yml +326 -0
  170. data/config/locales/defaults.de.yml +153 -0
  171. data/config/locales/en.yml +332 -0
  172. data/config/routes.rb +53 -0
  173. data/config/warble.rb +158 -0
  174. data/db/iqvoc_test.sqlite3 +0 -0
  175. data/db/migrate/20100927101502_create_schema.rb +174 -0
  176. data/db/migrate/20101125141218_add_collection_tables.rb +32 -0
  177. data/db/migrate/20101129161528_add_type_to_collections.rb +24 -0
  178. data/db/migrate/20101202094602_add_origin_to_collections.rb +25 -0
  179. data/db/migrate/20101202135420_rename_collection_contents_to_collection_members.rb +25 -0
  180. data/db/migrate/20101208103531_add_type_to_collection_contents.rb +27 -0
  181. data/db/migrate/20101210153916_add_indexes_to_collections.rb +25 -0
  182. data/db/migrate/20110204121244_create_collection_labels.rb +32 -0
  183. data/db/migrate/20110208084250_change_origin_lengths.rb +27 -0
  184. data/db/migrate/20110328124300_discard_collection_specifics.rb +27 -0
  185. data/db/migrate/20110408120357_remove_classifications_and_classifiers.rb +32 -0
  186. data/db/migrate/20110408120740_remove_xl_specfic_stuff.rb +39 -0
  187. data/db/migrate/20110420133640_change_value_in_notes.rb +8 -0
  188. data/db/migrate/20110427120534_add_published_at_to_labels.rb +9 -0
  189. data/db/migrate/20110510162719_use_mono_hierarchy_instead_of_poly_hierarchy.rb +13 -0
  190. data/db/migrate/20110512132624_extend_notes_value_field_length.rb +8 -0
  191. data/db/migrate/20110525103100_separate_note_annotation_predicates.rb +38 -0
  192. data/db/migrate/20110615134040_change_umt_note_annotations_to_dct.rb +9 -0
  193. data/db/schema.rb +127 -0
  194. data/db/seeds.rb +37 -0
  195. data/iqvoc.gemspec +27 -0
  196. data/lib/engine_tasks/assets.rake +49 -0
  197. data/lib/engine_tasks/db.rake +18 -0
  198. data/lib/engine_tasks/release.rake +118 -0
  199. data/lib/iqvoc/ability.rb +44 -0
  200. data/lib/iqvoc/data_helper.rb +27 -0
  201. data/lib/iqvoc/deep_cloning.rb +92 -0
  202. data/lib/iqvoc/rdf_helper.rb +67 -0
  203. data/lib/iqvoc/skos_importer.rb +144 -0
  204. data/lib/iqvoc/version.rb +19 -0
  205. data/lib/iqvoc/versioning.rb +151 -0
  206. data/lib/iqvoc.rb +228 -0
  207. data/lib/maker.rb +144 -0
  208. data/lib/ojdbc14.jar +0 -0
  209. data/lib/string.rb +23 -0
  210. data/lib/tasks/importer.rake +16 -0
  211. data/lib/tasks/jdbc.rake +24 -0
  212. data/public/404.html +26 -0
  213. data/public/422.html +26 -0
  214. data/public/500.html +26 -0
  215. data/public/favicon.ico +0 -0
  216. data/public/images/iqvoc/add.png +0 -0
  217. data/public/images/iqvoc/arrow_down.gif +0 -0
  218. data/public/images/iqvoc/arrow_up.gif +0 -0
  219. data/public/images/iqvoc/footer.png +0 -0
  220. data/public/images/iqvoc/go_there.png +0 -0
  221. data/public/images/iqvoc/header.png +0 -0
  222. data/public/images/iqvoc/header_long.png +0 -0
  223. data/public/images/iqvoc/iqvoc.png +0 -0
  224. data/public/images/iqvoc/note_add.png +0 -0
  225. data/public/images/iqvoc/note_delete.png +0 -0
  226. data/public/images/iqvoc/note_edit.png +0 -0
  227. data/public/images/iqvoc/ok.png +0 -0
  228. data/public/images/iqvoc/rails.png +0 -0
  229. data/public/images/iqvoc/rdf_flyer.gif +0 -0
  230. data/public/images/iqvoc/red_arrow.png +0 -0
  231. data/public/images/iqvoc/remove.png +0 -0
  232. data/public/images/iqvoc/shadow.png +0 -0
  233. data/public/images/iqvoc/spinner.gif +0 -0
  234. data/public/images/iqvoc/tokenizer_delete.png +0 -0
  235. data/public/images/iqvoc/tokenizer_pencile.png +0 -0
  236. data/public/images/iqvoc/tokenizer_show.png +0 -0
  237. data/public/images/iqvoc/unfinished.png +0 -0
  238. data/public/javascripts/iqvoc/application.js +123 -0
  239. data/public/javascripts/iqvoc/entityselect.js +121 -0
  240. data/public/javascripts/iqvoc/excanvas.js +35 -0
  241. data/public/javascripts/iqvoc/iqvoc.js +118 -0
  242. data/public/javascripts/iqvoc/jit_rgraph.js +153 -0
  243. data/public/javascripts/iqvoc/jquery-1.6.2.min.js +18 -0
  244. data/public/javascripts/iqvoc/jquery-treeview/changelog.txt +29 -0
  245. data/public/javascripts/iqvoc/jquery-treeview/demo/async.html +44 -0
  246. data/public/javascripts/iqvoc/jquery-treeview/demo/bg.gif +0 -0
  247. data/public/javascripts/iqvoc/jquery-treeview/demo/demo.js +43 -0
  248. data/public/javascripts/iqvoc/jquery-treeview/demo/images.html +56 -0
  249. data/public/javascripts/iqvoc/jquery-treeview/demo/index.html +340 -0
  250. data/public/javascripts/iqvoc/jquery-treeview/demo/large.html +559 -0
  251. data/public/javascripts/iqvoc/jquery-treeview/demo/prerendered.html +621 -0
  252. data/public/javascripts/iqvoc/jquery-treeview/demo/screen.css +24 -0
  253. data/public/javascripts/iqvoc/jquery-treeview/demo/simple.html +82 -0
  254. data/public/javascripts/iqvoc/jquery-treeview/demo/source.php +87 -0
  255. data/public/javascripts/iqvoc/jquery-treeview/demo/source.phps +87 -0
  256. data/public/javascripts/iqvoc/jquery-treeview/images/ajax-loader.gif +0 -0
  257. data/public/javascripts/iqvoc/jquery-treeview/images/file.gif +0 -0
  258. data/public/javascripts/iqvoc/jquery-treeview/images/folder-closed.gif +0 -0
  259. data/public/javascripts/iqvoc/jquery-treeview/images/folder.gif +0 -0
  260. data/public/javascripts/iqvoc/jquery-treeview/images/minus.gif +0 -0
  261. data/public/javascripts/iqvoc/jquery-treeview/images/plus.gif +0 -0
  262. data/public/javascripts/iqvoc/jquery-treeview/images/treeview-black-line.gif +0 -0
  263. data/public/javascripts/iqvoc/jquery-treeview/images/treeview-black.gif +0 -0
  264. data/public/javascripts/iqvoc/jquery-treeview/images/treeview-default-line.gif +0 -0
  265. data/public/javascripts/iqvoc/jquery-treeview/images/treeview-default.gif +0 -0
  266. data/public/javascripts/iqvoc/jquery-treeview/images/treeview-famfamfam-line.gif +0 -0
  267. data/public/javascripts/iqvoc/jquery-treeview/images/treeview-famfamfam.gif +0 -0
  268. data/public/javascripts/iqvoc/jquery-treeview/images/treeview-gray-line.gif +0 -0
  269. data/public/javascripts/iqvoc/jquery-treeview/images/treeview-gray.gif +0 -0
  270. data/public/javascripts/iqvoc/jquery-treeview/images/treeview-red-line.gif +0 -0
  271. data/public/javascripts/iqvoc/jquery-treeview/images/treeview-red.gif +0 -0
  272. data/public/javascripts/iqvoc/jquery-treeview/jquery.treeview.async.js +82 -0
  273. data/public/javascripts/iqvoc/jquery-treeview/jquery.treeview.css +75 -0
  274. data/public/javascripts/iqvoc/jquery-treeview/jquery.treeview.js +251 -0
  275. data/public/javascripts/iqvoc/jquery-treeview/jquery.treeview.min.js +15 -0
  276. data/public/javascripts/iqvoc/jquery-treeview/jquery.treeview.pack.js +16 -0
  277. data/public/javascripts/iqvoc/jquery-treeview/lib/jquery.cookie.js +92 -0
  278. data/public/javascripts/iqvoc/jquery-treeview/lib/jquery.js +3363 -0
  279. data/public/javascripts/iqvoc/jquery-treeview/todo +8 -0
  280. data/public/javascripts/iqvoc/jquery-ui-1.8.13.custom.js +3229 -0
  281. data/public/javascripts/iqvoc/jquery-ui-1.8.13.custom.min.js +163 -0
  282. data/public/javascripts/iqvoc/jquery-ui.datepicker-de.js +22 -0
  283. data/public/javascripts/iqvoc/json2.js +480 -0
  284. data/public/javascripts/iqvoc/langselect.js +73 -0
  285. data/public/javascripts/iqvoc/rails.js +132 -0
  286. data/public/javascripts/iqvoc/storage.js +122 -0
  287. data/public/javascripts/iqvoc/visualization.js +321 -0
  288. data/public/robots.txt +5 -0
  289. data/public/stylesheets/iqvoc/blueprint/ie.css +35 -0
  290. data/public/stylesheets/iqvoc/blueprint/plugins/buttons/icons/cross.png +0 -0
  291. data/public/stylesheets/iqvoc/blueprint/plugins/buttons/icons/key.png +0 -0
  292. data/public/stylesheets/iqvoc/blueprint/plugins/buttons/icons/tick.png +0 -0
  293. data/public/stylesheets/iqvoc/blueprint/plugins/buttons/readme.txt +32 -0
  294. data/public/stylesheets/iqvoc/blueprint/plugins/buttons/screen.css +97 -0
  295. data/public/stylesheets/iqvoc/blueprint/plugins/fancy-type/readme.txt +14 -0
  296. data/public/stylesheets/iqvoc/blueprint/plugins/fancy-type/screen.css +71 -0
  297. data/public/stylesheets/iqvoc/blueprint/plugins/link-icons/icons/doc.png +0 -0
  298. data/public/stylesheets/iqvoc/blueprint/plugins/link-icons/icons/email.png +0 -0
  299. data/public/stylesheets/iqvoc/blueprint/plugins/link-icons/icons/external.png +0 -0
  300. data/public/stylesheets/iqvoc/blueprint/plugins/link-icons/icons/feed.png +0 -0
  301. data/public/stylesheets/iqvoc/blueprint/plugins/link-icons/icons/im.png +0 -0
  302. data/public/stylesheets/iqvoc/blueprint/plugins/link-icons/icons/pdf.png +0 -0
  303. data/public/stylesheets/iqvoc/blueprint/plugins/link-icons/icons/visited.png +0 -0
  304. data/public/stylesheets/iqvoc/blueprint/plugins/link-icons/icons/xls.png +0 -0
  305. data/public/stylesheets/iqvoc/blueprint/plugins/link-icons/readme.txt +18 -0
  306. data/public/stylesheets/iqvoc/blueprint/plugins/link-icons/screen.css +40 -0
  307. data/public/stylesheets/iqvoc/blueprint/plugins/rtl/readme.txt +10 -0
  308. data/public/stylesheets/iqvoc/blueprint/plugins/rtl/screen.css +110 -0
  309. data/public/stylesheets/iqvoc/blueprint/print.css +29 -0
  310. data/public/stylesheets/iqvoc/blueprint/screen.css +258 -0
  311. data/public/stylesheets/iqvoc/blueprint/src/forms.css +65 -0
  312. data/public/stylesheets/iqvoc/blueprint/src/grid.css +280 -0
  313. data/public/stylesheets/iqvoc/blueprint/src/grid.png +0 -0
  314. data/public/stylesheets/iqvoc/blueprint/src/ie.css +76 -0
  315. data/public/stylesheets/iqvoc/blueprint/src/print.css +85 -0
  316. data/public/stylesheets/iqvoc/blueprint/src/reset.css +45 -0
  317. data/public/stylesheets/iqvoc/blueprint/src/typography.css +106 -0
  318. data/public/stylesheets/iqvoc/forms.css +71 -0
  319. data/public/stylesheets/iqvoc/images/back.png +0 -0
  320. data/public/stylesheets/iqvoc/images/branch.png +0 -0
  321. data/public/stylesheets/iqvoc/images/categ.png +0 -0
  322. data/public/stylesheets/iqvoc/images/categ_open.png +0 -0
  323. data/public/stylesheets/iqvoc/images/go_there.png +0 -0
  324. data/public/stylesheets/iqvoc/images/iqvoc.png +0 -0
  325. data/public/stylesheets/iqvoc/images/leaf_end.png +0 -0
  326. data/public/stylesheets/iqvoc/images/leaf_end_filled.png +0 -0
  327. data/public/stylesheets/iqvoc/images/leaf_mid.png +0 -0
  328. data/public/stylesheets/iqvoc/images/leaf_mid_filled.png +0 -0
  329. data/public/stylesheets/iqvoc/images/leaf_nothing.png +0 -0
  330. data/public/stylesheets/iqvoc/images/leaf_only.png +0 -0
  331. data/public/stylesheets/iqvoc/images/leaf_only_filled.png +0 -0
  332. data/public/stylesheets/iqvoc/images/leaf_top.png +0 -0
  333. data/public/stylesheets/iqvoc/images/leaf_top_filled.png +0 -0
  334. data/public/stylesheets/iqvoc/images/nothing.png +0 -0
  335. data/public/stylesheets/iqvoc/images/top_01.png +0 -0
  336. data/public/stylesheets/iqvoc/images/trunk.png +0 -0
  337. data/public/stylesheets/iqvoc/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  338. data/public/stylesheets/iqvoc/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  339. data/public/stylesheets/iqvoc/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  340. data/public/stylesheets/iqvoc/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  341. data/public/stylesheets/iqvoc/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  342. data/public/stylesheets/iqvoc/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  343. data/public/stylesheets/iqvoc/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  344. data/public/stylesheets/iqvoc/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  345. data/public/stylesheets/iqvoc/images/ui-icons_217bc0_256x240.png +0 -0
  346. data/public/stylesheets/iqvoc/images/ui-icons_2e83ff_256x240.png +0 -0
  347. data/public/stylesheets/iqvoc/images/ui-icons_469bdd_256x240.png +0 -0
  348. data/public/stylesheets/iqvoc/images/ui-icons_6da8d5_256x240.png +0 -0
  349. data/public/stylesheets/iqvoc/images/ui-icons_cd0a0a_256x240.png +0 -0
  350. data/public/stylesheets/iqvoc/images/ui-icons_d8e7f3_256x240.png +0 -0
  351. data/public/stylesheets/iqvoc/images/ui-icons_f9bd01_256x240.png +0 -0
  352. data/public/stylesheets/iqvoc/iqvoc.css +477 -0
  353. data/public/stylesheets/iqvoc/jquery-ui-1.8.13.custom.css +415 -0
  354. data/public/stylesheets/iqvoc/widgets.css +81 -0
  355. data/test/factories.rb +74 -0
  356. data/test/integration/alphabetical_test.rb +53 -0
  357. data/test/integration/authentication_test.rb +41 -0
  358. data/test/integration/browse_concepts_and_labels_test.rb +61 -0
  359. data/test/integration/browse_static_pages_test.rb +29 -0
  360. data/test/integration/client_augmentation_test.rb +42 -0
  361. data/test/integration/client_edit_concept_test.rb +72 -0
  362. data/test/integration/collection_circularity_test.rb +110 -0
  363. data/test/integration/concept_test.rb +61 -0
  364. data/test/integration/edit_concepts_test.rb +40 -0
  365. data/test/integration/note_annotations_test.rb +86 -0
  366. data/test/integration/search_test.rb +205 -0
  367. data/test/integration/tree_test.rb +31 -0
  368. data/test/integration/untranslated_test.rb +60 -0
  369. data/test/integration_test_helper.rb +45 -0
  370. data/test/performance/browsing_test.rb +25 -0
  371. data/test/test_helper.rb +29 -0
  372. data/test/unit/concept_test.rb +93 -0
  373. data/test/unit/note_test.rb +32 -0
  374. data/test/unit/origin_mapping_test.rb +70 -0
  375. data/test/unit/skos_import_test.rb +100 -0
  376. metadata +522 -0
@@ -0,0 +1,153 @@
1
+ # encoding: UTF-8
2
+
3
+ # Copyright 2011 innoQ Deutschland GmbH
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ de:
18
+ date:
19
+ formats:
20
+ default: "%d.%m.%Y"
21
+ short: "%e. %b"
22
+ long: "%e. %B %Y"
23
+ only_day: "%e"
24
+
25
+ day_names: [Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag]
26
+ abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa]
27
+ month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
28
+ abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez]
29
+ order: [ day, month, year ]
30
+
31
+ time:
32
+ formats:
33
+ default: "%A, %d. %B %Y, %H:%M Uhr"
34
+ short: "%d. %B, %H:%M Uhr"
35
+ long: "%A, %d. %B %Y, %H:%M Uhr"
36
+ time: "%H:%M"
37
+
38
+ am: "vormittags"
39
+ pm: "nachmittags"
40
+
41
+ datetime:
42
+ distance_in_words:
43
+ half_a_minute: 'eine halbe Minute'
44
+ less_than_x_seconds:
45
+ zero: 'weniger als 1 Sekunde'
46
+ one: 'weniger als 1 Sekunde'
47
+ other: 'weniger als %{count} Sekunden'
48
+ x_seconds:
49
+ one: '1 Sekunde'
50
+ other: '{{count}} Sekunden'
51
+ less_than_x_minutes:
52
+ zero: 'weniger als 1 Minute'
53
+ one: 'weniger als eine Minute'
54
+ other: 'weniger als %{count} Minuten'
55
+ x_minutes:
56
+ one: '1 Minute'
57
+ other: '%{count} Minuten'
58
+ about_x_hours:
59
+ one: 'etwa 1 Stunde'
60
+ other: 'etwa %{count} Stunden'
61
+ x_days:
62
+ one: '1 Tag'
63
+ other: '%{count} Tage'
64
+ about_x_months:
65
+ one: 'etwa 1 Monat'
66
+ other: 'etwa %{count} Monate'
67
+ x_months:
68
+ one: '1 Monat'
69
+ other: '%{count} Monate'
70
+ about_x_years:
71
+ one: 'etwa 1 Jahr'
72
+ other: 'etwa %{count} Jahre'
73
+ over_x_years:
74
+ one: 'mehr als 1 Jahr'
75
+ other: 'mehr als %{count} Jahre'
76
+ prompts:
77
+ second: "Sekunden"
78
+ minute: "Minuten"
79
+ hour: "Stunden"
80
+ day: "Tag"
81
+ month: "Monat"
82
+ year: "Jahr"
83
+
84
+ number:
85
+ format:
86
+ precision: 2
87
+ separator: ','
88
+ delimiter: '.'
89
+ currency:
90
+ format:
91
+ unit: '€'
92
+ format: '%n%u'
93
+ separator:
94
+ delimiter:
95
+ precision:
96
+ percentage:
97
+ format:
98
+ delimiter: ""
99
+ precision:
100
+ format:
101
+ delimiter: ""
102
+ human:
103
+ format:
104
+ delimiter: ""
105
+ precision: 1
106
+ storage_units:
107
+ # Storage units output formatting.
108
+ # %u is the storage unit, %n is the number (default: 2 MB)
109
+ format: "%n %u"
110
+ units:
111
+ byte:
112
+ one: "Byte"
113
+ other: "Bytes"
114
+ kb: "KB"
115
+ mb: "MB"
116
+ gb: "GB"
117
+ tb: "TB"
118
+
119
+ support:
120
+ array:
121
+ words_connector: ", "
122
+ two_words_connector: " und "
123
+ last_word_connector: " und "
124
+
125
+ activerecord:
126
+ errors:
127
+ template:
128
+ header:
129
+ one: "Konnte dieses %{count} nicht speichern: 1 Fehler."
130
+ other: "Konnte dieses %{count} nicht speichern: %{count} Fehler."
131
+ body: "Bitte überprüfen Sie die folgenden Felder:"
132
+
133
+ messages:
134
+ inclusion: "ist kein gültiger Wert"
135
+ exclusion: "ist nicht verfügbar"
136
+ invalid: "ist nicht gültig"
137
+ confirmation: "stimmt nicht mit der Bestätigung überein"
138
+ accepted: "muss akzeptiert werden"
139
+ empty: "muss ausgefüllt werden"
140
+ blank: "muss ausgefüllt werden"
141
+ too_long: "ist zu lang (nicht mehr als %{count} Zeichen)"
142
+ too_short: "ist zu kurz (nicht weniger als %{count} Zeichen)"
143
+ wrong_length: "hat die falsche Länge (muss genau %{count} Zeichen haben)"
144
+ taken: "ist bereits vergeben"
145
+ not_a_number: "ist keine Zahl"
146
+ greater_than: "muss größer als %{count} sein"
147
+ greater_than_or_equal_to: "muss größer oder gleich %{count} sein"
148
+ equal_to: "muss genau %{count} sein"
149
+ less_than: "muss kleiner als %{count} sein"
150
+ less_than_or_equal_to: "muss kleiner oder gleich %{count} sein"
151
+ odd: "muss ungerade sein"
152
+ even: "muss gerade sein"
153
+ record_invalid: "Gültigkeitsprüfung ist fehlgeschlagen: %{errors}"
@@ -0,0 +1,332 @@
1
+ # encoding: UTF-8
2
+
3
+ # Copyright 2011 innoQ Deutschland GmbH
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ en:
18
+ languages:
19
+ de: German
20
+ en: English
21
+ none: Sci.
22
+ fr: French
23
+ sl: Slovenian
24
+ pl: Polish
25
+ pt: Portuguese
26
+ es: Spanish
27
+ gr: Greek
28
+ bg: Bulgarian
29
+ nl: Dutch
30
+ hu: Hungarian
31
+ it: Italian
32
+ cs: Czech
33
+ sk: Slovak
34
+ views:
35
+ pagination:
36
+ first: "« First"
37
+ previous: "< Back"
38
+ next: "Next >"
39
+ last: "Last »"
40
+ truncate: "…"
41
+ txt:
42
+ common:
43
+ iqvoc_title: "iQvoc Vocabulary Management System"
44
+ pref_label: "Preferred label"
45
+ edit: "Edit"
46
+ value: "Value"
47
+ back: Back
48
+ welcome: "Hello %{user_name}"
49
+ save: "Save"
50
+ reset: "Reset"
51
+ language: "Language"
52
+ add_note: "Add"
53
+ delete: "Delete"
54
+ attributes: "Properties"
55
+ editor: "Editor"
56
+ referenced_concepts: "Referenced Concepts are currently being edited:"
57
+ association_not_found: "Relation not found. Probably removed from the target side. Please refresh your browser window."
58
+ to_review: "To review"
59
+ is_in_review: "Document is in review"
60
+ unpublished_version: Unpublished version
61
+ consistent: "consistent"
62
+ inconsistent: "inconsistent"
63
+ state:
64
+ published: "Published"
65
+ in_review: "In review"
66
+ checked_out: "Checked out"
67
+ of: of
68
+ pending: "Loading…"
69
+ translation_missing_for: "translation missing for"
70
+
71
+ views:
72
+ layouts:
73
+ application:
74
+ header: "innoQ Vocabulary Management"
75
+ select_language: "Choose language"
76
+ login: "Login"
77
+ logout: "Logout"
78
+ sections:
79
+ main: Main
80
+ labels: Labels
81
+ relations: Relations
82
+ notes: Notes
83
+ matches: Concept mappings
84
+ alphabetical_concepts:
85
+ untranslated_concepts:
86
+ caption: "Missing Translations"
87
+ unavailable: "Missing translations not available for principal language."
88
+ hierarchical_concepts:
89
+ concepts:
90
+ expired_at: "expired at %{date}"
91
+ select: "Please select one of the %{concept_class_name} listed below."
92
+ new: "New %{concept_class_name}"
93
+ alt_label: "Alternative Label"
94
+ pref_label: "PrefLabel"
95
+ close_match: "CloseMatch"
96
+ classifiers: "Environment classes"
97
+ labels:
98
+ new: "New Label"
99
+ template_form: "Literal form"
100
+ language: "Language"
101
+ definitions: "Definitions"
102
+ base_form: "Base form"
103
+ inflectional_code: "Inflectional code"
104
+ inflectionals: "Inflectionals"
105
+ homographs: "Homograph"
106
+ qualifiers: "Qualifier"
107
+ translations: "Translations"
108
+ pref_label_of: "preferred Label of"
109
+ alt_label_of: "alternative Label of"
110
+ versionview: "Version display of Label"
111
+ follow_up: "Follow up"
112
+ endings: "Endings"
113
+ expired_at: "Expired at"
114
+ label_already_exists: "There already exists a label with the value"
115
+ edit:
116
+ header: "Editing of label"
117
+ save: "Save"
118
+ base_data: "Properties"
119
+ delete: "Delete"
120
+ delete_confirm: "The relation is going to be deleted. Are you sure?"
121
+ edit: "Edit"
122
+ apply: "Apply"
123
+ add_note: "Add"
124
+ reset: "Reset"
125
+ inflectionals_used_in: "Same spelling in use by the following Labels:"
126
+ notes:
127
+ value: "Value"
128
+ language: "Language"
129
+ save: "Save"
130
+ edit:
131
+ header: "Edit notes"
132
+ navigation:
133
+ back_to_edit_versioned_object: "Back to editing"
134
+ back_to_show: "Back to original version"
135
+ back_to_preview: "Back to version preview"
136
+ hierarchical: "Hierachical listings"
137
+ alphabetical: "Alphabetical listings"
138
+ search: "Search"
139
+ about: "About"
140
+ users: "Users"
141
+ collections: "Collections"
142
+ search_results:
143
+ header: "Search"
144
+ inflectionals: "inflectionals"
145
+ contains: "contains"
146
+ ends_with: "ends with"
147
+ begins_with: "begins with"
148
+ exact: "exact match"
149
+ regexp: "regular expression (advanced)"
150
+ search_term: "Search term(s)"
151
+ search_term_in_results: "Search term"
152
+ no_results: "No results"
153
+ search_languages: "Languages"
154
+ search_results: "Search results"
155
+ results_found:
156
+ one: "Your search for <strong>%{query}</strong> yielded the following %{count} result."
157
+ other: "Your search for <strong>%{query}</strong> yielded the following %{count} results."
158
+ no_results_found: "Your search yielded no results."
159
+ submit: "Search"
160
+ type: "type"
161
+ used_as: "used as"
162
+ language: "language"
163
+ all: "all"
164
+ none: "none"
165
+ user_sessions:
166
+ header: "Login"
167
+ login: "Login"
168
+ email: "Email"
169
+ password: "Password"
170
+ remember_me: "Stay logged in"
171
+ error: "Email and/or password wrong. Please check your given credentials."
172
+ users:
173
+ index:
174
+ header: "User management"
175
+ new:
176
+ header: "New user"
177
+ edit:
178
+ header: "Edit user"
179
+ name: "Name"
180
+ email: "Email"
181
+ role: "Role"
182
+ active: "activated"
183
+ new_link: "New"
184
+ show_link: "Show"
185
+ edit_link: "Edit"
186
+ destroy_link: "Delete"
187
+ sure: "Are you sure?"
188
+ submit: "Save"
189
+ telephone_number: "Telephone number"
190
+ errors:
191
+ access_denied:
192
+ header: "No permission"
193
+ message: "Your user account has insufficient permissions to display this page."
194
+ not_found:
195
+ header: "Not found"
196
+ tip: "You may want to use the search function to find content:"
197
+ versioning:
198
+ edit_mode: "Continue editing"
199
+ to_edit_mode: "Start editing"
200
+ publishing: "Release"
201
+ delete: "Delete copy"
202
+ delete_confirm: "Do you really want to delete this copy?"
203
+ versioning_mode: "Create new version"
204
+ unlock: "Unlock"
205
+ preview_new_version: "Preview of the version in editing"
206
+ consistency_check: "Consistency check"
207
+ current_revision: "Current revision"
208
+ in_ongoing_editing_by: "currently being edited by"
209
+ to_review_success: "Wurde in den Freigabeprozess aufgenommen"
210
+ to_review_error: "Konnte nicht in den Freigabeprozess aufgenommen werden"
211
+ labelings:
212
+ edit:
213
+ header: "Edit labeling"
214
+ submit: "Save"
215
+ lang_widget:
216
+ caption: "Language selection"
217
+ primary: "Primary"
218
+ secondary: "Secondary"
219
+ dashboard:
220
+ type: "Type"
221
+ value: "Name"
222
+ locking_user: "Locked by"
223
+ follow_up: "Follow up"
224
+ updated_at: "Updated at"
225
+ to_review: "Submission for review"
226
+ check_consistency: Check consistency
227
+ consistent: "consistent"
228
+ inconsistent: "inconsistent"
229
+ state: "State"
230
+ full_rdf_export: Complete RDF export
231
+ collections:
232
+ new: "New collection"
233
+
234
+ partials:
235
+ note:
236
+ collection:
237
+ skos:
238
+ member:
239
+ label:
240
+ relation:
241
+ concept:
242
+ relation:
243
+ labeling:
244
+ concept:
245
+ label:
246
+ match:
247
+
248
+ controllers:
249
+ application:
250
+ login_required: "You must be logged in to access this page."
251
+ logout_required: "You must be logged out to access this page."
252
+ search_results:
253
+ insufficient_data: "You entered insufficient search data"
254
+ users:
255
+ successfully_created: "User has been successfully created."
256
+ successfully_updated: "User has been successfully updated."
257
+ user_sessions:
258
+ login_success: "Login successful."
259
+ logout_success: "Logout successful."
260
+ versioning:
261
+ branch_error: "A new version already exists!"
262
+ published: "Instance has been successfully released."
263
+ published_with_warning: "Instance has been successfully released, but it has no relations!"
264
+ merged_delete_error: "Label could not be deleted!"
265
+ merged_publishing_error: "Instance could not be released!"
266
+ branched: "Instance copy has been created and locked."
267
+ locked: "Instance has been locked."
268
+ lock_error: "Instance has been locked already!"
269
+ unlocked: "Instance has been unlocked."
270
+ unlock_error: "Instance has been unlocked alraedy!"
271
+ new_version_blank_error: "A new version does not exist yet!"
272
+ delete: "Delete inctance."
273
+ consistency_check_success: "Instance is consistent."
274
+ consistency_check_success_with_warning: "Instance is consistent but has no relations!"
275
+ consistency_check_error: "Instance is not consistent"
276
+ virtuoso_exception: "The object has been published, but could not by synced with Virtuoso. Error: "
277
+ labelings:
278
+ save:
279
+ success: "The labeling has been saved."
280
+ error: "The labeling could not have been saved."
281
+ label_versions:
282
+ delete: "New Label version has been deleted."
283
+ delete_error: "New Label version could not be deleted."
284
+ concept_versions:
285
+ delete: "New Concept version has been deleted."
286
+ delete_error: "New Concept version could not be deleted"
287
+ notes:
288
+ save:
289
+ success: "The note has been saved."
290
+ versioned_label:
291
+ success: "Label has been successfully created."
292
+ error: "Label could not be created!"
293
+ empty_value: "Literal form must be given!"
294
+ update_success: "Label has been successfully modified."
295
+ update_error: "Label could not be modified!"
296
+ versioned_concept:
297
+ success: "Concept has been successfully created."
298
+ error: "Concept could not be created!"
299
+ empty_value: "Literal form must be given!"
300
+ update_success: "Concept has been successfully modified."
301
+ update_error: "Concept could not be modified!"
302
+ label_error: "Invalid label assignments:\n%s"
303
+ narrowers:
304
+ error: "Relation not found. Probably removed from the target side. Please refresh your browser window."
305
+ triple_store_syncs:
306
+ success: "%{concept_count} published concepts and %{label_count} published labels have been synced."
307
+ collections:
308
+ save:
309
+ success: "The collection has been successfully created."
310
+ error: "The collection could not be created."
311
+ destroy:
312
+ success: "The collection has been successfully deleted."
313
+ error: "The collection could not be deleted."
314
+ circular_error: "Invalid sub-collection assignments due to circular references:\n%s"
315
+
316
+ models:
317
+ label:
318
+ version_error: "New Label version already exists."
319
+ value_error: "Literal form must be given."
320
+ concept:
321
+ origin_error: "Invalid origin."
322
+ version_error: "New Concept version already exists."
323
+ no_pref_label_error: "At least one preferred label must be specified."
324
+ main_pref_label_language_missing_error: "There has to be one preferred Label in the main language of the thesaurus."
325
+ pref_labels_with_same_languages_error: "There must be only one preferred Label per language."
326
+ association_pref_labels_unpublished: "The preferred Label has to be published."
327
+ association_alt_labels_unpublished: "Alternative labels have to be published."
328
+ association_hidden_labels_unpublished: "Hidden labels have to be published."
329
+ association_broader_unpublished: "Broader terms have to be published."
330
+ association_narrower_unpublished: "Specific terms have to be published."
331
+ association_related_unpublished: "Related terms have to be published."
332
+ no_pref_label: "-- no PrefLabel --"
data/config/routes.rb ADDED
@@ -0,0 +1,53 @@
1
+ # encoding: UTF-8
2
+
3
+ # Copyright 2011 innoQ Deutschland GmbH
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ Rails.application.routes.draw do
18
+
19
+ match 'schema(.:format)' => 'pages#schema', :as => 'schema'
20
+
21
+ scope '(:lang)', :lang => /#{Iqvoc::Concept.pref_labeling_languages.join("|").presence || " "}/ do
22
+
23
+ resource :user_session, :only => [:new, :create, :destroy]
24
+ resources :users, :except => [:show]
25
+
26
+ resources :concepts
27
+ resources :collections
28
+
29
+ resources :triple_store_syncs, :only => [:new, :create]
30
+
31
+ match "concepts/:origin/branch(.:format)" => "concepts/versions#branch", :as => "concept_versions_branch"
32
+ match "concepts/:origin/merge(.:format)" => "concepts/versions#merge", :as => "concept_versions_merge"
33
+ match "concepts/:origin/lock(.:format)" => "concepts/versions#lock", :as => "concept_versions_lock"
34
+ match "concepts/:origin/unlock(.:format)" => "concepts/versions#unlock", :as => "concept_versions_unlock"
35
+ match "concepts/:origin/to_review(.:format)" => "concepts/versions#to_review", :as => "concept_versions_to_review"
36
+ match "concepts/:origin/consistency_check(.:format)" => "concepts/versions#consistency_check", :as => "concept_versions_consistency_check"
37
+
38
+ match 'alphabetical_concepts/:letter(.:format)' => 'concepts/alphabetical#index', :as => 'alphabetical_concepts'
39
+ match 'untranslated_concepts/:letter(.:format)' => 'concepts/untranslated#index', :as => 'untranslated_concepts'
40
+ match 'hierarchical_concepts(.:format)' => 'concepts/hierarchical#index', :as => 'hierarchical_concepts'
41
+
42
+ match 'hierarchical_collections(.:format)' => 'collections/hierarchical#index', :as => 'hierarchical_collections'
43
+
44
+ match 'about(.:format)' => 'pages#about', :as => 'about'
45
+ match 'dashboard(.:format)' => 'dashboard#index', :as => 'dashboard'
46
+
47
+ match 'search(.:format)' => 'search_results#index', :as => 'search'
48
+
49
+ root :to => 'concepts/hierarchical#index'
50
+ end
51
+
52
+ match '/:id(.:format)' => 'rdf#show', :as => 'rdf'
53
+ end