talia_core 0.4.3 → 0.4.4
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/README.rdoc +6 -27
- data/VERSION.yml +3 -2
- data/config/database.yml +11 -11
- data/config/talia_core.yml +11 -6
- data/config/talia_core.yml.example +11 -6
- data/generators/talia_base/talia_base_generator.rb +3 -0
- data/generators/talia_base/templates/README +1 -1
- data/generators/talia_base/templates/app/controllers/source_data_controller.rb +1 -1
- data/generators/talia_base/templates/app/controllers/sources_controller.rb +31 -12
- data/generators/talia_base/templates/app/helpers/sources_helper.rb +77 -1
- data/generators/talia_base/templates/app/views/layouts/sources.html.erb +22 -0
- data/generators/talia_base/templates/app/views/sources/_data_list.html.erb +17 -0
- data/generators/talia_base/templates/app/views/sources/_property_item.html.erb +10 -0
- data/generators/talia_base/templates/app/views/sources/_property_list.html.erb +13 -0
- data/generators/talia_base/templates/app/views/sources/index.html.erb +16 -11
- data/generators/talia_base/templates/app/views/sources/semantic_templates/default/default.html.erb +8 -19
- data/generators/talia_base/templates/config/routes.rb +11 -0
- data/generators/talia_base/templates/migrations/create_semantic_relations.rb +2 -1
- data/generators/talia_base/templates/public/images/core/arrow.png +0 -0
- data/generators/talia_base/templates/public/images/core/building.png +0 -0
- data/generators/talia_base/templates/public/images/core/contents_top_left.gif +0 -0
- data/generators/talia_base/templates/public/images/core/document-horizontal-text.png +0 -0
- data/generators/talia_base/templates/public/images/core/document.png +0 -0
- data/generators/talia_base/templates/public/images/core/gear.png +0 -0
- data/generators/talia_base/templates/public/images/core/group.png +0 -0
- data/generators/talia_base/templates/public/images/core/header_bg.gif +0 -0
- data/generators/talia_base/templates/public/images/core/image.png +0 -0
- data/generators/talia_base/templates/public/images/core/imagebig.png +0 -0
- data/generators/talia_base/templates/public/images/core/left_edge.gif +0 -0
- data/generators/talia_base/templates/public/images/core/letter.png +0 -0
- data/generators/talia_base/templates/public/images/core/line.png +0 -0
- data/generators/talia_base/templates/public/images/core/logo.gif +0 -0
- data/generators/talia_base/templates/public/images/core/map.png +0 -0
- data/generators/talia_base/templates/public/images/core/period.png +0 -0
- data/generators/talia_base/templates/public/images/core/person.png +0 -0
- data/generators/talia_base/templates/public/images/core/person_default.png +0 -0
- data/generators/talia_base/templates/public/images/core/place.png +0 -0
- data/generators/talia_base/templates/public/images/core/source.png +0 -0
- data/generators/talia_base/templates/public/images/core/television.png +0 -0
- data/generators/talia_base/templates/public/images/core/text.png +0 -0
- data/generators/talia_base/templates/public/images/core/type.png +0 -0
- data/generators/talia_base/templates/public/images/core/video.png +0 -0
- data/generators/talia_base/templates/public/stylesheets/img/arrow.png +0 -0
- data/generators/talia_base/templates/public/stylesheets/main.css +276 -0
- data/generators/talia_base/templates/script/configure_talia +1 -1
- data/generators/talia_base/templates/script/setup_talia_backend +2 -0
- data/lib/core_ext/platform.rb +1 -0
- data/lib/core_ext/string.rb +6 -0
- data/lib/talia_core/active_source.rb +62 -3
- data/lib/talia_core/active_source_parts/class_methods.rb +36 -122
- data/lib/talia_core/active_source_parts/finders.rb +158 -0
- data/lib/talia_core/active_source_parts/predicate_handler.rb +7 -8
- data/lib/talia_core/active_source_parts/xml/generic_reader.rb +95 -11
- data/lib/talia_core/active_source_parts/xml/rdf_builder.rb +6 -13
- data/lib/talia_core/active_source_parts/xml/source_reader.rb +8 -3
- data/lib/talia_core/data_types/data_loader.rb +14 -6
- data/lib/talia_core/data_types/data_record.rb +5 -1
- data/lib/talia_core/data_types/iip_data.rb +1 -1
- data/lib/talia_core/data_types/mime_mapping.rb +8 -3
- data/lib/talia_core/errors.rb +4 -0
- data/lib/talia_core/initializer.rb +1 -8
- data/lib/talia_core/property_string.rb +58 -0
- data/lib/talia_core/semantic_collection_item.rb +3 -2
- data/lib/talia_core/semantic_collection_wrapper.rb +236 -198
- data/lib/talia_core/source.rb +130 -178
- data/lib/talia_core/source_types/collection.rb +15 -0
- data/lib/talia_core/source_types/dc_resource.rb +22 -0
- data/lib/talia_core/source_types/dummy_source.rb +22 -0
- data/lib/talia_core.rb +0 -1
- data/lib/talia_util/import_job_helper.rb +44 -16
- data/lib/talia_util/io_helper.rb +21 -1
- data/lib/talia_util/rake_tasks.rb +48 -72
- data/lib/talia_util/rdf_update.rb +22 -13
- data/lib/talia_util/test_helpers.rb +1 -1
- data/lib/talia_util.rb +0 -2
- data/test/core_ext/string_test.rb +5 -0
- data/test/talia_core/active_source_test.rb +151 -14
- data/test/talia_core/generic_xml_test.rb +46 -2
- data/test/talia_core/initializer_test.rb +0 -1
- data/test/talia_core/property_string_test.rb +78 -0
- data/test/talia_core/source_reader_test.rb +5 -1
- data/test/talia_core/source_test.rb +23 -32
- data/test/talia_util/import_job_helper_test.rb +1 -1
- data/test/talia_util/io_helper_test.rb +44 -0
- metadata +399 -373
- data/generators/talia_base/templates/app/views/sources/semantic_templates/default/province.html.erb +0 -19
- data/lib/acts_as_roled.rb +0 -11
- data/lib/talia_core/collection.rb +0 -13
- data/lib/talia_core/dc_resource.rb +0 -20
- data/lib/talia_core/dummy_source.rb +0 -20
- data/lib/talia_core/rails_ext/actionpack/action_controller/record_identifier.rb +0 -13
- data/lib/talia_core/rails_ext/actionpack/action_controller.rb +0 -1
- data/lib/talia_core/rails_ext/actionpack.rb +0 -1
- data/lib/talia_core/rails_ext.rb +0 -1
- data/lib/talia_util/data_import.rb +0 -91
- data/lib/talia_util/yaml_import.rb +0 -80
data/README.rdoc
CHANGED
|
@@ -4,38 +4,17 @@ This is the "core" of the Talia semantic digital web library system. Talia can
|
|
|
4
4
|
be used with Ruby on Rails, or as a standalone package.
|
|
5
5
|
|
|
6
6
|
More documentation can be found on the Talia website:
|
|
7
|
-
http
|
|
7
|
+
http://net7sviluppo.com/trac/talia/
|
|
8
8
|
|
|
9
9
|
The RDoc documentation may be created directly from the sources, or you can find
|
|
10
10
|
it at http://net7.github.com/talia_core/
|
|
11
11
|
|
|
12
|
-
= Installation
|
|
12
|
+
= Installation and Configuration
|
|
13
13
|
|
|
14
|
-
If you
|
|
15
|
-
please consult the web page for installation instructions.
|
|
14
|
+
If you want to get started with Talia, check out the installation guide at
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
http://net7sviluppo.com/trac/talia/wiki/TaliaInstallation
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
TaliaCore::Initializer - if you're building a standalone application, it's
|
|
21
|
-
almost the same (although you'll have to use standalone_db=yes to configure
|
|
22
|
-
ActiveRecord manually)
|
|
18
|
+
The guide for the Discovery Project partners is also still available at
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
* talia_core.yml - This file contains the main configuration.
|
|
27
|
-
* database.yml - Standalon Db configuration. Same format as for Rails.
|
|
28
|
-
* rdfstore.yml - RDF storage configuration.
|
|
29
|
-
|
|
30
|
-
The default configuration (talia_core.yml) will use the database.yml and
|
|
31
|
-
rdfstore.yml to configure the data storage. See the example filme for an
|
|
32
|
-
explanation of the options. The database configuration will only be used if
|
|
33
|
-
you are running Talia standalone; otherwise you must use RAILS' existing
|
|
34
|
-
database connection.
|
|
35
|
-
|
|
36
|
-
The options for the RDF store vary depending on the store that you have selected,
|
|
37
|
-
but some examples are provideed.
|
|
38
|
-
|
|
39
|
-
= DB Migrations
|
|
40
|
-
|
|
41
|
-
= Importing data
|
|
20
|
+
http://net7sviluppo.com/trac/talia/wiki/InstallTaliaForDiscoveryPartners
|
data/VERSION.yml
CHANGED
data/config/database.yml
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
development:
|
|
3
3
|
adapter: jdbcmysql
|
|
4
|
+
database: talia_library_talia_development
|
|
5
|
+
username: rails
|
|
6
|
+
password: rails
|
|
4
7
|
host: localhost
|
|
5
|
-
password: talia
|
|
6
|
-
username: talia
|
|
7
|
-
database: talia_2_3_new_talia_production
|
|
8
8
|
test:
|
|
9
9
|
adapter: jdbcmysql
|
|
10
|
+
database: talia_library_talia_test
|
|
11
|
+
username: rails
|
|
12
|
+
password: rails
|
|
10
13
|
host: localhost
|
|
11
|
-
|
|
12
|
-
username: talia
|
|
13
|
-
database: talia_2_3_new_talia_test
|
|
14
|
-
development:
|
|
14
|
+
production:
|
|
15
15
|
adapter: jdbcmysql
|
|
16
|
+
database: talia_library_talia_production
|
|
17
|
+
username: rails
|
|
18
|
+
password: rails
|
|
16
19
|
host: localhost
|
|
17
|
-
password: talia
|
|
18
|
-
username: talia
|
|
19
|
-
database: talia_2_3_new_talia_development
|
data/config/talia_core.yml
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
---
|
|
2
|
-
site_name: Talia 2.3.
|
|
3
|
-
rdf_connection_file: rdfstore
|
|
4
|
-
ardf_log_level: 0
|
|
5
2
|
local_uri: http://localhost:5000/
|
|
6
3
|
default_namespace_uri: http://default.dummy/
|
|
7
|
-
|
|
4
|
+
rdf_connection_file: rdfstore
|
|
5
|
+
ardf_log_level: 0
|
|
8
6
|
standalone_db: true
|
|
9
7
|
db_file: database
|
|
10
8
|
namespaces:
|
|
11
|
-
|
|
9
|
+
hyper: http://www.hypernietzsche.org/ontology/
|
|
10
|
+
foaf: http://xmlns.com/foaf/0.1/
|
|
11
|
+
skos: http://www.w3.org/2004/02/skos/core#
|
|
12
12
|
dct: http://purl.org/dc/terms/
|
|
13
13
|
dcmit: http://purl.org/dc/dcmitype/
|
|
14
|
-
|
|
14
|
+
dcns: http://purl.org/dc/elements/1.1/
|
|
15
|
+
luccadom: http://trac.talia.discovery-project.eu/wiki/LuccaOntology#
|
|
16
|
+
talias: http://trac.talia.discovery-project.eu/wiki/StructuralOntology#
|
|
17
|
+
taliadom: http://trac.talia.discovery-project.eu/wiki/SampleDomainOntology#
|
|
18
|
+
site_name: Talia Library
|
|
19
|
+
iip_root_directory_location:
|
|
@@ -32,11 +32,16 @@ namespaces:
|
|
|
32
32
|
# library.
|
|
33
33
|
# HyperNietzsche namespace
|
|
34
34
|
hyper: "http://www.hypernietzsche.org/ontology/"
|
|
35
|
+
# FOAF
|
|
36
|
+
foaf: http://xmlns.com/foaf/0.1/
|
|
37
|
+
# SKOS
|
|
38
|
+
skos: http://www.w3.org/2004/02/skos/core#
|
|
35
39
|
# DublinCore namespace
|
|
40
|
+
dct: http://purl.org/dc/terms/
|
|
41
|
+
dcmit: http://purl.org/dc/dcmitype/
|
|
36
42
|
dcns: "http://purl.org/dc/elements/1.1/"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
# Used in demo apps
|
|
44
|
+
luccadom: http://trac.talia.discovery-project.eu/wiki/LuccaOntology#
|
|
45
|
+
talias: http://trac.talia.discovery-project.eu/wiki/StructuralOntology#
|
|
46
|
+
taliadom: http://trac.talia.discovery-project.eu/wiki/SampleDomainOntology#
|
|
47
|
+
sesame: http://www.openrdf.org/schema/sesame#
|
|
@@ -27,6 +27,9 @@ class TaliaBaseGenerator < Rails::Generator::Base
|
|
|
27
27
|
# The default ontologies
|
|
28
28
|
files_in m, 'ontologies'
|
|
29
29
|
|
|
30
|
+
# The whole public dir
|
|
31
|
+
files_in m, 'public'
|
|
32
|
+
|
|
30
33
|
# Set up the rake tasks, only if we come from a gem
|
|
31
34
|
if(Gem.source_index.find_name('talia_core').first)
|
|
32
35
|
m.directory 'lib/tasks'
|
|
@@ -6,7 +6,7 @@ script/configure_talia
|
|
|
6
6
|
to set up the main configuration for database and RDF store. You can also
|
|
7
7
|
create the configuration by hand.
|
|
8
8
|
|
|
9
|
-
WARNING: Talia can create HUGE
|
|
9
|
+
WARNING: Talia can create HUGE log files, depending on the level. It is
|
|
10
10
|
highly recommended that you at least add something like this to your
|
|
11
11
|
environment.rb file:
|
|
12
12
|
|
|
@@ -37,7 +37,7 @@ class SourceDataController < ApplicationController
|
|
|
37
37
|
def send_record_data(record)
|
|
38
38
|
send_data record.content_string, :type => record.mime_type,
|
|
39
39
|
:disposition => 'inline',
|
|
40
|
-
:filename =>
|
|
40
|
+
:filename => record.location
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
class SourcesController < ApplicationController
|
|
2
2
|
include TaliaCore
|
|
3
3
|
|
|
4
|
-
before_filter :setup_format, :
|
|
4
|
+
before_filter :setup_format, :only => [ 'show' ]
|
|
5
5
|
|
|
6
6
|
PER_PAGE = 10
|
|
7
7
|
|
|
@@ -10,14 +10,15 @@ class SourcesController < ApplicationController
|
|
|
10
10
|
def index
|
|
11
11
|
@rdf_types ||= self.class.source_types
|
|
12
12
|
|
|
13
|
-
conditions =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
{}
|
|
13
|
+
conditions = { :prefetch_relations => true, :include => :data_records }
|
|
14
|
+
if(filter = params[:filter])
|
|
15
|
+
conditions.merge!(:find_through => [N::RDF.type, N::URI.make_uri(filter, '+')])
|
|
17
16
|
end
|
|
18
17
|
if(will_paginate?)
|
|
18
|
+
@pagination = true
|
|
19
19
|
@sources = TaliaCore::ActiveSource.paginate(conditions.merge(:page => params[:page]))
|
|
20
20
|
else
|
|
21
|
+
@pagination = false
|
|
21
22
|
@sources = TaliaCore::ActiveSource.find(:all, conditions)
|
|
22
23
|
end
|
|
23
24
|
end
|
|
@@ -66,9 +67,29 @@ class SourcesController < ApplicationController
|
|
|
66
67
|
self.send(caller) if(self.respond_to?(caller))
|
|
67
68
|
end
|
|
68
69
|
respond_to do |format|
|
|
70
|
+
format.html { render :action => template_for(@source) }
|
|
69
71
|
format.xml { render :text => @source.to_xml }
|
|
70
72
|
format.rdf { render :text => @source.to_rdf }
|
|
71
|
-
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Autocompletion actions
|
|
77
|
+
|
|
78
|
+
def auto_complete_for_uri
|
|
79
|
+
if(s_uri = params[:record][:source])
|
|
80
|
+
s_uri_parts = s_uri.split(':')
|
|
81
|
+
options = { :limit => 10 }
|
|
82
|
+
@records = if(s_uri.include?('://'))
|
|
83
|
+
TaliaCore::ActiveSource.find_by_partial_uri(s_uri, options)
|
|
84
|
+
elsif(s_uri_parts.size == 2)
|
|
85
|
+
TaliaCore::ActiveSource.find_by_partial_local(s_uri_parts.first, s_uri_parts.last, options)
|
|
86
|
+
else
|
|
87
|
+
TaliaCore::ActiveSource.find_by_uri_token(s_uri, options)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
render :inline => "<%= content_tag(:ul, @records.map { |rec| content_tag(:li, h(N::URI.new(rec.uri).to_name_s)) }) %>"
|
|
91
|
+
else
|
|
92
|
+
render :inline => ''
|
|
72
93
|
end
|
|
73
94
|
end
|
|
74
95
|
|
|
@@ -81,8 +102,6 @@ class SourcesController < ApplicationController
|
|
|
81
102
|
params[:id] = split_id.first
|
|
82
103
|
params[:format] = (split_id.size > 1) ? split_id.last : 'html'
|
|
83
104
|
end
|
|
84
|
-
|
|
85
|
-
private
|
|
86
105
|
|
|
87
106
|
# Indicates if pagination is available.
|
|
88
107
|
def will_paginate?
|
|
@@ -108,7 +127,7 @@ class SourcesController < ApplicationController
|
|
|
108
127
|
# * If no other template is found, this will return the default template name
|
|
109
128
|
def template_for(source)
|
|
110
129
|
source.types.each do |type|
|
|
111
|
-
if(template = template_map[type.uri.to_s])
|
|
130
|
+
if(template = template_map[type.uri.to_s.downcase])
|
|
112
131
|
return template
|
|
113
132
|
end
|
|
114
133
|
end
|
|
@@ -149,14 +168,14 @@ class SourcesController < ApplicationController
|
|
|
149
168
|
# template for a source. This scans the template directory and connects
|
|
150
169
|
# the templates to the right RDF types
|
|
151
170
|
def map_templates_in(dir)
|
|
152
|
-
namespace =
|
|
153
|
-
|
|
171
|
+
namespace = File.basename(dir)
|
|
172
|
+
namesp_object = N::Namespace[namespace]
|
|
154
173
|
TaliaCore.logger.warn("WARNING: Template files in #{dir} are never used, no namespace: #{namespace}.") unless(namesp_object)
|
|
155
174
|
return unless(namesp_object)
|
|
156
175
|
Dir["#{dir}/*"].each do |template|
|
|
157
176
|
next unless(File.file?(template))
|
|
158
177
|
template = template_basename(template)
|
|
159
|
-
@template_map[(
|
|
178
|
+
@template_map[(namesp_object + template).to_s.downcase] = "semantic_templates/#{namespace}/#{template}"
|
|
160
179
|
end
|
|
161
180
|
end
|
|
162
181
|
|
|
@@ -17,7 +17,83 @@ module SourcesHelper
|
|
|
17
17
|
|
|
18
18
|
# Gets the title for a source
|
|
19
19
|
def title_for(source)
|
|
20
|
-
(source[N::DCNS.title].first || N::URI.new(source.uri).
|
|
20
|
+
(source[N::DCNS.title].first || source[N::RDF.label].first || N::URI.new(source.uri).local_name.titleize)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# If the element is a resource, create a link to the local resource page. Otherwise the element
|
|
24
|
+
# will be passed through unmodified
|
|
25
|
+
def semantic_target(element)
|
|
26
|
+
if(element.respond_to?(:uri))
|
|
27
|
+
uri = N::URI.new(element.uri)
|
|
28
|
+
# TODO: Could check if we are actually dealing with local uris here
|
|
29
|
+
link_to(uri.to_name_s, :controller => 'sources', :action => 'dispatch', :dispatch_uri => uri.local_name)
|
|
30
|
+
else
|
|
31
|
+
element
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Takes a list of data records and creates an image tag for each record, with a
|
|
36
|
+
# symbol image corresponding to the records mime type. The image will link to the
|
|
37
|
+
# record itself.
|
|
38
|
+
#
|
|
39
|
+
# You may modify this to suit your needs, and have a look at the
|
|
40
|
+
# #data_record_options method while you do.
|
|
41
|
+
def data_icons(data_records)
|
|
42
|
+
result = ''
|
|
43
|
+
data_records.each do |rec|
|
|
44
|
+
link_data = data_record_options(rec)
|
|
45
|
+
result << link_to(
|
|
46
|
+
image_tag("core/#{link_data.first}.png", :alt => rec.location, :title => rec.location),
|
|
47
|
+
{ :controller => 'source_data',
|
|
48
|
+
:action => 'show',
|
|
49
|
+
:id => rec.id },
|
|
50
|
+
link_data.last
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
result
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Creates a little image for each (RDF) type. By default,
|
|
58
|
+
# it will use the same picture for (almost) everything,
|
|
59
|
+
# but you can add additional images easily by adding more entries
|
|
60
|
+
def type_images(types)
|
|
61
|
+
@type_map ||= {
|
|
62
|
+
N::TALIA.Source => 'source',
|
|
63
|
+
N::FOAF.Group => 'group',
|
|
64
|
+
N::FOAF.Person => 'person'
|
|
65
|
+
}
|
|
66
|
+
result = ''
|
|
67
|
+
types.each do |t|
|
|
68
|
+
image = @type_map[t] || 'source'
|
|
69
|
+
name = t.local_name.titleize
|
|
70
|
+
result << link_to(image_tag("core/#{image}.png", :alt => name, :title => name),
|
|
71
|
+
:action => 'index', :filter => t.to_name_s('+')
|
|
72
|
+
)
|
|
73
|
+
end
|
|
74
|
+
result
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
private
|
|
78
|
+
|
|
79
|
+
# Gives back a result list, the first element being the name of the image file
|
|
80
|
+
# without the extension. The second element is a hash containing options for
|
|
81
|
+
# the link to that data element. E.g. it would be possible to pass a css
|
|
82
|
+
# class giving
|
|
83
|
+
#
|
|
84
|
+
# ['image_name', {:class => 'my_class'}]
|
|
85
|
+
#
|
|
86
|
+
# Edit this method to suit your needs
|
|
87
|
+
def data_record_options(record)
|
|
88
|
+
if(record.mime.include?('image/'))
|
|
89
|
+
['image', {:class => 'cbox_image'}]
|
|
90
|
+
elsif(record.mime.include?('text/'))
|
|
91
|
+
['text', {:class =>'cbox_inline' }]
|
|
92
|
+
elsif(record.mime == 'application/xml')
|
|
93
|
+
['text', {:class => 'cbox_inline'}]
|
|
94
|
+
else
|
|
95
|
+
['gear', {}]
|
|
96
|
+
end
|
|
21
97
|
end
|
|
22
98
|
|
|
23
99
|
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
|
|
6
|
+
<title><%= h(yield(:title) || "Talia | The Digital Library") %></title>
|
|
7
|
+
<%= stylesheet_link_tag 'main' %>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="title_bar">
|
|
11
|
+
<h1><%= link_to h(yield(:title) || "Talia | The Digital Library"), 'root_path', :title => 'Home page'%></h1>
|
|
12
|
+
<p class="header_subtitle">Subtitle</p>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<!-- header end -->
|
|
16
|
+
<!-- contents: main part of the page - divided into external and internal -->
|
|
17
|
+
<div id="contents">
|
|
18
|
+
<%= yield %>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
</body>
|
|
22
|
+
</html>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<div class="properties_list">
|
|
2
|
+
<ul>
|
|
3
|
+
<% for record in @source.data_records %>
|
|
4
|
+
<li>
|
|
5
|
+
<p>
|
|
6
|
+
<% record_options = data_record_options(record) %>
|
|
7
|
+
<span class="predicate">
|
|
8
|
+
<%= link_to(record.location, { :controller => 'source_data', :action => 'show', :id => record.id }, record_options.last )%>
|
|
9
|
+
</span>
|
|
10
|
+
<span class="value">
|
|
11
|
+
<%= image_tag("demo/#{record_options.first}.png", :alt => record.mime, :title => record.mime) %> (<%= record.mime %>)
|
|
12
|
+
</span>
|
|
13
|
+
</p>
|
|
14
|
+
</li>
|
|
15
|
+
<% end %>
|
|
16
|
+
</ul>
|
|
17
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<div class ="properties_list">
|
|
2
|
+
<ul>
|
|
3
|
+
<% for attribute, value in @source.attributes %>
|
|
4
|
+
<%= render(:partial => 'property_item', :object => attribute, :locals => { :values => [value] }) %>
|
|
5
|
+
<% end %>
|
|
6
|
+
<% for predicate in @source.direct_predicates %>
|
|
7
|
+
<%= render(:partial => 'property_item', :object => predicate.to_name_s, :locals => { :values => @source[predicate] }) %>
|
|
8
|
+
<% end %>
|
|
9
|
+
<% for predicate in @source.inverse_predicates %>
|
|
10
|
+
<%= render(:partial => 'property_item', :object => "#{predicate.to_name_s} (inverse)", :locals => { :values => @source.inverse[predicate] }) %>
|
|
11
|
+
<% end %>
|
|
12
|
+
</ul>
|
|
13
|
+
</div>
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
<
|
|
4
|
-
<% for
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
<div class="sources_list">
|
|
2
|
+
<h1>Sources found: <%= @pagination ? @sources.total_entries : @sources.size %></h1>
|
|
3
|
+
<ul>
|
|
4
|
+
<% for source in @sources %>
|
|
5
|
+
<% next if(source.is_a?(TaliaCore::SourceTypes::DummySource)) %>
|
|
6
|
+
<li>
|
|
7
|
+
<p>
|
|
8
|
+
<span class="source_type"><%= type_images(source.types) %></span>
|
|
9
|
+
<span class="source_title"><%= title_for(source) %></span>
|
|
10
|
+
<span class="source-data"><%= data_icons(source.data_records) %></span>
|
|
11
|
+
<span class="more"> <%= link_to 'more...', :action => 'dispatch', :dispatch_uri => N::URI.new(source.uri).local_name %></span>
|
|
12
|
+
</p>
|
|
13
|
+
</li>
|
|
14
|
+
<% end %>
|
|
15
|
+
</ul>
|
|
7
16
|
</div>
|
|
8
17
|
|
|
9
|
-
|
|
10
|
-
<p><%= link_to title_for(source), source.uri.to_s %> (<%= source.class.name %>)</p>
|
|
11
|
-
<% end %>
|
|
12
|
-
|
|
13
|
-
<%= will_paginate @sources %>
|
|
18
|
+
<%= if(@pagination) ; will_paginate @sources ; end %>
|
data/generators/talia_base/templates/app/views/sources/semantic_templates/default/default.html.erb
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
<div class="back"><%= index_link %></div>
|
|
2
2
|
|
|
3
|
-
<h2><%= @source.uri.to_name_s %></h2>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
<% for predicate in @source.direct_predicates %>
|
|
12
|
-
<tr>
|
|
13
|
-
<td><%= predicate %></td>
|
|
14
|
-
<td>
|
|
15
|
-
<% @source[predicate].each do |val| %>
|
|
16
|
-
<%= val %><br/>
|
|
17
|
-
<% end %>
|
|
18
|
-
</td>
|
|
19
|
-
</tr>
|
|
20
|
-
<% end %>
|
|
21
|
-
</table>
|
|
3
|
+
<h2><%= @source[N::DCNS.title].first || @source[N::RDFS.label].first || @source.uri.to_name_s %></h2>
|
|
4
|
+
|
|
5
|
+
<%= render(:partial => 'property_list') %>
|
|
6
|
+
|
|
7
|
+
<% if(@source.data_records.size > 0) %>
|
|
8
|
+
<h2>Data Records</h2>
|
|
9
|
+
<%= render(:partial => 'data_list') %>
|
|
10
|
+
<% end %>
|
|
@@ -15,6 +15,14 @@ ActionController::Routing::Routes.draw do |map|
|
|
|
15
15
|
|
|
16
16
|
map.resource :session
|
|
17
17
|
|
|
18
|
+
map.logout '/logout', :controller => 'sessions', :action => 'destroy'
|
|
19
|
+
map.login '/login', :controller => 'sessions', :action => 'new'
|
|
20
|
+
map.register '/register', :controller => 'users', :action => 'create'
|
|
21
|
+
map.signup '/signup', :controller => 'users', :action => 'new'
|
|
22
|
+
map.resources :users
|
|
23
|
+
|
|
24
|
+
map.resource :session
|
|
25
|
+
|
|
18
26
|
# The priority is based upon order of creation: first created -> highest priority.
|
|
19
27
|
|
|
20
28
|
# Sample of regular route:
|
|
@@ -52,8 +60,11 @@ ActionController::Routing::Routes.draw do |map|
|
|
|
52
60
|
admin.resources :locales
|
|
53
61
|
admin.resources :background, :active_scaffold => true
|
|
54
62
|
admin.resources :custom_templates, :active_scaffold => true
|
|
63
|
+
admin.resources :data_records, :active_scaffold => true
|
|
55
64
|
end
|
|
56
65
|
|
|
66
|
+
map.connect 'sources/auto_complete_for_uri', :controller => 'sources', :action => 'auto_complete_for_uri'
|
|
67
|
+
|
|
57
68
|
# Routes for login and users handling
|
|
58
69
|
map.resources :users
|
|
59
70
|
map.login 'login', :controller => 'sessions', :action => 'create'
|
|
@@ -8,7 +8,8 @@ class CreateSemanticRelations < ActiveRecord::Migration
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
add_index :semantic_relations, :predicate_uri, :unique => false
|
|
11
|
-
|
|
11
|
+
add_index :semantic_relations, :subject_id, :unique => false
|
|
12
|
+
add_index :semantic_relations, :object_id, :unique => false
|
|
12
13
|
end
|
|
13
14
|
|
|
14
15
|
def self.down
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|