code: boolean getMatches(Proposition proposition, Collection<String> propIds) throws KnowledgeSourceReadException {
          if (proposition == null) {
              return false;
          } else {
              String pId = proposition.getId();
              if (this.propositionId != null && !propIds.contains(pId)) {
                  return false;
              }
              // check that all property constraints are met
              for (PropertyConstraint pc : this.propertyConstraints) {
                  if (!pc.isSatisfiedBy(proposition)) {
                      return false;
                  }
              }
  
              return true;
          }
      }
docs: Returns whether a proposition has the same id and value, and consistent
  duration as specified by this extended parameter definition.
  
  @param proposition
  a <code>Proposition</code>
  @return <code>true</code> if <code>proposition</code> has the same id and
  value, consistent duration, and property values that match any
  property constraints as specified by this extended parameter
  definition, or <code>false</code> if not, or if
  <code>proposition</code> is <code>null</code>.