Software Engineering Ontology Annotation
Levenshtein Solution 5 source code
public class solution {
private static List<List<Integer>> matrix_;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length != 2) {
return;
}
calculateDistance(args[0], args[1]);
printMatrix(args[0], args[1]);
}
private static void calculateDistance(String word1, String word2) {
initializeMatrix(word2.length(), word1.length());
for (int i2 = 1; i2 <= word2.length(); i2++) {
List<Integer> singleRow = matrix_.get(i2);
for (int i1 = 1; i1 <= word1.length(); i1++) {
if ( (word1.charAt(i1 - 1)) == (word2.charAt(i2 - 1)) ) {
if (checkIfLeftAboveIsMiniumFor(i2, i1)) {
singleRow.add(getMinimumFor(i2, i1));
} else {
singleRow.add(getMinimumFor(i2, i1) + 1);
}
} else {
singleRow.add(getMinimumFor(i2, i1) + 1);
}
}
}
}
private static List<Integer> getListForMinimumFor(int i, int j) {
List<Integer> myList = new ArrayList<>();
myList.add(matrix_.get(i - 1).get(j - 1));
myList.add(matrix_.get(i).get(j - 1));
myList.add(matrix_.get(i - 1).get(j));
return myList;
}
private static int getMinimumFor(int i, int j) {
List<Integer> myList = getListForMinimumFor(i, j);
return Collections.min(myList);
}
private static boolean checkIfLeftAboveIsMiniumFor(int i, int j) {
List<Integer> myList = getListForMinimumFor(i, j);
return myList.indexOf(Collections.min(myList)) == 0;
}
private static void printMatrix(String word1, String word2) {
for (int i = 0; i < matrix_.size(); i++) {
String line = "";
if (i > 0 && i <= word2.length()) {
line = String.valueOf(word2.charAt(i - 1)) + " ";
} else {
line = " ";
}
for (int j = 0; j < matrix_.get(i).size(); j++) {
if (i == 0 && j == 0) {
System.out.print(" ");
}
if (i == 0 && j > 0 && j <= word1.length()) {
System.out.print(word1.charAt(j - 1) + " ");
if (i == 0 && j == matrix_.get(i).size() - 1) {
System.out.println("");
}
}
line += String.valueOf(matrix_.get(i).get(j)) + " ";
}
System.out.println(line);
}
}
private static void initializeMatrix(int m, int n) {
matrix_ = new ArrayList<>();
matrix_.add(new ArrayList<Integer>());
for (int j = 0; j <= n; j++) {
matrix_.get(0).add(j);
}
matrix_.add(new ArrayList<Integer>());
for (int i = 1; i <= m; i++) {
matrix_.get(i).add(i);
matrix_.add(new ArrayList<Integer>());
}
}
}
Annotation in text format
File Name >> solution10.java
File Creation data >> 1425000729024
Java Classes --> solution
Method Name --> main
Method return type --> void
Method Name --> calculateDistance
Method return type --> void
Method Name --> getListForMinimumFor
Method return type --> java.util.List
Method Name --> getMinimumFor
Method return type --> int
Method Name --> checkIfLeftAboveIsMiniumFor
Method return type --> boolean
Method Name --> printMatrix
Method return type --> void
Method Name --> initializeMatrix
Method return type --> void
Field Name --> matrix_
Field type --> java.util.List
Is Field Array --> false
matrix_Fieldis STATIC
matrix_ modifier --> private
matrix_ modifier --> static
Annotation in RDF format
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:SEO="http://www.seontology.org/activeseo/seo/v1#"
xmlns:DC="http://purl.org/dc/dcmitype/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/calculateDistance/Parameter_2">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>java.lang.String</SEO:paramType>
<SEO:paramName>word2</SEO:paramName>
<SEO:paramSeq>2</SEO:paramSeq>
<foaf:name>word2</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/calculateDistance/Parameter_1">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>java.lang.String</SEO:paramType>
<SEO:paramName>word1</SEO:paramName>
<SEO:paramSeq>1</SEO:paramSeq>
<foaf:name>word1</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/initializeMatrix">
<SEO:methodDeclarationSignature>void initializeMatrix(int m, int n)</SEO:methodDeclarationSignature>
<SEO:isReturnPrimitive>true</SEO:isReturnPrimitive>
<SEO:methodName>initializeMatrix</SEO:methodName>
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/initializeMatrix/Parameter_1">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>int</SEO:paramType>
<SEO:paramName>m</SEO:paramName>
<SEO:paramSeq>1</SEO:paramSeq>
<foaf:name>m</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
<SEO:methodCallSignature>initializeMatrix(m, n)</SEO:methodCallSignature>
<SEO:hasStaticModifier>true</SEO:hasStaticModifier>
<SEO:returnType>void</SEO:returnType>
<SEO:hasAccessModifier rdf:resource="http://www.seontology.org/activeseo/seo/v1#Private"/>
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/initializeMatrix/Parameter_2">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>int</SEO:paramType>
<SEO:paramName>n</SEO:paramName>
<SEO:paramSeq>2</SEO:paramSeq>
<foaf:name>n</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#METHOD"/>
<foaf:name>initializeMatrix</foaf:name>
</DC:Software>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/getListForMinimumFor">
<foaf:name>getListForMinimumFor</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#METHOD"/>
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/getListForMinimumFor/Parameter_2">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>int</SEO:paramType>
<SEO:paramName>j</SEO:paramName>
<SEO:paramSeq>2</SEO:paramSeq>
<foaf:name>j</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
<SEO:methodCallSignature>getListForMinimumFor(i, j)</SEO:methodCallSignature>
<SEO:hasAccessModifier rdf:resource="http://www.seontology.org/activeseo/seo/v1#Private"/>
<SEO:hasStaticModifier>true</SEO:hasStaticModifier>
<SEO:methodName>getListForMinimumFor</SEO:methodName>
<SEO:returnType>java.util.List</SEO:returnType>
<SEO:methodDeclarationSignature>java.util.List getListForMinimumFor(int i, int j)</SEO:methodDeclarationSignature>
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/getListForMinimumFor/Parameter_1">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>int</SEO:paramType>
<SEO:paramName>i</SEO:paramName>
<SEO:paramSeq>1</SEO:paramSeq>
<foaf:name>i</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
</DC:Software>
<SEO:CLASS rdf:about="http://www.seontology.org/activeseo/seoanno/data/solution">
<SEO:hasField>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/matrix_">
<SEO:fieldName>matrix_</SEO:fieldName>
<SEO:isFieldArray>false</SEO:isFieldArray>
<rdfs:comment>private static java.util.List matrix_</rdfs:comment>
<foaf:name>matrix_</foaf:name>
<SEO:hasParentClass>solution</SEO:hasParentClass>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#FIELD"/>
<SEO:hasStaticModifier>true</SEO:hasStaticModifier>
<SEO:fieldType>java.util.List</SEO:fieldType>
<SEO:hasAccessModifier rdf:resource="http://www.seontology.org/activeseo/seo/v1#Private"/>
</DC:Software>
</SEO:hasField>
<SEO:hasMethod>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/calculateDistance">
<SEO:methodCallSignature>calculateDistance(word1, word2)</SEO:methodCallSignature>
<SEO:isReturnPrimitive>true</SEO:isReturnPrimitive>
<SEO:returnType>void</SEO:returnType>
<SEO:hasAccessModifier rdf:resource="http://www.seontology.org/activeseo/seo/v1#Private"/>
<SEO:methodName>calculateDistance</SEO:methodName>
<SEO:methodDeclarationSignature>void calculateDistance(java.lang.String word1, java.lang.String word2)</SEO:methodDeclarationSignature>
<foaf:name>calculateDistance</foaf:name>
<SEO:hasStaticModifier>true</SEO:hasStaticModifier>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#METHOD"/>
<SEO:methodHasParam rdf:resource="http://www.seontology.org/activeseo/seoanno/data/calculateDistance/Parameter_1"/>
<SEO:methodHasParam rdf:resource="http://www.seontology.org/activeseo/seoanno/data/calculateDistance/Parameter_2"/>
</DC:Software>
</SEO:hasMethod>
<SEO:hasMethod>
<SEO:METHOD rdf:about="http://www.seontology.org/activeseo/seoanno/data/checkIfLeftAboveIsMiniumFor">
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/checkIfLeftAboveIsMiniumFor/Parameter_2">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>int</SEO:paramType>
<SEO:paramName>j</SEO:paramName>
<SEO:paramSeq>2</SEO:paramSeq>
<foaf:name>j</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
<SEO:hasAccessModifier rdf:resource="http://www.seontology.org/activeseo/seo/v1#Private"/>
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/checkIfLeftAboveIsMiniumFor/Parameter_1">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>int</SEO:paramType>
<SEO:paramName>i</SEO:paramName>
<SEO:paramSeq>1</SEO:paramSeq>
<foaf:name>i</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
<foaf:name>checkIfLeftAboveIsMiniumFor</foaf:name>
<rdf:type rdf:resource="http://purl.org/dc/dcmitype/Software"/>
<SEO:methodCallSignature>checkIfLeftAboveIsMiniumFor(i, j)</SEO:methodCallSignature>
<SEO:methodDeclarationSignature>boolean checkIfLeftAboveIsMiniumFor(int i, int j)</SEO:methodDeclarationSignature>
<SEO:hasStaticModifier>true</SEO:hasStaticModifier>
<SEO:isReturnPrimitive>true</SEO:isReturnPrimitive>
<SEO:returnType>boolean</SEO:returnType>
<SEO:methodName>checkIfLeftAboveIsMiniumFor</SEO:methodName>
</SEO:METHOD>
</SEO:hasMethod>
<SEO:hasMethod>
<SEO:METHOD rdf:about="http://www.seontology.org/activeseo/seoanno/data/main">
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/main/Parameter_1">
<SEO:isParamArray>true</SEO:isParamArray>
<SEO:paramType>java.lang.String</SEO:paramType>
<SEO:paramName>args</SEO:paramName>
<SEO:paramSeq>1</SEO:paramSeq>
<foaf:name>args</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
<SEO:hasStaticModifier>true</SEO:hasStaticModifier>
<SEO:hasAccessModifier rdf:resource="http://www.seontology.org/activeseo/seo/v1#Public"/>
<foaf:name>main</foaf:name>
<SEO:methodDeclarationSignature>void main(java.lang.String[] args)</SEO:methodDeclarationSignature>
<rdf:type rdf:resource="http://purl.org/dc/dcmitype/Software"/>
<SEO:returnType>void</SEO:returnType>
<SEO:methodName>main</SEO:methodName>
<SEO:isReturnPrimitive>true</SEO:isReturnPrimitive>
<SEO:methodCallSignature>main(args)</SEO:methodCallSignature>
</SEO:METHOD>
</SEO:hasMethod>
<SEO:hasMethod>
<SEO:METHOD rdf:about="http://www.seontology.org/activeseo/seoanno/data/getMinimumFor">
<SEO:hasAccessModifier rdf:resource="http://www.seontology.org/activeseo/seo/v1#Private"/>
<SEO:methodDeclarationSignature>int getMinimumFor(int i, int j)</SEO:methodDeclarationSignature>
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/getMinimumFor/Parameter_1">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>int</SEO:paramType>
<SEO:paramName>i</SEO:paramName>
<SEO:paramSeq>1</SEO:paramSeq>
<foaf:name>i</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
<rdf:type rdf:resource="http://purl.org/dc/dcmitype/Software"/>
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/getMinimumFor/Parameter_2">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>int</SEO:paramType>
<SEO:paramName>j</SEO:paramName>
<SEO:paramSeq>2</SEO:paramSeq>
<foaf:name>j</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
<SEO:methodCallSignature>getMinimumFor(i, j)</SEO:methodCallSignature>
<SEO:hasStaticModifier>true</SEO:hasStaticModifier>
<SEO:returnType>int</SEO:returnType>
<foaf:name>getMinimumFor</foaf:name>
<SEO:isReturnPrimitive>true</SEO:isReturnPrimitive>
<SEO:methodName>getMinimumFor</SEO:methodName>
</SEO:METHOD>
</SEO:hasMethod>
<SEO:hasMethod rdf:resource="http://www.seontology.org/activeseo/seoanno/data/getListForMinimumFor"/>
<foaf:name>solution</foaf:name>
<rdf:type rdf:resource="http://purl.org/dc/dcmitype/Software"/>
<SEO:hasMethod>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/printMatrix">
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#METHOD"/>
<SEO:returnType>void</SEO:returnType>
<SEO:methodCallSignature>printMatrix(word1, word2)</SEO:methodCallSignature>
<SEO:isReturnPrimitive>true</SEO:isReturnPrimitive>
<SEO:hasAccessModifier rdf:resource="http://www.seontology.org/activeseo/seo/v1#Private"/>
<SEO:methodDeclarationSignature>void printMatrix(java.lang.String word1, java.lang.String word2)</SEO:methodDeclarationSignature>
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/printMatrix/Parameter_1">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>java.lang.String</SEO:paramType>
<SEO:paramName>word1</SEO:paramName>
<SEO:paramSeq>1</SEO:paramSeq>
<foaf:name>word1</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
<SEO:methodHasParam>
<DC:Software rdf:about="http://www.seontology.org/activeseo/seoanno/data/printMatrix/Parameter_2">
<SEO:isParamArray>false</SEO:isParamArray>
<SEO:paramType>java.lang.String</SEO:paramType>
<SEO:paramName>word2</SEO:paramName>
<SEO:paramSeq>2</SEO:paramSeq>
<foaf:name>word2</foaf:name>
<rdf:type rdf:resource="http://www.seontology.org/activeseo/seo/v1#PARAMETER"/>
</DC:Software>
</SEO:methodHasParam>
<foaf:name>printMatrix</foaf:name>
<SEO:hasStaticModifier>true</SEO:hasStaticModifier>
<SEO:methodName>printMatrix</SEO:methodName>
</DC:Software>
</SEO:hasMethod>
<SEO:hasAccessModifier rdf:resource="http://www.seontology.org/activeseo/seo/v1#Public"/>
<SEO:hasMethod rdf:resource="http://www.seontology.org/activeseo/seoanno/data/initializeMatrix"/>
</SEO:CLASS>
</rdf:RDF>
Annotation in graph format