The Magic Encyclopedia ™

Xml Hypercubes
(preliminairy version)
(by Aale de Winkel)

The extensible markup language (XML) is a html-like markup language endorsed by the w3c as a standardised format for describing data.
In this document I describe a specialised XML-Schema for describing hypercubes. Abiding by this schema will make it possible for future software to read your files. I will provide readers for these files as soon as possible (note that my software is .Net software and will run everywhere the .Net framework is installed) Someone who is fluent in VBA (Visual Basic for Applications) please supply excell-users with a macro to read in the described files, I simply don't know how VBA handles files, an XML-writing macro might also be called for (I think it'll be an interesting project, but my understandment of VBA and Excell-peculiarities is but marginal)

Note: my understandment of XML and XSD is in its initial stages, suggestions for improvements and enhanchements I welcome.

The latest version of my program is downloadable from this article, the XmlHyperCube format hasn't changed much the past couple of years, The knightjump procedure now uses the startpoint-view which is used by Planck in his 1905 paper "The theory of Path Nasics" Added parameterinput in the "basic" menue holds a check for the involved innerproducts, not yet added a conclusion procedure to analyse these results so that is left to the reader. Also in the "basic" menue LP parameter input as is related to John R Hendrickses "Digit-equations".

rectangle .. hyperbeam are added to this text, options are being augmented to work on these objects.
(description might change a bit depending on implementation)

XML Schema for hypercube files
The following is a preliminairy description of the xml-schema for Hypercubes
HyperCubesSetup.zip
2009.10.14
hypercubes program
The latest version of my hypercubes program.
Besides reading and displaying XmlHypercubes files options are built in to input
KJ LP and MC parameters, as well as options to manipulate/analize displayed hypercubes

Google for the "Dot Net Framework" if you haven't that installed yet.
HyperCubes.zip
2009.10.14
.xsd definition file and sample xml files
SpreadSheets directory for spreadsheet generation and Excel Startup
The following is a preliminairy description of the xml-schema for Hypercubes
initialising tags
HypercubeFile
(required)
initialisation of the file
	
<?xml version="1.0" encoding="utf-8"?>
<HypercubeFile xmlns="HyperCubeFile.xsd" date="2004-08-18" >
    <INFORMATION>
        "general tags"
    </INFORMATION>
    "main tags"
<HypercubeFile>
		
These tage initilize the xml-files.
'xmlns="HyperCubeFile.xsd"' is required to identify the schema(?) within programs.
date I added as an optional attribute with format CCYY-MM-DD
general tags
INFORMATION
(required)
a tag holding the general tag
	
<INFORMATION>
    general tags
</INFORMATION>
		
AUTHOR
(required)
stating the files author
	
<AUTHOR name="required" email="optional" />
		
QUALIFICATION
(optional)
stating the qualifier of most of the listed hypercubes
	
<QUALIFICATION qalification="qualification" />
		
NUMBERS
(optional)
stating the numberrange of the listed hypercubes
options: analitic, regular and irregular
	
<NUMBERS range="regular" />
		
COMMENTS
(optional)
stating comments to the listed hypercubes
	
<COMMENTS>
    <comment>some commentairy goes here
    </comment>
</COMMENTS>
		
HISTORY
(optional)
stating the history the listed hypercubes
	
<HISTORY>
   <comment>defined but not yet used
   </comment>
</HISTORY>
		
INCLUDE
(optional)
including common data
	
<INCLUDE prefix="xxx" file="filename.xml" />
		
Main tags
HYPERCUBE definition of a hypercube
	
<HYPERCUBE dimension="n" order="m" power="p" name="sample" qualification="unknown" >
    <hypercube layer="0" >
        .....
    </hypercube>
    ....note: can also be tesseract or cube
    <hypercube layer="m-1" >
       .....
    </hypercube>
</HYPERCUBE>
		
attribute description
dimension="n" required: to define a hypercube the dimension must be explicitely stated
order="m" required: to define a hypercube the order must be explicitely stated
name="something" optional: optionally a name can be given to the hypercube
power="p" optional: sums are calculated up to the given power (default: 1)
notes The dimension of each subhypercube is assumed to be one lower then the surrounding
when dimension reaches 4 / 3 one can change to stating tesseracts or cubes
the order is assumed to be constant throughout through the listing
HYPERBEAM definition of a hyperbeam
	
