Daniel Kinzler has submitted this change and it was merged.
Change subject: Added doc comments to ClientRecommender classes and their
methods
......................................................................
Added doc comments to ClientRecommender classes and their methods
Change-Id: I54b98280f5020f1fddb90f69a032ab3efa7686c7
---
M
client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/AbstractClientRecommender.java
M
client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/CLIClientRecommender.java
M
client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/WebClientRecommender.java
3 files changed, 104 insertions(+), 1 deletion(-)
Approvals:
Daniel Kinzler: Verified; Looks good to me, approved
diff --git
a/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/AbstractClientRecommender.java
b/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/AbstractClientRecommender.java
index 85a665f..68ea9fb 100644
---
a/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/AbstractClientRecommender.java
+++
b/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/AbstractClientRecommender.java
@@ -16,8 +16,15 @@
import org.apache.mahout.cf.taste.common.TasteException;
/**
+ * Extend this class to delegate calls for suggesting wikibaseProperties for
+ * already existing and new wikibaseItems to a Myrrix
+ * TranslatingClientRecommender object.
*
- * @author nilesh
+ * ClientRecommenders are basically Java wrappers used to query the Myrrix
+ * servlets using TranslatingClientRecommenders to handle String IDs to numeric
+ * hashes to be used with Myrrix.
+ *
+ * @author Nilesh Chakraborty
*/
abstract class AbstractClientRecommender {
diff --git
a/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/CLIClientRecommender.java
b/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/CLIClientRecommender.java
index 8f1b4e9..2ee20f9 100644
---
a/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/CLIClientRecommender.java
+++
b/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/CLIClientRecommender.java
@@ -14,6 +14,9 @@
import org.wikimedia.wikibase.entitysuggester.client.CLIEntitySuggester;
/**
+ * Command-line ClientRecommender mainly used for debugging purposes. This is
+ * used to fetch suggestions and write the results to the console by taking the
+ * wikibaseProperty and wikibaseItems labels from a MySQL database.
*
* @author Nilesh Chakraborty
*/
@@ -24,10 +27,21 @@
private String dbUser;
private String dbPassword;
+ /**
+ *
+ * @param myrrixClientConfiguration
+ */
public CLIClientRecommender(MyrrixClientConfiguration
myrrixClientConfiguration) {
super(myrrixClientConfiguration);
}
+ /**
+ *
+ * @param dbHost
+ * @param dbName
+ * @param dbUser
+ * @param dbPassword
+ */
public void setDatabaseInfo(String dbHost, String dbName, String dbUser,
String dbPassword) {
this.dbHost = dbHost;
this.dbName = dbName;
@@ -35,6 +49,16 @@
this.dbUser = dbUser;
}
+ /**
+ * Used to fetch wikibaseProperty suggestions for already existing
+ * wikibaseItems.
+ *
+ * @param idListFile
+ * @param recommendTo
+ * @param recommendType
+ * @param howMany
+ * @return
+ */
@Override
public List<TranslatedRecommendedItem> recommend(String idListFile, String
recommendTo, String recommendType, int howMany) {
try {
@@ -48,6 +72,16 @@
return null;
}
+ /**
+ * Used to fetch wikibaseProperty suggestions for already anonymous
(perhaps
+ * being created) wikibaseItems.
+ *
+ * @param idListFile
+ * @param recommendType
+ * @param howMany
+ * @param list
+ * @return
+ */
@Override
public List<TranslatedRecommendedItem> recommendAnonymous(String
idListFile, String recommendType, int howMany, String[] list) {
try {
@@ -62,6 +96,12 @@
return null;
}
+ /**
+ * Used to feed/train Myrrix with a csv file containing rows of
+ * wikibaseItem, wikibaseProperty, weight
+ *
+ * @param csvFile
+ */
@Override
public void ingest(String csvFile) {
try {
@@ -72,6 +112,17 @@
}
}
+ /**
+ * Writes suggestion results to the console by taking the wikibaseProperty
+ * and wikibaseItems labels from a MySQL database.
+ *
+ * @param recommendations
+ * @param recommendType
+ * @param dbHost
+ * @param dbName
+ * @param dbUser
+ * @param dbPassword
+ */
private void writeResults(List<TranslatedRecommendedItem> recommendations,
String recommendType, String dbHost, String dbName, String dbUser, String
dbPassword) {
if (!recommendations.isEmpty()) {
Connection connect = null;
diff --git
a/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/WebClientRecommender.java
b/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/WebClientRecommender.java
index 3f1867b..c480ded 100644
---
a/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/WebClientRecommender.java
+++
b/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/recommender/WebClientRecommender.java
@@ -10,27 +10,65 @@
import org.apache.mahout.cf.taste.common.TasteException;
/**
+ * The actual ClientRecommender class used inside the client servlets.
*
* @author Nilesh Chakraborty
*/
public class WebClientRecommender extends AbstractClientRecommender {
+ /**
+ * Create a WebClientRecommender.
+ *
+ * @param idListFile - The path to the file with the list of
+ * wikibaseProperties This may be removed in the near future, if I remove
+ * wikibaseValue suggestion from this part of the suggester engine.
+ * @param myrrixClientConfiguration
+ * @throws TasteException
+ */
public WebClientRecommender(String idListFile, MyrrixClientConfiguration
myrrixClientConfiguration) throws TasteException {
super(myrrixClientConfiguration);
clientRecommender.addItemIDs(new File(idListFile));
}
+ /**
+ * Same as above, except that it takes a URI instead of a String for
+ * specifying the idListFile path.
+ *
+ * @param idListFile
+ * @param myrrixClientConfiguration
+ * @throws TasteException
+ */
public WebClientRecommender(URI idListFile, MyrrixClientConfiguration
myrrixClientConfiguration) throws TasteException {
super(myrrixClientConfiguration);
clientRecommender.addItemIDs(new File(idListFile));
}
+ /**
+ * Used to fetch wikibaseProperty suggestions for already existing
+ * wikibaseItems.
+ *
+ * @param recommendTo
+ * @param recommendType
+ * @param howMany
+ * @return
+ * @throws TasteException
+ */
@Override
public List<TranslatedRecommendedItem> recommend(String recommendTo,
String recommendType, int howMany) throws TasteException {
List<TranslatedRecommendedItem> recommendations =
clientRecommender.recommend(recommendTo, howMany, false, new
String[]{recommendType});
return recommendations;
}
+ /**
+ * Used to fetch wikibaseProperty suggestions for already anonymous
(perhaps
+ * being created) wikibaseItems.
+ *
+ * @param recommendType
+ * @param howMany
+ * @param list
+ * @return
+ * @throws TasteException
+ */
@Override
public List<TranslatedRecommendedItem> recommendAnonymous(String
recommendType, int howMany, String[] list) throws TasteException {
float[] values = new float[list.length];
@@ -39,6 +77,13 @@
return recommendations;
}
+ /**
+ * Used to feed/train Myrrix with a csv file containing rows of
+ * wikibaseItem, wikibaseProperty, weight
+ *
+ * @param csvReader
+ * @throws TasteException
+ */
@Override
public void ingest(Reader csvReader) throws TasteException {
clientRecommender.ingest(csvReader);
--
To view, visit https://gerrit.wikimedia.org/r/75365
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I54b98280f5020f1fddb90f69a032ab3efa7686c7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikidataEntitySuggester
Gerrit-Branch: master
Gerrit-Owner: Nilesh <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits