private void initializeQueryProperties() {
    defaultQueryProperties.put(makeCycSymbol(":allowed-rules"), makeCycSymbol(":all"));
    defaultQueryProperties.put(makeCycSymbol(":result-uniqueness"), makeCycSymbol(":bindings"));
    defaultQueryProperties.put(makeCycSymbol(":allow-hl-predicate-transformation?"), false);
    defaultQueryProperties.put(makeCycSymbol(":allow-unbound-predicate-transformation?"), false);
    defaultQueryProperties.put(makeCycSymbol(":allow-evaluatable-predicate-transformation?"), false);
    defaultQueryProperties.put(makeCycSymbol(":intermediate-step-validation-level"), makeCycSymbol(":all"));
    defaultQueryProperties.put(makeCycSymbol(":negation-by-failure?"), false);
    defaultQueryProperties.put(makeCycSymbol(":allow-indeterminate-results?"), true);
    defaultQueryProperties.put(makeCycSymbol(":allow-abnormality-checking?"), true);
    defaultQueryProperties.put(makeCycSymbol(":disjunction-free-el-vars-policy"), makeCycSymbol(":compute-intersection"));
    defaultQueryProperties.put(makeCycSymbol(":allowed-modules"), makeCycSymbol(":all"));
    defaultQueryProperties.put(makeCycSymbol(":completeness-minimization-allowed?"), true);
    defaultQueryProperties.put(makeCycSymbol(":direction"), makeCycSymbol(":backward"));
    defaultQueryProperties.put(makeCycSymbol(":equality-reasoning-method"), makeCycSymbol(":czer-equal"));
    defaultQueryProperties.put(makeCycSymbol(":equality-reasoning-domain"), makeCycSymbol(":all"));
    defaultQueryProperties.put(makeCycSymbol(":max-problem-count"), Long.valueOf(100000));
    defaultQueryProperties.put(makeCycSymbol(":transformation-allowed?"), false);
    defaultQueryProperties.put(makeCycSymbol(":add-restriction-layer-of-indirection?"), true);
    defaultQueryProperties.put(makeCycSymbol(":evaluate-subl-allowed?"), true);
    defaultQueryProperties.put(makeCycSymbol(":rewrite-allowed?"), false);
    defaultQueryProperties.put(makeCycSymbol(":abduction-allowed?"), false);
    defaultQueryProperties.put(makeCycSymbol(":removal-backtracking-productivity-limit"), Long.valueOf(2000000));
    // dynamic query properties
    defaultQueryProperties.put(makeCycSymbol(":max-number"), null);
    defaultQueryProperties.put(makeCycSymbol(":max-time"), Integer.valueOf(120));
    defaultQueryProperties.put(makeCycSymbol(":max-transformation-depth"), Integer.valueOf(0));
    defaultQueryProperties.put(makeCycSymbol(":block?"), false);
    defaultQueryProperties.put(makeCycSymbol(":max-proof-depth"), null);
    defaultQueryProperties.put(makeCycSymbol(":cache-inference-results?"), false);
    defaultQueryProperties.put(makeCycSymbol(":answer-language"), makeCycSymbol(":el"));
    defaultQueryProperties.put(makeCycSymbol(":continuable?"), false);
    defaultQueryProperties.put(makeCycSymbol(":browsable?"), false);
    defaultQueryProperties.put(makeCycSymbol(":productivity-limit"), Long.valueOf(2000000));

    final CycList<CycSymbol> queryPropertiesList = new CycList(defaultQueryProperties.keySet());
    final String command = makeSubLStmt("mapcar", makeCycSymbol("query-property-p"), queryPropertiesList);
    try {
      CycList results = converseList(command);
      for (int i = 0, size = results.size(); i < size; i++) {
        if (results.get(i).equals(CycObjectFactory.nil)) {
          final CycSymbol badProperty = queryPropertiesList.get(i);
          System.err.println(badProperty + " is not a query-property-p");
          defaultQueryProperties.remove(badProperty);
        }
      }
    } catch (Exception e) {
      System.err.println(e.getMessage());
    }
    queryPropertiesInitialized = true;
  }