''ABOUT THIS WORKSHOP: ''\n\nThe topic of this symposium is situated at the current interface between Logic and the Foundations of Physics. The aim is to look at already-established, as well as new connections between the two fields, within the context of recent work on logics of space, time, action and information flow, with an eye towards a wider philosophical perspective.\n\nOf particular interest is the question whether and how the new techniques coming from Logic, Computation and Information Theory might be combined with insights and interpretations in the Philosophy of Physics to gain a better understanding of the main foundational issues and open problems in modern physics. We are interested both in the use of logical and formal methods in theoretical physics and, conversely, in attempts to import ideas and concepts from physics into formal logic.\n\nCurrent trends in Logic highlight several issues of potential interest to Foundations of Physics. First among these trends is the โ€œdynamicโ€ turn in Logic, successfully pursued in the last decades, under the influence of developments in Computer Science, Philosophy, Linguistics, Social Sciences and more recently, Economics in the shape of Game Theory. As a result, several new logical approaches to processes, interaction and communication have been developed, from modal logics (spatial logic, dynamic logic and temporal logic) to linear logic and other resource-sensitive logics, game logics, process algebras, coalgebraic logics etc. For instance, modal logics provide us with formal tools to talk about dynamic systems, but also with a new methodology to deal with them. Dynamic, temporal and game logics can handle a large category of temporal and interactive properties of processes, making them particularly fit for applications to physics. Spatial and topological logics were successfully used to formalize various conceptions of space. The hope is that these logical methods beyond traditional styles of formalizing physical theories will bring physicists, philosophers of physics and logicians closer together.\n\nIndeed, there are already some recent developments which illustrate what we have in mind. One of them is the work of H. Andrรฉka & I. Nรฉmeti on the logical analysis of Relativity Theory, work aimed at providing axiomatic foundations within first-order logic for both Special Relativity and General Relativity. A different, but conceptually related, line of research is the work of I. Pratt -Hartmann on spatial logics, using first-order topological languages to axiomatize Euclidean spaces and applying model-theoretic techniques to analyze the expressivity of these languages, thus providing a logical counterpart to the theory of โ€œMathematical Morphologyโ€. Yet another interesting development is the use of proof-theoretic and category-theoretic methods by S. Abramsky & B. Coecke to analyze the dynamics of quantum information and to provide a new logical axiomatization and a categorical semantics for an โ€œAbstract Quantum Mechanicsโ€. A recent upshot of this work is the โ€œCategorical Quantum Logicโ€, proposed by S. Abramsky and R. Duncan and based on a complete proof-net calculus. A different approach to the same problems is the โ€œQuantum Dynamic Logicโ€ developed by A. Baltag and S. Smets, connecting traditional Quantum Logic (introduced by von Neumann as a non-classical propositional logic with an algebraic semantics) with the recent trend towards a โ€œdynamicโ€ turn in logic. These authors use dynamic modal languages to provide axiomatizations of quantum systems, understood relationally as โ€œtransition systemsโ€ with physically meaningful transition relations (โ€œmeasurementsโ€ and โ€œevolutionsโ€), and to give a logical analysis of information flow in quantum protocols.\n\nBy organizing this symposium now, we celebrate the publication of three books that represent potential new interfaces between Logic and Physics. These are โ€œThe Handbook of Spatial Logicsโ€, edited by M. Aiello, I E. Pratt -Hartmann, & J. van Benthem, the โ€œHandbook on Philosophy of Physicsโ€, edited by J. Butterfield, & J. Earman, but also J. von Neumann's โ€œMathematische Grundlagen der Quantenmechanikโ€. Published 75 years ago, von Neumann's Grundlagen is maybe the perfect example of a work lying at the center of interest of our symposium: the connection between Logic and Physics.\n
<!--{{{-->\n<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>\n<div class='title' macro='view title'></div>\n<div class='editor' macro='edit title'></div>\n<div class='editor' macro='edit text'></div>\n<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>\n<!--}}}-->
<<tiddler MainMenu>>\n\nAuthorMainMenu\nMainMenu\nDefaultTiddlers\nPluginManager\nPresentationIndex\n
<!--{{{-->\n<div id='header' class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>\n<div class='headerShadow'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n<div class='headerForeground'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n</div>\n<div id='mainMenu' refresh='content' tiddler='AuthorMainMenu'></div>\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>\n<!--}}}-->
/***\nPlace your custom CSS here\n***/\n/*{{{*/\n\n\n[[StyleSheetCommon]]\n/*}}}*/\n
<!--{{{-->\n<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler permalink references jump'></div>\n<div class='title' macro='view title'></div>\n<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date [[DD MMM YYYY]]'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date [[DD MMM YYYY]]'></span>)</div>\n<div class='tagging' macro='tagging'></div>\n<div class='tagged' macro='tags'></div>\n<div class='viewer' macro='view text wikified'></div>\n<div class='viewer topbutton' macro='top'></div>\n<br><br>\n<div class='viewer' macro='navigation tiddlers:{{store.getTiddlerText("PresentationIndex").readBracketedList()}}}'></div>\n<div class='tagClear'></div>\n<!--}}}-->
Jos Uffink \nUniversiteit Utrecht\n\nAbstract \n\nIt is well-known that the Bell inequalities provide an experimentally testable gap between the correlations achievable by quantum states and the correlations allowed by physical states in a local hidden-variables theory.\n\nThis talks reviews some recent strengthenings of the Bell inequalities and shows that they open up a second experimental gap, namely, between the correlations allowed by a local hidden-variables theory and the correlations achieveable by non-entangled quantum states.\n\nIt is argued that this second gap calls for new experimental tests and should refocus our understanding of the difference between quantum theory and classical physical theories.\n\n\n
Story.prototype.refreshTiddler_activelink = Story.prototype.refreshTiddler;\nStory.prototype.refreshTiddler = function (title,template,force)\n{\n var theTiddler = Story.prototype.refreshTiddler_activelink.apply(this,arguments);\n if (!theTiddler)\n return theTiddler\n var menu = document.getElementById("mainMenu");\n var links = menu.getElementsByTagName("a");\n for (var i=0; i<links.length; i++)\n {\n if (!links[i].getAttribute("tiddlyLink"))\n return;\n if (document.getElementById(this.idPrefix+(links[i].getAttribute("tiddlylink"))))\n addClass(links[i],"bold");\n else\n removeClass(links[i],"bold");\n }\n return theTiddler;\n}
''For more information'' \n\ncontact the coordinator S. Smets (sonsmets@vub.ac.be) or the members of the organizing committee.
config.options.chkAnimate = false;\nconfig.options.chkSinglePageMode = true;\nconfig.options.chkTopOfPageMode = false;
The tiddler 'New Tiddler' doesn't yet exist. Double-click to create it
[[WELCOME]]
!Dummy Tiddler 3\n\ndummy tiddler three
!Dummy Tiddler1\n\nThis is the first tiddler of your dummy presentation\n\nEdit the PresentationIndex tiddler to change the contents and order of the presentation.\n
!DummyTiddler2\n\nThis is the second tiddler of your dummy presentation
function setFooter() {\n if (document.getElementById && document.getElementById("contentFooter") ) {\n var windowHeight=findWindowHeight();\n if (windowHeight>0) {\n var contentHeight= document.getElementById('mainMenu').offsetHeight + document.getElementById("header").offsetHeight + document.getElementById("contentFooter").offsetHeight;\n var menu= document.getElementById('mainMenu');\n //var footerHeight=footerElement.offsetHeight;\n if (windowHeight-(contentHeight)>=0) {\n menu.style.position='relative';\n menu.style.marginBottom=(windowHeight-(contentHeight))+'px';\n }\n else {\n menu.style.position='';\n menu.style.marginBottom='';\n }\n }\n }\n}\nwindow.onresize = function() {\n setFooter();\n}\n\nStory.prototype.refreshTiddler_footerhack=Story.prototype.refreshTiddler;\nStory.prototype.refreshTiddler = function (title,template,force)\n{ \nvar theTiddler = Story.prototype.refreshTiddler_footerhack.apply(this,arguments);\nsetFooter();\n return theTiddler;}
Ian Pratt - Hartmann\nSchool of Computer Science,\nUniversity of Manchester\n\nAbstract\n\nOne of the many achievements of coordinate geometry has been to\nprovide a conceptually elegant and unifying account of the nature of\ngeometrical entities. According to this account, the one primitive\nspatial entity is the point, and the one primitive geometrical\nproperty of points is coordinate position. Over the years, however,\nvarious authors have expressed disquiet with this conceptual\nscheme. The primary source of the disquiet is the conviction that our\ntheory of space should use only those resources absolutely necessary\nto systematize the data of spatial experience. The question therefore\narises as to whether alternative mathematical models of space are\npossible, in which the primitive spatial entities are not points, but\nregions, and the primitive spatial properties and relations are\nqualitative rather than quantitative. The talk will address this\nquestion, with the main emphasis on topology. Specifically, we ask:\nWhat region-based accounts of the topological structure of space are\npossible? What logical characteristics do they exhibit? How do they\nrelate to the point-based models with which we are so familiar? We\nshow that the possibilities for region-based theories of space are\nsurprisingly constrained, that these theories often exhibit good\nmodel-theoretic behaviour, and that a few simple facts about regions\ncan tell us much about the about the points that, on the standard\naccount of space, make them up.\n
//{{{\nconfig.macros.def ={};\nconfig.macros.def.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n var sliceName = params[1]? params[1].toLowerCase() : params[0].toLowerCase();\n var def = store.getTiddlerSlice("InfoDefinitions",sliceName);\n if (def == undefined)\n {\n wikify(params[0],place);\n return false;\n }\n var theClass = params[2]? params[2] : "info";\n var container = createTiddlyElement(place,"span",null,theClass);\n wikify(params[0],container);\n if (document.all)\n {\n container.onmouseover = function(){addClass(this,"infoover");};\n container.onmouseout = function(){removeClass(this,"infoover");};\n }\n var tooltip = createTiddlyElement(container,"span",null,null);\n wikify(def, tooltip);\n\n}\n\nconfig.macros.note ={};\nconfig.macros.note.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n var sliceName = params[1]? params[1].toLowerCase() : params[0].toLowerCase();\n var def = store.getTiddlerSlice("InfoDefinitions",sliceName);\n if (def == undefined)\n {\n wikify(params[0],place);\n return false;\n }\n var theClass = params[2]? params[2] : "note";\n var container = createTiddlyElement(place,"span",null,theClass);\n wikify("^^"+params[0]+"^^",container);\n if (document.all)\n {\n container.onmouseover = function(){addClass(this,"noteover");};\n container.onmouseout = function(){removeClass(this,"noteover");};\n }\n var tooltip = createTiddlyElement(container,"span",null,null);\n wikify(def, tooltip);\n\n}\n\n//}}}\n
''List of Speakers:''\n\nThe symposium consists of three main sections. The talks in the main sections will be followed by a commentary and discussion.\n\n'' Introduction'' \nJ. van Benthem\n\n'' I. Quantum Theory and Logic:'' \nS. Abramsky \n{{indent{ + Commentator: B. Spitters\nB. Coecke \n{{indent{ + Commentator: C. Heunen\nA. Baltag & S. Smets \n{{indent{ + Commentator: J. van Eijck\n\n'' II. Logic, Space and Relativity:'' \nH. Andrรฉka & I. Nรฉmeti \n{{indent{ + Commentator: T. Mueller\nI. Pratt - Hartmann \n{{indent{ + Commentator: M. Aiello\n\n'' III. Philosophy, Foundations of Physics and Logic:'' \nD. Dieks \n{{indent{ + Commentator: F.A Muller\nJ. Uffink \n{{indent{ + Commentator: R. Gill\nK. Landsman \n{{indent{ + Commentator: I. Stubbe\n\n\n
'' LOCATION '' \n\n[[Universiteit Utrecht|http://www.uu.nl/uupublish/homeuu/1main.html]] , The Netherlands.\n\nThe Symposium takes place at the Campus De Uithof, Wentgebouw N020\n\nFrom the railstation "Utrecht Centraal" take bus 12 or 12s till the first bus\nstop on the campus Uithof (Sorbonnelaan). The Wentgebouw is at Sorbonnelaan 16.\n\n[[Map Campus Utrecht University|http://www.uu.nl/uupublish/homeuu/homeenglish/aboututrechtuniv/addressesandmaps/mapofuniversityc/6343main.html]]
/***\n|''Name:''|LegacyStrikeThroughPlugin|\n|''Description:''|Support for legacy (pre 2.1) strike through formatting|\n|''Version:''|1.0.1|\n|''Date:''|Jul 21, 2006|\n|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|\n|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|\n|''License:''|[[BSD open source license]]|\n|''CoreVersion:''|2.1.0|\n|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|\n\n***/\n\n//{{{\n\n// Ensure that the LegacyStrikeThrough Plugin is only installed once.\nif(!version.extensions.LegacyStrikeThroughPlugin)\n {\n version.extensions.LegacyStrikeThroughPlugin = true;\n\nconfig.formatters.push(\n{\n name: "legacyStrikeByChar",\n match: "==",\n termRegExp: /(==)/mg,\n element: "strike",\n handler: config.formatterHelpers.createElementAndWikify\n});\n\n} // end of "install only once"\n//}}}\n
__[[WELCOME]]__\n\n__[[ABOUT THIS WORKSHOP]]__\n\n__[[LOCATION]]__\n\n__[[LIST OF SPEAKERS]]__\n\n__[[PROGRAMME]]__\n\n__[[ORGANIZING COMMITTEE]]__\n\n__[[CONTACT]]__\n\n__[[SPONSORS]]__
// Resolves a Tiddler reference or tiddler title into a tiddler title string, or null if it doesn't exist\nresolveTitle = function(t)\n{\n if (t instanceof Tiddler) t = t.title;\n return store.tiddlerExists(t) ? t : null;\n}\n\nconfig.macros.navigation = {};\nconfig.macros.navigation.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n\n if (!store.tiddlerExists(tiddler.title))\n return false;\n var e = createTiddlyElement(place,"span",null,"nav");\n e.setAttribute("refresh","macro");\n e.setAttribute("macroName",macroName);\n e.setAttribute("params",paramString);\n e.setAttribute("tiddler",tiddler.title)\n this.refresh(e,paramString);\n}\n\nconfig.macros.navigation.refresh = function(place,params)\n{\n var tiddler = store.getTiddler(place.getAttribute("tiddler"));\n removeChildren(place);\n\n\n var params = place.getAttribute("params").parseParams("tiddlers",null,true);\n//alert(store.getTiddlerText(getParam(params,"index",undefined)).parseParams("tiddlers",null,false))\n var tiddlers = getParam(params,"tiddlers",undefined);\nif (typeof tiddlers == 'string')\n tiddlers = tiddlers.readBracketedList();\n if (tiddlers == undefined)\n alert("no source tiddlers defined for navigation");\n var contents = [];\n for (var i=0;i<tiddlers.length;i++)\n {\n var title = resolveTitle(tiddlers[i]);\n contents.push(title);\n}\n var navIndex = contents.indexOf(tiddler.title);\n if (navIndex == -1)\n return false;\n \n if (contents[navIndex-1])\n {\n wikify("[[<< Previous|"+contents[navIndex-1]+"]]",place);\n place.lastChild.className += " navPrev";\n }\n if (contents[navIndex+1])\n {\n wikify("[[Next >>|"+contents[navIndex+1]+"]]",place);\n place.lastChild.className += " navNext";\n }\n\n var theTable = createTiddlyElement(place,"table",null,"nav");\n var theBody = createTiddlyElement(theTable,"tbody");\n var theRow = createTiddlyElement(theBody,"tr");\n for (var i=0; i<contents.length; i++)\n {\n var box = createTiddlyElement(theRow,"td",null,"navlinkcell"," ");\n box.onclick = onClickTiddlerLink;\n box.setAttribute("tiddlyLink",contents[i]);\n box.title = (contents[i]);\n if (contents[i] ==tiddler.title)\n box.className += " activenav";\n }\n}\n\nsetStylesheet(\n".navNext {float:right;}\sn"+\n".navPrev, .navPrevious{float:left;}\sn"+\n".nav .tiddlyLink {color:#000; background:transparent;border:none;padding:0;margin:0;}\sn"+\n".nav {padding:0;margin:0;}\sn"+\n".nav table {margin:0 auto !important; border:0px solid #000;padding:0;border-collapse:separate;}\sn"+\n".nav table tr{padding:0; margin:0;border-spacing: 1px;}\sn"+\n".nav table td {padding:4px; border:1px solid #000; border-spacing: 0px;cursor:pointer;cursor:hand}\sn"+\n".nav .activenav{background:#000 !important;}\sn","NavigationPluginStyles");
''MEMBERS OF THE ORGANIZING COMMITTEE:''\n\n[[Johan van Benthem|http://staff.science.uva.nl/~johan/]]\n[[Dennis Dieks|http://www.phys.uu.nl/igg/dieks/]]\n[[Anne Kox|http://home.medewerker.uva.nl/a.j.kox/]]\n[[Albert Visser|http://www.let.uu.nl/~ctl/docenten/visser.html]]
__''PROGRAMME:''__\n\n\n09:00 โ€“ 9:15 J. van Benthem : //Opening//\n\n09:15 โ€“ 10:00 : S. Abramsky : //Categorical axiomatics of No- Cloning and No- Deleting// \n {{indent{ commentator : B. Spitters\n\n10:00 โ€“ 10:45 : B. Coecke : //Classical structures from quantum tensor structures// \n {{indent{ commentator : C. Heunen\n\n10:45 โ€“ 11:00 COFFEE BREAK\n\n11:00 โ€“ 11:45 : D. Dieks: //Weak Discernibility, Structuralism, and Identical Quantum Particles// \n {{indent{ commentator : F.A. Muller\n\n11:45 โ€“ 12:30 : I. Pratt- Hartmann: //__[[From Points to Regions and Back Again]]__// \n {{indent{ commentator : M. Aiello\n\n__LUNCH BREAK__\n\n14:00 โ€“ 15:15 : H. Andrรฉka & I. Nรฉmeti: //__[[Relativity theory and logic (two- way connections)]]__// \n {{indent{ commentator : T. Mueller\n\n15:15 โ€“ 16:00 : K. Landsman: //__[[Topos theory and quantum physics]]__// \n {{indent{ commentator : I. Stubbe\n\n16:00 โ€“ 16:15 COFFEE BREAK\n\n16:15 โ€“ 17:00 : J. Uffink : //__[[Bell inequalities and local hidden variable theories revisited]]__// \n {{indent{ commentator : R. Gill\n\n17:00 โ€“ 17:45 : A. Baltag & S. Smets : //A Dynamic- Logical Perspective on Quantum Behavior// \n {{indent{ commentator : J. van Eijck\n\n\n
<!--{{{-->\n<div id="header" class='header'>\n <div class='gradient' macro='gradient vert #EF9934 #C86719 '>\n <div class='titleLine' >\n <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n <span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n </div>\n\n </div>\n\n</div>\n<div id='bodywrapper'>\n\n<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\n<div id='displayArea'>\n <div id='messageArea'></div>\n <div id='tiddlerDisplay'></div>\n</div>\n<div id='contentFooter' refresh='content' tiddler='contentFooter'></div>\n</div>
[[ABOUT THIS WORKSHOP]]
//{{{\nTiddlyWiki.prototype.removeNotification = function(title,fn) {\n for (var i=0;i<this.namedNotifications.length;i++)\n if((this.namedNotifications[i].name == title) && (this.namedNotifications[i].notify == fn))\n this.namedNotifications.splice(i,1);\n}\n \n//checks to see if a tiddler exists in store or as a shadow.\nTiddlyWiki.prototype.isTiddler= function (title)\n {return store.tiddlerExists(title) || store.isShadowTiddler(title)}\n\n// Refresh all tiddlers in the Story\nStory.prototype.lewcidrefreshAllTiddlers = function()\n{\n var place = document.getElementById(this.container);\n var e = place.firstChild;\n if(!e) return;\n this.refreshTiddler(e.getAttribute("tiddler"),null,true);\n while((e = e.nextSibling) != null)\n this.refreshTiddler(e.getAttribute("tiddler"),null,true);\n}\n\nconfig.presentationPlugin ={\n};\n\nconfig.presentationPlugin.defaults = [\n {name: "StyleSheet", notify: refreshStyles},\n {name: "PageTemplate", notify: refreshPageTemplate}\n ];\n\nwindow.presentationMode='';\n\nfunction applyPresentationMode (oldMode,Mode)\n{\n presentationMode = Mode;\n var defaults = config.presentationPlugin.defaults;\n var oldStyleElement = document.getElementById(oldMode+"StyleSheet");\n if (oldStyleElement)\n {\n oldStyleElement.parentNode.removeChild(oldStyleElement);\n }\n for (var i=0; i<defaults.length; i++)\n {\n var def = defaults[i]["name"];\n var newMode = store.isTiddler(Mode + def)? Mode + def : def;\n store.removeNotification(oldMode + def, defaults[i]["notify"]);\n store.addNotification(newMode,defaults[i]["notify"]);\n store.notify(newMode); //just one do blanket notify instead?\n }\n story.lewcidrefreshAllTiddlers();\n}\n\nconfig.macros.author={};\nconfig.macros.author.handler= function (place,macroName,params,wikifier,paramString,tiddler) {\n var e = createTiddlyElement(place,"div");\n e.setAttribute("refresh","macro");\n e.setAttribute("macroName","author");\n e.setAttribute("params",paramString);\n this.refresh(e,paramString);\n}\n\nconfig.macros.author.refresh = function(place,params){\n if (window.lewcideditmode== false)\n return false;\n removeChildren(place);\n var oldMode = window.presentationMode;\n var newMode = (oldMode == "Author")?"":"Author";\n var label = (oldMode == "Author")? "Presentation Mode":"Author Mode";\n var tooltip = label;\n createTiddlyButton(place,label,tooltip,function() {\n applyPresentationMode(oldMode,newMode);\n });\n};\n\nStory.prototype.chooseTemplateForTiddler_old_presentation = Story.prototype.chooseTemplateForTiddler;\n\nStory.prototype.chooseTemplateForTiddler = function(title,template)\n{\n if (!template)\n template = DEFAULT_VIEW_TEMPLATE;\n var mode = presentationMode;\n if (template == DEFAULT_VIEW_TEMPLATE)\n {\n if (store.isTiddler(mode+"ViewTemplate"))\n return mode+"ViewTemplate";\n }\n else if (template == DEFAULT_EDIT_TEMPLATE)\n {\n if (store.isTiddler(mode+"EditTemplate"))\n return mode+"EditTemplate";\n }\n return this.chooseTemplateForTiddler_old_presentation(title,template);\n}\n\nwindow.lewcideditmode = false;\nconfig.paramifiers.author = {\n onstart: function(v) {\n if (v!="true")\n return false;\n applyPresentationMode("","Author");\n window.lewcideditmode = true;\n if (config.options.chkSinglePageMode)\n config.options.chkSinglePageMode = false;\n refreshDisplay();\n }\n};\n//}}}
Andreka, H. and Nemeti, I.\n\nAbstract\n\nWe present logic based conceptual analysis for at least 3 incarnations of\nrelativity theory. These theories are: special relativity (SR), general\nrelativity (GR), and a theory capturing the transition from SR to GR called\nrelativity theory of accelerated observers. All 3 theories are built up\npurely in first-order logic and we strive for simplicity, convincingness,\nand transparency of our axioms. Obtaining completeness theorems for our\naxiomatic theories is not the end but rather the starting point of our\nconceptual analysis. Black hole theory and observation enrich the\nperspective.\n\nIndependently of the above classification, we will approach the theory of\nrelativity on two different levels of abstraction: (i) space-time oriented\napproach, and (ii) relativistic dynamics including e.g. Einstein's famous\nE=mc^2. Our conceptual analysis of dynamics is built up exclusively in\nfirst-order logic and it is based on the same kind of simple geometric\naxioms as our space-time oriented approach is based.\n\nBesides applying logic to relativity, we will also indicate applications of\nrelativity to logic in several ways (including a bold direct way).\n\nIn our conceptual analysis we adhere to the idea in Johan's 1995 paper of\nusing many small theories and interpretations acting between them, instead\nof using one huge theory. The same philosophy is advocated in\nBurstall- Goguen's "Putting theories together to make specifications" paper.\n\nThe reported work is joint with Judit X. Madarasz and Gergely Szekely.
This symposium is sponsored by:\n\nThe Evert Willem Beth Stichting: http://www.knaw.nl/beth/home.html\n\nThe Heyting stichting\n\nDisciplinegroep Theoretische filosofie Universiteit Utrecht: http://www.phil.uu.nl/onderzoek/theoretisch.shtml
/***\n|''Name:''|SinglePageModePlugin|\n|''Source:''|http://www.TiddlyTools.com/#SinglePageModePlugin|\n|''Author:''|Eric Shulman - ELS Design Studios|\n|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n|''~CoreVersion:''|2.0.10|\n\nNormally, as you click on the links in TiddlyWiki, more and more tiddlers are displayed on the page. The order of this tiddler display depends upon when and where you have clicked. Some people like this non-linear method of reading the document, while others have reported that when many tiddlers have been opened, it can get somewhat confusing.\n\n!!!!!Usage\n<<<\nSinglePageMode allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one item displayed at a time. When SinglePageMode is enabled, the title of the current tiddler is automatically displayed in the browser window's titlebar and the browser's location URL is updated with a 'permalink' for the current tiddler so that it is easier to create a browser 'bookmark' for the current tiddler.\n\nEven when SinglePageMode is disabled (i.e., displaying multiple tiddlers is permitted), you can reduce the potential for confusion by enable TopOfPageMode, which forces tiddlers to always open at the top of the page instead of being displayed following the tiddler containing the link that was clicked.\n<<<\n!!!!!Configuration\n<<<\nWhen installed, this plugin automatically adds checkboxes in the AdvancedOptions tiddler so you can enable/disable the plugin behavior. For convenience, these checkboxes are also included here:\n\n<<option chkSinglePageMode>> Display one tiddler at a time\n<<option chkTopOfPageMode>> Always open tiddlers at the top of the page\n<<<\n!!!!!Installation\n<<<\nimport (or copy/paste) the following tiddlers into your document:\n''SinglePageModePlugin'' (tagged with <<tag systemConfig>>)\n^^documentation and javascript for SinglePageMode handling^^\n\nWhen installed, this plugin automatically adds checkboxes in the ''shadow'' AdvancedOptions tiddler so you can enable/disable this behavior. However, if you have customized your AdvancedOptions, you will need to ''manually add these checkboxes to your customized tiddler.''\n<<<\n!!!!!Revision History\n<<<\n''2006.07.04 [2.2.1]'' in hijack for displayTiddlers(), suspend TPM as well as SPM so that DefaultTiddlers displays in the correct order.\n''2006.06.01 [2.2.0]'' added chkTopOfPageMode (TPM) handling\n''2006.02.04 [2.1.1]'' moved global variable declarations to config.* to avoid FireFox 1.5.0.1 crash bug when assigning to globals\n''2005.12.27 [2.1.0]'' hijack displayTiddlers() so that SPM can be suspended during startup while displaying the DefaultTiddlers (or #hash list). Also, corrected initialization for undefined SPM flag to "false", so default behavior is to display multiple tiddlers\n''2005.12.27 [2.0.0]'' Update for TW2.0\n''2005.11.24 [1.1.2]'' When the back and forward buttons are used, the page now changes to match the URL. Based on code added by Clint Checketts\n''2005.10.14 [1.1.1]'' permalink creation now calls encodeTiddlyLink() to handle tiddler titles with spaces in them\n''2005.10.14 [1.1.0]'' added automatic setting of window title and location bar ('auto-permalink'). feature suggestion by David Dickens.\n''2005.10.09 [1.0.1]'' combined documentation and code in a single tiddler\n''2005.08.15 [1.0.0]'' Initial Release\n<<<\n!!!!!Credits\n<<<\nThis feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].\nSupport for BACK/FORWARD buttons adapted from code developed by Clint Checketts\n<<<\n!!!!!Code\n***/\n//{{{\nStory.prototype.displayTiddler = function(srcElement,title,template,animate,slowly)\n{\n var place = document.getElementById(this.container);\n var theTiddler = document.getElementById(this.idPrefix + title);\n if(theTiddler)\n this.refreshTiddler(title,template);\n else\n {\n var before = this.positionTiddler(srcElement);\n theTiddler = this.createTiddler(place,before,title,template);\n }\n if(srcElement && typeof srcElement !== "string")\n {\n if(anim && config.options.chkAnimate && (animate == undefined || animate == true))\n anim.startAnimating(new Cascade(title,srcElement,theTiddler,slowly),new Scroller(theTiddler,slowly));\n else\n window.scrollTo(0,0);\n }\n}\n\n\n\nversion.extensions.SinglePageMode= {major: 2, minor: 2, revision: 1, date: new Date(2006,7,3)};\n\nconfig.options.chkSinglePageMode=true;\n\nif (config.options.chkSinglePageMode==undefined) config.options.chkSinglePageMode=false;\nconfig.shadowTiddlers.AdvancedOptions += "\sn<<option chkSinglePageMode>> Display one tiddler at a time";\n\nif (config.options.chkTopOfPageMode==undefined) config.options.chkTopOfPageMode=false;\nconfig.shadowTiddlers.AdvancedOptions += "\sn<<option chkTopOfPageMode>> Always open tiddlers at the top of the page";\n\nconfig.SPMTimer = 0;\nconfig.lastURL = window.location.hash;\nfunction checkLastURL()\n{\n if (!config.options.chkSinglePageMode)\n { window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }\n if (config.lastURL == window.location.hash)\n return;\n var tiddlerName = convertUTF8ToUnicode(decodeURI(window.location.hash.substr(1)));\n tiddlerName=tiddlerName.replace(/\s[\s[/,"").replace(/\s]\s]/,""); // strip any [[ ]] bracketing\n if (tiddlerName.length) story.displayTiddler(null,tiddlerName,1,null,null);\n}\n\nif (Story.prototype.SPM_coreDisplayTiddler==undefined) Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;\nStory.prototype.displayTiddler = function(srcElement,title,template,animate,slowly)\n{\n if (config.options.chkSinglePageMode) {\n window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));\n config.lastURL = window.location.hash;\n document.title = wikifyPlain("SiteTitle") + " - " + title;\n story.closeAllTiddlers();\n if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);\n }\n if (config.options.chkTopOfPageMode) { story.closeTiddler(title); window.scrollTo(0,0); srcElement=null; }\n this.SPM_coreDisplayTiddler(srcElement,title,template,animate,slowly)\n}\n\nif (Story.prototype.SPM_coreDisplayTiddlers==undefined) Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;\nStory.prototype.displayTiddlers = function(srcElement,titles,template,unused1,unused2,animate,slowly)\n{\n // suspend single-page mode when displaying multiple tiddlers\n var saveSPM=config.options.chkSinglePageMode; config.options.chkSinglePageMode=false;\n var saveTPM=config.options.chkTopOfPageMode; config.options.chkTopOfPageMode=false;\n this.SPM_coreDisplayTiddlers(srcElement,titles,template,unused1,unused2,animate,slowly);\n config.options.chkSinglePageMode=saveSPM; config.options.chkTopOfPageMode=saveTPM;\n}\n//}}}
Utrecht, January 11, 2008
Symposium on Logic and Physics
\n/***\nPlace your custom CSS here\n***/\n/*{{{*/\n\n\n[[SideBarWG]]\n\n/***\n!Top Menu Styles\n***/\n/*{{{*/\n#topMenu br {display:none; }\n#topMenu { background: #000 ; color:#fff;padding: 1em 1em;}\n/*}}}*/\n\n/***\n!General\n***/\n/*{{{*/\nbody {\n background: #444;\n margin: 0 auto;\n}\n\n #contentWrapper{\n background: #fff;\n border: 0;\n margin: 0 1em;\n\n padding:0;\n}\n/*}}}*/\n\n/***\n!Header rules\n***/\n/*{{{*/\n.titleLine{\n margin: 68px 3em 0em 0em;\nmargin-left:1.7em;\nmargin-bottom: 28px;\n padding: 0;\n text-align: left;\n color: #fff;\n}\n\n.siteTitle {\n font-size: 2em;\n font-weight: bold;\n}\n\n.siteSubtitle {\n font-size: 1.1em;\n display: block;\n margin: .5em auto 1em;\n}\n\n.gradient {margin: 0 auto; border-bottom:1px solid #000;}\n\n\n\n.header {\n background: #fff; \n margin: 0 0em;\n padding:0 12px;\n\n}\n/*}}}*/\n\n/***\n!Display Area\n***/\n/*{{{*/\n#bodywrapper {margin:0 12px; padding:0;background:#fff; height:1%}\n\n#displayArea{\n margin: 0em 16em 0em 14em;\n text-align: left;\n}\n\n.tiddler {\n padding: 1em 1em 0em 0em;\n}\n\nh1,h2,h3,h4,h5 { color: #000; background: transparent; padding-bottom:2px; border-bottom: 1px dotted #666; }\n.title {color:black; font-size:1.8em; border-bottom:1px solid #333; padding-bottom:0.3px;}\n.subtitle { font-size:90%; color:#ccc; padding-left:0.25em; margin-top:0.1em; }\n\n.shadow .title {\n color: #aaa;\n}\n\n.tagClear{\n clear: none; \n}\n\n* html .viewer pre {\n margin-left: 0em;\n}\n\n* html .editor textarea, * html .editor input {\n width: 98%;\n}\n\n.tiddler {margin-bottom:1em; padding-bottom:0em;}\n\n\n.toolbar .button {color:#bbb; border:none;}\n.toolbar .button:hover, .toolbar .highlight, .toolbar .marked, .toolbar a.button:active {background:transparent; color:#111; border:none; text-decoration:underline;}\n\n#sidebar .highlight, #sidebar .marked {background:transparent;}\n\n.tagging, .tagged {\n border: 1px solid #eee;\n background-color: #F7F7F7;\n}\n\n.selected .tagging, .selected .tagged {\n background-color: #eee;\n border: 1px solid #bbb;\n}\n\n .tagging .listTitle, .tagged .listTitle {\n color: #bbb;\n}\n\n.selected .tagging .listTitle, .selected .tagged .listTitle {\n color: #222; \n}\n\n\n.tagging .button:hover, .tagged .button:hover {\n border: none; background:transparent; text-decoration:underline; color:#000;\n}\n\n.tagging .button, .tagged .button {\n color:#aaa;\n}\n\n.selected .tagging .button, .selected .tagged .button {\n color:#000;\n}\n\n.viewer blockquote {\n border-left: 3px solid #000;\n}\n\n.viewer pre, .viewer code {\n border: 1px dashed #ccc;\n background: #eee;}\n\n.viewer hr {\n border: 0;\n border-top: solid 1px #333;\n margin: 0 8em;\n color: #333;\n}\n\n.highlight, .marked {background:transparent; color:#111; border:none; text-decoration:underline;}\n\n.viewer .highlight, .viewer .marked {text-decoration:none;}\n\n#sidebarTabs .highlight, #sidebarTabs .marked {color:#000; text-decoration:none;}\n\n.tabSelected {\n color: #000;\n background: #fff;\n border-top: solid 1px #ccc;\n border-left: solid 1px #ccc;\n border-right: solid 1px #ccc;\n border-bottom: none;\n}\n\n.viewer .tabSelected:hover{color:#000;}\n\n.viewer .tabSelected {font-weight:bold;}\n\n.tabUnselected {\n color: #999;\n background: #eee;\n border-top: solid 1px #ccc;\n border-left: solid 1px #ccc;\n border-right: solid 1px #ccc;\n border-bottom: solid 1px #ccc;\n padding-bottom:1px;\n}\n\n.tabContents {\n background: #fff;\n color: #000;\n}\n/*}}}*/\n/***\n!!!Tables\n***/\n/*{{{*/\n.viewer table {\n border: 1px solid #000;\n}\n\n.viewer th, thead td {\n background: #000;\n border: 1px solid #000;\n color: #fff;\n}\n\n.viewer td, .viewer tr {\n border: 1px solid #111; padding:4px;\n}\n/*}}}*/\n\n\n/***\n!!!Editor area\n***/\n/*{{{*/\n.editor input, .editor textarea {\n border: 1px solid #ccc;\n}\n\n.editor {padding-top:0.3em;}\n\n.editor textarea:focus, .editor input:focus {\n border: 1px solid #333;\n}\n/*}}}*/\n\n/***\n!Sidebar\n***/\n/*{{{*/\n#sidebar{\nposition:relative;\nfloat:right;\nmargin-bottom:1em;\ndisplay:inline;\nwidth: 16em;\n}\n\n#sidebarOptions .sliderPanel {\n background: #eee; border:1px solid #ccc;\n}\n\n/*}}}*/\n\n/***\n!Body Footer rules\n***/\n/*{{{*/\n#contentFooter {\n text-align: center;\n clear: both;\n color:#fff;\n background: #000;\n padding: 1em 2em;\nfont-weight:bold;\n}\n\n/*}}}*/\n/***\n!Link Styles\n***/\n/*{{{*/\na{\n color: #000;\n}\n\na:hover{\n color: #ED700B;\n background:#fff;\n}\n\n\n.button {\n color: #000;\n border: 1px solid #fff;\n}\n\n.button:hover {\n color: #fff;\n background: #ED700B;\n border-color: #000;\n}\n\n.button:active {\n color: #fff;\n background: #ED700B;\n border: 1px solid #000;\n}\n\n.tiddlyLink {border-bottom: 1px dotted #000;}\n.tiddlyLink:hover {border-bottom: 1px dotted #ED700B;} \n\n.titleLine a {border-bottom: 1px dotted #FF9900;}\n\n.titleLine a:hover {border-bottom: 1px dotted #fff;}\n\n.siteTitle a, .siteSubtitle a{\n color: #fff;\n}\n\n.viewer .button {border: 1px solid #ED700B; font-weight:bold;}\n.viewer .button:hover, .viewer .marked, .viewer .highlight{background:#ED700B; color:#fff; font-weight:bold; border: 1px solid #000;}\n\n#topMenu .button, #topMenu .tiddlyLink {\n margin-left:0.5em; margin-right:0.5em;\n padding-left:3px; padding-right:3px;\n color:white; font-weight:bold;\n}\n#topMenu .button:hover, #topMenu .tiddlyLink:hover { background:#000; color:#FF8814}\n\n#topMenu a{border:none;}\n/*}}}*/\n\n/***\n!Message Area /%=================================================%/\n***/\n/*{{{*/\n#messageArea {\n border: 4px dotted #ff8614;\n background: #000;\n color: #fff;\n font-size:90%;\n}\n\n#messageArea .button {\n padding: 0.2em;\n color: #000;\n background: #fff;\n text-decoration:none;\n font-weight:bold;\n border:1px solid #000; \n}\n\n#messageArea a {color:#fff;}\n\n#messageArea a:hover {color:#ff8614; background:transparent;}\n\n#messageArea .button:hover {background: #FF8614; color:#fff; border:1px solid #fff; }\n\n/*}}}*/\n\n/***\n!Popup /%=================================================%/\n***/\n/*{{{*/\n.popup {\n background: #ff8814;\n border: 1px solid #333;\n}\n\n.popup hr {\n color: #333;\n background: #333;\n border-bottom: 1px;\n}\n\n.popup li.disabled {\n color: #333;\n}\n\n.popup li a, .popup li a:visited {\n color: #eee;\n border: none;\n}\n\n.popup li a:hover {\n background: #ff8614;\n color: #fff;\n border: none;\n text-decoration:underline;\n}\n\n.searchBar {float:right; font-size:1em;}\n.searchBar .button {display:block; border:none; color:#ccc; }\n.searchBar .button:hover{border:none; color:#eee;}\n\n.searchBar input{\n border: 1px inset #000; background:#EFDFD1; width:10em; margin:0;\n}\n\n.searchBar input:focus {\n border: 1px inset #000; background:#fff;\n}\n\n*html .titleLine {margin-right:1.3em;}\n\n*html .searchBar .button {margin-left:1.7em;}\n\n .HideSideBarButton {float:right;} \n/*}}}*/\n\n.blog h2, .blog h3, .blog h4{\n margin:0;\n padding:0;\nborder-bottom:none;\n}\n.blog {margin-left:1.5em;} \n\n\n.blog .excerpt {\n margin:0;\nmargin-top:0.3em;\n padding: 0;\n margin-left:1em;\n padding-left:1em;\n font-size:90%;\n border-left:1px solid #ddd;\n}\n\n#tiddlerWhatsNew h1, #tiddlerWhatsNew h2 {border-bottom:none;}\ndiv[tags~="RecentUpdates"], div[tags~="lewcidExtension"] {margin-bottom: 2em;}\n\n#hoverMenu .button, #hoverMenu .tiddlyLink {border:none; font-weight:bold; background:#f37211; color:#fff; padding:0 5px; float:right; margin-bottom:4px;}\n#hoverMenu .button:hover, #hoverMenu .tiddlyLink:hover {font-weight:bold; border:none; color:#f37211; background:#000; padding:0 5px; float:right; margin-bottom:4px;}\n\n#topMenu .fontResizer {float:right;}\n\n#topMenu .fontResizer .button{border:1px solid #000;}\n#topMenu .fontResizer .button:hover {border:1px solid #f37211; color:#fff;}\n#sidebarTabs .txtMainTab .tiddlyLinkExisting {\n font-weight: normal;\n font-style: normal;\n}\n\n#sidebarTabs .txtMoreTab .tiddlyLinkExisting {\n font-weight: bold;\n font-style: normal;\n}\n\n\n\n\n\n#displayArea {margin-right:1em;}\n\n.headerShadow {\n position: relative;\n padding: 2.5em 0em 1em 1em;\n left: -1px;\n top: -1px;\n}\n\n.headerForeground {\n position: absolute;\n padding: 2.5em 0em 1em 1em;\n left: 0px;\n top: 0px;\n}\n\n.siteTitle {\n font-size: 2.5em;\n}\n\n.siteSubtitle {\n font-size: 1.2em;\n}\n\n#mainMenu {float:left; position:relative;}\n\n\n.viewer .button {border: 1px solid #ED700B; font-weight:bold;}\n.viewer .button:hover, .viewer .marked, .viewer .highlight{background:#ED700B; color:#fff; font-weight:bold; border: 1px solid #ED700B;}\n[[StyleSheetCommon]]\n#contentFooter .tiddlyLink {\n color:#fff;\n}\n/*}}}*/\n\n
.centre {text-align:center; margin:0;}\n.centre img {margin:0 auto;}\n\n.title, h1 {font-size: 1.6em; font-weight:bold; background:transparent; margin-top:0;margin-bottom:0; color:#000;}\n\nh2 {font-size: 1.45em; font-weight:bold; background:transparent; margin-top:0;margin-bottom:0; color:#000;}\n\n#mainMenu {width:14em;}\n#displayArea {margin-left:18em;}\n\n.left {float:left; margin-right:1em;}\n.bold {font-weight:bold;}\n\n\n\n.topbutton button, .topbutton{float:right;}\n\n.note{\n position:relative; /*this is the key*/\n z-index:24; background:#ccc;\n color:#000;\n text-decoration:none}\n\n.note:hover, .noteover{z-index:25; background-color:#FFB865;cursor:help;}\n\n.note span{display: none;}\n\n.note:hover span, .noteover span{ /*the span will display just on :hover state*/\n display:block;\n position:absolute;\n top:2em; left:2em; width:15em;\n border:1px solid #000;\n background-color:#FFB35A; color:#000;\n padding:0.5em;}\n\n\n\n.info{\n position:relative; /*this is the key*/\n z-index:24; background:#ccc;\n color:#000;\n text-decoration:none}\n\n.info:hover, .infoover{z-index:25; background-color:#FFB865;cursor:help;}\n\n.info span{display: none}\n\n.info:hover span, .infoover span{ /*the span will display just on :hover state*/\n display:block;\n position:absolute;\n top:2em; left:2em; width:15em;\n border:1px solid #000;\n background-color:#FFB35A; color:#000;\n padding:0.5em;}\n\n.bold {font-weight: bold !important;}
Tiddler.prototype.getSubtitle = function()\n{\n return(this.title);\n}
config.macros.top={};\nconfig.macros.top.handler=function(place,macroName)\n{\n createTiddlyButton(place,"^","jump to top",this.onclick);\n}\nconfig.macros.top.onclick=function()\n{\n window.scrollTo(0,0);\n};
Klaas Landsman \nRadboud Universiteit Nijmegen\n\nAbstract \n\nMac Lane and Moerdijk start their book "Sheaves in geometry\nand logic: A first introduction to topos theory" (Springer, 1994)\nwith the words: "A startling aspect of topos theory is that it\nunifies two seemingly wholly distinct mathematical subjects: on the\none hand, topology and algebraic geometry and on the other hand,\nlogic and set theory." For precisely this reason, topos theory in\naddition provides a suitable framework for quantum physics and\npossibly also quantum gravity, which so far had lacked suitable\ngeneralized notions of space and (intuitionistic) logic. We provide\nan introduction to the entire area, followed by an outline of the\n"Nijmegen topos" as the right place to do quantum physics.
/***\nContains the stuff you need to use Tiddlyspot\nNote you must also have UploadPlugin installed\n***/\n//{{{\n\n// edit this if you are migrating sites or retrofitting an existing TW\nconfig.tiddlyspotSiteId = 'symposium';\n\n// make it so you can by default see edit controls via http\nconfig.options.chkHttpReadOnly = false;\nwindow.readOnly = false; // make sure of it (for tw 2.2)\n\n// disable autosave in d3\nif (window.location.protocol != "file:")\n config.options.chkGTDLazyAutoSave = false;\n\n// tweak shadow tiddlers to add upload button, password entry box etc\nwith (config.shadowTiddlers) {\n SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';\n SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");\n OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");\n DefaultTiddlers = DefaultTiddlers.replace(/^/,"WelcomeToTiddlyspot]] ");\n MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");\n}\n\n// create some shadow tiddler content\nmerge(config.shadowTiddlers,{\n\n'WelcomeToTiddlyspot':[\n "This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",\n "",\n "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below. Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",\n "<<tiddler TspotControls>>",\n "See also GettingStarted.",\n "",\n "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \s"save to web\s" button in the column on the right.",\n "",\n "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick. You can make changes and save them locally without being connected to the Internet. When you're ready to sync up again, just click \s"upload\s" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",\n "",\n "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",\n "",\n "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."\n].join("\sn"),\n\n'TspotControls':[\n "| tiddlyspot password:|<<option pasUploadPassword>>|",\n "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<<br>>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",\n "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"\n].join("\sn"),\n\n'TspotSidebar':[\n "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"\n].join("\sn"),\n\n'TspotOptions':[\n "tiddlyspot password:",\n "<<option pasUploadPassword>>",\n ""\n].join("\sn")\n\n});\n//}}}\n
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |\n| 30/10/2007 22:48:11 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 30/10/2007 22:48:39 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 30/10/2007 23:13:26 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 30/10/2007 23:24:12 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 30/10/2007 23:27:47 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 30/10/2007 23:28:36 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 30/10/2007 23:31:52 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 30/10/2007 23:33:6 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 31/10/2007 0:2:55 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 31/10/2007 0:4:16 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 31/10/2007 0:6:14 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 31/10/2007 0:7:3 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 31/10/2007 0:7:12 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok | Ok |\n| 31/10/2007 0:9:41 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 31/10/2007 0:9:54 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 31/10/2007 0:10:43 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 31/10/2007 0:15:55 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 31/10/2007 0:16:10 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 31/10/2007 0:16:13 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok | Ok |\n| 31/10/2007 0:25:30 | YourName | [[/|http://symposium.tiddlyspot.com/#PresentationIndex%20LOCATION%20CONTACT%20%5B%5BORGANIZING%20COMMITTEE%5D%5D%20PROGRAMME%20%5B%5BLIST%20OF%20SPEAKERS%5D%5D%20%5B%5BABOUT%20THIS%20WORKSHOP%5D%5D]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 31/10/2007 17:0:34 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 31/10/2007 19:42:18 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 31/10/2007 19:42:25 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 28/11/2007 23:21:53 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 28/11/2007 23:22:50 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 28/11/2007 23:23:38 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 28/11/2007 23:35:43 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 11/12/2007 18:20:42 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 11/12/2007 18:44:22 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 11/12/2007 18:44:38 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 11/12/2007 20:30:59 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 11/12/2007 20:32:8 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 11/12/2007 20:34:23 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 11/12/2007 20:34:37 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 13/12/2007 15:20:3 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 17/12/2007 0:52:23 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 17/12/2007 0:53:27 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/12/2007 20:38:11 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/12/2007 20:39:17 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/12/2007 20:39:48 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 25/12/2007 20:52:52 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 25/12/2007 20:56:11 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/12/2007 20:56:20 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 25/12/2007 20:56:32 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/12/2007 20:56:33 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok | Ok | Ok |\n| 25/12/2007 21:14:14 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 25/12/2007 21:23:3 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 25/12/2007 21:27:49 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 25/12/2007 21:38:7 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/12/2007 21:43:50 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/12/2007 22:35:57 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 28/12/2007 13:36:28 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 28/12/2007 13:45:14 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 28/12/2007 15:37:44 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 28/12/2007 15:37:55 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/1/2008 17:16:47 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/1/2008 17:23:7 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 2/1/2008 16:53:10 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 2/1/2008 16:59:35 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 2/1/2008 16:59:45 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok | Ok |\n| 2/1/2008 17:0:39 | YourName | [[/|http://symposium.tiddlyspot.com/#author:true]] | [[store.cgi|http://symposium.tiddlyspot.com/store.cgi]] | . | index.html | . |
/***\n|''Name:''|UploadPlugin|\n|''Description:''|Save to web a TiddlyWiki|\n|''Version:''|3.4.5|\n|''Date:''|Oct 15, 2006|\n|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|\n|''Documentation:''|http://tiddlywiki.bidix.info/#UploadDoc|\n|''Author:''|BidiX (BidiX (at) bidix (dot) info)|\n|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|\n|''~CoreVersion:''|2.0.0|\n|''Browser:''|Firefox 1.5; InternetExplorer 6.0; Safari|\n|''Include:''|config.lib.file; config.lib.log; config.lib.options; PasswordTweak|\n|''Require:''|[[UploadService|http://tiddlywiki.bidix.info/#UploadService]]|\n***/\n//{{{\nversion.extensions.UploadPlugin = {\n major: 3, minor: 4, revision: 5, \n date: new Date(2006,9,15),\n source: 'http://tiddlywiki.bidix.info/#UploadPlugin',\n documentation: 'http://tiddlywiki.bidix.info/#UploadDoc',\n author: 'BidiX (BidiX (at) bidix (dot) info',\n license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',\n coreVersion: '2.0.0',\n browser: 'Firefox 1.5; InternetExplorer 6.0; Safari'\n};\n//}}}\n\n////+++!![config.lib.file]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.file) config.lib.file= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.file.dirname = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(0, lastpos);\n } else {\n return filePath.substring(0, filePath.lastIndexOf("\s\s"));\n }\n};\nconfig.lib.file.basename = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("#")) != -1) \n filePath = filePath.substring(0, lastpos);\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(lastpos + 1);\n } else\n return filePath.substring(filePath.lastIndexOf("\s\s")+1);\n};\nwindow.basename = function() {return "@@deprecated@@";};\n//}}}\n////===\n\n////+++!![config.lib.log]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.log) config.lib.log= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 1}, \n date: new Date(2006,8,19)\n};\nconfig.lib.Log = function(tiddlerTitle, logHeader) {\n if (version.major < 2)\n this.tiddler = store.tiddlers[tiddlerTitle];\n else\n this.tiddler = store.getTiddler(tiddlerTitle);\n if (!this.tiddler) {\n this.tiddler = new Tiddler();\n this.tiddler.title = tiddlerTitle;\n this.tiddler.text = "| !date | !user | !location |" + logHeader;\n this.tiddler.created = new Date();\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[tiddlerTitle] = this.tiddler;\n else\n store.addTiddler(this.tiddler);\n }\n return this;\n};\n\nconfig.lib.Log.prototype.newLine = function (line) {\n var now = new Date();\n var newText = "| ";\n newText += now.getDate()+"/"+(now.getMonth()+1)+"/"+now.getFullYear() + " ";\n newText += now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+" | ";\n newText += config.options.txtUserName + " | ";\n var location = document.location.toString();\n var filename = config.lib.file.basename(location);\n if (!filename) filename = '/';\n newText += "[["+filename+"|"+location + "]] |";\n this.tiddler.text = this.tiddler.text + "\sn" + newText;\n this.addToLine(line);\n};\n\nconfig.lib.Log.prototype.addToLine = function (text) {\n this.tiddler.text = this.tiddler.text + text;\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[this.tiddler.tittle] = this.tiddler;\n else {\n store.addTiddler(this.tiddler);\n story.refreshTiddler(this.tiddler.title);\n store.notify(this.tiddler.title, true);\n }\n if (version.major < 2)\n store.notifyAll(); \n};\n//}}}\n////===\n\n////+++!![config.lib.options]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.options) config.lib.options = {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\n\nconfig.lib.options.init = function (name, defaultValue) {\n if (!config.options[name]) {\n config.options[name] = defaultValue;\n saveOptionCookie(name);\n }\n};\n//}}}\n////===\n\n////+++!![PasswordTweak]\n\n//{{{\nversion.extensions.PasswordTweak = {\n major: 1, minor: 0, revision: 3, date: new Date(2006,8,30),\n type: 'tweak',\n source: 'http://tiddlywiki.bidix.info/#PasswordTweak'\n};\n//}}}\n/***\n!!config.macros.option\n***/\n//{{{\nconfig.macros.option.passwordCheckboxLabel = "Save this password on this computer";\nconfig.macros.option.passwordType = "password"; // password | text\n\nconfig.macros.option.onChangeOption = function(e)\n{\n var opt = this.getAttribute("option");\n var elementType,valueField;\n if(opt) {\n switch(opt.substr(0,3)) {\n case "txt":\n elementType = "input";\n valueField = "value";\n break;\n case "pas":\n elementType = "input";\n valueField = "value";\n break;\n case "chk":\n elementType = "input";\n valueField = "checked";\n break;\n }\n config.options[opt] = this[valueField];\n saveOptionCookie(opt);\n var nodes = document.getElementsByTagName(elementType);\n for(var t=0; t<nodes.length; t++) \n {\n var optNode = nodes[t].getAttribute("option");\n if (opt == optNode) \n nodes[t][valueField] = this[valueField];\n }\n }\n return(true);\n};\n\nconfig.macros.option.handler = function(place,macroName,params)\n{\n var opt = params[0];\n if(config.options[opt] === undefined) {\n return;}\n var c;\n switch(opt.substr(0,3)) {\n case "txt":\n c = document.createElement("input");\n c.onkeyup = this.onChangeOption;\n c.setAttribute ("option",opt);\n c.className = "txtOptionInput "+opt;\n place.appendChild(c);\n c.value = config.options[opt];\n break;\n case "pas":\n // input password\n c = document.createElement ("input");\n c.setAttribute("type",config.macros.option.passwordType);\n c.onkeyup = this.onChangeOption;\n c.setAttribute("option",opt);\n c.className = "pasOptionInput "+opt;\n place.appendChild(c);\n c.value = config.options[opt];\n // checkbox link with this password "save this password on this computer"\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option","chk"+opt);\n c.className = "chkOptionInput "+opt;\n place.appendChild(c);\n c.checked = config.options["chk"+opt];\n // text savePasswordCheckboxLabel\n place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));\n break;\n case "chk":\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option",opt);\n c.className = "chkOptionInput "+opt;\n place.appendChild(c);\n c.checked = config.options[opt];\n break;\n }\n};\n//}}}\n/***\n!! Option cookie stuff\n***/\n//{{{\nwindow.loadOptionsCookie_orig_PasswordTweak = window.loadOptionsCookie;\nwindow.loadOptionsCookie = function()\n{\n var cookies = document.cookie.split(";");\n for(var c=0; c<cookies.length; c++) {\n var p = cookies[c].indexOf("=");\n if(p != -1) {\n var name = cookies[c].substr(0,p).trim();\n var value = cookies[c].substr(p+1).trim();\n switch(name.substr(0,3)) {\n case "txt":\n config.options[name] = unescape(value);\n break;\n case "pas":\n config.options[name] = unescape(value);\n break;\n case "chk":\n config.options[name] = value == "true";\n break;\n }\n }\n }\n};\n\nwindow.saveOptionCookie_orig_PasswordTweak = window.saveOptionCookie;\nwindow.saveOptionCookie = function(name)\n{\n var c = name + "=";\n switch(name.substr(0,3)) {\n case "txt":\n c += escape(config.options[name].toString());\n break;\n case "chk":\n c += config.options[name] ? "true" : "false";\n // is there an option link with this chk ?\n if (config.options[name.substr(3)]) {\n saveOptionCookie(name.substr(3));\n }\n break;\n case "pas":\n if (config.options["chk"+name]) {\n c += escape(config.options[name].toString());\n } else {\n c += "";\n }\n break;\n }\n c += "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";\n document.cookie = c;\n};\n//}}}\n/***\n!! Initializations\n***/\n//{{{\n// define config.options.pasPassword\nif (!config.options.pasPassword) {\n config.options.pasPassword = 'defaultPassword';\n window.saveOptionCookie('pasPassword');\n}\n// since loadCookies is first called befor password definition\n// we need to reload cookies\nwindow.loadOptionsCookie();\n//}}}\n////===\n\n////+++!![config.macros.upload]\n\n//{{{\nconfig.macros.upload = {\n accessKey: "U",\n formName: "UploadPlugin",\n contentType: "text/html;charset=UTF-8",\n defaultStoreScript: "store.php"\n};\n\n// only this two configs need to be translated\nconfig.macros.upload.messages = {\n aboutToUpload: "About to upload TiddlyWiki to %0",\n backupFileStored: "Previous file backuped in %0",\n crossDomain: "Certainly a cross-domain isue: access to an other site isn't allowed",\n errorDownloading: "Error downloading",\n errorUploadingContent: "Error uploading content",\n fileLocked: "Files is locked: You are not allowed to Upload",\n fileNotFound: "file to upload not found",\n fileNotUploaded: "File %0 NOT uploaded",\n mainFileUploaded: "Main TiddlyWiki file uploaded to %0",\n passwordEmpty: "Unable to upload, your password is empty",\n urlParamMissing: "url param missing",\n rssFileNotUploaded: "RssFile %0 NOT uploaded",\n rssFileUploaded: "Rss File uploaded to %0"\n};\n\nconfig.macros.upload.label = {\n promptOption: "Save and Upload this TiddlyWiki with UploadOptions",\n promptParamMacro: "Save and Upload this TiddlyWiki in %0",\n saveLabel: "save to web", \n saveToDisk: "save to disk",\n uploadLabel: "upload" \n};\n\nconfig.macros.upload.handler = function(place,macroName,params){\n // parameters initialization\n var storeUrl = params[0];\n var toFilename = params[1];\n var backupDir = params[2];\n var uploadDir = params[3];\n var username = params[4];\n var password; // for security reason no password as macro parameter\n var label;\n if (document.location.toString().substr(0,4) == "http")\n label = this.label.saveLabel;\n else\n label = this.label.uploadLabel;\n var prompt;\n if (storeUrl) {\n prompt = this.label.promptParamMacro.toString().format([this.toDirUrl(storeUrl, uploadDir, username)]);\n }\n else {\n prompt = this.label.promptOption;\n }\n createTiddlyButton(place, label, prompt, \n function () {\n config.macros.upload.upload(storeUrl, toFilename, uploadDir, backupDir, username, password); \n return false;}, \n null, null, this.accessKey);\n};\nconfig.macros.upload.UploadLog = function() {\n return new config.lib.Log('UploadLog', " !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |" );\n};\nconfig.macros.upload.UploadLog.prototype = config.lib.Log.prototype;\nconfig.macros.upload.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {\n var line = " [[" + config.lib.file.basename(storeUrl) + "|" + storeUrl + "]] | ";\n line += uploadDir + " | " + toFilename + " | " + backupDir + " |";\n this.newLine(line);\n};\nconfig.macros.upload.UploadLog.prototype.endUpload = function() {\n this.addToLine(" Ok |");\n};\nconfig.macros.upload.basename = config.lib.file.basename;\nconfig.macros.upload.dirname = config.lib.file.dirname;\nconfig.macros.upload.toRootUrl = function (storeUrl, username)\n{\n return root = (this.dirname(storeUrl)?this.dirname(storeUrl):this.dirname(document.location.toString()));\n}\nconfig.macros.upload.toDirUrl = function (storeUrl, uploadDir, username)\n{\n var root = this.toRootUrl(storeUrl, username);\n if (uploadDir && uploadDir != '.')\n root = root + '/' + uploadDir;\n return root;\n}\nconfig.macros.upload.toFileUrl = function (storeUrl, toFilename, uploadDir, username)\n{\n return this.toDirUrl(storeUrl, uploadDir, username) + '/' + toFilename;\n}\nconfig.macros.upload.upload = function(storeUrl, toFilename, uploadDir, backupDir, username, password)\n{\n // parameters initialization\n storeUrl = (storeUrl ? storeUrl : config.options.txtUploadStoreUrl);\n toFilename = (toFilename ? toFilename : config.options.txtUploadFilename);\n backupDir = (backupDir ? backupDir : config.options.txtUploadBackupDir);\n uploadDir = (uploadDir ? uploadDir : config.options.txtUploadDir);\n username = (username ? username : config.options.txtUploadUserName);\n password = config.options.pasUploadPassword; // for security reason no password as macro parameter\n if (!password || password === '') {\n alert(config.macros.upload.messages.passwordEmpty);\n return;\n }\n if (storeUrl === '') {\n storeUrl = config.macros.upload.defaultStoreScript;\n }\n if (config.lib.file.dirname(storeUrl) === '') {\n storeUrl = config.lib.file.dirname(document.location.toString())+'/'+storeUrl;\n }\n if (toFilename === '') {\n toFilename = config.lib.file.basename(document.location.toString());\n }\n\n clearMessage();\n // only for forcing the message to display\n if (version.major < 2)\n store.notifyAll();\n if (!storeUrl) {\n alert(config.macros.upload.messages.urlParamMissing);\n return;\n }\n // Check that file is not locked\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n if (BidiX.GroupAuthoring.lock.isLocked() && !BidiX.GroupAuthoring.lock.isMyLock()) {\n alert(config.macros.upload.messages.fileLocked);\n return;\n }\n }\n \n var log = new this.UploadLog();\n log.startUpload(storeUrl, toFilename, uploadDir, backupDir);\n if (document.location.toString().substr(0,5) == "file:") {\n saveChanges();\n }\n var toDir = config.macros.upload.toDirUrl(storeUrl, toFilename, uploadDir, username);\n displayMessage(config.macros.upload.messages.aboutToUpload.format([toDir]), toDir);\n this.uploadChanges(storeUrl, toFilename, uploadDir, backupDir, username, password);\n if(config.options.chkGenerateAnRssFeed) {\n //var rssContent = convertUnicodeToUTF8(generateRss());\n var rssContent = generateRss();\n var rssPath = toFilename.substr(0,toFilename.lastIndexOf(".")) + ".xml";\n this.uploadContent(rssContent, storeUrl, rssPath, uploadDir, '', username, password, \n function (responseText) {\n if (responseText.substring(0,1) != '0') {\n displayMessage(config.macros.upload.messages.rssFileNotUploaded.format([rssPath]));\n }\n else {\n var toFileUrl = config.macros.upload.toFileUrl(storeUrl, rssPath, uploadDir, username);\n displayMessage(config.macros.upload.messages.rssFileUploaded.format(\n [toFileUrl]), toFileUrl);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n });\n }\n return;\n};\n\nconfig.macros.upload.uploadChanges = function(storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var original;\n if (document.location.toString().substr(0,4) == "http") {\n original = this.download(storeUrl, toFilename, uploadDir, backupDir, username, password);\n return;\n }\n else {\n // standard way : Local file\n \n original = loadFile(getLocalPath(document.location.toString()));\n if(window.Components) {\n // it's a mozilla browser\n try {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]\n .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);\n converter.charset = "UTF-8";\n original = converter.ConvertToUnicode(original);\n }\n catch(e) {\n }\n }\n }\n //DEBUG alert(original);\n this.uploadChangesFrom(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password);\n};\n\nconfig.macros.upload.uploadChangesFrom = function(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var startSaveArea = '<div id="' + 'storeArea">'; // Split up into two so that indexOf() of this source doesn't find it\n var endSaveArea = '</d' + 'iv>';\n // Locate the storeArea div's\n var posOpeningDiv = original.indexOf(startSaveArea);\n var posClosingDiv = original.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1))\n {\n alert(config.messages.invalidFileError.format([document.location.toString()]));\n return;\n }\n var revised = original.substr(0,posOpeningDiv + startSaveArea.length) + \n allTiddlersAsHtml() + "\sn\st\st" +\n original.substr(posClosingDiv);\n var newSiteTitle;\n if(version.major < 2){\n newSiteTitle = (getElementText("siteTitle") + " - " + getElementText("siteSubtitle")).htmlEncode();\n } else {\n newSiteTitle = (wikifyPlain ("SiteTitle") + " - " + wikifyPlain ("SiteSubtitle")).htmlEncode();\n }\n\n revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");\n revised = revised.replaceChunk("<!--PRE-HEAD-START--"+">","<!--PRE-HEAD-END--"+">","\sn" + store.getTiddlerText("MarkupPreHead","") + "\sn");\n revised = revised.replaceChunk("<!--POST-HEAD-START--"+">","<!--POST-HEAD-END--"+">","\sn" + store.getTiddlerText("MarkupPostHead","") + "\sn");\n revised = revised.replaceChunk("<!--PRE-BODY-START--"+">","<!--PRE-BODY-END--"+">","\sn" + store.getTiddlerText("MarkupPreBody","") + "\sn");\n revised = revised.replaceChunk("<!--POST-BODY-START--"+">","<!--POST-BODY-END--"+">","\sn" + store.getTiddlerText("MarkupPostBody","") + "\sn");\n\n var response = this.uploadContent(revised, storeUrl, toFilename, uploadDir, backupDir, \n username, password, function (responseText) {\n if (responseText.substring(0,1) != '0') {\n alert(responseText);\n displayMessage(config.macros.upload.messages.fileNotUploaded.format([getLocalPath(document.location.toString())]));\n }\n else {\n if (uploadDir !== '') {\n toFilename = uploadDir + "/" + config.macros.upload.basename(toFilename);\n } else {\n toFilename = config.macros.upload.basename(toFilename);\n }\n var toFileUrl = config.macros.upload.toFileUrl(storeUrl, toFilename, uploadDir, username);\n if (responseText.indexOf("destfile:") > 0) {\n var destfile = responseText.substring(responseText.indexOf("destfile:")+9, \n responseText.indexOf("\sn", responseText.indexOf("destfile:")));\n toFileUrl = config.macros.upload.toRootUrl(storeUrl, username) + '/' + destfile;\n }\n else {\n toFileUrl = config.macros.upload.toFileUrl(storeUrl, toFilename, uploadDir, username);\n }\n displayMessage(config.macros.upload.messages.mainFileUploaded.format(\n [toFileUrl]), toFileUrl);\n if (backupDir && responseText.indexOf("backupfile:") > 0) {\n var backupFile = responseText.substring(responseText.indexOf("backupfile:")+11, \n responseText.indexOf("\sn", responseText.indexOf("backupfile:")));\n toBackupUrl = config.macros.upload.toRootUrl(storeUrl, username) + '/' + backupFile;\n displayMessage(config.macros.upload.messages.backupFileStored.format(\n [toBackupUrl]), toBackupUrl);\n }\n var log = new config.macros.upload.UploadLog();\n log.endUpload();\n store.setDirty(false);\n // erase local lock\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n BidiX.GroupAuthoring.lock.eraseLock();\n // change mtime with new mtime after upload\n var mtime = responseText.substr(responseText.indexOf("mtime:")+6);\n BidiX.GroupAuthoring.lock.mtime = mtime;\n }\n \n \n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n }\n );\n};\n\nconfig.macros.upload.uploadContent = function(content, storeUrl, toFilename, uploadDir, backupDir, \n username, password, callbackFn) {\n var boundary = "---------------------------"+"AaB03x"; \n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n if (window.netscape){\n try {\n if (document.location.toString().substr(0,4) != "http") {\n netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');}\n }\n catch (e) {}\n } \n //DEBUG alert("user["+config.options.txtUploadUserName+"] password[" + config.options.pasUploadPassword + "]");\n // compose headers data\n var sheader = "";\n sheader += "--" + boundary + "\sr\snContent-disposition: form-data; name=\s"";\n sheader += config.macros.upload.formName +"\s"\sr\sn\sr\sn";\n sheader += "backupDir="+backupDir\n +";user=" + username \n +";password=" + password\n +";uploaddir=" + uploadDir;\n // add lock attributes to sheader\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n var l = BidiX.GroupAuthoring.lock.myLock;\n sheader += ";lockuser=" + l.user\n + ";mtime=" + l.mtime\n + ";locktime=" + l.locktime;\n }\n sheader += ";;\sr\sn"; \n sheader += "\sr\sn" + "--" + boundary + "\sr\sn";\n sheader += "Content-disposition: form-data; name=\s"userfile\s"; filename=\s""+toFilename+"\s"\sr\sn";\n sheader += "Content-Type: " + config.macros.upload.contentType + "\sr\sn";\n sheader += "Content-Length: " + content.length + "\sr\sn\sr\sn";\n // compose trailer data\n var strailer = new String();\n strailer = "\sr\sn--" + boundary + "--\sr\sn";\n //strailer = "--" + boundary + "--\sr\sn";\n var data;\n data = sheader + content + strailer;\n //request.open("POST", storeUrl, true, username, password);\n try {\n request.open("POST", storeUrl, true); \n }\n catch(e) {\n alert(config.macros.upload.messages.crossDomain + "\snError:" +e);\n exit;\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if (request.status == 200)\n callbackFn(request.responseText);\n else\n alert(config.macros.upload.messages.errorUploadingContent + "\snStatus: "+request.status.statusText);\n }\n };\n request.setRequestHeader("Content-Length",data.length);\n request.setRequestHeader("Content-Type","multipart/form-data; boundary="+boundary);\n request.send(data); \n};\n\n\nconfig.macros.upload.download = function(uploadUrl, uploadToFilename, uploadDir, uploadBackupDir, \n username, password) {\n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n try {\n if (uploadUrl.substr(0,4) == "http") {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");\n }\n else {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n }\n } catch (e) { }\n //request.open("GET", document.location.toString(), true, username, password);\n try {\n request.open("GET", document.location.toString(), true);\n }\n catch(e) {\n alert(config.macros.upload.messages.crossDomain + "\snError:" +e);\n exit;\n }\n \n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if(request.status == 200) {\n config.macros.upload.uploadChangesFrom(request.responseText, uploadUrl, \n uploadToFilename, uploadDir, uploadBackupDir, username, password);\n }\n else\n alert(config.macros.upload.messages.errorDownloading.format(\n [document.location.toString()]) + "\snStatus: "+request.status.statusText);\n }\n };\n request.send(null);\n};\n\n//}}}\n////===\n\n////+++!![Initializations]\n\n//{{{\nconfig.lib.options.init('txtUploadStoreUrl','store.php');\nconfig.lib.options.init('txtUploadFilename','');\nconfig.lib.options.init('txtUploadDir','');\nconfig.lib.options.init('txtUploadBackupDir','');\nconfig.lib.options.init('txtUploadUserName',config.options.txtUserName);\nconfig.lib.options.init('pasUploadPassword','');\nsetStylesheet(\n ".pasOptionInput {width: 11em;}\sn"+\n ".txtOptionInput.txtUploadStoreUrl {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadFilename {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadDir {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadBackupDir {width: 25em;}\sn"+\n "",\n "UploadOptionsStyles");\nif (document.location.toString().substr(0,4) == "http") {\n config.options.chkAutoSave = false; \n saveOptionCookie('chkAutoSave');\n}\nconfig.shadowTiddlers.UploadDoc = "[[Full Documentation|http://tiddlywiki.bidix.info/l#UploadDoc ]]\sn"; \n\n//}}}\n////===\n\n////+++!![Core Hijacking]\n\n//{{{\nconfig.macros.saveChanges.label_orig_UploadPlugin = config.macros.saveChanges.label;\nconfig.macros.saveChanges.label = config.macros.upload.label.saveToDisk;\n\nconfig.macros.saveChanges.handler_orig_UploadPlugin = config.macros.saveChanges.handler;\n\nconfig.macros.saveChanges.handler = function(place)\n{\n if ((!readOnly) && (document.location.toString().substr(0,4) != "http"))\n createTiddlyButton(place,this.label,this.prompt,this.onClick,null,null,this.accessKey);\n};\n\n//}}}\n////===\n\n
<!--{{{-->\n<div class='viewer' macro='view text wikified'></div>\n<div class='viewer topbutton' macro='top'></div>\n<br><br>\n<div class='viewer' macro='navigation tiddlers:{{store.getTiddlerText("PresentationIndex").readBracketedList()}}}'></div>\n<div class='tagClear'></div>\n<!--}}}-->
''Symposium on Logic and Physics:''\n\nThe topic of this symposium is situated at the current interface between Logic and the Foundations of Physics. The aim is to look at already-established, as well as new connections between the two fields, within the context of recent work on logics of space, time, action and information flow, with an eye towards a wider philosophical perspective.\n\nDue to the interdisciplinary nature, the symposium is intended to be of interest to logicians, physicists, philosophers of physics as well as to computer scientists.
Last Updated on 28 December 2007