Hi everybody,
We have a new service : WikiDataFetcher . This service grab data from wikis website ( for now wikidata )
It's still work in progress, but there is already few functions ( getDescription(), getTime(), getUrl(), etc .. )
wikidata store data by entities with an ID , by exemple, Adam Sandler have the ID Q132952 .
each entity contain several elements :
To use wikiDataFetcher , you will need an ID for the properties , but not for the label . the better thing is to show you a demo file ! see at the bottom of this post !
There is a lot of possibily with this service ; It's possible to use it with AIML so when the bot don't know the answer, it can have a look on the web to find it , wikidata is multilingual so the description can bi returned in english, but also in french, italian, spanish ...
It's possible to ask the bot " what is the french word for duck" and get the answer " canard "
I've not writed the code for that yet, but after, it will be possible to use aliases (sun = helios = sol ) and more ...
so, here is the python file to test it ( i paste it, i don't remember how to link it from my home folder ! )
I'll try to make a video to show you how to use it with a chatbot !
For now the right method must be called to get data, but in the future, there will be a global method (getData()) that will automaticly use the right method .
[home/beetlejuice/wikiDataFetcher_demo.py]
wdf = Runtime.createAndStart("wikiDataFetcher", "WikiDataFetcher")
query = "Eiffel Tower"
wdf.setWebSite("enwiki")
# Display the label
wdf.setLanguage("en")
print "Label from query : " + wdf.getLabel(query)
# Set language to english
wdf.setLanguage("en")
# Display the description
print "Description EN : " + wdf.getDescription(query)
# Change language to French and display again the description
wdf.setLanguage("fr")
print "Description FR : " + wdf.getDescription(query)
# Display the identification number of the document
print "Identification number of the Eiffel Tower is : " + wdf.getId(query)
# Display the description from document identification number ( South pole )
wdf.setLanguage("en")
print "Label from ID Q933 is : " + wdf.getLabelById("Q933")
# Display the description from document identification number ( South pole )
wdf.setLanguage("en")
print "Description from ID Q933 : " + wdf.getDescriptionById("Q933")
# Display Date or time (day, month, year, hour, minute, second, after, before
# This one don't work for the Eiffel Tower so : Not Found !
ID = "P569"
print "BirthDate : " + wdf.getTime(query,ID,"day") +"/" + wdf.getTime(query,ID,"month") + "/" + wdf.getTime(query,ID,"year")
# Display Date or time (day, month, year, hour, minute, second, after, before
ID = "P571"
print "Built in : " + wdf.getTime(query,ID,"year")
# Display a property ( high of the eiffel tower )2048
print "high : " + wdf.getQuantity(query,"P2048")
# Display the official website url
print "Url : " + wdf.getUrl(query,"P856")
Brains!
Zombie process have started seeking out Brains!!!.... Brains!!! Brains!!!!.....
This is great stuff, it's on the list to allow for an in-line OOB response tag... I think it would make the ProgramAB + WikiDataFetcher integration much much easier.
Great stuff!
Great Work Beetle !!! This is
Great Work Beetle !!!
This is a wonderful service.. of all the backend data services I think I love the idea of Wikipedia the most !!
Thx guys :D Now, it's not
Thx guys :D
Now, it's not needed to capitalyse the firts letters of the queries, it's done automaticly . ( eiffel tower work as well than Eiffel Tower)
There is also a new function called getData(String query, String ID) that can collect Value from different datatype. But there is still some old , because is the value dataType is "time", getData() will return by exemple
9/9/1968 - 00H00m
So it's more usefull to use getDate(String query, String ID, String what) because "what" can be day,month,year,hour,minute or second . So it's possible to get only the year or display 09/09/2012 or 2012/09/09 ...
it's will be the same for the globe coordinates value that will be able to return longitude, latitude ...( not done yet .
I see it ! ...funny that you
I see it ! ...
funny that you put it in and figured out the serviceData.json stuff, and now no one will have to update that file anymore (Yay!)..
Looks good, I took the liberty of getting an icon, but fill free to change it if you want
Below you will see what replaced the serviceData.json. Now each service has a static method called getMetaData. Within this method, you can add a description, categories, Peers & dependencies.. heh I can see I missed your dependency .. didn't know what it was before, but I'll add it now...