1 of 41

Slide Notes

DownloadGo Live

I Never Metaphor I Didn't Like

Published on May 13, 2019

Congnitive Linguistics can provide a better insight into how we organize and think about code. Being objective about it can improve your development process no matter which aspect of the programming community you are in.

PRESENTATION OUTLINE

I Never Metaphor I Didn't Like

How Cognitive Linguistics Can Help You Be A (More) Bad-Ass Developer

"I think that I shall never see...

A poem as lovely as a directed acyclic graph" – Joyce Kilmer, Trees (not really).

Metaphor Basics

I'm JUST GOING TO SUMMARIZE SEVERAL DECADES OF COGNITIVE SCIENCE iN TO A ONE HOUR TALK ... NBD
Photo by drubuntu

Metaphor BASICS

  • More than poetic or flowery language.
  • A core feature of cognition
  • Enables us to think and communicate about things for which we have no direct bodily experience

Metaphor Basics - Three Parts

  • Conceptual Blend
  • Compression
  • Semantic Frame
Photo by Mihai Surdu

Conceptual BLENDS

  • Input Spaces
  • Generic Space
  • Blended Space

Input Space

Photo by JD Hancock

Input Space

Generic Space

Photo by hoepersc

Blended Space

When Two ore more input Spaces are Compressed Together

A Blended space is created
Photo by Tim Marshall

when Aspects of the the input Spaces are Fused

Compression Happens
Photo by Hortlander

Fusible Mappings are "Vital Relations"

  • Identity
  • Part-Whole
  • Change
  • Intentionality
  • Uniqueness
  • (Many MANY More)

Metonomies Make Compressions Obvious

  • Washington and Moscow at odds on Ukraine
  • Obama and Putin Spar over gas pipelin
Photo by Richard Lee

Compression Example

Untitled Slide

Compression Example

  • Identity compressed to Uniqueness (Same Animal)
  • Time (vast scale compressed to "walking down a path")
  • Millions of years of evolution, countless intermediate species, innumerable individuals, compressed to a story at a human scale.

Semantic Frames

Semantic Frames

  • Blended Spaces which hold what we know about a given domain
  • Entities — Relationships — Actions
  • Relationships
  • Actions
  • Moral Judgements, sensory-motor memories, emotional attachment
  • Closely related to categorization
  • Constantly evolving based on new experience

Frame Examples

Photo by pine watt

A "Meal" Frame

Frame Examples
Photo by Kody Dahl

A "Commercial Transaction" Frame

Frame Examples
Photo by spanaut

A "Restaurant" Frame

Blended Frame Example
Photo by Kevin Curtis

Metaphor

Photo by tj.blackwell

When two domain frames are compressed into a blended space in which aspects of the target domain are used to conceptualize the source domain

(or, auf Anglish...)
When you use something you know deeply to get a handle on something you know less well (or that doesn't yet exist, or is more abstract)

Primary Metaphors

  • MORE is UP
  • WARMTH is AFFECTION
  • KNOWING is SEEING
  • IMPORTANT is BIG
  • HAPPY is UP
  • UNDERSTANDING is GRASPING
  • INTIMACY is CLOSENESS
  • DIFFICLTIES are BURDENS
  • ORGANIZATION is PHYSICAL STRUCTURE
  • TIME is MOTION
  • RELATIONSHIPS are ENCLOSURES
  • CATEGORIES are CONTAINERS
  • (And Many More!

"The greatest thing by far is to be a master of metaphor.
It is the one thing that cannot. be learned from others; it is also a sign of genuis, since a good metaphor implies and eye for resemblance." – Aristotle, De Poetica, 322 B.C.

Photo by edenpictures

Metaphor in Software Development

User Interface / User Experience

  • What most people think of when they think of metaphor in a computing context.
  • Iconography, desktops, windows, and trashcans are, like poetry, only the most visible use of metaphor.
  • The UNIX command-line filesystem nterface depends deeply on primary metaphors of containment and locality.
  • GUI metaphors go wrong when their conceptual blends contain elements that do no meaningful compression. Laying out a calendar app like a day planner is a good compression ... giving it a leather cover is not
Photo by Roger Schultz

GUI metaphors go wrong when their conceptual blends contain elements that do no meaningful compression. Laying out a calendar app like a day planner is a good compression ... giving it a leather cover is not

Project Management

  • A task is a journey
  • "We are making good progress"
  • "We just made it to our latest milestone"
  • "I just hit a major roadblock in the database code"
  • "We need to get things back on track"
  • Agile Programming is all about picking the metaphors (Scrum, Sprint, Bottleneck, Impediment, etc)
Photo by be creator

Application Architecture / API Design

  • Most work is analogical ("automate this business process")
  • Even when mimicking an existing process, thinking metaphorically can expand your frame of reference beyond data and transactions.
Photo by ottonassar

CASE STUDY: Oakley

  • Nearly 100 regional offices, worldwide.
  • Each office had it's own procedures for collecting and storing customer contact information.
  • Corporate wanted a normalized, dependable contact list for all registered customers.
Photo by gomattolson

CASE STUDY: Oakley

  • Consternation
  • Panic
  • Frustration
  • "I might as well be panning for freakin' gold..."
Photo by jasonbolonski

"You know, it is sorta like Panning for Gold..."

Photo by morberg

Cognitive Context

  • Had Recently read George Lakoff's "Women, Fire, and Dangerous Things"
  • Introduces many of the ideas behind this talk.
  • Ideas further explored in Metaphors We Live By.
  • Had recently watched John Huston's The Treasure of Sierra Madre"
  • A tale of greed and danger among miners prospecting for gold in the Mexican mountains.
  • Lots of montages of mining work
Photo by rauter25

"Data Mining"

  • "Diggers" – Scripts to pull customer data from individual offices.
  • "Hopper" – Local storage for raw records
  • "Sluice" – Event driven record processing pipeline.
  • "Screens/Riffles" – Various filters to clean up / throw out erroroneous records
  • "Assay" – Validation and noramlization of filtered records via 3rd party
  • "Vault" – Database storage for known-good records
Photo by Kevglobal

Lessons Learned

  • Metaphor is imprecise (but that's okay!)
  • Gave us an easy way to get our arms around a complex problem.
  • Gave us a ready-made application structure (System workflow / Entity Names / Class hierarchy)
  • In sort, applying a solution from one domain frame to a problem in a less well known domain brought the problem down to a human scale and made us more productive
Photo by Ed Yourdon

TIPS, TRICKS, and HACKS

  • Remember that you're already constantly using metaphoric reasoning, even when it's not obvious or intentional.
  • Set time aside to let your mind wander about the problem.
  • Don't try to force it. Associative reasoning isn't suspectible to grint-your-teeth-and-get-er-done.
  • If you get stuck, try looking for vital relations. "This has an $x what else has an $x?")
  • Indulge your curiosity. You never know what obscure corner an "AHA!" might jump out from.
  • Puns, puns, and moar puns. They help keep your blending faculties quick and supple.
  • You can't unsee this talk. Expect to start seeing metaphoric language everywhere
Photo by MiriaGrunick

Questions?

Photo by Bryan Minear