Advertisement
Guest User

Untitled

a guest
Feb 28th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 1.59 KB | None | 0 0
  1. Path[] query_path(Edge query, Graph G, bool infer)
  2. {
  3.     Path[] pathList = [];
  4.    
  5.     bool subExists = false;
  6.     bool superExists = false;
  7.    
  8.     Concept subConcept = query.get_sub;
  9.     Concept superConcept = query.get_super;
  10.     bool isA = query.get_isA;
  11.    
  12.     subExists = contain_concept(G.conceptList, subConcept);
  13.     superExists = contain_concept(G.conceptList, superConcept);
  14.     {
  15.         if(c.compare_concept(subConcept))
  16.             subExists = true;
  17.         if(c.compare_concept(superConcept))
  18.             superExists = true;
  19.     }
  20.    
  21.     if(subExists && superExists)
  22.     {
  23.         if(!infer)
  24.         {
  25.             foreach(e; G.edgeList)
  26.             {
  27.                 if(e.get_sub.compare_concept(subConcept))
  28.                 {
  29.                     Path path = new Path(e.get_sub);
  30.                     pathList = query_rec(e.get_super, superConcept, path, pathList, true);
  31.                 }
  32.             }
  33.         }
  34.        
  35.         foreach(c; G.conceptList)
  36.         {
  37.             if(c.compare_concept(subConcept))
  38.             {
  39.                 subConcept = c;
  40.                 break;
  41.             }
  42.         }
  43.        
  44.         if(infer)
  45.         {
  46.             Path path = new Path(subConcept);
  47.             pathList ~= query_infer(G, subConcept, superConcept, path, true);
  48.         }
  49.        
  50.         Path[] newPathList;
  51.         foreach(index, p; pathList)
  52.         {
  53.             if(p.get_tail.get_concept.compare_concept(superConcept))
  54.                 newPathList ~= pathList[index];
  55.         }
  56.         pathList = newPathList;
  57.     }
  58.     return pathList;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement