master
kendalb 3 years ago
commit f4b35d8a75

File diff suppressed because one or more lines are too long

@ -0,0 +1,195 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Markdown - HTML - print"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pypandoc\n",
"from weasyprint import HTML, CSS\n",
"from weasyprint.fonts import FontConfiguration"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Markdown → HTML"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pandoc: \"If you need to convert files from one markup format into another, **pandoc is your swiss-army knife**.\"\n",
"\n",
"https://pandoc.org/\n",
"\n",
"The Python library for Pandoc:\n",
"\n",
"https://github.com/bebraw/pypandoc \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Convert a Markdown file to HTML ...\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"# ... directly from a file\n",
"html = pypandoc.convert_file('language.md', 'html')\n",
"print(html)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# ... or from a pad\n",
"\n",
"from urllib.request import urlopen\n",
"\n",
"url = 'https://pad.xpub.nl/p/language/export/txt'\n",
"response = urlopen(url)\n",
"md = response.read().decode('UTF-8')\n",
"\n",
"with open('language.md', 'w') as f:\n",
" f.write(md)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"html = pypandoc.convert_file('language.md', 'html')\n",
"print(html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## HTML → PDF"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for this we can use Weasyprint again"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"html = HTML(string=html)\n",
"print(html)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"css = CSS(string='''\n",
"@page{\n",
" size: A4;\n",
" margin: 15mm;\n",
" \n",
" counter-increment: page;\n",
" \n",
" @top-left{\n",
" content: \"hello?\";\n",
" }\n",
" @top-center{\n",
" content: counter(page);\n",
" font-size: 7pt;\n",
" font-family: monospace;\n",
" color: blue;\n",
" }\n",
" @bottom-center{\n",
" content: \"this is the bottom center!\";\n",
" }\n",
" }\n",
" \n",
" body{\n",
" color: magenta;\n",
" }\n",
"''')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It's actually interesting and useful to have a close look at paged media properties in CSS: \n",
"\n",
"https://developer.mozilla.org/en-US/docs/Web/CSS/%40page/size"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"html.write_pdf('language.pdf', stylesheets=[css])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

@ -0,0 +1,163 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# NLTK pos-tagged HTML → PDF"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import nltk\n",
"from weasyprint import HTML, CSS"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# open the input file\n",
"txt = open('../txt/language.txt').read()\n",
"words = nltk.word_tokenize(txt)\n",
"tagged_words = nltk.pos_tag(words)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# collect all the pieces of HTML\n",
"content = ''\n",
"content += '<h1>Language and Software Studies, by Florian Cramer</h1>'\n",
"\n",
"for word, tag in tagged_words:\n",
" content += f'<span class=\"{ tag }\">{ word }</span> '"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# write the HTML file\n",
"with open(\"language.html\", \"w\") as f:\n",
" f.write(f\"\"\"<!DOCTYPE html>\n",
"<html>\n",
"<head>\n",
" <meta charset=\"utf-8\">\n",
" <link rel=\"stylesheet\" type=\"text/css\" href=\"language.css\">\n",
" <title></title>\n",
"</head>\n",
"<body>\n",
"{ content }\n",
"</body>\n",
"\"\"\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# write a CSS file\n",
"with open(\"language.css\", \"w\") as f:\n",
" f.write(\"\"\"\n",
"\n",
"@page{\n",
" size:A4;\n",
" background-color:lightgrey;\n",
" margin:10mm;\n",
"}\n",
".JJ{\n",
" color:red;\n",
"}\n",
".VB,\n",
".VBG{\n",
" color:magenta;\n",
"}\n",
".NN,\n",
".NNP{\n",
" color:green;\n",
"}\n",
".EX{\n",
" color: blue;\n",
"}\n",
" \"\"\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# If you use @font-face in your stylesheet, you would need Weasyprint's FontConfiguration()\n",
"from weasyprint.fonts import FontConfiguration\n",
"\n",
"font_config = FontConfiguration()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# collect all the files and write the PDF\n",
"html = HTML(\"language.html\")\n",
"css = CSS(\"language.css\")\n",
"html.write_pdf('language.pdf', stylesheets=[css], font_config=font_config)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Preview your PDF in the notebook!\n",
"from IPython.display import IFrame, display\n",
"IFrame(\"language.pdf\", width=900, height=600)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

