org.deepamehta.plugins.wikidata
Class WikidataSearchPlugin

Show UML class diagram
java.lang.Object
  extended by de.deepamehta.core.osgi.PluginActivator
      extended by org.deepamehta.plugins.wikidata.WikidataSearchPlugin
All Implemented Interfaces:
de.deepamehta.core.osgi.PluginContext, de.deepamehta.core.service.PluginService, WikidataSearchService, org.osgi.framework.BundleActivator

public class WikidataSearchPlugin
extends de.deepamehta.core.osgi.PluginActivator
implements WikidataSearchService

A very basic plugin to search and explore wikidata. Allows to turn a \"Wikidata Search Result Entity\" (of type=property) into DeepaMehta 4 AssociationTypes.

Version:
0.0.5-SNAPSHOT
Author:
Malte Reißig ()

Field Summary
private  de.deepamehta.plugins.accesscontrol.service.AccessControlService acService
           
private  String CHARSET
           
private  String DEEPAMEHTA_VERSION
           
private  String DM_WEBBROWSER_URL
           
private  String LANG_EN
           
private  Logger log
           
private  String WD_CHECK_ENTITY_CLAIMS_ENDPOINT
           
private  String WD_COMMONS_AUTHOR_HTML_URI
           
private  String WD_COMMONS_LICENSE_HTML_URI
           
private  String WD_COMMONS_MEDIA_DESCR_TYPE_URI
           
private  String WD_COMMONS_MEDIA_NAME_TYPE_URI
           
private  String WD_COMMONS_MEDIA_PATH_TYPE_URI
           
private  String WD_COMMONS_MEDIA_TYPE_URI
           
private  String WD_ENTITY_BASE_URI
           
private  String WD_ENTITY_CLAIM_EDGE
           
private  String WD_GET_ENTITY_ENDPOINT
           
private  String WD_LANGUAGE_DATA_URI_PREFIX
           
private  String WD_LANGUAGE_URI
           
private  String WD_SEARCH_BUCKET_URI
           
private  String WD_SEARCH_ENTITIES_ENDPOINT
           
private  String WD_SEARCH_ENTITIY_DATA_URI_PREFIX
           
private  String WD_SEARCH_ENTITY_ALIAS_URI
           
private  String WD_SEARCH_ENTITY_DESCR_URI
           
private  String WD_SEARCH_ENTITY_LABEL_URI
           
private  String WD_SEARCH_ENTITY_ORDINAL_NR
           
private  String WD_SEARCH_ENTITY_TYPE_ITEM
           
private  String WD_SEARCH_ENTITY_TYPE_PROPERTY
           
private  String WD_SEARCH_ENTITY_TYPE_URI
           
private  String WD_SEARCH_ENTITY_URI
           
private  String WD_SEARCH_QUERY_URI
           
private  String WD_TEXT_TYPE_URI
           
private  String WIKIDATA_ENTITY_URL_PREFIX
           
private  String WIKIDATA_PROPERTY_ENTITY_URL_PREFIX
           
private  String WIKIDATA_TYPE_SEARCH_VERSION
           
private  String WS_WIKIDATA_URI
           
 
Fields inherited from class de.deepamehta.core.osgi.PluginActivator
bundle, dms
 
Constructor Summary
WikidataSearchPlugin()
           
 
Method Summary
 void assignToWikidataWorkspace(de.deepamehta.core.Topic topic)
           
private  boolean associationExists(String edge_type, de.deepamehta.core.Topic item, de.deepamehta.core.Topic user)
           
private  de.deepamehta.core.model.ChildTopicsModel buildWikidataEntityModel(org.codehaus.jettison.json.JSONObject entity_response, String lang)
           
 de.deepamehta.core.Topic createWikidataAssociationType(long id)
          This method creates a DeepaMehta Association Type given a \"Wikidata Search Entity\" (of type=property).
private  de.deepamehta.core.Association createWikidataClaimEdge(String claim_guid, de.deepamehta.core.Topic one, de.deepamehta.core.Topic two, de.deepamehta.core.Topic property)
           
private  de.deepamehta.core.Topic createWikidataSearchEntity(org.codehaus.jettison.json.JSONObject entity_response, String lang)
           
private  void enrichAboutWikimediaCommonsMetaData(de.deepamehta.core.model.ChildTopicsModel model, String fileName)
           
 de.deepamehta.core.Topic getOrCreateWikidataEntity(String entityId, String language_code)
          This method gets (or creates) a \"Wikidata Search Entity\" (in DeepaMehta 4) by its ID (wikidata).
private  de.deepamehta.core.Topic getOrCreateWikidataText(String value, String lang)
           
private  de.deepamehta.core.Topic getOrCreateWikimediaCommonsMediaTopic(String fileName)
           
 de.deepamehta.core.service.ResultList<de.deepamehta.core.RelatedAssociation> getTopicRelatedAssociations(long topicId)
          This method retrieves all associated associations of type "Wikidata Claim" for any given \"Wikidata Search Entity\" (of type=property).
 de.deepamehta.core.Topic loadClaimsAndRelatedWikidataItems(long topicId, String language_option)
          This method loads all claims (with language specific values) for a wikidata-entity into DeepaMehta 4.
