diff --git a/src/main/java/org/apache/commons/text/similarity/JaroWrinklerDistance.java b/src/main/java/org/apache/commons/text/similarity/JaroWrinklerSimilarity.java
similarity index 99%
rename from src/main/java/org/apache/commons/text/similarity/JaroWrinklerDistance.java
rename to src/main/java/org/apache/commons/text/similarity/JaroWrinklerSimilarity.java
index 697e995..28522ff 100644
--- a/src/main/java/org/apache/commons/text/similarity/JaroWrinklerDistance.java
+++ b/src/main/java/org/apache/commons/text/similarity/JaroWrinklerSimilarity.java
@@ -35,7 +35,7 @@
  * This code has been adapted from Apache Commons Lang 3.3.
  * </p>
  */
-public class JaroWrinklerDistance implements EditDistance<Double> {
+public class JaroWrinklerSimilarity implements EditDistance<Double> {
 
     /**
      * The default prefix length limit set to four.
diff --git a/src/main/java/org/apache/commons/text/similarity/StringSimilarity.java b/src/main/java/org/apache/commons/text/similarity/StringSimilarity.java
new file mode 100644
index 0000000..e74d76e
--- /dev/null
+++ b/src/main/java/org/apache/commons/text/similarity/StringSimilarity.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.text.similarity;
+
+/**
+ * Interface for <a href="http://en.wikipedia.org/wiki/Edit_distance">Edit Distances</a>.
+ *
+ * <p>
+ * A edit distance measures the similarity between two character sequences. Closer strings
+ * have shorter distances, and vice-versa.
+ * </p>
+ *
+ * <p>
+ * This is a BiFunction&lt;CharSequence, CharSequence, R&gt;.
+ * The <code>apply</code> method
+ * accepts a pair of {@link CharSequence} parameters
+ * and returns an <code>R</code> type similarity score.
+ * </p>
+ *
+ * @param <R> The type of similarity score unit used by this EditDistance.
+ */
+public interface StringSimilarity {
+
+}
diff --git a/src/main/java/org/apache/commons/text/similarity/package-info.java b/src/main/java/org/apache/commons/text/similarity/package-info.java
index d2a19a6..fa3c0d6 100644
--- a/src/main/java/org/apache/commons/text/similarity/package-info.java
+++ b/src/main/java/org/apache/commons/text/similarity/package-info.java
@@ -28,7 +28,7 @@
  * <li>{@link org.apache.commons.text.similarity.CosineSimilarity Cosine Similarity}</li>
  * <li>{@link org.apache.commons.text.similarity.FuzzyScore Fuzzy Score}</li>
  * <li>{@link org.apache.commons.text.similarity.HammingDistance Hamming Distance}</li>
- * <li>{@link org.apache.commons.text.similarity.JaroWrinklerDistance Jaro-Wrinkler Distance}</li>
+ * <li>{@link org.apache.commons.text.similarity.JaroWrinklerSimilarity Jaro-Wrinkler Distance}</li>
  * <li>{@link org.apache.commons.text.similarity.LevenshteinDistance Levenshtein Distance}</li>
  * </ul>
  *
diff --git a/src/test/java/org/apache/commons/text/similarity/JaroWrinklerDistanceTest.java b/src/test/java/org/apache/commons/text/similarity/JaroWrinklerDistanceTest.java
index 660cca5..ed60582 100644
--- a/src/test/java/org/apache/commons/text/similarity/JaroWrinklerDistanceTest.java
+++ b/src/test/java/org/apache/commons/text/similarity/JaroWrinklerDistanceTest.java
@@ -22,15 +22,15 @@
 import org.junit.Test;
 
 /**
- * Unit tests for {@link org.apache.commons.text.similarity.JaroWrinklerDistance}.
+ * Unit tests for {@link org.apache.commons.text.similarity.JaroWrinklerSimilarity}.
  */
 public class JaroWrinklerDistanceTest {
 
-    private static JaroWrinklerDistance distance;
+    private static JaroWrinklerSimilarity distance;
     
     @BeforeClass
     public static void setUp() {
-        distance = new JaroWrinklerDistance();
+        distance = new JaroWrinklerSimilarity();
     }
     
     @Test
diff --git a/src/test/java/org/apache/commons/text/similarity/ParameterizedEditDistanceFromTest.java b/src/test/java/org/apache/commons/text/similarity/ParameterizedEditDistanceFromTest.java
index e053dcd..8b60ff2 100644
--- a/src/test/java/org/apache/commons/text/similarity/ParameterizedEditDistanceFromTest.java
+++ b/src/test/java/org/apache/commons/text/similarity/ParameterizedEditDistanceFromTest.java
@@ -58,9 +58,9 @@
             { new HammingDistance(), "Japtheth, Ham, Shem", "Japtheth, HAM, Shem", 2 },
             { new HammingDistance(), "Hamming", "Hamming", 0 },
 
-            { new JaroWrinklerDistance(), "elephant", "hippo", 0.44 },
-            { new JaroWrinklerDistance(), "hippo", "elephant",  0.44 },
-            { new JaroWrinklerDistance(), "hippo", "zzzzzzzz", 0.0 },
+            { new JaroWrinklerSimilarity(), "elephant", "hippo", 0.44 },
+            { new JaroWrinklerSimilarity(), "hippo", "elephant",  0.44 },
+            { new JaroWrinklerSimilarity(), "hippo", "zzzzzzzz", 0.0 },
 
             { new LevenshteinDistance(), "Apache", "a patchy", 4 },
             { new LevenshteinDistance(), "go", "no go", 3 },