@ -0,0 +1,57 @@
@page{
size: A4;
margin: 15mm;
background-color: lightgrey;
font-family: monospace;
font-size: 8pt;
color: #7da0d4;
border:1.5x dotted red;
@top-left{
content: "liquid";
}
@top-center{
content: "bodies";
}
@top-right{
content: "natural";
}
@top-middle{
content: ""
}
@left-top{
content: "material";
}
@right-top{
content: "existence";
}
@bottom-left{
content: "flux";
}
@bottom-center{
content: "living";
}
@bottom-right{
content: "energy";
}
}
body {
background: #f7c694;
margin: 20px;
line-height: 2;
font-family: monospace;
}
pre {
white-space: pre-wrap;
}
span.NN {
font-style: italic;
color: white;
border: 2px dashed black;
}
span.JJ {
color: #9abae3;
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,273 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Weasyprint"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"from weasyprint import HTML, CSS\n",
"from weasyprint.fonts import FontConfiguration"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"https://weasyprint.readthedocs.io/en/latest/tutorial.html"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# If you use @font-face in your stylesheet, you would need Weasyprint's FontConfiguration()\n",
"font_config = FontConfiguration()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## HTML"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# small example HTML object\n",
"html = HTML(string='<h1>hello</h1>')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"or in this case let's use python + nltk to make a custom HTML page with parts of speech used as CSS classes..."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"ename": "ModuleNotFoundError",
"evalue": "No module named 'nltk'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-9-52b984781443>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mnltk\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'txt/LIQUID1.txt'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mtxt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mwords\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnltk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mword_tokenize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtxt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'nltk'"
]
}
],
"source": [
"import nltk\n",
"\n",
"with open('txt/LIQUID1.txt') as f:\n",
" txt = f.read()\n",
"words = nltk.word_tokenize(txt)\n",
"tagged_words = nltk.pos_tag(words)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"content = ''\n",
"content += '<h1>LIQUID | Rachel Armstrong</h1>'\n",
"\n",
"for word, tag in tagged_words:\n",
" content+= f'<span class=\"{tag}\">{ word }</span> '\n",
" \n",
"with open(\"txt/liquid.html\", \"w\") as f:\n",
" f.write(f\"\"\"<!DOCTYPE html>\n",
"<html>\n",
"<head>\n",
" <meta charset=\"utf-8\">\n",
" <link rel=\"stylesheet\" type=\"text/css\" href=\"txt/liquid.css\">\n",
" \n",
"\n",
" \n",
" \n",
" <title>Liquid</title>\n",
"</head>\n",
"<body>\n",
"{content}\n",
"</body>\n",
"\"\"\")\n",
"\n",
"html = HTML(\"txt/liquid.html\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Saved to [language.html](txt/language.html). Fun fact: jupyter filters HTML pages that are displayed in the notebook. To see the HTML unfiltered, use an iframe (as below), or right-click and select Open in New Tab in the file list.\n",
"\n",
"Maybe useful evt. https://stackoverflow.com/questions/23358444/how-can-i-use-word-tokenize-in-nltk-and-keep-the-spaces"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"NB: The above HTML refers to the stylesheet [language.css](txt/language.css) (notice that the path is relative to the HTML page, so no need to say txt in the link)."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <iframe\n",
" width=\"1024\"\n",
" height=\"600\"\n",
" src=\"txt/liquid.html\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"text/plain": [
"<IPython.lib.display.IFrame at 0xaf85cc30>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import IFrame\n",
"IFrame(\"txt/liquid.html\", width=1024, height=600)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generating the PDF!\n",
"\n",
"Now let's let weasyprint do it's stuff! Write_pdf actually calculates the layout, behaving like a web browser to render the HTML visibly and following the CSS guidelines for page media (notice the special rules in the CSS that weasy print recognizes and uses that the browser does not). Notice that the CSS file gets mentioned again explicitly (and here we need to refer to its path relative to this folder)."
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"## If we had not linked the CSS in the HTML, you could specify it in this way\n",
"# css = CSS(\"txt/language.css\", font_config=font_config)\n",
"# html.write_pdf('txt/language.pdf', stylesheets=[css], font_config=font_config)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"css = CSS(\"txt/liquid.css\")"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"html.write_pdf('liquid1.pdf', stylesheets=[css], font_config=font_config)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <iframe\n",
" width=\"1024\"\n",
" height=\"600\"\n",
" src=\"txt/liquid.pdf\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"text/plain": [
"<IPython.lib.display.IFrame at 0xaf8c79b0>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import IFrame\n",
"IFrame(\"txt/liquid.pdf\", width=1024, height=600)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

@ -18,11 +18,11 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"!pdftk pdf/quilt.pdf background pdf/shapes.pdf output pdf/quilt-background.pdf "
"!pdftk pdf/quilt.pdf background pdf/watery.pdf output pdf/quilt-background1.pdf"
]
},
{

@ -646,7 +646,11 @@
"outputs": [],
"source": [
"# Make an empty dictionary\n",
"dict = {}"
"d = {}\n",
"\n",
"# or\n",
"\n",
"d = dict()"
]
},
{
@ -655,8 +659,8 @@
"metadata": {},
"outputs": [],
"source": [
"dict['word'] = 10 \n",
"print(dict)"
"d['word'] = 10 \n",
"print(d)"
]
},
{
@ -665,7 +669,7 @@
"metadata": {},
"outputs": [],
"source": [
"dict.keys()"
"d.keys()"
]
},
{

@ -1,88 +0,0 @@
Language
Florian Cramer
Software and language are intrinsically related, since software may process language, and is constructed in language.
Yet language means different things in the context of computing: formal languages in which algorithms are expressed and software is implemented, and in so-called “natural” spoken languages.
There are at least two layers of formal language in software: programming language in which the software is written, and the language implemented within the software as its symbolic controls.
In the case of compilers, shells, and macro languages, for example, these layers can overlap.
“Natural” language is what can be processed as data by software; since this processing is formal, however, it is restricted to syntactical operations.
While differentiation of computer programming languages as “artificial languages” from languages like English as “natural languages” is conceptually important and undisputed, it remains problematic in its pure terminology: There is nothing “natural” about spoken language; it is a cultural construct and thus just as “artificial” as any formal machine control language.
To call programming languages “machine languages” doesnt solve the problem either, as it obscures that “machine languages” are human creations.
High-level machine-independent programming languages such as Fortran, C, Java, and Basic are not even direct mappings of machine logic.
If programming languages are human languages for machine control, they could be called cybernetic languages.
But these languages can also be used outside machines—in programming handbooks, for example, in programmers dinner table jokes, or as abstract formal languages for expressing logical constructs, such as in Hugh Kenners use of the Pascal programming language to explain aspects of the structure of Samuel Becketts writing.1 In this sense, computer control languages could be more broadly defined as syntactical languages as opposed to semantic languages.
But this terminology is not without its problems either.
Common languages like English are both formal and semantic; although their scope extends beyond the formal, anything that can be expressed in a computer control language can also be expressed in common language.
It follows that computer control languages are a formal (and as such rather primitive) subset of common human languages.
To complicate things even further, computer science has its own understanding of “operational semantics” in programming languages, for example in the construction of a programming language interpreter or compiler.
Just as this interpreter doesnt perform “interpretations” in a hermeneutic sense of semantic text explication, the computer science notion of “semantics” defies linguistic and common sense understanding of the word, since compiler construction is purely syntactical, and programming languages denote nothing but syntactical manipulations of symbols.
What might more suitably be called the semantics of computer control languages resides in the symbols with which those operations are denoted in most programming languages: English words like “if,” “then,” “else,” “for,” “while,” “goto,” and “print,” in conjunction with arithmetical and punctuation symbols; in alphabetic software controls, words like “list,” “move,” “copy,” and “paste”; in graphical software controls, such as symbols like the trash can.
Ferdinand de Saussure states that the signs of common human language are arbitrary2 because its purely a cultural-social convention that assigns phonemes to concepts.
Likewise, its purely a cultural convention to assign symbols to machine operations.
But just as the cultural choice of phonemes in spoken language is restrained by what the human voice can pronounce, the assignment of symbols to machine operations is limited to what can be efficiently processed by the machine and of good use to humans.3 This compromise between operability and usability is obvious in, for example, Unix commands.
Originally used on teletype terminals, the operation “copy” was abbreviated to the command “cp,” “move” to “mv,” “list” to “ls,” etc., in order to cut down machine memory use, teletype paper consumption, and human typing effort at the same time.
Any computer control language is thus a cultural compromise between the constraints of machine design—which is far from objective, but based on human choices, culture, and thinking style itself 4—and the equally subjective user preferences, involving fuzzy factors like readability, elegance, and usage efficiency.
The symbols of computer control languages inevitably do have semantic connotations simply because there exist no symbols with which humans would not associate some meaning.
But symbols cant denote any semantic statements, that is, they do not express meaning in their own terms; humans metaphorically read meaning into them through associations they make.
Languages without semantic denotation are not historically new phenomena; mathematical formulas are their oldest example.
In comparison to common human languages, the multitude of programming languages is of lesser significance.
The criterion of Turing completeness of a programming language, that is, that any computation can be expressed in it, means that every programming language is, formally speaking, just a riff on every other programming language.
Nothing can be expressed in a Turingcomplete language such as C that couldnt also be expressed in another Turingcomplete language such as Lisp (or Fortran, Smalltalk, Java ...) and vice versa.
This ultimately proves the importance of human and cultural factors in programming languages: while they are interchangeable in regard to their control of machine functions, their different structures—semantic descriptors, grammar and style in which algorithms can be expressed—lend themselves not only to different problem sets, but also to different styles of thinking.
Just as programming languages are a subset of common languages, Turingincomplete computer control languages are a constrained subset of Turingcomplete languages.
This prominently includes markup languages (such as HTML), file formats, network protocols, and most user controls (see the entry “Interface”) of computer programs.
In most cases, languages of this type are restrained from denoting algorithmic operations for computer security reasons—to prevent virus infection and remote takeover.
This shows how the very design of a formal language is a design for machine control.
Access to hardware functions is limited not only through the software application, but through the syntax the software application may use for storing and transmitting the information it processes.
To name one computer control language a “programming language,” another a “protocol,” and yet another a “file format” is merely a convention, a nomenclature indicating different degrees of syntactic restraint built into the very design of a computer control language.
In its most powerful Turing-complete superset, computer control language is language that executes.
As with magical and speculative concepts of language, the word automatically performs the operation.
Yet this is not to be confused with what linguistics calls a “performative” or “illocutionary” speech act, for example, the words of a judge who pronounces a verdict, a leader giving a command, or a legislator passing a law.
The execution of computer control languages is purely formal; it is the manipulation of a machine, not a social performance based on human conventions such as accepting a verdict.
Computer languages become performative only through the social impact of the processes they trigger, especially when their outputs arent critically checked.
Joseph Weizenbaums software psychotherapist Eliza, a simple program that syntactically transforms input phrases, is a classical example,5 as is the 1987 New York Stock Exchange crash that involved a chain reaction of “sell” recommendations by day trading software.6 Writing in a computer programming language is phrasing instructions for an utter idiot.
The project of Artificial Intelligence is to prove that intelligence is just a matter of a sufficiently massive layering of foolproof recipes—in linguistic terms, that semantics is nothing else but (more elaborate) syntax.
As long as A.I.
fails to deliver this proof, the difference between common languages and computer control languages continues to exist, and language processing through computers remains restrained to formal string manipulations, a fact that after initial enthusiasm has made many experimental poets since the 1950s abandon their experiments with computer-generated texts.7 The history of computing is rich with confusions of formal with common human languages, and false hopes and promises that formal languages would become more like common human languages.
Among the unrealized hopes are artificial intelligence, graphical user interface design with its promise of an “intuitive” or, to use Jef Raskins term, “humane interface,”8 and major currents of digital art.
Digital installation art typically misperceives its programmed behaviorist black boxes as “interactive,” and some digital artists are caught in the misconception that they can overcome what they see as the Western male binarism of computer languages by reshaping them after romanticized images of indigenous human languages.
The digital computer is a symbolic machine that computes syntactical language and processes alphanumerical symbols; it treats all data—including images and sounds—as textual, that is, as chunks of coded symbols.
Nelson Goodmans criteria of writing as “disjunct” and “discrete,” or consisting of separate single entities that differ from other separate single entities, also applies to digital files.9 The very meaning of “digitization” is to structure analog data as numbers and store them as numerical texts composed of discrete parts.
All computer software controls are linguistic regardless of their perceivable shape, alphanumerical writing, graphics, sound signals, or whatever else.
The Unix command “rm file” is operationally identical to dragging the file into the trashcan on a desktop.
Both are just different encodings for the same operation, just as alphabetic language and morse beeps are different encodings for the same characters.
As a symbolic handle, this encoding may enable or restrain certain uses of the language.
In this respect, the differences between ideographic-pictorial and abstract-symbolic common languages also apply to computer control languages.
Pictorial symbols simplify control languages through predefined objects and operations, but make it more difficult to link them through a grammar and thus express custom operations.
Just as a pictogram of a house is easier to understand than the letters h-o-u-s-e, the same is true for the trashcan icon in comparison to the “rm” command.
But it is difficult to precisely express the operation “If I am home tomorrow at six, I will clean up every second room in the house” through a series of pictograms.
Abstract, grammatical alphanumeric languages are more suitable for complex computational instructions.10 The utopia of a universal pictorial computer control language (with icons, windows, and pointer operations) is a reenactment of the rise and eventual fall of universal pictorial language utopias in the Renaissance, from Tommaso Campanellas “Città del sole” to Comenius “Orbis pictus”—although the modern project of expressing only machine operations in pictograms was less ambitious.
The converse to utopian language designs occurs when computer control languages get appropriated and used informally in everyday culture.
Jonathan Swift tells how scientists on the flying island of Lagado “would, for example, praise the beauty of a woman, or any other animal ... by rhombs, circles, parallelograms, ellipses, and other “geometrical terms.” 11 Likewise, there is programming language poetry which, unlike most algorithmic poetry, writes its program source as the poetical work, or crossbreeds cybernetic with common human languages.
These “code poems” or “codeworks” often play with the interference between human agency and programmed processes in computer networks.
In computer programming and computer science, “code” is often understood either as a synonym of computer programming language or as a text written in such a language.
This modern usage of the term “code” differs from the traditional mathematical and cryptographic notion of code as a set of formal transformation rules that transcribe one group of symbols to another group of symbols, for example, written letters into morse beeps.
The translation that occurs when a text in a programming language gets compiled into machine instructions is not an encoding in this sense because the process is not oneto-one reversible.
This is why proprietary software companies can keep their source “code” secret.
It is likely that the computer cultural understanding of “code” is historically derived from the name of the first high-level computer programming language, “Short Code” from 1950.12 The only programming language that is a code in the original sense is assembly language, the human- readable mnemonic one-to-one representation of processor instructions.
Conversely, those instructions can be coded back, or “disassembled,” into assembly language.
Software as a whole is not only “code” but a symbolic form involving cultural practices of its employment and appropriation.
But since writing in a computer control language is what materially makes up software, critical thinking about computers is not possible without an informed understanding of the structural formalism of its control languages.
Artists and activists since the French Oulipo poets and the MIT hackers in the 1960s have shown how their limitations can be embraced as creative challenges.
Likewise, it is incumbent upon critics to reflect the sometimes more and sometimes less amusing constraints and game rules computer control languages write into culture.
Notes
1. Hugh Kenner, “Beckett Thinking,” in Hugh Kenner, The Mechanic Muse, 83107.
2. Ferdinand de Saussure, Course in General Linguistics, ”Chapter I: Nature of the Linguistic Sign.”
3. See the section, “Saussurean Signs and Material Matters,” in N. Katherine Hayles, My Mother Was a Computer, 4245.
4. For example, Steve Wozniaks design of the Apple I mainboard was consijdered “a beautiful work of art” in its time according to Steven Levy, Insanely Great: The Life and Times of Macintosh, 81.
5. Joseph Weizenbaum, “ELIZA—A Computer Program for the Study of Natural Language Communication between Man and Machine.”
6. Marsha Pascual, “Black Monday, Causes and Effects.”
7. Among them concrete poetry writers, French Oulipo poets, the German poet Hans Magnus Enzensberger, and the Austrian poets Ferdinand Schmatz and Franz Josef Czernin.
8. Jef Raskin, The Humane Interface: New Directions for Designing Interactive Systems.
9. According to Nelson Goodmans definition of writing in The Languages of Art, 143.
10. Alan Kay, an inventor of the graphical user interface, conceded in 1990 that “it would not be surprising if the visual system were less able in this area than the mechanism that solve noun phrases for natural language. Although it is not fair to say that iconic languages cant work just because no one has been able to design a good one, it is likely that the above explanation is close to truth.” This status quo hasnt changed since. Alan Kay, “User Interface: A Personal View,” in, Brenda Laurel ed. The Art of Human-Computer Interface Design, Reading: Addison Wesley, 1989, 203.
11. Swift, Jonathan, Gullivers Travels, Project Gutenberg Ebook, available at http:// www.gutenberg.org / dirs / extext197 / gltrv10.txt / .
12. See Wolfgang Hagen, “The Style of Source Codes.”

@ -1,88 +0,0 @@
Language
Florian Cramer
Software and language are intrinsically related, since software may process language, and is constructed in language.
Yet language means different things in the context of computing: formal languages in which algorithms are expressed and software is implemented, and in so-called “natural” spoken languages.
There are at least two layers of formal language in software: programming language in which the software is written, and the language implemented within the software as its symbolic controls.
In the case of compilers, shells, and macro languages, for example, these layers can overlap.
“Natural” language is what can be processed as data by software; since this processing is formal, however, it is restricted to syntactical operations.
While differentiation of computer programming languages as “artificial languages” from languages like English as “natural languages” is conceptually important and undisputed, it remains problematic in its pure terminology: There is nothing “natural” about spoken language; it is a cultural construct and thus just as “artificial” as any formal machine control language.
To call programming languages “machine languages” doesnt solve the problem either, as it obscures that “machine languages” are human creations.
High-level machine-independent programming languages such as Fortran, C, Java, and Basic are not even direct mappings of machine logic.
If programming languages are human languages for machine control, they could be called cybernetic languages.
But these languages can also be used outside machines—in programming handbooks, for example, in programmers dinner table jokes, or as abstract formal languages for expressing logical constructs, such as in Hugh Kenners use of the Pascal programming language to explain aspects of the structure of Samuel Becketts writing.1 In this sense, computer control languages could be more broadly defined as syntactical languages as opposed to semantic languages.
But this terminology is not without its problems either.
Common languages like English are both formal and semantic; although their scope extends beyond the formal, anything that can be expressed in a computer control language can also be expressed in common language.
It follows that computer control languages are a formal (and as such rather primitive) subset of common human languages.
To complicate things even further, computer science has its own understanding of “operational semantics” in programming languages, for example in the construction of a programming language interpreter or compiler.
Just as this interpreter doesnt perform “interpretations” in a hermeneutic sense of semantic text explication, the computer science notion of “semantics” defies linguistic and common sense understanding of the word, since compiler construction is purely syntactical, and programming languages denote nothing but syntactical manipulations of symbols.
What might more suitably be called the semantics of computer control languages resides in the symbols with which those operations are denoted in most programming languages: English words like “if,” “then,” “else,” “for,” “while,” “goto,” and “print,” in conjunction with arithmetical and punctuation symbols; in alphabetic software controls, words like “list,” “move,” “copy,” and “paste”; in graphical software controls, such as symbols like the trash can.
Ferdinand de Saussure states that the signs of common human language are arbitrary2 because its purely a cultural-social convention that assigns phonemes to concepts.
Likewise, its purely a cultural convention to assign symbols to machine operations.
But just as the cultural choice of phonemes in spoken language is restrained by what the human voice can pronounce, the assignment of symbols to machine operations is limited to what can be efficiently processed by the machine and of good use to humans.3 This compromise between operability and usability is obvious in, for example, Unix commands.
Originally used on teletype terminals, the operation “copy” was abbreviated to the command “cp,” “move” to “mv,” “list” to “ls,” etc., in order to cut down machine memory use, teletype paper consumption, and human typing effort at the same time.
Any computer control language is thus a cultural compromise between the constraints of machine design—which is far from objective, but based on human choices, culture, and thinking style itself 4—and the equally subjective user preferences, involving fuzzy factors like readability, elegance, and usage efficiency.
The symbols of computer control languages inevitably do have semantic connotations simply because there exist no symbols with which humans would not associate some meaning.
But symbols cant denote any semantic statements, that is, they do not express meaning in their own terms; humans metaphorically read meaning into them through associations they make.
Languages without semantic denotation are not historically new phenomena; mathematical formulas are their oldest example.
In comparison to common human languages, the multitude of programming languages is of lesser significance.
The criterion of Turing completeness of a programming language, that is, that any computation can be expressed in it, means that every programming language is, formally speaking, just a riff on every other programming language.
Nothing can be expressed in a Turingcomplete language such as C that couldnt also be expressed in another Turingcomplete language such as Lisp (or Fortran, Smalltalk, Java ...) and vice versa.
This ultimately proves the importance of human and cultural factors in programming languages: while they are interchangeable in regard to their control of machine functions, their different structures—semantic descriptors, grammar and style in which algorithms can be expressed—lend themselves not only to different problem sets, but also to different styles of thinking.
Just as programming languages are a subset of common languages, Turingincomplete computer control languages are a constrained subset of Turingcomplete languages.
This prominently includes markup languages (such as HTML), file formats, network protocols, and most user controls (see the entry “Interface”) of computer programs.
In most cases, languages of this type are restrained from denoting algorithmic operations for computer security reasons—to prevent virus infection and remote takeover.
This shows how the very design of a formal language is a design for machine control.
Access to hardware functions is limited not only through the software application, but through the syntax the software application may use for storing and transmitting the information it processes.
To name one computer control language a “programming language,” another a “protocol,” and yet another a “file format” is merely a convention, a nomenclature indicating different degrees of syntactic restraint built into the very design of a computer control language.
In its most powerful Turing-complete superset, computer control language is language that executes.
As with magical and speculative concepts of language, the word automatically performs the operation.
Yet this is not to be confused with what linguistics calls a “performative” or “illocutionary” speech act, for example, the words of a judge who pronounces a verdict, a leader giving a command, or a legislator passing a law.
The execution of computer control languages is purely formal; it is the manipulation of a machine, not a social performance based on human conventions such as accepting a verdict.
Computer languages become performative only through the social impact of the processes they trigger, especially when their outputs arent critically checked.
Joseph Weizenbaums software psychotherapist Eliza, a simple program that syntactically transforms input phrases, is a classical example,5 as is the 1987 New York Stock Exchange crash that involved a chain reaction of “sell” recommendations by day trading software.6 Writing in a computer programming language is phrasing instructions for an utter idiot.
The project of Artificial Intelligence is to prove that intelligence is just a matter of a sufficiently massive layering of foolproof recipes—in linguistic terms, that semantics is nothing else but (more elaborate) syntax.
As long as A.I.
fails to deliver this proof, the difference between common languages and computer control languages continues to exist, and language processing through computers remains restrained to formal string manipulations, a fact that after initial enthusiasm has made many experimental poets since the 1950s abandon their experiments with computer-generated texts.7 The history of computing is rich with confusions of formal with common human languages, and false hopes and promises that formal languages would become more like common human languages.
Among the unrealized hopes are artificial intelligence, graphical user interface design with its promise of an “intuitive” or, to use Jef Raskins term, “humane interface,”8 and major currents of digital art.
Digital installation art typically misperceives its programmed behaviorist black boxes as “interactive,” and some digital artists are caught in the misconception that they can overcome what they see as the Western male binarism of computer languages by reshaping them after romanticized images of indigenous human languages.
The digital computer is a symbolic machine that computes syntactical language and processes alphanumerical symbols; it treats all data—including images and sounds—as textual, that is, as chunks of coded symbols.
Nelson Goodmans criteria of writing as “disjunct” and “discrete,” or consisting of separate single entities that differ from other separate single entities, also applies to digital files.9 The very meaning of “digitization” is to structure analog data as numbers and store them as numerical texts composed of discrete parts.
All computer software controls are linguistic regardless of their perceivable shape, alphanumerical writing, graphics, sound signals, or whatever else.
The Unix command “rm file” is operationally identical to dragging the file into the trashcan on a desktop.
Both are just different encodings for the same operation, just as alphabetic language and morse beeps are different encodings for the same characters.
As a symbolic handle, this encoding may enable or restrain certain uses of the language.
In this respect, the differences between ideographic-pictorial and abstract-symbolic common languages also apply to computer control languages.
Pictorial symbols simplify control languages through predefined objects and operations, but make it more difficult to link them through a grammar and thus express custom operations.
Just as a pictogram of a house is easier to understand than the letters h-o-u-s-e, the same is true for the trashcan icon in comparison to the “rm” command.
But it is difficult to precisely express the operation “If I am home tomorrow at six, I will clean up every second room in the house” through a series of pictograms.
Abstract, grammatical alphanumeric languages are more suitable for complex computational instructions.10 The utopia of a universal pictorial computer control language (with icons, windows, and pointer operations) is a reenactment of the rise and eventual fall of universal pictorial language utopias in the Renaissance, from Tommaso Campanellas “Città del sole” to Comenius “Orbis pictus”—although the modern project of expressing only machine operations in pictograms was less ambitious.
The converse to utopian language designs occurs when computer control languages get appropriated and used informally in everyday culture.
Jonathan Swift tells how scientists on the flying island of Lagado “would, for example, praise the beauty of a woman, or any other animal ... by rhombs, circles, parallelograms, ellipses, and other “geometrical terms.” 11 Likewise, there is programming language poetry which, unlike most algorithmic poetry, writes its program source as the poetical work, or crossbreeds cybernetic with common human languages.
These “code poems” or “codeworks” often play with the interference between human agency and programmed processes in computer networks.
In computer programming and computer science, “code” is often understood either as a synonym of computer programming language or as a text written in such a language.
This modern usage of the term “code” differs from the traditional mathematical and cryptographic notion of code as a set of formal transformation rules that transcribe one group of symbols to another group of symbols, for example, written letters into morse beeps.
The translation that occurs when a text in a programming language gets compiled into machine instructions is not an encoding in this sense because the process is not oneto-one reversible.
This is why proprietary software companies can keep their source “code” secret.
It is likely that the computer cultural understanding of “code” is historically derived from the name of the first high-level computer programming language, “Short Code” from 1950.12 The only programming language that is a code in the original sense is assembly language, the human- readable mnemonic one-to-one representation of processor instructions.
Conversely, those instructions can be coded back, or “disassembled,” into assembly language.
Software as a whole is not only “code” but a symbolic form involving cultural practices of its employment and appropriation.
But since writing in a computer control language is what materially makes up software, critical thinking about computers is not possible without an informed understanding of the structural formalism of its control languages.
Artists and activists since the French Oulipo poets and the MIT hackers in the 1960s have shown how their limitations can be embraced as creative challenges.
Likewise, it is incumbent upon critics to reflect the sometimes more and sometimes less amusing constraints and game rules computer control languages write into culture.
Notes
1. Hugh Kenner, “Beckett Thinking,” in Hugh Kenner, The Mechanic Muse, 83107.
2. Ferdinand de Saussure, Course in General Linguistics, ”Chapter I: Nature of the Linguistic Sign.”
3. See the section, “Saussurean Signs and Material Matters,” in N. Katherine Hayles, My Mother Was a Computer, 4245.
4. For example, Steve Wozniaks design of the Apple I mainboard was consijdered “a beautiful work of art” in its time according to Steven Levy, Insanely Great: The Life and Times of Macintosh, 81.
5. Joseph Weizenbaum, “ELIZA—A Computer Program for the Study of Natural Language Communication between Man and Machine.”
6. Marsha Pascual, “Black Monday, Causes and Effects.”
7. Among them concrete poetry writers, French Oulipo poets, the German poet Hans Magnus Enzensberger, and the Austrian poets Ferdinand Schmatz and Franz Josef Czernin.
8. Jef Raskin, The Humane Interface: New Directions for Designing Interactive Systems.
9. According to Nelson Goodmans definition of writing in The Languages of Art, 143.
10. Alan Kay, an inventor of the graphical user interface, conceded in 1990 that “it would not be surprising if the visual system were less able in this area than the mechanism that solve noun phrases for natural language. Although it is not fair to say that iconic languages cant work just because no one has been able to design a good one, it is likely that the above explanation is close to truth.” This status quo hasnt changed since. Alan Kay, “User Interface: A Personal View,” in, Brenda Laurel ed. The Art of Human-Computer Interface Design, Reading: Addison Wesley, 1989, 203.
11. Swift, Jonathan, Gullivers Travels, Project Gutenberg Ebook, available at http:// www.gutenberg.org / dirs / extext197 / gltrv10.txt / .
12. See Wolfgang Hagen, “The Style of Source Codes.”

@ -1,51 +0,0 @@
! / ?
Nina Power
Part 1: !
“[T]he entire thrust of the LTI [[i]The Langue of the Third Reich[i]] was towards visualisation, and if this process of visualizing could be achieved with recourse to Germanic traditions, by means of a runic sign, then so much the better. And as a jagged character the rune of life was related to the SS symbol, and as an ideological symbol also related to the spokes of the wheel of the sun, the swastika … Renans position: the question mark the most important of all punctuation marks. A position in direct opposition to National Socialist intransigence and self-confidence … From time to time it is possible to detect, both amongst individuals and groups, a characteristic preference for one particular punctuation mark. Academics love the semicolon; their hankering after logic demands a division which is more emphatic than a comma, but not quite as absolute a demarcation as a full stop. Renan the sceptic declares that it is impossible to overuse the question mark.” Victor Klemperer, Punctuation from [i]The Language of the Third Reich[I][1]
In the era of emojis, we have forgotten about the politics of punctuation. Which mark or sign holds sway over us in the age of Twitter, Facebook, YouTube comments, emails, and text messages? If we take the tweets of Donald Trump as some kind of symptomatic indicator, we can see quite well that it is the exclamation mark ! that dominates. A quick look at his tweets from the last 48 hour period shows that almost all of them end with a single declarative sentence or word followed by a !: Big trade imbalance!, No more!, Theyve gone CRAZY!, Happy National Anthem Day!, REST IN PEACE BILLY GRAHAM!, IF YOU DONT HAVE STEEL, YOU DONT HAVE A COUNTRY!, (we shall leave the matter of all caps for another time), $800 Billion Trade Deficit-have no choice!, Jobless claims at a 49 year low! and so on … you get the picture. Trumps exclamation mark is the equivalent of a boss slamming his fist down on the table, an abusive partner shouting at a tentative query, an exasperated shock jock arguing with an imaginary opponent. It is the exclamation mark as the final word, which would not be so frightening if Trumps final word was not also backed up by nuclear annihilation, the US army, the police, court and prison system, vast swathes of the US media and electorate, and multiple people around him too afraid to say no. This is the exclamation mark as apocalypse, not the ! of surprise, amusement, girlish shyness, humour, or ironic puncture. This is the exclamation of doom.
The [i]Sturm and Drang[i] needed an unusually large number of exclamation marks, suggests Klemperer, and, though you might suspect the LTI ([i]Lingua Tertii Imperii[i] the language of the Third Reich as Klemperer calls it) would adore the exclamation mark, “given its fundamentally rhetorical nature and constant appeal to the emotions,” in actual fact “they are not at all conspicuous” in Nazi writings.[2] Why did the Nazis not need the exclamation mark? Klemperer states, “[i]t is as if [the LTI] turns everything into a command or proclamation as a matter of course and therefore has no need of a special punctuation mark to highlight the fact where after all are the sober utterances against which the proclamation would need to stand out?”[3]
This point alone should herald a terrible warning. “Sober utterances” from rational debate, to well-researched news, to public and open discussion when these go, the exclamation marks will go too, because there will be no opposition left to be falsely outraged against. There will be no critical press, no free thought, no social antagonism, because anyone who stands against the dominant discourse will disappear, and perhaps social death will suffice, rather than murder, if only because it is easier to do. When Trump and others attack the media, it is so that one day their tweets will no longer need the exclamation of opposition. It is so that all statements from above will be a command or proclamation in a frictionless, opposition-less universe.
But we are also tempted by the exclamation mark because it is also a sign, in some contexts, of another kind of disbelief. Not the Trump kind in which he cannot reconcile the fact that others disagree with him (or even that they exist), but the kind which simply says oh my goodness! or thats great! or Im shocked/surprised/happy stunned! But then we use them all the time and they grow tired and weak…and we use them defensively, when we say: Im sorry this email is so late!, I have been so useless lately!, Im so tired I can hardly see! and so on, ad infinitum … (and what of the ellipses? … another time, another time).
If you look at the comments to YouTube videos (a sentence to which nothing good is ever likely to be added), you will find a particular use of the exclamation mark. Take, for example, the currently number one trending video: Jennifer Lawrence Explains Her Drunk Alter Ego “Gail”, where the actress talks to Ellen DeGeneres on the latters popular programme The Ellen Show about how when shes on holiday and drinks rum she becomes a masculine, adrenalin-junkie, alter-ego Gail who jumps into shark-infested waters to amuse her friends, eats live sea creatures, and challenges people to arm-wrestling competitions. Apart from the slight melancholy induced by wondering why Jennifer Lawrence has to split herself into different beings in order to have a break from work, how does the public response to the video tell us anything about the various uses of the exclamation mark? While many of the comments suggest that Lawrence is the victim of MKUltra mind control, and a victim of child abuse, or that she is fake, some of the comments shed a small, pitiful, grey kind of light on the exclamation mark as a kind of pleading into the void the mark that will never be registered, because the speaker is speaking primarily to reassure him or herself.
There is the pleading, compassionate use: “love how she is so open!Ò” says Kailey Bashaw, to which Oliver 2000 responds, “Yeah I love her porn pictures” with no punctuation at all. Lauren Robelto writes: “Everybody commenting about alcoholism makes me so sad. Shes worked very hard and just wants to take a break and have fun and everyones criticizes her. Honestly if I were her I wouldn't be able to stop drinking because of all the hate! Lighten up people! JLaw is gonna keep thriving with or without your support!!” A similar kind of plea, the plea of the fan, a plea for understanding combined with a passive-aggressive double use of the exclamation mark to signify a kind of double-triumph: the commentator has both convinced themselves and history that leaving negative (or indeed positive) comments on YouTube will in no way affect the reception of whoever they are passionate about.
There is a footnote in Marxs [i]Capital[i], vol. 1 which does something interesting with the relation between the exclamation mark and the question mark, and I want to insert it here as the perfect dialectical extract for moving from the exclamation mark to the question mark. Here Marx is quoting Wilhelm Roscher writing about J. B. Say, the liberal economist famous for arguing that production creates its own demand. All the comments in parentheses are Marxs own: “Ricardos school is in the habit of including capital as accumulated labour under the heading of labour. This is unskillful (!), because (!) indeed the owner of capital (!) has after all (!) done more than merely (!?) create (?) and preserve (??) the same (what same?): namely (?!?) the abstention from the enjoyment of it, in return for which he demands, for instance (!!!) interest. How very skilful is this anatomico-physiological method of political economy, which converts a mere demand into a source of value!”[4]
Marx was famously brutal and scabrous in his take-downs, devoting hundreds of pages to figures that are now barely remembered, or remembered largely because Marx took them down. But here our interest lies in the use of ! and ? and !? and ?? and ?!? and !!!. What is Marx signalling here? Disbelief in idiocy, incomprehension, mockery, but also perhaps a curious hope. Hope? Hope in a better analysis, one worthier of the world, one that will explain rather than mystify…
Part 2: ?
Are we today in need of more question marks? Klemperer describes, as above, the question mark as being “in direct opposition to National Socialist intransigence and self-confidence.”[5] The question mark is itself a question, a kind of collapsed exclamation mark. A question mark can be an act of aggression or interruption: oh really? But it can also function as a kind of pause, a break in the horrible flow, the babble, the endless lies. The question mark is the person who says hang on, what is being said here?, what is happening?, is this okay? It is the question of the body that stands against the crowd, head bowed, frightened, but compelled by an inner question of their own is this the right thing, what they are saying? It is the feeling and the admission that one doesnt know, and the intuition that there might not be a simple answer to the situation. We are surrounded by people who want to give us their solutions, who tell us how things work, what we should think, how we should be, how we should behave. There are too few Socratic beings, and far too many self-promoters, charlatans, snake-oil salesmen, liars, confidence tricksters. We want to be nice, but we end up getting played. Anyone who claims to have the full picture is someone who wants an image of the world to dominate you so you shut up or give them something they want. They are not your friends.
How to understand the question mark as a symbol, then, of trust? There must be room for exploration, of a mutual, tentative openness. A place where it is possible to say I dont know and not feel ashamed or ignorant, or foolish, or unkind. The internet is so often a place where people are shunned and shamed for asking questions, as if ignorance wasnt a condition for knowledge, and as if we never wanted anyone to go beyond the things everybody already understands. Sometimes ignorance is in fact the greatest kind of intelligence, and sometimes it is the most noble political strategy. Philosophy and psychoanalysis tells us that, in any case, we in fact know less than we think we do know. Knowledge and understanding are not transparent processes: we bury and forget, we lose the ability to ask questions of ourselves, and we when we think we understand ourselves this is when we dismiss others. We want to think that we are solely good, that we have the right position, and that the others are wrong. But if we give up on our inner question mark, we become rigid, like the exclamation mark of condemnation. We forget that other people think differently and that not everyone must think the same thing. We forget about friendship, flexibility, and forgiveness.
If we do not give ourselves enough time to think about the politics of punctuation, we run the risk of being swept away on a wave of someone elses desire. We become passive pawns and stooges. We become victims of the malign desires of others to silence us, to put us down, to make us terrified and confused. Punctuation is not merely linguistic, but imagistic and political through and through. The ! and the ? are signs among other signs, but their relation and their power course through us when we are least aware of it. When we are face to face, we can use our expressions, our body as a whole, to dramatize these marks, with a raised eyebrow, a gesture, a shrug a complex combination of the two marks can appear in and about us. But we are apart much of the time, and we must rely on markers that do not capture our collective understanding. We must be in a mode of play with the words and the punctuation we use, to keep a certain openness, a certain humour: not the cruelty of online life or the declarations of the powerful, but the delicate humour that includes the recognition that jokes are always aggressive, and that we live permanently on the edge of violence, but that we must be able to play if we are able to understand our drives, and, at the same time, the possibility of living together differently.
Footnotes
1. Klemperer, Victor. [i]Language of the Third Reich: LTI: Lingua Tertii Imperii[i]. Translated by Martin Brady. New York: Bloomsbury Academic, 2013. 2. Ibid. 67. 3. Ibid. 67. 4. Marx, Karl. [i]Capital, Volume 1: A Critique of Political Economy.[i] New York: International Publishers, 1977. 82. 5. Klemperer, Victor. [i]Language of the Third Reich: LTI: Lingua Tertii Imperii[i]. 74.

@ -1,57 +0,0 @@
[c]=centrate
ATATA
Natalia Chaves López[1]
[c]I[c]
The purpose of the following text is to present and preserve the concept of ATATA: it is a composition of two ideograms in the Mhuysqa dead language. ATATA can be defined as I give myself and you give yourself, where giving is an act of receiving, because what you do for others is also affecting yourself. This exercise of reciprocity is a very important vibration of life because nobody can live without others, this includes all living creatures with whom we share the Earth. As a Colombian student of ancient history, I have experience with this concept for many years through learning about the wholesome ways of living with the indigenous people in both Colombia and Mexico.
It was through my PhD research that I experienced and looked further into the Mhuysqa and Mayan legacy. It was then that I realized the devastating reality that is currently affecting the quality of food. There is a systematic problem caused by the green revolution; from radical changes to the local ways of cultivation to the use of inputs made and sold by big global corporations which are creating dependency as well as poisoning the seeds, the soil, the water and therefore our own bodies. Meanwhile, as a response to this, an undercurrent is developing everywhere people are living and cultivating according to new or past principles outside global corporations, recovering solidarity, hope, life, food, and bio-diversifying forms of being.
I have based my writings on the perspective of Heart´s Epistemology. What I mean is that heart and brain come together into my proposal of bringing to light my feel-thoughts about how to keep on living and how to make collective decisions about territory. The intention of this essay is to find ourselves and others heart to heart. In fact, the heart is the place where you keep dreams, hope, joy, and pain, according to the Mayan culture. You need to have all these clear to know what is the kind of living knowledge you want to go over.[2] In the Mhuysqa´s worldview, the human heart is named [i]puyky[i], an onomatopoeia of the heartbeat, that is said to be connected with the beating of the cosmos itself, representing the frequency where one can find answers in the path of protecting life. The questions that this essay aims to answer are: How to feel-think the future of food and water from a perspective of reciprocity? Why is ATATA a fruitful principle for the future survival of the human kind?
Mhuysqas are an ancient indigenous culture who live in Cundinamarca and Boyacá regions of Colombia. They lost their language in the eighteenth century, which consisted of compact ideograms and hieroglyphics representing complex ideas about their understanding of nature. Today the Mhuysqas speak Spanish because of persecution since the colonial period and the banning of their language, but they kept some of their ancestral ways of living. I have studied their language, named Mhuysqhubun, and I propose here to bring back to life the dead word ATATA, so that it is not forgotten. ATATA is a palindrome unity made by two ideograms and hieroglyphics of the moon calendar: Ata and Ta. Mariana Escribano,[3] a linguist who writes about the Mhuysqa language and worldview, explains that Ata refers to the number 1, which in cosmogony is relative to the beginning of times. From the eighteenth-century grammar of the priest Jose Domingo Duquesne, we can translate the ideogram as follows: “the goods and something else.” This means common goods or everything that exists. It also refers to the primordial pond, which links it to water as well.
Ta, the second sound in the unity, is the number 6 and represents a new beginning that is showing the comprehension of time in sequences of 5 and 20. The priest Duquesne wrote that Ta means “tillage, harvest.” The Ta ideogram also means the bearing of fruits, the giving of yourself freely, as in agriculture labor. In this perspective the act of giving is an act of receiving; it also implies the responsibility of taking care of what you are receiving.
One of the most important acts in Mhuysqa culture was the offering in some holy lagoons. The main offering happened in Guatabita lagoon. This lagoon held the gold, offered by Mhuysqas and sought after by the Spanish conquers who heard about it and tried to dry the lagoon up. The leader of the town of Guatabita, covered in gold, would be introduced on a raft, adorned with more gold and emeralds. The raft would be then given to the lagoon followed by the leader who would introduce himself into the water as an offering of the gold that was covering him and receive a purification bath. This astonishing ritual ATATA was done as a reminder of gratitude to water as one of the most important living beings. In reciprocity some of the few sacred female entities living in the water, representing the lagoon itself, would hold the abundance of Mhuysqa people. One of the ways water supplied life to the people was through rain, which provided corn to feed everybody.
In order to understand this reciprocal interaction/cycle of humans-lagoons-rain-corn I refer to Tseltal Mayan people, who live in the Highlands of Chiapas and the Lacandona jungle in Mexico, who keep alive very ancient knowledge and have the belief that corn spirit is living inside the mountains and lakes. It is given to the humans as result of offerings asking for maintenance of people. ATATA can be related with the Mayan Tseltal concept of [i]Ich´el ta muk´[i] translated as “respect and recognition for all living things in nature.”[4]
The corn cycle is Tseltal life itself and requires a permanent compromise, the way they explain this is by referring to corn as a double being. Seen on one side as a baby and on the other as a woman supporting her family. When someone wastes corn, they can hear it crying even if a single seed is left in the soil or a piece of tortilla lies on the kitchen floor. When seen as the woman supporting her family, it appears in the harvest when the corncobs have smaller corns sticks. These are signals that it is the mother of the plant and they do not eat it because they prefer to hang it up in the house as a gesture towards keeping abundance present in the home and community. This double reciprocal relation with corn as demanding care on one hand while at the same time protecting its own people, is a meaningful trait in understanding the power of this spirit.
In Tenejapa, a Tseltal town, they traditionally make an offering in an important lagoon named [i]Ts´ajalsul[i] to show [i]ich´el ta muk´[i]. In the ceremony authorities deposit a traditional handmade dress to the female being that is living in water and is representing the lagoon itself who provides corn, because she happens to be also the mother of red corn. Red corn is now hard to find in the Highlands of Chiapas, it represents the strongest spirits and connection with ancestors through woman´s blood. Some families are aware of the high value of these and other varieties of corn, but diversity becomes a challenge for this communities.
[c]II[c]
Despite these cultures that live in a reciprocal cycle with the land they inhabit, we have arrived to latent and urgent conflicts surrounding food. Since in the 1950s, Mexican and United States politicians started an alliance to increase productivity of the most consumed cereals: wheat, corn, and rice. Even if the pioneers of this project said so, this was not to fight off hunger, because there was an inequality in the availability of food. That inequality is still growing. The 'green revolution' began as a movement of engineers George Harrar, Edwin J. Wellhausen, and the Nobel Peace Prize winner Norman E. Borlaug. They worked together in Sonora, Mexico through the Office of Special Studies which later was called the International Maize and Wheat Improvement Center (CIMMYT) financed mainly by the Rockefeller Foundation. They developed a biochemical 'technological package' for pest control that started affecting natural interdependence and agricultural cycles by achieving full biocontrol over the process.
Most of these substances were created during the Second World War as biological weapons to kill populations, such as the Japanese, through starvation by the spraying of fulminate herbicides. When the war was over, they needed to sell the products, but theses herbicides were killing the traditional locally adapted seeds so they worked in two steps: First they collected a bank of germplasm to study the varieties of corn in Mexico, and second they chose and separated only two varieties of the approximately 64 types and adapted them to the chemicals above mentioned, producing a dependency in the seed which could not grow without pesticides. Then, with a major commitment of the governments through credits and funding, publicized this alleged progress as a need for peasants. They could then sell these 'packages' to the farmers, who only realized their negative effects after spoiling their soil and water with nitrates and phosphates among other toxic elements that produced soil erosion and broke the biological equilibrium. Nowadays 'technological packages' in Mexico include hybrid seeds of white and yellow corn, chemical fertilizers, herbicides, and pest controllers. All of them come with a negative impact in health proved this year in the United States by the court case of Dewayne Johnson vs. Monsanto regarding Roundup Ready, a pesticide that contains glyphosate.[5] When a community loses their traditional seeds (highly adapted to their territories through the work of the generations before) because of a new hybrid, the damage is difficult to undo. Once they want to go back to the organic ones they will need years of adaptation, recovering the soil again that will in consequence provoke a low production. An unbearable lost for peasants.
In the nineties, genetic engineers modified the hybrid seeds and created new ones by mixing animal and bacteria genes such as bacterium 'Bacillus thuringiensis' into the cereal creating the BT transgenic corn, also dependent on agrochemicals as well as not fertile, which meant that peasants needed to buy them anew each year. As a result of this process, today in Mexico there are sequences of transgenic contamination of 90.4 % in the whole production of tortillas which are consumed with every meal.[6] There is a lot of money invested in the creation of food that is low in nutrients but high on private patents owned by big corporations like Bayer (owner of Monsanto), Pioneer-Dupont, Syngenta, DOW Agrosciences, among others. This has created a scenario where the keepers of ancestral seeds started to be treated as criminals because of the pollination of their harvest from transgenic plants.
The ancient cultural cycle of corn is now a dependent one. On one hand there is a biopolitical issue of the 'green revolution' where traditional practices of working with land were replaced by new technologies and cooperate businesses agreements. On the other hand, there is an issue of who has the capacity and power of deciding who lives, and therefore also who dies. Michel Foucault refers to a kind of authority that is “endangering life,” while hiding the evidence of being responsible for the dead.[7] According to this, foundations and corporations named above are contaminating corn and doing so guilty of an act of “endangering life.”
As a result of such violent acts on natural goods, a huge crisis has manifested itself in the indigenous territories. Peasants are in poverty in part as consequence of the global competition, which has lowered the prices of some food. The only possible way of keeping producers in the market is by having more land where bigger quantities of food can be produced. This leads to land concentration; a few actors having control over important areas. Additionally, due to bad harvest the value of their products is so low that farming is unprofitable for the peasants, who lose their lands to these economical disasters. And as if that isnt enough the state of Chiapas, which is a large producer of corn, is also importing the same cereal from South Africa. This type of transgenic imported grain can be found in the governmental rural stores of Diconsa, competing with and thus endangering local varieties and peasant production.
In this losing cycle, farmers are first pushed into debt and then onto the streets, forced to start working for others on the lands that used to be theirs; a result of the systematic process of impoverishment. All this is creating a downturn, wherein the indigenous young people are looking for other options to live. Thus some of them are migrating legally and illegally to the United States or other Mexican territories trying to find a job in touristic places. One elder man from Tenejapa said in an interview, “Sometimes it looks like the heart of young people is a stone, it seems nothing is important for them and nothing is touching them anymore. They walk without knowing where they are going, like robots.”[8] However, in the middle of such multilateral complexity some of them are keeping the seeds, water, lands, wisdom, and memory, alive.
[c]III[c]
I feel-think offerings for getting water and food are a reminder for us to be grateful for what we have received from previous generations and take care of this common goods. Reciprocity might be something as wonderful as the kind of work indigenous cultures do when they are preparing their meticulous and ephemeral artistic compositions as offering for the water. They spend a lot of time because in their hearts they know life ends when water is not flowing, so this offering is worth the effort. When indigenous people are keeping corn, they are cultivating the plant with great respect and an attention that goes beyond just growing it. They also sit around a fire in the kitchen to reproduce face to face the teachings of the meanings, the varieties and the ways for harvesting and healing with corn; all the wisdom is given in this warm community-oriented touch. Learning to listen to the elders and keeping in touch with people who still know natural ways to cultivate as well as carry ancient seeds and memories, are ways to remember. But to resurge these practices today we need to act as well. We need to disseminate organic seeds and the knowledge to take care of them, appropriating available technologies to recover natural balance in living (decontaminated) soils and water.
This is a time for creative collective praxis to protect life and common goods; humanity is living through a serious historical process. Something people in every country could do is to finding community solidarity through the act of conserving the biodiversity of food. For example, we can get in touch with the seed collectives which are taking on a significant labor by keeping germplasm banks to conserve seeds in low temperature environments, and, more importantly, growing the seeds in the soil and renewing each cycle. We could also be responsible for at least one seed´s survival, in our rural soils we should research cultural production systems as 'milpa' to associate the plants in this case corn and beans among others to have abundant and various harvests. In the urban areas walls, roofs, or pots are great hosts to plants; also schools or parks. Reinforcing local exchange of producers and conscient consumers is also important. By organizing time around sustainable, organic, abundance and sharing it with children we are offering to the Earth and humanity life, autonomy, and richness. In this way we make the noble effort to keep alive the rainbow seeds (varieties of food) to give the future as much colors and flavors as we have received from earth and our previous generations.
That is why taking myself serious is an act of reciprocity, which means that (inter)acting from within the power of my heart is necessary because through my work and my way of living I am affecting others, known and unknown. As native people say it is through the heart that we can be aware of the consequences of our acts in the territory we live in without ignoring other lands and people. This is related with developing fair economics and politics that reduces inequality. It is important to highlight that dealing with the urgent problem of ecocide means dealing with the collateral disaster of genocide provoked by that ecocide. Addressing such issues will demand that we recognize, respect, and embrace our cultural differences, belief systems, traditions, and languages ending any cultural supremacy and dominance that requires the oppression and starvation of others. Reciprocity is a relationship with living nature: plants, territory, animals, and cultures to which we have a lot to re-appropriate and learn from, because feeding ourselves is a process where awareness, memory, and re-learning are needed.
The construction of a good way of living named [i]Lekil kuxlejal[i] (full, dignified and fair life) in Tseltal language is not only a product of harmonic relations with nature and society, we can only get there in a collective transformation process where both concepts of reciprocity ATATA and [i]ich´el ta muk´[i] are present in both a local and/or global scale, through political intimate acts and public transnational reciprocal agreements.
Footnotes
1. To Yaku. 2. Pérez Moreno, María Patricia. [i]O'tan - o'tanil. Corazón: una forma de ser - estar - hacer - sentir - pensar de los tseltaletik de Bachajón[i]. Chiapas, México. FLACSO, Quito. 2014 3. Escribano, Mariana. [i] Semiological research on Mhuysqa language, Decryption of moon calendar numbers.[i] Antares, Colombia. 2002 4. López Intzin, Juan “Ichel ta muk: the plot in the construction of the Lekil kuxlejal”, in: [i]Feel-think gender[i]. La Casa del Mago, Guadalajara. 2013 5. Levin, S. and Greenfield, P. Monsanto ordered to pay $289m as jury rules weedkiller caused man's cancer. The Guardian. https://www.theguardian.com/business/2018/aug/10/monsanto-trial-cancer-dewayne-johnson-ruling. 2018 6. Álvarez-Buylla Roces, Elena. [i] Agroecology and Sustainable Food Systems[i]. IE y C3, UNAM, México. 2017 http://www.dgcs.unam.mx/boletin/bdboletin/2017_607.html 7. Foucault, Michel. [i]The History of Sexuality[i]. 1997. 8. López Intzin, Juan.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,37 +0,0 @@
Otherness | Daniel L. Everett
When I was 26, I moved to the Amazon, from California, in order to study the language and culture of a people that were believed to be unrelated to any other people. I flew in a small missionary plane, a bumpy nausea-inducing ride, to meet the Pirahã people for the first time. My body was weak; my brain was taut with anxiety and anticipation. The Pirahãs are unrelated to any other. They speak a language that many linguists had unsuccessfully attempted to understand. My task would be to understand where little understanding currently existed. This encounter with these others, so unlike myself, was to be the defining experience for the rest of my life.
One of the greatest challenges of our species is alterity, otherness. All cultures for reasons easy enough to understand fear other cultures. War and conflict have defined humans for nearly two million years. When we encounter others unlike ourselves, we frequently become uncomfortable, suspicious. A new neighbor from another country. A friend of our child who has a different color. Someone whose gender is not a simple binary classification. This is an old problem. Jesus himself fell under suspicion for befriending a woman thought to be a prostitute, Mary Magdalene. She was unlike the religious people of Jesus's day. An other.
Those unlike ourselves may eat different food, be unintelligible to us when speaking to those more like themselves, build different-looking homes, or, in the view of some who most fears otherness, simply live wrongly. To some, others are not only suspect, but their differences are morally unacceptable. When I first entered the Amazon as a missionary, this was my belief. Everyone needed Jesus and if they didn't believe in him, they were deservedly going to eternal torment. In my encounter with the Pirahãs, though I was uneasy, I realize now, ironically, that I was actually the dangerous one, the one who came with insufficient respect, with an ego-centric and ethno-centric view of my own rightness. How fortunate for me that this gentle people disabused me of so many of my silly beliefs. Though this years-long encounter with the Pirahãs was to improve my life globally, it certainly didn't seem that way at first.
During my first day among the Pirahãs I was taken by a young man to a fire by his hut. He pointed at a large rodent on the fire with its tongue still hanging out and a small pool of blood at the edge of the fire. The hair was burning off of the fresh kill. The young man uttered a then-unintelligible phrase: [b]Gí obáaʔáí kohoáipi gíisai?[b] Later I learned that this meant, "Do you know how to eat this?" And I also learned that if you don't want any offered food, you can simply say, "No, I don't know how to eat it." No one loses face. It is an easy, polite structure that allows you to avoid foods you don't want. Many other cultures, Western cultures for example, don't tend to be this polite. We often simply offer people things to eat and get offended if they refuse. Unlike among the Pirahãs, there is a more portent pressure in some Western cultures for a guest to eat whatever the host offers.
For almost all of us, we experience the world first through our mother. All that we touch, taste, hear, smell, see, and eventually come to know and understand begins with her and is mediated by her. As we develop of course we notice others close to our mother - our father, siblings, and others. But until our first experiences as individuals begin outside the home, our values, language, and ways of thinking all result from interactions with our mother and the select small group she is part of. These early apperceptions shape our subsequent lives. They lead not only to an individual sense of identity but also to a conception of what a normal identity is. This is all very comfortable. We learn early on that new behavior and new information entail effort. Why listen to dissonant jazz when the steady 4/4 beat of country or rock is familiar? Why eat haggis instead of pot roast? Comfort food is just food that requires no gaining of acquired tastes. Why learn another language? Why make friends of a different color, a different sexual orientation, or a different nationality? Why should a professor make friends with a cowboy? These efforts go against the biological preference for expending as little energy as possible and maintenance of the status quo. The work of learning about otherness is worthwhile, but this is not always obvious initially.
Linguists recognized long ago that the first rule of language is that we talk like who we talk with. And other behavioral scientists have realized that we eat like who we eat with, we create like who we think with, and we think like who we think with. Our earliest associations teach us not only how to think, create, talk, and eat, but to evaluate normal or correct thinking, talking, eating, and creating based on our narrow range of experiences. The crucial differences between others and our in-group are values, language, social roles, and knowledge structures. All else emerges from these, or so I have claimed in my own writings.[1] Each builds on the others as we learn them in the context of familiarity, a society of intimates (i.e. our family or our village). This leads to a conceptualization of our own identity. For example, I know in some way that I am Dan. Yet no one, not even ourselves, fully understands what it means to be ourselves. The construction of our identity through the familiar leads us to think of what is [i]not[i] us, [i]not[i] our family, [i]not[i] our norm. Inevitably, as our experience expands we meet others that do not fit neatly into our expectations. These are the others.
In 1990, Columbia University psychologist Peter Gordon accompanied me to several Pirahã villages in order to conduct a pilot study of language learning among Pirahã children. We set up cameras on a hut, in full view, with the permission of its occupants, and started filming. We both were in the film, talking to the adults about their beliefs and children's behavior. After we were done filming, we noticed something that we had not seen before, because it was happening behind us. A toddler, perhaps a year and half old, was playing with a sharp kitchen knife with a 30cm blade. He was swinging it nonchalantly, almost stabbing himself in his face, legs, and midsection; occasionally swinging it close to his mother's face and back. We initially assumed that the mother didn't see her toddler's dangerous toy. But then, as she was talking to another woman, the camera recorded the baby dropping the knife and starting to cry. Barely glancing backwards at her child, the mother casually leaned over, picked the knife up off the ground and handed it back to the baby, who returned gleefully to his quasi-stabbing of himself. This was a confrontation of values for Peter and myself, underscoring the otherness divide between the Pirahãs and us. Wasn't the Pirahã mother concerned about her child's welfare? She was indeed. But to the Pirahãs a cut or non-life-threatening injury is the price that occasionally must be paid in order to learn the skills necessary to survive in the jungle. Would a Dutch mother give her child a sharp knife as a toy, believing that any piercing of the child's flesh would be compensated for by its contribution to the child's development? Could she even respect this other (m)otherness - the otherness at the root of our lives?
When I first encountered the Pirahãs, I learned the language by pointing and giving the name in English. I would pick up a stick and say, "stick." The Pirahãs, most of them anyway, would give me the translation in their language. Then I might let the stick drop to the ground and say, "the stick falls to the ground" or, "I throw the stick away" or, "two sticks drop to the ground," and so on. I would transcribe the responses and say them back at least three times to the speaker, making sure I had them right. I was able to follow their translations and also write down their comments. But the occasional speaker would ignore my request and instead say something that turned out to be even more interesting. [b]Ɂaooí Ɂaohoaí sahaɁɁapaitíisoɁabaɁáígio hiahoaáti[b], which means: "Do not talk with a crooked head. Talk with a straight head." The Pirahãs wanted me to talk like a person, not like a bizarre foreigner. Like an American tourist in France, the Pirahãs could not understand why I couldn't speak their language. Then one day a missionary plane had brought us some supplies in the jungle. Among those was lettuce. I was so excited to have greens. The Pirahãs eat no greens and think of them as worm food. I was cheerfully eating lettuce from a bowl when a Pirahã friend walked up and said, "That's why you don't speak Pirahã yet. We don't eat leaves."
In other words, the Pirahã man believed that language emerges from culture as well as the entirety of our behavior as members of a society. This is a belief I have come to as well. They felt we could not learn their language at native level unless we became also part of their culture; and native level is what matters to them, there are no prizes for merely speaking their language intelligibly. This was against everything I had been taught about language in university courses, and it underscored the gap between them and me. Languages and cultures interact symbiotically, each affecting the other. Our sense of self and of society emerges from our enveloping culture and from the language and accents we hear most during our childhood development. The speed of our conversations and the structures of our interactions with others are formed in local communities of people like ourselves. The most comfortable conversations are with people who sound like you, put their phrases together as you do, and who reach similar conclusions.
There are many ways in which we confront otherness. Strangers are not always people. Nature is often a foreigner to most of us and we can learn by submitting ourselves to it. One reason that I annually read the American Henry David Thoreau's [i]Walden[i], my favorite book in all of American literature, is that Thoreau was so articulately different from me. That is irrelevant to Thoreau's account of his year alone. His year was a brilliant experiment. Thoreau did not remain at Walden. He returned to take up a fairly boring life as a handyman in the adjacent city of Concord, Massachusetts. Yet, the book he wrote is full brilliant observations based on the concepts of American Transcendentalism: the idea that people and nature are inherently good and that they are best when left alone by society and its institutions. Transcendentalism implies that as we come to know ourselves and remove the otherness of nature by experiencing it with all our senses. That our sense of oneness with others, as embodied in that very nature, grows. Thoreau's insights into his lessons from nature as the stranger - teach us about what it means to live as a human, to be independent, and to occupy a part of the natural world. Through Thoreau we encounter the strangeness of a solitary life in nature. Oneness with ourselves and nature and the others that are strange to us but are, like us, just part of nature requires slow work of contemplation and experience that at once embraces the otherness of nature. It demands working towards removing this sense of otherness and embracing it as part of the oneness that we seek with the world around us.
Otherness, as I see it, is the spark of original thought and greater appreciation of nature, while the sense of oneness is the paradoxical goal of encounters with otherness. We need a sense of oneness of ourselves with nature to clearly see otherness, and we need otherness to build a more encompassing and panoramic sense of self and oneness with the world. Thoreau ignored society to know himself. Most of us ignore ourselves to be part of society. Thoreau eloquently expressed the loss that, being carried away by the demands of others and society, brings us to our sense of self. We think of conformity rather than our own unique identity and so blur who we are as individuals. Thoreau captured this well when he exclaimed that, "the one is more important than the million." That is, it is only as we each individually appreciate our oneness with the world, nature, and the other as part of this oneness that we can achieve the best individual life, and thus society.
Thoreaus hut Walden stands still as light in the heart of the forest, a small cabin where one can sit and think and read and wonder about the reasons for living. Jungle nights were this light in my life, as I sat around campfires, talking in a language that was so hard for me to learn. Albert Camus said that the biggest mystery of philosophy is why not everyone commits suicide when honestly contemplating the futility of life. As a possible answer to his own question, Camus in his essay [i]The Myth of Sisyphus[i], held up poor Sisyphus[2] as an example of a good life. Sisyphus, after all, had an objective, one that entailed a measurable daily activity that always ended in the accomplishment of getting that rock up the hill. But Thoreau perspective rejects Camus's analysis. He saw no reason to count familiarity or predictability of social life, foods, or accomplishments as among the goals of life. They teach us little and change our behavior insignificantly. His example was that we learn most when we insert ourselves as aliens in new conceptual, cultural, and social environments (in his case, the absence of society). I am convinced that our lives become richer when they are less predictable. This is not to say that our lives are always predictable in the absence of the other. Otherness renders our expectations less fixed and requires more thinking, planning, and learning.
The Pirahãs would disagree. They believe that it is homogeneity that gives us comfort and keeps us strong physically and psychologically. Otherness vs. predictability, which is more desirable? In essence, we need both even if wed construct a greater sense of oneness that embraces the unexpected. The two greatest forces of preserving and constructing cultures are imitation and innovation. When our environments, culturally and physically, are constant, innovation is rarely useful. Like biological mutations, cognitive and cultural innovations are usually unsuccessful. The effort to invent will usually isolate us as strange and less successful than those who merely imitate. Failed innovation in a society that most values imitation emphasizes our own otherness and provides us with little advantage. As environments change such as the ecology of the Pleistocene that so shaped our Homo ancestors, climate change today, the shifting political boundaries, or the intrusion of others into our environment innovation becomes a more important force, providing new solutions to new problems that imitation alone is unable to provide. The Pirahãs live in an environment that has changed little over the centuries. They value conformity and imitation over innovation. Consequently their language has changed little over time. Records of their culture and language from the 18th century show a people identical to the people we encounter today, three centuries later.
In environments that, especially culturally, change at light speed we need to learn to think, speak, act differently, and innovate in multiple areas simultaneously as the changes we encounter transform our familiar environment into an other. Every day brings problems that we never faced before. Diversity of experiences and encounters with others inspire new ways of thinking and new forms of living. If we all look the same, talk the same, value the same things, paint the same pictures, dance the same dances, and hear the same music then we are simply imitators falling behind the challenges of our world. This applies to all of us whether we are hunter-gatherers in the Amazon or advertising agents in New York City. It blinds us to new forms of beauty. What we see around us, with the rise of anti-immigration political movements in Europe and the USA is, at least partially, a fear of otherness. Our preference is for conformity and imitation; our fear then itself arises from that preference in contrast to otherness and the greater steps towards an ever more encompassing oneness of the type that motivated Thoreau. However, the ultimate engine of innovation is otherness of people, food, environments, art, and culture it strengthens us and prospers us.
Our languages and cognitive abilities expand as we learn new vocabularies and new values by talking to people and experiencing their relationships to nature that are unlike our own. Human language emerged within the Homo line because it was the only creature to embrace otherness as to actively explore for the sake of exploration; to seek encounters with otherness. As Homo erectus sailed to islands beyond the horizon it invented symbols and language to cope with the greater need for communal efforts to expand experiences. Language change is an indication of cultural change (and cultural change will change language). Together, they amplify our species ability to innovate and survive. All that we are is the result of our human embrace of the other, the love of alterity that makes us distinct from all other creatures. Alterity is one of our greatest fears. And yet it should be our greatest treasure.
[footnotes]
1. For Everetts writings see among other titles: Everett, Daniel. Dont sleep, there are snakes: life and language in the Amazonian jungle (2008). Pantheon Books, New York.
2.The doomed soul in Greek mythology who had the repetitive job of daily pushing a huge stone up a hill only to see it roll down at the end of his efforts and leave him with the same task to perform the next day.

File diff suppressed because one or more lines are too long

@ -1,55 +0,0 @@
RESURGENCE | Isabelle Stengers
“We are the grandchildren of the witches you were not able to burn”
Tish Thawer
I will take this motto, which has flourished in recent protests in the United States, as the defiant cry of resurgence refusing to define the past as dead and buried. Not only were the witches killed all over Europe, but their memory has been buried by the many retrospective analyses which triumphantly concluded that their power and practices were a matter of imaginary collective construction affecting both the victims and the inquisitors. Eco-feminists have proposed a very different understanding of the burning times. They associate it with the destruction of rural cultures and their old rites, with the violent appropriation of the commons, with the rule of a law that consecrated the unquestionable rights of the owner, and with the invention of the modern workers who can only sell their labour-power on the market as a commodity. Listening to the defiant cry of the women who name themselves granddaughters of the past witches, I will go further. I will honour the vision which, since the Reagan era, has sustained reclaiming witches such as Starhawk, who associate their activism with the memory of a past earth-based religion of the goddess - who now returns. Against the ongoing academic critical judgement, I claim that the witches resurgence, their chant about the goddess return, and inseparably their return to the goddess, should not be taken as a regression.
Given the threatening unknown our future is facing, the question of academic judgements may seem like a rather futile one. Very few, including academics themselves, among those who disqualify the resurgence of witches as regressive, are effectively forced to think by this future, which the witches resolutely address. They are too busy living up to the relentless neoliberal demands which they have now to satisfy in order to survive. However, if there is something to be learned from the past, it may well be the way in which defending the victims of eradicative operations has so often deemed futile. In one way or another, these victims deserved their fate, or this fate was the price to be unhappily paid for progress. “Creative destructions,” economists croon. What we have now discovered is that these destructions come with cascading and interconnecting consequences. Worlds are destroyed and no such destruction is ever deserved. This is why I will address the academic world, which, in turns, is facing its own destruction. Probably, because it is the one I know best, also because of its specific responsibility in the formation of the generations which will have to make their way in the future.
Resurgence often refers to the reappearance of something defined as deleterious e.g. an agricultural pest or an epidemic vector after a seemingly successful operation of eradication. It may also refer to the reworlding of a landscape after a natural catastrophe or a devastating industrial exploitation. Today, such a reworlding is no longer understood by researchers in ecology in terms of the restoration of some stable equilibrium. Ecology has succeeded in freeing itself from the association of what we call “natural” with an ordered reality verifying scientific generalization. In contrast, academic judgements entailing the idea of regression still imply what has been called “The Ascent of Man:” “Man” irrevocably turning his back on past attachments, beliefs, and scruples, affirming his destiny of emancipation from traditions and the order of nature. Even critical humanities including feminist studies, whatever their deconstruction of the imperialist, sexist, and colonialist character of the “Ascent of Man” motto, still do not know how to disentangle themselves from the reference to a rational progress which opposes the possibility of taking seriously the contemporary resurgence of what does not conform to a materialist, that is, secularist, position.
If resurgence is a word for the future, it is because we may use it in the way the granddaughters of the witches do: as a challenge to eradicative operations, with which what we call materialism and secularism are irreducibly associated, are still going on today. It is quite possible to inherit the struggle against the oppressive character of religious institutions without forgetting what came together with materialism and secularism; the destruction of what opposed the transition to capitalism both in Europe and in the colonized world.[1] It is quite possible to resist the idea that what was destroyed is irrevocably lost and that we should have the courage to accept this loss. Certainly it cannot be a question of resurrecting the past. What eventually returns is also reinventing itself as it takes root in a new environment, challenging the way it defined its destruction as a fait accompli. In the academic environment, defining as a fait accompli the destruction of the witches might be the only true point of agreement uniting two antagonist powers: those who take as an “objective fact” that the magic they claimed to practice does not exist, and those who understand magic as a cultural-subjective construction belonging to the past.
[b]Getting rid of the Objectivity Subjectivity banners[b]
In the academic world eradicative operations are a routine, performed as methodology by researchers who see it as their duty to disentangle situations in order to define them. Some will extract information about human practices only and give (always subjective) meaning to these situations. Others will only look at (objective) facts, the value of which should be to hold independently of the way humans evaluate them. Doing so, these academics are not motivated by a quest for a relevant approach. Instead they act as mobilized armies of either objectivity or subjectivity, destroying complex situations that might have slowed them down, and would have forced them to listen to voices protesting against the way their method leaves unattended knowledge that matters to others.
That objectivity is a mobilizing banner is easy to demonstrate. It would have no power if it were taken in the strict experimental sense, where it means the obtaining of an exceptional and fragile achievement. An experimental objective fact is always extracted by active questioning. However, achieving objectivity then implies the creation of a situation that gives the thing questioned the very unusual power to authorize one interpretation that stands against any other possible one. Experimental objectivity is thus the name of an event, not the outcome of a method. Further, it is fragile because it is lost as soon as the experimental facts leave the lab the techno-social rarefied milieu required by experimental achievements and become ingredients in messy real world situations. When a claim of objectivity nevertheless sticks to those facts outside of the lab, it transforms this claim into a devastating operator. As for the kind of objectivity claimed by the sheer extraction of “data” or by the unilateral imposition of a method, it is a mere banner for conquest. On the other hand, holding the ground of subjectivity against the claims of objectivity, not so very often means empowering the muted voices that point to ignored or disqualified matters. Scientists trying to resist the pseudo-facts that colonialize their fields, caring for a difference to be made between good (relevant) and bad (abusive) sciences, have found no allies in critical sciences.[2] For those who are mobilized under the banner of subjectivity such scruples are ludicrous.
Academic events such as theoretical turns or scientific revolutions including the famous Anthropocene turn wont help to foster cooperative relations or care for collaborative situations. Indeed, such events typically signal an advance, usually the creative destruction of some dregs of common sense that are still contaminating what was previously accepted. In contrast, if there were to be resurgence it would signal itself by the demoralization of the perspective of advance. Demoralization is not however about the sad recognition of a limit to the possibility of knowing. It rather conveys the possibility of reducing the feeling of legitimacy that academic researchers have about their objectivity subjectivity methodologies. The signal of a process of resurgence might be researchers deserting their position when they recognise that subjectivity and objectivity are banners only, imperatives to distance themselves from concerned voices, protesting against the dismemberment of what they care for.
[b]Making common sense[b]
Addressing situations that are a matter of usually diverging concerns in a way that resists dismembering them, means betraying the mobilization for the advance of knowledge. The resurgence of cooperative and non-antagonist relations points towards situation-centred achievements. It requires that the situation itself be given the power to make those concerned think together, that is to induce a laborious, hesitant, and sometimes conflictual collective learning process of what each particular situation demands from those who approach it. This requirement is a practical one. If the eradicative power of the objective/subjective disjunction is to collapse and give way to a collective process, we need to question many academic customs. The ritual of presentations with PowerPoint authoritative bullet-point like arguments, for instance, perfectly illustrates the way situations are mobilized in a confrontational game, when truth is associated with the power of one position to defeat the others. In addition, we may need to find inspiration in ancient customs. New academic rituals may learn for instance from the way the traditional African palavers or the sweat lodge rituals in North American First Nations, these examples ward off one-way-truths and weaponized arguments.
Today, many activist groups share with reclaiming contemporary witches the reinvention of the art of consensus-making deliberation; giving the issue of deliberation the power to make common sense. What they learn to artfully design are resurgent ways to take care of the truth, to protect it from power games and relate it to an agreement - generated by a very deliberative process - that no party may appropriate it. They experiment with practices that generate the capacity to think and feel together. For the witches, convoking the goddess is giving room to the power of generativity. When they chant “She changes everything She touches, and everything She touches changes,” they honour a change that affects everything, but to which each affected being responds in its own way and not through some conversion [i]She[i] would command. Of course, such arts presuppose a shared trust in the possibility of generativity and we are free to suspect some kind of participatory role-playing. But refusing to participate is also playing a role. Holding to our own reasons demands that, when we feel we understand something about the others position, we suppress any temptation to doubt the kind of authority we confer to our reasons, as if such a hesitation was a betrayal of oneself. What if the art of transformative encounters cultivated the slow emergence and intensification of a mutual sensitivity? A mutual sensitivity that generates a change in the relationship that each entertains with their own reasons.
[b]Polyphonic song[b]
Curiously enough the resurgence of the arts of partnering around a situation, of composing and weaving together relevant but not authoritative reasons, echoes with the work of laboratory biologists. Against the biotechnological redefinition of biology they claim that the self-contained isolable organisms might be a dubious abstraction. What they study are not individual beings competing for having their interest prevail, but multiple specific assemblages between interdependent mutually sensitive partners weaving together capacities to make a living which belong to none of them separately. “We have never been individuals” write Scott Gilbert and his colleagues who are specialists in evolutionary developmental biology.[3] “It is the song that matters, not the singer,” adds Ford Doolittle, specialist in evolutionary microbiology, emphasizing the open character of assemblages, the composition of which (the singers) can change as long as the cooperative pattern, the polyphonic song, is preserved.[4] In other words, biologists now discover that both in the lab and in the field, they have to address cooperative worlds and beings whose ways of life emerge together with their participation in worlding compositions. One could be tempted to speak about a revolution in biology, but it can also be said that it is a heresy, a challenge against the mobilizing creed in the advance of science. Undoubtedly, biology is becoming more interesting, but it is losing its power to define a conquering research direction, since each “song”; each assemblage, needs to be deciphered as such. If modes of interdependence are what matters, extraction and isolation are no longer the royal road for progress. No theory - including complex or systemic ones - can define [i]a priori[i] its rightful object, that is, anticipate the way a situation should be addressed.
This “heretical” biology is apt to become an ally in the resurgence of cooperative relations between positive sciences and humanities at a time when we vitally need demobilization, relinquishing banners which justified our business-as-usual academic routines. I will borrow Anna Tsings challenging proposition, that our future might be about learning to live in “capitalist ruins.”[5] That is, in the ruins of the socio-technical organizational infrastructures that ensured our business-as-usual life. Ruins may be horrific, but Tsing recognises ruins also as a place for the resurgence and cultivation of an art of paying attention, which she calls the “art of noticing.” Indeed ruins are places where vigilance is required, where the relevance of our reasons is always at risk, where trusting the abstractions we entertain is inviting disaster. Ruins demand consenting to the precariousness of perspectives taken for granted, that stable capitalist infrastructures allowed us, or more precisely, allowed some of us. Tsing follows the wild Matsutake mushroom that thrives in ruined forests - forests ruined by natural catastrophes or by blind extraction, but also by projects meant to ensure a rational and sustainable exploitation, that discovered too late that what they had eliminated as prejudicial or expendable [I]did matter[I]. Devastation, the unravelling of the weaving that enables life, does not need to be willful, deliberate blindly trusting an idea may be sufficient. As for Tsing, she is not relying on overbearing ideas. What she notices is factual but does not allow to abstract what would objectively matter from situational entanglements, in this case articulated by the highly sought mushroom and its [i]symbionts[i] including humans. Facts, here, are not stepping stones for a conquering knowledge and do not oppose objectivity to subjectivity. What is noticed is first of all what appears as interesting or intriguing. It may be enlightening but the light is not defining the situation, it rather generates new possible ways of learning, of weaving new relations with the situation.
[b]We are the weavers and we are the woven[b]
If our future is in the ruins, the possibility of resurgence is the possibility of cultivating, of weaving again what has been unravelled in the name of “the Ascent of Man.” We are not to take ourselves for the weavers after having played the masters, or the assemblers after having glorified extraction. “We are the weavers and we are the web,” sing the contemporary witches who know and cultivate generativity.[6] The arts of cultivation are arts of interdependence, of consenting to the precariousness of lives involved in each other. Those who cultivate do their part, trusting that others may do their own but knowing that what they aim at depends on what cannot be commanded or explained. Those who claim to explain growth or weaving are often only telling about the preparations required by what they have learned to foster, or they depend on the selection of what can be obtained and mobilized off-ground in rarefied, reproducible environments. In the ruins of such environments, resurgence is not a return to the past, rather the challenge to learn again what we were made to forget but what some have refused to forget.
When the environmental, social and climate justice, multiracial [i]Alliance of alliances[i], led by women, gender oppressed people of colour, and Indigenous Peoples, claim that “it takes roots to grow resistance,” or else, “to weather the storm,” they talk about the need to name and honour what sustains them and what they struggle for.[7] When those who try to revive the ancient commons, which were destroyed all over the world in the name of property rights, claim that there is “no commons without commoning,” that is, without learning how to “think like commoners,” they talk about the need to not only reclaim what was privatized but to recover the capacity to be involved with others in the ongoing concern and care for their maintenance of the commons.[8] Resurgence is a word for the future as it confronts us with what William James called a genuine option concerning this future. Daring to trust, as do todays activists, in an uncertified, indeed improbable, not to say speculative, possibility of reclaiming a future worth living and dying for, may seem ludicrous. But the option cannot be avoided because today there is no free standing place outside of the alternative: condescending skepticism, refusing to opt or opting against resurgence, are equivalent.
Such an option has no privileged ground. Neither the soil sustaining the roots nor the mutually involved of interdependent partners composing a commons, can be defined in abstraction from the always-situated learning process of weaving relations that matter. These are generative processes liable to include new ways of being with new concerns. New voices enter a song, both participating in this song and contributing to reinvent it. For us academics it does not mean giving up scientific facts, critical attention, or critical concern. It demands instead that such facts, attention, and concerns are liable to participate in the song, even if it means adding new dimensions that complicate it. As such, even scientific facts thus communicate with what William James presented as the “great question” associated with a pluriverse in the making: “does it, with our additions, rise or fall in value? Are the additions worthy or unworthy?”[9] Such a question is great because it obviously cannot get a certified answer but demands that we do accept that what we add makes a difference in the world and that we have to answer for the manner of this difference.
Footnotes
1. Silvia Federici, [i]Caliban and the Witch. Women, the Body and Primitive Accumulation[i]. Brooklyn, NY: Autonomedia, 2004. 2. Rose, Hilary. "My Enemys Enemy Is, Only Perhaps, My Friend." [i]Social Text[i], no. 45 (1996): 61-80. doi:10.2307/466844. 3. Gilbert, Scott F., Jan Sapp, and Alfred I. Tauber. "A Symbiotic View of Life: We Have Never Been Individuals." [i]The Quarterly Review of Biology[i] 87, no. 4 (2012): 325-41. doi:10.1086/668166. 4. Doolittle, W. Ford, and Austin Booth. "Its the Song, Not the Singer: An Exploration of Holobiosis and Evolutionary Theory." [i]Biology & Philosophy[i] 32, no. 1 (2016): 5-24. doi:10.1007/s10539-016-9542-2. 5. Tsing, Anna Lowenhaupt. [i]The Mushroom at the End of the World: On the Possibility of Life in Capitalist Ruins[i]. Princeton, NJ: Princeton University Press, 2015. 6. Starhawk. [i]Dreaming the Dark: Magic, Sex, and Politics[i]. Boston, MA: Beacon Press, 1997. 225. 7. “It Takes Roots An Alliance of Alliances." It Takes Roots. http://ittakesroots.org/. 8. Bollier, David. [i]Think like a Commoner: A Short Introduction to the Life of the Commons[i]. Gabriola Island, BC, Canada: New Society Publishers, 2014. 9. William, James. [i]Pragmatism: A New Name for Some Old Ways of Thinking[i]. New York, NY: Longman Green and Co., 1907. 98.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

@ -11,9 +11,21 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"execution_count": 1,
"metadata": {},
"outputs": [
{
"ename": "ModuleNotFoundError",
"evalue": "No module named 'nltk'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-1-1d2184025e54>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mnltk\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'nltk'"
]
}
],
"source": [
"import nltk"
]