<HYPERBEAM dimension="n" order="m1*..*mn" power="p" name="sample" qualification="unknown" >
    <hyperbeam layer="0" >
        .....
    </hypercube>
    ....note: can also be tesseract or cube
    <hyperbeam layer="mn-1" >
       .....
    </hyperbeam>
</HYPERBEAM>
		
attribute description
dimension="n" required: to define a hyperbeam the dimension must be explicitely stated
order="m1*..*mn" required: to define a hyperbeam the orders must be explicitely stated
name="something" optional: optionally a name can be given to the hypercube
power="p" optional: sums are calculated up to the given power (default: 1)
notes The dimension of each subhyperbeam is assumed to be one lower then the surrounding
when dimension reaches 4 / 3 one can change to stating tesseracts or cubes
the various orders are assumed to be given at the highest level
TESSERACT definition of a tesseract (dimension 4)
	
<TESSERACT order="m" name="sample" power="p" qualification="unknown" >
    <cube layer="0" >
        .....
    </cube>
    ....
    <cube layer="m-1" >
        .....
    </cube>
</TESSERACT>
		
attribute description
order="m" required: to define a tesseract the order must be explicitely stated
name="something" optional: optionally a name can be given to the hypercube
power="p" optional: sums are calculated up to the given power (default: 1)
notes a tesseract defines as a sequence of m cubes
CUBE definition of a cube (dimension 3)
	
<CUBE order="m" name="sample" power="p" qualification="unknown" >
    <square layer="0" >
        .....
    </square>
    ....
    <square layer="m-1" >
        .....
    </square>
</CUBE>
		
attribute description
order="m" required: to define a cube the order must be explicitely stated
name="something" optional: optionally a name can be given to the cube
power="p" optional: sums are calculated up to the given power (default: 1)
notes a cube defines as a sequence of m squares
BEAM definition of a cube (dimension 3)
	
<BEAM order="m1*m2*m3" name="sample" power="p" qualification="unknown" >
    <rectangle layer="0" >
        .....
    </rectangle>
    ....
    <rectangle layer="m3-1" >
        .....
    </rectangle>
</BEAM>
		
attribute description
order="m1*m2*m3" required: to define a beam the three orders must be explicitely stated
name="something" optional: optionally a name can be given to the beam
power="p" optional: sums are calculated up to the given power (default: 1)
notes a beam defines as a sequence of m rectangles
SQUARE definition of a square (dimension 2)
	
<SQUARE order="m" name="sample" power="p" qualification="unknown" >
    <row>
        .....
    </row>
    ....
    <row> ..... </row>
</SQUARE>
		
attribute description
order="m" required: to define a square the order must be explicitely stated
name="something" optional: optionally a name can be given to the square
power="p" optional: sums are calculated up to the given power (default: 1)
notes a square defines as a sequence of m rows
these can be stated in a single line
RECTANGLE definition of a rectangle (dimension 2)
	
<RECTANGLE order="m1*m2" name="sample" power="2" qualification="unknown" >
    <row>
        .....
    </row>
    ....
    <row> ..... </row>
</RECTANGLE>
		
attribute description
order="m1*m2" required: to define a rectangle the orders must be explicitely stated
m2 rows on m1 numbers needs to be listed here
name="something" optional: optionally a name can be given to the rectangle
power="p" optional: sums are calculated up to the given power (default: 1)
notes a rectangle defines as a sequence of m rows
these can be stated in a single line
subtags
hypercube definition of a hypercube
	
<hypercube layer="i" >
    <hypercube layer="0" >
        .....
    </hypercube>
    ....note: can also be tesseract or cube
    <hypercube layer="m-1" >
        .....
    </hypercube>
</hypercube>
		
attribute description
layer="i" optional: a layer number can be stated for lexical reasons
it is assumed to run sequentially from 0 to m-1 however
notes a hypercube is a sequence of m hypercubes of 1 lower dimension
hyperbeam definition of a hyperbeam
	
<hyperbeam layer="i" >
    <hyperbeam layer="0" >
        .....
    </hyperbeam>
    ....note: can also be beam
    <hyperbeam layer="m-1" >
        .....
    </hyperbeam>
