[Developers] freebase-suggest modification

Faye Li faye at metaweb.com
Fri May 16 18:32:38 UTC 2008


Hi,

The fact that queries with type matching return results when they 
shouldn't is a known bug (as mentioned yesterday -- fix is on the way!).

As for the difference between "autocomplete" and "freebase suggest" 
results -- The default "strictness" of type matching is different in 
autocomplete and search. So when you leave the explicit "strict=..." 
clause out of the service call, you are essentially making different 
queries even though they look the same. When absent, "strict" defaults 
to "true" for search (it's a must), and "should" for autocomplete (it's 
preferred).

-- Faye


Zodiac Seven wrote:
> Another thing, I notice that if use this url:
>
> http://www.freebase.com/api/service/search?callback=jsonp1210929592444&type=%2Fcommon%2Ftopic&start=0&limit=3&prefix=iuytui 
> <http://www.freebase.com/api/service/search?callback=jsonp1210929592444&type=%2Fcommon%2Ftopic&start=0&limit=3&prefix=iuytui>
>
> The 'iuytui' is junk and if I try it at freebase.com 
> <http://freebase.com>'s auto complete search I get no matches, yet the 
> above search (used by freebase suggest) returns:
>
> jsonp1210929592444({
> "status": "200 OK",
> "query": {
> "start": 0,
> "prefix": "iuytui",
> "limit": 3,
> "escape": "html",
> "query": "",
> "type": "/common/topic"
> },
> "code": "/api/status/ok",
> "result": [
> {
> "name": "Race",
> "image": {
> "id": "/guid/9202a8c04000641f80000000049908cd"
> },
> "alias": [],
> "article": {
> "id": "/guid/9202a8c04000641f80000000001a8085"
> },
> "guid": "#9202a8c04000641f80000000001a807f",
> "type": [
> {
> "id": "/common/topic",
> "name": "Topic"
> }
> ],
> "id": "/guid/9202a8c04000641f80000000001a807f"
> },
> {
> "name": "Federal Information Processing Standard",
> "image": null,
> "alias": [],
> "article": {
> "id": "/guid/9202a8c04000641f8000000000017bae"
> },
> "guid": "#9202a8c04000641f8000000000017ba6",
> "type": [
> {
> "id": "/common/topic",
> "name": "Topic"
> }
> ],
> "id": "/en/federal_information_processing_standard"
> },
> {
> ...
>
> Any idea how I can fix it to return relevant suggestions like on your 
> site
>
> On 5/16/08, *Dae Park* <daepark at metaweb.com 
> <mailto:daepark at metaweb.com>> wrote:
>
>     freebase-suggest uses the search API (http://www.freebase.com/view/
>     guid/9202a8c04000641f8000000006ad84c9).The search API only returns
>     topic, type, image and article ids (e.g. http://www.freebase.com/api/
>     service/search?query=w&type=/people/person). It does not return any
>     wikipedia keys in which you can filter on.
>
>     The freebase-suggest library (freebase-controls.js) also contains a
>     "select" control (like the html select tag) that does do a MQL query
>     to get all instances of a particular type. Take a look at
>     SelectControl (in freebase-controls.js) on how you can pass an
>     arbitrary MQL query and modify freebase-suggest to invoke the mqlread
>     service instead of the search service.
>
>
>     -dae
>
>
>
>
>     On May 15, 2008, at 12:41 PM, Faye Li wrote:
>
>     > Freebase suggest has a filter option (see fbs.filter) for filtering
>     > items out of the result list. That sounds like the most promising
>     > place
>     > to start digging. I'm hoping someone who has worked directly
>     with that
>     > area can chime in.
>     >
>     > -- Faye
>     >
>     >
>     > Zodiac Seven wrote:
>     >> Yes, that sounds like what I need, where should i start modifying
>     >> freebase suggest to do this?
>     >>
>     >> On 5/16/08, *Faye Li* <faye at metaweb.com
>     <mailto:faye at metaweb.com> <mailto:faye at metaweb.com
>     <mailto:faye at metaweb.com>>>
>     >> wrote:
>     >>
>     >>     Since many articles are entered/edited by the Freebase
>     community
>     >>     and not
>     >>     imported from Wikipedia, Wikipedia keys are a better indicator
>     >> for
>     >>     identifying those that are. Sounds like the query you want is
>     >>     asking for
>     >>     only things that have wiki keys.
>     >>
>     >>     -- Faye
>     >>
>     >>
>     >>     Zodiac Seven wrote:
>     >>> Thanks,
>     >>>
>     >>> Would there be a way to tweak freebase suggest to only show topics
>     >>> which exist in wikipedia - I guess I have to not get results which
>     >>> have article:null? I can't find the MQL query which it uses
>     >>     anywhere...
>     >>>
>     >>> On 5/15/08, *Brian Karlak* <zenkat at metaweb.com
>     <mailto:zenkat at metaweb.com>
>     >>     <mailto:zenkat at metaweb.com <mailto:zenkat at metaweb.com>>
>     >>
>     >>> <mailto:zenkat at metaweb.com <mailto:zenkat at metaweb.com>
>     <mailto:zenkat at metaweb.com <mailto:zenkat at metaweb.com>>>> wrote:
>     >>>
>     >>>
>     >>>     The wikipedia title and ID are stored as the /wikipedia/en and
>     >>>     /wikipedia/en_id keys on the topic, and can be retrieved
>     by the
>     >>>     following MQL:
>     >>>
>     >>>       {
>     >>>         "a:key" : [
>     >>>           {
>     >>>             "namespace" : "/wikipedia/en",
>     >>>             "value" : null
>     >>>           }
>     >>>         ],
>     >>>         "b:key" : {
>     >>>           "namespace" : "/wikipedia/en_id",
>     >>>           "value" : null
>     >>>         },
>     >>>         "guid" : "#9202a8c04000641f800000000009216a"
>     >>>       }
>     >>>
>     >>>     Currently, all valid titles and redirects for an article are
>     >>>     stored in /wikipedia/en.  The /wikipedia/en_id key, however,
>     >>>     should point to the most recent wikipedia ID for the
>     topic.  You
>     >>>     can access the wikipedia page with this ID using the
>     >>     following URL:
>     >>>
>     >>>     http://en.wikipedia.org/wiki/index.html?curid=82976
>     >>>
>     >>>     Brian
>     >>>
>     >>>     On May 15, 2008, at 4:11 AM, Zodiac Seven wrote:
>     >>>
>     >>>>     Okay, i guess i will make the results var global and
>     access it
>     >>>>     from the callback.
>     >>>>
>     >>>>     Is there a freebase api to get the name of the article in
>     >>     wikipedia?
>     >>>>     so if I have the id as "/en/taj_mahal" and the guid as
>     >>>>     "#9202a8c04000641f800000000009216a", name as "Taj Mahal"
>     >>>>     I guess there must be a way to find out the wikipedia article
>     >>>>     name which is http://en.wikipedia.org/wiki/Taj_mahal
>     >>>>
>     >>>>     On 5/15/08, *Dae Park* <daepark at metaweb.com
>     <mailto:daepark at metaweb.com>
>     >>     <mailto:daepark at metaweb.com <mailto:daepark at metaweb.com>>
>     >>
>     >>>>     <mailto:daepark at metaweb.com <mailto:daepark at metaweb.com>
>     <mailto:daepark at metaweb.com <mailto:daepark at metaweb.com>>>>
>     >>     wrote:
>     >>>>
>     >>>>         I am unaware of any methods invoking something cross
>     domain
>     >>>>         synchronously. Even if it's possible, I doubt you
>     want the
>     >>>>         browser to
>     >>>>         be "blocked" while you are waiting for your response.
>     >>>>
>     >>>>
>     >>>>         -dae
>     >>>>
>     >>>>
>     >>>>
>     >>>>         On May 14, 2008, at 8:25 AM, Zodiac Seven wrote:
>     >>>>
>     >>>>> Dae,
>     >>>>>
>     >>>>> $.ajax is using a async callback too. Isn't there an
>     >>>>         approach which
>     >>>>> will
>     >>>>> work synchronously like XmlHttpRequest?
>     >>>>>
>     >>>>> On 5/14/08, Dae Park <daepark at metaweb.com
>     <mailto:daepark at metaweb.com>
>     >>     <mailto:daepark at metaweb.com <mailto:daepark at metaweb.com>>
>     >>
>     >>>>         <mailto:daepark at metaweb.com <mailto:daepark at metaweb.com>
>     >>     <mailto:daepark at metaweb.com <mailto:daepark at metaweb.com>>>>
>     wrote:
>     >>>>>>
>     >>>>>> You should be able to $.ajax with "jsonp" as the
>     >>     dataType to
>     >>>>>> accomplish what you want.
>     >>>>>>
>     >>>>>> -dae
>     >>>>>>
>     >>>>>>
>     >>>>>>
>     >>>>>> On May 13, 2008, at 11:09 AM, Zodiac Seven wrote:
>     >>>>>>
>     >>>>>>> This is more of a javascript question then a
>     >>     freebase one but
>     >>>>>>> hoping someone here can help.
>     >>>>>>>
>     >>>>>>> I am trying to make a call to a webservice in
>     >>     freebase suggest
>     >>>>>>> (http://code.google.com/p/freebase-suggest/)
>     >>>>>>> This means I call a web service for every
>     >>     suggestion and
>     >>>>         depending
>     >>>>>>> on that i display the suggestion.
>     >>>>>>>
>     >>>>>>> freebase.suggest.js Line 528.
>     >>>>>>>
>     >>>>>>> p.list_receive = function(input, txt, o)
>     >>>>         {//fb.log("list_receive",
>     >>>>>>> input, query, o);
>     >>>>>>> // handle errors
>     >>>>>>> if (o.status !== '200 OK') {
>     >>>>>>> fb.error("list_receive", o.code, o.messages, o);
>     >>>>>>> return;
>     >>>>>>> }
>     >>>>>>> ...
>     >>>>>>> var url = 'http://somesite/webservice?
>     >>>>>>> callback=mycheckfunction&term=' + suggestKeyWord;
>     >>>>>>>
>     >>>>>>> // Create a script tag, set its src attribute and
>     >>     add it
>     >>>>         to the
>     >>>>>>> document
>     >>>>>>> // This triggers the HTTP request and submits the query
>     >>>>>>> var script = document.createElement("script");
>     >>>>>>> script.src = url;
>     >>>>>>> document.body.appendChild(script);
>     >>>>>>> ...
>     >>>>>>> // further logic to add/remove the item
>     >>>>>>>
>     >>>>>>> My problem is that i'm using
>     >>>>         document.createElement("script" and
>     >>>>>>> since that is async i have no idea of knowing the
>     >>     response
>     >>>>         of my
>     >>>>>>> web service.
>     >>>>>>> I could move the further logic into the callback but is
>     >>>>         there a
>     >>>>>>> 'synchronous' way to wait until i get a response
>     >>     from my web
>     >>>>>>> service.
>     >>>>>>> I can't use xmlHttpRequest because of the cross domain
>     >>>>         restriction.
>     >>>>>>>
>     >>>>>>
>     >>>>>>> _______________________________________________
>     >>>>>>> Developers mailing list
>     >>
>     >>>>>>> Developers at freebase.com <mailto:Developers at freebase.com>
>     >>     <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>> <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>
>     >>     <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>>>
>     >>
>     >>>>>>> http://lists.freebase.com/mailman/listinfo/developers
>     >>>>>>
>     >>>>>> _______________________________________________
>     >>>>>> Developers mailing list
>     >>
>     >>>>>> Developers at freebase.com <mailto:Developers at freebase.com>
>     >>     <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>> <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>
>     >>     <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>>>
>     >>
>     >>>>>> http://lists.freebase.com/mailman/listinfo/developers
>     >>>>>>
>     >>>>> _______________________________________________
>     >>>>> Developers mailing list
>     >>
>     >>>>> Developers at freebase.com <mailto:Developers at freebase.com>
>     >>     <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>> <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>
>     >>     <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>>>
>     >>
>     >>>>> http://lists.freebase.com/mailman/listinfo/developers
>     >>>>
>     >>>>         _______________________________________________
>     >>>>         Developers mailing list
>     >>
>     >>>>         Developers at freebase.com <mailto:Developers at freebase.com>
>     >>     <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>> <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>
>     >>     <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>>>
>     >>
>     >>>>         http://lists.freebase.com/mailman/listinfo/developers
>     >>>>
>     >>>>
>     >>>>     _______________________________________________
>     >>>>     Developers mailing list
>     >>
>     >>>>     Developers at freebase.com <mailto:Developers at freebase.com>
>     <mailto:Developers at freebase.com <mailto:Developers at freebase.com>>
>     >>     <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com> <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>>>
>     >>
>     >>>>     http://lists.freebase.com/mailman/listinfo/developers
>     >>>
>     >>>
>     >>>     _______________________________________________
>     >>>     Developers mailing list
>     >>
>     >>>     Developers at freebase.com <mailto:Developers at freebase.com>
>     <mailto:Developers at freebase.com <mailto:Developers at freebase.com>>
>     >>     <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com> <mailto:Developers at freebase.com
>     <mailto:Developers at freebase.com>>>
>     >>
>     >>>     http://lists.freebase.com/mailman/listinfo/developers
>     >>>
>     >>>
>     >>>
>     >>
>     >>
>     ---------------------------------------------------------------------
>     >> ---
>     >>>
>     >>> _______________________________________________
>     >>> Developers mailing list
>     >>> Developers at freebase.com <mailto:Developers at freebase.com>
>     <mailto:Developers at freebase.com <mailto:Developers at freebase.com>>
>     >>> http://lists.freebase.com/mailman/listinfo/developers
>     >>>
>     >>
>     >>     _______________________________________________
>     >>     Developers mailing list
>     >>     Developers at freebase.com <mailto:Developers at freebase.com>
>     <mailto:Developers at freebase.com <mailto:Developers at freebase.com>>
>     >>     http://lists.freebase.com/mailman/listinfo/developers
>     >>
>     >>
>     >>
>     ---------------------------------------------------------------------
>     >> ---
>     >>
>     >> _______________________________________________
>     >> Developers mailing list
>     >> Developers at freebase.com <mailto:Developers at freebase.com>
>     >> http://lists.freebase.com/mailman/listinfo/developers
>     >>
>     >
>     > _______________________________________________
>     > Developers mailing list
>     > Developers at freebase.com <mailto:Developers at freebase.com>
>     > http://lists.freebase.com/mailman/listinfo/developers
>
>     _______________________________________________
>     Developers mailing list
>     Developers at freebase.com <mailto:Developers at freebase.com>
>     http://lists.freebase.com/mailman/listinfo/developers
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Developers mailing list
> Developers at freebase.com
> http://lists.freebase.com/mailman/listinfo/developers
>   



More information about the Developers mailing list