User Tools

Site Tools


Writing /home/academic/ogsavkovic/public_html/wiki/data/cache/0/01f21848de708ef25657604b439f79ee.metadata failed
magik-demo:developer:class:core:queryspecialization

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
magik-demo:developer:class:core:queryspecialization [2013/08/23 14:01]
alex [generateInput]
magik-demo:developer:class:core:queryspecialization [2017/07/06 15:24] (current)
Line 99: Line 99:
  
 <code java> <code java>
-public static String generateInput (ArrayList<​TCStatement>​ currentTCs,  +public static ​java.lang.String generateInput (java.util.ArrayList<​TCStatement>​ currentTCs,  
-                                    Schema schema,  +                                              Schema schema,  
-                                    int maxQSpecSize)+                                              int maxQSpecSize)
 </​code>​ </​code>​
  
Line 118: Line 118:
  
 <code java> <code java>
-public static ​java.util.ArrayList<​java.lang.String> generatePrologNotEnfFKs ​(java.util.ArrayList<​ForeignKeyfks)+public static java.lang.String ​generateInput ​(java.util.ArrayList<​TCStatementcurrentTCs,  
 +                                              Schema schema,  
 +                                              int maxQSpecSize)
 </​code>​ </​code>​
  
-Method that encodes in Prolog ​Foreign Keys not enforced+Method that encodes in Prolog ​currentSchema and TC-statements 
 + 
 +**Parameters:​** 
 +  * currentTCs - which data are complete, expressed in TC-statements 
 +  * schema - database schema (that contains finite domain constraints and foreign keys) 
 +  * maxQSpecSize - maximal number of atoms that Magik can add for calculating specialization queries 
 +**Returns:​** 
 +  * String that contains all the prolog code for the given schema and tc-statements
  
 ---- ----
  
-==== generatePrologNotEnfFKs ​====+=== generatePrologEnfFKs ​=== 
 + 
 +<code java> 
 +public static java.util.ArrayList<​java.lang.String>​ generatePrologEnfFKs (java.util.ArrayList<​ForeignKey>​ fks) 
 +</​code>​ 
 + 
 +Method that encodes in Prolog Foreign Keys enforced 
 + 
 +---- 
 + 
 +=== generatePrologRels === 
 + 
 +<code java> 
 +public static java.util.ArrayList<​java.lang.String>​ generatePrologRels (Schema schema) 
 +</​code>​ 
 + 
 +Method that encodes in Prolog relations of the schema selected 
 + 
 +---- 
 + 
 +=== generatePrologTCs === 
 + 
 +<code java> 
 +public static java.util.ArrayList<​java.lang.String>​ generatePrologEnfTCs (java.util.ArrayList<​TCStatement>​ tcs) 
 +</​code>​ 
 + 
 +Method that encodes in Prolog TC-Statements 
 + 
 +---- 
 + 
 +=== generatePrologFDCs === 
 + 
 +<code java> 
 +public static java.util.ArrayList<​java.lang.String>​ generatePrologFDCs (java.util.ArrayList<​FiniteDomainContraint>​ fdcs) 
 +</​code>​ 
 + 
 +Method that encodes in Prolog finite domain constraints. For each FDC we call generatePrologFDC. 
 + 
 +---- 
 + 
 +=== generatePrologFDC === 
 + 
 +<code java> 
 +public static java.lang.String generatePrologFDCs (FiniteDomainContraint fdc) 
 +</​code>​ 
 + 
 +Method that encodes in Prolog a finite domain constraint. 
 + 
 +-------- 
 + 
 +=== createInputFile === 
 + 
 +<code java> 
 +private static java.lang.String createInputFile (java.util.ArrayList<​java.lang.String>​ prologFKsNotEnf,​  
 +                                                 ​java.util.ArrayList<​java.lang.String>​ prologFKsEnf,​  
 +                                                 ​java.util.ArrayList<​java.lang.String>​ prologRels,​ 
 +                                                 ​java.util.ArrayList<​java.lang.String>​ prologPKs,  
 +                                                 ​java.util.ArrayList<​java.lang.String>​ prologTCs,  
 +                                                 ​java.lang.String prologFDCs,  
 +                                                 ​java.lang.String prologQuery) 
 +</​code>​ 
 + 
 +Method that creates the final Prolog string for the schema, query and tc-statements. 
 + 
 +-------- 
 + 
 +=== createInputGUI === 
 + 
 +<code java> 
 +private static java.lang.String createInputGUI (java.util.ArrayList<​java.lang.String>​ prologFKsNotEnf,​  
 +                                                java.util.ArrayList<​java.lang.String>​ prologFKsEnf,​  
 +                                                java.util.ArrayList<​java.lang.String>​ prologRels,​ 
 +                                                java.util.ArrayList<​java.lang.String>​ prologPKs,  
 +                                                java.util.ArrayList<​java.lang.String>​ prologTCs,  
 +                                                java.lang.String prologFDCs) 
 +</​code>​ 
 + 
 +Method that creates the final Prolog string for the schema and tc-statements that MAGIK will visualize in the GUI. 
 + 
 +---- 
 + 
 +==== readMeta ​====
  
 <code java> <code java>
Line 131: Line 221:
 </​code>​ </​code>​
  
-Method that encodes ​in Prolog Foreign Keys not enforced+Method that reads the file with the program that runs the input generated (used in GUI)
  
 ---- ----
  
-==== generatePrologEnfFKs ​====+==== generateQuery ​====
  
 <code java> <code java>
-public static java.util.ArrayList<​java.lang.String> generatePrologEnfFKs ​(java.util.ArrayList<​ForeignKey>​ fks)+public static java.lang.String generateQuery (Query query)</code> 
 + 
 +Method that generate a part of the command used for call specialization algorithm 
 + 
 +---- 
 + 
 +==== generateCommand ==== 
 + 
 +<code java> 
 +public static ​java.lang.String ​generateCommand ​(java.lang.String q4p,  
 +                                                int maximal)
 </​code>​ </​code>​
 +Method that generate the command used for call specialization algorithm
  
-Method that encodes in Prolog ​Foreign Keys enforced+---- 
 + 
 +==== parseQuerySpecializationsTUProlog ==== 
 + 
 +<code java> 
 +public static java.util.ArrayList<​Query>​ parseQuerySpecializationsTuProlog (Query query,  
 +                                                                            Schema schema,  
 +                                                                            SolveInfo info)  
 +                                                                     ​throws ContextException,​  
 +                                                                            NoSolutionException 
 +</​code>​ 
 + 
 +Method that analyses the solutions given by Prolog ​and returns the list of the specialization (if there are)
  
 ---- ----
 +
 +==== getters and setters methods ====
 +
 +<code java>
 +public static java.lang.String getProlog_enconding()
 +public static void setProlog_enconding (java.lang.String prolog_enconding) ​
 +
 +public static java.lang.String getQueryForProlog() ​
 +public static void setQueryForProlog(java.lang.String queryForProlog)
 +
 +public static java.lang.String getMetaProlog()
 +public static void setMetaProlog(java.lang.String metaProlog)
 +
 +public static java.lang.String getCommandQuery()
 +public static void setCommandQuery(java.lang.String commandQuery)
 +
 +public static long getExecutionTime()
 +public static void setExecutionTime(long executionTime) ​
 +
 +public static java.lang.String getEncodingGUI()
 +public static void setEncodingGUI(java.lang.String encodingGUI)
 +
 +</​code>​
magik-demo/developer/class/core/queryspecialization.1377259268.txt.gz · Last modified: 2017/07/06 15:24 (external edit)