treat 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. data/INSTALL +0 -0
  2. data/LICENSE +28 -0
  3. data/README +0 -0
  4. data/TODO +67 -0
  5. data/bin/INFO +1 -0
  6. data/examples/benchmark.rb +81 -0
  7. data/examples/keywords.rb +60 -0
  8. data/examples/texts/bugged_out.txt +26 -0
  9. data/examples/texts/half_cocked_basel.txt +16 -0
  10. data/examples/texts/hedge_funds.txt +24 -0
  11. data/examples/texts/hose_and_dry.txt +19 -0
  12. data/examples/texts/hungarys_troubles.txt +46 -0
  13. data/examples/texts/indias_slowdown.txt +15 -0
  14. data/examples/texts/merkozy_rides_again.txt +24 -0
  15. data/examples/texts/prada_is_not_walmart.txt +9 -0
  16. data/examples/texts/republican_nomination.txt +26 -0
  17. data/examples/texts/to_infinity_and_beyond.txt +15 -0
  18. data/lib/treat.rb +91 -0
  19. data/lib/treat/buildable.rb +115 -0
  20. data/lib/treat/categories.rb +29 -0
  21. data/lib/treat/category.rb +28 -0
  22. data/lib/treat/delegatable.rb +90 -0
  23. data/lib/treat/detectors.rb +28 -0
  24. data/lib/treat/detectors/encoding/native.rb +12 -0
  25. data/lib/treat/detectors/encoding/r_chardet19.rb +24 -0
  26. data/lib/treat/detectors/format/file.rb +36 -0
  27. data/lib/treat/detectors/language/language_detector.rb +19 -0
  28. data/lib/treat/detectors/language/what_language.rb +29 -0
  29. data/lib/treat/entities.rb +52 -0
  30. data/lib/treat/entities/collection.rb +19 -0
  31. data/lib/treat/entities/constituents.rb +15 -0
  32. data/lib/treat/entities/document.rb +11 -0
  33. data/lib/treat/entities/entity.rb +242 -0
  34. data/lib/treat/entities/sentence.rb +8 -0
  35. data/lib/treat/entities/text.rb +7 -0
  36. data/lib/treat/entities/tokens.rb +37 -0
  37. data/lib/treat/entities/zones.rb +17 -0
  38. data/lib/treat/exception.rb +5 -0
  39. data/lib/treat/extractors.rb +41 -0
  40. data/lib/treat/extractors/key_sentences/topics_frequency.rb +49 -0
  41. data/lib/treat/extractors/named_entity/abner.rb +20 -0
  42. data/lib/treat/extractors/named_entity/stanford.rb +174 -0
  43. data/lib/treat/extractors/statistics/frequency.rb +22 -0
  44. data/lib/treat/extractors/statistics/frequency_of.rb +17 -0
  45. data/lib/treat/extractors/statistics/position_in.rb +13 -0
  46. data/lib/treat/extractors/statistics/transition_matrix.rb +105 -0
  47. data/lib/treat/extractors/statistics/transition_probability.rb +53 -0
  48. data/lib/treat/extractors/time/chronic.rb +12 -0
  49. data/lib/treat/extractors/time/native.rb +12 -0
  50. data/lib/treat/extractors/time/nickel.rb +45 -0
  51. data/lib/treat/extractors/topic_words/lda.rb +71 -0
  52. data/lib/treat/extractors/topic_words/lda/data.dat +46 -0
  53. data/lib/treat/extractors/topic_words/lda/wiki.yml +121 -0
  54. data/lib/treat/extractors/topics/reuters.rb +91 -0
  55. data/lib/treat/extractors/topics/reuters/industry.xml +2717 -0
  56. data/lib/treat/extractors/topics/reuters/region.xml +13585 -0
  57. data/lib/treat/extractors/topics/reuters/topics.xml +17977 -0
  58. data/lib/treat/feature.rb +53 -0
  59. data/lib/treat/formatters.rb +44 -0
  60. data/lib/treat/formatters/cleaners/html.rb +17 -0
  61. data/lib/treat/formatters/readers/autoselect.rb +35 -0
  62. data/lib/treat/formatters/readers/gocr.rb +24 -0
  63. data/lib/treat/formatters/readers/html.rb +13 -0
  64. data/lib/treat/formatters/readers/ocropus.rb +31 -0
  65. data/lib/treat/formatters/readers/pdf.rb +17 -0
  66. data/lib/treat/formatters/readers/txt.rb +15 -0
  67. data/lib/treat/formatters/serializers/xml.rb +48 -0
  68. data/lib/treat/formatters/serializers/yaml.rb +15 -0
  69. data/lib/treat/formatters/serializers/yaml/helper.rb +96 -0
  70. data/lib/treat/formatters/unserializers/autoselect.rb +19 -0
  71. data/lib/treat/formatters/unserializers/xml.rb +79 -0
  72. data/lib/treat/formatters/unserializers/yaml.rb +15 -0
  73. data/lib/treat/formatters/visualizers/dot.rb +73 -0
  74. data/lib/treat/formatters/visualizers/html.rb +12 -0
  75. data/lib/treat/formatters/visualizers/inspect.rb +16 -0
  76. data/lib/treat/formatters/visualizers/short_value.rb +14 -0
  77. data/lib/treat/formatters/visualizers/standoff.rb +41 -0
  78. data/lib/treat/formatters/visualizers/tree.rb +28 -0
  79. data/lib/treat/formatters/visualizers/txt.rb +31 -0
  80. data/lib/treat/group.rb +96 -0
  81. data/lib/treat/inflectors.rb +50 -0
  82. data/lib/treat/inflectors/cardinal_words/linguistics.rb +45 -0
  83. data/lib/treat/inflectors/conjugators/linguistics.rb +30 -0
  84. data/lib/treat/inflectors/declensors/en.rb +18 -0
  85. data/lib/treat/inflectors/declensors/linguistics.rb +30 -0
  86. data/lib/treat/inflectors/lemmatizers/e_lemma.rb +12 -0
  87. data/lib/treat/inflectors/lemmatizers/e_lemma/Makefile +213 -0
  88. data/lib/treat/inflectors/lemmatizers/e_lemma/elemma.c +68 -0
  89. data/lib/treat/inflectors/lemmatizers/e_lemma/extconf.rb +6 -0
  90. data/lib/treat/inflectors/ordinal_words/linguistics.rb +21 -0
  91. data/lib/treat/inflectors/stemmers/porter.rb +158 -0
  92. data/lib/treat/inflectors/stemmers/porter_c.rb +23 -0
  93. data/lib/treat/inflectors/stemmers/uea.rb +30 -0
  94. data/lib/treat/lexicalizers.rb +49 -0
  95. data/lib/treat/lexicalizers/category/from_tag.rb +30 -0
  96. data/lib/treat/lexicalizers/linkages/naive.rb +63 -0
  97. data/lib/treat/lexicalizers/synsets/rita_wn.rb +23 -0
  98. data/lib/treat/lexicalizers/synsets/wordnet.rb +72 -0
  99. data/lib/treat/lexicalizers/tag/brill.rb +101 -0
  100. data/lib/treat/lexicalizers/tag/lingua.rb +114 -0
  101. data/lib/treat/lexicalizers/tag/stanford.rb +86 -0
  102. data/lib/treat/processors.rb +45 -0
  103. data/lib/treat/processors/chunkers/txt.rb +27 -0
  104. data/lib/treat/processors/parsers/enju.rb +214 -0
  105. data/lib/treat/processors/parsers/stanford.rb +60 -0
  106. data/lib/treat/processors/segmenters/punkt.rb +48 -0
  107. data/lib/treat/processors/segmenters/stanford.rb +45 -0
  108. data/lib/treat/processors/segmenters/tactful.rb +34 -0
  109. data/lib/treat/processors/tokenizers/macintyre.rb +76 -0
  110. data/lib/treat/processors/tokenizers/multilingual.rb +31 -0
  111. data/lib/treat/processors/tokenizers/perl.rb +96 -0
  112. data/lib/treat/processors/tokenizers/punkt.rb +42 -0
  113. data/lib/treat/processors/tokenizers/stanford.rb +33 -0
  114. data/lib/treat/processors/tokenizers/tactful.rb +59 -0
  115. data/lib/treat/proxies.rb +66 -0
  116. data/lib/treat/registrable.rb +26 -0
  117. data/lib/treat/resources.rb +10 -0
  118. data/lib/treat/resources/categories.rb +18 -0
  119. data/lib/treat/resources/delegates.rb +96 -0
  120. data/lib/treat/resources/dependencies.rb +0 -0
  121. data/lib/treat/resources/edges.rb +8 -0
  122. data/lib/treat/resources/formats.rb +23 -0
  123. data/lib/treat/resources/languages.rb +86 -0
  124. data/lib/treat/resources/languages.txt +504 -0
  125. data/lib/treat/resources/tags.rb +393 -0
  126. data/lib/treat/sugar.rb +43 -0
  127. data/lib/treat/tree.rb +174 -0
  128. data/lib/treat/utilities.rb +127 -0
  129. data/lib/treat/visitable.rb +27 -0
  130. data/test/profile.rb +2 -0
  131. data/test/tc_detectors.rb +27 -0
  132. data/test/tc_entity.rb +105 -0
  133. data/test/tc_extractors.rb +48 -0
  134. data/test/tc_formatters.rb +46 -0
  135. data/test/tc_inflectors.rb +39 -0
  136. data/test/tc_lexicalizers.rb +39 -0
  137. data/test/tc_processors.rb +36 -0
  138. data/test/tc_resources.rb +27 -0
  139. data/test/tc_treat.rb +64 -0
  140. data/test/tc_tree.rb +60 -0
  141. data/test/tests.rb +19 -0
  142. data/test/texts.rb +20 -0
  143. data/test/texts/english/long.html +24 -0
  144. data/test/texts/english/long.txt +22 -0
  145. data/test/texts/english/medium.txt +5 -0
  146. data/test/texts/english/short.txt +3 -0
  147. metadata +412 -0
