triannon 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +21 -16
- data/Rakefile +15 -18
- data/app/controllers/concerns/rdf_response_formats.rb +16 -14
- data/app/controllers/triannon/annotations_controller.rb +6 -6
- data/app/models/triannon/annotation.rb +5 -5
- data/app/models/triannon/annotation_ldp.rb +17 -16
- data/app/services/triannon/ldp_loader.rb +14 -4
- data/app/services/triannon/ldp_to_oa_mapper.rb +68 -59
- data/app/services/triannon/ldp_writer.rb +180 -59
- data/app/services/triannon/solr_searcher.rb +8 -8
- data/app/services/triannon/solr_writer.rb +12 -12
- data/config/jetty/etc/fedora-override-web.xml +67 -0
- data/config/routes.rb +2 -2
- data/config/triannon.yml +29 -6
- data/lib/generators/triannon/install_generator.rb +23 -3
- data/lib/rdf/triannon_vocab.rb +2 -2
- data/lib/tasks/triannon_tasks.rake +19 -5
- data/lib/triannon.rb +13 -20
- data/lib/triannon/iiif_anno_list.rb +4 -4
- data/lib/triannon/oa_graph_helper.rb +51 -0
- data/lib/triannon/version.rb +1 -1
- metadata +35 -39
- data/app/services/triannon/root_annotation_creator.rb +0 -36
- data/lib/triannon/graph.rb +0 -173
- data/lib/triannon/jsonld_context.rb +0 -13
@@ -4,9 +4,9 @@ module Triannon
|
|
4
4
|
# DO NOT CALL before anno is stored: the graph should have an assigned url for the
|
5
5
|
# @id of the root; it shouldn't be a blank node
|
6
6
|
#
|
7
|
-
# Convert a
|
7
|
+
# Convert a OA::Graph object into a Hash suitable for writing to Solr.
|
8
8
|
#
|
9
|
-
# @param [
|
9
|
+
# @param [OA::Graph] triannon_graph a populated OA::Graph object for a *stored* anno
|
10
10
|
# @return [Hash] a hash to be written to Solr, populated appropriately
|
11
11
|
def self.solr_hash(triannon_graph)
|
12
12
|
doc_hash = {}
|
@@ -18,7 +18,7 @@ module Triannon
|
|
18
18
|
doc_hash[:id] = solr_id.sub(/^\/*/, "") # remove first char slash(es) if present
|
19
19
|
|
20
20
|
# use short strings for motivation field
|
21
|
-
doc_hash[:motivation] = triannon_graph.motivated_by.map { |m| m.sub(RDF::
|
21
|
+
doc_hash[:motivation] = triannon_graph.motivated_by.map { |m| m.sub(RDF::Vocab::OA.to_s, "") }
|
22
22
|
|
23
23
|
# date field format: 1995-12-31T23:59:59Z; or w fractional seconds: 1995-12-31T23:59:59.999Z
|
24
24
|
if triannon_graph.annotated_at
|
@@ -31,11 +31,11 @@ module Triannon
|
|
31
31
|
end
|
32
32
|
#doc_hash[:annotated_by_stem] # not yet implemented
|
33
33
|
|
34
|
-
doc_hash[:target_url] = triannon_graph.predicate_urls RDF::
|
34
|
+
doc_hash[:target_url] = triannon_graph.predicate_urls RDF::Vocab::OA.hasTarget
|
35
35
|
# TODO: recognize more target types
|
36
36
|
doc_hash[:target_type] = ['external_URI'] if doc_hash[:target_url].size > 0
|
37
37
|
|
38
|
-
doc_hash[:body_url] = triannon_graph.predicate_urls RDF::
|
38
|
+
doc_hash[:body_url] = triannon_graph.predicate_urls RDF::Vocab::OA.hasBody
|
39
39
|
doc_hash[:body_type] = []
|
40
40
|
doc_hash[:body_type] << 'external_URI' if doc_hash[:body_url].size > 0
|
41
41
|
doc_hash[:body_chars_exact] = triannon_graph.body_chars.map {|bc| bc.strip}
|
@@ -57,9 +57,9 @@ module Triannon
|
|
57
57
|
@max_sleep_seconds = Triannon.config[:max_sleep_seconds] || 5
|
58
58
|
end
|
59
59
|
|
60
|
-
# Convert the
|
60
|
+
# Convert the OA::Graph to a Solr document hash, then call RSolr.add
|
61
61
|
# with the doc hash
|
62
|
-
# @param [
|
62
|
+
# @param [OA::Graph] tgraph anno represented as a OA::Graph
|
63
63
|
def write(tgraph)
|
64
64
|
doc_hash = self.class.solr_hash(tgraph) if tgraph && !tgraph.id_as_url.empty?
|
65
65
|
add(doc_hash) if doc_hash && !doc_hash.empty?
|
@@ -75,9 +75,9 @@ module Triannon
|
|
75
75
|
@logger.debug "#{exception.inspect} on Solr add attempt #{attempt_cnt} for #{id}"
|
76
76
|
if exception.kind_of?(RSolr::Error::Http)
|
77
77
|
# Note there are extra shenanigans b/c RSolr hijacks the Solr error to return RSolr Error
|
78
|
-
|
78
|
+
fail Triannon::SearchError.new("error adding doc #{id} to Solr #{doc.inspect}; #{exception.message}", exception.response[:status], exception.response[:body])
|
79
79
|
elsif exception.kind_of?(StandardError)
|
80
|
-
|
80
|
+
fail Triannon::SearchError.new("error adding doc #{id} to Solr #{doc.inspect}; #{exception.message}")
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -101,9 +101,9 @@ module Triannon
|
|
101
101
|
@logger.debug "#{exception.inspect} on Solr delete attempt #{attempt_cnt} for #{id}"
|
102
102
|
if exception.kind_of?(RSolr::Error::Http)
|
103
103
|
# Note there are extra shenanigans b/c RSolr hijacks the Solr error to return RSolr Error
|
104
|
-
|
104
|
+
fail Triannon::SearchError.new("error deleting doc #{id} from Solr: #{exception.message}", exception.response[:status], exception.response[:body])
|
105
105
|
elsif exception.kind_of?(StandardError)
|
106
|
-
|
106
|
+
fail Triannon::SearchError.new("error deleting doc #{id} from Solr: #{exception.message}")
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
@@ -120,4 +120,4 @@ module Triannon
|
|
120
120
|
end
|
121
121
|
|
122
122
|
end
|
123
|
-
end
|
123
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
|
3
|
+
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
|
4
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
5
|
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
|
6
|
+
version="3.0">
|
7
|
+
|
8
|
+
<display-name>Fedora 4</display-name>
|
9
|
+
|
10
|
+
<context-param>
|
11
|
+
<param-name>contextConfigLocation</param-name>
|
12
|
+
<param-value>WEB-INF/classes/spring/master.xml</param-value>
|
13
|
+
</context-param>
|
14
|
+
|
15
|
+
<listener>
|
16
|
+
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
17
|
+
</listener>
|
18
|
+
|
19
|
+
<servlet>
|
20
|
+
<servlet-name>jersey-servlet</servlet-name>
|
21
|
+
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
|
22
|
+
|
23
|
+
<init-param>
|
24
|
+
<param-name>javax.ws.rs.Application</param-name>
|
25
|
+
<param-value>org.fcrepo.http.commons.FedoraApplication</param-value>
|
26
|
+
</init-param>
|
27
|
+
|
28
|
+
<load-on-startup>1</load-on-startup>
|
29
|
+
<async-supported>true</async-supported>
|
30
|
+
</servlet>
|
31
|
+
|
32
|
+
<servlet-mapping>
|
33
|
+
<servlet-name>jersey-servlet</servlet-name>
|
34
|
+
<url-pattern>/rest/*</url-pattern>
|
35
|
+
|
36
|
+
</servlet-mapping>
|
37
|
+
|
38
|
+
<!-- commenting out to disable Basic-Authentication -->
|
39
|
+
<!--
|
40
|
+
<security-constraint>
|
41
|
+
<web-resource-collection>
|
42
|
+
<web-resource-name>Fedora4</web-resource-name>
|
43
|
+
<url-pattern>/*</url-pattern>
|
44
|
+
<http-method>DELETE</http-method>
|
45
|
+
<http-method>PUT</http-method>
|
46
|
+
<http-method>HEAD</http-method>
|
47
|
+
<http-method>OPTIONS</http-method>
|
48
|
+
<http-method>PATCH</http-method>
|
49
|
+
<http-method>GET</http-method>
|
50
|
+
<http-method>POST</http-method>
|
51
|
+
</web-resource-collection>
|
52
|
+
<auth-constraint>
|
53
|
+
<role-name>fedoraUser</role-name>
|
54
|
+
<role-name>fedoraAdmin</role-name>
|
55
|
+
</auth-constraint>
|
56
|
+
<user-data-constraint>
|
57
|
+
<transport-guarantee>NONE</transport-guarantee>
|
58
|
+
</user-data-constraint>
|
59
|
+
</security-constraint>
|
60
|
+
-->
|
61
|
+
|
62
|
+
<login-config>
|
63
|
+
<auth-method>BASIC</auth-method>
|
64
|
+
<realm-name>fcrepo</realm-name>
|
65
|
+
</login-config>
|
66
|
+
|
67
|
+
</web-app>
|
data/config/routes.rb
CHANGED
@@ -7,7 +7,7 @@ Triannon::Engine.routes.draw do
|
|
7
7
|
constraints: lambda { |request|
|
8
8
|
id = request.env["action_dispatch.request.path_parameters"][:id]
|
9
9
|
id !~ /^iiif$/ && id !~ /^oa$/ && id !~ /^search$/
|
10
|
-
|
10
|
+
} do
|
11
11
|
collection do
|
12
12
|
get 'search', to: 'search#find'
|
13
13
|
end
|
@@ -26,6 +26,6 @@ Triannon::Engine.routes.draw do
|
|
26
26
|
jsonld_context = request.env["action_dispatch.request.path_parameters"][:jsonld_context]
|
27
27
|
id = request.env["action_dispatch.request.path_parameters"][:id]
|
28
28
|
(jsonld_context =~ /^iiif$/ || jsonld_context =~ /^oa$/ ) && id !~ /^new$/
|
29
|
-
|
29
|
+
}
|
30
30
|
|
31
31
|
end
|
data/config/triannon.yml
CHANGED
@@ -1,15 +1,38 @@
|
|
1
1
|
development:
|
2
|
-
|
3
|
-
|
2
|
+
ldp:
|
3
|
+
url: http://your.ldp_store_url.here
|
4
|
+
# uber_container: LDP BasicContainer that will have anno containers as members
|
5
|
+
uber_container: anno
|
6
|
+
# anno_containers: LDP BasicContainers that will have individual annotations as members
|
7
|
+
# the container names here will also map to paths in the triannon url, e.g.
|
8
|
+
# "foo" here will mean you add a foo anno by POST to http://your.triannon-server.com/annotations/foo
|
9
|
+
# and you get the foo anno by GET to http://your.triannon-server.com/annotations/foo/(anno_uuid)
|
10
|
+
anno_containers:
|
11
|
+
- foo
|
12
|
+
- blah
|
13
|
+
solr_url: http://your.triannon_solr_url.here
|
14
|
+
# triannon_base_url: the prefix for the urls for your annos
|
4
15
|
triannon_base_url: http://your.triannon-server.com/annotations/
|
5
16
|
max_solr_retries: 5
|
6
17
|
base_sleep_seconds: 1
|
7
18
|
max_sleep_seconds: 5
|
19
|
+
|
8
20
|
test: &test
|
9
|
-
|
10
|
-
|
21
|
+
ldp:
|
22
|
+
url: http://your.ldp_store_url.here
|
23
|
+
uber_container: anno
|
24
|
+
anno_containers:
|
25
|
+
- foo
|
26
|
+
- blah
|
27
|
+
solr_url: http://your.triannon_solr_url.here
|
11
28
|
triannon_base_url: http://your.triannon-server.com/annotations/
|
29
|
+
|
12
30
|
production:
|
13
|
-
|
14
|
-
|
31
|
+
ldp:
|
32
|
+
url: http://your.ldp_store_url.here
|
33
|
+
uber_container: anno
|
34
|
+
anno_containers:
|
35
|
+
- foo
|
36
|
+
- blah
|
37
|
+
solr_url: http://your.triannon_solr_url.here
|
15
38
|
triannon_base_url: http://your.triannon-server.com/annotations/
|
@@ -11,18 +11,38 @@ module Triannon
|
|
11
11
|
def create_triannon_yml_file
|
12
12
|
default_yml =<<-YML
|
13
13
|
development:
|
14
|
-
|
14
|
+
ldp:
|
15
|
+
url: http://localhost:8983/fedora/rest
|
16
|
+
# uber_container: LDP BasicContainer that will have anno containers as members
|
17
|
+
uber_container: anno
|
18
|
+
# anno_containers: LDP BasicContainers that will have individual annotations as members
|
19
|
+
# the container names here will also map to paths in the triannon url, e.g.
|
20
|
+
# "foo" here will mean you add a foo anno by POST to http://your.triannon-server.com/annotations/foo
|
21
|
+
# and you get the foo anno by GET to http://your.triannon-server.com/annotations/foo/(anno_uuid)
|
22
|
+
anno_containers:
|
23
|
+
- foo
|
24
|
+
- blah
|
15
25
|
solr_url: http://localhost:8983/solr/triannon
|
16
26
|
triannon_base_url: http://your.triannon-server.com/annotations/
|
17
27
|
max_solr_retries: 5
|
18
28
|
base_sleep_seconds: 1
|
19
29
|
max_sleep_seconds: 5
|
20
30
|
test: &test
|
21
|
-
|
31
|
+
ldp:
|
32
|
+
url: http://localhost:8983/fedora/rest
|
33
|
+
uber_container: anno
|
34
|
+
anno_containers:
|
35
|
+
- foo
|
36
|
+
- blah
|
22
37
|
solr_url: http://localhost:8983/solr/triannon
|
23
38
|
triannon_base_url: http://your.triannon-server.com/annotations/
|
24
39
|
production:
|
25
|
-
|
40
|
+
ldp:
|
41
|
+
url:
|
42
|
+
uber_container: anno
|
43
|
+
anno_containers:
|
44
|
+
- foo
|
45
|
+
- blah
|
26
46
|
solr_url:
|
27
47
|
triannon_base_url:
|
28
48
|
YML
|
data/lib/rdf/triannon_vocab.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rdf'
|
2
2
|
module RDF
|
3
|
-
# contains RDF predefined terms and properties for Triannon
|
3
|
+
# contains RDF predefined terms and properties for Triannon
|
4
4
|
class Triannon < RDF::StrictVocabulary("http://triannon.stanford.edu/ns/")
|
5
5
|
|
6
6
|
# Property definitions
|
@@ -11,4 +11,4 @@ module RDF
|
|
11
11
|
range: "xsd:anyURI".freeze, # rdf:URI? rdfs:Resource?
|
12
12
|
type: "rdf:Property".freeze
|
13
13
|
end
|
14
|
-
end
|
14
|
+
end
|
@@ -1,11 +1,25 @@
|
|
1
|
-
require_relative '../../app/services/triannon/
|
1
|
+
require_relative '../../app/services/triannon/ldp_writer'
|
2
2
|
|
3
3
|
namespace :triannon do
|
4
|
-
desc "
|
5
|
-
task :
|
6
|
-
|
4
|
+
desc "set up jetty for triannon"
|
5
|
+
task :jetty_setup => [:solr_jetty_setup, :disable_fedora_auth_in_jetty]
|
6
|
+
|
7
|
+
desc "set up triannon Solr in jetty"
|
8
|
+
task :solr_jetty_setup do
|
9
|
+
`cp -r config/solr/triannon-core jetty/solr`
|
10
|
+
`cp config/solr/solr.xml jetty/solr`
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "disable fedora basic authorization in jetty"
|
14
|
+
task :disable_fedora_auth_in_jetty do
|
15
|
+
`cp config/jetty/etc/* jetty/etc`
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'Create the uber root annotation container'
|
19
|
+
task :create_uber_root_container do
|
20
|
+
unless File.exist? Triannon.triannon_file
|
7
21
|
puts "Triannon config file missing: #{Triannon.triannon_file}"
|
8
22
|
end
|
9
|
-
Triannon::
|
23
|
+
Triannon::LdpWriter.create_basic_container(nil, Triannon.config[:ldp]['uber_container'])
|
10
24
|
end
|
11
25
|
end
|
data/lib/triannon.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'linkeddata'
|
2
|
-
require '
|
2
|
+
require 'oa/graph'
|
3
3
|
require 'rdf/iiif'
|
4
|
-
require 'rdf/ldp'
|
5
|
-
require 'rdf/fcrepo4'
|
6
4
|
require 'rdf/triannon_vocab'
|
7
5
|
require 'bootstrap-sass'
|
8
6
|
require 'faraday' # for writing to LDP store
|
@@ -10,23 +8,22 @@ require 'rsolr'
|
|
10
8
|
require 'retries' # for writing to Solr
|
11
9
|
|
12
10
|
module Triannon
|
13
|
-
require
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require "triannon/jsonld_context"
|
11
|
+
require 'triannon/engine'
|
12
|
+
require 'triannon/error'
|
13
|
+
require 'triannon/iiif_anno_list'
|
14
|
+
require 'triannon/oa_graph_helper.rb'
|
18
15
|
|
19
16
|
class << self
|
20
17
|
attr_accessor :config
|
21
18
|
end
|
22
19
|
|
23
20
|
def self.triannon_file
|
24
|
-
"#{::Rails.root
|
21
|
+
"#{::Rails.root}/config/triannon.yml"
|
25
22
|
end
|
26
23
|
|
27
24
|
def self.config
|
28
25
|
@triannon_config ||= begin
|
29
|
-
|
26
|
+
fail "The #{::Rails.env} environment settings were not found in the triannon.yml config" unless config_yml[::Rails.env]
|
30
27
|
config_yml[::Rails.env].symbolize_keys
|
31
28
|
end
|
32
29
|
end
|
@@ -36,23 +33,19 @@ module Triannon
|
|
36
33
|
require 'yaml'
|
37
34
|
|
38
35
|
return @triannon_yml if @triannon_yml
|
39
|
-
unless File.
|
40
|
-
raise "You are missing the triannon configuration file: #{triannon_file}."
|
41
|
-
end
|
36
|
+
fail "You are missing the triannon configuration file: #{triannon_file}." unless File.exist?(triannon_file)
|
42
37
|
|
43
38
|
begin
|
44
|
-
@triannon_yml = YAML
|
45
|
-
rescue
|
46
|
-
raise
|
39
|
+
@triannon_yml = YAML.load_file(triannon_file)
|
40
|
+
rescue
|
41
|
+
raise 'triannon.yml was found, but could not be parsed.'
|
47
42
|
end
|
48
43
|
|
49
44
|
if @triannon_yml.nil? || !@triannon_yml.is_a?(Hash)
|
50
|
-
|
45
|
+
fail 'triannon.yml was found, but was blank or malformed.'
|
51
46
|
end
|
52
47
|
|
53
|
-
|
48
|
+
@triannon_yml
|
54
49
|
end
|
55
50
|
|
56
|
-
|
57
|
-
|
58
51
|
end
|
@@ -27,14 +27,14 @@ module Triannon
|
|
27
27
|
|
28
28
|
# Class Methods ----------------------------------------------------------------
|
29
29
|
|
30
|
-
# take an Array of annos as
|
30
|
+
# take an Array of annos as OA::Graph objects and return a Hash representation
|
31
31
|
# of IIIF Annotation List
|
32
|
-
# @param [Array<
|
32
|
+
# @param [Array<OA::Graph>] tgraph_array annotations as OA::Graph objects
|
33
33
|
# @return [Hash] IIIF Annotation List as a Hash, containing the annotations in the array
|
34
34
|
def self.anno_list(tgraph_array)
|
35
35
|
if tgraph_array
|
36
36
|
result = {
|
37
|
-
"@context" =>
|
37
|
+
"@context" => OA::Graph::IIIF_CONTEXT_URL,
|
38
38
|
"@type" => "sc:AnnotationList",
|
39
39
|
"within" => {"@type" => "sc:Layer", "total" => tgraph_array.size },
|
40
40
|
"resources" => tgraph_array.map { |g|
|
@@ -56,4 +56,4 @@ module Triannon
|
|
56
56
|
end
|
57
57
|
|
58
58
|
end
|
59
|
-
end
|
59
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'oa/graph'
|
2
|
+
|
3
|
+
# mixin methods
|
4
|
+
module OA
|
5
|
+
class Graph
|
6
|
+
|
7
|
+
# returns graph without any LDP-specific triples
|
8
|
+
def self.remove_ldp_triples graph
|
9
|
+
if graph && graph.is_a?(RDF::Graph) && graph.count > 0
|
10
|
+
no_ldp_graph = RDF::Graph.new
|
11
|
+
ldp_props = RDF::Vocab::LDP.properties.map {|p| p.to_s}
|
12
|
+
graph.each { |stmt|
|
13
|
+
no_ldp_graph << stmt unless ldp_props.include?(stmt.predicate.to_s) ||
|
14
|
+
ldp_props.include?(stmt.object.to_s) ||
|
15
|
+
ldp_props.include?(stmt.subject.to_s)
|
16
|
+
}
|
17
|
+
no_ldp_graph
|
18
|
+
else
|
19
|
+
graph
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# returns graph without any fedora-specific triples
|
24
|
+
# note that the Fedora vocab is not complete and also doesn't include modeshape
|
25
|
+
def self.remove_fedora_triples graph
|
26
|
+
if graph && graph.is_a?(RDF::Graph) && graph.count > 0
|
27
|
+
no_fedora_graph = RDF::Graph.new
|
28
|
+
fedora_props = RDF::Vocab::Fcrepo4.properties.map {|p| p.to_s}
|
29
|
+
fedora_ns = "http://fedora.info/definitions"
|
30
|
+
modeshape_ns = "http://www.jcp.org/jcr"
|
31
|
+
# describable predates Fedora 4.1.1, but just in case ...
|
32
|
+
fedora_describable = "http://purl.org/dc/elements/1.1/describable"
|
33
|
+
graph.each { |stmt|
|
34
|
+
no_fedora_graph << stmt unless fedora_props.include?(stmt.predicate.to_s) ||
|
35
|
+
fedora_props.include?(stmt.object.to_s) ||
|
36
|
+
fedora_props.include?(stmt.subject.to_s) ||
|
37
|
+
stmt.predicate.to_s.match(fedora_ns) ||
|
38
|
+
stmt.predicate.to_s.match(modeshape_ns) ||
|
39
|
+
stmt.subject.to_s.match(fedora_ns) ||
|
40
|
+
stmt.object.to_s.match(fedora_ns) ||
|
41
|
+
stmt.object.to_s.match(modeshape_ns) ||
|
42
|
+
stmt.object.to_s == (fedora_describable)
|
43
|
+
}
|
44
|
+
no_fedora_graph
|
45
|
+
else
|
46
|
+
graph
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
data/lib/triannon/version.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: triannon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Chris Beer
|
8
7
|
- Naomi Dushay
|
9
8
|
- Willy Mene
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2015-
|
12
|
+
date: 2015-05-08 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rails
|
@@ -41,7 +40,7 @@ dependencies:
|
|
41
40
|
- !ruby/object:Gem::Version
|
42
41
|
version: '0'
|
43
42
|
- !ruby/object:Gem::Dependency
|
44
|
-
name:
|
43
|
+
name: oa-graph
|
45
44
|
requirement: !ruby/object:Gem::Requirement
|
46
45
|
requirements:
|
47
46
|
- - ">="
|
@@ -68,34 +67,6 @@ dependencies:
|
|
68
67
|
- - ">="
|
69
68
|
- !ruby/object:Gem::Version
|
70
69
|
version: '0'
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: rdf-ldp
|
73
|
-
requirement: !ruby/object:Gem::Requirement
|
74
|
-
requirements:
|
75
|
-
- - ">="
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
78
|
-
type: :runtime
|
79
|
-
prerelease: false
|
80
|
-
version_requirements: !ruby/object:Gem::Requirement
|
81
|
-
requirements:
|
82
|
-
- - ">="
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: '0'
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
name: rdf-fcrepo4
|
87
|
-
requirement: !ruby/object:Gem::Requirement
|
88
|
-
requirements:
|
89
|
-
- - ">="
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
version: '0'
|
92
|
-
type: :runtime
|
93
|
-
prerelease: false
|
94
|
-
version_requirements: !ruby/object:Gem::Requirement
|
95
|
-
requirements:
|
96
|
-
- - ">="
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: '0'
|
99
70
|
- !ruby/object:Gem::Dependency
|
100
71
|
name: bootstrap-sass
|
101
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -278,6 +249,34 @@ dependencies:
|
|
278
249
|
- - ">="
|
279
250
|
- !ruby/object:Gem::Version
|
280
251
|
version: '0'
|
252
|
+
- !ruby/object:Gem::Dependency
|
253
|
+
name: rubocop
|
254
|
+
requirement: !ruby/object:Gem::Requirement
|
255
|
+
requirements:
|
256
|
+
- - ">="
|
257
|
+
- !ruby/object:Gem::Version
|
258
|
+
version: '0'
|
259
|
+
type: :development
|
260
|
+
prerelease: false
|
261
|
+
version_requirements: !ruby/object:Gem::Requirement
|
262
|
+
requirements:
|
263
|
+
- - ">="
|
264
|
+
- !ruby/object:Gem::Version
|
265
|
+
version: '0'
|
266
|
+
- !ruby/object:Gem::Dependency
|
267
|
+
name: rubocop-rspec
|
268
|
+
requirement: !ruby/object:Gem::Requirement
|
269
|
+
requirements:
|
270
|
+
- - ">="
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: '0'
|
273
|
+
type: :development
|
274
|
+
prerelease: false
|
275
|
+
version_requirements: !ruby/object:Gem::Requirement
|
276
|
+
requirements:
|
277
|
+
- - ">="
|
278
|
+
- !ruby/object:Gem::Version
|
279
|
+
version: '0'
|
281
280
|
- !ruby/object:Gem::Dependency
|
282
281
|
name: rest-client
|
283
282
|
requirement: !ruby/object:Gem::Requirement
|
@@ -322,9 +321,7 @@ dependencies:
|
|
322
321
|
version: '0'
|
323
322
|
description:
|
324
323
|
email:
|
325
|
-
-
|
326
|
-
- ndushay@stanford.edu
|
327
|
-
- wmene@stanford.edu
|
324
|
+
- triannon-commits@lists.stanford.edu
|
328
325
|
executables: []
|
329
326
|
extensions: []
|
330
327
|
extra_rdoc_files: []
|
@@ -345,7 +342,6 @@ files:
|
|
345
342
|
- app/services/triannon/ldp_loader.rb
|
346
343
|
- app/services/triannon/ldp_to_oa_mapper.rb
|
347
344
|
- app/services/triannon/ldp_writer.rb
|
348
|
-
- app/services/triannon/root_annotation_creator.rb
|
349
345
|
- app/services/triannon/solr_searcher.rb
|
350
346
|
- app/services/triannon/solr_writer.rb
|
351
347
|
- app/views/layouts/triannon/application.html.erb
|
@@ -355,6 +351,7 @@ files:
|
|
355
351
|
- app/views/triannon/annotations/show.html.erb
|
356
352
|
- app/views/triannon/search/find.html.erb
|
357
353
|
- config/initializers/mime_types.rb
|
354
|
+
- config/jetty/etc/fedora-override-web.xml
|
358
355
|
- config/routes.rb
|
359
356
|
- config/solr/solr.xml
|
360
357
|
- config/solr/triannon-core/conf/schema.xml
|
@@ -367,11 +364,10 @@ files:
|
|
367
364
|
- lib/triannon.rb
|
368
365
|
- lib/triannon/engine.rb
|
369
366
|
- lib/triannon/error.rb
|
370
|
-
- lib/triannon/graph.rb
|
371
367
|
- lib/triannon/iiif_anno_list.rb
|
372
|
-
- lib/triannon/
|
368
|
+
- lib/triannon/oa_graph_helper.rb
|
373
369
|
- lib/triannon/version.rb
|
374
|
-
homepage:
|
370
|
+
homepage: https://github.com/sul-dlss/triannon
|
375
371
|
licenses:
|
376
372
|
- Apache-2.0
|
377
373
|
metadata: {}
|