gentle-scholar 2.0.1 → 2.0.2
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/.travis.yml +1 -1
- data/bin/gentle +5 -1
- data/gentle-scholar.gemspec +6 -5
- data/lib/gentle-scholar/publication.rb +15 -6
- data/lib/gentle-scholar/version.rb +2 -1
- data/spec/docs/unpub_doc.txt +1 -0
- data/spec/minitest_helper.rb +3 -1
- data/spec/publication_spec.rb +30 -6
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18a24737821e25fae35759fd4c7abc6c8039fce9
|
4
|
+
data.tar.gz: a8ee0ee1a65bca542cbdb7d2492537a6cb4da11e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e251136ef7e1c0ee1dd43caff2868627d4df8d5428048aeefa41dc34c7460541ee69f36bcef7b0d537cb625ff02d55338b6eab2308acfd6cd6c82aedbc19e9da
|
7
|
+
data.tar.gz: 2f8a5032590a7f88b21d1379b59520007c44a86400f97562bab33f8b55d9f8704e8333ace11e8e16cdc69639d73d8f185b8f47a7541847ec7bc09ca9c8f0dbf9
|
data/.travis.yml
CHANGED
data/bin/gentle
CHANGED
@@ -2,7 +2,11 @@
|
|
2
2
|
|
3
3
|
require 'gentle-scholar'
|
4
4
|
|
5
|
-
|
5
|
+
if (ARGV.count == 0) || (ARGV[0].split(/:/).count != 2)
|
6
|
+
fail ArgumentError, "Usage: gentle [scholarID:paperID]\n"
|
7
|
+
end
|
8
|
+
|
9
|
+
pub = GentleScholar::Publication.get_from_http(ARGV[0])
|
6
10
|
|
7
11
|
puts 'Publication Details'
|
8
12
|
pub.each do |field, data|
|
data/gentle-scholar.gemspec
CHANGED
@@ -4,11 +4,7 @@ require 'gentle-scholar/version'
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'gentle-scholar'
|
6
6
|
s.version = GentleScholar::VERSION
|
7
|
-
s.
|
8
|
-
s.add_development_dependency 'minitest-rg'
|
9
|
-
s.add_runtime_dependency 'nokogiri', '>= 1.6.2'
|
10
|
-
s.add_runtime_dependency 'typhoeus', '>= 0.6.8'
|
11
|
-
s.date = '2014-05-27'
|
7
|
+
s.date = GentleScholar::DATE
|
12
8
|
s.summary = 'Google Scholar infor extractor'
|
13
9
|
s.description = 'Extract author/paper info from Google Scholar'
|
14
10
|
s.authors = ['Soumya Ray']
|
@@ -17,4 +13,9 @@ Gem::Specification.new do |s|
|
|
17
13
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
14
|
s.homepage = 'https://github.com/soumyaray/gentle-scholar'
|
19
15
|
s.license = 'MIT'
|
16
|
+
|
17
|
+
s.add_development_dependency 'minitest'
|
18
|
+
s.add_development_dependency 'minitest-rg'
|
19
|
+
s.add_runtime_dependency 'nokogiri', '>= 1.6.2'
|
20
|
+
s.add_runtime_dependency 'typhoeus', '>= 0.6.8'
|
20
21
|
end
|
@@ -13,7 +13,7 @@ module GentleScholar
|
|
13
13
|
|
14
14
|
SCAN_STR = {
|
15
15
|
gscholar_url: "//div[contains(@class,'g-section cit-dgb')]"\
|
16
|
-
|
16
|
+
'/div/table/tr/td/a',
|
17
17
|
cites: "//div[contains(@id,'scholar_sec')]/div/a",
|
18
18
|
cites_url: "//div[contains(@id,'scholar_sec')]/div/a",
|
19
19
|
title: '//div[@id="title"]/a',
|
@@ -53,28 +53,37 @@ module GentleScholar
|
|
53
53
|
res = Typhoeus::Request.new(url).run
|
54
54
|
doc = Nokogiri::HTML(res.response_body)
|
55
55
|
|
56
|
+
extract_from_document(doc)
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.extract_from_document(doc)
|
56
60
|
extract_html_elements(doc).merge(extract_html_table(doc))
|
57
61
|
end
|
58
62
|
|
59
63
|
def self.extract_html_elements(doc)
|
60
64
|
xpath = Hash[SCAN_STR.map { |elem, path| [elem, doc.xpath(path)] }]
|
61
65
|
elements = SCAN_LAMBDAS.map do |key, lam|
|
62
|
-
|
66
|
+
[key, lam.call(xpath[key])] if xpath[key].any?
|
63
67
|
end
|
64
68
|
|
65
69
|
Hash[elements.compact]
|
66
70
|
end
|
67
71
|
|
68
72
|
def self.extract_html_table(doc)
|
69
|
-
|
70
|
-
|
71
|
-
|
73
|
+
elements_a = TABLE_ATTR.map do |k, v|
|
74
|
+
extract = table_extract(v, doc)
|
75
|
+
extract ? [k, extract] : nil
|
72
76
|
end
|
77
|
+
elements = Hash[elements_a.reject { |e| !e }]
|
73
78
|
|
74
|
-
elements = Hash[TABLE_ATTR.map { |k, v| [k, table_extract.call(v)] }]
|
75
79
|
elements.merge(
|
76
80
|
Hash[TABLE_LAMBDAS.map { |key, lam| [key, lam.call(elements[key])] }]
|
77
81
|
)
|
78
82
|
end
|
83
|
+
|
84
|
+
def self.table_extract(name, doc)
|
85
|
+
elem = doc.xpath("//div[starts-with(.,'#{name}')]")[0]
|
86
|
+
elem.children[1].text if elem
|
87
|
+
end
|
79
88
|
end
|
80
89
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<!DOCTYPE html><html><head><title>Soumya Ray - Google Scholar Citations</title><meta name="robots" content="noarchive"><meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=2"><style>@viewport{width:device-width;min-zoom:1;max-zoom:2;}</style><meta name="format-detection" content="telephone=no"><style type="text/css" media="screen, projection">html,body,form,table,div,h1,h2,h3,h4,h5,h6,img,ol,ul,li,button{margin:0;padding:0;border:0;}table{border-collapse:collapse;border-width:0;empty-cells:show;}#gs_top{position:relative;min-width:964px;_width:expression(document.documentElement.clientWidth<966?"964px":"auto");-webkit-tap-highlight-color:rgba(0,0,0,0);}#gs_top>*:not(#x){-webkit-tap-highlight-color:rgba(204,204,204,.5);}.gs_el_ph #gs_top,.gs_el_ta #gs_top{min-width:300px;_width:expression(document.documentElement.clientWidth<302?"300px":"auto");}body,td{font-size:13px;font-family:Arial,sans-serif;line-height:1.24}body{background:#fff;color:#222;-webkit-text-size-adjust:100%;-moz-text-size-adjust:none;}.gs_gray{color:#777777}.gs_red{color:#dd4b39}.gs_grn{color:#3d9400}.gs_lil{font-size:11px}.gs_med{font-size:16px}.gs_hlt{font-weight:bold;}a:link,a:visited{color:#1155cc;text-decoration:none}a:hover,a:active,a:hover .gs_lbl,a:active .gs_lbl,a .gs_lbl:active{text-decoration:underline;outline:none;}a:active,a:active .gs_lbl,a .gs_lbl:active{color:#d14836}a:visited{color:#6611cc}.gs_a,.gs_a a:link,.gs_a a:visited{color:#009933}.gs_a a:active{color:#d14836}a.gs_fl:link,.gs_fl a:link{color:#1155cc}a.gs_fl:visited,.gs_fl a:visited{color:#6611cc}a.gs_fl:active,.gs_fl a:active{color:#d14836}.gs_fl{color:#767676}.gs_ctc,.gs_ctu{font-size:11px;font-weight:bold}.gs_ctc{color:#1122cc}.gs_ctg,.gs_ctg2{font-size:13px;font-weight:bold}.gs_ctg{color:#1155cc}a.gs_pda,.gs_pda a{padding:7px 0 5px 0}a:hover{*background-position:0 0}a:active{*background-attachment:fixed}a.gs_ico:active{*background-attachment:scroll}.gs_alrt{background:#f9edbe;border:1px solid #f0c36d;padding:0 16px;text-align:center;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.2);-moz-box-shadow:0 2px 4px rgba(0,0,0,.2);box-shadow:0 2px 4px rgba(0,0,0,.2);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;}.gs_spc{display:inline-block;width:12px}.gs_br{width:0;font-size:0}.gs_ibl{display:inline-block;*display:inline;zoom:1;}.gs_scl{*zoom:1}.gs_scl:after{content:"";display:table;clear:both;}.gs_ind{padding-left:8px;text-indent:-8px}.gs_ico{display:inline-block;background:no-repeat url(/intl/en/scholar/images/sprite.png);_background-image:url(/intl/en/scholar/images/sprite.gif);width:21px;height:21px;font-size:0;}.gs_el_ta .gs_nta,.gs_ota,.gs_el_ph .gs_nph,.gs_oph{display:none}.gs_el_ta .gs_ota,.gs_el_ph .gs_oph{display:inline}.gs_el_ta div.gs_ota,.gs_el_ph div.gs_oph{display:block}#gs_ftr{margin-top:2em;text-align:center;clear:both;}#gs_ftr a{display:inline-block;margin:0 12px;line-height:29px;}#gs_ftr a:link,#gs_ftr a:visited{color:#1155cc}#gs_ftr a:active{color:#d14836}button{position:relative; z-index:1; -moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:11px;font-weight:bold;cursor:default;height:29px;min-width:72px;_width:72px;overflow:visible;color:#444;border:1px solid #dcdcdc;border:1px solid rgba(0,0,0,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;text-align:center;background-color:#f5f5f5;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#f1f1f1));background-image:-webkit-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:-moz-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:-o-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:linear-gradient(to bottom,#f5f5f5,#f1f1f1);-webkit-transition:all .218s;-moz-transition:all .218s;-o-transition:all .218s;transition:all .218s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}button .gs_wr{line-height:27px;_line-height:24px;}button .gs_bg{position:absolute;top:0;left:0;width:100%;height:100%;*display:none;z-index:-1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5',endColorstr='#f1f1f1');}button.gs_btn_mini{min-width:26px;_width:26px;height:26px;}.gs_btn_mini .gs_wr{line-height:24px;_line-height:21px;}button:hover,button.gs_hvr{z-index:2;color:#222;border:1px solid #c6c6c6;-webkit-box-shadow:0px 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0px 1px 1px rgba(0,0,0,.1);box-shadow:0px 1px 1px rgba(0,0,0,.1);background-color:#f8f8f8;background-image:-webkit-gradient(linear,left top,left bottom,from(#f8f8f8),to(#f1f1f1));background-image:-webkit-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:-moz-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:-o-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:linear-gradient(to bottom,#f8f8f8,#f1f1f1);-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s;}button:hover .gs_bg,button.gs_hvr .gs_bg{filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#f8f8f8',EndColorStr='#f1f1f1');}button.gs_sel{color:#333;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);background-color:#e8e8e8;background-image:-webkit-gradient(linear,left top,left bottom,from(#eee),to(#e0e0e0));background-image:-webkit-linear-gradient(top,#eee,#e0e0e0);background-image:-moz-linear-gradient(top,#eee,#e0e0e0);background-image:-o-linear-gradient(top,#eee,#e0e0e0);background-image:linear-gradient(to bottom,#eee,#e0e0e0);}button.gs_sel .gs_bg{filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#eeeeee',EndColorStr='#e0e0e0');}button:active,button.gs_act{z-index:2;color:#333;background-color:#f6f6f6;background-image:-webkit-gradient(linear,left top,left bottom,from(#f6f6f6),to(#f1f1f1));background-image:-webkit-linear-gradient(top,#f6f6f6,#f1f1f1);background-image:-moz-linear-gradient(top,#f6f6f6,#f1f1f1);background-image:-o-linear-gradient(top,#f6f6f6,#f1f1f1);background-image:linear-gradient(to bottom,#f6f6f6,#f1f1f1);-webkit-box-shadow:inset 0px 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0px 1px 2px rgba(0,0,0,.1);box-shadow:inset 0px 1px 2px rgba(0,0,0,.1);}button:active .gs_bg,button.gs_act .gs_bg{filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#f6f6f6',EndColorStr='#f1f1f1');}button:focus,button.gs_fcs{z-index:2;outline:none;border:1px solid #4d90fe;}button::-moz-focus-inner{padding:0;border:0}button .gs_lbl{padding:0px 8px;}a.gs_in_ib{position:relative;display:inline-block;line-height:16px;padding:5px 0 6px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}a.gs_btn_mini{height:24px;line-height:24px;padding:0;}a .gs_lbl,button .gs_lbl{vertical-align:baseline;}a.gs_in_ib .gs_lbl{display:inline-block;padding-left:21px}button.gs_in_ib .gs_lbl{padding-left:29px;}button.gs_btn_mini .gs_lbl,button.gs_btn_eml .gs_lbl{padding:11px;}.gs_in_ib .gs_ico{position:absolute;top:2px;*top:3px;left:8px;}.gs_btn_mini .gs_ico{top:1px;*top:2px;left:2px;}.gs_btn_eml .gs_ico{left:25px}button.gs_btn_mini,.gs_btn_eml{_font-size:0}a.gs_in_ib .gs_ico{top:3px;left:0}a.gs_in_ib-gs_md_li .gs_ico{left:14px}.gs_el_tc a.gs_in_ib-gs_md_li .gs_ico{top:11px}a.gs_btn_mini .gs_ico{top:1px;left:0}button.gs_btn_act{color:#fff;-webkit-font-smoothing:antialiased;border:1px solid #3079ed;background-color:#4d90fe;background-image:-webkit-gradient(linear,left top,left bottom,from(#4d90fe),to(#4787ed));background-image:-webkit-linear-gradient(top,#4d90fe,#4787ed);background-image:-moz-linear-gradient(top,#4d90fe,#4787ed);background-image:-o-linear-gradient(top,#4d90fe,#4787ed);background-image:linear-gradient(to bottom,#4d90fe,#4787ed);}button.gs_btn_act .gs_bg{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d90fe',endColorstr='#4787ed');}button.gs_btn_act:hover,button.gs_btn_act-gs_hvr{color:#fff;border:1px solid #2f5bb7;background-color:#357ae8;background-image:-webkit-gradient(linear,left top,left bottom,from(#4d90fe),to(#357ae8));background-image:-webkit-linear-gradient(top,#4d90fe,#357ae8);background-image:-moz-linear-gradient(top,#4d90fe,#357ae8);background-image:-o-linear-gradient(top,#4d90fe,#357ae8);background-image:linear-gradient(to bottom,#4d90fe,#357ae8);-webkit-box-shadow:inset 0px 1px 1px rgba(0,0,0,.1);-moz-box-shadow:inset 0px 1px 1px rgba(0,0,0,.1);box-shadow:inset 0px 1px 1px rgba(0,0,0,.1);}button.gs_btn_act:hover .gs_bg,button.gs_btn_act-gs_hvr .gs_bg{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d90fe',endColorstr='#357ae8');}button.gs_btnG{width:70px;min-width:0;}button.gs_btn_act:focus{-webkit-box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);-moz-box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);}button.gs_btn_act:focus,button.gs_btn_act-gs_fcs{border-color:#404040;}button.gs_btn_act:active,button.gs_btn_act-gs_act{border:1px solid #315da3;background-color:#2f6de1;background-image:-webkit-gradient(linear,left top,left bottom,from(#4d90fe),to(#2f6de1));background-image:-webkit-linear-gradient(top,#4d90fe,#2f6de1);background-image:-moz-linear-gradient(top,#4d90fe,#2f6de1);background-image:-o-linear-gradient(top,#4d90fe,#2f6de1);background-image:linear-gradient(to bottom,#4d90fe,#2f6de1);}button.gs_btn_act:active .gs_bg,button.gs_btn_act-gs_act .gs_bg{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d90fe',endColorstr='#2f6de1');}button.gs_btn_act:active{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.3);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.3);box-shadow:inset 0 1px 2px rgba(0,0,0,.3);}.gs_ttp{position:absolute;top:100%;right:50%;z-index:10;pointer-events:none;visibility:hidden;opacity:0;-webkit-transition:visibility 0s .13s,opacity .13s ease-out;-moz-transition:visibility 0s .13s,opacity .13s ease-out;-o-transition:visibility 0s .13s,opacity .13s ease-out;transition:visibility 0s .13s,opacity .13s ease-out;}button:hover .gs_ttp,button.gs_hvr .gs_ttp,button:focus .gs_ttp,button.gs_fcs .gs_ttp,a:hover .gs_ttp,a:focus .gs_ttp{-webkit-transition:visibility 0s .3s,opacity .13s ease-in .3s;-moz-transition:visibility 0s .3s,opacity .13s ease-in .3s;-o-transition:visibility 0s .3s,opacity .13s ease-in .3s;transition:visibility 0s .3s,opacity .13s ease-in .3s;visibility:visible;opacity:1;}.gs_ttp .gs_aro,.gs_ttp .gs_aru{position:absolute;top:-2px;right:-5px;width:0;height:0;line-height:0;font-size:0;border:5px solid transparent;_border:5px solid #f5f5f5;border-top:none;border-bottom-color:#2a2a2a;z-index:1;}.gs_ttp .gs_aro{top:-3px;right:-6px;border-width:6px;border-top:none;border-bottom-color:white;}.gs_ttp .gs_txt{display:block;position:relative;top:2px;right:-50%;padding:7px 9px;background:#2a2a2a;color:white;font-size:11px;font-weight:bold;line-height:normal;white-space:nowrap;border:1px solid white;-webkit-box-shadow:inset 0 1px 4px rgba(0,0,0,.2);-moz-box-shadow:inset 0 1px 4px rgba(0,0,0,.2);box-shadow:inset 0 1px 4px rgba(0,0,0,.2);}.gs_in_se,.gs_tan{-ms-touch-action:none;touch-action:none;}.gs_in_se .gs_lbl{padding-left:8px;padding-right:22px;}.gs_in_se .gs_ico{position:absolute;top:8px;right:8px;width:7px;height:11px;margin:0;background-position:-63px -115px;}a.gs_in_se .gs_ico{background-position:-100px -26px;}.gs_in_se:hover .gs_ico,.gs_in_se-gs_hvr .gs_ico,a.gs_in_se-gs_hvr .gs_ico{background-position:-166px -110px;}.gs_in_se:active .gs_ico,.gs_in_se .gs_ico:active,.gs_in_se.gs_in_se-gs_act .gs_ico{background-position:-89px -26px;}.gs_in_se :active~.gs_ico{background-position:-89px -26px;}.gs_btn_mnu .gs_ico{height:7px;background-position:-63px -119px;}.gs_btn_mnu:hover .gs_ico,.gs_btn_mnu-gs_hvr .gs_ico{background-position:-166px -114px;}.gs_btn_mnu:active .gs_ico,.gs_btn_mnu .gs_ico:active,.gs_btn_mnu.gs_btn_mnu-gs_act .gs_ico{background-position:-89px -30px;}.gs_btn_mnu :active~.gs_ico{background-position:-89px -30px;}.gs_md_se,.gs_md_wn,.gs_el_ph .gs_md_wp{position:absolute;top:0;left:0;border:1px solid #ccc;border-color:rgba(0,0,0,.2);background:white;-webkit-box-shadow:0px 2px 4px rgba(0,0,0,.2);-moz-box-shadow:0px 2px 4px rgba(0,0,0,.2);box-shadow:0px 2px 4px rgba(0,0,0,.2);z-index:1100; display:none;opacity:0;-webkit-transition:opacity .13s;-moz-transition:opacity .13s;-o-transition:opacity .13s;transition:opacity .13s;}.gs_md_se.gs_vis,.gs_md_wn.gs_vis,.gs_el_ph .gs_md_wp.gs_vis{opacity:1;-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s;}.gs_el_tc .gs_md_se,.gs_el_tc .gs_md_wn,.gs_el_ph.gs_el_tc .gs_md_wp{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-o-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scale(1,0);-moz-transform:scale(1,0);-o-transform:scale(1,0);transform:scale(1,0);-webkit-transition:opacity .218s ease-out,-webkit-transform 0s .218s;-moz-transition:opacity .218s ease-out,-moz-transform: 0s .218s;-o-transition:opacity .218s ease-out,-o-transform: 0s .218s;transition:opacity .218s ease-out,transform 0s .218s;}.gs_el_ios .gs_md_se,.gs_el_ios .gs_md_wn,.gs_el_ph.gs_el_ios .gs_md_wp{-webkit-backface-visibility:hidden;}.gs_el_tc .gs_md_wn.gs_ttss,.gs_el_ph.gs_el_tc .gs_md_wp.gs_ttss{-webkit-transform:scale(0,1);-moz-transform:scale(0,1);-o-transform:scale(0,1);transform:scale(0,1);}.gs_el_tc .gs_md_wn.gs_ttzi,.gs_el_ph.gs_el_tc .gs_md_wp.gs_ttzi{-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);transform:scale(0,0);}.gs_el_tc .gs_md_se.gs_vis,.gs_el_tc .gs_md_wn.gs_vis,.gs_el_ph.gs_el_tc .gs_md_wp.gs_vis{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);transform:scale(1,1);-webkit-transition:-webkit-transform .218s ease-out;-moz-transition:-moz-transform .218s ease-out;-o-transition:-o-transform .218s ease-out;transition:transform .218s ease-out;}.gs_md_se{white-space:nowrap}.gs_md_se ul{list-style-type:none;word-wrap:break-word;display:inline-block;*display:inline;zoom:1;vertical-align:top;}.gs_md_se li,.gs_md_li,.gs_md_li:link,.gs_md_li:visited{display:block;padding:6px 44px 6px 16px;font-size:13px;line-height:16px;color:#222;cursor:default;text-decoration:none;background:white;-moz-transition:background .13s;-o-transition:background .13s;-webkit-transition:background .13s;transition:background .13s;}a.gs_md_li:hover .gs_lbl,a.gs_md_li:active .gs_lbl{text-decoration:none}.gs_el_tc .gs_md_se li,.gs_el_tc .gs_md_li{padding-top:14px;padding-bottom:10px;}.gs_md_se li:hover,.gs_md_se li.gs_hvr,.gs_md_se li.gs_fcs,.gs_md_li:hover,.gs_md_li:focus,.gs_md_li-gs_fcs:link,.gs_md_li-gs_fcs:visited{background:#f1f1f1;-moz-transition:background 0s;-o-transition:background 0s;-webkit-transition:background 0s;transition:background 0s;}.gs_md_se li.gs_sel{color:#dd4b39}.gs_md_wn:focus,.gs_md_se li:focus,.gs_md_li:focus{outline:none}button.gs_btnG .gs_ico{width:14px;height:13px;top:7px;left:27px;background-position:-152px -68px;_background:transparent;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/intl/en/scholar/images/sprite/search-shared.png');}p,dl,dt,dd,caption,tbody,tfoot,thead,tr,th,td,fieldset{margin:0;padding:0;border:0}body {font-size:62.5%;color:#000;}#gs_top {padding:3px 8px;min-width:none;width:auto}a:link,a:visited {color:#00c;}a:active {color:red}ul {padding:0 0 1em 1em}ol {padding:0 0 1em 1.3em}li {line-height:1.5em;padding:0 0 .5em 0}p {padding:0 0 1em 0}h1,h2,h3,h4,h5 {padding:0 0 1em 0}h1,h2 {font-size:1.3em}h3 {font-size:1.1em}h4,h5,table {font-size:1em}sup,sub {font-size:.7em}input,select,textarea,option{font-family:inherit;font-size:inherit}.g-doc,.g-doc-1024,.g-doc-800 {font-size:130%}.g-doc {width:100%;text-align:left}.g-section:after {content:".";display:block;height:0;clear:both;visibility:hidden}.g-unit .g-section:after {clear:none}.g-unit .g-section {width:100%;overflow:hidden}.g-section,.g-unit {zoom:1}.g-split .g-unit {text-align:right}.g-split .g-first {text-align:left}.g-tpl-50-50 .g-unit,.g-unit .g-tpl-50-50 .g-unit,.g-unit .g-unit .g-tpl-50-50 .g-unit,.g-unit .g-unit .g-unit .g-tpl-50-50 .g-unit {width:49.999%;float:right;display:inline;margin:0}.g-unit .g-unit .g-unit .g-tpl-50-50 .g-first,.g-unit .g-unit .g-tpl-50-50 .g-first,.g-unit .g-tpl-50-50 .g-first,.g-tpl-50-50 .g-first {width:49.999%;float:left;display:inline;margin:0}.g-tpl-50-50-alt .g-unit,.g-unit .g-tpl-50-50-alt .g-unit,.g-unit .g-unit .g-tpl-50-50-alt .g-unit,.g-unit .g-unit .g-unit .g-tpl-50-50-alt .g-unit {width:49.999%;float:left;display:inline;margin:0}.g-unit .g-unit .g-unit .g-tpl-50-50-alt .g-first,.g-unit .g-unit .g-tpl-50-50-alt .g-first,.g-unit .g-tpl-50-50-alt .g-first,.g-tpl-50-50-alt .g-first {width:49.999%;float:right;display:inline;margin:0}.g-tpl-nest .g-unit,.g-unit .g-tpl-nest .g-unit,.g-unit .g-unit .g-tpl-nest .g-unit,.g-unit .g-unit .g-unit .g-tpl-nest .g-unit {float:left;width:auto;display:inline;margin:0}.g-tpl-nest-alt .g-unit,.g-unit .g-tpl-nest-alt .g-unit,.g-unit .g-unit .g-tpl-nest-alt .g-unit,.g-unit .g-unit .g-unit .g-tpl-nest-alt .g-unit {float:right;width:auto;display:inline;margin:0}.g-doc-1024 {width:73.074em;_width:950px;min-width:950px;margin:0 auto;text-align:left}.cit-bluegray, .cit-bluegray:visited {color: #77c;}.cit-gray {color: #666;}table.cit-bodytable {width: 100%;}td.cit-contentcell {vertical-align: top;}.cit-body b {background:#9fd9a7;display:block;height:1px;overflow:hidden;margin:0 2px;font-size:1px;line-height:1px;}.cit-body i {background:#9fd9a7;display:block;height:1px;overflow:hidden;margin:0 1px;font-size:1px;line-height:1px;}.cit-messagebox {text-align: center;}.cit-messagebox b {background: #fff1a8;display:block;height:1px;overflow:hidden;margin:0 2px;font-size:1px;line-height:1px;}.cit-messagebox i {background: #fff1a8;display:block;height:1px;overflow:hidden;margin:0 1px;font-size:1px;line-height:1px;}.cit-messagebox a {color: #00c;}.cit-messagebox.reqfield {text-align: left;padding: 0 0 0 0;color: #000;}.cit-messagebox table {display: inline;text-align: center;}.cit-messagebox div#message_text {background: #fff1a8;padding: 0.1em 0.5em;font-weight: bold;}.cit-actionbar {background: #9fd9a7;padding: 0.3em 0.6em;}.cit-actionbar.pagination {padding: 0 0 0 0;float: right;}.cit-fieldrows {padding-top: 0.5em;}.g-tpl-200 .g-unit,.g-unit .g-tpl-200 .g-unit,.g-unit .g-unit .g-tpl-200 .g-unit,.g-unit .g-unit .g-unit .g-tpl-200 .g-unit {display: block;margin: 0 0 0 200px;width: auto;float: none;}.g-unit .g-unit .g-unit .g-tpl-200 .g-first,.g-unit .g-unit .g-tpl-200 .g-first,.g-unit .g-tpl-200 .g-first,.g-tpl-200 .g-first {display: block;margin: 0;width: 200px;float: left;}.cit-near-box {background-color: #FFC;position: absolute;z-index: 1;/* more padding on right makes "close window" img prettier */padding: 5px 20px 5px 5px;border: 1px solid #CCC;}/* rounded corner outside */div.cit-rco {display:block;height:1px;overflow:hidden;margin:0 2px;font-size:1px;line-height:1px;}/* rounded corner inside */div.cit-rci {display:block;height:1px;overflow:hidden;margin:0 1px;font-size:1px;line-height:1px;}/* light blue background */.cit-lbb {background-color:#E8F4F7;}/* dark green background */.cit-dgb {background-color:#9FD9A7;}/* light green background */.cit-lgb {background-color:#DCF6DB;}.cit-dark-link {text-decoration: none;}.cit-light-link,.cit-light-link:visited {text-decoration: none;color: #4272db;}.cit-bg-link,.cit-bg-link:visited {text-decoration: none;color: #77c;}.cit-dark-large-link {font-size: 120%;text-decoration: none;}.cit-lclgs {padding-left: 1em;padding-top: 0.33em;padding-bottom: 0.33em;border-right: 2px solid #9fd9a7;}.cit-lclgsr {float: right;padding-right: 1em;}.cit-lclgsc {margin-top: 0.6em;float: left;}.cit-scdel {margin-top: 0.6em;margin-bottom: 0.6em;}/* Used for profile photo and name/affiliation */.g-tpl-150 .g-unit,.g-unit .g-tpl-150 .g-unit,.g-unit .g-unit .g-tpl-150 .g-unit,.g-unit .g-unit .g-unit .g-tpl-150 .g-unit {display: block;margin: 0 0 0 150px;width: auto;float: none;}.g-unit .g-unit .g-unit .g-tpl-150 .g-first,.g-unit .g-unit .g-tpl-150 .g-first,.g-unit .g-tpl-150 .g-first,.g-tpl-150 .g-first {display: block;margin: 0;width: 150px;float: left;}.g-tpl-100 .g-unit,.g-unit .g-tpl-100 .g-unit,.g-unit .g-unit .g-tpl-100 .g-unit,.g-unit .g-unit .g-unit .g-tpl-100 .g-unit {display: block;margin: 0 0 0 100px;width: auto;float: none;}.g-unit .g-unit .g-tpl-100 .g-first,.g-unit .g-unit .g-unit .g-tpl-100 .g-first,.g-unit .g-tpl-100 .g-first, .g-tpl-100 .g-first {display: block;margin: 0;width: 100px;float: left;}.cit-photo-placeholder {text-align: center;}.cit-photo {padding: 1px;border: solid #9fd9a7 1px;vertical-align: top;}.cit-definition {font-size: 1em;padding: 1em;}.cit-definition.emphasis {font-style: italic;}/* BEGIN used for in-place editing */#cit-name-display,#cit-name-input {font-size: 32px;}#cit-name-input {background-color: #FFFFCC;}#cit-affiliation-input,#cit-int-input,#cit-domain-input,#cit-homepage-input {background-color: #FFFFCC;font-size: 120%}#cit-affiliation-display,#cit-int-display,#cit-domain-display,#cit-publish-display,#cit-homepage-display {font-size: 120%;}#cit-name-input {width: 10em;}#cit-affiliation-input,#cit-int-input,#cit-domain-input,#cit-homepage-input {width: 25em;}.cit-in-place-hover {background-color: #FFC;border: 1px solid #CCC;}.cit-in-place-nohover {background-color: auto;border: 1px solid white;}.cit-inplaceaction, cit-inplaceaction:visited {font-size: 0.85em;text-decoration: none;color: #4272db;}.cit-inplaceform {padding: 1px;}/* END used for in-place editing */.cit-user-info {margin-top: 8px;}/* 250px alt *//* Right-column on myworks page. */.g-tpl-250-alt .g-unit,.g-unit .g-tpl-250-alt .g-unit,.g-unit .g-unit .g-tpl-250-alt .g-unit,.g-unit .g-unit .g-unit .g-tpl-250-alt .g-unit {margin: 0 250px 0 0;width: auto;float: none;}.g-unit .g-unit .g-unit .g-tpl-250-alt .g-first,.g-unit .g-unit .g-tpl-250-alt .g-first,.g-unit .g-tpl-250-alt .g-first,.g-tpl-250-alt .g-first {margin: 0;width: 250px;float: right;}.cit-fieldbox {padding: 0 0.5em 0.5em 0.5em;}.cit-fieldbox i,.cit-fieldbox u,.cit-fieldbox .cit-dl {background: #e8f4f7;}.cit-fieldbox i {display:block;height:1px;overflow:hidden;margin:0 1px;font-size:1px;line-height:1px;}.cit-fieldbox u {display:block;height:1px;overflow:hidden;margin:0 2px;font-size:1px;line-height:1px;}.cit-fieldbox .cit-dl {background: #e8f4f7;padding: 0.5em;}.cit-fieldbox .cit-dd,.cit-fieldbox .cit-dt {padding-top: 0.2em;padding-bottom: 0.2em;}.cit-fieldbox .cit-dt {float: left;width: 10em;}.cit-fieldbox .cit-dd {margin-left: 10em;}.cit-fieldbox div#labels-sec .cit-dd,.cit-fieldbox div#labels-sec .cit-dt {padding-top: 0.5em;padding-bottom: 0.5em;}.cit-fieldbox #labels table {padding-right: 0.2em;}.cit-fieldbox input.cit-text {margin-top: -0.3em;margin-bottom: 0.2em;margin-right: 0.2em;width: 95%;}.cit-fieldbox div#authors_sec input {margin-top: 0;margin-bottom: 0.1em;}.cit-fieldbox div#title {font-size: 120%;}.cit-fieldbox input#title {font-size: 100%;}.cit-fieldbox.main div#scholar_sec a,.cit-fieldbox.main div#scholar_sec a:visited {color: #7777cc;}.cit-fieldbox.main div#authors_sec a,.cit-fieldbox.main div#authors_sec a:visited {color: #060;}.cit-fieldbox.pubdate input {margin-top: 0.5em;}.cit-fieldbox tr#authors_infotext {color: #666;}.cit-fieldbox table#authors {width: 100%;}</style><script type="text/javascript">function citGetById(id) {return document.getElementById(id);}function citHide(id) {var elem = citGetById(id);if (!elem) return;elem.style.display = "none";return false;}function citShow(id, type) {var elem = citGetById(id);if (!elem) return;elem.style.display = type;return false;}function citSubmit(id) {var form = citGetById(id);if (form) form.submit();return false;}function citFocus(id) {var elem = citGetById(id);if (!elem) return;elem.focus();return false;}function citGo(url) {window.location = url;}function citOnActionsSelect(id, add_url, list_trash_url,list_updates_url) {var select = citGetById(id);if (!select) {return;}if (select.value == "add_opt") {citGo(add_url);} else if (select.value == "list_trash_opt") {citGo(list_trash_url);} else if (select.value == "list_updates_opt") {citGo(list_updates_url);} else {citSubmit("citationsForm");}}function citToggleElem(id, displaytype) {var elem = citGetById(id);if (!elem) return;if (elem.style.display == displaytype) {elem.style.display = "none";} else {elem.style.display = displaytype;}return false;}function citClearTextHint(id, hint) {var elem = citGetById(id);if (!elem) return;if (elem.style.color == "gray" && elem.value == hint) {elem.value = "";elem.style.color = "black";} else if (elem.style.color == "gray" && elem.value != hint) {elem.style.color = "black";}return false;}function citSetTextHint(id, hint) {var elem = citGetById(id);if (!elem) return;if (elem.style.color == "black" && elem.value == "") {elem.value = hint;elem.style.color = "gray";}return false;}function citShowNearBox(near_me, message, vurl, vtext, hurl, htext) {var box = citGetById("cit-near-box");if (!box) {box = document.createElement("div");box.setAttribute("id", "cit-near-box");box.setAttribute("class", "cit-near-box");near_me.parentNode.appendChild(box);}box.innerHTML = message + " (<a href=\"" + vurl + "\">" + vtext + "</a> - <a href=\"" + hurl + "\">" + htext + "</a>) <img onclick=\"citHideNearBox()\" style=\"position: absolute; top:2px; right: 2px;\" src=\"/citations/images/remove.gif\"/>";box.style.display = "block";}function citHideNearBox() {var box = citGetById("cit-near-box");if (box) {box.style.display = "none";box.parentNode.removeChild(box);}}function citToggleNearBox(near_me, message, vurl, vtext, hurl, htext) {var box = citGetById("cit-near-box");if (box &&box.style.display == "block" &&near_me.parentNode == box.parentNode) {citHideNearBox();} else {citHideNearBox();citShowNearBox(near_me, message, vurl, vtext, hurl, htext);}}function citMessageDisplay(msgBox, display) {if (!msgBox) return;try {msgBox.style.visibility = display;} catch (ex) {msgBox.setAttribute("style", "visibility: " + display);}}function citSelectAll() {var form = citGetById("citationsForm");for (var i = 0; i < form.elements.length; i++) {if (form.elements[i].type != "checkbox") continue;form.elements[i].checked = true;}}function citSelectNone() {var form = citGetById("citationsForm");for (var i = 0; i < form.elements.length; i++) {if (form.elements[i].type != "checkbox") continue;form.elements[i].checked = false;}}function citInPlaceMouseOver(field) {citGetById("cit-" + field + "-display").className = "cit-in-place-hover";}function citInPlaceMouseOut(field) {citGetById("cit-" + field + "-display").className = "cit-in-place-nohover";}function citInPlaceResetAndEdit(field) {citInPlaceReset(field);citInPlaceEdit(field);}function citGetTextContent(id) {var elem = citGetById(id);if (!elem) return "";if (elem.innerText != undefined) {/* IE, Safari, Chrome, Opera */return elem.innerText;} else if (elem.textContent) {/* IE9, Firefox, Safari, Chrome, Opera */return elem.textContent;}return "";}function citInPlaceReset(field) {/* Reset the edit field to the current value. */if (field == "int" || field == "domain" || field == "homepage") {var currval = citGetTextContent("cit-" + field + "-prefill");} else {var currval = citGetTextContent("cit-" + field + "-display");}var input = citGetById("cit-" + field + "-input");input.value = currval;}function citInPlaceEdit(field) {/* Hide display field and show input box. */citHide("cit-" + field + "-read");citShow("cit-" + field + "-write", "inline");var input = citGetById("cit-" + field + "-input");if (input) input.focus();}function citInPlaceShow(field) {citHide("cit-" + field + "-read");citShow("cit-" + field + "-write", "inline");}function citInPlaceCancel(field) {/* Hide input box and show display field. */citHide("cit-" + field + "-write");citShow("cit-" + field + "-read", "inline");}function citToggleIndexDef(id) {var index_def = citGetById(id);if (!index_def) return;if (index_def.style.display &&index_def.style.display == "block") {citHideAllIndexDefs();} else {citHideAllIndexDefs();citShow(id, "block");}return false;}function citHideAllIndexDefs() {citHide('h_index_definition');citHide('i_ten_index_definition');citHide('total_citations_definition');citHide('h5_index_definition');citHide('h5_median_definition');return false;}function citMessageBox(messageBox, messageText) {this.messageBox = citGetById(messageBox);this.messageText = citGetById(messageText);this.timeoutId = null;}citMessageBox.prototype.hideMessage = function () {citMessageDisplay(this.messageBox, "hidden");};citMessageBox.prototype.showMessage = function (newText) {if (!newText) {this.hideMessage();} else {this.messageText.innerHTML = newText;citMessageDisplay(this.messageBox, "visible");this.setHideMessageTimeout();}};citMessageBox.prototype.setHideMessageTimeout = function () {this.cancelHideMessageTimeout();var _self = this;this.timeoutId = setTimeout(function () {_self.hideMessage();}, 60000);};citMessageBox.prototype.cancelHideMessageTimeout = function () {try {clearTimeout(this.timeoutId);} catch (ex) {/* Don't care. */}this.timeoutId = null;};var citGCMessageBox;function citInitGlobals() {citGCMessageBox = new citMessageBox("message_box", "message_text");var showMsg = citGetById("cit-show-msg");var shownMsg = citGetById("cit-shown-msg");if (showMsg && showMsg.value && !(shownMsg && shownMsg.value)) {if (shownMsg) shownMsg.value = "1";citMessageDisplay(citGCMessageBox.messageBox, "visible");citGCMessageBox.setHideMessageTimeout();}if (window.addEventListener) {window.addEventListener("unload", function() { citGCMessageBox.hideMessage(); }, false);} else if (window.attachEvent) {window.attachEvent("onunload", function() {citGCMessageBox.hideMessage(); });}}if (window.addEventListener) {window.addEventListener("load", citInitGlobals, false);} else if (window.attachEvent) {window.attachEvent("onload", citInitGlobals);}</script><script>var gs_ie_ver=100;</script><!--[if IE 6]><script>gs_ie_ver=6;</script><![endif]--><!--[if IE 7]><script>gs_ie_ver=7;</script><![endif]--><!--[if IE 8]><script>gs_ie_ver=8;</script><![endif]--><script>function gs_id(i){return document.getElementById(i)}function gs_ch(e,t){return e?e.getElementsByTagName(t):[]}function gs_ech(e){return e.children||e.childNodes}function gs_atr(e,a){return e.getAttribute(a)}function gs_hatr(e,a){var n=e.getAttributeNode(a);return n&&n.specified}function gs_xatr(e,a,v){e.setAttribute(a,v)}function gs_uatr(e,a){e.removeAttribute(a)}function gs_catr(e,a,v){gs_hatr(e,a)&&gs_xatr(e,a,v)}function gs_ctai(e,v){gs_hatr(e,"tabindex")&&(e.tabIndex=v)}function gs_uas(s){return (navigator.userAgent||"").indexOf(s)>=0}var gs_is_tc=/[?&]tc=([01])/.exec(window.location.search||""),gs_is_ios=gs_uas("iPhone")||gs_uas("iPod")||gs_uas("iPad");if(gs_is_tc){gs_is_tc=parseInt(gs_is_tc[1]);}else if(window.matchMedia&&matchMedia("(pointer),(-moz-touch-enabled),(-moz-touch-enabled:0)").matches){gs_is_tc=matchMedia("(pointer:coarse),(-moz-touch-enabled)").matches;}else{gs_is_tc=gs_is_ios||gs_uas("Android")||gs_uas("Windows Phone")||gs_uas("BlackBerry")||(gs_uas("AppleWebKit")&&(gs_uas("Mobile")||gs_uas("Tablet")))||gs_uas("Opera Mini")||gs_uas("Opera Mobi")||gs_uas("IEMobile")||('ontouchstart' in window)||(navigator.msMaxTouchPoints||0)>0;}var gs_re_sp=/\s+/,gs_re_sel=/(?:^|\s)(\S*-)?gs_sel(-\S*)?(?!\S)/g,gs_re_hvr=/(?:^|\s)(\S*-)?gs_hvr(-\S*)?(?!\S)/g,gs_re_fcs=/(?:^|\s)(\S*-)?gs_fcs(-\S*)?(?!\S)/g,gs_re_act=/(?:^|\s)(\S*-)?gs_act(-\S*)?(?!\S)/g,gs_re_dis=/(?:^|\s)(\S*-)?gs_dis(-\S*)?(?!\S)/g,gs_re_vis=/(?:^|\s)(\S*-)?gs_vis(-\S*)?(?!\S)/g,gs_re_bsp=/(?:^|\s)(\S*-)?gs_bsp(-\S*)?(?!\S)/g,gs_re_cb=/(?:^|\s)gs_in_cb(?!\S)/,gs_re_ra=/(?:^|\s)gs_in_ra(?!\S)/;function gs_xcls(e,c){var l=e.className.split(gs_re_sp),n=l.length,i;l.push(c);for(i=0;i<n;i++){l[i]&&l.push(l[i]+"-"+c)}gs_scls(e,l.join(" "));}function gs_ucls(e,r){gs_scls(e,e.className.replace(r,""))}function gs_scls(e,c){return e.className!=c&&(e.className=c,true)}function gs_usel(e){gs_ucls(e,gs_re_sel)}function gs_xsel(e){gs_usel(e);gs_xcls(e,"gs_sel")}function gs_isel(e){(e.className.match(gs_re_sel)?gs_usel:gs_xsel)(e)}function gs_uhvr(e){gs_ucls(e,gs_re_hvr)}function gs_xhvr(e){gs_uhvr(e);gs_xcls(e,"gs_hvr");}function gs_ufcs(e){gs_ucls(e,gs_re_fcs)}function gs_xfcs(e){gs_ufcs(e);gs_xcls(e,"gs_fcs")}function gs_uact(e){gs_ucls(e,gs_re_act)}function gs_xact(e){gs_uact(e);gs_xcls(e,"gs_act")}function gs_udis(e){gs_ucls(e,gs_re_dis)}function gs_xdis(e){gs_udis(e);gs_xcls(e,"gs_dis")}function gs_uvis(e){gs_ucls(e,gs_re_vis)}function gs_xvis(e){gs_uvis(e);gs_xcls(e,"gs_vis")}function gs_ubsp(e){gs_ucls(e,gs_re_bsp)}function gs_xbsp(e){gs_ubsp(e);gs_xcls(e,"gs_bsp")}var gs_gcs=window.getComputedStyle?function(e){return getComputedStyle(e,null)}:function(e){return e.currentStyle};var gs_ctd=function(){var s=document.documentElement.style,p,l=['OT','MozT','webkitT','t'],i=l.length;function f(s){return Math.max.apply(null,(s||"").split(",").map(parseFloat))||0;}do{p=l[--i]+'ransition'}while(i&&!(p in s));return i?function(e){var s=gs_gcs(e);return f(s[p+"Delay"])+f(s[p+"Duration"]);}:function(){return 0};}();function gs_vis(e,v,c){var s=e&&e.style,n="webkitTransitionEnd",h,f;if(s){gs_catr(e,"aria-hidden",v?"false":"true");if(v){s.display=v===2?"inline":"block";gs_ctd(e);gs_xvis(e);h=function(){e.removeEventListener(n,h,false);var t=pageYOffset+e.getBoundingClientRect().bottom,x=gs_id("gs_top");t>x.offsetHeight&&(x.style.minHeight=t+"px");};f=gs_ctd(e);"on"+n.toLowerCase() in window&&f&&e.addEventListener(n,h,false);c&&(f?setTimeout(c,1000*f):c());}else{gs_uvis(e);h=function(){s.display="none";var x=gs_id("gs_top").style;x.minHeight&&(x.minHeight="");c&&c();};f=gs_ctd(e);f?setTimeout(h,1000*f):h();}}}function gs_visi(i,v,c){gs_vis(gs_id(i),v,c)}function gs_sel_clk(p,t){var l=gs_ch(gs_id(p),"li"),i=l.length,c,x,s;while(i--){if((c=gs_ch(x=l[i],"a")).length){s=c[0]===t;(s?gs_xsel:gs_usel)(x);gs_catr(c[0],"aria-selected",s?"true":"false");}}return false;}function gs_efl(f){if(typeof f=="string"){var c=f.charAt(0),x=f.slice(1);if(c==="#")f=function(t){return t.id===x};else if(c===".")f=function(t){return (" "+t.className+" ").indexOf(" "+x+" ")>=0};else{c=f.toLowerCase();f=function(t){return t.nodeName.toLowerCase()===c};}}return f;}function gs_dfcn(d){return (d?"last":"first")+"Child"}function gs_dnsn(d){return (d?"previous":"next")+"Sibling"}var gs_trv=function(){function h(r,x,f,s,n,c){var t,p;while(x){if(x.nodeType===1){if(f(x)){if(c)return x;}else{for(p=x[s];p;p=p[n])if(t=h(p,p,f,s,n,1))return t;}}c=1;while(1){if(x===r)return;p=x.parentNode;if(x=x[n])break;x=p;}}}return function(r,x,f,d){return h(r,x,gs_efl(f),gs_dfcn(d),gs_dnsn(d))};}();function gs_bind(){var a=Array.prototype.slice.call(arguments),f=a.shift();return function(){return f.apply(null,a.concat(Array.prototype.slice.call(arguments)))};}var gs_evt_ie=[],gs_evt1=window.addEventListener?function(e,n,f){e.addEventListener(n,f,false);}:function(e,n,f){n="on"+n;e.attachEvent(n,f);gs_ie_ver<=6&&gs_evt_ie.push(function(){e.detachEvent(n,f)});};function gs_evt(e,n,f){if(typeof n==="string")gs_evt1(e,n,f);else for(var i=n.length;i--;)gs_evt1(e,n[i],f);}function gs_evt_all(l,n,f){for(var i=l.length;i--;){gs_evt(l[i],n,gs_bind(f,l[i]))}}function gs_evt_dlg(p,c,n,f){p!==c&&(c=gs_efl(c));gs_evt(p,n,p===c?function(e){f(p,e)}:function(e){var t=gs_evt_tgt(e);while(t){if(c(t))return f(t,e);if(t===p)return;t=t.parentNode;}});}function gs_evt_sms(v){var L=[],l=["mousedown","click"],i=l.length;function s(e){for(var l=L,n=l.length,i=0,x=e.clientX,y=e.clientY;i<n;i+=2){if(Math.abs(x-l[i])<10&&Math.abs(y-l[i+1])<10){gs_evt_ntr(e);break;}}}while(i--)document.addEventListener(l[i],s,true);gs_evt_sms=function(e){var l=e.changedTouches||[],h=l[0]||{};L.push(h.clientX,h.clientY);setTimeout(function(){L.splice(0,2)},2000);};gs_evt_sms(v);v=0;}function gs_evt_clk(e,f,w,k){return gs_evt_dlg_clk(e,e,function(t,e){f(e)},w,k);}function gs_evt_dlg_clk(p,c,f,w,k){k=","+(k||[13,32]).join(",")+",";return gs_evt_dlg_xclk(p,c,function(t,e){if(e.type=="keydown"){if(k.indexOf(","+e.keyCode+",")<0)return;gs_evt_ntr(e);}f(t,e);},w);}var gs_evt_cl=["touchstart","touchend","touchcancel","mousedown","keydown","keyup","click"];function gs_evt_xclk(e,f,w){return gs_evt_dlg_xclk(e,e,function(t,e){f(e)},w);}function gs_evt_dlg_xclk(p,c,f,w){var T,S=0,X=0,Y=0,O=0,V=0;function u(t,e){var n=e.type,h,l;if(t!==T){T=t;S=0;}if(!gs_evt_spk(e)){if(n==="mousedown"){if(w!==2)return S=0;S=1;}else if(n==="click"){if(S){gs_evt_ntr(e);return S=0;}}else if(n==="touchstart"&&w){if(e.timeStamp-V<200){gs_evt_ntr(e);return S=0;}if(w===2){S=0;}else{if((l=e.touches).length!==1)return S=-3;h=l[0];X=h.pageX;Y=h.pageY;O=pageYOffset;return S=3;}}else if(n==="touchcancel"){return S=0;}else if(n==="touchend"&&w){gs_evt_sms(e);V=e.timeStamp;if(w===2){gs_evt_ntr(e);return S=0;}if(S!==3||(l=e.changedTouches).length!==1||Math.abs(X-(h=l[0]).pageX)>10||Math.abs(Y-h.pageY)>10||Math.abs(O-pageYOffset)>1){return S=(e.touches.length?-4:0);}S=0;}else if(n==="keydown"){f(t,e);return;}else if(n==="keyup"){e.keyCode===32&&gs_evt_pdf(e);return;}else{return}gs_evt_ntr(e);f(t,e);}}gs_evt_dlg(p,c,w?gs_evt_cl:["click","keydown","keyup"],u);return u;}function gs_evt_inp(e,f){gs_evt(e,["input","keyup","cut","paste","change"],function(){setTimeout(f,0)});}function gs_evt_fcs(e,f){e.addEventListener("focus",f,true)}function gs_evt_blr(e,f){e.addEventListener("blur",f,true)}if("onfocusin" in document){gs_evt_fcs=function(e,f){gs_evt(e,"focusin",f)};gs_evt_blr=function(e,f){gs_evt(e,"focusout",f)};}function gs_evt_stp(e){e.cancelBubble=true;e.stopPropagation&&e.stopPropagation();return false;}function gs_evt_pdf(e){e.returnValue=false;e.preventDefault&&e.preventDefault();}function gs_evt_ntr(e){gs_evt_stp(e);gs_evt_pdf(e);}function gs_evt_tgt(e){var t=e.target||e.srcElement;t&&t.nodeType===3&&(t=t.parentNode);return t;}function gs_evt_spk(e){return e.ctrlKey||e.altKey||e.metaKey||e.shiftKey}function gs_tfcs(t){if(!gs_is_tc||(gs_uas("Windows")&&!gs_uas("IEMobile"))){t.focus();t.value=t.value;}}var gs_raf=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(c){setTimeout(c,33)};var gs_evt_rdy=function(){var d=document,l=[],h=function(){var n=l.length,i=0;while(i<n)l[i++]();l=[];};gs_evt(d,"DOMContentLoaded",h);gs_evt(d,"readystatechange",function(){var s=d.readyState;(s=="complete"||(s=="interactive"&&gs_id("gs_rdy")))&&h();});gs_evt(window,"load",h);return function(f){l.push(f)};}();function gs_evt_raf(e,n){var l=[],t=0,h=function(){var x=l,n=x.length,i=0;while(i<n)x[i++]();t=0;};return function(f){l.length||gs_evt(e,n,function(){!t++&&gs_raf(h)});l.push(f);};}var gs_evt_wsc=gs_evt_raf(window,"scroll"),gs_evt_wre=gs_evt_raf(window,"resize");var gs_md_st=[],gs_md_lv={},gs_md_fc={},gs_md_if,gs_md_is=0;function gs_md_ifc(d,f){gs_md_fc[d]=f}function gs_md_sif(){gs_md_if=1;setTimeout(function(){gs_md_if=0},0);}function gs_md_plv(n){var l=gs_md_lv,x=0;while(n&&!x){x=l[n.id]||0;n=n.parentNode;}return x;}gs_evt(document,"click",function(e){var m=gs_md_st.length;if(m&&!gs_evt_spk(e)&&m>gs_md_plv(gs_evt_tgt(e))){(gs_md_st.pop())();gs_evt_pdf(e);}});gs_evt(document,"keydown",function(e){e.keyCode==27&&!gs_evt_spk(e)&&gs_md_st.length&&(gs_md_st.pop())();});gs_evt(document,"selectstart",function(e){gs_md_is&&gs_evt_pdf(e)});gs_evt_fcs(document,function(e){var l=gs_md_lv,m=gs_md_st.length,x,k,v,d;if(m&&!gs_md_if){x=gs_md_plv(gs_evt_tgt(e));while(x<m){v=0;for(k in l)l.hasOwnProperty(k)&&l[k]>v&&(v=l[d=k]);if(v=gs_md_fc[d]){gs_evt_stp(e);gs_id(v).focus();break;}else{(gs_md_st.pop())(1);--m;!gs_md_is++&&setTimeout(function(){gs_md_is=0},1000);}}}});function gs_md_cls(d,e){var x=gs_md_lv[d]||1e6;while(gs_md_st.length>=x)(gs_md_st.pop())();return gs_evt_stp(e);}function gs_md_opn(d,e,c,z){if(!gs_md_lv[d]){var n=gs_id(d),x=gs_md_plv(n),a=document.activeElement;while(gs_md_st.length>x)(gs_md_st.pop())();gs_visi(d,1);gs_md_st.push(function(u){gs_md_lv[d]=0;gs_visi(d,0,z);try{u||a.focus()}catch(_){}c&&c(u);});gs_md_lv[d]=gs_md_st.length;return gs_evt_stp(e);}}function gs_evt_md_mnu(d,b,f,a,w){var O,X;d=gs_id(d);b=gs_id(b);f=f?gs_efl(f):function(t){return (gs_hatr(t,"data-a")||t.nodeName==="A"&&t.href)&&t.offsetWidth;};a=a||function(t){var c=gs_atr(t,"data-a");c?eval(c):t.nodeName==="A"&&t.href&&(location=t.href);};function u(e){if(e.type=="keydown"){var k=e.keyCode;if(k==38||k==40){if(O){try{gs_trv(d,d,f,k==38).focus()}catch(_){}gs_evt_ntr(e);return;}}else if(k!=13&&k!=32){return;}gs_evt_pdf(e);}if(O){gs_md_cls(d.id,e);}else{gs_md_sif();O=1;gs_xsel(b);gs_md_opn(d.id,e,function(){O=0;gs_usel(b);try{gs_ufcs(X);X.blur()}catch(_){}});w&&w();}}function c(x,r){var p=x.parentNode,c=gs_ech(p),i=c.length,l="offsetLeft";if(p!==d){while(c[--i]!==x);p=p[gs_dnsn(r)]||p.parentNode[gs_dfcn(r)];c=gs_ech(p);if(i=Math.min(i+1,c.length)){p=c[i-1];if(p.nodeType==1&&f(p)&&p[l]!=x[l])return p;}}}function g(t,e){function m(x){if(x){gs_evt_ntr(e);x.focus();}}if(O){if(e.type=="keydown"){var k=e.keyCode;if(k==13||k==32){}else{if(k==38||k==40){m(gs_trv(d,t,f,k==38)||gs_trv(d,d,f,k==38));}else if(k==37||k==39){m(c(t,k==37));}return;}}gs_md_cls(d.id,e);gs_evt_pdf(e);gs_md_sif();a(t);}}gs_evt_xclk(b,u,2);gs_evt_fcs(d,function(e){var x=gs_evt_tgt(e);if(x&&f(x)){gs_ctai(x,0);gs_xfcs(x);X=x;}});gs_evt_blr(d,function(e){var x=gs_evt_tgt(e);if(x&&f(x)){gs_ctai(x,-1);gs_ufcs(x);X=0;}});gs_evt_dlg_xclk(d,f,g,1);return u;}function gs_evt_dlg_md_mnu(p,d,b,f,a,w){var r={};gs_evt_dlg(p,function(t){return d(t.id)},gs_evt_cl,function(t,e){var x=t.id;r[x]=r[x]||gs_evt_md_mnu(d(x),x,f,a,w)(e)||1;});}function gs_evt_md_sel(d,b,h,c,s,u){h=gs_id(h);c=gs_id(c);s=gs_id(s);return gs_evt_md_mnu(d,b,function(t){return gs_hatr(t,"data-v")},function(t){h.innerHTML=t.innerHTML;c.value=gs_atr(t,"data-v");if(t!==s){gs_usel(s);gs_uatr(s,"aria-selected");gs_xsel(s=t);gs_xatr(s,"aria-selected","true");}u&&u();},function(){s.focus()});}function gs_xhr(){if(window.XMLHttpRequest)return new XMLHttpRequest();var c=["Microsoft.XMLHTTP","MSXML2.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP.6.0"],i=c.length;while(i--)try{return new ActiveXObject(c[i])}catch(e){}}function gs_ajax(u,d,c){var r=gs_xhr();r.onreadystatechange=function(){r.readyState==4&&c(r.status,r.responseText);};r.open(d?"POST":"GET",u,true);d&&r.setRequestHeader("Content-Type","application/x-www-form-urlencoded");d?r.send(d):r.send();}var gs_lst,gs_xlst;if(window.localStorage){gs_lst=function(k){return localStorage[k]};gs_xlst=function(k,v){localStorage[k]=v};}else if(gs_ie_ver<8)!function(){var c;function l(){if(c)return c;c=document.createElement("div");c.style.display="none";c.style.behavior="url('#default#userdata')";document.body.appendChild(c);return c;}gs_lst=function(k){l().load("s");return gs_atr(l(),k)};gs_xlst=function(k,v){gs_xatr(l(),k,v);l().save("s")};}();var gs_evt_el=function(W,D,L){function p(){var r=D.documentElement,w=W.innerWidth||r.offsetWidth,h=W.innerHeight||r.offsetHeight,m="",n,i;if(w&&h){if(w<600)m="gs_el_sm gs_el_ph";else if(w<982)m="gs_el_sm gs_el_ta";else if(w<1060||h<590)m="gs_el_sm";else if(w<1252||h<640)m="gs_el_me";gs_is_tc&&gs_ie_ver>=8&&(m+=" gs_el_tc");gs_is_ios&&(m+=" gs_el_ios");if(gs_scls(r,m))for(n=L.length,i=0;i<n;)L[i++]();}}p();gs_evt_wre(p);gs_evt(W,["pageshow","load"],p);return function(f){f();L.push(f)};}(window,document,[]);gs_is_ios&&gs_uas("AppleWebKit")&&!gs_uas("CriOS")&&(gs_uas("OS 4_")||gs_uas("OS 5_"))&&(function(){var t=0,v=document.querySelector("meta[name=viewport]");v&&gs_evt(window,"devicemotion",function(e){var a=e.accelerationIncludingGravity,x=Math.abs(a.x),y=Math.abs(a.y),m=x>1&&x>1.3*y&&!(window.orientation%180);m!==t&&gs_xatr(v,'content','width=device-width,initial-scale=1,minimum-scale=1,maximum-scale='+(m?1:2));t=m;});})();function gs_is_cb(e){var n=e.className||"";return n.match(gs_re_cb)||n.match(gs_re_ra);}function gs_ssel(e){}(function(d){function c(){var v=l,i=v.length,k=p,e,x=gs_id("gs_top");if(x&&!r){gs_evt(x,"click",function(){});r=1;if(!s){clearInterval(t);t=null}}p=i;while(i-->k)gs_is_cb((e=v[i]).parentNode)&&gs_ssel(e);}var s=gs_ie_ver<=8,l=[],p=0,t=setInterval(c,200),r;gs_evt_rdy(function(){c();l=[];clearInterval(t)});if(!s&&gs_is_tc){s=/AppleWebKit\/([0-9]+)/.exec(navigator.userAgent||"");s=s&&parseInt(s[1])<535;}if(!s)return;l=gs_ch(d,"input");gs_ssel=function(e){var p=e.parentNode,l,i,r;(e.checked?gs_xsel:gs_usel)(p);if(p.className.match(gs_re_ra)){l=e.form.elements[e.name]||[];for(i=l.length;i--;)((r=l[i]).checked?gs_xsel:gs_usel)(r.parentNode);}};gs_evt(d,"click",function(e){var x=gs_evt_tgt(e),p=x.parentNode;gs_is_cb(p)&&x.nodeName==="INPUT"&&gs_ssel(x);});if(gs_ie_ver>7)return;function w(t){var n=t&&t.nodeName;while(n==="SPAN"||n==="B"||n==="I")n=(t=t.parentNode).nodeName;return t;}var A;function y(f,e){var t=w(e.srcElement),n=t&&t.nodeName,p;if(n==="INPUT"||n==="BUTTON"||n==="LABEL"){p=t.parentNode;f(gs_is_cb(p)?p:t);}}gs_evt(d,"mousedown",gs_bind(y,function(t){gs_xact(A=t)}));gs_evt(d,"mouseup",function(){A&&(gs_uact(A),A=0)});gs_evt(d,"focusin",gs_bind(y,gs_xfcs));gs_evt(d,"focusout",gs_bind(y,gs_ufcs));if(gs_ie_ver>6)return;gs_evt(window,"unload",function(){var l=gs_evt_ie,i=l.length;while(i--){(l[i])()}l.length=0;});gs_evt(window,"load",function(){try{document.execCommand("BackgroundImageCache",false,true)}catch(_){}});function h(t){var n=(t=w(t))&&t.nodeName,p;return n==="BUTTON"||n==="LI"?t:(n==="INPUT"||n==="LABEL")&&(gs_is_cb(p=t.parentNode)?p:t);}gs_evt(d,"mouseover",function(e){var f=h(e.fromElement),t=h(e.srcElement);t&&t!==f&&gs_xhvr(t);});gs_evt(d,"mouseout",function(e){var f=h(e.srcElement),t=h(e.toElement);f&&f!==t&&gs_uhvr(f);});function a(t){var n=(t=w(t))&&t.nodeName;return n==="BUTTON"&&t.type==="submit"&&t;}function k(f,b){var l=gs_ch(f,"button"),i=l.length,r=[],x;while(i--)(x=l[i]).type==="submit"&&r.push(x);if((i=r.length)>1){while(i--)(x=r[i])!==b&&(x.disabled=true);f.submit();}}gs_evt(d,"keydown",function(e){var v=e.srcElement,f,b;if(e.keyCode===13&&!gs_evt_spk(e)){for(f=v;f&&f.nodeName!=="FORM";f=f.parentNode);f&&((b=a(v))||v.nodeName==="INPUT"&&v.type==="text"?k(f,b):gs_evt_pdf(e));}});gs_evt(d,"click",function(e){var f,b;!gs_evt_spk(e)&&(b=a(e.srcElement))&&(f=b.form)&&k(f,b);});})(document);</script><script type="text/javascript"></script></head><body><style>#gs_gb{position:relative;height:30px;background:#2d2d2d;z-index:950;font-size:13px;line-height:16px;-webkit-backface-visibility:hidden;}#gs_gb_lt,#gs_gb_rt,#gs_gb_lp{position:absolute;top:0;white-space:nowrap;}#gs_gb_lt{left:34px}.gs_el_me #gs_gb_lt{left:18px}.gs_el_sm #gs_gb_lt{left:6px}.gs_el_ph #gs_gb_lt{display:none}#gs_gb_lp{display:none}#gs_gb_lp:hover,#gs_gb_lp:focus,#gs_gb_lp:active{-webkit-filter:brightness(100%);}.gs_el_ph #gs_gb_lp{display:block;z-index:1;cursor:pointer;top:8px;left:8px;width:50px;height:17px;background:url('/intl/en/scholar/images/google_logo_tg_2012.png');_background:transparent;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/intl/en/scholar/images/google_logo_tg_2012.png');}#gs_gb_rt{right:36px}.gs_el_me #gs_gb_rt{right:18px}.gs_el_sm #gs_gb_rt{right:6px}.gs_el_ta #gs_gb_rt,.gs_el_ph #gs_gb_rt{right:0}#gs_gb_lt a:link,#gs_gb_lt a:visited,#gs_gb_rt a:link,#gs_gb_rt a:visited{display:inline-block;vertical-align:top;height:29px;line-height:27px;padding:2px 10px 0 10px;font-weight:bold;color:#bbb;cursor:pointer;text-decoration:none;}#gs_gb_rt a:link,#gs_gb_rt a:visited{padding:2px 8px 0 8px}#gs_gb_lt a:hover,#gs_gb_lt a:focus,#gs_gb_lt a:active,#gs_gb_rt a:hover,#gs_gb_rt a:focus,#gs_gb_rt a:active{color:white;outline:none;}#gs_gb_ac{top:30px;left:auto;right:6px;width:288px;white-space:normal;}#gs_gb_aw,#gs_gb_ap,.gs_gb_am,#gs_gb_ab{display:block;padding:10px 20px;}#gs_gb_aw{background:#fef9db;font-size:11px;}#gs_gb_ap,.gs_gb_am{border-bottom:1px solid #ccc;}#gs_gb_aa:link,#gs_gb_aa:visited{padding:7px 0 5px 0;float:right;margin-left:8px;color:#1155cc;}#gs_gb_aa:active{color:#d14836}.gs_gb_am:link,.gs_gb_am:visited{color:#222;text-decoration:none;}.gs_gb_am:hover,.gs_gb_am:focus{background:#f1f1f1}.gs_gb_am:active{background:#eee}#gs_gb_ab{background:#fbfbfb;overflow:auto;zoom:1;}#gs_gb_aab{float:left;margin-right:16px}#gs_gb_aso{float:right}</style><div id="gs_gb" role="navigation"><div id="gs_gb_lt"><a href="http://www.google.com/webhp?hl=en&">Web</a><a href="http://www.google.com/imghp?hl=en&">Images</a><a href="http://www.google.com/intl/en/options/">More…</a></div><a id="gs_gb_lp" aria-label="Web" href="http://www.google.com/webhp?hl=en&"></a><div id="gs_gb_rt"><a href="https://accounts.google.com/Login?hl=en&continue=http://scholar.google.com/citations%3Fview_op%3Dview_citation%26hl%3Den%26user%3D6WjiSOwAAAAJ%26citation_for_view%3D6WjiSOwAAAAJ:qjMakFHDy7sC">Sign in</a></div></div><div id="gs_top"><div class="g-doc-1024"><div class="g-section g-tpl-250-alt"><div class="g-unit g-first"><div style="padding-left:1em"><a href="http://scholar.google.com/schhp?hl=en&oe=ASCII" target="_top"><img src="http://scholar.google.com/intl/en/scholar/images/scholar_logo_md_2011.gif" width="194" height="40" alt="Scholar Home" border=0></a><form method="get" action="/citations"><input type=hidden name=hl value="en"><input type=hidden name=oe value="ASCII"><input type="hidden" name="view_op" value="search_authors"><input type="text" name="mauthors" style="width:100%"><br><input type="submit" value="Search Authors"></form><br><div style="font-size:120%"><a href="/citations?hl=en&oe=ASCII" class="cit-dark-link" target="_top">Get my own profile</a> - <a class="cit-dark-link" href="/intl/en/scholar/citations.html">Help</a></div><br></div></div><div class="g-unit"><div class="cit-user-info"><div class="g-section g-tpl-100"><div class="g-unit g-first"><div style="text-align: center;"><a href="/citations?user=6WjiSOwAAAAJ&hl=en&oe=ASCII"><img width="96" height="96" src="/citations/images/green_ghost.jpg"></a><br><a class="cit-inplaceaction" href="javascript:void(0)" onclick="citTogglePhotoForm();"></a></div></div><div class="g-unit"><div style="margin-left:6px"><form id="cit-name-form" method="post" class="cit-inplaceform" action=""><span id="cit-name-read"><span id="cit-name-display" class="cit-in-place-nohover">Soumya Ray</span></span></form><form id="cit-affiliation-form" method="post" class="cit-inplaceform" action=""><span id="cit-affiliation-read"><span id="cit-affiliation-display" class="cit-in-place-nohover">Assistant Professor, Institute of Service Science, National Tsing Hua University</span></span></form><form id="cit-int-form" method="post" class="cit-inplaceform" action=""><span id="cit-int-read"><span id="cit-int-display" class="cit-in-place-nohover" >Unknown interests</span></span></form><form id="cit-domain-form" method="post" class="cit-inplaceform" action=""><span id="cit-domain-read"><span id="cit-domain-display" class="cit-in-place-nohover">Verified email at mx.nthu.edu.tw</span></span></form><form id="cit-homepage-form" method="post" class="cit-inplaceform" style="display:inline" action=""><span id="cit-homepage-read"><a class="cit-dark-large-link" href="http://soumyaray.com/" rel="nofollow" target="_blank">Homepage</a></span></form></div></div></div></div></div></div><div class="g-section"><div class="cit-messagebox" id="message_box" style="visibility:hidden"><table style="display:inline-table"><tr><td><b></b><i></i><form style="display:none"><input type="hidden" id="cit-show-msg" value=""><input type="text" id="cit-shown-msg" value=""></form><form action="" method="post" name="undoFrm"><input type="hidden" name="" value=""/><div id="message_text"> </div></form><i></i><b></b></td></tr></table></div></div><div class="g-section"><table class="cit-bodytable"><tr><td class="cit-contentcell"><div class="cit-body"><b></b><i></i><form method="post" action="/citations?hl=en&oe=ASCII&user=6WjiSOwAAAAJ&citation_for_view=6WjiSOwAAAAJ:qjMakFHDy7sC&view_op=view_citation" id="citationsForm"><input type="hidden" name="xsrf" value="AMstHGQAAAAAU8i6fcswBh-QdBCMz3AikOmibdX5lqlo"/><input type="hidden" name="s" value="6WjiSOwAAAAJ:qjMakFHDy7sC"><div class="g-section cit-dgb"><div style="padding:0.3em 0.6em;"><table style="width:100%"><tr><td><a href="/citations?user=6WjiSOwAAAAJ&hl=en&oe=ASCII" class="cit-dark-link">« Back to list</a> <input type="submit" value="Export" id="export_btn_top" name="export_btn"> </td><td style="text-align:right;"></td></tr></table></div></div><div style="border-left:0.4em solid #9fd9a7;"><div class="g-section"><div style="padding: 0.5em 0 0 0"><div class="g-section cit-fieldbox" id="main_sec"><u></u><i></i><div style="float:right;padding:8px;font-size:120%;"><a class="cit-bg-link" href="http://meta.lib.ncu.edu.tw:9003/sfx_nthu?sid=google&auinit=S&aulast=Ray&atitle=The+Central+Role+of+Engagement+in+Online+Communities&id=doi:10.1287/isre.2014.0525" >Findit@NTHU</a></div><div class="cit-dl"><div class="cit-dt">Title</div><div class="cit-dd"><div id="title"><a style="text-decoration:none" href="http://pubsonline.informs.org/doi/abs/10.1287/isre.2014.0525" >The Central Role of Engagement in Online Communities</a></div></div><div class="g-section"><div class="cit-dt">Authors</div><div class="cit-dd"> Soumya Ray, Sung S Kim, James G Morris</div></div><div class="g-section" id="pubdate_sec"><div class="cit-dt">Publication date</div><div class="cit-dd">2014/7/1</div></div><div class="g-section" id="venue_sec"><div class="cit-dt">Journal name</div><div class="cit-dd">Information Systems Research</div></div><div class="g-section" id="publisher_sec"><div class="cit-dt">Publisher</div><div class="cit-dd">INFORMS</div></div><div class="g-section" id="description_sec"><div class="cit-dt">Description</div><div class="cit-dd">Online communities are new social structures dependent on modern information technology, <br>and they face equally modern challenges. Although satisfied members regularly consume <br>content, it is considerably harder to coax them to contribute new content and help recruit <br>others because they face unprecedented social comparison and criticism. We propose that <br>engagement-a concept only abstractly alluded to in information systems research-is the key <br>to active participation in these unique sociotechnical environments. We constructed and <strong> ...</strong></div></div></div><i></i><u></u></div><div class="g-section cit-fieldbox"><u></u><i></i><div class="cit-dl"><div class="g-section"><div class="cit-dt">Scholar articles</div><div class="cit-dd"><a href="http://scholar.google.com/scholar?oi=bibs&hl=en&oe=ASCII&cluster=18260291687290566625&btnI=Lucky" class="cit-dark-link" >The Central Role of Engagement in Online Communities</a><br>S Ray, SS Kim, JG Morris - Information Systems Research, 2014<br></div></div></div><i></i><u></u></div></div></div></div><div class="g-section cit-dgb"><div style="padding:0.3em 0.6em;"><table style="width:100%"><tr><td><a href="/citations?user=6WjiSOwAAAAJ&hl=en&oe=ASCII" class="cit-dark-link">« Back to list</a> <input type="submit" value="Export" id="export_btn_bottom" name="export_btn"> </td><td style="text-align:right;"></td></tr></table></div></div></form><i></i><b></b></div></td></tr></table></div><div class="g-section"><div style="margin-top: 1em; text-align: center; font-size: 1em;"><div style="margin-bottom: 1em;font-style: italic">Dates and citation counts are estimated and are determined automatically by a computer program.</div>©2013 Google - <a href="/intl/en/scholar/about.html" class="cit-dark-link" target="_top">About Google Scholar</a> - <a href="http://www.google.com/intl/en/about.html" class="cit-dark-link" target="_top">All About Google</a> - <a href="http://www.google.com/support/scholar/bin/request.py?contact_type=general" class="cit-dark-link" target="_top">Provide feedback</a> - <a href="/citations?hl=en&oe=ASCII" class="cit-dark-link" target="_top">My Citations</a></div></div></div></div></body></html>
|
data/spec/minitest_helper.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
1
|
require './lib/gentle-scholar.rb'
|
2
|
+
require 'nokogiri'
|
2
3
|
|
3
|
-
|
4
|
+
SEC_RESULTS = GentleScholar::Publication.get_from_http('6WjiSOwAAAAJ:u5HHmVD_uO8C')
|
5
|
+
UNPUB_PAPER = File.read('./spec/docs/unpub_doc.txt')
|
data/spec/publication_spec.rb
CHANGED
@@ -15,7 +15,7 @@ describe 'Publication', 'A single publication listing' do
|
|
15
15
|
# end
|
16
16
|
|
17
17
|
before do
|
18
|
-
@sec_paper =
|
18
|
+
@sec_paper = SEC_RESULTS
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'has the right title' do
|
@@ -28,15 +28,15 @@ describe 'Publication', 'A single publication listing' do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'has some url for listing cites' do
|
31
|
-
@sec_paper[:cites_url].must_match
|
31
|
+
@sec_paper[:cites_url].must_match %r|http://.*|
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'has some url for citations chart' do
|
35
|
-
@sec_paper[:chart_url].must_match
|
35
|
+
@sec_paper[:chart_url].must_match %r|http://.*|
|
36
36
|
end
|
37
37
|
|
38
|
-
it 'has some url for the
|
39
|
-
@sec_paper[:article_url].must_match
|
38
|
+
it 'has some url for the published article' do
|
39
|
+
@sec_paper[:article_url].must_match %r|http://.*|
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'has the right author(s) (as nested array)' do
|
@@ -68,9 +68,33 @@ describe 'Publication', 'A single publication listing' do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
it 'has some url for the main citations apage' do
|
71
|
-
@sec_paper[:gscholar_url].must_match
|
71
|
+
@sec_paper[:gscholar_url].must_match(/citations/)
|
72
72
|
end
|
73
73
|
|
74
74
|
end
|
75
75
|
|
76
|
+
describe 'when it is an unpublished paper (missing attributes)' do
|
77
|
+
before do
|
78
|
+
doc = Nokogiri::HTML(UNPUB_PAPER)
|
79
|
+
@unpub_paper = GentleScholar::Publication.extract_from_document(doc)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'has the right basic information' do
|
83
|
+
@unpub_paper[:title].must_equal 'The Central Role of Engagement in Online Communities'
|
84
|
+
@unpub_paper[:article_url].must_match(%r|http://.*|)
|
85
|
+
@unpub_paper[:gscholar_url].must_match(/citations/)
|
86
|
+
@unpub_paper[:authors].must_equal [['Soumya', 'Ray'], ['Sung', 'S', 'Kim'], ['James', 'G', 'Morris']]
|
87
|
+
@unpub_paper[:date].must_be_instance_of Date
|
88
|
+
@unpub_paper[:journal].must_equal 'Information Systems Research'
|
89
|
+
@unpub_paper[:publisher].must_equal 'INFORMS'
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'must not produce error for non-existing information' do
|
93
|
+
@unpub_paper[:volume].must_be_nil
|
94
|
+
@unpub_paper[:issue].must_be_nil
|
95
|
+
@unpub_paper[:pages].must_be_nil
|
96
|
+
@unpub_paper[:chart_url].must_be_nil
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
76
100
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gentle-scholar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Soumya Ray
|
@@ -82,6 +82,7 @@ files:
|
|
82
82
|
- lib/gentle-scholar.rb
|
83
83
|
- lib/gentle-scholar/publication.rb
|
84
84
|
- lib/gentle-scholar/version.rb
|
85
|
+
- spec/docs/unpub_doc.txt
|
85
86
|
- spec/minitest_helper.rb
|
86
87
|
- spec/publication_spec.rb
|
87
88
|
homepage: https://github.com/soumyaray/gentle-scholar
|
@@ -104,10 +105,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
105
|
version: '0'
|
105
106
|
requirements: []
|
106
107
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.
|
108
|
+
rubygems_version: 2.2.2
|
108
109
|
signing_key:
|
109
110
|
specification_version: 4
|
110
111
|
summary: Google Scholar infor extractor
|
111
112
|
test_files:
|
113
|
+
- spec/docs/unpub_doc.txt
|
112
114
|
- spec/minitest_helper.rb
|
113
115
|
- spec/publication_spec.rb
|
116
|
+
has_rdoc:
|