All posts by Carsten

The ResearchGate Score: a good example of a bad metric →

The results of our our evaluation of the RG Score were rather discouraging: while there are some innovative ideas in the way ResearchGate approached the measure, we also found that the RG Score ignores a number of fundamental bibliometric guidelines and that ResearchGate makes basic mistakes in the way the score is calculated. We deem these shortcomings to be so problematic that the RG Score should not be considered as a measure of scientific reputation in its current form.

Interesting read about reverse engineering the blackbox ResearchGate score. I have considered that score useless for a long time and think about closing my account every time they send me one of those annoying emails. But unfortunately RG has become so widely used that they drive a considerable number of readers to my papers, so I guess I’ll just keep on putting up with these annoyances. I just hope people don’t start taking that score seriously.

See you at AGILE 2017 in Wageningen

I’ll be presenting a short paper at AGILE in Wageningen next week that outlines some of the stuff I’ve been working on with Peter Marcotullio:

The presentation is scheduled for Wednesday at 12:00PM in the SOCIETAL-1 session in room 4.

 

COSIT 2017 Workshop on Geo-Knowledge Graphs (GKG17) →

This should be a fun workshop:

Knowledge graphs, i.e., making semantically annotated and interlinked raw data available on the Web, has taken information technologies by storm. Today such knowledge graphs power search engines, intelligent personal assistants, and cyber-infrastructures. For instance, the publicly available part of the Semantic Web-based Linked Data cloud contains more than 150 billion triples distributed over 10000 datasets and connected to another by millions of links. Geographic data play a significant role in this cloud and knowledge graphs in general as places function as central nexuses that connect people, events, and physical objects. Consequently, geo-data sources are among the most central and densely interlinked hubs. Beyond their sheer size, the diversity of these data and their inter-linkage are of major value as they enable a more holistic perspective on complex scientific and social questions that cannot be answered from a single domain’s perspective. Hence, knowledge graphs such as those implemented using the Linked Data paradigm bear potential to address many fundamental challenges of geoinformatics.

In this workshop we will discuss various aspects of geo-knowledge graphs ranging from their extraction and construction from unstructured or semi-structured data, issues of data fusion, conflation, and summarization, geo-ontologies, to query paradigms and user interfaces. By focusing explicitly on geo-knowledge graphs in general, we aim at broadening the focus beyond the Semantic Web technology stack and thus also beyond RDF-based Linked Data.

More →

Fixing Pillow segmentation fault

I am currently working a lot with large GeoTIFFs in Python and use Pillow to read them in, then convert them to NumPy arrays for processing. Every now and then, Pillow throws the following error, that I’ve seen on several computers running OS X now:

python TIFFReadDirectory: Warning, Unknown field with tag 42113 (0xa481) encountered. Segmentation fault: 11

Since it always takes me a while to figure out how to fix this, here’s a short note to self, maybe also useful to someone else out there:

  1. Uninstall Pillow:
  2. $ pip uninstall pillow
  3. Install dependencies for building Pillow from source:
  4. $ brew install libtiff libjpeg webp little-cms2
  5. Download Pillow source from PyPI
  6. Unpack and change into the folder with the source code, then build an install via:
    python setup.py install

This has always fixed the problem for me so far. I don’t know whether building from source rather than simply running

pip install pillow

will also fix this problem on other operating systems, but it’s worth a shot if you hit that error.

Calling Bullshit →

Awesome idea for a course by Carl Bergstrom and Jevin West at the University of Washington in Seattle:

The world is awash in bullshit. Politicians are unconstrained by facts. Science is conducted by press release. So-called higher education often rewards bullshit over analytic thought. Startup culture has elevated bullshit to high art. Advertisers wink conspiratorially and invite us to join them in seeing through all the bullshit, then take advantage of our lowered guard to bombard us with second-order bullshit. The majority of administrative activity, whether in private business or the public sphere, often seems to be little more than a sophisticated exercise in the combinatorial reassembly of bullshit.

We’re sick of it. It’s time to do something, and as educators, one constructive thing we know how to do is to teach people. So, the aim of this course is to help students navigate the bullshit-rich modern environment by identifying bullshit, seeing through it, and combatting it with effective analysis and argument.

I would definitely have taken a course that has Harry G. Frankfurt’s On Bullshit as its first reading. Let’s hope they get the university administration to approve it.

Workshop on Reproducible Computational Geosciences @ AGILE 2017

Interesting new workshop to take place at AGILE 2017. I like how they break from the usual submission workflow: In order to submit, you should fork their GitHub repo, add your submission file to the fork, and then send a pull request. If that’s too much hassle, you can also email your submission to Daniel Nüst, who is chairing the workshop.

Papers should be < 1000 words, the deadline is on March 19.

Unconventional academic writing

If you have a few minutes to spare (or need some cheering up after one of your papers has been rejected), here’s a nice read:

Guillaume Cabanac (2015) Unconventional academic writing.

Cabanac wrote this as an addendum to Hartley’s Academic writing and publishing: A practical handbook (2008), and as a present for Hartley’s 75th birthday. It contains lots of unusual – and very funny – titles, papers, and figures, all of which have been published in academic journals. My favorite may be this one-page paper on writer’s block:

Hat tip to Viola Voß for the pointer.

PostgreSQL DISTINCT ON

Getting the highest (or lowest) value from a database column is a bit tricky if you cannot use GROUP BY, because it requires you to aggregate across all columns that you want in the result. Say you have a table with employees, having the columns name, salary, and department, and you want to know the highest-paid employee per department. Then GROUP BY is not an option because you would need to also aggregate by name to have the name in the output, which doesn’t make sense.

I used to tackle this kind of query with unwieldy subqueries, but I just came across PostgreSQL’s DISTINCT ON clause, which makes them a lot more compact and readable. Using that, you can simply do

SELECT DISTINCT ON (department)
       name, salary, department
FROM   salaries_table
ORDER BY department, salary DESC;

So we’ll only get one entry per department, and ORDER BY salary DESC makes sure it is the one with the highest salary. The only bummer is that it is a PostgreSQL-specific function, so it won’t work on other DBMSs.