Error message
Deprecated function: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in Drupal\Component\Utility\Unicode::validateUtf8() (line 395 of core/lib/Drupal/Component/Utility/Unicode.php).
Drupal\Component\Utility\Unicode::validateUtf8() (Line: 65) Drupal\Component\Utility\Xss::filter() (Line: 351) _colorbox_formatter_get_caption() (Line: 140) template_preprocess_colorbox_formatter() call_user_func_array() (Line: 261) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254) __TwigTemplate_e68b79b8ded550481c188f9d99549233->{closure}() (Line: 2058) Twig\Extension\CoreExtension::captureOutput() (Line: 44) __TwigTemplate_e68b79b8ded550481c188f9d99549233->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 504) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 45) __TwigTemplate_1c086714c718e741ecd343a31c9086e1->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 504) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 224) Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->Drupal\entity_embed\Plugin\Filter\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 223) Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->process() (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText() call_user_func_array() (Line: 113) Drupal\Core\Render\Renderer->doTrustedCallback() (Line: 870) Drupal\Core\Render\Renderer->doCallback() (Line: 432) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254) __TwigTemplate_e68b79b8ded550481c188f9d99549233->{closure}() (Line: 2058) Twig\Extension\CoreExtension::captureOutput() (Line: 44) __TwigTemplate_e68b79b8ded550481c188f9d99549233->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 423) __TwigTemplate_e9c454f5097960fcbad400867a054bcd->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 238) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 231) Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 128) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray() call_user_func() (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (Line: 186) Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53) Drupal\Core\StackMiddleware\Session->handle() (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 50) Drupal\ban\BanMiddleware->handle() (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 741) Drupal\Core\DrupalKernel->handle() (Line: 19)
Deprecated function: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in Drupal\Component\Utility\Xss::filter() (line 69 of core/lib/Drupal/Component/Utility/Xss.php).
Drupal\Component\Utility\Xss::filter() (Line: 351) _colorbox_formatter_get_caption() (Line: 140) template_preprocess_colorbox_formatter() call_user_func_array() (Line: 261) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254) __TwigTemplate_e68b79b8ded550481c188f9d99549233->{closure}() (Line: 2058) Twig\Extension\CoreExtension::captureOutput() (Line: 44) __TwigTemplate_e68b79b8ded550481c188f9d99549233->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 504) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 45) __TwigTemplate_1c086714c718e741ecd343a31c9086e1->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 504) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 224) Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->Drupal\entity_embed\Plugin\Filter\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 223) Drupal\entity_embed\Plugin\Filter\EntityEmbedFilter->process() (Line: 118) Drupal\filter\Element\ProcessedText::preRenderText() call_user_func_array() (Line: 113) Drupal\Core\Render\Renderer->doTrustedCallback() (Line: 870) Drupal\Core\Render\Renderer->doCallback() (Line: 432) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 254) __TwigTemplate_e68b79b8ded550481c188f9d99549233->{closure}() (Line: 2058) Twig\Extension\CoreExtension::captureOutput() (Line: 44) __TwigTemplate_e68b79b8ded550481c188f9d99549233->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 476) Drupal\Core\Template\TwigExtension->escapeFilter() (Line: 423) __TwigTemplate_e9c454f5097960fcbad400867a054bcd->doDisplay() (Line: 387) Twig\Template->yield() (Line: 343) Twig\Template->display() (Line: 358) Twig\Template->render() (Line: 35) Twig\TemplateWrapper->render() (Line: 33) twig_render_template() (Line: 348) Drupal\Core\Theme\ThemeManager->render() (Line: 491) Drupal\Core\Render\Renderer->doRender() (Line: 248) Drupal\Core\Render\Renderer->render() (Line: 238) Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638) Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 231) Drupal\Core\Render\MainContent\HtmlRenderer->prepare() (Line: 128) Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (Line: 90) Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray() call_user_func() (Line: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (Line: 186) Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76) Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53) Drupal\Core\StackMiddleware\Session->handle() (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28) Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32) Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 191) Drupal\page_cache\StackMiddleware\PageCache->fetch() (Line: 128) Drupal\page_cache\StackMiddleware\PageCache->lookup() (Line: 82) Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 50) Drupal\ban\BanMiddleware->handle() (Line: 48) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 36) Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 51) Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 741) Drupal\Core\DrupalKernel->handle() (Line: 19)
Sometime around 1900, the Department of Mineralogy at the National Museum of Paris received a block of limestone from “Kouei-Tchéou, a town located on the Yang Tse River, more than 1200 km. from Chang-Hai”. The rock sat around Mineralogy for a while until the mineralogists noticed that the rock was covered with shells, so they sent it over to the Department of Malacology (the people who study snails).
When the museum’s mollusk experts finally got around to looking at the rock in 1926, they were mystified by what they saw. The shells on the rock were so peculiar that the malacologists weren’t even sure what kind of animal they were looking at (a mollusk?, an insect?, a worm?), but they finally decided that “this disconcerting form” must be a very odd snail. The shells were of two forms (male and female?), some were only loosely coiled, like a cinnamon roll that had come apart, and all were firmly cemented to the rock. Clearly unhappy with their inability to understand this snail, in a paper called “Sur une coquille énigmatique” (“coquille” means shell, and I bet you can guess what “énigmatique” means) they gave it a provisional name – Helicostoa sinensis – hoping that someone would be able to find more specimens of this animal and figure out what the heck is was.
Nearly a century later, malacologists still are arguing about what sort of animal Helicostoa is. No one has seen it again, and probably no one ever will. Judging from the bit of information on the collection site and the habit of the animal, Helicostoa probably lived in the rushing waters of the Three Gorges, a habitat that was destroyed by the massive Three Gorges Dam. So we may never know more about this snail than what we can discover from that piece of limestone in Paris. (How did Helicostoa find food and mates if it was cemented in place? What other snails was it related to, and how did it evolve? Were the juveniles able to move around before settling down? If so, how did they get around in the torrential waters of the Three Gorges? What kind of strong, waterproof cement did it make? Could it dissolve the cement when it needed to move?)
All around the world, the rapids and gorges of our largest rivers harbor mysterious animals like Helicostoa, whose ways of life and even existence are scarcely known to us. Indeed, many inhabitants of the rapids probably have not yet been discovered or disappeared before they were ever seen.
Why do we know so little about the denizens of the great rapids?
First, ecological conditions in these great rapids are so unusual that they offer stresses and opportunities that require special adaptations (such as cementing to the river’s bed) for species to survive. Torrential currents impose enormous stresses on the rapids-dwellers. Even moving from place to place can be next to impossible. This means that evolution has produced species that are especially adapted to these strange environments, and may rarely be found anywhere else. Biologists must come to the rapids to find and study these species.
Second, most of the Earth’s great rapids are isolated nearly completely from similar rapids on other great rivers. Heliostoa had no more chance of reaching the Inga Rapids of the Congo River or the Grand Canyon of the Colorado than I have of eating lunch tomorrow on Mars, even though it might have found hospitable conditions in these other rivers. Evolution worked independently in each set of rapids, and produced different sets of species in each river.
Third, the great river rapids are devilishly hard for biologists to explore. It can be next to impossible to scale down cliff faces or float down over rapids and waterfalls to reach the places where the animals live (and then get back out again!). There are parts of the Congo River rapids that biologists still haven’t been able to reach. And if you do get into place with your crew and gear all in one piece, how is a biologist supposed to observe or capture the river’s inhabitants under such extreme conditions? Biologists from the American Museum of Natural History describe the difficulties of exploring the Congo River rapids. Few places on our planet are so difficult for people to explore.
Finally, humans destroyed many of the world’s great rapids and gorges before biologists got more than a cursory look at them, and are in the process of destroying those that remain. The animals and plants that live in rapids are especially vulnerable to changes in their habitat – they require swift currents, plenty of dissolved oxygen, and clean river beds, all of which are lost when we destroy rapids.
Why have we been so eager to destroy the rapids?
Destroying great river rapids can bring huge benefits to people. For millennia, we have used rivers as highways to transport people and goods, and the great rapids are deadly obstacles on these highways. In “Science and Civilisation in China”, Joseph Needham and his collaborators described the difficulties of navigating the Three Gorges and other rapids on Chinese rivers. To move cargo upriver, teams of men harnessed to bamboo cables towed ships through the rapids (see the photograph below). Where river banks were too steep to be passable, people hand-cut towpaths into the bedrock of the gorge wall. Ships going downriver ran the risk of being dashed against submerged rocks or overturned by the turbulent water. Over the centuries, many men and cargoes were lost in the battle against these waters, and fervent prayers must have been offered for relief from the rapids. And the Yangtze is by no means the most challenging of the world’s big rivers – the rapids of the lower Congo are completely impassible to ship traffic. It is no surprise that we destroyed many river rapids to improve navigation as soon as we had the ability to do so by explosives or (more often) by flooding them with locks and dams (see the photograph of Mussel Shoals below).
Water rushing through a rapids has power that can be harnessed to drive mills or generate electricity. For centuries, people built mechanical mills together with dams or diversions along streams and small rivers to grind grain, crush rock, and saw wood. But only recently have we have developed the ability and the need to harness the enormous power of the largest river rapids to generate hydroelectricity. The amount of electricity that can be generated is large, and can replace other problematic methods of electrical generation (e.g., coal-burning, nuclear), so it can be very attractive to build hydropower dams to flood the great river rapids. The Three Gorges Dam that probably wiped out Helicostoa and other creatures of the Yangtze River gorges has a capacity of 22,500 megawatts (equal to ~25 large coal-fired power plants), and generates ~$4 billion/year in electricity. The proposed Grand Inga project, which would destroy much of the rapids on the lower Congo, would have almost twice this much capacity (40,000 megawatts), and could supply something like 40% of Africa’s electricity needs. These are perhaps irresistible inducements for destroying the remaining big-river rapids.
Conflicts between humans and wild rivers are many millennia old. Over this long history, we’ve exploited rivers and their inhabitants for short-term human benefits, often damaging both rivers and long-term human interests in the process. Nowhere has this conflict between human desires and wild rivers played out with such intensity as in the rapids of the big rivers. Destroying these special habitats had both especially large benefits to humans and especially large costs to biodiversity. This conflict has caused, and probably will continue to cause, large worldwide losses of biodiversity from the great river rapids.
There are a few glimmers of hope in this relentless story of destruction. Persistent biologists going through the scraps of rapids habitat remaining in our southeastern rivers have rediscovered remnant populations of several species thought to be extinct (see photo below). So perhaps some enterprising biologist will yet discover a living population of Helicostoa in some unexplored Chinese river. And with the increased appreciation for the value of riverine biodiversity, plans for exploiting rivers now sometimes make provisions for preserving some of the river’s plants and animals, either by reserving parts of the habitat from destruction or sharing some of the river’s flow with its ancient inhabitants. Perhaps we will find a way to share the remaining few great river rapids with their unique animals. Or maybe people around the world who want to preserve one of the grandest parts of our planet will raise the money to preserve the Inga Rapids and provide an alternative source of electricity to Africa.
But it’s hard to be optimistic. The financial rewards for destroying rapids are so great, the appreciation for their biota so limited, and the challenges of protecting these sensitive species so daunting that it seems likely that many of these species of the rapids, including the enigmatic Helicostoa sinensis, will vanish in this present period of intensive human impacts.
My editor always tells me to try to end these essays on a positive note, or at least provide a clear lesson to readers, and she is usually right about such things. But I think that the whole point of the story of Helicostoa and the rapids is that the problem of the big-river rapids offers no easy solutions or clear lessons. We have a marvelous, mysterious, vanishingly rare habitat that supports interesting species that live nowhere else. At the same time, destroying the remaining big-river rapids can bring huge benefits to people, especially in parts of the world where people lead very hard lives. It’s hard to imagine any half-solutions that would preserve the grandeur of these habitats and save their inhabitants without substantially diminishing those benefits. Instead, this story reminds us of just how difficult it is to be responsible for a planet.