Last active
October 2, 2017 18:33
-
-
Save kenwebb/1294de29fa138564794e0ded25534512 to your computer and use it in GitHub Desktop.
Bigraphs 2017 02
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Mon Oct 02 2017 14:33:01 GMT-0400 (EDT)--> | |
<XholonWorkbook> | |
<Notes><![CDATA[ | |
Xholon | |
------ | |
Title: Bigraphs 2017 02 | |
Description: | |
Url: http://www.primordion.com/Xholon/gwt/ | |
InternalName: 1294de29fa138564794e0ded25534512 | |
Keywords: | |
My Notes | |
-------- | |
September 27, 2017 | |
Learning bigraphs | |
Example from slides 7, 8, 16 | |
- slide 16, "The anatomy of bigraphs", has terminology | |
Check my approach by comparing my example(s) with examples and terminology inn other Bigraph tools. | |
References | |
---------- | |
() Robin Milner, "Bigraphs: a model for mobile agents", slides, Nov 2008 | |
() Robin Milner, "Bigraphs: a model for mobile agents", lecture notes, Nov 2008 | |
() http://bigraph.org/ | |
includes a list of Bigraph tools | |
() https://github.com/ale-f/big-red | |
Big Red | |
A graphical development environment for bigraphs, built upon Eclipse. | |
examples: airport, printing | |
models are specified using XML, so it's quite similar to my Xholon syntax | |
() https://en.wikipedia.org/wiki/Bigraph | |
() http://www.dcs.gla.ac.uk/~michele/bigrapher.html | |
BigraphER (Bigraph Evaluator & Rewriting) is an implementation of Robin Milner's Bigraphical Reactive System (BRS) with an extension to bigraph with sharing. | |
written in OCaml; uses OCaml syntax | |
]]></Notes> | |
<_-.XholonClass> | |
<PhysicalSystem/> | |
<!-- | |
<Bigraph/> | |
<Bigraphs/> | |
--> | |
<!-- all bigraphs should just be called "Bigraph" --> | |
<!--<GroundBigraph superClass="Bigraph"/> | |
<ContextualBigraph superClass="Bigraph"/>--> | |
<PlaceGraph/> | |
<LinkGraph/> | |
<PlaceBG> | |
<RootBG/> <!-- or RegionBG --> | |
<NodeBG/> | |
<!--<SiteBG already part of the Bigraph mechanism/>--> | |
</PlaceBG> | |
<LinkBG> | |
<HyperedgeBG/> <!-- or EdgeBG --> | |
<OuterNameBG/> | |
</LinkBG> | |
<PointBG> | |
<PortBG/> | |
<InnerNameBG/> | |
</PointBG> | |
<ControlBG/> | |
<ComposerBG/> <!-- composes 2 bigraphs to produce a resulting bigraph --> | |
</_-.XholonClass> | |
<xholonClassDetails> | |
<Avatar><Color>rgba(255,215,0,0.8)</Color></Avatar> | |
<Hyperedge xhType="XhtypePureActiveObject"/> | |
</xholonClassDetails> | |
<PhysicalSystem> | |
<Bigraphs> | |
<!-- GroundBigraph --> | |
<Bigraph roleName="F" interface="∈ → ⟨3,{x,x'}⟩"> | |
<PlaceGraph> | |
<RootBG roleName="0"><NodeBG roleName="v1"/></RootBG> | |
<RootBG roleName="1"><NodeBG roleName="v3"/></RootBG> | |
<RootBG roleName="2"><NodeBG roleName="v5"/></RootBG> | |
</PlaceGraph> | |
<LinkGraph> | |
<OuterNameBG roleName="x"/> | |
<OuterNameBG roleName="x'"/> | |
<HyperedgeBG roleName="e1" nodenames="v1,v3"/> | |
<HyperedgeBG roleName="e101" nodenames="v1,x"/> | |
<HyperedgeBG roleName="e102" nodenames="v3,v5,x'"/> | |
</LinkGraph> | |
</Bigraph> | |
<!-- ContextualBigraph --> | |
<Bigraph roleName="H" interface="⟨3,{x,x'}⟩ → ⟨2,∅⟩"> | |
<PlaceGraph> | |
<RootBG roleName="0"> | |
<NodeBG roleName="v0"> | |
<SiteBG roleName="0"/> | |
<NodeBG roleName="v2"> | |
<SiteBG roleName="1"/> | |
</NodeBG> | |
</NodeBG> | |
</RootBG> | |
<RootBG roleName="1"> | |
<NodeBG roleName="v4"> | |
<SiteBG roleName="2"/> | |
</NodeBG> | |
</RootBG> | |
</PlaceGraph> | |
<LinkGraph> | |
<InnerNameBG roleName="x"/> | |
<InnerNameBG roleName="x'"/> | |
<HyperedgeBG roleName="e0" nodenames="v0,v4,x"/> | |
<HyperedgeBG roleName="e2" nodenames="v4,x'"/> | |
</LinkGraph> | |
</Bigraph> | |
</Bigraphs> | |
<!-- | |
Category Theory (CT) terminology: "H following F"; "apply F then apply H"; as specified by the bigraph interfaces | |
The interface attributes suggest that there are 3 CT objects, and 2 CT morphisms/arrows. | |
∈ → ⟨3,{x,x'}⟩ → ⟨2,∅⟩ | |
H is: ∈ → ⟨2,∅⟩ | |
But Composer will work by moving parts of F into H to create G. | |
Or I could create a new Bigraph G, and then copy H into G, while resolving sites in H using roots in F. | |
--> | |
<ComposerBG roleName="G = H ∘ F"/> | |
</PhysicalSystem> | |
<Composerbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[ | |
var me, beh = { | |
postConfigure: function() { | |
me = this.cnode.parent(); | |
me.println(me.name()); | |
} | |
} | |
]]></Composerbehavior> | |
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml, | |
<svg width="100" height="50" xmlns="http://www.w3.org/2000/svg"> | |
<g> | |
<title>Bigraphs</title> | |
<rect id="PhysicalSystem/Bigraphs" fill="#98FB98" height="50" width="50" x="25" y="0"/> | |
<g> | |
<title>Bigraph</title> | |
<rect id="PhysicalSystem/Bigraphs/Bigraph" fill="#6AB06A" height="50" width="10" x="80" y="0"/> | |
</g> | |
</g> | |
</svg> | |
]]></Attribute_String><Attribute_String roleName="setup">${MODELNAME_DEFAULT},${SVGURI_DEFAULT}</Attribute_String></SvgClient> | |
</XholonWorkbook> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment