The Developing Mind: A Philosophical Introduction
Butterfill, Stephen A. (2020). The Developing Mind: A Philosophical Introduction.
cursor: pointer;
}
/* Base CSS END */
</style>
<style type="text/css">
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab filetype=css: */
/*!
* Fancy styles for pdf2htmlEX
* Copyright 2012,2013 Lu Wang <[email protected]>
* https://github.com/coolwanglu/pdf2htmlEX/blob/master/share/LICENSE
*/
@keyframes fadein { from { opacity:0;} to { opacity:1;} }
@-webkit-keyframes fadein { from { opacity:0;} to { opacity:1;} }
@keyframes swing {
0% { transform: rotate(0deg); }
10% { transform: rotate(0deg); }
90% { transform: rotate(720deg); }
100%{ transform: rotate(720deg); }
}
@-webkit-keyframes swing {
0% { -webkit-transform: rotate(0deg); }
10% { -webkit-transform: rotate(0deg); }
90% { -webkit-transform: rotate(720deg); }
100%{ -webkit-transform: rotate(720deg); }
}
@media screen {
#sidebar {
background-color:#2f3236;
/* modified from http://philbit.com/svgpatterns/#crossstripes */
background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0IiBoZWlnaHQ9IjQiPgo8cmVjdCB3aWR0aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSIjNDAzYzNmIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDBMNCA0Wk00IDBMMCA0WiIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2U9IiMxZTI5MmQiPjwvcGF0aD4KPC9zdmc+");
}
#outline {
font-family:Georgia,Times,"Times New Roman",serif;
font-size:13px;
margin:2em 1em;
}
#outline ul {
padding:0;
}
#outline li {
list-style-type:none;
margin:1em 0;
}
#outline li > ul {
margin-left: 1em;
}
#outline a,
#outline a:visited,
#outline a:hover,
#outline a:active {
line-height:1.2;
color:#e8e8e8;
text-overflow:ellipsis;
white-space:nowrap;
text-decoration:none;
display:block;
overflow:hidden;
outline:0;
}
#outline a:hover {
color:rgb(0,204,255);
}
.pf {
margin: 13px auto;
box-shadow: 1px 1px 3px 1px #333;
/* Needed by IE to make box-shadow works * https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow */
border-collapse: separate;
}
.pc.opened { /* used by pdf2htmlEX.js, to show/hide pages */
-webkit-animation: fadein 100ms;
animation: fadein 100ms;
}
.loading-indicator.active {
/*
* use 0.01s instead of 0s,
* since YUI Compressor will change 0s to 0,
* which is not recognized by Firefox
*/
-webkit-animation: swing 1.5s ease-in-out 0.01s infinite alternate none;
animation: swing 1.5s ease-in-out 0.01s infinite alternate none;
}
.checked {
background: no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goQDSYgDiGofgAAAslJREFUOMvtlM9LFGEYx7/vvOPM6ywuuyPFihWFBUsdNnA6KLIh+QPx4KWExULdHQ/9A9EfUodYmATDYg/iRewQzklFWxcEBcGgEplDkDtI6sw4PzrIbrOuedBb9MALD7zv+3m+z4/3Bf7bZS2bzQIAcrmcMDExcTeXy10DAFVVAQDksgFUVZ1ljD3yfd+0LOuFpmnvVVW9GHhkZAQcxwkNDQ2FSCQyRMgJxnVdy7KstKZpn7nwha6urqqfTqfPBAJAuVymlNLXoigOhfd5nmeiKL5TVTV+lmIKwAOA7u5u6Lped2BsbOwjY6yf4zgQQkAIAcedaPR9H67r3uYBQFEUFItFtLe332lpaVkUBOHK3t5eRtf1DwAwODiIubk5DA8PM8bYW1EU+wEgCIJqsCAIQAiB7/u253k2BQDDMJBKpa4mEon5eDx+UxAESJL0uK2t7XosFlvSdf0QAEmlUnlRFJ9Waho2Qghc1/U9z3uWz+eX+Wr+lL6SZfleEAQIggA8z6OpqSknimIvYyybSCReMsZ6TislhCAIAti2Dc/zejVNWwCAavN8339j27YbTg0AGGM3WltbP4WhlRWq6Q/btrs1TVsYHx+vNgqKoqBUKn2NRqPFxsbGJzzP05puUlpt0ukyOI6z7zjOwNTU1OLo6CgmJyf/gA3DgKIoWF1d/cIY24/FYgOU0pp0z/Ityzo8Pj5OTk9PbwHA+vp6zWghDC+VSiuRSOQgGo32UErJ38CO42wdHR09LBQK3zKZDDY2NupmFmF4R0cHVlZWlmRZ/iVJUn9FeWWcCCE4ODjYtG27Z2Zm5juAOmgdGAB2d3cBADs7O8uSJN2SZfl+WKlpmpumaT6Yn58vn/fs6XmbhmHMNjc3tzDGFI7jYJrm5vb29sDa2trPC/9aiqJUy5pOp4f6+vqeJ5PJBAB0dnZe/t8NBajx/z37Df5OGX8d13xzAAAAAElFTkSuQmCC);
}
}
/* Fancy CSS END */
</style>
<style type="text/css">
.ff0{font-family:sans-serif;visibility:hidden;}
@font-face{font-family:ff1;src:url('data:application/font-woff;base64,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')format("woff");}.ff1{font-family:ff1;line-height:1.058000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff2;src:url('data:application/font-woff;base64,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')format("woff");}.ff2{font-family:ff2;line-height:0.938000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff3;src:url('data:application/font-woff;base64,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')format("woff");}.ff3{font-family:ff3;line-height:0.938000;font-style:normal;font-weight:normal;visibility:visible;}
@font-face{font-family:ff4;src:url('data:application/font-woff;base64,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')format("woff");}.ff4{font-family:ff4;line-height:1.058000;font-style:normal;font-weight:normal;visibility:visible;}
.m0{transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);-ms-transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);-webkit-transform:matrix(0.250000,0.000000,0.000000,0.250000,0,0);}
.m1{transform:none;-ms-transform:none;-webkit-transform:none;}
.v0{vertical-align:0.000000px;}
.v1{vertical-align:17.352000px;}
.ls2{letter-spacing:0.000000px;}
.ls0{letter-spacing:23.910400px;}
.ls3{letter-spacing:26.166484px;}
.ls1{letter-spacing:47.151309px;}
.sc_{text-shadow:none;}
.sc0{text-shadow:-0.015em 0 transparent,0 0.015em transparent,0.015em 0 transparent,0 -0.015em transparent;}
@media screen and (-webkit-min-device-pixel-ratio:0){
.sc_{-webkit-text-stroke:0px transparent;}
.sc0{-webkit-text-stroke:0.015em transparent;text-shadow:none;}
}
.wse{word-spacing:-15.111373px;}
.wsb{word-spacing:-7.460045px;}
.wsc{word-spacing:-5.834061px;}
.wsf{word-spacing:-5.260288px;}
.wsa{word-spacing:-4.734061px;}
.ws6{word-spacing:-4.208230px;}
.ws7{word-spacing:0.000000px;}
.ws2{word-spacing:7.125299px;}
.ws5{word-spacing:11.907379px;}
.ws4{word-spacing:14.288815px;}
.ws8{word-spacing:16.402339px;}
.ws9{word-spacing:17.502403px;}
.wsd{word-spacing:22.523597px;}
.ws3{word-spacing:23.862579px;}
.ws1{word-spacing:47.103488px;}
.ws10{word-spacing:1088.933965px;}
.ws11{word-spacing:1211.683430px;}
.ws0{word-spacing:1270.837760px;}
._2{margin-left:-26.253619px;}
._1{margin-left:-23.910400px;}
._3{margin-left:-12.337766px;}
._b{margin-left:-11.285709px;}
._19{margin-left:-9.994547px;}
._29{margin-left:-6.647091px;}
._1f{margin-left:-4.208230px;}
._a{margin-left:-2.630144px;}
._d{margin-left:-1.099878px;}
._11{width:1.090311px;}
._4{width:4.016947px;}
._23{width:5.164646px;}
._3c{width:10.520576px;}
._7{width:11.955200px;}
._40{width:13.437645px;}
._1b{width:14.537523px;}
._34{width:15.924326px;}
._17{width:17.024205px;}
._26{width:18.554470px;}
._37{width:20.276019px;}
._2c{width:21.375898px;}
._33{width:22.858342px;}
._22{width:23.910400px;}
._15{width:25.201562px;}
._24{width:28.453376px;}
._27{width:29.983642px;}
._8{width:31.753011px;}
._e{width:32.900710px;}
._1d{width:35.148288px;}
._28{width:36.152525px;}
._3a{width:37.539328px;}
._2b{width:38.543565px;}
._16{width:39.691069px;}
._1a{width:41.412739px;}
._2f{width:42.417126px;}
._35{width:43.421680px;}
._20{width:45.907968px;}
._13{width:47.151309px;}
._6{width:54.993920px;}
._10{width:57.384800px;}
._5{width:62.597360px;}
._c{width:63.697360px;}
._1e{width:64.988272px;}
._f{width:86.507760px;}
._9{width:87.607760px;}
._25{width:206.872781px;}
._14{width:680.633446px;}
._36{width:752.221184px;}
._30{width:765.283693px;}
._31{width:799.542418px;}
._39{width:804.202394px;}
._2a{width:855.801037px;}
._3e{width:875.551027px;}
._2d{width:893.388186px;}
._1c{width:896.926925px;}
._12{width:912.877398px;}
._3b{width:947.186586px;}
._38{width:965.884518px;}
._18{width:992.616346px;}
._21{width:996.250726px;}
._3d{width:1064.634470px;}
._3f{width:1081.419571px;}
._2e{width:1093.709517px;}
._0{width:1102.460723px;}
._32{width:1184.282112px;}
.fc0{color:rgb(0,0,0);}
.fs4{font-size:31.880400px;}
.fs3{font-size:39.850400px;}
.fs1{font-size:47.820800px;}
.fs2{font-size:57.384800px;}
.fs0{font-size:99.148400px;}
.y1c{bottom:104.882000px;}
.y1b{bottom:133.228000px;}
.y42{bottom:133.229000px;}
.y1a{bottom:148.033000px;}
.y87{bottom:148.038000px;}
.y41{bottom:148.106000px;}
.y63{bottom:148.901000px;}
.y19{bottom:162.838000px;}
.y86{bottom:162.847000px;}
.y40{bottom:162.983000px;}
.y62{bottom:164.573000px;}
.y18{bottom:177.643000px;}
.y85{bottom:177.656000px;}
.y3f{bottom:177.860000px;}
.y61{bottom:180.245000px;}
.y17{bottom:192.448000px;}
.y84{bottom:192.465000px;}
.y3e{bottom:192.737000px;}
.y60{bottom:195.918000px;}
.y16{bottom:207.252000px;}
.y83{bottom:207.274000px;}
.y3d{bottom:207.614000px;}
.y5f{bottom:211.590000px;}
.y15{bottom:222.057000px;}
.y82{bottom:222.083000px;}
.y3c{bottom:222.491000px;}
.y5e{bottom:227.262000px;}
.y81{bottom:236.892000px;}
.y5d{bottom:242.935000px;}
.y14{bottom:249.057000px;}
.y3b{bottom:249.611000px;}
.y5c{bottom:258.607000px;}
.y13{bottom:263.861000px;}
.y80{bottom:263.898000px;}
.y3a{bottom:264.488000px;}
.y12{bottom:278.666000px;}
.y39{bottom:279.365000px;}
.y5b{bottom:287.052000px;}
.y11{bottom:293.471000px;}
.y38{bottom:294.242000px;}
.y5a{bottom:302.724000px;}
.y7f{bottom:305.848000px;}
.y10{bottom:308.276000px;}
.y37{bottom:309.119000px;}
.y59{bottom:318.397000px;}
.y7e{bottom:320.657000px;}
.yf{bottom:323.081000px;}
.y58{bottom:334.069000px;}
.y7d{bottom:335.466000px;}
.y36{bottom:336.239000px;}
.y57{bottom:349.741000px;}
.ye{bottom:350.080000px;}
.y7c{bottom:350.275000px;}
.y35{bottom:351.116000px;}
.yd{bottom:364.885000px;}
.y7b{bottom:365.084000px;}
.y56{bottom:365.414000px;}
.y34{bottom:365.994000px;}
.yc{bottom:379.690000px;}
.y7a{bottom:379.893000px;}
.y33{bottom:380.871000px;}
.y55{bottom:381.086000px;}
.yb{bottom:394.494000px;}
.y32{bottom:395.748000px;}
.y79{bottom:406.900000px;}
.ya{bottom:409.299000px;}
.y54{bottom:409.531000px;}
.y31{bottom:410.625000px;}
.y78{bottom:421.709000px;}
.y53{bottom:425.203000px;}
.y30{bottom:425.502000px;}
.y9{bottom:436.298000px;}
.y77{bottom:436.518000px;}
.y2f{bottom:440.379000px;}
.y52{bottom:440.876000px;}
.y76{bottom:451.327000px;}
.y2e{bottom:455.256000px;}
.y51{bottom:456.548000px;}
.y75{bottom:466.136000px;}
.y50{bottom:472.220000px;}
.y8{bottom:478.242000px;}
.y74{bottom:480.945000px;}
.y2d{bottom:482.376000px;}
.y4f{bottom:487.893000px;}
.y7{bottom:493.047000px;}
.y73{bottom:495.754000px;}
.y2c{bottom:497.253000px;}
.y4e{bottom:503.565000px;}
.y6{bottom:507.851000px;}
.y72{bottom:510.563000px;}
.y2b{bottom:512.130000px;}
.y4d{bottom:519.237000px;}
.y5{bottom:522.656000px;}
.y71{bottom:525.372000px;}
.y2a{bottom:527.007000px;}
.y4{bottom:537.461000px;}
.y70{bottom:540.181000px;}
.y29{bottom:541.884000px;}
.y4c{bottom:547.682000px;}
.y3{bottom:552.266000px;}
.y28{bottom:556.762000px;}
.y4b{bottom:563.355000px;}
.y2{bottom:567.071000px;}
.y6f{bottom:567.187000px;}
.y27{bottom:571.639000px;}
.y4a{bottom:579.027000px;}
.y6e{bottom:581.996000px;}
.y26{bottom:586.516000px;}
.y1{bottom:594.070000px;}
.y49{bottom:594.699000px;}
.y6d{bottom:596.805000px;}
.y25{bottom:601.393000px;}
.y48{bottom:610.372000px;}
.y6c{bottom:611.614000px;}
.y24{bottom:616.270000px;}
.y47{bottom:626.044000px;}
.y6b{bottom:626.423000px;}
.y6a{bottom:641.232000px;}
.y46{bottom:641.716000px;}
.y23{bottom:643.390000px;}
.y69{bottom:656.041000px;}
.y45{bottom:657.389000px;}
.y22{bottom:658.267000px;}
.y0{bottom:664.895000px;}
.y68{bottom:670.850000px;}
.y44{bottom:673.061000px;}
.y21{bottom:673.144000px;}
.y67{bottom:685.659000px;}
.y20{bottom:688.021000px;}
.y66{bottom:700.468000px;}
.y43{bottom:701.506000px;}
.y1f{bottom:702.898000px;}
.y89{bottom:704.048000px;}
.y65{bottom:715.277000px;}
.y1e{bottom:717.775000px;}
.y64{bottom:730.086000px;}
.y88{bottom:730.449000px;}
.y1d{bottom:744.895000px;}
.h5{height:32.677328px;}
.h2{height:33.474560px;}
.h3{height:39.213056px;}
.h4{height:40.169360px;}
.h6{height:43.493928px;}
.h1{height:81.301688px;}
.h0{height:841.890000px;}
.w0{width:595.276000px;}
.x0{left:113.386000px;}
.x1{left:131.319000px;}
.x5{left:290.988000px;}
.x4{left:292.338000px;}
.x3{left:293.688000px;}
.x2{left:295.038000px;}
</style>
<script>
/*
Copyright 2012 Mozilla Foundation
Copyright 2013 Lu Wang <[email protected]>
Apachine License Version 2.0
*/
(function(){function b(a,b,e,f){var c=(a.className||"").split(/\s+/g);""===c[0]&&c.shift();var d=c.indexOf(b);0>d&&e&&c.push(b);0<=d&&f&&c.splice(d,1);a.className=c.join(" ");return 0<=d}if(!("classList"in document.createElement("div"))){var e={add:function(a){b(this.element,a,!0,!1)},contains:function(a){return b(this.element,a,!1,!1)},remove:function(a){b(this.element,a,!1,!0)},toggle:function(a){b(this.element,a,!0,!0)}};Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){if(this._classList)return this._classList;
var a=Object.create(e,{element:{value:this,writable:!1,enumerable:!0}});Object.defineProperty(this,"_classList",{value:a,writable:!1,enumerable:!1});return a},enumerable:!0})}})();
</script>
<script>
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab filetype=javascript : */
/**
* @license pdf2htmlEX.js: Core UI functions for pdf2htmlEX
* Copyright 2012,2013 Lu Wang <[email protected]> and other contributors
* https://github.com/coolwanglu/pdf2htmlEX/blob/master/share/LICENSE
*/
/*
* Attention:
* This files is to be optimized by closure-compiler,
* so pay attention to the forms of property names:
*
* string/bracket form is safe, won't be optimized:
* var obj={ 'a':'b' }; obj['a'] = 'b';
* name/dot form will be optimized, the name is likely to be modified:
* var obj={ a:'b' }; obj.a = 'b';
*
* Either form can be used for internal objects,
* but must be consistent for each one respectively.
*
* string/bracket form must be used for external objects
* e.g. DEFAULT_CONFIG, object stored in page-data
* property names are part of the `protocol` in these cases.
*
*/
'use strict';
var pdf2htmlEX = window['pdf2htmlEX'] = window['pdf2htmlEX'] || {};
/**
* @const
* @struct
*/
var CSS_CLASS_NAMES = {
page_frame : 'pf',
page_content_box : 'pc',
page_data : 'pi',
background_image : 'bi',
link : 'l',
input_radio : 'ir',
__dummy__ : 'no comma'
};
/**
* configurations of Viewer
* @const
* @dict
*/
var DEFAULT_CONFIG = {
// id of the element to put the pages in
'container_id' : 'page-container',
// id of the element for sidebar (to open and close)
'sidebar_id' : 'sidebar',
// id of the element for outline
'outline_id' : 'outline',
// class for the loading indicator
'loading_indicator_cls' : 'loading-indicator',
// How many page shall we preload that are below the last visible page
'preload_pages' : 3,
// how many ms should we wait before actually rendering the pages and after a scroll event
'render_timeout' : 100,
// zoom ratio step for each zoom in/out event
'scale_step' : 0.9,
// register global key handler, allowing navigation by keyboard
'key_handler' : true,
// register hashchange handler, navigate to the location specified by the hash
'hashchange_handler' : true,
// register view history handler, allowing going back to the previous location
'view_history_handler' : true,
'__dummy__' : 'no comma'
};
/** @const */
var EPS = 1e-6;
/************************************/
/* utility function */
/**
* @param{Array.<number>} ctm
*/
function invert(ctm) {
var det = ctm[0] * ctm[3] - ctm[1] * ctm[2];
return [ ctm[3] / det
,-ctm[1] / det
,-ctm[2] / det
,ctm[0] / det
,(ctm[2] * ctm[5] - ctm[3] * ctm[4]) / det
,(ctm[1] * ctm[4] - ctm[0] * ctm[5]) / det
];
};
/**
* @param{Array.<number>} ctm
* @param{Array.<number>} pos
*/
function transform(ctm, pos) {
return [ctm[0] * pos[0] + ctm[2] * pos[1] + ctm[4]
,ctm[1] * pos[0] + ctm[3] * pos[1] + ctm[5]];
};
/**
* @param{Element} ele
*/
function get_page_number(ele) {
return parseInt(ele.getAttribute('data-page-no'), 16);
};
/**
* @param{NodeList} eles
*/
function disable_dragstart(eles) {
for (var i = 0, l = eles.length; i < l; ++i) {
eles[i].addEventListener('dragstart', function() {
return false;
}, false);
}
};
/**
* @param{...Object} var_args
*/
function clone_and_extend_objs(var_args) {
var result_obj = {};
for (var i = 0, l = arguments.length; i < l; ++i) {
var cur_obj = arguments[i];
for (var k in cur_obj) {
if (cur_obj.hasOwnProperty(k)) {
result_obj[k] = cur_obj[k];
}
}
}
return result_obj;
};
/**
* @constructor
* @param{Element} page The element for the page
*/
function Page(page) {
if (!page) return;
this.loaded = false;
this.shown = false;
this.page = page; // page frame element
this.num = get_page_number(page);
// page size
// Need to make rescale work when page_content_box is not loaded, yet
this.original_height = page.clientHeight;
this.original_width = page.clientWidth;
// content box
var content_box = page.getElementsByClassName(CSS_CLASS_NAMES.page_content_box)[0];
// if page is loaded
if (content_box) {
this.content_box = content_box;
/*
* scale ratios
*
* original_scale : the first one
* cur_scale : currently using
*/
this.original_scale = this.cur_scale = this.original_height / content_box.clientHeight;
this.page_data = JSON.parse(page.getElementsByClassName(CSS_CLASS_NAMES.page_data)[0].getAttribute('data-data'));
this.ctm = this.page_data['ctm'];
this.ictm = invert(this.ctm);
this.loaded = true;
}
};
Page.prototype = {
/* hide & show are for contents, the page frame is still there */
hide : function(){
if (this.loaded && this.shown) {
this.content_box.classList.remove('opened');
this.shown = false;
}
},
show : function(){
if (this.loaded && !this.shown) {
this.content_box.classList.add('opened');
this.shown = true;
}
},
/**
* @param{number} ratio
*/
rescale : function(ratio) {
if (ratio === 0) {
// reset scale
this.cur_scale = this.original_scale;
} else {
this.cur_scale = ratio;
}
// scale the content box
if (this.loaded) {
var cbs = this.content_box.style;
cbs.msTransform = cbs.webkitTransform = cbs.transform = 'scale('+this.cur_scale.toFixed(3)+')';
}
// stretch the page frame to hold the place
{
var ps = this.page.style;
ps.height = (this.original_height * this.cur_scale) + 'px';
ps.width = (this.original_width * this.cur_scale) + 'px';
}
},
/*
* return the coordinate of the top-left corner of container
* in our coordinate system
* assuming that p.parentNode === p.offsetParent
*/
view_position : function () {
var p = this.page;
var c = p.parentNode;
return [c.scrollLeft - p.offsetLeft - p.clientLeft
,c.scrollTop - p.offsetTop - p.clientTop];
},
height : function () {
return this.page.clientHeight;
},
width : function () {
return this.page.clientWidth;
}
};
/**
* @constructor
* @param{Object=} config
*/
function Viewer(config) {
this.config = clone_and_extend_objs(DEFAULT_CONFIG, (arguments.length > 0 ? config : {}));
this.pages_loading = [];
this.init_before_loading_content();
var self = this;
document.addEventListener('DOMContentLoaded', function(){
self.init_after_loading_content();
}, false);
};
Viewer.prototype = {
scale : 1,
/*
* index of the active page (the one with largest visible area)
* which estimates the page currently being viewed
*/
cur_page_idx : 0,
/*
* index of the first visible page
* used when determining current view
*/
first_page_idx : 0,
init_before_loading_content : function() {
/* hide all pages before loading, will reveal only visible ones later */
this.pre_hide_pages();
},
initialize_radio_button : function() {
var elements = document.getElementsByClassName(CSS_CLASS_NAMES.input_radio);
for(var i = 0; i < elements.length; i++) {
var r = elements[i];
r.addEventListener('click', function() {
this.classList.toggle("checked");
});
}
},
init_after_loading_content : function() {
this.sidebar = document.getElementById(this.config['sidebar_id']);
this.outline = document.getElementById(this.config['outline_id']);
this.container = document.getElementById(this.config['container_id']);
this.loading_indicator = document.getElementsByClassName(this.config['loading_indicator_cls'])[0];
{
// Open the outline if nonempty
var empty = true;
var nodes = this.outline.childNodes;
for (var i = 0, l = nodes.length; i < l; ++i) {
var cur_node = nodes[i];
if (cur_node.nodeName.toLowerCase() === 'ul') {
empty = false;
break;
}
}
if (!empty)
this.sidebar.classList.add('opened');
}
this.find_pages();
// do nothing if there's nothing
if(this.pages.length == 0) return;
// disable dragging of background images
disable_dragstart(document.getElementsByClassName(CSS_CLASS_NAMES.background_image));
if (this.config['key_handler'])
this.register_key_handler();
var self = this;
if (this.config['hashchange_handler']) {
window.addEventListener('hashchange', function(e) {
self.navigate_to_dest(document.location.hash.substring(1));
}, false);
}
if (this.config['view_history_handler']) {
window.addEventListener('popstate', function(e) {
if(e.state) self.navigate_to_dest(e.state);
}, false);
}
// register schedule rendering
// renew old schedules since scroll() may be called frequently
this.container.addEventListener('scroll', function() {
self.update_page_idx();
self.schedule_render(true);
}, false);
// handle links
[this.container, this.outline].forEach(function(ele) {
ele.addEventListener('click', self.link_handler.bind(self), false);
});
this.initialize_radio_button();
this.render();
},
/*
* set up this.pages and this.page_map
* pages is an array holding all the Page objects
* page-Map maps an original page number (in PDF) to the corresponding index in page
*/
find_pages : function() {
var new_pages = [];
var new_page_map = {};
var nodes = this.container.childNodes;
for (var i = 0, l = nodes.length; i < l; ++i) {
var cur_node = nodes[i];
if ((cur_node.nodeType === Node.ELEMENT_NODE)
&& cur_node.classList.contains(CSS_CLASS_NAMES.page_frame)) {
var p = new Page(cur_node);
new_pages.push(p);
new_page_map[p.num] = new_pages.length - 1;
}
}
this.pages = new_pages;
this.page_map = new_page_map;
},
/**
* @param{number} idx
* @param{number=} pages_to_preload
* @param{function(Page)=} callback
*
* TODO: remove callback -> promise ?
*/
load_page : function(idx, pages_to_preload, callback) {
var pages = this.pages;
if (idx >= pages.length)
return; // Page does not exist
var cur_page = pages[idx];
if (cur_page.loaded)
return; // Page is loaded
if (this.pages_loading[idx])
return; // Page is already loading
var cur_page_ele = cur_page.page;
var url = cur_page_ele.getAttribute('data-page-url');
if (url) {
this.pages_loading[idx] = true; // set semaphore
// add a copy of the loading indicator if not already present
var new_loading_indicator = cur_page_ele.getElementsByClassName(this.config['loading_indicator_cls'])[0];
if (typeof new_loading_indicator === 'undefined'){
new_loading_indicator = this.loading_indicator.cloneNode(true);
new_loading_indicator.classList.add('active');
cur_page_ele.appendChild(new_loading_indicator);
}
// load data
{
var self = this;
var _idx = idx;
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onload = function(){
if (xhr.status === 200 || xhr.status === 0) {
// find the page element in the data
var div = document.createElement('div');
div.innerHTML = xhr.responseText;
var new_page = null;
var nodes = div.childNodes;
for (var i = 0, l = nodes.length; i < l; ++i) {
var cur_node = nodes[i];
if ((cur_node.nodeType === Node.ELEMENT_NODE)
&& cur_node.classList.contains(CSS_CLASS_NAMES.page_frame)) {
new_page = cur_node;
break;
}
}
// replace the old page with loaded data
// the loading indicator on this page should also be destroyed
var p = self.pages[_idx];
self.container.replaceChild(new_page, p.page);
p = new Page(new_page);
self.pages[_idx] = p;
p.hide();
p.rescale(self.scale);
// disable background image dragging
disable_dragstart(new_page.getElementsByClassName(CSS_CLASS_NAMES.background_image));
self.schedule_render(false);
if (callback){ callback(p); }
}
// Reset loading token
delete self.pages_loading[_idx];
};
xhr.send(null);
}
}
// Concurrent prefetch of the next pages
if (pages_to_preload === undefined)
pages_to_preload = this.config['preload_pages'];
if (--pages_to_preload > 0) {
var self = this;
setTimeout(function() {
self.load_page(idx+1, pages_to_preload);
},0);
}
},
/*
* Hide all pages that have no 'opened' class
* The 'opened' class will be added to visible pages by JavaScript
* We cannot add this in the default CSS because JavaScript may be disabled
*/
pre_hide_pages : function() {
/* pages might have not been loaded yet, so add a CSS rule */
var s = '@media screen{.'+CSS_CLASS_NAMES.page_content_box+'{display:none;}}';
var n = document.createElement('style');
if (n.styleSheet) {
n.styleSheet.cssText = s;
} else {
n.appendChild(document.createTextNode(s));
}
document.head.appendChild(n);
},
/*
* show visible pages and hide invisible pages
*/
render : function () {
var container = this.container;
/*
* show the pages that are 'nearly' visible -- it's right above or below the container
*
* all the y values are in the all-page element's coordinate system
*/
var container_min_y = container.scrollTop;
var container_height = container.clientHeight;
var container_max_y = container_min_y + container_height;
var visible_min_y = container_min_y - container_height;
var visible_max_y = container_max_y + container_height;
var cur_page_fully_visible = false;
var cur_page_idx = this.cur_page_idx;
var max_visible_page_idx = cur_page_idx;
var max_visible_ratio = 0.0;
var pl = this.pages;
for (var i = 0, l = pl.length; i < l; ++i) {
var cur_page = pl[i];
var cur_page_ele = cur_page.page;
var page_min_y = cur_page_ele.offsetTop + cur_page_ele.clientTop;
var page_height = cur_page_ele.clientHeight;
var page_max_y = page_min_y + page_height;
if ((page_min_y <= visible_max_y) && (page_max_y >= visible_min_y))
{
// cur_page is 'nearly' visible, show it or load it
if (cur_page.loaded) {
cur_page.show();
} else {
this.load_page(i);
}
} else {
cur_page.hide();
}
}
},
/*
* update cur_page_idx and first_page_idx
* normally called upon scrolling
*/
update_page_idx: function () {
var pages = this.pages;
var pages_len = pages.length;
// there is no chance that cur_page_idx or first_page_idx is modified
if (pages_len < 2) return;
var container = this.container;
var container_min_y = container.scrollTop;
var container_max_y = container_min_y + container.clientHeight;
// binary search for the first page
// whose bottom border is below the top border of the container
var first_idx = -1;
var last_idx = pages_len;
var rest_len = last_idx - first_idx;
// TODO: use current first_page_idx as a hint?
while(rest_len > 1) {
var idx = first_idx + Math.floor(rest_len / 2);
var cur_page_ele = pages[idx].page;
if (cur_page_ele.offsetTop + cur_page_ele.clientTop + cur_page_ele.clientHeight >= container_min_y) {
last_idx = idx;
} else {
first_idx = idx;
}
rest_len = last_idx - first_idx;
}
/*
* with malformed settings it is possible that no page is visible, e.g.
* - the container is to thin, which lies in the margin between two pages
* - all pages are completely above or below the container
* but we just assume that they won't happen.
*/
this.first_page_idx = last_idx;
// find the page with largest visible area
var cur_page_idx = this.cur_page_idx;
var max_visible_page_idx = cur_page_idx;
var max_visible_ratio = 0.0;
for(var i = last_idx; i < pages_len; ++i) {
var cur_page_ele = pages[i].page;
var page_min_y = cur_page_ele.offsetTop + cur_page_ele.clientTop;
var page_height = cur_page_ele.clientHeight;
var page_max_y = page_min_y + page_height;
if (page_min_y > container_max_y) break;
// check the visible fraction of the page
var page_visible_ratio = ( Math.min(container_max_y, page_max_y)
- Math.max(container_min_y, page_min_y)
) / page_height;
// stay with the current page if it is still fully visible
if ((i === cur_page_idx) && (Math.abs(page_visible_ratio - 1.0) <= EPS)) {
max_visible_page_idx = cur_page_idx;
break;
}
if (page_visible_ratio > max_visible_ratio) {
max_visible_ratio = page_visible_ratio;
max_visible_page_idx = i;
}
}
this.cur_page_idx = max_visible_page_idx;
},
/**
* @param{boolean} renew renew the existing schedule instead of using the old one
*/
schedule_render : function(renew) {
if (this.render_timer !== undefined) {
if (!renew) return;
clearTimeout(this.render_timer);
}
var self = this;
this.render_timer = setTimeout(function () {
/*
* render() may trigger load_page(), which may in turn trigger another render()
* so delete render_timer first
*/
delete self.render_timer;
self.render();
}, this.config['render_timeout']);
},
/*
* Handling key events, zooming, scrolling etc.
*/
register_key_handler: function () {
/*
* When user try to zoom in/out using ctrl + +/- or mouse wheel
* handle this and prevent the default behaviours
*
* Code credit to PDF.js
*/
var self = this;
// Firefox specific event, so that we can prevent browser from zooming
window.addEventListener('DOMMouseScroll', function(e) {
if (e.ctrlKey) {
e.preventDefault();
var container = self.container;
var rect = container.getBoundingClientRect();
var fixed_point = [e.clientX - rect['left'] - container.clientLeft
,e.clientY - rect['top'] - container.clientTop];
self.rescale(Math.pow(self.config['scale_step'], e.detail), true, fixed_point);
}
}, false);
window.addEventListener('keydown', function(e) {
var handled = false;
/*
var cmd = (e.ctrlKey ? 1 : 0)
| (e.altKey ? 2 : 0)
| (e.shiftKey ? 4 : 0)
| (e.metaKey ? 8 : 0)
;
*/
var with_ctrl = e.ctrlKey || e.metaKey;
var with_alt = e.altKey;
switch (e.keyCode) {
case 61: // FF/Mac '='
case 107: // FF '+' and '='
case 187: // Chrome '+'
if (with_ctrl){
self.rescale(1.0 / self.config['scale_step'], true);
handled = true;
}
break;
case 173: // FF/Mac '-'
case 109: // FF '-'
case 189: // Chrome '-'
if (with_ctrl){
self.rescale(self.config['scale_step'], true);
handled = true;
}
break;
case 48: // '0'
if (with_ctrl){
self.rescale(0, false);
handled = true;
}
break;
case 33: // Page UP:
if (with_alt) { // alt-pageup -> scroll one page up
self.scroll_to(self.cur_page_idx - 1);
} else { // pageup -> scroll one screen up
self.container.scrollTop -= self.container.clientHeight;
}
handled = true;
break;
case 34: // Page DOWN
if (with_alt) { // alt-pagedown -> scroll one page down
self.scroll_to(self.cur_page_idx + 1);
} else { // pagedown -> scroll one screen down
self.container.scrollTop += self.container.clientHeight;
}
handled = true;
break;
case 35: // End
self.container.scrollTop = self.container.scrollHeight;
handled = true;
break;
case 36: // Home
self.container.scrollTop = 0;
handled = true;
break;
}
if (handled) {
e.preventDefault();
return;
}
}, false);
},
/**
* @param{number} ratio
* @param{boolean} is_relative
* @param{Array.<number>=} fixed_point preserve the position (relative to the top-left corner of the viewer) after rescaling
*/
rescale : function (ratio, is_relative, fixed_point) {
var old_scale = this.scale;
var new_scale = old_scale;
// set new scale
if (ratio === 0) {
new_scale = 1;
is_relative = false;
} else if (is_relative)
new_scale *= ratio;
else
new_scale = ratio;
this.scale = new_scale;
if (!fixed_point)
fixed_point = [0,0];
// translate fixed_point to the coordinate system of all pages
var container = this.container;
fixed_point[0] += container.scrollLeft;
fixed_point[1] += container.scrollTop;
// find the visible page that contains the fixed point
// if the fixed point lies between two pages (including their borders), it's contained in the first one
var pl = this.pages;
var pl_len = pl.length;
for (var i = this.first_page_idx; i < pl_len; ++i) {
var p = pl[i].page;
if (p.offsetTop + p.clientTop >= fixed_point[1])
break;
}
var fixed_point_page_idx = i - 1;
// determine the new scroll position
// each-value consists of two parts, one inside the page, which is affected by rescaling,
// the other is outside, (e.g. borders and margins), which is not affected
// if the fixed_point is above the first page, use the first page as the reference
if (fixed_point_page_idx < 0)
fixed_point_page_idx = 0;
var fp_p = pl[fixed_point_page_idx].page;
var fp_p_width = fp_p.clientWidth;
var fp_p_height = fp_p.clientHeight;
var fp_x_ref = fp_p.offsetLeft + fp_p.clientLeft;
var fp_x_inside = fixed_point[0] - fp_x_ref;
if (fp_x_inside < 0)
fp_x_inside = 0;
else if (fp_x_inside > fp_p_width)
fp_x_inside = fp_p_width;
var fp_y_ref = fp_p.offsetTop + fp_p.clientTop;
var fp_y_inside = fixed_point[1] - fp_y_ref;
if (fp_y_inside < 0)
fp_y_inside = 0;
else if (fp_y_inside > fp_p_height)
fp_y_inside = fp_p_height;
// Rescale pages
for (var i = 0; i < pl_len; ++i)
pl[i].rescale(new_scale);
// Correct container scroll to keep view aligned while zooming
container.scrollLeft += fp_x_inside / old_scale * new_scale + fp_p.offsetLeft + fp_p.clientLeft - fp_x_inside - fp_x_ref;
container.scrollTop += fp_y_inside / old_scale * new_scale + fp_p.offsetTop + fp_p.clientTop - fp_y_inside - fp_y_ref;
// some pages' visibility may be toggled, wait for next render()
// renew old schedules since rescale() may be called frequently
this.schedule_render(true);
},
fit_width : function () {
var page_idx = this.cur_page_idx;
this.rescale(this.container.clientWidth / this.pages[page_idx].width(), true);
this.scroll_to(page_idx);
},
fit_height : function () {
var page_idx = this.cur_page_idx;
this.rescale(this.container.clientHeight / this.pages[page_idx].height(), true);
this.scroll_to(page_idx);
},
/**
* @param{Node} ele
*/
get_containing_page : function(ele) {
/* get the page obj containing obj */
while(ele) {
if ((ele.nodeType === Node.ELEMENT_NODE)
&& ele.classList.contains(CSS_CLASS_NAMES.page_frame)) {
/*
* Get original page number and map it to index of pages
* TODO: store the index on the dom element
*/
var pn = get_page_number(/** @type{Element} */(ele));
var pm = this.page_map;
return (pn in pm) ? this.pages[pm[pn]] : null;
}
ele = ele.parentNode;
}
return null;
},
/**
* @param{Event} e
*/
link_handler : function (e) {
var target = /** @type{Node} */(e.target);
var detail_str = /** @type{string} */ (target.getAttribute('data-dest-detail'));
if (!detail_str) return;
if (this.config['view_history_handler']) {
try {
var cur_hash = this.get_current_view_hash();
window.history.replaceState(cur_hash, '', '#' + cur_hash);
window.history.pushState(detail_str, '', '#' + detail_str);
} catch(ex) { }
}
this.navigate_to_dest(detail_str, this.get_containing_page(target));
e.preventDefault();
},
/**
* @param{string} detail_str may come from user provided hashtag, need sanitzing
* @param{Page=} src_page page containing the source event (e.g. link)
*/
navigate_to_dest : function(detail_str, src_page) {
try {
var detail = JSON.parse(detail_str);
} catch(e) {
return;
}
if(!(detail instanceof Array)) return;
var target_page_no = detail[0];
var page_map = this.page_map;
if (!(target_page_no in page_map)) return;
var target_page_idx = page_map[target_page_no];
var target_page = this.pages[target_page_idx];
for (var i = 2, l = detail.length; i < l; ++i) {
var d = detail[i];
if(!((d === null) || (typeof d === 'number')))
return;
}
while(detail.length < 6)
detail.push(null);
// cur_page might be undefined, e.g. from Outline
var cur_page = src_page || this.pages[this.cur_page_idx];
var cur_pos = cur_page.view_position();
cur_pos = transform(cur_page.ictm, [cur_pos[0], cur_page.height()-cur_pos[1]]);
var zoom = this.scale;
var pos = [0,0];
var upside_down = true;
var ok = false;
// position specified in `detail` are in the raw coordinate system of the page (unscaled)
var scale = this.scale;
// TODO: fitb*
// TODO: BBox
switch(detail[1]) {
case 'XYZ':
pos = [ (detail[2] === null) ? cur_pos[0] : detail[2] * scale
, (detail[3] === null) ? cur_pos[1] : detail[3] * scale ];
zoom = detail[4];
if ((zoom === null) || (zoom === 0))
zoom = this.scale;
ok = true;
break;
case 'Fit':
case 'FitB':
pos = [0,0];
ok = true;
break;
case 'FitH':
case 'FitBH':
pos = [0, (detail[2] === null) ? cur_pos[1] : detail[2] * scale];
ok = true;
break;
case 'FitV':
case 'FitBV':
pos = [(detail[2] === null) ? cur_pos[0] : detail[2] * scale, 0];
ok = true;
break;
case 'FitR':
/* locate the top-left corner of the rectangle */
// TODO
pos = [detail[2] * scale, detail[5] * scale];
upside_down = false;
ok = true;
break;
default:
break;
}
if (!ok) return;
this.rescale(zoom, false);
var self = this;
/**
* page should of type Page
* @param{Page} page
*/
var transform_and_scroll = function(page) {
pos = transform(page.ctm, pos);
if (upside_down) {
pos[1] = page.height() - pos[1];
}
self.scroll_to(target_page_idx, pos);
};
if (target_page.loaded) {
transform_and_scroll(target_page);
} else {
// TODO: scroll_to may finish before load_page
// Scroll to the exact position once loaded.
this.load_page(target_page_idx, undefined, transform_and_scroll);
// In the meantime page gets loaded, scroll approximately position for maximum responsiveness.
this.scroll_to(target_page_idx);
}
},
/**
* @param{number} page_idx
* @param{Array.<number>=} pos [x,y] where (0,0) is the top-left corner
*/
scroll_to : function(page_idx, pos) {
var pl = this.pages;
if ((page_idx < 0) || (page_idx >= pl.length)) return;
var target_page = pl[page_idx];
var cur_target_pos = target_page.view_position();
if (pos === undefined)
pos = [0,0];
var container = this.container;
container.scrollLeft += pos[0] - cur_target_pos[0];
container.scrollTop += pos[1] - cur_target_pos[1];
},
/**
* generate the hash for the current view
*/
get_current_view_hash : function() {
var detail = [];
var cur_page = this.pages[this.cur_page_idx];
detail.push(cur_page.num);
detail.push('XYZ');
var cur_pos = cur_page.view_position();
cur_pos = transform(cur_page.ictm, [cur_pos[0], cur_page.height()-cur_pos[1]]);
detail.push(cur_pos[0] / this.scale);
detail.push(cur_pos[1] / this.scale);
detail.push(this.scale);
return JSON.stringify(detail);
}
};
// export pdf2htmlEX.Viewer
pdf2htmlEX['Viewer'] = Viewer;
</script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
Home >> Writing >>
The Developing Mind: A Philosophical Introduction (2020)
by Stephen A. Butterfill
--- London: Routledge [publisher's page]
--- links: contents [pdf]; introduction [pdf]
Contents
Preface xi
1 Introduction 1
1.1 TwoBreakthroughs....................... 2
1.2 Knowledge............................ 3
1.3 A Crude Picture of the Mind . . . . . . . . . . . . . . . . . . 4
1.4 CoreKnowledge......................... 5
1.5 TwoStories............................ 7
1.6 Development Is Rediscovery . . . . . . . . . . . . . . . . . . 8
I Physical Objects 11
2 Principles of Object Perception 13
2.1 Knowledge of Objects Involves Three Abilities . . . . . . . . 13
2.2 Segmentation .......................... 15
2.3 Principles of Object Perception . . . . . . . . . . . . . . . . . 20
2.4 Conclusion............................ 23
3�e Simple View 25
3.1 TheSimpleView......................... 25
3.2 Persistence............................ 27
3.3 Extending the Simple View to Persistence . . . . . . . . . . . 32
3.4 Causal Interactions . . . . . . . . . . . . . . . . . . . . . . . 34
3.5 The Case for the Simple View . . . . . . . . . . . . . . . . . 36
4�e Linking Problem 41
4.1 Against the Simple View . . . . . . . . . . . . . . . . . . . . 42
4.2 Further Evidence Against the Simple View . . . . . . . . . . 46
4.3 Things Get Even Worse for the Simple View . . . . . . . . . 48
4.4 The Linking Problem . . . . . . . . . . . . . . . . . . . . . . 50
4.5 Representation Not Knowledge . . . . . . . . . . . . . . . . 51
4.6 Graded Representations? . . . . . . . . . . . . . . . . . . . . 53
v
4.7 Conclusion............................ 55
5 Core Knowledge 57
5.1 What Is Core Knowledge? . . . . . . . . . . . . . . . . . . . 58
5.2 Can Core Knowledge Solve the Linking Problem? . . . . . . 60
5.3 How Not to DeneSomething................. 62
5.4 Will Invoking Modularity Help? . . . . . . . . . . . . . . . . 63
5.5 Conclusion............................ 64
6 Object Indexes and Motor Representations of Objects 67
6.1 Object Indexes in Adult Humans . . . . . . . . . . . . . . . . 68
6.2 Object Indexes and the Principles of Object Perception . . . 70
6.3 The CLSTX Conjecture . . . . . . . . . . . . . . . . . . . . . 74
6.4 SignatureLimits......................... 75
6.5 Knowledge or Core Knowledge or …? . . . . . . . . . . . . . 79
6.6 Against the CLSTX Conjecture . . . . . . . . . . . . . . . . . 80
6.7 Motor Representations of Objects . . . . . . . . . . . . . . . 81
6.8 ConjectureO........................... 83
6.9 Conclusion: Paradox Lost . . . . . . . . . . . . . . . . . . . . 86
7 Metacognitive Feelings 89
7.1 Objection to Conjecture O . . . . . . . . . . . . . . . . . . . 89
7.2 Metacognitive Feelings: A First Example . . . . . . . . . . . 91
7.3 More Metacognitive Feelings . . . . . . . . . . . . . . . . . . 92
7.4 What Is a Metacognitive Feeling? . . . . . . . . . . . . . . . 94
7.5 A Metacognitive Feeling of Surprise? . . . . . . . . . . . . . 96
7.6 Conjecture Om.......................... 97
7.7 Metacognitive Feelings are Intentional Isolators . . . . . . . 99
7.8 Conclusion............................ 101
8 Conclusion to Part I 103
8.1 What Is an Expectation? . . . . . . . . . . . . . . . . . . . . 103
8.2 Core Knowledge: A Lighter Account . . . . . . . . . . . . . 105
8.3 Development Is Rediscovery . . . . . . . . . . . . . . . . . . 106
8.4 How Does Rediscovery Occur? . . . . . . . . . . . . . . . . . 108
9 Innateness 113
9.1 Syntax .............................. 114
9.2 A Poverty of Stimulus Argument . . . . . . . . . . . . . . . . 115
9.3 The Poverty of Poverty of Stimulus Arguments . . . . . . . . 118
9.4 Is Core Knowledge Innate? . . . . . . . . . . . . . . . . . . . 119
9.5 Syntax and Rediscovery . . . . . . . . . . . . . . . . . . . . . 120
9.6 Conclusion............................ 122
vi
Interlude on Innateness 113
II Minds and Actions 125
10 Action 127
10.1 Tracking vs Knowing . . . . . . . . . . . . . . . . . . . . . . 127
10.2 Three-month-olds Track the Goals of Actions . . . . . . . . 128
10.3 Pure Goal Tracking . . . . . . . . . . . . . . . . . . . . . . . 131
10.4 The Teleological Stance . . . . . . . . . . . . . . . . . . . . . 134
10.5 Statistical Regularities . . . . . . . . . . . . . . . . . . . . . . 137
10.6 A Methodological Explanation? . . . . . . . . . . . . . . . . 141
10.7 A Second Puzzle: Acting and Tracking . . . . . . . . . . . . 142
10.8 Conclusion............................ 145
11 A �eory of Goal Tracking 147
11.1 TheSimpleView......................... 147
11.2 The Motor Theory of Goal Tracking . . . . . . . . . . . . . . 148
11.3 The Motor Theory and the Teleological Stance . . . . . . . . 151
11.4 TargetvsGoal.......................... 153
11.5 A Dual Process Theory of Goal Tracking . . . . . . . . . . . 155
11.6 PuzzlesSolved? ......................... 157
11.7 Conclusion............................ 158
12 Mind: the Puzzle 161
12.1 AllAboutMaxi ......................... 162
12.2 Infants track false beliefs . . . . . . . . . . . . . . . . . . . . 166
12.3 A Replication Challenge . . . . . . . . . . . . . . . . . . . . 169
12.4 Methodological Defects or Truly Contradictory Responses? . 170
12.5 Models .............................. 173
12.6 The Mindreading Puzzle . . . . . . . . . . . . . . . . . . . . 175
13 �ree Levels of Analysis 177
13.1 Tracking Beliefs without Representing Them? . . . . . . . . 177
13.2 Altercentric Interference . . . . . . . . . . . . . . . . . . . . 178
13.3 Mirroring beliefs? . . . . . . . . . . . . . . . . . . . . . . . . 180
13.4 Three Levels of Analysis . . . . . . . . . . . . . . . . . . . . 182
13.5 TaskAnalysis .......................... 184
13.6 Selection and Inhibition . . . . . . . . . . . . . . . . . . . . . 187
13.7 Too Much Mindreading? . . . . . . . . . . . . . . . . . . . . 192
13.8 WhatNow? ........................... 197
vii
14 Mind: a Solution? 199
14.1 Mindreading Is Sometimes Automatic . . . . . . . . . . . . . 200
14.2 Mindreading Is Not Always Automatic . . . . . . . . . . . . 201
14.3 A Dual Process Theory of Mindreading . . . . . . . . . . . . 202
14.4 Speed–Accuracy Trade-Os .................. 204
14.5 What Is a Model of Minds and Actions? . . . . . . . . . . . . 205
14.6 Minimal Models of the Mental . . . . . . . . . . . . . . . . . 207
14.7 Signature Limits in Mindreading . . . . . . . . . . . . . . . . 210
14.8 A Developmental Theory of Mindreading . . . . . . . . . . . 213
14.9 How to Solve the Mindreading Puzzle . . . . . . . . . . . . . 216
14.10 Task Analysis Revisited . . . . . . . . . . . . . . . . . . . . . 218
14.11 Is There Core Knowledge of Minds? . . . . . . . . . . . . . . 219
14.12 Origins of Knowledge of Mind: Rediscovery . . . . . . . . . 219
15 Joint Action 223
15.1 Joint Action vs Parallel but Merely Individual Actions . . . . 224
15.2 SharedIntention......................... 226
15.3 Bratman on Shared Intention . . . . . . . . . . . . . . . . . . 227
15.4 An Inconsistent Triad . . . . . . . . . . . . . . . . . . . . . . 228
15.5 Coordinating Planning . . . . . . . . . . . . . . . . . . . . . 231
15.6 Joint Action in the First Years of Life . . . . . . . . . . . . . 235
15.7 Collective Goals vs Shared Intentions . . . . . . . . . . . . . 239
15.8 Expectations about Collective Goals . . . . . . . . . . . . . . 242
15.9 Conclusion............................ 245
16 Conclusion to Part II 249
16.1 Dual Process Theories . . . . . . . . . . . . . . . . . . . . . . 250
16.2 Pluralism about Models . . . . . . . . . . . . . . . . . . . . . 251
16.3 Goal Tracking Is the Foundation . . . . . . . . . . . . . . . . 252
16.4 When Joint Action Enables Goal Tracking . . . . . . . . . . 253
16.5 Joint Action and the Developmental Emergence of Knowledge 255
Conclusion 259
17 Conclusion 259
17.1 Infants Rely on Minimal Models … . . . . . . . . . . . . . . . 260
17.2 … As Do Adults, Sometimes . . . . . . . . . . . . . . . . . . 261
17.3 PuzzlesMatter.......................... 262
17.4 Linking Problems Abound . . . . . . . . . . . . . . . . . . . 263
17.5 Core Knowledge Isn’t What You Think It Is . . . . . . . . . . 264
17.6 How to Solve Linking Problems . . . . . . . . . . . . . . . . 265
17.7 Representation: Handle with Care . . . . . . . . . . . . . . . 266
viii
17.8 Inferential and Intentional Isolation . . . . . . . . . . . . . . 267
17.9 Rediscovery Is Joint Action . . . . . . . . . . . . . . . . . . . 268
Glossary 271
ix