docs: public double getDependencyStructureLogProbability(DependencyStructure dependency,
        List<String> posTags) {
      int headIndex = dependency.getHeadWordIndex();
      int objectIndex = dependency.getObjectWordIndex();
      Assignment assignment = Assignment.unionAll(
          dependencyHeadVar.outcomeArrayToAssignment(dependency.getHead()),
          dependencySyntaxVar.outcomeArrayToAssignment(dependency.getHeadSyntacticCategory()),
          dependencyArgNumVar.outcomeArrayToAssignment(dependency.getArgIndex()),
          dependencyArgVar.outcomeArrayToAssignment(dependency.getObject()),
          dependencyHeadPosVar.outcomeArrayToAssignment(posTags.get(headIndex)),
          dependencyArgPosVar.outcomeArrayToAssignment(posTags.get(objectIndex)));
  
      if (!dependencyDistribution.getVars().isValidAssignment(assignment)) {
        return Double.NEGATIVE_INFINITY;
      } else {
        return dependencyDistribution.getUnnormalizedLogProbability(assignment);
      }
    }