diff --git a/pom.xml b/pom.xml index dc40e28..e0686d9 100755 --- a/pom.xml +++ b/pom.xml @@ -4,9 +4,9 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - it.polpetta + com.tfederico libris - 2.0.1 + 2.3 jar Reverse Image Search Lib @@ -21,7 +21,7 @@ - https://github.com/Polpetta/libris + https://github.com/tfederico/libris @@ -100,7 +100,7 @@ com.ibm.watson.developer_cloud java-sdk - 3.8.0 + 4.1.0 diff --git a/src/main/java/com/tfederico/libris/Main.java b/src/main/java/com/tfederico/libris/Main.java new file mode 100644 index 0000000..5134301 --- /dev/null +++ b/src/main/java/com/tfederico/libris/Main.java @@ -0,0 +1,57 @@ +package com.tfederico.libris; + +import com.ibm.watson.developer_cloud.natural_language_understanding.v1.model.KeywordsResult; +import com.ibm.watson.developer_cloud.visual_recognition.v3.model.ClassifiedImage; +import com.ibm.watson.developer_cloud.visual_recognition.v3.model.ClassifiedImages; +import com.ibm.watson.developer_cloud.visual_recognition.v3.model.Classifier; +import com.tfederico.libris.image.ibm.contract.IIBMCustomClassifierUtility; +import com.tfederico.libris.image.ibm.visualRecognition.IBMCustomClassifierUtility; +import com.tfederico.libris.text.naturalLanguageUnderstanding.contract.IIBMNaturalLanguageUnderstandingUtility; +import com.tfederico.libris.text.naturalLanguageUnderstanding.ibm.IBMNaturalLanguageUnderstandingUtility; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.List; + +public class Main { + public static void main(String[] args) { + IBMCustomClassifierUtility.setSubscriptionKey(""); + IIBMCustomClassifierUtility customClassifierUtility = new IBMCustomClassifierUtility(); + + /*List classifiersList = customClassifierUtility.getClassifiersList(); + for(Classifier c : classifiersList) + customClassifierUtility.deleteClassifier(c.getClassifierId());*/ + + /*ClassifiedImages image = null; + try { + image = customClassifierUtility.classify("/home/federico/Downloads/hello.jpg"); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + if(image != null){ + System.out.println(image.getImages().get(0).getClassifiers().get(0).getName()); + }*/ + + IBMNaturalLanguageUnderstandingUtility + .setUsernameAndPassword("", + ""); + + IIBMNaturalLanguageUnderstandingUtility nlu = new IBMNaturalLanguageUnderstandingUtility(); + String s = "The young sitter is assumed to be Maria Trip, the daughter of a wealthy " + + "Amsterdam merchant. She displaysher wealth with pride. Her dress is trimmed " + + "with white linen so fine it is almost transparent. She sports a fortune in " + + "pearls, and in her left hand she casually holds the knobbed handle of a folding " + + "fan. In 1639 thiswas still a rare and costly accessory.\n"; + List keywordsResults = nlu.getKeywordsFromText(s); + + for(KeywordsResult k : keywordsResults){ + System.out.println(k.getText()); + System.out.println(k.getRelevance()); + } + + + } +} diff --git a/src/main/java/it/polpetta/libris/contract/AbstractURLSearcher.java b/src/main/java/com/tfederico/libris/contract/AbstractURLSearcher.java similarity index 97% rename from src/main/java/it/polpetta/libris/contract/AbstractURLSearcher.java rename to src/main/java/com/tfederico/libris/contract/AbstractURLSearcher.java index e1f1717..c0568e3 100644 --- a/src/main/java/it/polpetta/libris/contract/AbstractURLSearcher.java +++ b/src/main/java/com/tfederico/libris/contract/AbstractURLSearcher.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.contract; +package com.tfederico.libris.contract; import java.io.BufferedReader; import java.io.IOException; diff --git a/src/main/java/it/polpetta/libris/contract/IAbstractFactoryReverseSearchProvider.java b/src/main/java/com/tfederico/libris/contract/IAbstractFactoryReverseSearchProvider.java similarity index 82% rename from src/main/java/it/polpetta/libris/contract/IAbstractFactoryReverseSearchProvider.java rename to src/main/java/com/tfederico/libris/contract/IAbstractFactoryReverseSearchProvider.java index 178e058..6978507 100644 --- a/src/main/java/it/polpetta/libris/contract/IAbstractFactoryReverseSearchProvider.java +++ b/src/main/java/com/tfederico/libris/contract/IAbstractFactoryReverseSearchProvider.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.contract; +package com.tfederico.libris.contract; /** * Created by davide on 28/04/17. diff --git a/src/main/java/it/polpetta/libris/contract/IQueryBuilder.java b/src/main/java/com/tfederico/libris/contract/IQueryBuilder.java similarity index 85% rename from src/main/java/it/polpetta/libris/contract/IQueryBuilder.java rename to src/main/java/com/tfederico/libris/contract/IQueryBuilder.java index 7ab94a1..7ef9d60 100644 --- a/src/main/java/it/polpetta/libris/contract/IQueryBuilder.java +++ b/src/main/java/com/tfederico/libris/contract/IQueryBuilder.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.contract; +package com.tfederico.libris.contract; import java.io.File; import java.net.URL; diff --git a/src/main/java/it/polpetta/libris/contract/ISearchResult.java b/src/main/java/com/tfederico/libris/contract/ISearchResult.java similarity index 73% rename from src/main/java/it/polpetta/libris/contract/ISearchResult.java rename to src/main/java/com/tfederico/libris/contract/ISearchResult.java index db65f42..51ed790 100644 --- a/src/main/java/it/polpetta/libris/contract/ISearchResult.java +++ b/src/main/java/com/tfederico/libris/contract/ISearchResult.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.contract; +package com.tfederico.libris.contract; /** * Created by davide on 06/05/17. diff --git a/src/main/java/it/polpetta/libris/contract/ISearcher.java b/src/main/java/com/tfederico/libris/contract/ISearcher.java similarity index 63% rename from src/main/java/it/polpetta/libris/contract/ISearcher.java rename to src/main/java/com/tfederico/libris/contract/ISearcher.java index 8fbb97e..a4b1329 100644 --- a/src/main/java/it/polpetta/libris/contract/ISearcher.java +++ b/src/main/java/com/tfederico/libris/contract/ISearcher.java @@ -1,6 +1,4 @@ -package it.polpetta.libris.contract; - -import it.polpetta.libris.contract.ISearchResult; +package com.tfederico.libris.contract; import java.io.IOException; diff --git a/src/main/java/it/polpetta/libris/image/ReverseImageSearch.java b/src/main/java/com/tfederico/libris/image/ReverseImageSearch.java similarity index 55% rename from src/main/java/it/polpetta/libris/image/ReverseImageSearch.java rename to src/main/java/com/tfederico/libris/image/ReverseImageSearch.java index 3348f37..cc56d3e 100755 --- a/src/main/java/it/polpetta/libris/image/ReverseImageSearch.java +++ b/src/main/java/com/tfederico/libris/image/ReverseImageSearch.java @@ -1,14 +1,14 @@ -package it.polpetta.libris.image; +package com.tfederico.libris.image; -import it.polpetta.libris.image.azure.AzureAbstractFactory; -import it.polpetta.libris.contract.IAbstractFactoryReverseSearchProvider; -import it.polpetta.libris.image.azure.contract.IAbstractAzureImageFactoryReverseSearchProvider; -import it.polpetta.libris.image.google.GoogleAbstractFactory; -import it.polpetta.libris.image.google.contract.IAbstractGoogleImageFactoryReverseSearchProvider; -import it.polpetta.libris.image.ibm.IBMAbstractFactory; -import it.polpetta.libris.image.ibm.contract.IAbstractIBMImageFactoryReverseSearchProvider; -import it.polpetta.libris.image.imagga.ImaggaAbstractFactory; -import it.polpetta.libris.image.imagga.contract.IAbstractImaggaImageFactoryReverseSearchProvider; +import com.tfederico.libris.contract.IAbstractFactoryReverseSearchProvider; +import com.tfederico.libris.image.google.GoogleAbstractFactory; +import com.tfederico.libris.image.google.contract.IAbstractGoogleImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.imagga.ImaggaAbstractFactory; +import com.tfederico.libris.image.imagga.contract.IAbstractImaggaImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.azure.AzureAbstractFactory; +import com.tfederico.libris.image.azure.contract.IAbstractAzureImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.ibm.IBMAbstractFactory; +import com.tfederico.libris.image.ibm.contract.IAbstractIBMImageFactoryReverseSearchProvider; /** * Created by davide on 28/04/17. diff --git a/src/main/java/it/polpetta/libris/image/azure/AzureAbstractFactory.java b/src/main/java/com/tfederico/libris/image/azure/AzureAbstractFactory.java similarity index 65% rename from src/main/java/it/polpetta/libris/image/azure/AzureAbstractFactory.java rename to src/main/java/com/tfederico/libris/image/azure/AzureAbstractFactory.java index b87799f..28e4d05 100644 --- a/src/main/java/it/polpetta/libris/image/azure/AzureAbstractFactory.java +++ b/src/main/java/com/tfederico/libris/image/azure/AzureAbstractFactory.java @@ -1,8 +1,7 @@ -package it.polpetta.libris.image.azure; +package com.tfederico.libris.image.azure; -import it.polpetta.libris.contract.IQueryBuilder; -import it.polpetta.libris.image.azure.contract.IAbstractAzureImageFactoryReverseSearchProvider; -import it.polpetta.libris.image.azure.imageRecognition.URLAzureImageSearcher; +import com.tfederico.libris.image.azure.contract.IAbstractAzureImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.azure.imageRecognition.URLAzureImageSearcher; /** * Created by dpolonio on 05/05/17. diff --git a/src/main/java/it/polpetta/libris/image/azure/contract/IAbstractAzureImageFactoryReverseSearchProvider.java b/src/main/java/com/tfederico/libris/image/azure/contract/IAbstractAzureImageFactoryReverseSearchProvider.java similarity index 50% rename from src/main/java/it/polpetta/libris/image/azure/contract/IAbstractAzureImageFactoryReverseSearchProvider.java rename to src/main/java/com/tfederico/libris/image/azure/contract/IAbstractAzureImageFactoryReverseSearchProvider.java index f88d8ac..8300a66 100644 --- a/src/main/java/it/polpetta/libris/image/azure/contract/IAbstractAzureImageFactoryReverseSearchProvider.java +++ b/src/main/java/com/tfederico/libris/image/azure/contract/IAbstractAzureImageFactoryReverseSearchProvider.java @@ -1,7 +1,7 @@ -package it.polpetta.libris.image.azure.contract; +package com.tfederico.libris.image.azure.contract; -import it.polpetta.libris.image.azure.imageRecognition.URLAzureImageSearcher; -import it.polpetta.libris.image.contract.IAbstractImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.contract.IAbstractImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.azure.imageRecognition.URLAzureImageSearcher; /** * Created by dpolonio on 10/05/17. diff --git a/src/main/java/it/polpetta/libris/image/azure/contract/IAzureImageSearchResult.java b/src/main/java/com/tfederico/libris/image/azure/contract/IAzureImageSearchResult.java similarity index 65% rename from src/main/java/it/polpetta/libris/image/azure/contract/IAzureImageSearchResult.java rename to src/main/java/com/tfederico/libris/image/azure/contract/IAzureImageSearchResult.java index 07286b9..e02e4a4 100644 --- a/src/main/java/it/polpetta/libris/image/azure/contract/IAzureImageSearchResult.java +++ b/src/main/java/com/tfederico/libris/image/azure/contract/IAzureImageSearchResult.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.image.azure.contract; +package com.tfederico.libris.image.azure.contract; -import it.polpetta.libris.image.contract.IImageSearchResult; +import com.tfederico.libris.image.contract.IImageSearchResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/image/azure/contract/IAzureImageSearcher.java b/src/main/java/com/tfederico/libris/image/azure/contract/IAzureImageSearcher.java similarity index 64% rename from src/main/java/it/polpetta/libris/image/azure/contract/IAzureImageSearcher.java rename to src/main/java/com/tfederico/libris/image/azure/contract/IAzureImageSearcher.java index e5ae6e7..7be67e8 100644 --- a/src/main/java/it/polpetta/libris/image/azure/contract/IAzureImageSearcher.java +++ b/src/main/java/com/tfederico/libris/image/azure/contract/IAzureImageSearcher.java @@ -1,7 +1,6 @@ -package it.polpetta.libris.image.azure.contract; +package com.tfederico.libris.image.azure.contract; -import it.polpetta.libris.contract.ISearcher; -import it.polpetta.libris.image.google.contract.IGoogleImageSearchResult; +import com.tfederico.libris.contract.ISearcher; import java.io.IOException; diff --git a/src/main/java/it/polpetta/libris/image/azure/imageRecognition/AzureImageSearchResult.java b/src/main/java/com/tfederico/libris/image/azure/imageRecognition/AzureImageSearchResult.java similarity index 96% rename from src/main/java/it/polpetta/libris/image/azure/imageRecognition/AzureImageSearchResult.java rename to src/main/java/com/tfederico/libris/image/azure/imageRecognition/AzureImageSearchResult.java index f91bcbe..db66a40 100644 --- a/src/main/java/it/polpetta/libris/image/azure/imageRecognition/AzureImageSearchResult.java +++ b/src/main/java/com/tfederico/libris/image/azure/imageRecognition/AzureImageSearchResult.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.image.azure.imageRecognition; +package com.tfederico.libris.image.azure.imageRecognition; -import it.polpetta.libris.image.azure.contract.IAzureImageSearchResult; +import com.tfederico.libris.image.azure.contract.IAzureImageSearchResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/image/azure/imageRecognition/URLAzureImageSearcher.java b/src/main/java/com/tfederico/libris/image/azure/imageRecognition/URLAzureImageSearcher.java similarity index 93% rename from src/main/java/it/polpetta/libris/image/azure/imageRecognition/URLAzureImageSearcher.java rename to src/main/java/com/tfederico/libris/image/azure/imageRecognition/URLAzureImageSearcher.java index 086adfa..ca20d8a 100644 --- a/src/main/java/it/polpetta/libris/image/azure/imageRecognition/URLAzureImageSearcher.java +++ b/src/main/java/com/tfederico/libris/image/azure/imageRecognition/URLAzureImageSearcher.java @@ -1,14 +1,14 @@ -package it.polpetta.libris.image.azure.imageRecognition; +package com.tfederico.libris.image.azure.imageRecognition; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import it.polpetta.libris.contract.IQueryBuilder; -import it.polpetta.libris.image.azure.contract.IAzureImageSearchResult; -import it.polpetta.libris.image.azure.contract.IAzureImageSearcher; -import it.polpetta.libris.image.contract.AbstractURLImageSearcher; -import it.polpetta.libris.util.Coordinates; +import com.tfederico.libris.contract.IQueryBuilder; +import com.tfederico.libris.image.azure.contract.IAzureImageSearchResult; +import com.tfederico.libris.image.azure.contract.IAzureImageSearcher; +import com.tfederico.libris.image.contract.AbstractURLImageSearcher; +import com.tfederico.libris.util.Coordinates; import javax.net.ssl.HttpsURLConnection; import java.io.*; diff --git a/src/main/java/it/polpetta/libris/image/contract/AbstractURLImageSearcher.java b/src/main/java/com/tfederico/libris/image/contract/AbstractURLImageSearcher.java similarity index 69% rename from src/main/java/it/polpetta/libris/image/contract/AbstractURLImageSearcher.java rename to src/main/java/com/tfederico/libris/image/contract/AbstractURLImageSearcher.java index 9521e77..73178db 100644 --- a/src/main/java/it/polpetta/libris/image/contract/AbstractURLImageSearcher.java +++ b/src/main/java/com/tfederico/libris/image/contract/AbstractURLImageSearcher.java @@ -1,7 +1,7 @@ -package it.polpetta.libris.image.contract; +package com.tfederico.libris.image.contract; -import it.polpetta.libris.contract.AbstractURLSearcher; -import it.polpetta.libris.util.Coordinates; +import com.tfederico.libris.contract.AbstractURLSearcher; +import com.tfederico.libris.util.Coordinates; import java.net.URL; diff --git a/src/main/java/it/polpetta/libris/image/contract/IAbstractImageFactoryReverseSearchProvider.java b/src/main/java/com/tfederico/libris/image/contract/IAbstractImageFactoryReverseSearchProvider.java similarity index 56% rename from src/main/java/it/polpetta/libris/image/contract/IAbstractImageFactoryReverseSearchProvider.java rename to src/main/java/com/tfederico/libris/image/contract/IAbstractImageFactoryReverseSearchProvider.java index b7a1f64..da74621 100644 --- a/src/main/java/it/polpetta/libris/image/contract/IAbstractImageFactoryReverseSearchProvider.java +++ b/src/main/java/com/tfederico/libris/image/contract/IAbstractImageFactoryReverseSearchProvider.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.image.contract; +package com.tfederico.libris.image.contract; -import it.polpetta.libris.contract.IAbstractFactoryReverseSearchProvider; +import com.tfederico.libris.contract.IAbstractFactoryReverseSearchProvider; /** * Created by dpolonio on 10/05/17. diff --git a/src/main/java/it/polpetta/libris/image/contract/IImageQueryBuilder.java b/src/main/java/com/tfederico/libris/image/contract/IImageQueryBuilder.java similarity index 77% rename from src/main/java/it/polpetta/libris/image/contract/IImageQueryBuilder.java rename to src/main/java/com/tfederico/libris/image/contract/IImageQueryBuilder.java index 602634b..e2930c8 100644 --- a/src/main/java/it/polpetta/libris/image/contract/IImageQueryBuilder.java +++ b/src/main/java/com/tfederico/libris/image/contract/IImageQueryBuilder.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.image.contract; +package com.tfederico.libris.image.contract; -import it.polpetta.libris.contract.IQueryBuilder; +import com.tfederico.libris.contract.IQueryBuilder; /** * Created by zanna on 08/05/17. diff --git a/src/main/java/it/polpetta/libris/image/contract/IImageSearchResult.java b/src/main/java/com/tfederico/libris/image/contract/IImageSearchResult.java similarity index 70% rename from src/main/java/it/polpetta/libris/image/contract/IImageSearchResult.java rename to src/main/java/com/tfederico/libris/image/contract/IImageSearchResult.java index 5daebef..ae64c9d 100644 --- a/src/main/java/it/polpetta/libris/image/contract/IImageSearchResult.java +++ b/src/main/java/com/tfederico/libris/image/contract/IImageSearchResult.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.image.contract; +package com.tfederico.libris.image.contract; -import it.polpetta.libris.contract.ISearchResult; +import com.tfederico.libris.contract.ISearchResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/image/google/GoogleAbstractFactory.java b/src/main/java/com/tfederico/libris/image/google/GoogleAbstractFactory.java similarity index 54% rename from src/main/java/it/polpetta/libris/image/google/GoogleAbstractFactory.java rename to src/main/java/com/tfederico/libris/image/google/GoogleAbstractFactory.java index a4f3d18..8822549 100644 --- a/src/main/java/it/polpetta/libris/image/google/GoogleAbstractFactory.java +++ b/src/main/java/com/tfederico/libris/image/google/GoogleAbstractFactory.java @@ -1,7 +1,7 @@ -package it.polpetta.libris.image.google; +package com.tfederico.libris.image.google; -import it.polpetta.libris.image.google.contract.IAbstractGoogleImageFactoryReverseSearchProvider; -import it.polpetta.libris.image.google.hmtlImageSearch.URLGoogleImageSearcher; +import com.tfederico.libris.image.google.contract.IAbstractGoogleImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.google.hmtlImageSearch.URLGoogleImageSearcher; /** * Created by davide on 29/04/17. diff --git a/src/main/java/it/polpetta/libris/image/google/contract/IAbstractGoogleImageFactoryReverseSearchProvider.java b/src/main/java/com/tfederico/libris/image/google/contract/IAbstractGoogleImageFactoryReverseSearchProvider.java similarity index 50% rename from src/main/java/it/polpetta/libris/image/google/contract/IAbstractGoogleImageFactoryReverseSearchProvider.java rename to src/main/java/com/tfederico/libris/image/google/contract/IAbstractGoogleImageFactoryReverseSearchProvider.java index 5decd2e..f43e42c 100644 --- a/src/main/java/it/polpetta/libris/image/google/contract/IAbstractGoogleImageFactoryReverseSearchProvider.java +++ b/src/main/java/com/tfederico/libris/image/google/contract/IAbstractGoogleImageFactoryReverseSearchProvider.java @@ -1,7 +1,7 @@ -package it.polpetta.libris.image.google.contract; +package com.tfederico.libris.image.google.contract; -import it.polpetta.libris.image.contract.IAbstractImageFactoryReverseSearchProvider; -import it.polpetta.libris.image.google.hmtlImageSearch.URLGoogleImageSearcher; +import com.tfederico.libris.image.contract.IAbstractImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.google.hmtlImageSearch.URLGoogleImageSearcher; /** * Created by dpolonio on 10/05/17. diff --git a/src/main/java/it/polpetta/libris/image/google/contract/IGoogleImageSearchResult.java b/src/main/java/com/tfederico/libris/image/google/contract/IGoogleImageSearchResult.java similarity index 64% rename from src/main/java/it/polpetta/libris/image/google/contract/IGoogleImageSearchResult.java rename to src/main/java/com/tfederico/libris/image/google/contract/IGoogleImageSearchResult.java index 04b0a7d..e404898 100644 --- a/src/main/java/it/polpetta/libris/image/google/contract/IGoogleImageSearchResult.java +++ b/src/main/java/com/tfederico/libris/image/google/contract/IGoogleImageSearchResult.java @@ -1,7 +1,6 @@ -package it.polpetta.libris.image.google.contract; +package com.tfederico.libris.image.google.contract; -import it.polpetta.libris.contract.ISearchResult; -import it.polpetta.libris.image.contract.IImageSearchResult; +import com.tfederico.libris.image.contract.IImageSearchResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/image/google/contract/IGoogleImageSearcher.java b/src/main/java/com/tfederico/libris/image/google/contract/IGoogleImageSearcher.java similarity index 64% rename from src/main/java/it/polpetta/libris/image/google/contract/IGoogleImageSearcher.java rename to src/main/java/com/tfederico/libris/image/google/contract/IGoogleImageSearcher.java index be4d196..4cb142b 100644 --- a/src/main/java/it/polpetta/libris/image/google/contract/IGoogleImageSearcher.java +++ b/src/main/java/com/tfederico/libris/image/google/contract/IGoogleImageSearcher.java @@ -1,7 +1,6 @@ -package it.polpetta.libris.image.google.contract; +package com.tfederico.libris.image.google.contract; -import it.polpetta.libris.contract.ISearcher; -import it.polpetta.libris.image.google.contract.IGoogleImageSearchResult; +import com.tfederico.libris.contract.ISearcher; import java.io.IOException; diff --git a/src/main/java/it/polpetta/libris/image/google/hmtlImageSearch/GoogleImageSearchResult.java b/src/main/java/com/tfederico/libris/image/google/hmtlImageSearch/GoogleImageSearchResult.java similarity index 96% rename from src/main/java/it/polpetta/libris/image/google/hmtlImageSearch/GoogleImageSearchResult.java rename to src/main/java/com/tfederico/libris/image/google/hmtlImageSearch/GoogleImageSearchResult.java index 0be53ba..254ddbf 100644 --- a/src/main/java/it/polpetta/libris/image/google/hmtlImageSearch/GoogleImageSearchResult.java +++ b/src/main/java/com/tfederico/libris/image/google/hmtlImageSearch/GoogleImageSearchResult.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.image.google.hmtlImageSearch; +package com.tfederico.libris.image.google.hmtlImageSearch; -import it.polpetta.libris.image.google.contract.IGoogleImageSearchResult; +import com.tfederico.libris.image.google.contract.IGoogleImageSearchResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/image/google/hmtlImageSearch/URLGoogleImageSearcher.java b/src/main/java/com/tfederico/libris/image/google/hmtlImageSearch/URLGoogleImageSearcher.java similarity index 93% rename from src/main/java/it/polpetta/libris/image/google/hmtlImageSearch/URLGoogleImageSearcher.java rename to src/main/java/com/tfederico/libris/image/google/hmtlImageSearch/URLGoogleImageSearcher.java index 0eb0ff2..8a47e87 100644 --- a/src/main/java/it/polpetta/libris/image/google/hmtlImageSearch/URLGoogleImageSearcher.java +++ b/src/main/java/com/tfederico/libris/image/google/hmtlImageSearch/URLGoogleImageSearcher.java @@ -1,12 +1,12 @@ -package it.polpetta.libris.image.google.hmtlImageSearch; +package com.tfederico.libris.image.google.hmtlImageSearch; import com.google.gson.Gson; import com.google.gson.JsonObject; -import it.polpetta.libris.image.contract.AbstractURLImageSearcher; -import it.polpetta.libris.image.contract.IImageQueryBuilder; -import it.polpetta.libris.image.google.contract.IGoogleImageSearchResult; -import it.polpetta.libris.image.google.contract.IGoogleImageSearcher; -import it.polpetta.libris.util.Coordinates; +import com.tfederico.libris.image.google.contract.IGoogleImageSearchResult; +import com.tfederico.libris.image.contract.AbstractURLImageSearcher; +import com.tfederico.libris.image.contract.IImageQueryBuilder; +import com.tfederico.libris.image.google.contract.IGoogleImageSearcher; +import com.tfederico.libris.util.Coordinates; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.parser.Parser; diff --git a/src/main/java/it/polpetta/libris/image/ibm/IBMAbstractFactory.java b/src/main/java/com/tfederico/libris/image/ibm/IBMAbstractFactory.java similarity index 66% rename from src/main/java/it/polpetta/libris/image/ibm/IBMAbstractFactory.java rename to src/main/java/com/tfederico/libris/image/ibm/IBMAbstractFactory.java index 070f1e3..0bb6810 100644 --- a/src/main/java/it/polpetta/libris/image/ibm/IBMAbstractFactory.java +++ b/src/main/java/com/tfederico/libris/image/ibm/IBMAbstractFactory.java @@ -1,8 +1,8 @@ -package it.polpetta.libris.image.ibm; +package com.tfederico.libris.image.ibm; -import it.polpetta.libris.contract.IQueryBuilder; -import it.polpetta.libris.image.ibm.contract.IAbstractIBMImageFactoryReverseSearchProvider; -import it.polpetta.libris.image.ibm.visualRecognition.URLIBMImageSearcher; + +import com.tfederico.libris.image.ibm.contract.IAbstractIBMImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.ibm.visualRecognition.URLIBMImageSearcher; /** * Created by dpolonio on 17/05/17. @@ -20,5 +20,7 @@ public IBMAbstractFactory(String subscriptionKey) { public URLIBMImageSearcher.Builder imageSearchBuildQuery() { URLIBMImageSearcher.setSubscriptionKey(subscriptionKey); return new URLIBMImageSearcher.Builder(); + + } } diff --git a/src/main/java/it/polpetta/libris/image/ibm/contract/IAbstractIBMImageFactoryReverseSearchProvider.java b/src/main/java/com/tfederico/libris/image/ibm/contract/IAbstractIBMImageFactoryReverseSearchProvider.java similarity index 51% rename from src/main/java/it/polpetta/libris/image/ibm/contract/IAbstractIBMImageFactoryReverseSearchProvider.java rename to src/main/java/com/tfederico/libris/image/ibm/contract/IAbstractIBMImageFactoryReverseSearchProvider.java index a44471b..ec34502 100644 --- a/src/main/java/it/polpetta/libris/image/ibm/contract/IAbstractIBMImageFactoryReverseSearchProvider.java +++ b/src/main/java/com/tfederico/libris/image/ibm/contract/IAbstractIBMImageFactoryReverseSearchProvider.java @@ -1,7 +1,7 @@ -package it.polpetta.libris.image.ibm.contract; +package com.tfederico.libris.image.ibm.contract; -import it.polpetta.libris.image.contract.IAbstractImageFactoryReverseSearchProvider; -import it.polpetta.libris.image.ibm.visualRecognition.URLIBMImageSearcher; +import com.tfederico.libris.image.contract.IAbstractImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.ibm.visualRecognition.URLIBMImageSearcher; /** * Created by dpolonio on 17/05/17. diff --git a/src/main/java/com/tfederico/libris/image/ibm/contract/IIBMCustomClassifierUtility.java b/src/main/java/com/tfederico/libris/image/ibm/contract/IIBMCustomClassifierUtility.java new file mode 100644 index 0000000..33524c1 --- /dev/null +++ b/src/main/java/com/tfederico/libris/image/ibm/contract/IIBMCustomClassifierUtility.java @@ -0,0 +1,29 @@ +package com.tfederico.libris.image.ibm.contract; + +import com.ibm.watson.developer_cloud.visual_recognition.v3.model.ClassifiedImages; +import com.ibm.watson.developer_cloud.visual_recognition.v3.model.Classifier; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public interface IIBMCustomClassifierUtility { + + Classifier createClassifier(String name, HashMap classesAndPaths, + ArrayList negativesPaths) throws FileNotFoundException; + + Classifier getClassifierById(String id); + + List getClassifiersList(); + + void deleteClassifier(String id); + + Classifier updateClassifier(String id, HashMap classesAndPaths, + ArrayList negativesPaths) throws FileNotFoundException; + + ClassifiedImages classifyById(ArrayList classifierId, String imagePath) throws IOException; + + ClassifiedImages classify(String imagePath) throws IOException; +} diff --git a/src/main/java/it/polpetta/libris/image/ibm/contract/IIBMImageSearchResult.java b/src/main/java/com/tfederico/libris/image/ibm/contract/IIBMImageSearchResult.java similarity index 61% rename from src/main/java/it/polpetta/libris/image/ibm/contract/IIBMImageSearchResult.java rename to src/main/java/com/tfederico/libris/image/ibm/contract/IIBMImageSearchResult.java index 99a6d8c..0d19e63 100644 --- a/src/main/java/it/polpetta/libris/image/ibm/contract/IIBMImageSearchResult.java +++ b/src/main/java/com/tfederico/libris/image/ibm/contract/IIBMImageSearchResult.java @@ -1,7 +1,7 @@ -package it.polpetta.libris.image.ibm.contract; +package com.tfederico.libris.image.ibm.contract; -import it.polpetta.libris.image.contract.IImageSearchResult; +import com.tfederico.libris.image.contract.IImageSearchResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/image/ibm/contract/IIBMImageSearcher.java b/src/main/java/com/tfederico/libris/image/ibm/contract/IIBMImageSearcher.java similarity index 65% rename from src/main/java/it/polpetta/libris/image/ibm/contract/IIBMImageSearcher.java rename to src/main/java/com/tfederico/libris/image/ibm/contract/IIBMImageSearcher.java index 73c3929..0d7c124 100644 --- a/src/main/java/it/polpetta/libris/image/ibm/contract/IIBMImageSearcher.java +++ b/src/main/java/com/tfederico/libris/image/ibm/contract/IIBMImageSearcher.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.image.ibm.contract; +package com.tfederico.libris.image.ibm.contract; -import it.polpetta.libris.contract.ISearcher; +import com.tfederico.libris.contract.ISearcher; import java.io.IOException; diff --git a/src/main/java/com/tfederico/libris/image/ibm/visualRecognition/IBMCustomClassifierUtility.java b/src/main/java/com/tfederico/libris/image/ibm/visualRecognition/IBMCustomClassifierUtility.java new file mode 100644 index 0000000..472d324 --- /dev/null +++ b/src/main/java/com/tfederico/libris/image/ibm/visualRecognition/IBMCustomClassifierUtility.java @@ -0,0 +1,137 @@ +package com.tfederico.libris.image.ibm.visualRecognition; + +import com.ibm.watson.developer_cloud.visual_recognition.v3.VisualRecognition; +import com.ibm.watson.developer_cloud.visual_recognition.v3.model.*; +import com.tfederico.libris.image.ibm.contract.IIBMCustomClassifierUtility; + +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class IBMCustomClassifierUtility implements IIBMCustomClassifierUtility{ + + private static String subscriptionKey; + + private VisualRecognition service; + + + public IBMCustomClassifierUtility(){ + service = new VisualRecognition(VisualRecognition.VERSION_DATE_2016_05_20, subscriptionKey); + } + + public static void setSubscriptionKey(String key) { + subscriptionKey = key; + } + + @Override + public Classifier createClassifier(String name, HashMap classesAndPaths, + ArrayList negativesPaths) throws FileNotFoundException { + + + CreateClassifierOptions.Builder classifierOptionsBuilder = new CreateClassifierOptions.Builder(); + + classifierOptionsBuilder.name(name); + + for(String key : classesAndPaths.keySet()){ + classifierOptionsBuilder.addClass(key, new File(classesAndPaths.get(key))); + } + + for(String path : negativesPaths){ + classifierOptionsBuilder.negativeExamples(new File(path)); + } + + CreateClassifierOptions classifierOptions = classifierOptionsBuilder.build(); + + return service.createClassifier(classifierOptions).execute(); + } + + @Override + public Classifier getClassifierById(String id){ + GetClassifierOptions getClassifierOptions = new GetClassifierOptions.Builder(id).build(); + return service.getClassifier(getClassifierOptions).execute(); + } + + @Override + public List getClassifiersList(){ + ListClassifiersOptions listClassifiersOptions = new ListClassifiersOptions.Builder() + .verbose(true) + .build(); + return service.listClassifiers(listClassifiersOptions).execute().getClassifiers(); + } + + @Override + public void deleteClassifier(String id){ + DeleteClassifierOptions options = new DeleteClassifierOptions.Builder(id).build(); + service.deleteClassifier(options).execute(); + } + + @Override + public Classifier updateClassifier(String id, HashMap classesAndPaths, + ArrayList negativesPaths) throws FileNotFoundException { + + UpdateClassifierOptions.Builder classifierOptionsBuilder = new UpdateClassifierOptions.Builder(); + + classifierOptionsBuilder.classifierId(id); + for(String key : classesAndPaths.keySet()){ + classifierOptionsBuilder.addClass(key, new File(classesAndPaths.get(key))); + } + + for(String path : negativesPaths){ + classifierOptionsBuilder.negativeExamples(new File(path)); + } + + UpdateClassifierOptions classifierOptions = classifierOptionsBuilder.build(); + + return service.updateClassifier(classifierOptions).execute(); + } + + @Override + public ClassifiedImages classifyById(ArrayList classifierId, String imagePath) throws IOException { + + ClassifyOptions.Builder builder = new ClassifyOptions.Builder(); + + InputStream imagesStream = new BufferedInputStream(new FileInputStream(imagePath)); + + //int i = imagesStream.read(); + + + StringBuilder ids = new StringBuilder(); + + if(classifierId != null){ + for(String s : classifierId){ + ids.append("\"").append(s).append("\"").append(","); + } + + ids.deleteCharAt(ids.length()-1); + } + + + String parameters; + if(classifierId != null){ + parameters = "{\"classifier_ids\": [\""+classifierId+"\"]," + + "\"owners\": [\"me\"]}"; + } + else + parameters = "{\"owners\": [\"me\"]}"; + + + String[] steps = imagePath.split("/"); + String fileName = steps[steps.length-1]; + String fileExt = fileName.split("\\.")[1]; + builder.imagesFile(imagesStream) + .imagesFilename(fileName) + .parameters(parameters); + + ClassifyOptions classifyOptions = builder.build(); + + return service.classify(classifyOptions).execute(); + } + + @Override + public ClassifiedImages classify(String imagePath) throws IOException { + return classifyById(null,imagePath); + } + + +} diff --git a/src/main/java/it/polpetta/libris/image/ibm/visualRecognition/IBMImageSearchResult.java b/src/main/java/com/tfederico/libris/image/ibm/visualRecognition/IBMImageSearchResult.java similarity index 91% rename from src/main/java/it/polpetta/libris/image/ibm/visualRecognition/IBMImageSearchResult.java rename to src/main/java/com/tfederico/libris/image/ibm/visualRecognition/IBMImageSearchResult.java index 1cff8f7..e9ac300 100644 --- a/src/main/java/it/polpetta/libris/image/ibm/visualRecognition/IBMImageSearchResult.java +++ b/src/main/java/com/tfederico/libris/image/ibm/visualRecognition/IBMImageSearchResult.java @@ -1,7 +1,6 @@ -package it.polpetta.libris.image.ibm.visualRecognition; +package com.tfederico.libris.image.ibm.visualRecognition; -import it.polpetta.libris.image.azure.contract.IAzureImageSearchResult; -import it.polpetta.libris.image.ibm.contract.IIBMImageSearchResult; +import com.tfederico.libris.image.ibm.contract.IIBMImageSearchResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/image/ibm/visualRecognition/URLIBMImageSearcher.java b/src/main/java/com/tfederico/libris/image/ibm/visualRecognition/URLIBMImageSearcher.java similarity index 69% rename from src/main/java/it/polpetta/libris/image/ibm/visualRecognition/URLIBMImageSearcher.java rename to src/main/java/com/tfederico/libris/image/ibm/visualRecognition/URLIBMImageSearcher.java index 53de29e..6d41456 100644 --- a/src/main/java/it/polpetta/libris/image/ibm/visualRecognition/URLIBMImageSearcher.java +++ b/src/main/java/com/tfederico/libris/image/ibm/visualRecognition/URLIBMImageSearcher.java @@ -1,14 +1,12 @@ -package it.polpetta.libris.image.ibm.visualRecognition; +package com.tfederico.libris.image.ibm.visualRecognition; import com.ibm.watson.developer_cloud.visual_recognition.v3.VisualRecognition; import com.ibm.watson.developer_cloud.visual_recognition.v3.model.*; -import it.polpetta.libris.contract.AbstractURLSearcher; -import it.polpetta.libris.contract.IQueryBuilder; -import it.polpetta.libris.image.azure.contract.IAzureImageSearcher; -import it.polpetta.libris.image.azure.imageRecognition.URLAzureImageSearcher; -import it.polpetta.libris.image.ibm.contract.IIBMImageSearcher; -import it.polpetta.libris.image.ibm.contract.IIBMImageSearchResult; -import it.polpetta.libris.util.Coordinates; +import com.tfederico.libris.contract.AbstractURLSearcher; +import com.tfederico.libris.contract.IQueryBuilder; +import com.tfederico.libris.image.ibm.contract.IIBMImageSearcher; +import com.tfederico.libris.image.ibm.contract.IIBMImageSearchResult; +import com.tfederico.libris.util.Coordinates; import java.io.File; import java.io.IOException; @@ -23,9 +21,9 @@ public class URLIBMImageSearcher extends AbstractURLSearcher implements IIBMImag private static String subscriptionKey = null; - private VisualClassification response; + private ClassifiedImages response; - public URLIBMImageSearcher (URL link) { + URLIBMImageSearcher (URL link) { super(link); } @@ -46,17 +44,16 @@ protected IIBMImageSearchResult parseResult(String nullString) { double score; double bestScore = 0; - for (VisualClassifier classifier : - this.response.getImages().get(0).getClassifiers()) { - for (VisualClassifier.VisualClass visualClass : classifier.getClasses()) { + for (ClassifierResult classifier : this.response.getImages().get(0).getClassifiers()) { + for (ClassResult visualClass : classifier.getClasses()) { score = visualClass.getScore(); if (score > bestScore) { if (bestGuess != null) tags.add(bestGuess); - bestGuess = visualClass.getName(); + bestGuess = visualClass.getClassName(); bestScore = score; } else - tags.add(visualClass.getName()); + tags.add(visualClass.getClassName()); } } @@ -71,10 +68,11 @@ public IIBMImageSearchResult search() throws IOException { VisualRecognition service = new VisualRecognition(VisualRecognition.VERSION_DATE_2016_05_20, subscriptionKey); - ClassifyImagesOptions options1 = new ClassifyImagesOptions.Builder() - .url(link.toString()) + ClassifyOptions options = new ClassifyOptions.Builder() + .imagesFile(new URL(link.toString()).openStream()) .build(); - response = service.classify(options1).execute(); + + response = service.classify(options).execute(); return parseResult(""); } diff --git a/src/main/java/it/polpetta/libris/image/imagga/ImaggaAbstractFactory.java b/src/main/java/com/tfederico/libris/image/imagga/ImaggaAbstractFactory.java similarity index 68% rename from src/main/java/it/polpetta/libris/image/imagga/ImaggaAbstractFactory.java rename to src/main/java/com/tfederico/libris/image/imagga/ImaggaAbstractFactory.java index a7bf889..0f93f6a 100644 --- a/src/main/java/it/polpetta/libris/image/imagga/ImaggaAbstractFactory.java +++ b/src/main/java/com/tfederico/libris/image/imagga/ImaggaAbstractFactory.java @@ -1,7 +1,7 @@ -package it.polpetta.libris.image.imagga; +package com.tfederico.libris.image.imagga; -import it.polpetta.libris.image.imagga.contract.IAbstractImaggaImageFactoryReverseSearchProvider; -import it.polpetta.libris.image.imagga.imageRecognition.URLImaggaImageSearcher; +import com.tfederico.libris.image.imagga.contract.IAbstractImaggaImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.imagga.imageRecognition.URLImaggaImageSearcher; /** * Created by federico on 17/05/17. diff --git a/src/main/java/it/polpetta/libris/image/imagga/contract/IAbstractImaggaImageFactoryReverseSearchProvider.java b/src/main/java/com/tfederico/libris/image/imagga/contract/IAbstractImaggaImageFactoryReverseSearchProvider.java similarity index 50% rename from src/main/java/it/polpetta/libris/image/imagga/contract/IAbstractImaggaImageFactoryReverseSearchProvider.java rename to src/main/java/com/tfederico/libris/image/imagga/contract/IAbstractImaggaImageFactoryReverseSearchProvider.java index f224622..3126127 100644 --- a/src/main/java/it/polpetta/libris/image/imagga/contract/IAbstractImaggaImageFactoryReverseSearchProvider.java +++ b/src/main/java/com/tfederico/libris/image/imagga/contract/IAbstractImaggaImageFactoryReverseSearchProvider.java @@ -1,7 +1,7 @@ -package it.polpetta.libris.image.imagga.contract; +package com.tfederico.libris.image.imagga.contract; -import it.polpetta.libris.image.contract.IAbstractImageFactoryReverseSearchProvider; -import it.polpetta.libris.image.imagga.imageRecognition.URLImaggaImageSearcher; +import com.tfederico.libris.image.contract.IAbstractImageFactoryReverseSearchProvider; +import com.tfederico.libris.image.imagga.imageRecognition.URLImaggaImageSearcher; /** * Created by federico on 17/05/17. diff --git a/src/main/java/it/polpetta/libris/image/imagga/contract/IImaggaImageSearchResult.java b/src/main/java/com/tfederico/libris/image/imagga/contract/IImaggaImageSearchResult.java similarity index 61% rename from src/main/java/it/polpetta/libris/image/imagga/contract/IImaggaImageSearchResult.java rename to src/main/java/com/tfederico/libris/image/imagga/contract/IImaggaImageSearchResult.java index 002794b..f2c0092 100644 --- a/src/main/java/it/polpetta/libris/image/imagga/contract/IImaggaImageSearchResult.java +++ b/src/main/java/com/tfederico/libris/image/imagga/contract/IImaggaImageSearchResult.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.image.imagga.contract; +package com.tfederico.libris.image.imagga.contract; -import it.polpetta.libris.image.contract.IImageSearchResult; +import com.tfederico.libris.image.contract.IImageSearchResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/image/imagga/contract/IImaggaImageSearcher.java b/src/main/java/com/tfederico/libris/image/imagga/contract/IImaggaImageSearcher.java similarity index 65% rename from src/main/java/it/polpetta/libris/image/imagga/contract/IImaggaImageSearcher.java rename to src/main/java/com/tfederico/libris/image/imagga/contract/IImaggaImageSearcher.java index 14599ae..e06e61e 100644 --- a/src/main/java/it/polpetta/libris/image/imagga/contract/IImaggaImageSearcher.java +++ b/src/main/java/com/tfederico/libris/image/imagga/contract/IImaggaImageSearcher.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.image.imagga.contract; +package com.tfederico.libris.image.imagga.contract; -import it.polpetta.libris.contract.ISearcher; +import com.tfederico.libris.contract.ISearcher; import java.io.IOException; diff --git a/src/main/java/it/polpetta/libris/image/imagga/imageRecognition/ImaggaImageSearchResult.java b/src/main/java/com/tfederico/libris/image/imagga/imageRecognition/ImaggaImageSearchResult.java similarity index 93% rename from src/main/java/it/polpetta/libris/image/imagga/imageRecognition/ImaggaImageSearchResult.java rename to src/main/java/com/tfederico/libris/image/imagga/imageRecognition/ImaggaImageSearchResult.java index 4bce389..a2743aa 100644 --- a/src/main/java/it/polpetta/libris/image/imagga/imageRecognition/ImaggaImageSearchResult.java +++ b/src/main/java/com/tfederico/libris/image/imagga/imageRecognition/ImaggaImageSearchResult.java @@ -1,7 +1,6 @@ -package it.polpetta.libris.image.imagga.imageRecognition; +package com.tfederico.libris.image.imagga.imageRecognition; -import it.polpetta.libris.image.azure.imageRecognition.AzureImageSearchResult; -import it.polpetta.libris.image.imagga.contract.IImaggaImageSearchResult; +import com.tfederico.libris.image.imagga.contract.IImaggaImageSearchResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/image/imagga/imageRecognition/URLImaggaImageSearcher.java b/src/main/java/com/tfederico/libris/image/imagga/imageRecognition/URLImaggaImageSearcher.java similarity index 90% rename from src/main/java/it/polpetta/libris/image/imagga/imageRecognition/URLImaggaImageSearcher.java rename to src/main/java/com/tfederico/libris/image/imagga/imageRecognition/URLImaggaImageSearcher.java index b7b226c..7d06f90 100644 --- a/src/main/java/it/polpetta/libris/image/imagga/imageRecognition/URLImaggaImageSearcher.java +++ b/src/main/java/com/tfederico/libris/image/imagga/imageRecognition/URLImaggaImageSearcher.java @@ -1,16 +1,15 @@ -package it.polpetta.libris.image.imagga.imageRecognition; +package com.tfederico.libris.image.imagga.imageRecognition; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import it.polpetta.libris.contract.IQueryBuilder; -import it.polpetta.libris.contract.ISearchResult; -import it.polpetta.libris.image.azure.imageRecognition.AzureImageSearchResult; -import it.polpetta.libris.image.contract.AbstractURLImageSearcher; -import it.polpetta.libris.image.imagga.contract.IImaggaImageSearchResult; -import it.polpetta.libris.image.imagga.contract.IImaggaImageSearcher; -import it.polpetta.libris.util.Coordinates; +import com.tfederico.libris.image.imagga.contract.IImaggaImageSearcher; +import com.tfederico.libris.contract.IQueryBuilder; +import com.tfederico.libris.contract.ISearchResult; +import com.tfederico.libris.image.contract.AbstractURLImageSearcher; +import com.tfederico.libris.image.imagga.contract.IImaggaImageSearchResult; +import com.tfederico.libris.util.Coordinates; import javax.net.ssl.HttpsURLConnection; import java.io.*; @@ -23,7 +22,7 @@ /** * Created by federico on 17/05/17. */ -public class URLImaggaImageSearcher extends AbstractURLImageSearcher implements IImaggaImageSearcher{ +public class URLImaggaImageSearcher extends AbstractURLImageSearcher implements IImaggaImageSearcher { private static final String imaggaImageSearch = "https://api.imagga.com/v1/tagging"; diff --git a/src/main/java/com/tfederico/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearch.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearch.java new file mode 100644 index 0000000..7d4d858 --- /dev/null +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearch.java @@ -0,0 +1,22 @@ +package com.tfederico.libris.opticalCharacterRecognition; + +import com.tfederico.libris.opticalCharacterRecognition.azure.contract.IAbstractAzureOcrFactoryReverseSearchProvider; +import com.tfederico.libris.opticalCharacterRecognition.azure.AzureAbstractFactory; +//import it.polpetta.libris.opticalCharacterRecognition.ibm.IBMAbstractFactory; +//import it.polpetta.libris.opticalCharacterRecognition.ibm.contract.IAbstractIBMOcrFactoryReverseSearchProvider; + +/** + * Created by zanna on 11/05/17. + */ +public class OpticalCharacterRecognitionSearch { + + private OpticalCharacterRecognitionSearch() {} + + public static IAbstractAzureOcrFactoryReverseSearchProvider getAzureServices(String subscriptionKey) { + return new AzureAbstractFactory(subscriptionKey); + } + + /*public static IAbstractIBMOcrFactoryReverseSearchProvider getIBMServices(String subscriptionKey) { + return new IBMAbstractFactory(subscriptionKey); + }*/ +} diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/AzureAbstractFactory.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/AzureAbstractFactory.java similarity index 62% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/AzureAbstractFactory.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/AzureAbstractFactory.java index e8e8ad3..c44b02a 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/AzureAbstractFactory.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/AzureAbstractFactory.java @@ -1,7 +1,7 @@ -package it.polpetta.libris.opticalCharacterRecognition.azure; +package com.tfederico.libris.opticalCharacterRecognition.azure; -import it.polpetta.libris.opticalCharacterRecognition.azure.characterRecognition.URLAzureOcrSearcher; -import it.polpetta.libris.opticalCharacterRecognition.azure.contract.IAbstractAzureOcrFactoryReverseSearchProvider; +import com.tfederico.libris.opticalCharacterRecognition.azure.characterRecognition.URLAzureOcrSearcher; +import com.tfederico.libris.opticalCharacterRecognition.azure.contract.IAbstractAzureOcrFactoryReverseSearchProvider; /** * Created by zanna on 11/05/17. diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/characterRecognition/AzureOcrResult.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/characterRecognition/AzureOcrResult.java similarity index 90% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/characterRecognition/AzureOcrResult.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/characterRecognition/AzureOcrResult.java index 4d32388..6fd2eb9 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/characterRecognition/AzureOcrResult.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/characterRecognition/AzureOcrResult.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.opticalCharacterRecognition.azure.characterRecognition; +package com.tfederico.libris.opticalCharacterRecognition.azure.characterRecognition; -import it.polpetta.libris.opticalCharacterRecognition.azure.contract.IAzureOcrResult; +import com.tfederico.libris.opticalCharacterRecognition.azure.contract.IAzureOcrResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/characterRecognition/URLAzureOcrSearcher.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/characterRecognition/URLAzureOcrSearcher.java similarity index 80% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/characterRecognition/URLAzureOcrSearcher.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/characterRecognition/URLAzureOcrSearcher.java index 72514d7..ad557e6 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/characterRecognition/URLAzureOcrSearcher.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/characterRecognition/URLAzureOcrSearcher.java @@ -1,29 +1,18 @@ -package it.polpetta.libris.opticalCharacterRecognition.azure.characterRecognition; +package com.tfederico.libris.opticalCharacterRecognition.azure.characterRecognition; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import it.polpetta.libris.contract.IQueryBuilder; -import it.polpetta.libris.contract.ISearcher; -import it.polpetta.libris.image.azure.contract.IAzureImageSearchResult; -import it.polpetta.libris.image.azure.contract.IAzureImageSearcher; -import it.polpetta.libris.image.azure.imageRecognition.AzureImageSearchResult; -import it.polpetta.libris.image.contract.AbstractURLImageSearcher; -import it.polpetta.libris.opticalCharacterRecognition.azure.contract.IAzureOcrResult; -import it.polpetta.libris.opticalCharacterRecognition.azure.contract.IAzureOcrSearcher; -import it.polpetta.libris.opticalCharacterRecognition.contract.AbstractURLOcr; -import it.polpetta.libris.opticalCharacterRecognition.contract.IOcrQueryBuilder; -import it.polpetta.libris.util.Coordinates; - -import javax.lang.model.element.Element; -import javax.naming.directory.SearchResult; +import com.tfederico.libris.opticalCharacterRecognition.azure.contract.IAzureOcrResult; +import com.tfederico.libris.opticalCharacterRecognition.azure.contract.IAzureOcrSearcher; +import com.tfederico.libris.opticalCharacterRecognition.contract.AbstractURLOcr; +import com.tfederico.libris.opticalCharacterRecognition.contract.IOcrQueryBuilder; + import javax.net.ssl.HttpsURLConnection; import java.io.*; -import java.net.URI; import java.net.URL; import java.net.URLConnection; -import java.security.PrivateKey; import java.util.ArrayList; /** diff --git a/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/contract/IAbstractAzureOcrFactoryReverseSearchProvider.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/contract/IAbstractAzureOcrFactoryReverseSearchProvider.java new file mode 100644 index 0000000..7aea968 --- /dev/null +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/contract/IAbstractAzureOcrFactoryReverseSearchProvider.java @@ -0,0 +1,12 @@ +package com.tfederico.libris.opticalCharacterRecognition.azure.contract; + +import com.tfederico.libris.opticalCharacterRecognition.azure.characterRecognition.URLAzureOcrSearcher; +import com.tfederico.libris.opticalCharacterRecognition.contract.IAbstractOcrFactoryReverseSearchProvider; + +/** + * Created by dpolonio on 10/05/17. + */ +public interface IAbstractAzureOcrFactoryReverseSearchProvider extends IAbstractOcrFactoryReverseSearchProvider { + + URLAzureOcrSearcher.Builder imageSearchBuildQuery(); +} diff --git a/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/contract/IAzureOcrResult.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/contract/IAzureOcrResult.java new file mode 100644 index 0000000..0630d81 --- /dev/null +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/contract/IAzureOcrResult.java @@ -0,0 +1,10 @@ +package com.tfederico.libris.opticalCharacterRecognition.azure.contract; + +import com.tfederico.libris.opticalCharacterRecognition.contract.IOcrSearchResult; + +/** + * Created by zanna on 11/05/17. + */ +public interface IAzureOcrResult extends IOcrSearchResult { + String getLanguage(); +} diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/contract/IAzureOcrSearcher.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/contract/IAzureOcrSearcher.java similarity index 61% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/contract/IAzureOcrSearcher.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/contract/IAzureOcrSearcher.java index a64c0d6..a8b2043 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/contract/IAzureOcrSearcher.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/azure/contract/IAzureOcrSearcher.java @@ -1,7 +1,6 @@ -package it.polpetta.libris.opticalCharacterRecognition.azure.contract; +package com.tfederico.libris.opticalCharacterRecognition.azure.contract; -import it.polpetta.libris.contract.ISearcher; -import it.polpetta.libris.image.azure.contract.IAzureImageSearchResult; +import com.tfederico.libris.contract.ISearcher; import java.io.IOException; diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/AbstractURLOcr.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/AbstractURLOcr.java similarity index 57% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/AbstractURLOcr.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/AbstractURLOcr.java index 2ac3393..fc99ab7 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/AbstractURLOcr.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/AbstractURLOcr.java @@ -1,7 +1,6 @@ -package it.polpetta.libris.opticalCharacterRecognition.contract; +package com.tfederico.libris.opticalCharacterRecognition.contract; -import it.polpetta.libris.contract.AbstractURLSearcher; -import it.polpetta.libris.util.Coordinates; +import com.tfederico.libris.contract.AbstractURLSearcher; import java.net.URL; diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/IAbstractOcrFactoryReverseSearchProvider.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/IAbstractOcrFactoryReverseSearchProvider.java similarity index 51% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/IAbstractOcrFactoryReverseSearchProvider.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/IAbstractOcrFactoryReverseSearchProvider.java index 1612151..d4d2da9 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/IAbstractOcrFactoryReverseSearchProvider.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/IAbstractOcrFactoryReverseSearchProvider.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.opticalCharacterRecognition.contract; +package com.tfederico.libris.opticalCharacterRecognition.contract; -import it.polpetta.libris.contract.IAbstractFactoryReverseSearchProvider; +import com.tfederico.libris.contract.IAbstractFactoryReverseSearchProvider; /** * Created by zanna on 11/05/17. diff --git a/src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/IOcrQueryBuilder.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/IOcrQueryBuilder.java new file mode 100644 index 0000000..33aaa7c --- /dev/null +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/IOcrQueryBuilder.java @@ -0,0 +1,8 @@ +package com.tfederico.libris.opticalCharacterRecognition.contract; + +import com.tfederico.libris.contract.IQueryBuilder; + +/** + * Created by zanna on 08/05/17. + */ +public interface IOcrQueryBuilder extends IQueryBuilder {} diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/IOcrSearchResult.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/IOcrSearchResult.java similarity index 58% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/IOcrSearchResult.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/IOcrSearchResult.java index 6ba12d3..5a1a0d8 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/IOcrSearchResult.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/contract/IOcrSearchResult.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.opticalCharacterRecognition.contract; +package com.tfederico.libris.opticalCharacterRecognition.contract; -import it.polpetta.libris.contract.ISearchResult; +import com.tfederico.libris.contract.ISearchResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/IBMAbstractFactory.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/IBMAbstractFactory.java similarity index 50% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/IBMAbstractFactory.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/IBMAbstractFactory.java index 63cd499..6a7e455 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/IBMAbstractFactory.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/IBMAbstractFactory.java @@ -1,12 +1,12 @@ -package it.polpetta.libris.opticalCharacterRecognition.ibm; +package com.tfederico.libris.opticalCharacterRecognition.ibm; -import it.polpetta.libris.opticalCharacterRecognition.ibm.characterRecognition.URLIBMOcrSearcher; -import it.polpetta.libris.opticalCharacterRecognition.ibm.contract.IAbstractIBMOcrFactoryReverseSearchProvider; +//import it.polpetta.libris.opticalCharacterRecognition.ibm.characterRecognition.URLIBMOcrSearcher; +//import it.polpetta.libris.opticalCharacterRecognition.ibm.contract.IAbstractIBMOcrFactoryReverseSearchProvider; /** * Created by zanna on 11/05/17. */ -public class IBMAbstractFactory implements IAbstractIBMOcrFactoryReverseSearchProvider { +/*public class IBMAbstractFactory implements IAbstractIBMOcrFactoryReverseSearchProvider { private String subscriptionKey = null; @@ -19,4 +19,4 @@ public URLIBMOcrSearcher.Builder imageSearchBuildQuery() { URLIBMOcrSearcher.setSubscriptionKey(subscriptionKey); return new URLIBMOcrSearcher.Builder(); } -} +}*/ diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/characterRecognition/IBMOcrResult.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/characterRecognition/IBMOcrResult.java similarity index 90% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/characterRecognition/IBMOcrResult.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/characterRecognition/IBMOcrResult.java index 6ceb505..454da14 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/characterRecognition/IBMOcrResult.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/characterRecognition/IBMOcrResult.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.opticalCharacterRecognition.ibm.characterRecognition; +package com.tfederico.libris.opticalCharacterRecognition.ibm.characterRecognition; -import it.polpetta.libris.opticalCharacterRecognition.ibm.contract.IIBMOcrResult; +import com.tfederico.libris.opticalCharacterRecognition.ibm.contract.IIBMOcrResult; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/characterRecognition/URLIBMOcrSearcher.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/characterRecognition/URLIBMOcrSearcher.java similarity index 68% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/characterRecognition/URLIBMOcrSearcher.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/characterRecognition/URLIBMOcrSearcher.java index 065bcf7..72f590e 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/characterRecognition/URLIBMOcrSearcher.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/characterRecognition/URLIBMOcrSearcher.java @@ -1,24 +1,10 @@ -package it.polpetta.libris.opticalCharacterRecognition.ibm.characterRecognition; - -import com.ibm.watson.developer_cloud.visual_recognition.v3.VisualRecognition; -import com.ibm.watson.developer_cloud.visual_recognition.v3.model.*; -import it.polpetta.libris.contract.IQueryBuilder; -import it.polpetta.libris.image.ibm.contract.IIBMImageSearchResult; -import it.polpetta.libris.image.ibm.visualRecognition.IBMImageSearchResult; -import it.polpetta.libris.opticalCharacterRecognition.contract.AbstractURLOcr; -import it.polpetta.libris.opticalCharacterRecognition.ibm.contract.IIBMOcrResult; -import it.polpetta.libris.opticalCharacterRecognition.ibm.contract.IIBMOcrSearcher; -import it.polpetta.libris.util.Coordinates; - -import java.io.*; -import java.net.URL; -import java.net.URLConnection; -import java.util.ArrayList; +package com.tfederico.libris.opticalCharacterRecognition.ibm.characterRecognition; /** * Created by dpolonio on 05/05/17. + * OCR no longer supported */ -public class URLIBMOcrSearcher extends AbstractURLOcr implements IIBMOcrSearcher { +/*public class URLIBMOcrSearcher extends AbstractURLOcr implements IIBMOcrSearcher { private static String subscriptionKey = null; private RecognizedText response; @@ -91,4 +77,4 @@ public URLIBMOcrSearcher build() { return new URLIBMOcrSearcher(link); } } -} +}*/ diff --git a/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/contract/IAbstractIBMOcrFactoryReverseSearchProvider.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/contract/IAbstractIBMOcrFactoryReverseSearchProvider.java new file mode 100644 index 0000000..f7d4c41 --- /dev/null +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/contract/IAbstractIBMOcrFactoryReverseSearchProvider.java @@ -0,0 +1,11 @@ +package com.tfederico.libris.opticalCharacterRecognition.ibm.contract; + +//import it.polpetta.libris.opticalCharacterRecognition.ibm.characterRecognition.URLIBMOcrSearcher; + +/** + * Created by dpolonio on 10/05/17. + */ +/*public interface IAbstractIBMOcrFactoryReverseSearchProvider extends IAbstractOcrFactoryReverseSearchProvider { + + URLIBMOcrSearcher.Builder imageSearchBuildQuery(); +}*/ diff --git a/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrResult.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrResult.java new file mode 100644 index 0000000..6cdc7fb --- /dev/null +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrResult.java @@ -0,0 +1,10 @@ +package com.tfederico.libris.opticalCharacterRecognition.ibm.contract; + +import com.tfederico.libris.opticalCharacterRecognition.contract.IOcrSearchResult; + +/** + * Created by zanna on 11/05/17. + */ +public interface IIBMOcrResult extends IOcrSearchResult { + String getLanguage(); +} diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrSearcher.java b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrSearcher.java similarity index 71% rename from src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrSearcher.java rename to src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrSearcher.java index a873c70..d13b584 100644 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrSearcher.java +++ b/src/main/java/com/tfederico/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrSearcher.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.opticalCharacterRecognition.ibm.contract; +package com.tfederico.libris.opticalCharacterRecognition.ibm.contract; -import it.polpetta.libris.contract.ISearcher; +import com.tfederico.libris.contract.ISearcher; import java.io.IOException; diff --git a/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryCollectionUtility.java b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryCollectionUtility.java new file mode 100644 index 0000000..ad00370 --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryCollectionUtility.java @@ -0,0 +1,16 @@ +package com.tfederico.libris.text.discovery.contract; + +import com.ibm.watson.developer_cloud.discovery.v1.model.*; + +public interface IIBMDiscoveryCollectionUtility { + + CreateCollectionOptions createCollection(String envId, String confId, + String name, String description, String lang); + + ListCollectionsOptions listCollections(String envId); + + UpdateCollectionOptions updateCollection(String envId, String confId, String collId, + String name, String description); + + DeleteCollectionOptions deleteCollection(String envId, String collId); +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryConfigurationUtility.java b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryConfigurationUtility.java new file mode 100644 index 0000000..df574a2 --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryConfigurationUtility.java @@ -0,0 +1,25 @@ +package com.tfederico.libris.text.discovery.contract; + + +import com.ibm.watson.developer_cloud.discovery.v1.model.CreateConfigurationOptions; +import com.ibm.watson.developer_cloud.discovery.v1.model.DeleteConfigurationOptions; +import com.ibm.watson.developer_cloud.discovery.v1.model.ListConfigurationsOptions; +import com.ibm.watson.developer_cloud.discovery.v1.model.UpdateConfigurationOptions; + +import javax.security.auth.login.Configuration; +import java.io.FileNotFoundException; +import java.util.List; + +public interface IIBMDiscoveryConfigurationUtility { + + CreateConfigurationOptions createConfiguration(String envId, String name, String jsonFile) throws FileNotFoundException; + + UpdateConfigurationOptions updateConfiguration(String envId, String confId, + String name, String jsonFile) throws FileNotFoundException; + + ListConfigurationsOptions listConfigurations(String envId); + + DeleteConfigurationOptions deleteConfiguration(String envId, String confId); + + +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryDocumentUtility.java b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryDocumentUtility.java new file mode 100644 index 0000000..361680d --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryDocumentUtility.java @@ -0,0 +1,16 @@ +package com.tfederico.libris.text.discovery.contract; + +import com.ibm.watson.developer_cloud.discovery.v1.model.AddDocumentOptions; +import com.ibm.watson.developer_cloud.discovery.v1.model.DeleteDocumentOptions; +import com.ibm.watson.developer_cloud.discovery.v1.model.UpdateDocumentOptions; + +import java.io.FileNotFoundException; + +public interface IIBMDiscoveryDocumentUtility { + + AddDocumentOptions addDocument(String envId, String collId, String jsonPath) throws FileNotFoundException; + + UpdateDocumentOptions updateDocument(String envId, String collId, String docId, String jsonPath) throws FileNotFoundException; + + DeleteDocumentOptions deleteDocument(String envId, String collId, String docId); +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryEnvironmentUtility.java b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryEnvironmentUtility.java new file mode 100644 index 0000000..a7f28d7 --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryEnvironmentUtility.java @@ -0,0 +1,13 @@ +package com.tfederico.libris.text.discovery.contract; + +import com.ibm.watson.developer_cloud.discovery.v1.model.*; + +import java.util.List; + +public interface IIBMDiscoveryEnvironmentUtility { + CreateEnvironmentOptions createEnvironment(String name, String description); + + UpdateEnvironmentOptions updateEnvironment(String envId, String name, String description); + + DeleteEnvironmentOptions deleteEnvironment(String envId); +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryQueryUtility.java b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryQueryUtility.java new file mode 100644 index 0000000..cef2dee --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryQueryUtility.java @@ -0,0 +1,9 @@ +package com.tfederico.libris.text.discovery.contract; + +import com.ibm.watson.developer_cloud.discovery.v1.model.QueryOptions; + +public interface IIBMDiscoveryQueryUtility { + + QueryOptions queryCollection(String envId, String collId, String query); + +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryUtility.java b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryUtility.java new file mode 100644 index 0000000..cd6eb95 --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/contract/IIBMDiscoveryUtility.java @@ -0,0 +1,45 @@ +package com.tfederico.libris.text.discovery.contract; + +import com.ibm.watson.developer_cloud.discovery.v1.model.*; + +import javax.swing.text.Document; +import java.io.FileNotFoundException; +import java.util.List; + +public interface IIBMDiscoveryUtility { + + Environment createEnvironment(String name, String description); + + List listEnvironments(); + + Environment updateEnvironment(String envId, String name, String description); + + void deleteEnvironment(String envId); + + Configuration createConfiguration(String envId, String name, String jsonFile) throws FileNotFoundException; + + Configuration updateConfiguration(String envId, String confId, + String name, String jsonFile) throws FileNotFoundException; + + List listConfigurations(String envId); + + void deleteConfiguration(String envId, String confId); + + Collection createCollection(String envId, String confId, + String name, String description, String lang); + + List listCollections(String envId); + + Collection updateCollection(String envId, String confId, String collId, + String name, String description); + + void deleteCollection(String envId, String collId); + + DocumentAccepted addDocument(String envId, String collId, String jsonPath) throws FileNotFoundException; + + DocumentAccepted updateDocument(String envId, String collId, String docId, String jsonPath) throws FileNotFoundException; + + void deleteDocument(String envId, String collId, String docId); + + QueryResponse queryCollection(String envId, String collId, String query); +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryCollectionUtility.java b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryCollectionUtility.java new file mode 100644 index 0000000..dcde132 --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryCollectionUtility.java @@ -0,0 +1,47 @@ +package com.tfederico.libris.text.discovery.ibm; + +import com.ibm.watson.developer_cloud.discovery.v1.model.*; +import com.tfederico.libris.text.discovery.contract.IIBMDiscoveryCollectionUtility; + +import java.util.List; + +public class IBMDiscoveryCollectionUtility implements IIBMDiscoveryCollectionUtility{ + @Override + public CreateCollectionOptions createCollection(String envId, String confId, + String name, String description, String lang) { + CreateCollectionOptions.Builder builder = new CreateCollectionOptions.Builder(); + builder.environmentId(envId); + builder.configurationId(confId); + builder.name(name); + builder.language(lang); + builder.description(description); + return builder.build(); + } + + @Override + public ListCollectionsOptions listCollections(String envId) { + ListCollectionsOptions.Builder builder = new ListCollectionsOptions.Builder(); + builder.environmentId(envId); + return builder.build(); + } + + @Override + public UpdateCollectionOptions updateCollection(String envId, String confId, String collId, + String name, String description) { + UpdateCollectionOptions.Builder builder = new UpdateCollectionOptions.Builder(); + builder.environmentId(envId); + builder.configurationId(confId); + builder.collectionId(collId); + builder.name(name); + builder.description(description); + return builder.build(); + } + + @Override + public DeleteCollectionOptions deleteCollection(String envId, String collId) { + DeleteCollectionOptions.Builder builder = new DeleteCollectionOptions.Builder(); + builder.environmentId(envId); + builder.collectionId(collId); + return builder.build(); + } +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryConfigurationUtility.java b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryConfigurationUtility.java new file mode 100644 index 0000000..3742220 --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryConfigurationUtility.java @@ -0,0 +1,53 @@ +package com.tfederico.libris.text.discovery.ibm; + +import com.ibm.watson.developer_cloud.discovery.v1.model.*; +import com.ibm.watson.developer_cloud.util.GsonSingleton; +import com.tfederico.libris.text.discovery.contract.IIBMDiscoveryConfigurationUtility; + +import java.io.FileNotFoundException; +import java.io.FileReader; + +public class IBMDiscoveryConfigurationUtility implements IIBMDiscoveryConfigurationUtility{ + + @Override + public CreateConfigurationOptions createConfiguration(String envId, String name, + String jsonFile) throws FileNotFoundException { + CreateConfigurationOptions.Builder builder = new CreateConfigurationOptions.Builder(); + builder.environmentId(envId); + builder.name(name); + Configuration configuration = GsonSingleton.getGson().fromJson( + new FileReader(jsonFile), Configuration.class); + builder.configuration(configuration); + return builder.build(); + } + + @Override + public UpdateConfigurationOptions updateConfiguration(String envId, String confId, + String name, String jsonFile) throws FileNotFoundException { + UpdateConfigurationOptions.Builder builder = new UpdateConfigurationOptions.Builder(); + builder.environmentId(envId); + builder.configurationId(confId); + builder.name(name); + + Configuration configuration = GsonSingleton.getGson().fromJson( + new FileReader(jsonFile), Configuration.class); + builder.configuration(configuration); + return builder.build(); + } + + @Override + public ListConfigurationsOptions listConfigurations(String envId) { + ListConfigurationsOptions.Builder builder = new ListConfigurationsOptions.Builder(); + builder.environmentId(envId); + return builder.build(); + } + + @Override + public DeleteConfigurationOptions deleteConfiguration(String envId, String confId) { + DeleteConfigurationOptions.Builder builder = new DeleteConfigurationOptions.Builder(); + + builder.environmentId(envId); + builder.configurationId(confId); + return builder.build(); + } +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryDocumentUtility.java b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryDocumentUtility.java new file mode 100644 index 0000000..402e77c --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryDocumentUtility.java @@ -0,0 +1,39 @@ +package com.tfederico.libris.text.discovery.ibm; + +import com.ibm.watson.developer_cloud.discovery.v1.model.AddDocumentOptions; +import com.ibm.watson.developer_cloud.discovery.v1.model.DeleteDocumentOptions; +import com.ibm.watson.developer_cloud.discovery.v1.model.UpdateDocumentOptions; +import com.tfederico.libris.text.discovery.contract.IIBMDiscoveryDocumentUtility; + +import java.io.File; +import java.io.FileNotFoundException; + +public class IBMDiscoveryDocumentUtility implements IIBMDiscoveryDocumentUtility{ + @Override + public AddDocumentOptions addDocument(String envId, String collId, String jsonPath) throws FileNotFoundException { + AddDocumentOptions.Builder builder = new AddDocumentOptions.Builder(); + builder.environmentId(envId); + builder.collectionId(collId); + builder.file(new File(jsonPath)); + return builder.build(); + } + + @Override + public UpdateDocumentOptions updateDocument(String envId, String collId, String docId, String jsonPath) throws FileNotFoundException { + UpdateDocumentOptions.Builder builder = new UpdateDocumentOptions.Builder(); + builder.environmentId(envId); + builder.collectionId(collId); + builder.documentId(docId); + builder.file(new File(jsonPath)); + return builder.build(); + } + + @Override + public DeleteDocumentOptions deleteDocument(String envId, String collId, String docId) { + DeleteDocumentOptions.Builder builder = new DeleteDocumentOptions.Builder(); + builder.environmentId(envId); + builder.collectionId(collId); + builder.documentId(docId); + return builder.build(); + } +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryEnvironmentUtility.java b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryEnvironmentUtility.java new file mode 100644 index 0000000..175978f --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryEnvironmentUtility.java @@ -0,0 +1,43 @@ +package com.tfederico.libris.text.discovery.ibm; + +import com.ibm.watson.developer_cloud.discovery.v1.model.CreateEnvironmentOptions; +import com.ibm.watson.developer_cloud.discovery.v1.model.DeleteEnvironmentOptions; +import com.ibm.watson.developer_cloud.discovery.v1.model.Environment; +import com.ibm.watson.developer_cloud.discovery.v1.model.UpdateEnvironmentOptions; +import com.tfederico.libris.text.discovery.contract.IIBMDiscoveryEnvironmentUtility; + +import java.util.List; + +public class IBMDiscoveryEnvironmentUtility implements IIBMDiscoveryEnvironmentUtility{ + + @Override + public CreateEnvironmentOptions createEnvironment(String name, String description) { + CreateEnvironmentOptions.Builder createRequestOptions = new CreateEnvironmentOptions.Builder(); + + createRequestOptions.size(1); + createRequestOptions.name(name); + createRequestOptions.description(description); + + return createRequestOptions.build(); + + } + + @Override + public UpdateEnvironmentOptions updateEnvironment(String envId, String name, String description) { + + UpdateEnvironmentOptions.Builder builder = new UpdateEnvironmentOptions.Builder(); + builder.environmentId(envId); + builder.name(name); + builder.description(description); + + return builder.build(); + } + + @Override + public DeleteEnvironmentOptions deleteEnvironment(String envId) { + DeleteEnvironmentOptions.Builder builder = new DeleteEnvironmentOptions.Builder(); + builder.environmentId(envId); + + return builder.build(); + } +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryQueryUtility.java b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryQueryUtility.java new file mode 100644 index 0000000..5575c3e --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryQueryUtility.java @@ -0,0 +1,15 @@ +package com.tfederico.libris.text.discovery.ibm; + +import com.ibm.watson.developer_cloud.discovery.v1.model.QueryOptions; +import com.tfederico.libris.text.discovery.contract.IIBMDiscoveryQueryUtility; + +public class IBMDiscoveryQueryUtility implements IIBMDiscoveryQueryUtility{ + @Override + public QueryOptions queryCollection(String envId, String collId, String query) { + QueryOptions.Builder builder = new QueryOptions.Builder(); + builder.environmentId(envId); + builder.collectionId(collId); + builder.naturalLanguageQuery(query); + return builder.build(); + } +} diff --git a/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryUtility.java b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryUtility.java new file mode 100644 index 0000000..8395f75 --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/discovery/ibm/IBMDiscoveryUtility.java @@ -0,0 +1,144 @@ +package com.tfederico.libris.text.discovery.ibm; + +import com.ibm.watson.developer_cloud.discovery.v1.Discovery; +import com.ibm.watson.developer_cloud.discovery.v1.model.*; +import com.tfederico.libris.text.discovery.contract.*; + +import java.io.FileNotFoundException; +import java.util.List; + +public class IBMDiscoveryUtility implements IIBMDiscoveryUtility{ + + private static String apiKey; + + private static String username; + + private static String password; + + private Discovery discovery; + + private IIBMDiscoveryEnvironmentUtility environmentUtility; + + private IIBMDiscoveryConfigurationUtility configurationUtility; + + private IIBMDiscoveryCollectionUtility collectionUtility; + + private IIBMDiscoveryDocumentUtility documentUtility; + + private IIBMDiscoveryQueryUtility queryUtility; + + public IBMDiscoveryUtility(){ + discovery = new Discovery("2017-11-07"); + discovery.setUsernameAndPassword(username, password); + environmentUtility = new IBMDiscoveryEnvironmentUtility(); + configurationUtility = new IBMDiscoveryConfigurationUtility(); + collectionUtility = new IBMDiscoveryCollectionUtility(); + documentUtility = new IBMDiscoveryDocumentUtility(); + queryUtility = new IBMDiscoveryQueryUtility(); + } + + public static void setUserAndPassword(String user, String psw){ + username = user; + password = psw; + } + + @Override + public Environment createEnvironment(String name, String description) { + CreateEnvironmentOptions options = environmentUtility.createEnvironment(name, description); + return discovery.createEnvironment(options).execute(); + } + + @Override + public List listEnvironments() { + return discovery.listEnvironments().execute().getEnvironments(); + } + + @Override + public Environment updateEnvironment(String envId, String name, String description) { + + UpdateEnvironmentOptions options = environmentUtility.updateEnvironment(envId, + name, description); + + return discovery.updateEnvironment(options).execute(); + } + + @Override + public void deleteEnvironment(String envId) { + + DeleteEnvironmentOptions options = environmentUtility.deleteEnvironment(envId); + + discovery.deleteEnvironment(options); + } + + @Override + public Configuration createConfiguration(String envId, String name, String jsonFile) throws FileNotFoundException { + CreateConfigurationOptions options = configurationUtility.createConfiguration(envId, name, jsonFile); + return discovery.createConfiguration(options).execute(); + } + + @Override + public Configuration updateConfiguration(String envId, String confId, String name, String jsonFile) throws FileNotFoundException { + UpdateConfigurationOptions options = configurationUtility.updateConfiguration(envId, confId, name, jsonFile); + return discovery.updateConfiguration(options).execute(); + } + + @Override + public List listConfigurations(String envId) { + ListConfigurationsOptions options = configurationUtility.listConfigurations(envId); + return discovery.listConfigurations(options).execute().getConfigurations(); + } + + @Override + public void deleteConfiguration(String envId, String confId) { + DeleteConfigurationOptions options = configurationUtility.deleteConfiguration(envId, confId); + discovery.deleteConfiguration(options).execute(); + } + + @Override + public Collection createCollection(String envId, String confId, String name, String description, String lang) { + CreateCollectionOptions options = collectionUtility.createCollection(envId, confId, name, description, lang); + return discovery.createCollection(options).execute(); + } + + @Override + public List listCollections(String envId) { + ListCollectionsOptions options = collectionUtility.listCollections(envId); + return discovery.listCollections(options).execute().getCollections(); + } + + @Override + public Collection updateCollection(String envId, String confId, String collId, String name, String description) { + UpdateCollectionOptions options = collectionUtility.updateCollection(envId, confId, collId, name, description); + return discovery.updateCollection(options).execute(); + } + + @Override + public void deleteCollection(String envId, String collId) { + DeleteCollectionOptions options = collectionUtility.deleteCollection(envId, collId); + discovery.deleteCollection(options).execute(); + } + + @Override + public DocumentAccepted addDocument(String envId, String collId, String jsonPath) throws FileNotFoundException { + AddDocumentOptions options = documentUtility.addDocument(envId, collId, jsonPath); + return discovery.addDocument(options).execute(); + } + + @Override + public DocumentAccepted updateDocument(String envId, String collId, String docId, String jsonPath) throws FileNotFoundException { + UpdateDocumentOptions options = documentUtility.updateDocument(envId, collId, docId, jsonPath); + return discovery.updateDocument(options).execute(); + } + + @Override + public void deleteDocument(String envId, String collId, String docId) { + DeleteDocumentOptions options = documentUtility.deleteDocument(envId, collId, docId); + discovery.deleteDocument(options).execute(); + } + + @Override + public QueryResponse queryCollection(String envId, String collId, String query) { + QueryOptions options = queryUtility.queryCollection(envId, collId, query); + return discovery.query(options).execute(); + } +} diff --git a/src/main/java/com/tfederico/libris/text/naturalLanguageUnderstanding/contract/IIBMNaturalLanguageUnderstandingUtility.java b/src/main/java/com/tfederico/libris/text/naturalLanguageUnderstanding/contract/IIBMNaturalLanguageUnderstandingUtility.java new file mode 100644 index 0000000..22731ac --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/naturalLanguageUnderstanding/contract/IIBMNaturalLanguageUnderstandingUtility.java @@ -0,0 +1,31 @@ +package com.tfederico.libris.text.naturalLanguageUnderstanding.contract; + +import com.ibm.watson.developer_cloud.natural_language_understanding.v1.model.*; + +import java.util.ArrayList; +import java.util.List; + +public interface IIBMNaturalLanguageUnderstandingUtility { + + List getCategoriesFromText(String text); + + List getConceptsFromText(String text, int limit); + + EmotionResult getEmotionsFromText(String text); + + EmotionResult getTargetsEmotionsFromText(String text, ArrayList targets); + + List getEntitiesFromText(String text); + + List getKeywordsFromText(String text); + + MetadataResult getMetadataFromText(String text); + + List getRelationsFromText(String text); + + List getSemanticRolesFromText(String text); + + SentimentResult getSentimentFromText(String text); + + SentimentResult getTargetsSentimentFromText(String text, ArrayList targets); +} diff --git a/src/main/java/com/tfederico/libris/text/naturalLanguageUnderstanding/ibm/IBMNaturalLanguageUnderstandingUtility.java b/src/main/java/com/tfederico/libris/text/naturalLanguageUnderstanding/ibm/IBMNaturalLanguageUnderstandingUtility.java new file mode 100644 index 0000000..65de061 --- /dev/null +++ b/src/main/java/com/tfederico/libris/text/naturalLanguageUnderstanding/ibm/IBMNaturalLanguageUnderstandingUtility.java @@ -0,0 +1,120 @@ +package com.tfederico.libris.text.naturalLanguageUnderstanding.ibm; + +import com.ibm.watson.developer_cloud.natural_language_understanding.v1.NaturalLanguageUnderstanding; +import com.ibm.watson.developer_cloud.natural_language_understanding.v1.model.*; +import com.tfederico.libris.text.naturalLanguageUnderstanding.contract.IIBMNaturalLanguageUnderstandingUtility; + +import java.util.ArrayList; +import java.util.List; +//todo refactor the whole class in a smarter way +public class IBMNaturalLanguageUnderstandingUtility implements IIBMNaturalLanguageUnderstandingUtility{ + + private NaturalLanguageUnderstanding nlu; + + private static String username; + + private static String password; + + public IBMNaturalLanguageUnderstandingUtility(){ + nlu = new NaturalLanguageUnderstanding(NaturalLanguageUnderstanding.VERSION_DATE_2017_02_27); + nlu.setUsernameAndPassword(username, password); + + } + + public static void setUsernameAndPassword(String username, String password) { + IBMNaturalLanguageUnderstandingUtility.username = username; + IBMNaturalLanguageUnderstandingUtility.password = password; + } + + @Override + public List getCategoriesFromText(String text) { + CategoriesOptions options = new CategoriesOptions(); + Features f = new Features.Builder().categories(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getCategories(); + + } + + @Override + public List getConceptsFromText(String text, int limit) { + + ConceptsOptions options = new ConceptsOptions.Builder().limit(limit).build(); + Features f = new Features.Builder().concepts(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getConcepts(); + } + + @Override + public EmotionResult getEmotionsFromText(String text) { + EmotionOptions options = new EmotionOptions.Builder().build(); + Features f = new Features.Builder().emotion(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getEmotion(); + } + + @Override + public EmotionResult getTargetsEmotionsFromText(String text, ArrayList targets) { + EmotionOptions options = new EmotionOptions.Builder().targets(targets).build(); + Features f = new Features.Builder().emotion(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getEmotion(); + } + + @Override + public List getEntitiesFromText(String text) { + EntitiesOptions options = new EntitiesOptions.Builder().mentions(true).build(); + Features f = new Features.Builder().entities(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getEntities(); + } + + @Override + public List getKeywordsFromText(String text) { + KeywordsOptions options = new KeywordsOptions.Builder().build(); + Features f = new Features.Builder().keywords(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getKeywords(); + } + + @Override + public MetadataResult getMetadataFromText(String text) { + MetadataOptions options = new MetadataOptions(); + Features f = new Features.Builder().metadata(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getMetadata(); + } + + @Override + public List getRelationsFromText(String text) { + RelationsOptions options = new RelationsOptions.Builder().build(); + Features f = new Features.Builder().relations(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getRelations(); + } + + @Override + public List getSemanticRolesFromText(String text) { + SemanticRolesOptions options = new SemanticRolesOptions.Builder().build(); + Features f = new Features.Builder().semanticRoles(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getSemanticRoles(); + } + + @Override + public SentimentResult getSentimentFromText(String text) { + SentimentOptions options = new SentimentOptions.Builder().build(); + Features f = new Features.Builder().sentiment(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getSentiment(); + } + + @Override + public SentimentResult getTargetsSentimentFromText(String text, ArrayList targets) { + SentimentOptions options = new SentimentOptions.Builder().targets(targets).build(); + Features f = new Features.Builder().sentiment(options).build(); + AnalyzeOptions analyzeOptions = new AnalyzeOptions.Builder().text(text).features(f).build(); + return nlu.analyze(analyzeOptions).execute().getSentiment(); + } + + +} diff --git a/src/main/java/it/polpetta/libris/util/Coordinates.java b/src/main/java/com/tfederico/libris/util/Coordinates.java similarity index 89% rename from src/main/java/it/polpetta/libris/util/Coordinates.java rename to src/main/java/com/tfederico/libris/util/Coordinates.java index 431ca88..ac3efbf 100644 --- a/src/main/java/it/polpetta/libris/util/Coordinates.java +++ b/src/main/java/com/tfederico/libris/util/Coordinates.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.util; +package com.tfederico.libris.util; /** * Created by davide on 28/04/17. diff --git a/src/main/java/it/polpetta/libris/util/SSL/AbstractFactoryMethodSSL.java b/src/main/java/com/tfederico/libris/util/SSL/AbstractFactoryMethodSSL.java similarity index 90% rename from src/main/java/it/polpetta/libris/util/SSL/AbstractFactoryMethodSSL.java rename to src/main/java/com/tfederico/libris/util/SSL/AbstractFactoryMethodSSL.java index 85801d3..c19da80 100644 --- a/src/main/java/it/polpetta/libris/util/SSL/AbstractFactoryMethodSSL.java +++ b/src/main/java/com/tfederico/libris/util/SSL/AbstractFactoryMethodSSL.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.util.SSL; +package com.tfederico.libris.util.SSL; import javax.net.ssl.SSLContext; diff --git a/src/main/java/it/polpetta/libris/util/SSL/ISSLContextObtainer.java b/src/main/java/com/tfederico/libris/util/SSL/ISSLContextObtainer.java similarity index 79% rename from src/main/java/it/polpetta/libris/util/SSL/ISSLContextObtainer.java rename to src/main/java/com/tfederico/libris/util/SSL/ISSLContextObtainer.java index 536c39d..b69c8c4 100644 --- a/src/main/java/it/polpetta/libris/util/SSL/ISSLContextObtainer.java +++ b/src/main/java/com/tfederico/libris/util/SSL/ISSLContextObtainer.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.util.SSL; +package com.tfederico.libris.util.SSL; import javax.net.ssl.SSLContext; diff --git a/src/main/java/it/polpetta/libris/util/SSL/LetsEncryptSSLObtainer.java b/src/main/java/com/tfederico/libris/util/SSL/LetsEncryptSSLObtainer.java similarity index 99% rename from src/main/java/it/polpetta/libris/util/SSL/LetsEncryptSSLObtainer.java rename to src/main/java/com/tfederico/libris/util/SSL/LetsEncryptSSLObtainer.java index 42bd1e9..93f4651 100644 --- a/src/main/java/it/polpetta/libris/util/SSL/LetsEncryptSSLObtainer.java +++ b/src/main/java/com/tfederico/libris/util/SSL/LetsEncryptSSLObtainer.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.util.SSL; +package com.tfederico.libris.util.SSL; import javax.net.ssl.KeyManager; import javax.net.ssl.KeyManagerFactory; diff --git a/src/main/java/it/polpetta/libris/util/webSocket/ConcreteWebSocket.java b/src/main/java/com/tfederico/libris/util/webSocket/ConcreteWebSocket.java similarity index 93% rename from src/main/java/it/polpetta/libris/util/webSocket/ConcreteWebSocket.java rename to src/main/java/com/tfederico/libris/util/webSocket/ConcreteWebSocket.java index 9d53f71..19086e1 100644 --- a/src/main/java/it/polpetta/libris/util/webSocket/ConcreteWebSocket.java +++ b/src/main/java/com/tfederico/libris/util/webSocket/ConcreteWebSocket.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.util.webSocket; +package com.tfederico.libris.util.webSocket; import java.net.URI; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/util/webSocket/IWebSocket.java b/src/main/java/com/tfederico/libris/util/webSocket/IWebSocket.java similarity index 80% rename from src/main/java/it/polpetta/libris/util/webSocket/IWebSocket.java rename to src/main/java/com/tfederico/libris/util/webSocket/IWebSocket.java index 720c707..1de44e6 100644 --- a/src/main/java/it/polpetta/libris/util/webSocket/IWebSocket.java +++ b/src/main/java/com/tfederico/libris/util/webSocket/IWebSocket.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.util.webSocket; +package com.tfederico.libris.util.webSocket; import java.util.Observer; diff --git a/src/main/java/it/polpetta/libris/util/webSocket/WebSocketBuilder.java b/src/main/java/com/tfederico/libris/util/webSocket/WebSocketBuilder.java similarity index 94% rename from src/main/java/it/polpetta/libris/util/webSocket/WebSocketBuilder.java rename to src/main/java/com/tfederico/libris/util/webSocket/WebSocketBuilder.java index 0cb7b31..cc1bf0f 100644 --- a/src/main/java/it/polpetta/libris/util/webSocket/WebSocketBuilder.java +++ b/src/main/java/com/tfederico/libris/util/webSocket/WebSocketBuilder.java @@ -1,4 +1,4 @@ -package it.polpetta.libris.util.webSocket; +package com.tfederico.libris.util.webSocket; import java.net.URI; import java.util.ArrayList; diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearch.java b/src/main/java/it/polpetta/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearch.java deleted file mode 100644 index 73f638c..0000000 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearch.java +++ /dev/null @@ -1,22 +0,0 @@ -package it.polpetta.libris.opticalCharacterRecognition; - -import it.polpetta.libris.opticalCharacterRecognition.azure.AzureAbstractFactory; -import it.polpetta.libris.opticalCharacterRecognition.azure.contract.IAbstractAzureOcrFactoryReverseSearchProvider; -import it.polpetta.libris.opticalCharacterRecognition.ibm.IBMAbstractFactory; -import it.polpetta.libris.opticalCharacterRecognition.ibm.contract.IAbstractIBMOcrFactoryReverseSearchProvider; - -/** - * Created by zanna on 11/05/17. - */ -public class OpticalCharacterRecognitionSearch { - - private OpticalCharacterRecognitionSearch() {} - - public static IAbstractAzureOcrFactoryReverseSearchProvider getAzureServices(String subscriptionKey) { - return new AzureAbstractFactory(subscriptionKey); - } - - public static IAbstractIBMOcrFactoryReverseSearchProvider getIBMServices(String subscriptionKey) { - return new IBMAbstractFactory(subscriptionKey); - } -} diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/contract/IAbstractAzureOcrFactoryReverseSearchProvider.java b/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/contract/IAbstractAzureOcrFactoryReverseSearchProvider.java deleted file mode 100644 index 0e81855..0000000 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/contract/IAbstractAzureOcrFactoryReverseSearchProvider.java +++ /dev/null @@ -1,13 +0,0 @@ -package it.polpetta.libris.opticalCharacterRecognition.azure.contract; - -import it.polpetta.libris.contract.IQueryBuilder; -import it.polpetta.libris.opticalCharacterRecognition.azure.characterRecognition.URLAzureOcrSearcher; -import it.polpetta.libris.opticalCharacterRecognition.contract.IAbstractOcrFactoryReverseSearchProvider; - -/** - * Created by dpolonio on 10/05/17. - */ -public interface IAbstractAzureOcrFactoryReverseSearchProvider extends IAbstractOcrFactoryReverseSearchProvider { - - URLAzureOcrSearcher.Builder imageSearchBuildQuery(); -} diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/contract/IAzureOcrResult.java b/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/contract/IAzureOcrResult.java deleted file mode 100644 index a2dedcf..0000000 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/azure/contract/IAzureOcrResult.java +++ /dev/null @@ -1,10 +0,0 @@ -package it.polpetta.libris.opticalCharacterRecognition.azure.contract; - -import it.polpetta.libris.opticalCharacterRecognition.contract.IOcrSearchResult; - -/** - * Created by zanna on 11/05/17. - */ -public interface IAzureOcrResult extends IOcrSearchResult { - String getLanguage(); -} diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/IOcrQueryBuilder.java b/src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/IOcrQueryBuilder.java deleted file mode 100644 index 45bb987..0000000 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/contract/IOcrQueryBuilder.java +++ /dev/null @@ -1,8 +0,0 @@ -package it.polpetta.libris.opticalCharacterRecognition.contract; - -import it.polpetta.libris.contract.IQueryBuilder; - -/** - * Created by zanna on 08/05/17. - */ -public interface IOcrQueryBuilder extends IQueryBuilder {} diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/contract/IAbstractIBMOcrFactoryReverseSearchProvider.java b/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/contract/IAbstractIBMOcrFactoryReverseSearchProvider.java deleted file mode 100644 index d953abe..0000000 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/contract/IAbstractIBMOcrFactoryReverseSearchProvider.java +++ /dev/null @@ -1,12 +0,0 @@ -package it.polpetta.libris.opticalCharacterRecognition.ibm.contract; - -import it.polpetta.libris.opticalCharacterRecognition.contract.IAbstractOcrFactoryReverseSearchProvider; -import it.polpetta.libris.opticalCharacterRecognition.ibm.characterRecognition.URLIBMOcrSearcher; - -/** - * Created by dpolonio on 10/05/17. - */ -public interface IAbstractIBMOcrFactoryReverseSearchProvider extends IAbstractOcrFactoryReverseSearchProvider { - - URLIBMOcrSearcher.Builder imageSearchBuildQuery(); -} diff --git a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrResult.java b/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrResult.java deleted file mode 100644 index c2b65b0..0000000 --- a/src/main/java/it/polpetta/libris/opticalCharacterRecognition/ibm/contract/IIBMOcrResult.java +++ /dev/null @@ -1,10 +0,0 @@ -package it.polpetta.libris.opticalCharacterRecognition.ibm.contract; - -import it.polpetta.libris.opticalCharacterRecognition.contract.IOcrSearchResult; - -/** - * Created by zanna on 11/05/17. - */ -public interface IIBMOcrResult extends IOcrSearchResult { - String getLanguage(); -} diff --git a/src/test/java/com/tfederico/libris/image/CustomClassifierTest.java b/src/test/java/com/tfederico/libris/image/CustomClassifierTest.java new file mode 100644 index 0000000..7dee79a --- /dev/null +++ b/src/test/java/com/tfederico/libris/image/CustomClassifierTest.java @@ -0,0 +1,41 @@ +package com.tfederico.libris.image; + +import com.tfederico.libris.image.ibm.contract.IIBMCustomClassifierUtility; +import com.tfederico.libris.image.ibm.visualRecognition.IBMCustomClassifierUtility; +import com.ibm.watson.developer_cloud.visual_recognition.v3.model.Classifier; +import org.junit.Test; + +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.HashMap; + +public class CustomClassifierTest { + + @Test + public static void createCustomClassifier(){ + + IBMCustomClassifierUtility.setSubscriptionKey(""); + IIBMCustomClassifierUtility customClassifierUtility = new IBMCustomClassifierUtility(); + + HashMap positiveSamples = new HashMap<>(); + ArrayList negativeSamples = new ArrayList<>(); + + + positiveSamples.put("Pearl", "/home/federico/Desktop/watson_innovation/girl_with_pearl_earing/pearl.zip"); + negativeSamples.add("/home/federico/Desktop/watson_innovation/goldfinch/goldfinch.zip"); + + Classifier vc = null; + try { + vc = customClassifierUtility.createClassifier("pearl", positiveSamples, negativeSamples); + } catch (FileNotFoundException e) { + + org.junit.Assert.assertTrue(false); + } + + String id = vc.getClassifierId(); + + + org.junit.Assert.assertEquals(id, customClassifierUtility.getClassifiersList().get(0).getClassifierId()); + + } +} diff --git a/src/test/java/it/polpetta/libris/image/ReverseImageSearchTest.java b/src/test/java/com/tfederico/libris/image/ReverseImageSearchTest.java similarity index 90% rename from src/test/java/it/polpetta/libris/image/ReverseImageSearchTest.java rename to src/test/java/com/tfederico/libris/image/ReverseImageSearchTest.java index 9f06cf5..30daa63 100644 --- a/src/test/java/it/polpetta/libris/image/ReverseImageSearchTest.java +++ b/src/test/java/com/tfederico/libris/image/ReverseImageSearchTest.java @@ -1,10 +1,10 @@ -package it.polpetta.libris.image; +package com.tfederico.libris.image; -import it.polpetta.libris.image.azure.contract.IAzureImageSearchResult; -import it.polpetta.libris.image.google.contract.IGoogleImageSearchResult; -import it.polpetta.libris.image.ibm.contract.IIBMImageSearchResult; +import com.tfederico.libris.image.contract.IImageSearchResult; +import com.tfederico.libris.image.google.contract.IGoogleImageSearchResult; +import com.tfederico.libris.image.azure.contract.IAzureImageSearchResult; +import com.tfederico.libris.image.ibm.contract.IIBMImageSearchResult; import junit.framework.TestCase; -import it.polpetta.libris.image.contract.IImageSearchResult; import org.junit.Assert; import org.junit.Ignore; diff --git a/src/test/java/it/polpetta/libris/image/azure/imageRecognition/AzureImageSearchResultTest.java b/src/test/java/com/tfederico/libris/image/azure/imageRecognition/AzureImageSearchResultTest.java similarity index 87% rename from src/test/java/it/polpetta/libris/image/azure/imageRecognition/AzureImageSearchResultTest.java rename to src/test/java/com/tfederico/libris/image/azure/imageRecognition/AzureImageSearchResultTest.java index cf63888..b9dd312 100644 --- a/src/test/java/it/polpetta/libris/image/azure/imageRecognition/AzureImageSearchResultTest.java +++ b/src/test/java/com/tfederico/libris/image/azure/imageRecognition/AzureImageSearchResultTest.java @@ -1,16 +1,12 @@ -package it.polpetta.libris.image.azure.imageRecognition; +package com.tfederico.libris.image.azure.imageRecognition; -import it.polpetta.libris.image.azure.contract.IAzureImageSearchResult; -import it.polpetta.libris.image.google.contract.IGoogleImageSearchResult; -import it.polpetta.libris.image.google.hmtlImageSearch.GoogleImageSearchResult; +import com.tfederico.libris.image.azure.contract.IAzureImageSearchResult; import junit.framework.TestCase; import org.junit.Assert; import org.junit.Test; import java.util.ArrayList; -import static org.junit.Assert.*; - /** * Created by zanna on 11/05/17. */ diff --git a/src/test/java/it/polpetta/libris/image/google/hmtlImageSearch/GoogleImageSearchResultTest.java b/src/test/java/com/tfederico/libris/image/google/hmtlImageSearch/GoogleImageSearchResultTest.java similarity index 95% rename from src/test/java/it/polpetta/libris/image/google/hmtlImageSearch/GoogleImageSearchResultTest.java rename to src/test/java/com/tfederico/libris/image/google/hmtlImageSearch/GoogleImageSearchResultTest.java index a29b2ab..5950557 100644 --- a/src/test/java/it/polpetta/libris/image/google/hmtlImageSearch/GoogleImageSearchResultTest.java +++ b/src/test/java/com/tfederico/libris/image/google/hmtlImageSearch/GoogleImageSearchResultTest.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.image.google.hmtlImageSearch; +package com.tfederico.libris.image.google.hmtlImageSearch; -import it.polpetta.libris.image.google.contract.IGoogleImageSearchResult; +import com.tfederico.libris.image.google.contract.IGoogleImageSearchResult; import junit.framework.TestCase; import org.junit.Assert; import org.junit.Test; diff --git a/src/test/java/it/polpetta/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearchTest.java b/src/test/java/com/tfederico/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearchTest.java similarity index 83% rename from src/test/java/it/polpetta/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearchTest.java rename to src/test/java/com/tfederico/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearchTest.java index c0e4084..62fde97 100644 --- a/src/test/java/it/polpetta/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearchTest.java +++ b/src/test/java/com/tfederico/libris/opticalCharacterRecognition/OpticalCharacterRecognitionSearchTest.java @@ -1,7 +1,6 @@ -package it.polpetta.libris.opticalCharacterRecognition; +package com.tfederico.libris.opticalCharacterRecognition; -import it.polpetta.libris.opticalCharacterRecognition.azure.contract.IAzureOcrResult; -import it.polpetta.libris.opticalCharacterRecognition.ibm.contract.IIBMOcrResult; +import com.tfederico.libris.opticalCharacterRecognition.azure.contract.IAzureOcrResult; import junit.framework.TestCase; import org.junit.Assert; @@ -29,7 +28,7 @@ public void testAzureOcrSearchReturnNotNull() { } } - public void testIBMOcrSearchReturnNotNull() { + /*public void testIBMOcrSearchReturnNotNull() { try { URL url = new URL("https://onepagelove-wpengine.netdna-ssl.com/wp-content/uploads/2016/10/opl-small-1.jpg"); String key = System.getenv("WATSON_KEY"); @@ -45,6 +44,6 @@ public void testIBMOcrSearchReturnNotNull() { e.printStackTrace(); Assert.assertTrue(false); } - } + }*/ } \ No newline at end of file diff --git a/src/test/java/it/polpetta/libris/opticalCharacterRecognition/azure/characterRecognition/IBMOcrResultTest.java b/src/test/java/com/tfederico/libris/opticalCharacterRecognition/azure/characterRecognition/IBMOcrResultTest.java similarity index 89% rename from src/test/java/it/polpetta/libris/opticalCharacterRecognition/azure/characterRecognition/IBMOcrResultTest.java rename to src/test/java/com/tfederico/libris/opticalCharacterRecognition/azure/characterRecognition/IBMOcrResultTest.java index 6e01154..c24d0c8 100644 --- a/src/test/java/it/polpetta/libris/opticalCharacterRecognition/azure/characterRecognition/IBMOcrResultTest.java +++ b/src/test/java/com/tfederico/libris/opticalCharacterRecognition/azure/characterRecognition/IBMOcrResultTest.java @@ -1,6 +1,6 @@ -package it.polpetta.libris.opticalCharacterRecognition.azure.characterRecognition; +package com.tfederico.libris.opticalCharacterRecognition.azure.characterRecognition; -import it.polpetta.libris.opticalCharacterRecognition.azure.contract.IAzureOcrResult; +import com.tfederico.libris.opticalCharacterRecognition.azure.contract.IAzureOcrResult; import junit.framework.TestCase; import org.junit.Assert; import org.junit.Test;