private  void processWikidataClaims(String json_result, de.deepamehta.core.Topic wikidataItem, String language_code)
           
private  void processWikidataEntitySearch(String json_result, de.deepamehta.core.model.ChildTopicsModel search_bucket, String type, String lang)
           
 de.deepamehta.core.Topic searchWikidataEntity(String query, String lang, String type)
          This method searches all wikidata entities by text and the given language code.
private  de.deepamehta.core.Topic updateWikidataEntity(de.deepamehta.core.Topic entity, org.codehaus.jettison.json.JSONObject entity_response, String lang)
           
 
Methods inherited from class de.deepamehta.core.osgi.PluginActivator
getBundleContext, getPluginName, getStaticResource, getUri, init, postInstall, publishDirectory, serviceArrived, serviceGone, setCoreService, shutdown, start, stop, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

log

private Logger log

DEEPAMEHTA_VERSION

private final String DEEPAMEHTA_VERSION
See Also:
Constant Field Values

WIKIDATA_TYPE_SEARCH_VERSION

private final String WIKIDATA_TYPE_SEARCH_VERSION
See Also:
Constant Field Values

CHARSET

private final String CHARSET
See Also:
Constant Field Values

DM_WEBBROWSER_URL

private final String DM_WEBBROWSER_URL
See Also:
Constant Field Values

WS_WIKIDATA_URI

private final String WS_WIKIDATA_URI
See Also:
Constant Field Values

WD_SEARCH_BUCKET_URI

private final String WD_SEARCH_BUCKET_URI
See Also:
Constant Field Values

WD_SEARCH_QUERY_URI

private final String WD_SEARCH_QUERY_URI
See Also:
Constant Field Values

WD_LANGUAGE_URI

private final String WD_LANGUAGE_URI
See Also:
Constant Field Values

WD_LANGUAGE_DATA_URI_PREFIX

private final String WD_LANGUAGE_DATA_URI_PREFIX
See Also:
Constant Field Values

WD_SEARCH_ENTITY_URI

private final String WD_SEARCH_ENTITY_URI
See Also:
Constant Field Values

WD_SEARCH_ENTITY_LABEL_URI

private final String WD_SEARCH_ENTITY_LABEL_URI
See Also:
Constant Field Values

WD_SEARCH_ENTITY_TYPE_URI

private final String WD_SEARCH_ENTITY_TYPE_URI
See Also:
Constant Field Values

WD_SEARCH_ENTITY_ORDINAL_NR

private final String WD_SEARCH_ENTITY_ORDINAL_NR
See Also:
Constant Field Values

WD_SEARCH_ENTITY_DESCR_URI

private final String WD_SEARCH_ENTITY_DESCR_URI
See Also:
Constant Field Values

WD_SEARCH_ENTITY_ALIAS_URI

private final String WD_SEARCH_ENTITY_ALIAS_URI
See Also:
Constant Field Values

WD_SEARCH_ENTITIY_DATA_URI_PREFIX

private final String WD_SEARCH_ENTITIY_DATA_URI_PREFIX
See Also:
Constant Field Values

WD_TEXT_TYPE_URI

private final String WD_TEXT_TYPE_URI
See Also:
Constant Field Values

WD_COMMONS_MEDIA_TYPE_URI

private final String WD_COMMONS_MEDIA_TYPE_URI
See Also:
Constant Field Values

WD_COMMONS_MEDIA_NAME_TYPE_URI

private final String WD_COMMONS_MEDIA_NAME_TYPE_URI
See Also:
Constant Field Values

WD_COMMONS_MEDIA_PATH_TYPE_URI

private final String WD_COMMONS_MEDIA_PATH_TYPE_URI
See Also:
Constant Field Values

WD_COMMONS_MEDIA_DESCR_TYPE_URI

private final String WD_COMMONS_MEDIA_DESCR_TYPE_URI
See Also:
Constant Field Values

WD_COMMONS_AUTHOR_HTML_URI

private final String WD_COMMONS_AUTHOR_HTML_URI
See Also:
Constant Field Values

WD_COMMONS_LICENSE_HTML_URI

private final String WD_COMMONS_LICENSE_HTML_URI
See Also:
Constant Field Values

WD_ENTITY_CLAIM_EDGE

private final String WD_ENTITY_CLAIM_EDGE
See Also:
Constant Field Values

WD_SEARCH_ENTITIES_ENDPOINT

private final String WD_SEARCH_ENTITIES_ENDPOINT
See Also:
Constant Field Values

WD_CHECK_ENTITY_CLAIMS_ENDPOINT

private final String WD_CHECK_ENTITY_CLAIMS_ENDPOINT
See Also:
Constant Field Values

WD_GET_ENTITY_ENDPOINT

private final String WD_GET_ENTITY_ENDPOINT
See Also:
Constant Field Values