</hyperbeam>
		
attribute description
layer="i" optional: a layer number can be stated for lexical reasons
it is assumed to run sequentially from 0 to m-1 however
m being the order of the current subdimension as stated
in the HYPERBEAM containing "tag"
notes a hyperbeam is a sequence of m hyperbeams of 1 lower dimension
tesseract definition of a tesseract (dimension 4)
	
<tesseract layer="i" >
    <cube layer="0" >
        .....
    </cube>
    ....
    <cube layer="m-1" >
        .....
    </cube>
</tesseract>
		
attribute description
layer="i" optional: a layer number can be stated for lexical reasons
it is assumed to run sequentially from 0 to m-1 however
notes a tesseract is a sequence of m cubes
cube definition of a cube (dimension 3)
	
<cube layer="i" >
    <square layer="0" >
        .....
    </square>
    ....
    <square layer="m-1" >
        .....
    </square>
</cube>
		
attribute description
layer="i" optional: a layer number can be stated for lexical reasons
it is assumed to run sequentially from 0 to m-1 however
notes a cube is a sequence of m squares
beam definition of a beam (dimension 3)
	
<beam layer="i" >
    <rectangle layer="0" >
        .....
    </rectangle>
    ....
    <rectangle layer="m-1" >
        .....
    </rectangle>
</beam>
		
attribute description
layer="i" optional: a layer number can be stated for lexical reasons
it is assumed to run sequentially from 0 to m-1 however
m being the order of the current subdimension as stated
in the HYPERBEAM containing "tag"
notes a beam is a sequence of m rectangles
square definition of a square (dimension 2)
	
<square layer="i" >
    <row>
        .....
    </row>
    ....
    <row> ..... </row>
</square>
		
attribute description
layer="i" optional: a layer number can be stated for lexical reasons
it is assumed to run sequentially from 0 to m-1 however
notes rows can be stated in a single line
rectangle definition of a rectangle (dimension 2)
	
<rectangle layer="i" >
    <row>
        .....
    </row>
    ....
    <row> ..... </row>
</rectangle>
		
attribute description
layer="i" optional: a layer number can be stated for lexical reasons
it is assumed to run sequentially from 0 to m-1 however
m being the order of the current subdimension as stated
in the HYPERBEAM or BEAM containing "tag"
notes rows can be stated in a single line
information information about the given hypercube
	
<information>
informative text
</information>
		
Production instructions and modification
Productions are usually stated at the main tag level
modifiers can be hooked onto the latin or completed hypercubes
production production of the given hypercube
	
<production>
production string
</production>
		
KJ([..],{..},..,{..}) Knightjump procedure, the startposition is given between '[' and ']'
further needed knightjump vectors are givan between '{' and '}' brackets
LP({..}=[..],..,{..}=[..])
LP({{.},{.}}=[..],..,{{.},{.}}=[..])
Latin prescription defines the "matrix" for the "digit-" or "p-digital
equations, a digit changing permutation can be stated at each component
as well as main n-agonal permutation and transposition are applicable
MC({..},..,{..}) Morris Construction, construction method for franklin squares
is defined for squares only, implementation of it isn't fully developped yet
and thus also this description.
Comp(comp1,..,compx)
Combining components into an hypercube
modifiers modifiers to the given hypercube
	
<modifiers>
modifier string
</modifiers>
		
~R reflection number for the hypercube
^[...] stating a transposition for the hypercube
_[...] main n_agonal permutation
_R[...] r_agonal permutation
=[...] a digit changing permution for all components
@[...] tranpositioning the hypercube
#[...] reordering the components
Pattern definition files
Pattern evaluation is newly added to the program, this section will describe
pattern files while they evolve, currently only simple square patterns as some
cube equations are evaluated.
Square patterns {|{X}{O}|}
A string of X's and O's with the X's counted only once
each '|' defines a new square line
hypercube patterns (involved details will be here in future upload)
numbers in the hypercube are multiplied by the pattern numbers and
then added, thus involved equations are evaluated throughout the hypercube

Note: take note that this is preliminairy documentation of the implemented. The implemented production produce hypercube in the analitic numberrange, changing to the regular is not yet controlable, The INFORMATION tag added is merely to move its content to a tab on its own, currently its content is not yet activated