data/INSTALL ADDED
File without changes
data/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ Treat - Text Retrieval and Annotation Toolkit
2
+
3
+ This program is free software: you can redistribute it and/or modify
4
+ it under the terms of the GNU General Public License as published by
5
+ the Free Software Foundation, either version 3 of the License, or
6
+ (at your option) any later version.
7
+
8
+ This program is distributed in the hope that it will be useful,
9
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ GNU General Public License for more details.
12
+
13
+ You should have received a copy of the GNU General Public License
14
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+
16
+ Author: Louis-Antoine Mullie (louis.mullie@gmail.com). Copyright 2012.
17
+
18
+ Non-trivial amount of code has been incorporated and modified from
19
+ other libraries, specifically for the following files:
20
+
21
+ - processors/tokenizers/macintyre.rb - Utiyama Masao (Ruby License)
22
+ - processors/tokenizers/tactful.rb - Matthew Bunday (GPL license)
23
+ - Inflectors/lemmatizers/e_lemma.rb - Utiyama Masao (GPL license)
24
+ - processors/tokenizers/perl.rb - Todd A. Fisher (MIT License)
25
+ - processors/tokenizers/punkt.rb - Steven Bird Edward Loper and Joel Nothman (Apache 2.0 license),
26
+ - extractors/topics/reuters.rb - Mark Watson (GPL license)
27
+ - inflectors/stemmers/porter.rb - Ray Pereda (No license information)
28
+ - tree.rb - Partyl based on work by
data/README ADDED
File without changes
data/TODO ADDED
@@ -0,0 +1,67 @@
1
+ == Before first release
2
+
3
+ - Linkers, inflectors
4
+ - Check taggers for context
5
+ - Stanford dependencies parse
6
+ - Enju : make sure Enju parses constituents, remove_last, abbr
7
+ - Ocropus => use better function
8
+ - Optimize magic methods... bigger or smaller, is_token? type methods, phrase categories.
9
+ - Move statistics?
10
+ - Synset class move
11
+ - general procedure for options, check that user doesn't want to change options...
12
+ - Resources: dependencies vs. edges, PTB function tags
13
+ - Check for # Fix everywhere
14
+ - Check paths; parse bin paths
15
+ - Ferret, Natural Inputs
16
+ - Use consistently delegate
17
+ - Text becomes section
18
+
19
+ === Eventually
20
+
21
+ - RDF output
22
+ - Apache OpenNLP
23
+ - Ariel
24
+ - Text2rdf
25
+ - AI libraries
26
+ - JAWS
27
+ - NLTK
28
+ - ghmm
29
+ - Root
30
+ - OpenCyc
31
+ - Tapas Kanungo
32
+ - Mark Watson Text Extractor & other Java tools
33
+ - Citar
34
+ - PLDA
35
+ - AI4R
36
+ - Math
37
+ - Abner
38
+ - ACOPOST
39
+ - Linkage integration
40
+ - Lemmatizer
41
+ - Claws tagger
42
+ - YAWNI
43
+ - Const missing instead of autoload
44
+ - Probabilistic features: rchardet19, what_language
45
+ - Enju multithreading ?
46
+ - String type detector for other languages
47
+
48
+ - Automatic benchmark
49
+
50
+ === Distant future
51
+
52
+ - Spell Cheker Raspell
53
+ - Multithreading
54
+
55
+ === Checklist before releasing
56
+
57
+ - Remove code from main page
58
+ - Remove lib path from tests and main page
59
+ - Remove docs
60
+ - gem19 build treat.gemspec
61
+
62
+ === Performance
63
+
64
+ - Cache results that get computed often
65
+ - Use .size == 0 instead of .empty?
66
+ - Optimize method_missing using define_method, even dynamically
67
+ - Array include is slow
@@ -0,0 +1 @@
1
+ This is where you can put your JAR files.
@@ -0,0 +1,81 @@
1
+ require 'benchmark'
2
+ require 'treat'
3
+
4
+ Benchmark.bmbm do |x|
5
+
6
+ Treat.edulcorate
7
+
8
+ =begin
9
+ # Readers
10
+ x.report("Read:PDF") { doc = Document 'pages/hhmm_article.pdf'; doc.read }
11
+ x.report("Read:TXT") { doc = Document 'pages/kant_short.txt'; doc.read }
12
+ x.report("Read:YAML") { doc = Document 'pages/nanotechnology_article.yml'; doc.read }
13
+ # x.report("Read:XML") { doc = Document 'pages/test.xml'; doc.read }
14
+ x.report("Read:Image") { doc = Document 'pages/novel_page.jpg'; doc.read }
15
+
16
+ # Read collection of texts.
17
+ coll = Collection 'pages'
18
+ coll.read
19
+ =end
20
+
21
+ # Processors.
22
+ # x.report("Cluster:LDA") { coll.cluster(:lda) }
23
+ x.report("Chunk:txt ") { text.chunk(:txt) }
24
+ x.report("Segment:punkt ") { text.segment(:punkt) }
25
+ x.report("Segment:tactful ") { text.segment(:tactful) }
26
+ x.report("Segment:stanford ") { text.segment(:stanford) }
27
+ x.report("Tokenize:macintyre ") { text.tokenize(:macintyre) }
28
+ x.report("Tokenize:multilingual "){ text.tokenize(:multilingual) }
29
+ x.report("Tokenize:perl "){ text.tokenize(:perl) }
30
+ x.report("Tokenize:stanford ") { text.tokenize(:stanford) }
31
+ x.report("Parse:enju") { text = text.parse(:enju) }
32
+ # x.report("Parse:stanford") { text = text.parse(:stanford) }
33
+ # x.report("Parse:link") { text = text.parse(:link) }
34
+
35
+ doc = Document 'pages/kant_short.txt'
36
+ text = doc.read.text.chunk.segment.tokenize
37
+
38
+ # Formatters.
39
+ yaml = nil; xml = nil
40
+ x.report("Serialize:yaml") { yaml = text.serialize(:yaml) }
41
+ x.report("Serialize:xml") { xml = text.serialize(:xml) }
42
+ x.report("Visualize:tree") { text.visualize(:tree) }
43
+ x.report("Visualize:txt") { text.visualize(:txt) }
44
+ # x.report("Visualize:dot") { text.visualize(:dot) }
45
+ # x.report("Visualize:standoff") { text.visualize(:standoff) }
46
+ # x.report("Visualize:simple_html") { text.visualize(:html) }
47
+ # Clean: html
48
+
49
+ # Detectors
50
+ x.report("Langugage:what_language ") { text.language(:what_language) }
51
+ x.report("Encoding:r_chardet19 ") { text.encoding(:r_chardet19) }
52
+ x.report("Format:file ") { text.format(:file) }
53
+
54
+ # Extractors
55
+ x.report("Date:chronic") { '2007/02/12'.date(:chronic) }
56
+ x.report("Date:native") { '2007/02/12'.date(:native) }
57
+ x.report("Time:chronic") { '2007/02/12'.time(:chronic) }
58
+ x.report("Topic:reuters") { text.topic }
59
+ x.report("Statistics:frequency:") { text.each_token { |token| token.statistics(:frequency) } }
60
+ # x.report("Statistics:position:") { text.each_token { |token| token.statistics(:position) } }
61
+
62
+ # Inflectors
63
+ # x.report("Lemma:elemma") { text.each_word { |word| word.lemma(:elemma) } }
64
+ x.report("Stem:porter_r") { text.each_word { |word| word.stem(:porter) } }
65
+ x.report("Stem:porter_c") { text.each_word { |word| word.stem(:porter_c) } }
66
+ x.report("Stem:uea") { text.each_word { |word| word.stem(:uea) } }
67
+ x.report("Declense:granger") { text.each_word { |word| word.declense(:granger) } }
68
+ # x.report("Inflect:granger") { text.each_noun { |word| word.plural(:granger) } }
69
+
70
+ # Statistics
71
+ x.report("Entity:word_count") { text.word_count }
72
+
73
+ # puts text.words_with_cat(:noun).inspect
74
+
75
+ # Lexicalizers
76
+ x.report("Tag:stanford") { text.each_word { |word| word.tag(:stanford) } }
77
+ # x.report("Tag:brill") { text.each_word { |word| word.tag(:brill) } }
78
+ # x.report("Tag:lingua") { text.each_word { |word| word.tag(:lingua) } }
79
+ # x.report("Lex:wordnet") { text.each_word { |word| word.lex(:wordnet) } }
80
+
81
+ end
@@ -0,0 +1,60 @@
1
+ require 'benchmark'
2
+ require 'treat'
3
+
4
+ Treat.edulcorate
5
+
6
+ c = Collection.from_serialized('texts/corpus.yml')
7
+
8
+ =begin
9
+ c.each_text do |t|
10
+ t.chunk.segment.parse(:stanford)
11
+ puts "Done text #{t.id}."
12
+ end
13
+
14
+ c.serialize(:yaml).save("economist/corpus.yml")
15
+
16
+ =end
17
+
18
+ topic_words = c.topic_words(
19
+ :lda,
20
+ :topics => 5,
21
+ :words_per_topic => 5,
22
+ :iterations => 20
23
+ )
24
+
25
+ c.each_document do |d|
26
+
27
+ sentences = d.key_sentences(
28
+ :topics_frequency,
29
+ :topic_words => topic_words,
30
+ :threshold => 4
31
+ )
32
+
33
+ tm = d.statistics(
34
+ :transition_matrix,
35
+ :features => [:tag],
36
+ :entity_type => :word,
37
+ :condition => lambda do |word|
38
+ word.has?(:is_keyword?) &&
39
+ word.is_keyword?
40
+ end
41
+ )
42
+
43
+ sentences.each do |sentence|
44
+ sentence.each_word do |word|
45
+ score = word.statistics(
46
+ :transition_probability,
47
+ :transition_matrix => tm,
48
+ :relationships => [:parent, :left, :right, :children]
49
+ )
50
+ if word.has?(:is_keyword?) &&
51
+ word.is_keyword?
52
+ score += 0.5
53
+ end
54
+ if score > 1
55
+ puts word.to_s
56
+ end
57
+ end
58
+ end
59
+
60
+ end
@@ -0,0 +1,26 @@
1
+ Coup-plotting allegations in Turkey
2
+ Bugged out
3
+
4
+ HIS /O colleagues hailed him as a "soldier-intellectual." But yesterday Ilker Başbuğ, a former chief of Turkey's general staff, was jailed in Istanbul on charges of belonging to a terrorist gang bent on overthrowing Turkey's mildly Islamist government.
5
+
6
+ Mr Başbuğ, who retired in 2010, is the highest-ranking officer to be arrested so far in the ongoing "Ergenekon" probe into assorted generals and their supposed allies in academia, the media and the business world who are accused of seeking to overthrow the government. Mr Başbuğ's alleged role in the conspiracy was to oversee a bevy of army-owned internet news portals that purported to prove that the government was seeking to introduce religious rule.
7
+
8
+ Mr Başbuğ is the first former army chief to be prosecuted in a civilian court. His arrest brings to 139 the number of generals and admirals, both serving and retired, who have been jailed on suspicion of coup-plotting.
9
+
10
+ Supporters of Recep Tayyip Erdoğan, the prime minister, say the move is a further step towards the government's consolidation of civilian control over an army that has toppled four governments since 1960. Until recently the generals were deemed untouchable, partly thanks to a swathe of laws they inserted into the constitution they wrote after their last coup, in 1980.
11
+
12
+ Mr Erdoğan and his Justice and Development (AK) party have been steadily trimming their powers, most recently through a set of constitutional amendments that among other things allow the generals to be tried in civilian courts. These changes were approved by 58% of voters in a referendum in 2010, further cementing AK's power.
13
+
14
+ Yet critics of the Ergenekon arrests say they have more to do with settling scores than with the rule of law. Defence lawyers have presented forensic reports suggesting that some of the evidence against their clients has been doctored.
15
+
16
+ Eric Edelman, a former American ambassador to Turkey and number two at the Pentagon under George W. Bush, got to know Mr Başbuğ. He says: "The notion that he headed a terrorist organisation just strains credulity".
17
+
18
+ It will also, he says, "underscore the serious questions about Turkey's continued commitment to press freedom and the rule of law." That commitment is waning. Nearly 500 students are in prison facing "terrorism" charges for such infractions as demanding free education. Some 97 journalists have also been imprisoned, many on similarly absurd grounds.
19
+
20
+ Mr Erdoğan's increasingly authoritarian ways have prompted claims that his government has simply swapped places with the army. His supporters have a different worry. They say that having purged the old guard in the military, he is now cutting deals with the new set.
21
+
22
+ That would help explain why the prime minister is supporting their renewed campaign against rebels of the separatist Kurdistan Workers' Party (PKK). This took a tragic turn last week when Turkish warplanes bombed a group of Kurdish civilians in northern Iraq, killing at least 34 of them. When conspiracists started to murmur Mr Erdogan rushed to the defence of the current chief of staff, Necdet Özel, saying it was out of the question that the army would deliberately bomb its own people.
23
+
24
+ All this is a far cry from 2009 when Mr Erdoğan launched his "Kurdish opening", an attempt to solve Turkey's long-festering Kurdish problem through a flurry of democratic reforms rather than brutal military tactics. One element of this process was secret talks with the PKK, but these broke down last summer. In an ironic twist Mr Başbuğ, who was then chief of staff, firmly backed Mr Erdoğan.
25
+
26
+ If found guilty, Mr Başbuğ will be convicted as a "terrorist", a label long reserved for the Kurdish separatists he sought to tame.
@@ -0,0 +1,16 @@
1
+ Half-cocked Basel
2
+ Stop-gap rules on banks’ trading books may add perilous complexity
3
+
4
+ THE NEW-YEAR hangover throbbed agonisingly for investment bankers this year. Blame Basel 2.5, a new set of international rules which charges banks higher capital for the risks they run in their trading books (as opposed to their banking books, where they keep assets that they intend to hold to maturity). Those charges were too low before. And heaping higher costs on banks should please politicians and Joe Public. But they add another layer of complexity to banks’ risk management.
5
+
6
+ Basel 2.5 came into force on December 31st in most European and major world financial jurisdictions. Switzerland applied the rules a year early, and the costs are substantial. Third-quarter figures for Credit Suisse show a 28% increase in risk-weighted assets, and hence capital charges, for its investment-banking activities purely because of Basel 2.5.
7
+
8
+ The most notable laggard is America. US financial regulators do not oppose Basel 2.5, but it clashes with the Dodd-Frank act, America’s big wet blanket of a financial reform. Basel 2.5 uses credit ratings from recognised agencies such as Moody’s and Standard & Poor’s to calibrate capital charges. Dodd-Frank expressly forbids the use of such ratings agencies, whose poor judgments are held partly responsible for the crisis. Instead American regulators are working on their own cocktail of credit-risk calibrations for Basel 2.5, using market data and country-risk ratings from the OECD. Their solution is still months away from application (though not as distant as implementation by the Russians or Argentines).
9
+
10
+ Basel 2.5 for the first time charges banks extra capital for the credit risk of what they hold in their trading portfolio (because the crisis showed that markets are not always liquid enough to be able to offload assets). That includes a charge for the risk that a counterparty goes bust. It also imposes heavy charges on securitised bundles of assets unless the credit risk of each piece of the bundle has an identifiable market price. Banks that have portfolios of trading positions which they reckon offset each other have to convince regulators that their risk models work or face being charged at a cruder, standardised rate.
11
+
12
+ The problem with Basel 2.5, recognised by regulators and bankers alike, is its complexity. The risk of a trading portfolio must now be broken down into five “buckets”—value at risk (VaR), a measure of how much could be lost in an average trading day; stressed VaR (how much could be lost in extreme conditions); plus three types of credit risk ranging from the risk of single credits to those of securitised loans. Traders are understandably confused. For some banks, developing risk models and getting them approved is just too expensive: more complex businesses will be shut down. That will please those who want banks to be more boring.
13
+
14
+ But unintended consequences will doubtless follow. Useful products may become less tradable. Trading of riskier products could migrate to unregulated entities. Banks may be tempted into new forms of regulatory arbitrage, by juggling assets between their trading book and their banking book. Worst of all, perhaps, is the increased risk of back-office bungling because of the extra complexity.
15
+
16
+ Regulators recognise this risk. The Basel Committee on Banking Supervision, which drew up the rules and is also responsible for the full Basel 3 regime that will come into force in 2019, is still conducting what it calls a “fundamental review” of capital rules for banks’ trading books. Publication is not expected before March. Those sore heads will not soon clear.
@@ -0,0 +1,24 @@
1
+ Rich managers, poor clients
2
+ A devastating analysis of hedge-fund returns
3
+
4
+ HEDGE-fund managers are the smartest investors around. With keen eyes and sharp brains, they spot and exploit inefficiencies in the markets. Or at least that is what the industry tells its clients.
5
+
6
+ There is no doubt that hedge-fund managers have been good at making money for themselves. Many of America’s recently minted billionaires grew rich from hedge clippings. But as a new book* by Simon Lack, who spent many years studying hedge funds at JPMorgan, points out, it is hard to think of any clients that have become rich by investing in hedge funds (whereas Warren Buffett has made millionaires of many of his original investors). Indeed, since 1998, the effective return to hedge-fund clients has only been 2.1% a year, half the return they could have achieved by investing in boring old Treasury bills.
7
+
8
+ How can that be, when traditional performance measures for the industry show average returns of 7% or so? The problem is a familiar one in fund management and is the equivalent of the “winner’s curse” that occurs with auctions (the successful bidder is doomed to overpay). Take a whole bunch of fund managers and give them an equal amount of money to invest. The managers that perform best initially will tend to attract more investors, and so will gradually become bigger than the moderate or poor performers (who will eventually go out of business).
9
+
10
+ But the manager will not perform well indefinitely. By the time a bad year occurs, the manager will be running a much larger fund. In cash terms, the loss on the expanded fund may easily outweigh the gains made when the fund was smaller. The return of the average investor will be lower than the average return of the fund.
11
+
12
+ What is true for individual funds also turns out to be true for the industry as a whole. Between 1998 and 2003 the average hedge fund earned positive returns every year, ranging from 5% in 2002 to 27% in 1999. Back then, however, the industry was quite small: overall assets only passed $200 billion in 2000.
13
+
14
+ That strong performance attracted the attention of pension funds, charities and university endowments at a time when their portfolios had been clobbered by the bursting of the dotcom bubble. They duly piled into “alternative assets” like hedge funds and private equity. By early 2008 the hedge-fund industry had around $2 trillion under management.
15
+
16
+ But that year turned out to be the annus horribilis for the hedge-fund sector. The average performance was a loss of 23%. In cash terms the loss for that single year was more than double the industry’s total assets under management in 2000, when it was still doing well. Mr Lack reckons that the industry may have lost enough money in 2008 to cancel out all the profits it made in the previous ten years.
17
+
18
+ At this point, hedge-fund managers might cry foul. The losses suffered in 2008 make a huge impact on the way Mr Lack calculates his figures. If you use the same methodology on stockmarkets, hedge funds outperformed the S&P 500 between 2001 and the end of 2010.
19
+
20
+ But private-equity managers are judged on a similar basis (the internal rate of return) to Mr Lack’s calculations. And his numbers probably flatter the hedge-fund industry. Indices of hedge-fund returns overstate the numbers because of factors such as “survivor bias” (poor performers stop reporting their numbers) and “backfill bias” (only successful newcomers start to report). These effects could add 3-5 percentage points a year to average returns. Many investors invest in the sector through funds of funds, which charge an additional layer of fees.
21
+
22
+ Even if you allow for the rebound in markets (and hedge-fund returns) in 2009 and 2010, investors have still got the short end of the stick. They have yet to recover the losses suffered in 2008. But hedge-fund managers took home almost $100 billion in fees between 2008 and 2010 (and an aggregate haul of $379 billion between 1998 and 2010).
23
+
24
+ Mr Lack’s book suggests the blind faith displayed by many institutional investors in hedge funds needs to be reconsidered. Individual managers may be brilliant but it is hard to spot them in advance. John Paulson was not particularly well-regarded before he made a fortune betting against subprime bonds—and his performance has slumped since. Investing in hedge funds will enable some lucky managers to enjoy an early retirement on their yachts. It will not enable pension funds to eliminate their deficits.
@@ -0,0 +1,19 @@
1
+ European banks
2
+ Hose and dry
3
+ The ECB fills banks with funds
4
+
5
+ WHEN economists think of the financial system, it is usually as a frictionless conduit through which money flows to areas of the economy where it is most needed. A better analogy right now might be of a hosepipe with a knot tied in it. The European Central Bank (ECB) is pumping unprecedented amounts of money into one end of the pipe, but how much of that will find its way to the parched real economy is another question entirely.
6
+
7
+ Start with the liquidity flowing into the euro-area banking system. On December 21st the ECB made available an eye-popping €489 billion ($628 billion) in three-year loans to more than 500 banks across Europe. The money was released in response to an almost total freeze since July in the bond markets that are an important source of long-term funding for banks. Demand for this ECB funding was much higher than expected, signalling just how much stress there is in the system.
8
+
9
+ The ECB had previously tried to ease pressure by offering one-year loans to banks. Yet this had done little to encourage them to lend to companies or people, since the money banks owed the ECB would have to be repaid before they were due to be repaid by their customers. A shortage of longer-term funding also contributed to an increase in the riskiness of the whole financial system, since banks were being forced to rely ever more on short-term financing that needs to be rolled over.
10
+
11
+ The flood of money being pumped into banks by the ECB goes a long way towards easing these funding pressures. Analysts at Morgan Stanley, an investment bank, reckon that the new facility adds about €235 billion in additional funding to the banks (since some of the money is being used to replace shorter-term loans) and takes the central bank’s total lending to the banking system to €979 billion. More important is the fact that it only has to be repaid in three years, which takes the average maturity on ECB loans to about 21 months, up from a mere ten weeks before the auction.
12
+
13
+ This should help insulate most large banks from turmoil in the funding markets. But not all will be protected. Although the ECB has essentially made an offer of unlimited funds, banks are still constrained in how much they may borrow by the quality of the collateral that they are able to hand over. This is because their collateral is subject to an initial “haircut”, or reduction in value. A portfolio of relatively safe government bonds might attract a small haircut, whereas one consisting of loans to small businesses might be reduced in value by 40% or more. A bank focused on this area of business, as many of Europe’s smaller savings banks are, might thus only be able to borrow 60% of the value of its outstanding loans.
14
+
15
+ A second constraint is that if the collateral the ECB holds falls in value, then banks need to post more. This also happens if there are credit downgrades on the bonds posted as collateral. The ECB’s haircut on sovereign bonds that are rated above “A-” is just 1.5%, but if they fall another notch this jumps up to 6.5%, Morgan Stanley notes. Weak banks in peripheral countries remain vulnerable to a downward spiral in which their holdings of government bonds are downgraded and fall in value, forcing them to come up with ever more collateral to keep borrowing from the central bank. It was this sort of collateral spiral that felled MF Global, a bust American broker, in its ill-fated bet on euro-area government bonds.
16
+
17
+ Now that banks are getting funding, the big worry is whether they will do more than merely hoard it. The early signs are not encouraging. Over the Christmas weekend bank deposits at the ECB rose to a record €412 billion. That partly reflects a traditional year-end rush to tidy up banks’ balance-sheets but also nervousness about lending directly to others.
18
+
19
+ Banks also have to present plans in January showing how they will raise an extra €115 billion in core capital to meet a new threshold imposed by the European Banking Authority. This capital shortfall has already prompted asset sales by banks, which would rather shrink their balance-sheets than tap shareholders. The ECB’s auction may make a credit crunch less severe, but it is not enough to avoid one.
@@ -0,0 +1,46 @@
1
+ Hungary's troubles
2
+ Not just a rap on the knuckles
3
+
4
+ THE pressure is piling up on the beleaguered Hungarian government. Today the European Commission threatened it with legal action over several new "cardinal" laws that would require a two-thirds majority in parliament to overturn.
5
+
6
+ The commission is still considering the laws, but today it highlighted concerns over three issues:
7
+
8
+ - The independence of the central bank. Late last year the Hungarian parliament passed a law which expands the monetary council and takes the power to nominate deputies away from the governor and hands it to the prime minister. A separate law opens the door to a merger between the bank and the financial regulator.
9
+
10
+ - The judiciary. More than 200 judges over the age of 62 have been forced into retirement and hundreds more face the sack. The new National Judicial Authority is headed by Tünde Handó, a friend of the family of Viktor Orban, the prime minister.
11
+
12
+ - The independence of the national data authority.
13
+
14
+ That wasn't all the commission had to say today. Hungary also received a ticking-off from Olli Rehn (pictured), the economic-affairs commissioner, for not doing enough to tackle its budget deficit. It may now lose access to EU funds.
15
+
16
+ Slammed in Brussels, the Hungarian government is also under pressure at home. Earlier this week Gordon Bajnai, who served as Socialist prime minister from 2009-10, fired off a broadside that sent shockwaves through the political and media establishments.
17
+
18
+ After a year and a half of government by the right-wing Fidesz party, wrote Mr Bajnai in a lengthy article on the website of the Patriotism and Progress Public Policy Foundation, democracy has been destroyed in Hungary. The country, he warned, is scarred by division and is drifting towards bankruptcy and away from Europe.
19
+
20
+ Mr Bajnai called for a radical change of government and a complete political re-orientation. “A new government must have a programme readily at hand that can be applied without delay: a programme that promotes the republic, reconciliation, and recovery.”
21
+
22
+ Fidesz is rattled by Mr Bajnai, who since leaving office has been teaching at Columbia University in New York. Understandably so. He headed a technocratic administration which stabilised the economy. Unlike his Socialist predecessor, Ferenc Gyurcsany, he was neither part of the old Communist elite nor connected to it by marriage, and so cannot be smeared as a "Komcsi". He is modern in outlook and well regarded internationally.
23
+
24
+ Moreover, say those how know him, Mr Bajnai has little patience for the narcissistic exceptionalism that shapes Fidesz’s worldview. Exhibit A: the plaintive cry of Janos Martonyi, the foreign minister, who lamented recently: “The world will never understand our pains and spiritual wounds.” Such self-pity is unlikely to endear the Hungarian government to Brussels or Washington DC (to where it has sent an envoy this week to negotiate with the IMF).
25
+
26
+ Fidesz won a two-thirds majority in 2010. But its support is evaporating, and analysts say there is a gap in the political market for a centrist pro-business party committed to democratic norms. Mr Bajnai, who has not ruled out a return to politics, would be an obvious candidate to lead it.
27
+
28
+ Meanwhile, as Hungarians watch the value of their assets vaporise, in large part thanks to the government’s increasingly erratic policies, Mr Orban smirks his way through press conferences. Here he is dodging questions from a reporter from HVG, an economics weekly, about his responsibility for the crisis and trying to shift the blame to his old enemy Andras Simor, president of the central bank. The interview ran as follows:
29
+
30
+ hvg.hu: Do you feel responsible for the falling/weakening forint?
31
+
32
+ Mr Orban: You mean the president of the central bank? He did not comment on it.
33
+
34
+ hvg.hu: No, you, Mr prime minister!
35
+
36
+ Mr Orban: The personal responsibility of the president of the central bank was not discussed over the meeting.
37
+
38
+ hvg.hu: You, your personal…!
39
+
40
+ Mr Orban: That neither.
41
+
42
+ Surrounded by yes-men and grinning flunkies, Mr Orban seems increasingly out of touch. His future will likely be decided not in the gilded corridors of the Hungarian parliament, but in Brussels and Washington DC.
43
+
44
+ What happens next? If his hand is forced Mr Orban can probably endure policy reversals on the independence of the central bank and the data ombudsman. Sorry, he would say to his loyal followers: national crisis, what can you do.
45
+
46
+ The dismantling of the judiciary would be another matter. If outsiders keep up the pressure and the judicial changes are judged to be in breach of the EU treaty, Mr Orban would be in a tricky spot. It’s hard to see how he could declare the 200-plus judges his government has forced into retirement ready for office after all, and still sit in his own.
@@ -0,0 +1,15 @@
1
+ India’s slowdown
2
+ The case for the defence
3
+ Why officials think investors are too bearish about India’s economy
4
+
5
+ THE SMOG is so bad in Delhi right now that it seeps indoors. In one government building the far end of the corridor seems hazy. But the view of the mandarin working there is clear: India’s economic miracle is not over, regardless of the chatter among investors and howls about government paralysis from industrialists. He pokes fun at the latter. A year ago they were swanning around Davos proclaiming India could grow in its sleep, he says. Now, with growth dipping to 6.9% last quarter, from a peak of 10% (see chart), they are pleading for government action.
6
+
7
+ Bears in Mumbai, India’s financial capital, worry that GDP growth might slip below 6% as confidence and investment slip. That partly reflects global woes, and partly too the gumming up of the bureaucracy due to a wave of graft allegations. But it is also because no big reforms have taken place for years; and such is the dire state of India’s politics that it is hard to imagine any being imminent. Things reached a nadir at the end of last year when the ruling coalition announced it would allow foreign supermarkets into the country, only to do a U-turn in the face of protests from the opposition and its own coalition partners. Shortly afterwards it failed to carry a key anti-corruption bill through parliament.
8
+
9
+ The government is not blind to these concerns—in his new-year address the prime minister, Manmohan Singh, conceded that “it would be wrong to conclude that India is now unshakeably set on a process of rapid growth.” But officials in Delhi are more optimistic than the financial markets, for three reasons. First, they argue that growth is bottoming out. Inflation is showing signs of falling, which should allow the central bank to reverse its long series of interest-rate hikes. The recent drop in the rupee is a healthy adjustment, not cause for panic, they say. Meanwhile the euro zone is vaguely getting its act together and there are hints of a recovery in America. Growth, it is thought, will be about 7% for the fiscal year ending in March, respectable enough, and will pick up from there.
10
+
11
+ Second, the long-term drivers of India’s boom are intact. There is “not much reason to change your mind,” says the mandarin. The rise in the savings rate, which allows more investment, will continue, partly thanks to a demographic bulge of people reaching working age. Even if there is a drop in capital expenditure, it should remain above 30% of GDP—a “handsome level”, says another official, that will boost the country’s potential. The government’s 12th five-year plan, which is due out soon, was originally expected to forecast growth of 9% between 2012 and 2017. That might fall to 8.5%, officials say, but no further.
12
+
13
+ The final strut of the argument is that the politics are not as bad as they seem. Pessimists, the mandarin says, reckon “we’re just going to fiddle around and miss our opportunities.” But after important elections in February in Uttar Pradesh, the most populous state, the politicians may stop posturing and even co-operate to pass less contentious reforms such as a new national value-added tax. That would cut red tape and the fiscal deficit. And even if parliament stays gridlocked, there are lots of nuts-and-bolts reforms that do not require legislation. The government will try harder to tackle the bottlenecks that choke the power industry, for instance, and the paperwork that is snarling up big projects.
14
+
15
+ The nub of the official argument is “calm down—and trust us to do just enough.” The trouble is the government has been saying this for a year, and business folk and investors seem to have lost heart. Firms have cut investment and the stockmarket was one of the world’s worst performers in dollar terms last year. Perhaps they are being too jumpy, but India does not have the luxury of dismissing what firms and investors think. The fiscal deficit, including the states and off-balance-sheet items, is running at 9-10% of GDP for the fourth year in a row. The current-account deficit is drifting towards 4% of GDP, officials admit, well above the country’s traditional comfort zone. India needs to command the confidence of domestic and foreign investors. Unless the reform process starts moving there is a risk that the financing of these deficits will become an acute problem—and that India’s economic miracle recedes further into the Delhi haze.
@@ -0,0 +1,24 @@
1
+ Saving the euro, part 473
2
+ Merkozy rides again
3
+
4
+ ANGELA MERKEL and Nicolas Sarkozy kicked off the 2012 season of the euro soap opera with a summit meeting in Berlin today. Neither said anything startling; certainly nothing that would betoken a swift and happy conclusion to the long-running saga.
5
+
6
+ The German chancellor and the French president muted their differences over such issues as how quickly to introduce a tax on financial transactions and what the role of the European Central Bank (ECB) should be in supporting shaky members of the euro zone. “Our analysis is the same,” said Mr Sarkozy at the post-summit press conference.
7
+
8
+ This did not calm markets’ nerves. The euro dropped to its lowest level against the dollar since September 2010 ($1.266) before the summit and recovered marginally as the two leaders met. Currency traders’ biggest worry is Greece’s failure to meet its fiscal targets, which means it may not get the fresh money it needs to avoid defaulting on its debt.
9
+
10
+ At the opposite end of the confidence spectrum, investors are so eager to finance Germany that they accepted a negative interest rate on an auction of six-month paper, in effect paying Germany’s government for the privilege of lending to it. Germans will see this as vindication of their prudent policies, but it also serves to underline the dangerous economic divergences within the euro zone.
11
+
12
+ The main significance of the Merkozy summit is that it seemed to signal a shift in emphasis. True, the austerity agenda—promoted by the Germans and grudgingly accepted by the French—is still there. Indeed, Mr Sarkozy boasted that France’s fiscal deficit was smaller than expected in 2011. Europe is making swift progress towards a “fiscal pact” to limit deficits, proclaimed Mrs Merkel, including German-style “debt brakes”. A new treaty should be signed by March.
13
+
14
+ But fiscal self-denial will now be supplemented by what Mrs Merkel called a “second leg”, meaning economic growth and job creation. This is partly meant to help Mr Sarkozy, who faces a tough re-election fight this spring.
15
+
16
+ All euro-zone countries, including Germany, are “prepared to do their homework” in this area, the chancellor promised, but it is not clear that much new is on offer. A big German stimulus package to boost growth in neighbouring countries is not in prospect (that would nobble the fiscal leg).
17
+
18
+ Mrs Merkel spoke of spreading best practice in labour-market regulation across the euro zone (which is German practice, Mr Sarkozy admits) and spending existing European funds more quickly and effectively. Both ideas make sense; neither will prevent further financial turmoil, or a European recession. In the latest sign of fragility, German industrial production dropped 1% in November.
19
+
20
+ The leaders tried to seem anything but complacent. Mr Sarkozy called the situation “very tense” and Mrs Merkel said they had “understood the needs of the hour.” The intention is to keep Greece from dropping out of the euro zone, but whatever happens Greece is an exceptional case, the leaders said (perhaps fearing that a Greek default or even an exit from the euro could not be avoided). As always, the chancellor dampened expectations of a quick “one-dimensional” solution to the crisis. The problem would be solved, she said, “step by step.”
21
+
22
+ The next steps involve Italy, an indebted giant that poses a far greater threat to the euro than Greece. Mrs Merkel will meet Italy’s unelected prime minister, Mario Monti, in Berlin on Wednesday; she and Mr Sarkozy will hold a three-way summit with him in Rome on January 20th. European heads of government are to gather, probably on January 30th, to put the finishing touches to the fiscal pact.
23
+
24
+ Also on the agenda, no doubt, will be a proposed financial-transactions tax. Britain is threatening a veto; Mr Sarkozy has said France will go it alone at first, if need be. Mrs Merkel wants the tax but her junior coalition partner, the Free Democrats, do not unless the British get on board. As the crisis sharpens, disagreements are likely to re-emerge over the role of the ECB and how to strengthen the euro zone's bail-out funds. The soap opera has a long way to run.
@@ -0,0 +1,9 @@
1
+ Prada is not Walmart
2
+
3
+ INDIA, if you believe the government, will be a land in which Starbucks and Prada thrive but where foreign firms will be prohibited from selling onions. It does not seem like much of a cause for celebration, but the announcement on January 11th that foreign “single brand” retailers could own 100% of their operations in India was meant to show the reform process was on track. It followed a debacle late last year when the government first announced that not only would single brand retailing be opened up, but foreign supermarkets would be allowed to operate in India too—and then was quickly forced into a U-turn on the latter promise after facing a rebellion within its own ranks and from the coalition parties it relies on in parliament.
4
+
5
+ By emphasising that at least the single brand bit of retail reform is still on track, the government hopes to show the world that India is still open for business. But this is a meek change indeed. Single brand retailers, such as fashion chains, were already allowed to own 51% of their operations. And the political stink of last month is likely to scare those who are not already present because swathes of the political class have been shown to be populist and hostile for foreign firms. Individual states may still choose to override the central government’s rules. Lastly, the reform comes with a large catch: 30% of what is sold must be supplied from cottage industries in India. If you are selling a uniform product worldwide—a sofa or handbag made in China—that is a major hassle.
6
+
7
+ The hope must be that India is on a journey to the right place, stumbling along the way. Perhaps the supplier rule will eventually be dropped, the argument goes. Maybe reluctant states will learn the error of their ways and open up too, after seeing the success of single brand retailers in other states. And maybe, after seeing an influx of investment from single brand retailers, the political climate will change and it will be easier to pass a reform that lets in supermarkets in too.
8
+
9
+ Interviewed in Delhi earlier in January a government mandarin insisted that the supermarket reform was not dead. Yet all of this seems half hearted. India is a hard enough place as it is for foreign firms to make profits. Adding in a fickle polity just makes things worse. And it is a rather sorry day for progress when a rule tweak to allow Starbucks or Prada to own not 51%, but 100%, of their shops is presented as a meaningful economic reform.
@@ -0,0 +1,26 @@
1
+ The Republican nomination
2
+ Whose side are you on, Jon Huntsman?
3
+
4
+ BEFORE it was clear whether Rick Perry would stay in the race or drop out, Erick Erickson, a conservative talking head for CNN and managing editor of Redstate.com, said, "If Rick Perry leaves the Republican race, there will not be a candidate in the field who authentically represents smaller government."
5
+
6
+ But what about Ron Paul?
7
+
8
+ For conventionally right-wing party stalwarts like Mr Erickson, Ron Paul doesn't count as real Republican, because of his principled anti-war stance. Of course, that makes him a more authentic representative of smaller government, war being the health of the state and all, but that's beside the point. The conservative tribe professes faith in smaller government, and it is membership in the tribe that determines the authenticity of one's devotion to the tribe's catechism. Ron Paul isn't really a member of the tribe, so he cannot "authentically represent smaller government". He may represent smaller government in fact, but not in the right way. As votes from the Iowa caucuses were being tallied, Mr Erickson saw fit to relate to his readers a rumour that "the Occupiers showed up for Ron Paul". You get the idea.
9
+
10
+ And what about Jon Huntsman? According to the Cato Institute's "Fiscal Report Card on America's Governors" in 2008, the last year Messrs Perry and Huntsman were graded together, they received identical scores, tying for fifth place. Pretty good, huh? Since Cato's report card "grades the governors on their fiscal performance from a limited-government perspective", one wonders why Mr Perry but not Mr Huntsman is considered an authentic champion of smaller government. Indeed, Mr Huntsman's classically-conservative wariness of foreign entanglements in general, and his case for ending the conflict in Afghanistan in particular, contrast dramatically with Mr Perry's eagerness to revive the American occupation of Iraq, and suggest a rather more principled commitment to smaller government. Again, it all comes down to standing in the conservative tribe.
11
+
12
+ Long ago, Mr Erickson said he won't support Jon Huntsman ever because...well, here:
13
+
14
+ While serving as the United States Ambassador to China, our greatest strategic adversary, Jon Huntsman began plotting to run against the President of the United States. This calls into question his loyalty not just to the President of the United States, but also his loyalty to his country over his own naked ambition.
15
+ Whatever you think of this, it has nothing whatsoever to do with Mr Huntsman's commitment to smaller government, does it?
16
+
17
+ In the comments to a follow-up post Mr Erickson explains himself further:
18
+
19
+ Loyalty is a primary issue for me and there need be no further evidence that he is disloyal.It’s not a big issue in this day and age when we turn everything into partisan issues, but I guess I’m a bitter clinger to the way things used to be.
20
+ According to Jonathan Haidt, a professor of psychology at the University of Virginia, in-group loyalty plays a much larger role in the moral judgments of conservatives than those of liberals. I don't mean to question Mr Erickson's judgment about Mr Huntsman's loyalty so much as point to it as a fairly representative expression of the conservative id operating precisely as Mr Haidt's studies describe.
21
+
22
+ Now, I doubt many conservatives think Mr Huntsman was disloyal to America, as Mr Erickson charges. But I do think he is widely seen as a man of questionable loyalty. If you're like me, Mr Huntsman's willingness to set aside partisanship and serve in a Democratic administration, in spite of his high political aspirations, argues in favour of his loyalty to the country. But if you're like me you're not a conservative, and you don't really care that much about loyalty. Rock-ribbed conservatives I think see it like this: By agreeing to serve as ambassador to China under Barack Obama, Mr Huntsman picked a side, and it wasn't the side of the conservative tribe. And then he flaked on the Obama administration in order to run for president as a Republican. This is how I read Mr Erickson's denunciation of Mr Huntsman: "Are you crazy, Huntsman? You want back in? Now? No. Forget about it. You're dead to us."
23
+
24
+ This leaves Mr Erickson, and millions of like-minded conservatives, in the odd position of preferring even Newt Gingrich, a man who has been disloyal to more than one wife. Indeed, a latter-day Dostoyevsky would be hard-pressed to imagine a nakeder embodiment of ambition than Newt Gingrich. Still, he's an honoured elder of the tribe. Meanwhile, an experienced fiscal-conservative governor with an outstanding grasp of foreign affairs who would stand an outstanding chance of defeating Barack Obama in the general election languishes in the polls.
25
+
26
+ In other words, good work Mr President.