Slide 1

Slide 1 text

Conceptual Spaces A confirmation of old intuitions from programming languages & software development practices @cyriux

Slide 2

Slide 2 text

This tool is useful. No idea why.

Slide 3

Slide 3 text

70+ years of Programming language evolutions… Some features became ubiquitous.

Slide 4

Slide 4 text

Ubiquitous features of Programming Languages

Slide 5

Slide 5 text

naming with natural language

Slide 6

Slide 6 text

enum basic types, primitives + operations

Slide 7

Slide 7 text

Classes Records Tables Prototypes Product types grouping related things

Slide 8

Slide 8 text

navigable relations

Slide 9

Slide 9 text

classification, partitioning of cases

Slide 10

Slide 10 text

multiple models, by context (purpose)

Slide 11

Slide 11 text

multiple models, by context (purpose)

Slide 12

Slide 12 text

“At Amazon, what a book is for you?” •Catalog: Picture, title, authors, rating, format (ebook or paper), category •Recommandation: List of books often bought together with it •Shipping: Dimensions, weight, international restrictions due to content •Shopping cart: Price, discount eligible •Customer review: List of (rating, review, review rating) •Book Search: title, isbn, authors multiple models, by context (purpose)

Slide 13

Slide 13 text

Meanwhile in academia…

Slide 14

Slide 14 text

Metaphors All The Things! Conceptual Spaces FTW!

Slide 15

Slide 15 text

The key features of Conceptual Spaces

Slide 16

Slide 16 text

language-driven

Slide 17

Slide 17 text

Quality Dimensions e.g. Kinship Metric structure Cyclic group Boolean Dead Alive

Slide 18

Slide 18 text

Biological Shapes analysis of shapes by Marr and Nishihara (1978) cylinder = [length width]T relative angle = [ ]T relative position = [a b]T Meronomic relations (part-whole)

Slide 19

Slide 19 text

color = [brightness intensity hue]T taste = [sweet bitter saline sour]T Basic Domains (grouping dimensions ) Color domain Taste Domains

Slide 20

Slide 20 text

emotion = [valency arousal]T [] emotion = [valency arousal dominance]T Russell's circumplex Lövheim's emotion cube Emotions Basic Domains (grouping dimensions )

Slide 21

Slide 21 text

Concept = Product of Convex Sub-Regions https://golem.ph.utexas.edu/category/2018/03/cognition_convexity_and_catego.html Basic Domains (grouping dimensions ) A banana instance

Slide 22

Slide 22 text

Voronoï tesselation to classify things prototypical exemplar (black crossses) change of Voronoï tesselation

Slide 23

Slide 23 text

car weight engine power prototypical exemplar (black dots) Voronoï Tesselation

Slide 24

Slide 24 text

Convexity, Monotony, Continuity

Slide 25

Slide 25 text

Prominence (weighted dimensions by context) ”For a purpose, weights on each dimensions to focus the most useful and ignore the other.”

Slide 26

Slide 26 text

“At Amazon, what a book is for you?” •Catalog: Picture, title, authors, rating, format (ebook or paper), category •Recommandation: List of books often bought together with it •Shipping: Dimensions, weight, international restrictions due to content •Shopping cart: Price, discount eligible •Customer review: List of (rating, review, review rating) •Book Search: title, isbn, authors Prominence (weighted dimensions by context)

Slide 27

Slide 27 text

Programming languages Naming everything with identifiers Basic dimensions: primitives, collections, enums Grouping of dimensions: Struct, Tables, Classes, Prototypes, Product types Navigable Relations: Associations, pointers, references, foreign keys) Bounded Contexts: microservices, modular monolith, no more one unified model but one model by context Partitioning, categorizing: IF statements on values, inheritance, ML Conceptual Spaces 1-to-1

Slide 28

Slide 28 text

Programming languages Naming everything with identifiers Basic dimensions: primitives, collections, enums Grouping of dimensions: Struct, Tables, Classes, Prototypes, Product types Navigable Relations: Associations, pointers, references, foreign keys) Bounded Contexts: microservices, modular monolith, no more one unified model but one model by context Partitioning, categorizing: IF statements on values, inheritance, ML Language-driven Quality dimensions: line, bounded line, circle… Grouping of dimensions: Domain, Set of quality dimensions Navigable Relations: kinship relations, meronomic relations (part-whole) Bounded Contexts: Domains in an object category are weighted by their prominence in a [usage/finality] context Partitioning, categorizing: Voronoï tesselation Conceptual Spaces 1-to-1

Slide 29

Slide 29 text

Programming languages Naming everything with identifiers Basic dimensions: primitives, collections, enums Grouping of dimensions: Struct, Tables, Classes, Prototypes, Product types Navigable Relations: Associations, pointers, references, foreign keys) Bounded Contexts: microservices, modular monolith, no more one unified model but one model by context Partitioning, categorizing: IF statements on values, inheritance, ML Language-driven Quality dimensions: line, bounded line, circle… Grouping of dimensions: Domain, Set of quality dimensions Navigable Relations: kinship relations, meronomic relations (part-whole) Bounded Contexts: Domains in an object category are weighted by their prominence in a [usage/finality] context Partitioning, categorizing: Voronoï tesselation Conceptual Spaces 1-to-1 Sounds like our Programming Language inventors got it right after all!

Slide 30

Slide 30 text

Perhaps our Programming Language features were not that arbitrary.

Slide 31

Slide 31 text

Our capacity to think the world is limited to the same set of basic constructs that mathematicians have been inventorying for centuries but perhaps it’s unlikely we discover radically new way to program then.

Slide 32

Slide 32 text

Programming Languages Conceptual Spaces Still, the remaining gap suggests potential new features for Programming Languages…

Slide 33

Slide 33 text

★ understand the human language much more directly (native interpretation of common metaphors & metonymies) ★ support more built-in basic topologies (bounded numbers, cyclic group, whole-part…), ★ support progressive/incremental refinements of concepts, ★ … all that through much cheaper computations than our current ML. For Programming Languages that would… Potential from Conceptual Spaces

Slide 34

Slide 34 text

BUY THESE BOOKS!

Slide 35

Slide 35 text

@cyriux BUY MY BOOK!

Slide 36

Slide 36 text

arolla.fr @arollafr

Slide 37

Slide 37 text

Transformations

Slide 38

Slide 38 text

Thank you! @cyriux