@ -1,433 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Wordnet"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
"import nltk\n",
"from nltk.corpus import wordnet"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# You only need to run this once\n",
"# nltk.download('wordnet')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Access to hardware functions is limited not only through the software application, but through the syntax the software application may use for storing and transmitting the information it processes.\n",
"\n"
]
}
],
"source": [
"lines = open('../txt/language.txt').readlines()\n",
"sentence = random.choice(lines)\n",
"print(sentence)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"----------\n",
"word: Access\n",
"synset: Synset('entree.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('entree.n.02')>\n",
"synset: Synset('access.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('access.n.02')>\n",
"synset: Synset('access.n.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('access.n.03')>\n",
"synset: Synset('access.n.04')\n",
"lemmas: <bound method Synset.lemma_names of Synset('access.n.04')>\n",
"synset: Synset('access.n.05')\n",
"lemmas: <bound method Synset.lemma_names of Synset('access.n.05')>\n",
"synset: Synset('access.n.06')\n",
"lemmas: <bound method Synset.lemma_names of Synset('access.n.06')>\n",
"synset: Synset('access.v.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('access.v.01')>\n",
"synset: Synset('access.v.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('access.v.02')>\n",
"----------\n",
"word: to\n",
"----------\n",
"word: hardware\n",
"synset: Synset('hardware.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('hardware.n.01')>\n",
"synset: Synset('hardware.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('hardware.n.02')>\n",
"synset: Synset('hardware.n.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('hardware.n.03')>\n",
"----------\n",
"word: functions\n",
"synset: Synset('function.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('function.n.01')>\n",
"synset: Synset('function.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('function.n.02')>\n",
"synset: Synset('function.n.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('function.n.03')>\n",
"synset: Synset('function.n.04')\n",
"lemmas: <bound method Synset.lemma_names of Synset('function.n.04')>\n",
"synset: Synset('function.n.05')\n",
"lemmas: <bound method Synset.lemma_names of Synset('function.n.05')>\n",
"synset: Synset('affair.n.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('affair.n.03')>\n",
"synset: Synset('routine.n.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('routine.n.03')>\n",
"synset: Synset('function.v.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('function.v.01')>\n",
"synset: Synset('serve.v.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('serve.v.01')>\n",
"synset: Synset('officiate.v.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('officiate.v.02')>\n",
"----------\n",
"word: is\n",
"synset: Synset('be.v.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('be.v.01')>\n",
"synset: Synset('be.v.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('be.v.02')>\n",
"synset: Synset('be.v.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('be.v.03')>\n",
"synset: Synset('exist.v.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('exist.v.01')>\n",
"synset: Synset('be.v.05')\n",
"lemmas: <bound method Synset.lemma_names of Synset('be.v.05')>\n",
"synset: Synset('equal.v.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('equal.v.01')>\n",
"synset: Synset('constitute.v.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('constitute.v.01')>\n",
"synset: Synset('be.v.08')\n",
"lemmas: <bound method Synset.lemma_names of Synset('be.v.08')>\n",
"synset: Synset('embody.v.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('embody.v.02')>\n",
"synset: Synset('be.v.10')\n",
"lemmas: <bound method Synset.lemma_names of Synset('be.v.10')>\n",
"synset: Synset('be.v.11')\n",
"lemmas: <bound method Synset.lemma_names of Synset('be.v.11')>\n",
"synset: Synset('be.v.12')\n",
"lemmas: <bound method Synset.lemma_names of Synset('be.v.12')>\n",
"synset: Synset('cost.v.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('cost.v.01')>\n",
"----------\n",
"word: limited\n",
"synset: Synset('express.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('express.n.02')>\n",
"synset: Synset('restrict.v.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('restrict.v.03')>\n",
"synset: Synset('limit.v.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('limit.v.02')>\n",
"synset: Synset('specify.v.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('specify.v.02')>\n",
"synset: Synset('limited.a.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('limited.a.01')>\n",
"synset: Synset('circumscribed.s.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('circumscribed.s.01')>\n",
"synset: Synset('limited.s.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('limited.s.03')>\n",
"synset: Synset('limited.s.04')\n",
"lemmas: <bound method Synset.lemma_names of Synset('limited.s.04')>\n",
"synset: Synset('limited.s.05')\n",
"lemmas: <bound method Synset.lemma_names of Synset('limited.s.05')>\n",
"synset: Synset('limited.s.06')\n",
"lemmas: <bound method Synset.lemma_names of Synset('limited.s.06')>\n",
"synset: Synset('limited.s.07')\n",
"lemmas: <bound method Synset.lemma_names of Synset('limited.s.07')>\n",
"----------\n",
"word: not\n",
"synset: Synset('not.r.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('not.r.01')>\n",
"----------\n",
"word: only\n",
"synset: Synset('lone.s.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('lone.s.03')>\n",
"synset: Synset('alone.s.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('alone.s.03')>\n",
"synset: Synset('merely.r.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('merely.r.01')>\n",
"synset: Synset('entirely.r.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('entirely.r.02')>\n",
"synset: Synset('only.r.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('only.r.03')>\n",
"synset: Synset('only.r.04')\n",
"lemmas: <bound method Synset.lemma_names of Synset('only.r.04')>\n",
"synset: Synset('only.r.05')\n",
"lemmas: <bound method Synset.lemma_names of Synset('only.r.05')>\n",
"synset: Synset('only.r.06')\n",
"lemmas: <bound method Synset.lemma_names of Synset('only.r.06')>\n",
"synset: Synset('only.r.07')\n",
"lemmas: <bound method Synset.lemma_names of Synset('only.r.07')>\n",
"----------\n",
"word: through\n",
"synset: Synset('done.s.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('done.s.01')>\n",
"synset: Synset('through.s.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.s.02')>\n",
"synset: Synset('through.r.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.r.01')>\n",
"synset: Synset('through.r.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.r.02')>\n",
"synset: Synset('through.r.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.r.03')>\n",
"synset: Synset('through.r.04')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.r.04')>\n",
"synset: Synset('through.r.05')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.r.05')>\n",
"----------\n",
"word: the\n",
"----------\n",
"word: software\n",
"synset: Synset('software.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('software.n.01')>\n",
"----------\n",
"word: application,\n",
"----------\n",
"word: but\n",
"synset: Synset('merely.r.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('merely.r.01')>\n",
"----------\n",
"word: through\n",
"synset: Synset('done.s.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('done.s.01')>\n",
"synset: Synset('through.s.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.s.02')>\n",
"synset: Synset('through.r.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.r.01')>\n",
"synset: Synset('through.r.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.r.02')>\n",
"synset: Synset('through.r.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.r.03')>\n",
"synset: Synset('through.r.04')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.r.04')>\n",
"synset: Synset('through.r.05')\n",
"lemmas: <bound method Synset.lemma_names of Synset('through.r.05')>\n",
"----------\n",
"word: the\n",
"----------\n",
"word: syntax\n",
"synset: Synset('syntax.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('syntax.n.01')>\n",
"synset: Synset('syntax.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('syntax.n.02')>\n",
"synset: Synset('syntax.n.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('syntax.n.03')>\n",
"----------\n",
"word: the\n",
"----------\n",
"word: software\n",
"synset: Synset('software.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('software.n.01')>\n",
"----------\n",
"word: application\n",
"synset: Synset('application.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('application.n.01')>\n",
"synset: Synset('application.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('application.n.02')>\n",
"synset: Synset('application.n.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('application.n.03')>\n",
"synset: Synset('application.n.04')\n",
"lemmas: <bound method Synset.lemma_names of Synset('application.n.04')>\n",
"synset: Synset('lotion.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('lotion.n.02')>\n",
"synset: Synset('application.n.06')\n",
"lemmas: <bound method Synset.lemma_names of Synset('application.n.06')>\n",
"synset: Synset('application.n.07')\n",
"lemmas: <bound method Synset.lemma_names of Synset('application.n.07')>\n",
"----------\n",
"word: may\n",
"synset: Synset('may.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('may.n.01')>\n",
"synset: Synset('whitethorn.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('whitethorn.n.01')>\n",
"----------\n",
"word: use\n",
"synset: Synset('use.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('use.n.01')>\n",
"synset: Synset('function.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('function.n.02')>\n",
"synset: Synset('use.n.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('use.n.03')>\n",
"synset: Synset('consumption.n.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('consumption.n.03')>\n",
"synset: Synset('habit.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('habit.n.02')>\n",
"synset: Synset('manipulation.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('manipulation.n.01')>\n",
"synset: Synset('use.n.07')\n",
"lemmas: <bound method Synset.lemma_names of Synset('use.n.07')>\n",
"synset: Synset('use.v.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('use.v.01')>\n",
"synset: Synset('use.v.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('use.v.02')>\n",
"synset: Synset('use.v.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('use.v.03')>\n",
"synset: Synset('use.v.04')\n",
"lemmas: <bound method Synset.lemma_names of Synset('use.v.04')>\n",
"synset: Synset('practice.v.04')\n",
"lemmas: <bound method Synset.lemma_names of Synset('practice.v.04')>\n",
"synset: Synset('use.v.06')\n",
"lemmas: <bound method Synset.lemma_names of Synset('use.v.06')>\n",
"----------\n",
"word: for\n",
"----------\n",
"word: storing\n",
"synset: Synset('store.v.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('store.v.01')>\n",
"synset: Synset('store.v.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('store.v.02')>\n",
"----------\n",
"word: and\n",
"----------\n",
"word: transmitting\n",
"synset: Synset('transmission.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('transmission.n.01')>\n",
"synset: Synset('convey.v.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('convey.v.03')>\n",
"synset: Synset('impart.v.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('impart.v.03')>\n",
"synset: Synset('air.v.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('air.v.03')>\n",
"synset: Synset('transmit.v.04')\n",
"lemmas: <bound method Synset.lemma_names of Synset('transmit.v.04')>\n",
"----------\n",
"word: the\n",
"----------\n",
"word: information\n",
"synset: Synset('information.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('information.n.01')>\n",
"synset: Synset('information.n.02')\n",
"lemmas: <bound method Synset.lemma_names of Synset('information.n.02')>\n",
"synset: Synset('information.n.03')\n",
"lemmas: <bound method Synset.lemma_names of Synset('information.n.03')>\n",
"synset: Synset('data.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('data.n.01')>\n",
"synset: Synset('information.n.05')\n",
"lemmas: <bound method Synset.lemma_names of Synset('information.n.05')>\n",
"----------\n",
"word: it\n",
"synset: Synset('information_technology.n.01')\n",
"lemmas: <bound method Synset.lemma_names of Synset('information_technology.n.01')>\n",
"----------\n",
"word: processes.\n"
]
}
],
"source": [
"words = sentence.split()\n",
"for word in words:\n",
" print('----------')\n",
" print('word:', word)\n",
" for synset in wordnet.synsets(word):\n",
" print('synset:', synset)\n",
" print('lemmas:', synset.lemma_names)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<bound method Lemma.name of Lemma('car.n.01.car')>\n",
"<bound method Lemma.name of Lemma('car.n.02.car')>\n",
"<bound method Lemma.name of Lemma('car.n.03.car')>\n",
"<bound method Lemma.name of Lemma('car.n.04.car')>\n",
"<bound method Lemma.name of Lemma('cable_car.n.01.car')>\n"
]
}
],
"source": [
"for lemma in wordnet.lemmas('car'):\n",
" print(lemma.name)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<bound method Synset.examples of Synset('car.n.01')>\n",
"<bound method Synset.examples of Synset('car.n.02')>\n",
"<bound method Synset.examples of Synset('car.n.03')>\n",
"<bound method Synset.examples of Synset('car.n.04')>\n",
"<bound method Synset.examples of Synset('cable_car.n.01')>\n"
]
}
],
"source": [
"for synset in wordnet.synsets('car'):\n",
" print(synset.examples)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save