WD_SEARCH_ENTITY_TYPE_PROPERTY

private final String WD_SEARCH_ENTITY_TYPE_PROPERTY
See Also:
Constant Field Values

WD_SEARCH_ENTITY_TYPE_ITEM

private final String WD_SEARCH_ENTITY_TYPE_ITEM
See Also:
Constant Field Values

WD_ENTITY_BASE_URI

private final String WD_ENTITY_BASE_URI
See Also:
Constant Field Values

LANG_EN

private final String LANG_EN
See Also:
Constant Field Values

WIKIDATA_ENTITY_URL_PREFIX

private final String WIKIDATA_ENTITY_URL_PREFIX
See Also:
Constant Field Values

WIKIDATA_PROPERTY_ENTITY_URL_PREFIX

private final String WIKIDATA_PROPERTY_ENTITY_URL_PREFIX
See Also:
Constant Field Values

acService

private de.deepamehta.plugins.accesscontrol.service.AccessControlService acService
Constructor Detail

WikidataSearchPlugin

public WikidataSearchPlugin()
Method Detail

searchWikidataEntity

public de.deepamehta.core.Topic searchWikidataEntity(String query,
                                                     String lang,
                                                     String type)
Description copied from interface: WikidataSearchService
This method searches all wikidata entities by text and the given language code.

Specified by:
searchWikidataEntity in interface WikidataSearchService

getOrCreateWikidataEntity

public de.deepamehta.core.Topic getOrCreateWikidataEntity(String entityId,
                                                          String language_code)
Description copied from interface: WikidataSearchService
This method gets (or creates) a \"Wikidata Search Entity\" (in DeepaMehta 4) by its ID (wikidata). Updates values of the given topic if this wikidata-entity was already imported before.

Specified by:
getOrCreateWikidataEntity in interface WikidataSearchService

loadClaimsAndRelatedWikidataItems

public de.deepamehta.core.Topic loadClaimsAndRelatedWikidataItems(long topicId,
                                                                  String language_option)
Description copied from interface: WikidataSearchService
This method loads all claims (with language specific values) for a wikidata-entity into DeepaMehta 4.

Specified by:
loadClaimsAndRelatedWikidataItems in interface WikidataSearchService

createWikidataAssociationType

public de.deepamehta.core.Topic createWikidataAssociationType(long id)
Description copied from interface: WikidataSearchService
This method creates a DeepaMehta Association Type given a \"Wikidata Search Entity\" (of type=property).

Specified by:
createWikidataAssociationType in interface WikidataSearchService

getTopicRelatedAssociations

public de.deepamehta.core.service.ResultList<de.deepamehta.core.RelatedAssociation> getTopicRelatedAssociations(long topicId)
Description copied from interface: WikidataSearchService
This method retrieves all associated associations of type "Wikidata Claim" for any given \"Wikidata Search Entity\" (of type=property).

Specified by:
getTopicRelatedAssociations in interface WikidataSearchService

processWikidataEntitySearch

private void processWikidataEntitySearch(String json_result,
                                         de.deepamehta.core.model.ChildTopicsModel search_bucket,
                                         String type,
                                         String lang)

createWikidataSearchEntity

private de.deepamehta.core.Topic createWikidataSearchEntity(org.codehaus.jettison.json.JSONObject entity_response,
                                                            String lang)

updateWikidataEntity

private de.deepamehta.core.Topic updateWikidataEntity(de.deepamehta.core.Topic entity,
                                                      org.codehaus.jettison.json.JSONObject entity_response,
                                                      String lang)

buildWikidataEntityModel

private de.deepamehta.core.model.ChildTopicsModel buildWikidataEntityModel(org.codehaus.jettison.json.JSONObject entity_response,
                                                                           String lang)

processWikidataClaims

private void processWikidataClaims(String json_result,
                                   de.deepamehta.core.Topic wikidataItem,
                                   String language_code)

createWikidataClaimEdge

private de.deepamehta.core.Association createWikidataClaimEdge(String claim_guid,
                                                               de.deepamehta.core.Topic one,
                                                               de.deepamehta.core.Topic two,
                                                               de.deepamehta.core.Topic property)

getOrCreateWikidataText

private de.deepamehta.core.Topic getOrCreateWikidataText(String value,
                                                         String lang)

getOrCreateWikimediaCommonsMediaTopic

private de.deepamehta.core.Topic getOrCreateWikimediaCommonsMediaTopic(String fileName)

enrichAboutWikimediaCommonsMetaData

private void enrichAboutWikimediaCommonsMetaData(de.deepamehta.core.model.ChildTopicsModel model,
                                                 String fileName)

assignToWikidataWorkspace

public void assignToWikidataWorkspace(de.deepamehta.core.Topic topic)
Specified by:
assignToWikidataWorkspace in interface WikidataSearchService

associationExists

private boolean associationExists(String edge_type,
                                  de.deepamehta.core.Topic item,
                                  de.deepamehta.core.Topic user)


Copyright © 2015. All Rights Reserved.