Vanilla 1.1.9 is a product of Lussumo. More Information: Documentation, Community Support.
Vote for questions that you wish there were more of!
Scott's rule for voting is ultimately the correct one. Some part of me is still very stingy, so I have to make other little rules to remind me to vote on things.
If you vote liberally, are you inflating (i.e. debasing) the currency of votes?
Votes are not a currency. You can't really buy anything with them, you can't collect them, and when you give somebody else a vote, you don't lose anything. They are not meant as representatives of something with intrinsic value; they are a way of communicating appreciation. When you vote something up, you are saying to everybody (including the person who posted it) "Yes, I want to see more of that here." Aside from this information, you're not giving anybody anything.
By using your votes, you are providing information that helps the system run better. So long as people are not voting indiscriminantly (i.e. so long as the information isn't noise), voting liberally is a good thing.
@Steve: that would be interesting indeed! For each tag, I counted the number of votes of every type on questions or answers within that tag. Here are just the arxiv tags, sorted in descending order by upvotes per post:
Edit: I've updated this list to today's database dump
upvotes per post, questions, answers, upvotes, downvotes, tag-name
7.782364 146 920 8296 410 ov.overview
6.310345 8 21 183 12 cs.theory
5.887805 64 141 1207 8 kt.k-theory-homology
5.790742 382 1195 9132 401 lo.logic
5.663679 987 2248 18322 450 nt.number-theory
5.632411 468 1050 8550 180 gr.group-theory
5.508371 609 1362 10857 155 at.algebraic-topology
5.464115 264 572 4568 72 gt.geometric-topology
5.084048 1548 3235 24317 380 ag.algebraic-geometry
5.041344 121 266 1951 63 cv.complex-variables
4.922099 164 465 3096 121 mp.mathematical-physics
4.845298 538 1259 8707 195 ct.category-theory
4.829582 402 842 6008 135 ac.commutative-algebra
4.808602 141 324 2236 89 cs.cc.complexity-theory
4.807522 144 308 2173 48 mg.metric-geometry
4.785567 579 1361 9284 247 co.combinatorics
4.731004 326 819 5417 155 gt.general-topology
4.659259 183 357 2516 76 ra.rings-and-algebras
4.539792 434 1011 6560 151 dg.differential-geometry
4.452418 412 870 5708 65 rt.representation-theory
4.342857 72 138 912 29 sg.symplectic-geometry
4.311688 94 214 1328 16 qa.quantum-algebra
4.090476 68 142 859 14 ap.analysis-of-pdes
4.077088 155 312 1904 68 ca.classical-analysis
3.985075 29 38 267 1 sp.spectral-theory
3.943221 291 572 3403 87 fa.functional-analysis
3.893382 102 170 1059 20 oa.operator-algebras
3.833333 2 4 23 1 transcend.-number-theory
3.500000 1 1 7 0 cs.cg
3.416011 481 918 4779 332 pr.probability
3.031008 39 90 391 50 it.information-theory
2.815789 101 203 856 36 na.numerical-analysis
2.429907 44 63 260 10 oc.optimization-control
1.908800 232 393 1193 131 st.statistics
1.625000 3 5 13 0 cs.lg.learning
Here's the python code used to generate the data above from the public dumps:
from lxml import etree
posts = etree.parse(open("posts.xml","r")).getroot()
votes = etree.parse(open("votes.xml","r")).getroot()
def decodeTag(tag): # undo SE's weird encoding
tag=tag.replace(u'\xe9','') # begining char
tag=tag.replace(u'\xe0','') # ending char
tag=tag.replace(u'\xf6','-') # dashes
tag=tag.replace(u'\xfb','.') # dots
return tag.encode('utf-8')
# parent['123'] is '123' if post 123 is a question
# or the PostId of the parent question if it's an answer
parent = {}
# tagsof['123'] is the list of tags of question with postId 123
tagsof = {}
# questionsInTag['tag-name'] is the number of questions in a given tag
# answersInTag['tag-name'] is the number of answers in a given tag
questionsInTag = {}
answersInTag = {}
for post in posts:
postId = post.get("Id")
if post.get("PostTypeId")=="1":
parent[postId]=postId
tagsof[postId] = [decodeTag(tag) for tag in post.get("Tags")[1:-1].split(" ")]
for tag in tagsof[postId]:
if tag not in questionsInTag.keys():
questionsInTag[tag]=0
answersInTag[tag] =0
questionsInTag[tag]+=1
for post in posts: # with merged questions, the postId of answer can be lower than that of the question!
postId = post.get("Id")
if post.get("PostTypeId")=="2":
parent[postId]=post.get("ParentId")
for tag in tagsof[parent[postId]]:
answersInTag[tag]+=1
# votesOnTag['tag-name'] is a count of kinds of votes on
# questions/answers in a particular tag
votesOnTag = {}
for vote in votes:
voteType = int(vote.get("VoteTypeId"))
for tag in tagsof[parent[vote.get("PostId")]]:
if tag not in votesOnTag.keys(): votesOnTag[tag] = [0]*14
votesOnTag[tag][voteType]+=1
# record upvotes, downvotes, questions, answers
updownQAtag = [(float(v[2])/(questionsInTag[tag]+answersInTag[tag]),
questionsInTag[tag],answersInTag[tag],v[2],v[3],tag) for tag,v in votesOnTag.items()]
# sort by number of upvotes per post in descending order
updownQAtag.sort( key = lambda a:a[0], reverse=True)
for t in updownQAtag:
if '.' in t[5]: #only take arxiv tags
print ' '+' %3f' %t[0], ''.join(['%6d'% x for x in t[1:-1]])+' '+t[-1]
Merged [ov.overview] into [ho.history-overview] and [gt.general-topology] into [gn.general-topology].
Anton, this is very interesting! Is there an easy way to supplement that table with the numbers of questions and answers within each tag?
I'd also be interested in seeing the total number of views per tag as well.
The numbers are high because the vote tallies also included votes on answers within a given tag.
1 to 15 of 15