#Rationale Version 160.66 can_be_loaded_by 120.53 uses_features_from 140.56 #-- Start of Prelude -- Node = None Views = [] Loading = True ScratchpadTextSupported = CurrentFileFormat.IsLaterThan(130, 55) PictureSupported = CurrentFileFormat.IsLaterThan(140, 56) TagsSupported = CurrentFileFormat.IsLaterThan(140, 57) TypeSupported = CurrentFileFormat.IsLaterThan(140, 60) EditPromptSupported = CurrentFileFormat.IsLaterThan(140, 57) ShowOutlineSupported = CurrentFileFormat.IsLaterThan(140, 57) LockHeadingSupported = CurrentFileFormat.IsLaterThan(140, 58) TwoOrientationsSupported = CurrentFileFormat.IsLaterThan(140, 59) HideChildrenSupported = CurrentFileFormat.IsLaterThan(150, 60) MinimizeNodeSupported = CurrentFileFormat.IsLaterThan(150, 60) HyperlinkSupported = CurrentFileFormat.IsLaterThan(150, 60) RelativeLinksSupported = CurrentFileFormat.IsLaterThan(150, 64) EdgeStyleSupported = CurrentFileFormat.IsLaterThan(160, 61) BoxStyleSupported = CurrentFileFormat.IsLaterThan(160, 61) FontSizeSupported = CurrentFileFormat.IsLaterThan(160, 61) NodeNotesSupported = CurrentFileFormat.IsLaterThan(160,62) SeparationSupported = CurrentFileFormat.IsLaterThan(160,63) JumbleMapSupported = CurrentFileFormat.IsLaterThan(160, 65) EssayTypeSupported = CurrentFileFormat.IsLaterThan(160, 65) if not CurrentFileFormat.IsLaterThan(130, 54): morphTarget = None def Create(type): global Node if morphTarget == None: Node = app.Create(type) else: Morph(morphTarget, type) Node = morphTarget return Node def CreateChild(parent, type): global Node Node = app.CreateChild(parent, type) return Node def CreateAnnotation(parent, type): global Node Node = app.CreateAnnotation(parent, type) return Node def SetText(text): app.SetText(Node, text) def SetTag(key, value): if TagsSupported: app.SetTag(Node, key, value) def SetCustomType(group, type): if TypeSupported: Node.CustomGroup = group Node.CustomType = type def SetEditPrompt(text): if EditPromptSupported: app.SetEditPrompt(Node, text) else: AddMissingFeature('helpful hint') def SetEvaluation(evaluation): app.SetEvaluation(Node, evaluation) def SetTint(tint): app.SetTint(Node, tint) def SetImageKey(key): if PictureSupported: app.SetImageKey(Node, key) else: AddMissingFeature('picture') def SetHyperlink(relativeLink, link, description, openExternally): if HyperlinkSupported: if RelativeLinksSupported: app.SetHyperlink(Node, relativeLink, link, description, openExternally) else: app.SetHyperlink(Node, link, description, openExternally) else: AddMissingFeature('Hyperlink') def SetEdgeStyle(layout, headStyle, tailStyle, spreadChildEdges): if EdgeStyleSupported: app.SetEdgeStyle(Node, layout, headStyle, tailStyle, spreadChildEdges) else: AddMissingFeature('Experimental Pro feature -- custom edge style') def SetBoxStyle(outlineStyle, penWidth, outlineRgbVal): if BoxStyleSupported: app.SetBoxStyle(Node, outlineStyle, penWidth, outlineRgbVal, True, 0x000000) else: AddMissingFeature('Experimental Pro feature -- custom box style') def SetBoxOutline(style, penWidth, rgbVal, showOutline): if BoxStyleSupported: app.SetBoxOutline(Node, style, penWidth, rgbVal, showOutline) else: AddMissingFeature('Experimental Pro feature -- custom box outline style') def SetBoxFill(rgbVal, showFill): if BoxStyleSupported: app.SetBoxFill(Node, rgbVal, showFill) else: AddMissingFeature('Experimental Pro feature -- custom box fill style') def SetFontSizeDelta(delta): if FontSizeSupported: app.SetFontSizeDelta(Node, delta) else: AddMissingFeature('Variable font size') def SetNodeNotes(notes): if NodeNotesSupported: app.SetNodeNotes(Node, notes) else: AddMissingFeature('Node Notes') def MarkAsPureImage(): if PictureSupported and morphTarget == None: Node.IsPureImage = True def RegisterImage(name, image): if PictureSupported: app.RegisterImage(name, image) def StringToImage(guid, imageAsString): return app.StringToImage(guid, imageAsString) def Morph(node, flavor): global Node app.Morph(node, flavor) Node = node def GetFernViews(): global Views global View global Loading Views = [v for v in app.Views if v.TypeName == 'FernView'] Loading = len(Views) == 0 if Loading: View = app.Gui.CreateView('FernView') Views = [ View ] else: View = app.CurrentView def SetLocation(node, x, y): for v in Views: v.SetLocation(node, x, y) def SetOffset(offsetFrom, node, x, y): if Loading: View.SetOffset(offsetFrom, node, x, y) else: for v in Views: v.SetOffset(offsetFrom, node, x, y) def SetSize(node, width, height): if Loading: View.SetSize(node, width, height) else: for v in Views: v.SetSize(node, width, height) def ShowPrintPagePreview(show): if Loading: View.ShowPrintPagePreview(show, False) def SetBackgroundImage(image): if Loading: View.SetBackgroundImage(image, False) def SetOpacity(opacity): if Loading: View.SetOpacity(opacity) def SetSelection(node): View.SetSelection(node) def SetScratchpadText(text): if ScratchpadTextSupported: app.Gui.SetScratchpadText(text) else: AddMissingFeature('saved scratchpad') def SetImageWidth(node, width): if PictureSupported: for v in Views: v.SetImageWidth(node, width) def SetShowOutline(node, show): if ShowOutlineSupported: for v in Views: v.SetShowOutline(node, show) def SetLockHeading(node, lockHeading): if LockHeadingSupported: for v in Views: v.SetLockHeading(node, lockHeading) def SetOrientation(node, orientation): if TwoOrientationsSupported and (orientation == 'LeftToRight'): for v in Views: v.SetOrientation(node, orientation) else: AddMissingFeature(orientation + ' layout') def HideChildren(node): if HideChildrenSupported: for v in Views: v.HideChildren(node) else: AddMissingFeature('Hidden children') def Minimize(node): if MinimizeNodeSupported: for v in Views: v.Minimize(node) else: AddMissingFeature('Minimized node') def SetNodeHorizontalSeparation(node, value): if SeparationSupported: for v in Views: v.SetNodeHorizontalSeparation(node, value) else: AddMissingFeature('Sibling separation') def SetVerticalSeparation(node, value): if SeparationSupported: for v in Views: v.SetVerticalSeparation(node, value) else: AddMissingFeature('Parent-child separation') def SetBranchHorizontalSeparation(node, value): if SeparationSupported: for v in Views: v.SetBranchHorizontalSeparation(node, value) else: AddMissingFeature('Branch separation') def SetEssayType(node, type): if EssayTypeSupported: app.SetEssayType(node, type) else: AddMissingFeature('Essay Type') def JumbleMap(node): if JumbleMapSupported: for v in Views: v.JumbleMap(node) else: AddMissingFeature('Map Jumble') missing = {} def AddMissingFeature(feature): if feature not in missing: i = 1 else: i = missing[feature] + 1 missing[feature] = i def MissingFeaturesList(): list = '' for k in missing.keys(): n = missing[k] list = list + ' ' + str(n) + ' ' + k if n != 1: list = list + 's' list = list + CR() return list def GenerateMissingFeaturesReport(): if len(missing) > 0: Create('Note') SetSize(Node, 350, 100) SetText( MissingFeaturesHeader() + CR() \ + MissingFeaturesList() + CR() \ + MissingFeaturesFooter()) def MissingFeaturesHeader(): return '*' + 'Warning: This file was created with a more recent version of Rationale' + '*' + CR() \ + 'Unable to load:' def MissingFeaturesFooter(): return 'You can upgrade to the latest version of Rationale at http://rationale.austhink.com/r/download' def CR(): return '\r\n' #-- End of Prelude -- map0_0 = Create("Claim") SetText("CURRENT\n\nOur work supports a previous claim that the plant Greenus electricus (GE) has a nervous system") map0_1 = CreateChild(map0_0, "Reason") SetText("PREVIOUS\n\nThe plant Greenus electricus (GE) exhibits rapid behavioural responses.") map0_2 = CreateChild(map0_1, "Reason") SetText("PREVIOUS\n\nRapid behavioural responses in an organism are best explained by the presence of a nervous system.\n\n[An assumption]") map0_3 = CreateChild(map0_1, "Reason") SetText("PREVIOUS\n\nChanges in moisture levels around the root of GE result in rapid responses.") map0_4 = CreateChild(map0_3, "Reason") SetText("PREVIOUS\n\nLeaf stomates a metre away closed within one second.") map0_5 = CreateChild(map0_4, "Basis") SetText("Voltij, B and Ampraj AL (1987). Does the plant Greenus electricus have a nervous system? J. Plant Elec. Physiol. 123: 82-97.") SetImageKey("Publication") SetEditPrompt("State the details of the publication where the claim is made.") SetTag("BasisName", "Basis") map0_6 = CreateChild(map0_0, "Reason") SetText("CURRENT\n\nPhloem sieve tubes of Greenus electricus (GE) have structural and electrophysiological similarities to neurons") map0_7 = CreateChild(map0_6, "Reason") SetText("PREVIOUS\n\nPhloem sieve tubes form a network of interconnecting tubes.") map0_8 = CreateChild(map0_7, "Basis") SetText("Zimmermann, MH (1960) Transport in the Phloem. Ann.l Rev. Plant Physiol., 11: 167-190.") SetImageKey("Publication") SetEditPrompt("State the details of the publication where the claim is made.") SetTag("BasisName", "Basis") map0_9 = CreateChild(map0_6, "Reason") SetText("PREVIOUS\n\nPhloem sieve tubes are membrane-bound cells.") map0_10 = CreateChild(map0_9, "Basis") SetText("Zimmermann, MH (1960) Transport in the Phloem. Ann.l Rev. Plant Physiol., 11: 167-190.") SetImageKey("Publication") SetEditPrompt("State the details of the publication where the claim is made.") SetTag("BasisName", "Basis") map0_11 = CreateChild(map0_6, "Objection") SetText("CURRENT\n\nNo phloem sieve tubes in GE had the myelin sheaths typical of long axons") map0_12 = CreateChild(map0_6, "Reason") SetText("CURRENT\n\nPhloem sieve tubes isolated from GE can conduct electrical signals along their length in similar fashion to neurons") map0_13 = CreateChild(map0_12, "Objection") SetText("CURRENT\n\nThe maximum speed of conduction (0.1m/s) was much slower than in neurons") map0_14 = CreateChild(map0_13, "Objection") SetText("CURRENT\n\nThis \"maximum speed\" has been measured in vitro, not in vivo") map0_15 = CreateChild(map0_6, "Reason") SetText("CURRENT\n\nThe plasma membrane of phloem sieve tubes of GE exhibit major changes in their electrical potential difference.") image = StringToImage("b96b3caf-0728-11d3-9d7b-0000f81ef32e", "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") RegisterImage("Publication", image) GetFernViews() SetLocation(map0_0, 544, 567) SetSize(map0_0, 196, 62) SetSize(map0_1, 180, 182) SetSize(map0_3, 152, 182) SetImageWidth(map0_5,35) SetSize(map0_6, 177, 200) SetSize(map0_7, 196, 62) SetImageWidth(map0_8,35) SetSize(map0_9, 172, 62) SetImageWidth(map0_10,35) SetSize(map0_11, 156, 145) SetSize(map0_12, 150, 145) SetSize(map0_13, 140, 213) SetSize(map0_14, 138, 62) SetSize(map0_15, 154, 219) SetSelection(map0_0) ShowPrintPagePreview(False) GenerateMissingFeaturesReport()