<?xml version=
"1.0" encoding=
"UTF-8"?>
<!
DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<
html xmlns=
"http://www.w3.org/1999/xhtml" xml:lang=
"en">
<
head>
<
script type=
"text/javascript"
src=
"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</
script>
<
title>GAP (Francy) - Chapter
5: Francy Core</
title>
<
meta http-equiv=
"content-type" content=
"text/html; charset=UTF-8" />
<
meta name=
"generator" content=
"GAPDoc2HTML" />
<
link rel=
"stylesheet" type=
"text/css" href=
"manual.css" />
<
script src=
"manual.js" type=
"text/javascript"></
script>
<
script type=
"text/javascript">overwriteStyle();</
script>
</
head>
<
body class=
"chap5" onload=
"jscontent()">
<
div class=
"chlinktop"><
span class=
"chlink1">Goto Chapter: </
span><
a href=
"chap0_mj.html">Top<
/a> <a href="chap1_mj.html">1</a> <a href="chap2_mj.html">2</a> <a href="chap3_mj.html">3</a> <a href="chap4_mj.html">4</a> <a href="chap5_mj.html">5</a> <a href="chap6_mj.html">6</a> <a href="chap7_mj.html">7</a> <a href="chap8_mj.html">8</a> <a href="chap9_mj.html">9</a> <a href="chap10_mj.html">10</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap4_mj.html">[Previous Chapter]</a> <a href="chap6_mj.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap5.html">[MathJax off]</a></p>
<p><a id="X86477B3A7A51FF2F" name="X86477B3A7A51FF2F"></a></p>
<div class="ChapSects"><a href="chap5_mj.html#X86477B3A7A51FF2F">5 <span class="Heading">Francy Core</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5_mj.html#X7CC6903E78F24167">5.1 <span class="Heading">Categories</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5_mj.html#X847E2E8B80386B5A">5.1-1 IsFrancyObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5_mj.html#X8223C52A839E3265">5.1-2 IsFrancyDefaultObject</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5_mj.html#X7F1E4EE7848C23E4">5.1-3 IsFrancyTypeObject</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5_mj.html#X846063757EC05986">5.2 <span class="Heading">Families</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5_mj.html#X8690E870823975F3">5.3 <span class="Heading">Global</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap5_mj.html#X7C701DBF7BAE649A">5.4 <span class="Heading">Attributes</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5_mj.html#X7D25B5408731F6F3">5.4-1 FrancyId</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5_mj.html#X7D25B5408731F6F3">5.4-2 FrancyId</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap5_mj.html#X87C8E31387383A61">5.4-3 SetFrancyId</a></span>
</div></div>
</div>
<h3>5 <span class="Heading">Francy Core</span></h3>
<p>Francy is responsible for generating JSON metadata models allowing external tools / libraries / frameworks to add visual representations to math structures. This JSON model representation defines the contract between this package (server) and a GUI framework (client), enabling complete SoC (Separation of Concerns). Francy can be used to provide graphical interactive environments on existing GAP packages.</p>
<p>A JSON schema is available and can be used to produce compliant clients for this package. <em>See schema/francy.json</em></p>
<p>To map required and optional attributes from the schema into GAP code, the implementation follows the following criteria:</p>
<ul>
<li><p>Object creation requests mandatory attributes, i.e. required with no default value, e.g. canvas:=Canvas("Title")</p>
</li>
<li><p>Object creation accepts an object of defaults, i.e. default values for mandatory fields but that might repeat throughout the creation of multiple similar objects, e.g. defaults:=DefaultCanvas; defaults!.zoomToFit:=false; canvas:=Canvas("Title",defaults); Where DefaultCanvas contains defaults for width (800) and height (600)</p>
</li>
<li><p>Attributes associated with the object that can be set, .i.e. optional with no defaults, e.g. canvas:=Canvas("Title"); SetTexTypesetting(canvas,true);</p>
</li>
</ul>
<p>The API follows common GAP naming conventions and adding objects is done using Add(objectHolder,object) and removing object is done using Remove(objectHolder,object).</p>
<p>Although Francy has the concept of a <code class="code">Graph</code>, it does not implement any Mathematics Graphs Theory.</p>
<p>Please see Francy-JS for client implementation.</p>
<p><a id="X7CC6903E78F24167" name="X7CC6903E78F24167"></a></p>
<h4>5.1 <span class="Heading">Categories</span></h4>
<p>In this section we show all Francy Core Categories.</p>
<p><a id="X847E2E8B80386B5A" name="X847E2E8B80386B5A"></a></p>
<h5>5.1-1 IsFrancyObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsFrancyObject</code>( <var class="Arg">arg</var> )</td><td class="tdright">( filter )</td></tr></table></div>
<p>Returns: <code class="keyw">true</code> or <code class="keyw">false</code></p>
<p>Identifies all <code class="code">Objects</code> in Francy.</p>
<p><a id="X8223C52A839E3265" name="X8223C52A839E3265"></a></p>
<h5>5.1-2 IsFrancyDefaultObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsFrancyDefaultObject</code>( <var class="Arg">arg</var> )</td><td class="tdright">( filter )</td></tr></table></div>
<p>Returns: <code class="keyw">true</code> or <code class="keyw">false</code></p>
<p>Identifies all Default record objects in Francy.</p>
<p><a id="X7F1E4EE7848C23E4" name="X7F1E4EE7848C23E4"></a></p>
<h5>5.1-3 IsFrancyTypeObject</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; IsFrancyTypeObject</code>( <var class="Arg">arg</var> )</td><td class="tdright">( filter )</td></tr></table></div>
<p>Returns: <code class="keyw">true</code> or <code class="keyw">false</code></p>
<p>Identifies all Type record objects in Francy.</p>
<p><a id="X846063757EC05986" name="X846063757EC05986"></a></p>
<h4>5.2 <span class="Heading">Families</span></h4>
<p>In this section we show all Francy Core Families.</p>
<p><a id="X8690E870823975F3" name="X8690E870823975F3"></a></p>
<h4>5.3 <span class="Heading">Global</span></h4>
<p>In this section we show all Francy Core Types</p>
<p><a id="X7C701DBF7BAE649A" name="X7C701DBF7BAE649A"></a></p>
<h4>5.4 <span class="Heading">Attributes</span></h4>
<p>In this section we show all Francy Core Attributes</p>
<p><a id="X7D25B5408731F6F3" name="X7D25B5408731F6F3"></a></p>
<h5>5.4-1 FrancyId</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; FrancyId</code>( <var class="Arg">arg</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns: <code class="code">IsString</code> with the unique identifier of the object</p>
<p>All Objects created in Francy have a generated unique identifier.</p>
<p><a id="X7D25B5408731F6F3" name="X7D25B5408731F6F3"></a></p>
<h5>5.4-2 FrancyId</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; FrancyId</code>( <var class="Arg">arg1</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a <code class="code">IsString</code> with the unique id of the object</p>
<p>Prints the object unique identifier.</p>
<p><a id="X87C8E31387383A61" name="X87C8E31387383A61"></a></p>
<h5>5.4-3 SetFrancyId</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; SetFrancyId</code>( <var class="Arg">o</var>, <var class="Arg">s</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Use with care! Changing the unique ID might be useful in certain cases, but bear in mind it might cause unexpected behavior. Use at your own risk.</p>
<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap4_mj.html">[Previous Chapter]</a> <a href="chap6_mj.html">[Next Chapter]</a> </div>
<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a> <a href="chap1_mj.html">1</a> <a href="chap2_mj.html">2</a> <a href="chap3_mj.html">3</a> <a href="chap4_mj.html">4</a> <a href="chap5_mj.html">5</a> <a href="chap6_mj.html">6</a> <a href="chap7_mj.html">7</a> <a href="chap8_mj.html">8</a> <a href="chap9_mj.html">9</a> <a href="chap10_mj.html">10</a> <a href="chapInd_mj.html">Ind</a> </div>
<hr />
<p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>
¤ Dauer der Verarbeitung: 0.123 Sekunden
¤
*© Formatika GbR, Deutschland