jekyll-rdf 3.0.0.pre.develop.302 → 3.0.0.pre.develop.303
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll/drops/rdf_resource.rb +6 -6
- data/lib/jekyll/drops/rdf_resource_class.rb +4 -7
- data/lib/jekyll/drops/rdf_statement.rb +4 -4
- data/lib/jekyll/drops/rdf_term.rb +7 -15
- data/lib/jekyll/filters/rdf_collection.rb +3 -7
- data/lib/jekyll/filters/rdf_container.rb +11 -10
- data/lib/jekyll/filters/rdf_get.rb +3 -23
- data/lib/jekyll/filters/rdf_property.rb +22 -31
- data/lib/jekyll/filters/rdf_resolve_prefix.rb +7 -7
- data/lib/jekyll/filters/rdf_sparql_query.rb +6 -7
- data/lib/jekyll/rdf_generator_helper.rb +2 -2
- data/lib/jekyll/rdf_main_generator.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f346de2c6991c2ec71e1592c5d25930d1687248
|
4
|
+
data.tar.gz: f2d2d7e7df296643875ed1e60bc96379f2ae90f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2bb9da378c60da2e41c1569a9a7df198538f33c450f53e68883a6b9dda3b6d18e827a603363243407600c556b3734fc98ada7e78cf456cb4043e535a3f346ced
|
7
|
+
data.tar.gz: 006da3873315523c57ef25bce40203888755a90a56d433cd3fb3cb307587b5964ca4fdcf4f1e9a78d531a5d2efa8d88886c7b3459332db909004ec61cac81d59
|
@@ -49,8 +49,8 @@ module Jekyll #:nodoc:
|
|
49
49
|
##
|
50
50
|
#
|
51
51
|
#
|
52
|
-
def initialize(term,
|
53
|
-
super(term
|
52
|
+
def initialize(term, site = nil, page = nil)
|
53
|
+
super(term)
|
54
54
|
if(site.is_a?(Jekyll::Site))
|
55
55
|
@site = site
|
56
56
|
end
|
@@ -161,19 +161,19 @@ module Jekyll #:nodoc:
|
|
161
161
|
case role
|
162
162
|
when :subject
|
163
163
|
query = "SELECT ?p ?o ?dt ?lit ?lang WHERE{ #{input_uri} ?p ?o BIND(datatype(?o) AS ?dt) BIND(isLiteral(?o) AS ?lit) BIND(lang(?o) AS ?lang)}"
|
164
|
-
sparql.query(query).map do |solution|
|
164
|
+
Jekyll::RdfHelper::sparql.query(query).map do |solution|
|
165
165
|
check = check_solution(solution)
|
166
166
|
create_statement(term.to_s, solution.p, solution.o, solution.lit, check[:lang], check[:data_type])
|
167
167
|
end
|
168
168
|
when :predicate
|
169
169
|
query = "SELECT ?s ?o ?dt ?lit ?lang WHERE{ ?s #{input_uri} ?o BIND(datatype(?o) AS ?dt) BIND(isLiteral(?o) AS ?lit) BIND(lang(?o) AS ?lang)}"
|
170
|
-
sparql.query(query).map do |solution|
|
170
|
+
Jekyll::RdfHelper::sparql.query(query).map do |solution|
|
171
171
|
check = check_solution(solution)
|
172
172
|
create_statement(solution.s, term.to_s, solution.o, solution.lit, check[:lang], check[:data_type])
|
173
173
|
end
|
174
174
|
when :object
|
175
175
|
query = "SELECT ?s ?p WHERE{ ?s ?p #{input_uri}}"
|
176
|
-
sparql.query(query).map do |solution|
|
176
|
+
Jekyll::RdfHelper::sparql.query(query).map do |solution|
|
177
177
|
create_statement( solution.s, solution.p, term.to_s)
|
178
178
|
end
|
179
179
|
else
|
@@ -209,7 +209,7 @@ module Jekyll #:nodoc:
|
|
209
209
|
else
|
210
210
|
object = RDF::URI(object_string)
|
211
211
|
end
|
212
|
-
return RdfStatement.new(RDF::Statement( subject, predicate, object), @
|
212
|
+
return RdfStatement.new(RDF::Statement( subject, predicate, object), @site)
|
213
213
|
end
|
214
214
|
|
215
215
|
private
|
@@ -38,13 +38,15 @@ module Jekyll #:nodoc:
|
|
38
38
|
attr_accessor :alternativeTemplates
|
39
39
|
attr_accessor :subClasses
|
40
40
|
attr_accessor :subClassHierarchyValue
|
41
|
+
attr_reader :sparql
|
41
42
|
|
42
43
|
def initialize(term, sparql)
|
43
|
-
super(term
|
44
|
+
super(term)
|
44
45
|
@subClasses = []
|
45
46
|
@lock = -1
|
46
47
|
@subClassHierarchyValue = 0
|
47
48
|
@alternativeTemplates = []
|
49
|
+
@sparql = sparql
|
48
50
|
end
|
49
51
|
|
50
52
|
def multiple_templates?
|
@@ -52,12 +54,7 @@ module Jekyll #:nodoc:
|
|
52
54
|
end
|
53
55
|
|
54
56
|
def find_direct_subclasses
|
55
|
-
|
56
|
-
term_uri = "<#{@term.to_s}>"
|
57
|
-
else
|
58
|
-
term_uri = @term.to_s
|
59
|
-
end
|
60
|
-
query = "SELECT ?s WHERE{ ?s <http://www.w3.org/2000/01/rdf-schema#subClassOf> #{term_uri}}"
|
57
|
+
query = "SELECT ?s WHERE{ ?s <http://www.w3.org/2000/01/rdf-schema#subClassOf> #{@term.to_ntriples}}"
|
61
58
|
selection = @sparql.query(query).map{ |solution| solution.s.to_s}
|
62
59
|
return selection
|
63
60
|
end
|
@@ -52,10 +52,10 @@ module Jekyll
|
|
52
52
|
# * +statement+ - The statement to be represented
|
53
53
|
# * +sparql+ - The SPARQL::Client which contains the +statement+
|
54
54
|
# * +site+ - The Jekyll::Site to be enriched
|
55
|
-
def initialize(statement,
|
56
|
-
@subject ||= Jekyll::Drops::RdfTerm.build_term_drop(statement.subject,
|
57
|
-
@predicate ||= Jekyll::Drops::RdfTerm.build_term_drop(statement.predicate,
|
58
|
-
@object ||= Jekyll::Drops::RdfTerm.build_term_drop(statement.object,
|
55
|
+
def initialize(statement, site)
|
56
|
+
@subject ||= Jekyll::Drops::RdfTerm.build_term_drop(statement.subject, site)
|
57
|
+
@predicate ||= Jekyll::Drops::RdfTerm.build_term_drop(statement.predicate, site)
|
58
|
+
@object ||= Jekyll::Drops::RdfTerm.build_term_drop(statement.object, site)
|
59
59
|
end
|
60
60
|
|
61
61
|
def inspect
|
@@ -36,31 +36,24 @@ module Jekyll
|
|
36
36
|
#
|
37
37
|
attr_reader :term
|
38
38
|
|
39
|
-
##
|
40
|
-
# The SPARQL::Client which contains the represented +term+
|
41
|
-
#
|
42
|
-
attr_reader :sparql
|
43
|
-
|
44
39
|
##
|
45
40
|
# Create a new Jekyll::Drops::RdfTerm
|
46
41
|
#
|
47
42
|
# * +term+ - The term to be represented
|
48
|
-
# * +sparql+ - The SPARQL::Client which contains the represented +term+
|
49
43
|
#
|
50
|
-
def initialize(term
|
44
|
+
def initialize(term)
|
51
45
|
@term ||= term
|
52
|
-
@sparql ||= sparql
|
53
46
|
end
|
54
47
|
|
55
48
|
##
|
56
|
-
#
|
49
|
+
# Function stub with no functionality. Its purpose is to keep RdfResource compatible.
|
57
50
|
#
|
58
51
|
def add_necessities (site, page)
|
59
52
|
return self
|
60
53
|
end
|
61
54
|
|
62
55
|
##
|
63
|
-
#
|
56
|
+
# Function stub with no functionality. Its purpose is to keep RdfResource compatible.
|
64
57
|
#
|
65
58
|
def ready?
|
66
59
|
return true;
|
@@ -69,7 +62,7 @@ module Jekyll
|
|
69
62
|
##
|
70
63
|
# Convert this RdfTerm into a string
|
71
64
|
# This should be:
|
72
|
-
# - for
|
65
|
+
# - for resources: the IRI
|
73
66
|
# - for literals: the literal representation e.g. "Hallo"@de or "123"^^<http://www.w3.org/2001/XMLSchema#integer>
|
74
67
|
#
|
75
68
|
def to_s
|
@@ -91,15 +84,14 @@ module Jekyll
|
|
91
84
|
# Convert an RDF term into a new Jekyll::Drops::RdfTerm
|
92
85
|
#
|
93
86
|
# * +term+ - The term to be represented
|
94
|
-
# * +sparql+ - The SPARQL::Client which contains the represented +term+
|
95
87
|
# * +site+ - The Jekyll::Site to be enriched
|
96
88
|
#
|
97
|
-
def self.build_term_drop(term,
|
89
|
+
def self.build_term_drop(term, site)
|
98
90
|
case term
|
99
91
|
when RDF::URI, RDF::Node
|
100
|
-
return RdfResource.new(term,
|
92
|
+
return RdfResource.new(term, site)
|
101
93
|
when RDF::Literal
|
102
|
-
return RdfLiteral.new(term,
|
94
|
+
return RdfLiteral.new(term,)
|
103
95
|
else
|
104
96
|
return nil
|
105
97
|
end
|
@@ -27,16 +27,12 @@
|
|
27
27
|
module Jekyll
|
28
28
|
module RdfCollection
|
29
29
|
def rdf_collection(input, predicate = nil)
|
30
|
-
sparql_query = input.sparql
|
31
|
-
unless predicate.nil?
|
32
|
-
predicate = rdf_resolve_prefix(input, predicate)
|
33
|
-
end
|
34
30
|
query = "SELECT ?f WHERE{ #{input.term.to_ntriples} " <<
|
35
|
-
(predicate.nil
|
31
|
+
(predicate.nil? ? "" : " <#{rdf_resolve_prefix(predicate)}> ?coll . ?coll ") <<
|
36
32
|
" <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest>* ?r. ?r <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ?f}"
|
37
33
|
results = []
|
38
|
-
|
39
|
-
results.push Jekyll::Drops::RdfTerm.build_term_drop(solution.f,
|
34
|
+
Jekyll::RdfHelper::sparql.query(query).each{ |solution|
|
35
|
+
results.push Jekyll::Drops::RdfTerm.build_term_drop(solution.f, Jekyll::RdfHelper::site).add_necessities(Jekyll::RdfHelper::site, Jekyll::RdfHelper::page)
|
40
36
|
}
|
41
37
|
return results
|
42
38
|
end
|
@@ -27,28 +27,29 @@ module Jekyll
|
|
27
27
|
module RdfContainer
|
28
28
|
include Jekyll::RdfPrefixResolver
|
29
29
|
def rdf_container(input, type = nil)
|
30
|
-
sparql_client =
|
31
|
-
|
32
|
-
|
30
|
+
sparql_client = Jekyll::RdfHelper::sparql
|
31
|
+
n_triples = input.term.to_ntriples
|
32
|
+
if(!(valid_container?(n_triples, type)))
|
33
|
+
Jekyll.logger.error "#{n_triples} is not recognized as a container"
|
33
34
|
return []
|
34
35
|
end
|
35
|
-
query = "SELECT ?p ?o WHERE{ #{
|
36
|
+
query = "SELECT ?p ?o WHERE{ #{n_triples} ?p ?o #{query_additions()}"
|
36
37
|
solutions = sparql_client.query(query).each_with_object([]) {|solution, array|
|
37
38
|
if(/^http:\/\/www\.w3\.org\/1999\/02\/22-rdf-syntax-ns#_\d+$/.match(solution.p.to_s))
|
38
|
-
array << Jekyll::Drops::RdfTerm.build_term_drop(solution.o,
|
39
|
+
array << Jekyll::Drops::RdfTerm.build_term_drop(solution.o, Jekyll::RdfHelper::site).add_necessities(Jekyll::RdfHelper::site, Jekyll::RdfHelper::page)
|
39
40
|
end
|
40
41
|
}
|
41
42
|
return solutions
|
42
43
|
end
|
43
44
|
|
44
|
-
def query_additions(
|
45
|
+
def query_additions()
|
45
46
|
return "BIND((<http://www.w3.org/2001/XMLSchema#integer>(SUBSTR(str(?p), 45))) AS ?order) } ORDER BY ASC(?order)"
|
46
47
|
end
|
47
48
|
|
48
|
-
def valid_container?(
|
49
|
-
ask_query1 = "ASK WHERE {VALUES ?o {<http://www.w3.org/2000/01/rdf-schema#Container> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt>} #{
|
50
|
-
ask_query2 = "ASK WHERE {#{
|
51
|
-
return (
|
49
|
+
def valid_container?(n_triples, type = nil)
|
50
|
+
ask_query1 = "ASK WHERE {VALUES ?o {<http://www.w3.org/2000/01/rdf-schema#Container> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt>} #{n_triples} <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?o}"
|
51
|
+
ask_query2 = "ASK WHERE {#{ n_triples } <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?o. ?o <http://www.w3.org/2000/01/rdf-schema#subClassOf>* <http://www.w3.org/2000/01/rdf-schema#Container>}"
|
52
|
+
return (Jekyll::RdfHelper::sparql.query(ask_query1).true?) || (Jekyll::RdfHelper::sparql.query(ask_query2).true?)
|
52
53
|
end
|
53
54
|
end
|
54
55
|
end
|
@@ -29,32 +29,12 @@ module Jekyll
|
|
29
29
|
# Internal module to hold the medthod #rdf_get
|
30
30
|
#
|
31
31
|
module RdfGet
|
32
|
+
include Jekyll::RdfPrefixResolver
|
32
33
|
def rdf_get(request_uri)
|
33
|
-
request_uri =
|
34
|
+
request_uri = rdf_resolve_prefix(request_uri)
|
34
35
|
ask_exist = "ASK WHERE {{<#{request_uri}> ?p ?o}UNION{?s <#{request_uri}> ?o}UNION{?s ?p <#{request_uri}>}} "
|
35
36
|
return unless (Jekyll::RdfHelper::sparql.query(ask_exist).true?)
|
36
|
-
Jekyll::Drops::RdfResource.new(RDF::URI(request_uri), Jekyll::RdfHelper::
|
37
|
-
end
|
38
|
-
|
39
|
-
#this is only temporary, we will use Jekyll::RdfPrefixResolver -> rdf_resolve_prefix when we fixed it to 3.0.0
|
40
|
-
private
|
41
|
-
def rdf_resolve_prefix_temp(predicate)
|
42
|
-
if(predicate[0] == "<" && predicate[-1] == ">")
|
43
|
-
return predicate[1..-2]
|
44
|
-
end
|
45
|
-
arr=predicate.split(":",2) #bad regex, would also devide 'http://example....' into 'http' and '//example....',even though it is already a complete URI; if 'PREFIX http: <http://...> is defined, 'http' in 'http://example....' could be mistaken for a prefix
|
46
|
-
if((arr[1].include? (":")) || (arr[1][0..1].eql?("//")))
|
47
|
-
raise UnMarkedUri.new(predicate, Jekyll::RdfHelper::page.data['template'])
|
48
|
-
end
|
49
|
-
if(!Jekyll::RdfHelper::page.data["rdf_prefixes"].nil?)
|
50
|
-
if(!Jekyll::RdfHelper::page.data["rdf_prefix_map"][arr[0]].nil?)
|
51
|
-
return arr[1].prepend(Jekyll::RdfHelper::page.data["rdf_prefix_map"][arr[0]])
|
52
|
-
else
|
53
|
-
raise NoPrefixMapped.new(predicate, Jekyll::RdfHelper::page.data['template'], arr[0])
|
54
|
-
end
|
55
|
-
else
|
56
|
-
raise NoPrefixesDefined.new(predicate, Jekyll::RdfHelper::page.data['template'])
|
57
|
-
end
|
37
|
+
Jekyll::Drops::RdfResource.new(RDF::URI(request_uri), Jekyll::RdfHelper::site, Jekyll::RdfHelper::page)
|
58
38
|
end
|
59
39
|
end
|
60
40
|
end
|
@@ -42,15 +42,15 @@ module Jekyll
|
|
42
42
|
return map_predicate(input, predicate, lang, list)
|
43
43
|
end
|
44
44
|
|
45
|
-
def rdf_inverse_property(input, predicate,
|
46
|
-
return map_predicate(input, predicate,
|
45
|
+
def rdf_inverse_property(input, predicate, list = false)
|
46
|
+
return map_predicate(input, predicate, nil, list, true)
|
47
47
|
end
|
48
48
|
|
49
49
|
private
|
50
50
|
def map_predicate(input, predicate, lang = nil, list = false, inverse = false)
|
51
51
|
return input unless input.is_a?(Jekyll::Drops::RdfResource)
|
52
|
-
predicate = rdf_resolve_prefix(
|
53
|
-
result = filter_statements(input, predicate, inverse, lang)
|
52
|
+
predicate = rdf_resolve_prefix(predicate)
|
53
|
+
result = filter_statements(input.term.to_ntriples, predicate, inverse, lang)
|
54
54
|
return unless !result.empty?
|
55
55
|
if(list)
|
56
56
|
return result
|
@@ -59,34 +59,27 @@ module Jekyll
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
-
|
63
|
-
|
64
|
-
client = input.sparql
|
62
|
+
def filter_statements(n_triples, predicate, inverse = false, lang = nil)
|
63
|
+
client = Jekyll::RdfHelper::sparql
|
65
64
|
query = ""
|
66
65
|
if (lang.eql? 'cfg')
|
67
|
-
lang_query = "FILTER(lang(?o) = '#{
|
66
|
+
lang_query = "FILTER(lang(?o) = '#{Jekyll::RdfHelper::site.config['jekyll_rdf']['language']}')"
|
68
67
|
elsif lang.nil?
|
69
68
|
lang_query = ""
|
70
69
|
else
|
71
70
|
lang_query = "FILTER(lang(?o) = '#{lang}')"
|
72
71
|
end
|
73
72
|
|
74
|
-
if(!input.to_s[0..1].eql? "_:")
|
75
|
-
input_uri = "<#{input.to_s}>"
|
76
|
-
else
|
77
|
-
input_uri = input.to_s
|
78
|
-
end
|
79
|
-
|
80
73
|
if(inverse)
|
81
|
-
query = "SELECT ?s WHERE{ ?s <#{predicate}> #{
|
74
|
+
query = "SELECT ?s WHERE{ ?s <#{predicate}> #{n_triples} }"
|
82
75
|
result = client.query(query).map do |solution|
|
83
76
|
subject = RDF::URI(solution.s)
|
84
|
-
Jekyll::Drops::RdfResource.new(subject,
|
77
|
+
Jekyll::Drops::RdfResource.new(subject, Jekyll::RdfHelper::site, Jekyll::RdfHelper::page)
|
85
78
|
end
|
86
79
|
else
|
87
|
-
query = "SELECT ?o ?dt ?lit ?lang WHERE{ #{
|
80
|
+
query = "SELECT ?o ?dt ?lit ?lang WHERE{ #{n_triples} <#{predicate}> ?o BIND(datatype(?o) AS ?dt) BIND(isLiteral(?o) AS ?lit) BIND(lang(?o) AS ?lang) #{lang_query} }"
|
88
81
|
result = client.query(query).map do |solution|
|
89
|
-
dist_literal_resource(
|
82
|
+
dist_literal_resource(solution)
|
90
83
|
end
|
91
84
|
end
|
92
85
|
return result
|
@@ -95,15 +88,14 @@ module Jekyll
|
|
95
88
|
##
|
96
89
|
# Distinguishes the solution between an Literal and a Resource
|
97
90
|
#
|
98
|
-
|
99
|
-
def dist_literal_resource(input, solution)
|
91
|
+
def dist_literal_resource(solution)
|
100
92
|
if solution.lit.true?
|
101
93
|
check = check_solution(solution)
|
102
94
|
object = RDF::Literal(solution.o, language: check[:lang], datatype: RDF::URI(check[:dataType]))
|
103
|
-
result = Jekyll::Drops::RdfLiteral.new(object
|
95
|
+
result = Jekyll::Drops::RdfLiteral.new(object)
|
104
96
|
else
|
105
97
|
object = RDF::URI(solution.o)
|
106
|
-
result = Jekyll::Drops::RdfResource.new(object,
|
98
|
+
result = Jekyll::Drops::RdfResource.new(object, Jekyll::RdfHelper::site, Jekyll::RdfHelper::page)
|
107
99
|
end
|
108
100
|
return result
|
109
101
|
end
|
@@ -111,16 +103,15 @@ module Jekyll
|
|
111
103
|
##
|
112
104
|
# check what language and datatype the passed literal has
|
113
105
|
#
|
114
|
-
private
|
115
106
|
def check_solution(solution)
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
107
|
+
result = {:lang => nil, :dataType => nil}
|
108
|
+
if((solution.bound?(:lang)) && (!solution.lang.to_s.eql?("")))
|
109
|
+
result[:lang] = solution.lang.to_s.to_sym
|
110
|
+
end
|
111
|
+
if(solution.bound? :dt)
|
112
|
+
result[:dataType] = solution.dt
|
113
|
+
end
|
114
|
+
return result
|
124
115
|
end
|
125
116
|
end
|
126
117
|
end
|
@@ -26,22 +26,22 @@
|
|
26
26
|
module Jekyll
|
27
27
|
module RdfPrefixResolver
|
28
28
|
private
|
29
|
-
def rdf_resolve_prefix(
|
29
|
+
def rdf_resolve_prefix(predicate)
|
30
30
|
if(predicate[0] == "<" && predicate[-1] == ">")
|
31
31
|
return predicate[1..-2]
|
32
32
|
end
|
33
33
|
arr=predicate.split(":",2) #bad regex, would also devide 'http://example....' into 'http' and '//example....',even though it is already a complete URI; if 'PREFIX http: <http://...> is defined, 'http' in 'http://example....' could be mistaken for a prefix
|
34
34
|
if((arr[1].include? (":")) || (arr[1][0..1].eql?("//")))
|
35
|
-
raise UnMarkedUri.new(predicate,
|
35
|
+
raise UnMarkedUri.new(predicate, Jekyll::RdfHelper::page.data['template'])
|
36
36
|
end
|
37
|
-
if(!
|
38
|
-
if(!
|
39
|
-
return arr[1].prepend(
|
37
|
+
if(!Jekyll::RdfHelper::page.data["rdf_prefixes"].nil?)
|
38
|
+
if(!Jekyll::RdfHelper::page.data["rdf_prefix_map"][arr[0]].nil?)
|
39
|
+
return arr[1].prepend(Jekyll::RdfHelper::page.data["rdf_prefix_map"][arr[0]])
|
40
40
|
else
|
41
|
-
raise NoPrefixMapped.new(predicate,
|
41
|
+
raise NoPrefixMapped.new(predicate, Jekyll::RdfHelper::page.data['template'], arr[0])
|
42
42
|
end
|
43
43
|
else
|
44
|
-
raise NoPrefixesDefined.new(predicate,
|
44
|
+
raise NoPrefixesDefined.new(predicate, Jekyll::RdfHelper::page.data['template'])
|
45
45
|
end
|
46
46
|
end
|
47
47
|
end
|
@@ -37,16 +37,15 @@ module Jekyll
|
|
37
37
|
# * +input+ - the context RDF resource
|
38
38
|
# * +query+ - the SPARQL query
|
39
39
|
#
|
40
|
-
def sparql_query(
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
query = query.prepend(" ").prepend(input.page.data["rdf_prefixes"])
|
40
|
+
def sparql_query(query)
|
41
|
+
query.gsub!('?resourceUri', "<#{Jekyll::RdfHelper::page.data['rdf'].term}>") #maybe use this part as optional parameter
|
42
|
+
if(!Jekyll::RdfHelper::page.data["rdf_prefixes"].nil?)
|
43
|
+
query = query.prepend(" ").prepend(Jekyll::RdfHelper::page.data["rdf_prefixes"])
|
45
44
|
end
|
46
45
|
begin
|
47
|
-
result =
|
46
|
+
result = Jekyll::RdfHelper::sparql.query(query).map do |solution|
|
48
47
|
hsh = solution.to_h
|
49
|
-
hsh.update(hsh){ |k,v| Jekyll::Drops::RdfTerm.build_term_drop(v,
|
48
|
+
hsh.update(hsh){ |k,v| Jekyll::Drops::RdfTerm.build_term_drop(v, Jekyll::RdfHelper::site).add_necessities(Jekyll::RdfHelper::site, Jekyll::RdfHelper::page)}
|
50
49
|
hsh.collect{|k,v| [k.to_s, v]}.to_h
|
51
50
|
end
|
52
51
|
return result
|
@@ -21,11 +21,11 @@ module Jekyll
|
|
21
21
|
}
|
22
22
|
end
|
23
23
|
|
24
|
-
def parse_resources (resources
|
24
|
+
def parse_resources (resources)
|
25
25
|
@pageResources={};
|
26
26
|
@blanknodes=[]
|
27
27
|
resources.each do |uri|
|
28
|
-
resource = Jekyll::Drops::RdfResource.new(uri
|
28
|
+
resource = Jekyll::Drops::RdfResource.new(uri)
|
29
29
|
if(uri.instance_of? RDF::URI)
|
30
30
|
uriString = uri.to_s
|
31
31
|
if((uriString.include? "#") && (uriString.index("#") < (uriString.length - 1))) #sorting in uris with a #
|
@@ -60,7 +60,7 @@ module Jekyll
|
|
60
60
|
site.data['sparql'] = sparql
|
61
61
|
site.data['resources'] = []
|
62
62
|
|
63
|
-
parse_resources(resources
|
63
|
+
parse_resources(resources)
|
64
64
|
|
65
65
|
mapper = Jekyll::RdfTemplateMapper.new(@config['instance_template_mappings'], @config['class_template_mappings'], @config['default_template'], sparql)
|
66
66
|
|