bento_search 1.4.4 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +41 -19
- data/app/models/bento_search/result_item.rb +1 -1
- data/app/models/bento_search/search_engine.rb +36 -3
- data/app/models/bento_search/search_engine/capabilities.rb +14 -0
- data/app/search_engines/bento_search/doaj_articles_engine.rb +279 -0
- data/app/search_engines/bento_search/ebsco_host_engine.rb +27 -7
- data/app/search_engines/bento_search/google_books_engine.rb +8 -1
- data/app/search_engines/bento_search/mock_engine.rb +8 -2
- data/app/search_engines/bento_search/scopus_engine.rb +27 -8
- data/app/search_engines/bento_search/summon_engine.rb +1 -1
- data/app/search_engines/bento_search/worldcat_sru_dc_engine.rb +22 -3
- data/config/locales/en.yml +5 -2
- data/lib/bento_search/version.rb +1 -1
- data/test/dummy/config/environments/development.rb +0 -4
- data/test/dummy/config/environments/production.rb +0 -4
- data/test/search_engines/doaj_articles_engine_test.rb +200 -0
- data/test/search_engines/ebsco_host_engine_test.rb +38 -0
- data/test/search_engines/google_books_engine_test.rb +18 -2
- data/test/search_engines/scopus_engine_test.rb +45 -1
- data/test/search_engines/search_engine_base_test.rb +59 -0
- data/test/search_engines/worldcat_sru_dc_engine_test.rb +17 -0
- data/test/vcr_cassettes/doaj_articles/basic_search.yml +97 -0
- data/test/vcr_cassettes/doaj_articles/catches_errors.yml +42 -0
- data/test/vcr_cassettes/doaj_articles/complex_multi-field.yml +67 -0
- data/test/vcr_cassettes/doaj_articles/live__get_identifier__round_trip.yml +387 -0
- data/test/vcr_cassettes/doaj_articles/live_get_identifier__raises_on_no_results.yml +41 -0
- data/test/vcr_cassettes/doaj_articles/multifield_author-title.yml +79 -0
- data/test/vcr_cassettes/doaj_articles/pagination.yml +691 -0
- data/test/vcr_cassettes/ebscohost/affiliation_search.yml +929 -0
- data/test/vcr_cassettes/ebscohost/multi-field_author_title.yml +122 -0
- data/test/vcr_cassettes/ebscohost/multi-field_citation_numbers.yml +122 -0
- data/test/vcr_cassettes/scopus/multi-field_search.yml +55 -0
- data/test/vcr_cassettes/scopus/multi-fielded_citation_details_search.yml +86 -0
- data/test/vcr_cassettes/worldcat_sru_dc/multi_field_search.yml +1839 -0
- metadata +31 -2
@@ -310,6 +310,36 @@ class EbscoHostEngineTest < ActiveSupport::TestCase
|
|
310
310
|
end
|
311
311
|
end
|
312
312
|
|
313
|
+
test_with_cassette("multi-field author title", :ebscohost) do
|
314
|
+
results = @engine.search(:query => {:title => '"Reflections on the History of Debt Resistance"',
|
315
|
+
:author => "Caffentzis"})
|
316
|
+
|
317
|
+
assert ! results.failed?
|
318
|
+
|
319
|
+
assert_equal 1, results.total_items
|
320
|
+
|
321
|
+
result = results.first
|
322
|
+
|
323
|
+
assert_equal "10.1215/00382876-2345315", result.doi
|
324
|
+
end
|
325
|
+
|
326
|
+
test_with_cassette("multi-field citation numbers", :ebscohost) do
|
327
|
+
results = @engine.search(:query => {
|
328
|
+
:issn => "00382876",
|
329
|
+
:volume => "112",
|
330
|
+
:issue => "4",
|
331
|
+
:start_page => "824"
|
332
|
+
})
|
333
|
+
|
334
|
+
assert ! results.failed?
|
335
|
+
|
336
|
+
assert_equal 1, results.total_items
|
337
|
+
|
338
|
+
result = results.first
|
339
|
+
|
340
|
+
assert_equal "10.1215/00382876-2345315", result.doi
|
341
|
+
end
|
342
|
+
|
313
343
|
|
314
344
|
test("illegal arg for get with id with no colon") do
|
315
345
|
assert_raise ArgumentError do
|
@@ -328,6 +358,14 @@ class EbscoHostEngineTest < ActiveSupport::TestCase
|
|
328
358
|
assert_present first.issn
|
329
359
|
end
|
330
360
|
|
361
|
+
test_with_cassette("affiliation search", :ebscohost) do
|
362
|
+
results = @engine.search('"johns hopkins"', :semantic_search_field => :author_affiliation)
|
363
|
+
|
364
|
+
assert ! results.failed?
|
365
|
+
|
366
|
+
assert_present results
|
367
|
+
end
|
368
|
+
|
331
369
|
|
332
370
|
|
333
371
|
end
|
@@ -122,8 +122,24 @@ class GoogleBooksEngineTest < ActiveSupport::TestCase
|
|
122
122
|
|
123
123
|
query_params = CGI.parse( URI.parse(url).query )
|
124
124
|
|
125
|
-
assert_match
|
126
|
-
assert_match
|
125
|
+
assert_match /(^|\s)intitle\:cancer(\s|$)/, query_params["q"].first
|
126
|
+
assert_match /(^|\s)intitle\:"by radiation"(\s|$)/, query_params["q"].first
|
127
|
+
end
|
128
|
+
|
129
|
+
def test_multi_search
|
130
|
+
# Have to use protected methods to get at what we want to test.
|
131
|
+
# Is there a better way to factor this for testing?
|
132
|
+
norm_args = @engine.send(:parse_search_arguments,
|
133
|
+
:query => {:title => "manufacturing consent", :author => "chomsky", "inpublisher" => "something"}
|
134
|
+
)
|
135
|
+
url = @engine.send(:args_to_search_url, norm_args)
|
136
|
+
|
137
|
+
query_params = CGI.parse( URI.parse(url).query )
|
138
|
+
|
139
|
+
assert_match /(^|\s)intitle\:manufacturing(\s|$)/, query_params["q"].first
|
140
|
+
assert_match /(^|\s)intitle\:consent(\s|$)/, query_params["q"].first
|
141
|
+
assert_match /(^|\s)inauthor\:chomsky(\s|$)/, query_params["q"].first
|
142
|
+
assert_match /(^|\s)inpublisher\:something(\s|$)/, query_params["q"].first
|
127
143
|
end
|
128
144
|
|
129
145
|
|
@@ -32,6 +32,20 @@ class ScopusEngineTest < ActiveSupport::TestCase
|
|
32
32
|
|
33
33
|
assert_equal "http://api.elsevier.com/content/search/index:SCOPUS?query=AUTH%28one+two%29&sort=refeid", url
|
34
34
|
end
|
35
|
+
|
36
|
+
def test_construct_multi_field
|
37
|
+
url = @engine.send(:scopus_url, :query => {"TITLE" => "Terrible Diseases", "AUTH" => "John Smith"})
|
38
|
+
|
39
|
+
url = URI.parse(url)
|
40
|
+
params = CGI.parse(url.query)
|
41
|
+
scopus_query = params["query"].first
|
42
|
+
|
43
|
+
query_components = scopus_query.split(" AND ")
|
44
|
+
|
45
|
+
assert_equal 2, query_components.length
|
46
|
+
assert_includes query_components, "AUTH(John Smith)"
|
47
|
+
assert_includes query_components, "TITLE(Terrible Diseases)"
|
48
|
+
end
|
35
49
|
|
36
50
|
def test_construct_search_with_per_page
|
37
51
|
url = @engine.send(:scopus_url, :query => "one two", :per_page => 30)
|
@@ -129,7 +143,37 @@ class ScopusEngineTest < ActiveSupport::TestCase
|
|
129
143
|
assert results.first.title.downcase.include?("cancer"), "Title includes query term"
|
130
144
|
end
|
131
145
|
|
132
|
-
|
146
|
+
test_with_cassette("multi-field search", :scopus) do
|
147
|
+
results = @engine.search(:query =>
|
148
|
+
{ :title => "Protein measurement with the folin phenol reagent",
|
149
|
+
:author => "Lowry",
|
150
|
+
:issn => "0021-9258"
|
151
|
+
})
|
152
|
+
|
153
|
+
assert ! results.failed?
|
154
|
+
assert_present results
|
155
|
+
|
156
|
+
results.each do |result|
|
157
|
+
assert_equal "00219258", result.issn
|
158
|
+
assert_includes result.title.downcase, "Protein measurement with the folin phenol reagent".downcase
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
test_with_cassette("multi-fielded citation details search", :scopus) do
|
163
|
+
results = @engine.search(:query =>{
|
164
|
+
:issn => "15385132",
|
165
|
+
:volume => "12",
|
166
|
+
:issue => "2",
|
167
|
+
:start_page => "179"
|
168
|
+
})
|
169
|
+
|
170
|
+
assert ! results.failed?
|
171
|
+
assert_equal 1, results.total_items
|
172
|
+
|
173
|
+
item = results.first
|
174
|
+
|
175
|
+
assert item.title.start_with?("Architects and planners in the middle of a road war")
|
176
|
+
end
|
133
177
|
|
134
178
|
|
135
179
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class ParseSearchArgumentsTest < ActiveSupport::TestCase
|
4
|
+
MockEngine = BentoSearch::MockEngine
|
5
|
+
|
4
6
|
class Dummy
|
5
7
|
include BentoSearch::SearchEngine
|
6
8
|
|
@@ -153,6 +155,63 @@ class ParseSearchArgumentsTest < ActiveSupport::TestCase
|
|
153
155
|
end
|
154
156
|
|
155
157
|
end
|
158
|
+
|
159
|
+
|
160
|
+
describe "multi-field search" do
|
161
|
+
it "complains with multi-query and search_field" do
|
162
|
+
engine = MockEngine.new(:multi_field_search => true)
|
163
|
+
assert_raises(ArgumentError) { engine.search(:query => {:title => "foo"}, :semantic_search_field => :author)}
|
164
|
+
assert_raises(ArgumentError) { engine.search(:query => {:title => "foo"}, :search_field => "something")}
|
165
|
+
end
|
166
|
+
|
167
|
+
it "rejects if search engine does not support" do
|
168
|
+
engine = MockEngine.new(:multi_field_search => false)
|
169
|
+
assert_raises(ArgumentError) { engine.search(:query => {:title => "title", :author => "author"}) }
|
170
|
+
end
|
171
|
+
|
172
|
+
it "converts semantic search fields" do
|
173
|
+
engine = MockEngine.new(:multi_field_search => true,
|
174
|
+
:search_field_definitions => {
|
175
|
+
"internal_title_field" => {:semantic => :title},
|
176
|
+
"internal_author_field" => {:semantic => :author}
|
177
|
+
})
|
178
|
+
|
179
|
+
engine.search(:query => {:title => "title query", :author => "author query"})
|
180
|
+
|
181
|
+
assert_equal(
|
182
|
+
{ "internal_title_field" => "title query",
|
183
|
+
"internal_author_field" => "author query"},
|
184
|
+
engine.last_args[:query]
|
185
|
+
)
|
186
|
+
end
|
187
|
+
|
188
|
+
it "passes through other fields" do
|
189
|
+
engine = MockEngine.new(:multi_field_search => true,
|
190
|
+
:search_field_definitions => {
|
191
|
+
"internal_title_field" => {:semantic => :title},
|
192
|
+
"internal_author_field" => {:semantic => :author}
|
193
|
+
})
|
194
|
+
|
195
|
+
engine.search(:query => {"internal_title_field" => "query", "other field" => "query"})
|
196
|
+
|
197
|
+
assert_equal(
|
198
|
+
{"internal_title_field" => "query", "other field" => "query"},
|
199
|
+
engine.last_args[:query]
|
200
|
+
)
|
201
|
+
end
|
202
|
+
|
203
|
+
it "complains on unrecognized field if configured" do
|
204
|
+
engine = MockEngine.new(:multi_field_search => true,
|
205
|
+
:unrecognized_search_field => "raise",
|
206
|
+
:search_field_definitions => {
|
207
|
+
"internal_title_field" => {:semantic => :title},
|
208
|
+
"internal_author_field" => {:semantic => :author}
|
209
|
+
})
|
210
|
+
assert_raises(ArgumentError) do
|
211
|
+
engine.search(:query => {"internal_title_field" => "query", "other field" => "query"})
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
156
215
|
|
157
216
|
def test_semantic_blank_ignored
|
158
217
|
d = Dummy.new
|
@@ -93,6 +93,18 @@ class WorldcatSruDcEngineTest < ActiveSupport::TestCase
|
|
93
93
|
assert_includes components, clause
|
94
94
|
end
|
95
95
|
end
|
96
|
+
|
97
|
+
def test_construt_cql_multi_field
|
98
|
+
cql = @engine.construct_cql_query(:query => {"srw.ti" => "manufacturing", "srw.au" => "chomsky"})
|
99
|
+
|
100
|
+
components = cql.split(" AND ")
|
101
|
+
|
102
|
+
assert_equal 2, components.length
|
103
|
+
|
104
|
+
['srw.au = "chomsky"', 'srw.ti = "manufacturing"'].each do |clause|
|
105
|
+
assert_includes components, clause
|
106
|
+
end
|
107
|
+
end
|
96
108
|
|
97
109
|
test_with_cassette("max_out_pagination", :worldcat_sru_dc) do
|
98
110
|
#worldcat maxes out at start 9999, we silently correct
|
@@ -146,6 +158,11 @@ class WorldcatSruDcEngineTest < ActiveSupport::TestCase
|
|
146
158
|
@engine.get("NOT EXISTING")
|
147
159
|
end
|
148
160
|
end
|
161
|
+
|
162
|
+
test_with_cassette("multi field search", :worldcat_sru_dc) do
|
163
|
+
results = @engine.search(:query => {:author => "Chomsky", :title => "Manufacturing"})
|
164
|
+
assert ! results.failed?
|
165
|
+
end
|
149
166
|
|
150
167
|
|
151
168
|
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doaj.org/api/v1/search/articles/+Breast%20+cancer%20+patients%20+with%20+lobular%20+cancer%20+more%20+commonly%20+have%20+a%20+father%20+than%20+a%20+mother%20+diagnosed%20+with%20+cancer?pageSize=10
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Cookie:
|
11
|
+
- session=UspzkET/3IS3Z8PIxKnLAhLnXDY=?_id=UycyNmYyZmZkMzhkMjA5MWE0NmNjZTU2YTI4OGJjNDZlNycKcDEKLg==
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 200
|
15
|
+
message: OK
|
16
|
+
headers:
|
17
|
+
Server:
|
18
|
+
- nginx/1.4.6 (Ubuntu)
|
19
|
+
Date:
|
20
|
+
- Wed, 23 Sep 2015 15:51:24 GMT
|
21
|
+
Content-Type:
|
22
|
+
- application/json
|
23
|
+
Content-Length:
|
24
|
+
- '4515'
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
Vary:
|
28
|
+
- Accept-Encoding
|
29
|
+
- Accept-Encoding
|
30
|
+
Access-Control-Allow-Origin:
|
31
|
+
- "*"
|
32
|
+
Set-Cookie:
|
33
|
+
- session="UspzkET/3IS3Z8PIxKnLAhLnXDY=?_id=UycyNmYyZmZkMzhkMjA5MWE0NmNjZTU2YTI4OGJjNDZlNycKcDEKLg==";
|
34
|
+
Path=/; HttpOnly
|
35
|
+
body:
|
36
|
+
encoding: UTF-8
|
37
|
+
string: '{"pageSize": 10, "timestamp": "2015-0923T15:51:24Z", "results": [{"last_updated":
|
38
|
+
"2015-04-22T03:59:29Z", "id": "c7cbb0516de24de2bdcfb3d81a40ab1b", "bibjson":
|
39
|
+
{"start_page": "497", "title": "Breast cancer patients with lobular cancer
|
40
|
+
more commonly have a father than a mother diagnosed with cancer", "journal":
|
41
|
+
{"publisher": "BioMed Central", "language": ["English"], "license": [{"type":
|
42
|
+
"CC BY", "title": "CC BY"}], "title": "BMC Cancer", "country": "GB", "number":
|
43
|
+
"1", "volume": "11"}, "author": [{"name": "Ellberg Carolina"}, {"name": "Olsson
|
44
|
+
H\u00e5kan"}], "month": "11", "link": [{"url": "http://www.biomedcentral.com/1471-2407/11/497",
|
45
|
+
"type": "fulltext"}], "year": "2011", "identifier": [{"type": "doi", "id":
|
46
|
+
"10.1186/1471-2407-11-497"}, {"type": "pissn", "id": "1471-2407"}], "abstract":
|
47
|
+
"<p>Abstract</p> <p>Background</p> <p>The association between lobular breast
|
48
|
+
cancer and family history is not clear. The aim of the study was to possibly
|
49
|
+
identifying new hereditary patterns predisposing for cancer in the different
|
50
|
+
histopathologic subtypes of breast cancer, with focus on patients with lobular
|
51
|
+
breast cancer and cancer in their first degree relatives.</p> <p>Methods</p>
|
52
|
+
<p>In 1676 consecutive breast cancer patients detailed family history of cancer
|
53
|
+
was related to histopathologic subtype of breast cancer.</p> <p>Results</p>
|
54
|
+
<p>Patients with lobular breast cancer were found to be significantly positively
|
55
|
+
associated with having a father diagnosed with cancer, OR 2.17 (95% confidence
|
56
|
+
interval (CI) 1.37-3.46). The finding persisted after excluding breast cancer
|
57
|
+
in the family. Ductal breast cancer was associated with having a mother diagnosed
|
58
|
+
with cancer. There was a significant association between lobular breast cancer
|
59
|
+
and having a father with prostate cancer, OR 2.4 (CI 1.1-5.3). The occurrence
|
60
|
+
of having a father with prostate cancer for lobular breast cancer patients
|
61
|
+
was higher in the younger patient group, OR 2.9 (CI 1.1-7.8), and was still
|
62
|
+
high but lost statistical significance in the older patient group, OR 1.9
|
63
|
+
(CI 0.5-7.4). The association between lobular breast cancer and a father remained
|
64
|
+
significant after excluding fathers with prostate cancer, OR 1.94 (CI 1.20-3.14).
|
65
|
+
Other commonly occurring tumor types in the father included sarcoma and leukemia.</p>
|
66
|
+
<p>Conclusion</p> <p>We propose that lobular breast cancer is associated with
|
67
|
+
having a father diagnosed with cancer, most commonly prostate carcinoma. Since
|
68
|
+
the association remained after excluding family history of breast cancer,
|
69
|
+
the association seems independent of classical breast cancer heredity. The
|
70
|
+
association with a father diagnosed with cancer also remained after removing
|
71
|
+
prostate cancer, indicating an independence from prostate cancer as well.
|
72
|
+
The reason for this association is genetically unclear, but could involve
|
73
|
+
sex-specific imprinting.</p> ", "subject": [{"code": "RC254-282", "term":
|
74
|
+
"Neoplasms. Tumors. Oncology. Including cancer and carcinogens", "scheme":
|
75
|
+
"LCC"}, {"code": "RC31-1245", "term": "Internal medicine", "scheme": "LCC"},
|
76
|
+
{"code": "R", "term": "Medicine", "scheme": "LCC"}, {"term": "Oncology", "scheme":
|
77
|
+
"DOAJ"}, {"term": "Medicine (General)", "scheme": "DOAJ"}, {"term": "Health
|
78
|
+
Sciences", "scheme": "DOAJ"}, {"code": "RC254-282", "term": "Neoplasms. Tumors.
|
79
|
+
Oncology. Including cancer and carcinogens", "scheme": "LCC"}, {"code": "RC31-1245",
|
80
|
+
"term": "Internal medicine", "scheme": "LCC"}, {"code": "R", "term": "Medicine",
|
81
|
+
"scheme": "LCC"}, {"term": "Oncology", "scheme": "DOAJ"}, {"term": "Medicine
|
82
|
+
(General)", "scheme": "DOAJ"}, {"term": "Health Sciences", "scheme": "DOAJ"},
|
83
|
+
{"code": "RC254-282", "term": "Neoplasms. Tumors. Oncology. Including cancer
|
84
|
+
and carcinogens", "scheme": "LCC"}, {"code": "RC31-1245", "term": "Internal
|
85
|
+
medicine", "scheme": "LCC"}, {"code": "R", "term": "Medicine", "scheme": "LCC"},
|
86
|
+
{"code": "RC254-282", "term": "Neoplasms. Tumors. Oncology. Including cancer
|
87
|
+
and carcinogens", "scheme": "LCC"}, {"code": "RC31-1245", "term": "Internal
|
88
|
+
medicine", "scheme": "LCC"}, {"code": "R", "term": "Medicine", "scheme": "LCC"},
|
89
|
+
{"code": "RC254-282", "term": "Neoplasms. Tumors. Oncology. Including cancer
|
90
|
+
and carcinogens", "scheme": "LCC"}, {"code": "RC31-1245", "term": "Internal
|
91
|
+
medicine", "scheme": "LCC"}, {"code": "R", "term": "Medicine", "scheme": "LCC"}]},
|
92
|
+
"created_date": "2013-03-12T01:21:44Z"}], "query": "+Breast +cancer +patients
|
93
|
+
+with +lobular +cancer +more +commonly +have +a +father +than +a +mother +diagnosed
|
94
|
+
+with +cancer", "total": 1, "page": 1}'
|
95
|
+
http_version:
|
96
|
+
recorded_at: Wed, 23 Sep 2015 15:51:24 GMT
|
97
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doaj.org/api/v1/search/articles_bad_url/+something?pageSize=10
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Cookie:
|
11
|
+
- session=UspzkET/3IS3Z8PIxKnLAhLnXDY=?_id=UycyNmYyZmZkMzhkMjA5MWE0NmNjZTU2YTI4OGJjNDZlNycKcDEKLg==
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 404
|
15
|
+
message: NOT FOUND
|
16
|
+
headers:
|
17
|
+
Server:
|
18
|
+
- nginx/1.4.6 (Ubuntu)
|
19
|
+
Date:
|
20
|
+
- Wed, 23 Sep 2015 15:51:26 GMT
|
21
|
+
Content-Type:
|
22
|
+
- application/json
|
23
|
+
Content-Length:
|
24
|
+
- '246'
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
Vary:
|
28
|
+
- Accept-Encoding
|
29
|
+
- Accept-Encoding
|
30
|
+
Access-Control-Allow-Origin:
|
31
|
+
- "*"
|
32
|
+
Set-Cookie:
|
33
|
+
- session="UspzkET/3IS3Z8PIxKnLAhLnXDY=?_id=UycyNmYyZmZkMzhkMjA5MWE0NmNjZTU2YTI4OGJjNDZlNycKcDEKLg==";
|
34
|
+
Path=/; HttpOnly
|
35
|
+
body:
|
36
|
+
encoding: UTF-8
|
37
|
+
string: '{"status": "not_found", "error": "No endpoint at search/articles_bad_url/+something.
|
38
|
+
See https://doaj.org/api/v1/swagger.json for valid paths or read the documentation
|
39
|
+
at https://doaj.org/api/v1/docs. (ref: f2b2e3d2-620a-11e5-b4d0-04014a62b401)"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Wed, 23 Sep 2015 15:51:26 GMT
|
42
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doaj.org/api/v1/search/articles/+Anti%5C-war%20+bibjson.author.name:(+Caffentzis)%20+bibjson.title:(+%22Respect%20Your%20Enemies%22%20+first%20+rule%20+of%20+peace)%20+bibjson.journal.title:(+%22Revista%20Theomai%22)?pageSize=10
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Server:
|
16
|
+
- nginx/1.4.6 (Ubuntu)
|
17
|
+
Date:
|
18
|
+
- Wed, 23 Sep 2015 15:58:02 GMT
|
19
|
+
Content-Type:
|
20
|
+
- application/json
|
21
|
+
Content-Length:
|
22
|
+
- '2314'
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Vary:
|
26
|
+
- Accept-Encoding
|
27
|
+
- Accept-Encoding
|
28
|
+
Access-Control-Allow-Origin:
|
29
|
+
- "*"
|
30
|
+
Set-Cookie:
|
31
|
+
- session="UspzkET/3IS3Z8PIxKnLAhLnXDY=?_id=UycyNmYyZmZkMzhkMjA5MWE0NmNjZTU2YTI4OGJjNDZlNycKcDEKLg==";
|
32
|
+
Path=/; HttpOnly
|
33
|
+
body:
|
34
|
+
encoding: UTF-8
|
35
|
+
string: '{"pageSize": 10, "timestamp": "2015-0923T15:58:02Z", "results": [{"last_updated":
|
36
|
+
"2015-09-18T18:30:31Z", "id": "3de5b56aa21342f6adb2d313c16c6c63", "bibjson":
|
37
|
+
{"start_page": "0", "title": "Respect Your Enemies - The First Rule of Peace:
|
38
|
+
An Essay Addressed to the U. S. Anti-war Movement", "journal": {"country":
|
39
|
+
"AR", "publisher": "Red Internacional de Estudios sobre Sociedad, Naturaleza
|
40
|
+
y Desarrollo", "number": "7", "language": ["Spanish", "English", "French",
|
41
|
+
"Italian", "Portuguese"], "title": "Revista Theomai"}, "author": [{"name":
|
42
|
+
"George Caffentzis"}], "link": [{"url": "http://www.redalyc.org/articulo.oa?id=12400710",
|
43
|
+
"type": "fulltext", "content_type": "pdf"}], "year": "2003", "identifier":
|
44
|
+
[{"type": "pissn", "id": "1666-2830"}, {"type": "eissn", "id": "1515-6443"}],
|
45
|
+
"abstract": "There is now a fledgling anti-interventionist, anti-war movement
|
46
|
+
in the US. It will have a lot of work to do in the near future, although the
|
47
|
+
present threat of war on Iraq is the most pressing issue it faces. The question
|
48
|
+
is: can the antiwar movement do its work effectively and successfully? At
|
49
|
+
the moment it is not completely marginalized, if the votes in Congress are
|
50
|
+
any indication. On October 9, between one-quarter to one-third of the congressional
|
51
|
+
representatives voted against granting George W. Bush \"war powers.\" But
|
52
|
+
in order to show itself as expressing the majority perspective in this country,
|
53
|
+
it needs new arguments, a new respect (as in \"look again\") for its opponents,
|
54
|
+
a deeper understanding of the reasons for the actions of its opponents, and
|
55
|
+
a realistic assessment of their weaknesses. For its old arguments do not seem
|
56
|
+
convincing to the majority of US citizens, and its lack of curiosity about
|
57
|
+
its opponents and their reasoning is dulling its strategic sense.", "subject":
|
58
|
+
[{"code": "H1-99", "term": "Social sciences (General)", "scheme": "LCC"},
|
59
|
+
{"code": "H", "term": "Social Sciences", "scheme": "LCC"}, {"code": "GE1-350",
|
60
|
+
"term": "Environmental sciences", "scheme": "LCC"}, {"code": "G", "term":
|
61
|
+
"Geography. Anthropology. Recreation", "scheme": "LCC"}]}, "created_date":
|
62
|
+
"2012-03-28T00:03:02Z"}], "query": "+Anti\\-war +bibjson.author.name:(+Caffentzis)
|
63
|
+
+bibjson.title:(+\"Respect Your Enemies\" +first +rule +of +peace) +bibjson.journal.title:(+\"Revista
|
64
|
+
Theomai\")", "total": 1, "page": 1}'
|
65
|
+
http_version:
|
66
|
+
recorded_at: Wed, 23 Sep 2015 15:58:02 GMT
|
67
|
+
recorded_with: VCR 2.9.3
|