Goto Chapter: Top 1 2 3 4 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

4 The Origami Database
 4.1 Setting up the database
 4.2 Using the origami database

4 The Origami Database

4.1 Setting up the database

To use the origami database, you need an instance of ArangoDB running on port 8529. After installing ArangoDB, you need to set up a database as follows:

In this database, create three collections called origami_representatives, origamis and veechgroups. Please download the data from https://www.math.uni-sb.de/ag/weitze/CMS/index.php/de/forschung and import the json-files into the corresponding collections. All of this can be done in the web interface of ArangoDB, which you can reach under http://127.0.0.1:8529.

4.2 Using the origami database

4.2-1 ConnectToOrigamiDB
‣ ConnectToOrigamiDB( )( function )

Returns: An ArangoDatabase object

Connects to the arango database 'origami' at the endpoint 'http+tcp://127.0.0.1:8529' with the user 'origami' and password 'secret'.

‣ InsertVeechGroupIntoDB( G )( operation )

Returns: An ArangoDocument

Takes a ModularSubgroup G and inserts it into the Veech group table. Only precomputed attributes are inserted. This function does not compute anything new from the group. No test is performed to check whether G already exists in the database. The resulting ArangoDocument corresponding to the new database entry is returned.

‣ GetVeechGroupDBEntry( G )( operation )

Returns: An ArangoDocument

Takes a ModularSubgroup G and returns the corresponding database entry or fail if G is not in the database.

‣ GetVeechGroupsFromDB( constraints )( operation )

Returns: A list of ModularSubgroups

Returns all Veech groups in the database subject to the argument constraints which is given in the form of a record.

      
      gap> GetVeechGroupsFromDB(rec(index := 30, genus := 0));
      [list of modular subgroups]
      gap> GetVeechGroupsFromDB(rec(congruence := true, level := 12));
      [list of modular subgroups]
      gap> GetVeechGroupsFromDB(rec(deficiency := 5));
      [list of modular subgroups]
      
    
‣ UpdateVeechGroupDBEntry( G )( operation )

Returns: An ArangoDocument

Updates the Veech group entry in the database with newly computed data and returns the corresponding ArangoDocument.

‣ RemoveVeechGroupFromDB( G )( operation )

Returns: Nothing.

Removes the Veech group G from the database (if present). NOT YET IMPLEMENTED

‣ InsertOrigamiRepresentativeIntoDB( O )( operation )

Returns: An ArangoDocument

Inserts the normal form of the origami O into the origami representative list. Inserts only precomputed data. If the Veech group of O does not already exist in the database, it is also inserted. This function assumes that no other element of the SL_2(Z) orbit of O exists in the representative list, no test is performed to check this.

‣ GetOrigamiOrbitRepresentativeDBEntry( O )( operation )

Returns: An ArangoDocument

Takes an Origami O and returns the corresponding database entry or fail if O is not in the database.

‣ GetOrigamiOrbitRepresentativesFromDB( constraints )( operation )

Returns: A list of Origamis

Returns all origami orbit representatives in the database subject to the constraints given in the form of the record constraints.

      
      gap> GetOrigamiOrbitRepresentativesFromDB(rec(stratum := [4]));
      [ Origami((1,4,3)(2,5), (1,5,3,4)(2,6), 6) ]
      gap> GetOrigamiOrbitRepresentativesFromDB(rec(degree := 5));
      [ Origami((1,3,5), (1,3)(2,4,5), 5) ]
      
    
‣ GetAllOrigamiOrbitRepresentativesFromDB( )( operation )

Returns: A list of Origamis

Returns all origami orbit representatives in the database. Shorthand for GetOrigamiOrbitRepresentativesFromDB(rec());

‣ UpdateOrigamiOrbitRepresentativeDBEntry( O )( operation )

Returns: An ArangoDocument

Updates the origami orbit representative entry in the database with newly computed data and returns the corresponding ArangoDocument. If the origami orbit representative O does not exist in the database, it is inserted.

‣ RemoveOrigamiOrbitRepresentativeFromDB( O )( operation )

Returns: Nothing.

Removes the origami orbit representative O from the database if present. NOT YET IMPLEMENTED!

‣ InsertOrigamiWithOrbitRepresentativeIntoDB( O, R )( operation )

Returns: An ArangoDocument

Inserts the origami O into the origami list with orbit representative R which is inserted into the origami orbit representative list if it is not already in there. Returns the ArangoDocument corresponding to O.

‣ InsertOrigamiIntoDB( O )( operation )

Returns: An ArangoDocument

Inserts an origami O into the database. If the Veech group and the orbit of O is known, this function checks if there is already a representative of the orbit of O in the database. If not, O is inserted as the representative of its orbit, if yes, O is only inserted into the origami list with a reference to the representative. If the Veech group of O is not known, it is inserted as its own representative. This might result in entries in the origami orbit representative list which are in the same orbit.

‣ GetOrigamiDBEntry( O )( operation )

Returns: An ArangoDocument

Returns the ArangoDocument in the origami list corresponding to the origami O or fail if does not exist in the database.

‣ GetOrigamiOrbit( O )( operation )

Returns: A list of Origamis

Returns all origamis in the database which are in the orbit of O.

‣ UpdateRepresentativeOfOrigami( O, R )( operation )

Returns: Nothing.

Updates the orbit representative of O to be R.

‣ RemoveOrigamiFromDB( O )( operation )

Returns: Nothing.

Removes the origami O from the database.

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 Bib Ind

generated by GAPDoc2HTML