@Override
    public void processKnowIt(KnowIt knowIt) {
      defaultProcess(knowIt);

      this.addTypeData(knowIt.getTypes());

      knowIt
          .getBinding()
          .process(
              new BindingAdapter() {

                @Override
                public void processResource(KnowItBindingResource constant) {
                  searchData.add(constant.getName());
                  searchData.add(constant.getTag());
                  searchData.add(constant.getScriptValue());
                  searchData.add(constant.getTemplateID());

                  addTypeData(constant.getTypes());
                }

                @Override
                public void processFunction(KnowItBindingFunction function) {
                  function.getValue().process(SearchDataCompiler.this);
                }

                @Override
                public void processReference(KnowItBindingReference reference) {
                  reference.getValue().process(SearchDataCompiler.this);
                }

                @Override
                public void processStoryPoint(KnowItBindingStoryPoint storyPoint) {
                  storyPoint.getValue().process(SearchDataCompiler.this);
                }
              });

      final DescribeIt describeIt;

      describeIt = knowIt.getLibrary().getDescribeIt(knowIt);

      if (describeIt != null) {
        for (ScriptIt scriptIt : describeIt.getScriptIts()) {
          scriptIt.process(this);
        }
      }
    }