locked
Store Live Search API results in XML format??? RRS feed

  • Question

  • Hi. My name is Liem Luong. This is the first time i post the topic on this forum. I hope i can get help from here.

    I am doing my research for my school senior project. The topic i am working on is Natural Language Processing.
    I am using Live Search API. I am able to retrieve the search results from Live Search API and display them on my scrowviewer in WPF window.
    The problem is:
           * Instead of display directly from the Live Search on the WPF windows, i want to store all of the results in one XML file.
           * Because i want to do some Natural Language Processing calculation to filter out the results in order to improve the accuracy.
           * Delete the bad results and rerank the oder of the results.
           * Finally, i will display the final results (from the XML file) on to the WPF windows.

    I have search online alot. I see many discussings about the ADO.NET,  LING... I don't know which is the the best way to store the Live Search results  in an XML format after user hit the search button and how to do it. Any suggestion would be help. I appreciate your helps.

    Once again, thank you for your time on helping me.

    Liem Luong

     
    Sunday, February 15, 2009 7:46 AM

Answers

  • Hi Liem Luong

    The answer to your question comes in two different flavors.

    From the legal standpoint, you need to tread a fine line.
    The term of use say verbatim (paragraph 3)

     You will not, and will not permit your users or other third parties to: (...)
    (m) copy, store, or cache any Live Search results, except for the intermediate purpose allowed in §2(b);

    §2(b) in turn states that

    we grant you a non-exclusive, non-transferable, non-sublicenseable license to use the services to: (...) make limited intermediate copies of the Live Search results, solely as necessary to display them on your Website or application

    The spirit of the rule is that you are not allowed to store result and serve them stale or are not allowed to copy over the index.
    IANAL, but as long as you do not store data for more than a few hours, you will be fine.

    From the technical standpoint, you should not focus on the fact that you are receiving XML but on the fact that you are receiving back objects. If you are using WPF, you are much better off using SOAP that through VS will create all the goo to present you a nice taxonomy of objects in memory that you can reason on. I have a preference for LINQ to objects, but that is just a personal preference at this point. Once the objects are in memory, you do anything you want with them.

    HTH

    --Alessandro

    • Proposed as answer by AlessC Monday, February 16, 2009 6:46 AM
    • Marked as answer by AlessC Monday, March 23, 2009 8:08 PM
    Monday, February 16, 2009 6:45 AM

All replies

  • Hi Liem Luong

    The answer to your question comes in two different flavors.

    From the legal standpoint, you need to tread a fine line.
    The term of use say verbatim (paragraph 3)

     You will not, and will not permit your users or other third parties to: (...)
    (m) copy, store, or cache any Live Search results, except for the intermediate purpose allowed in §2(b);

    §2(b) in turn states that

    we grant you a non-exclusive, non-transferable, non-sublicenseable license to use the services to: (...) make limited intermediate copies of the Live Search results, solely as necessary to display them on your Website or application

    The spirit of the rule is that you are not allowed to store result and serve them stale or are not allowed to copy over the index.
    IANAL, but as long as you do not store data for more than a few hours, you will be fine.

    From the technical standpoint, you should not focus on the fact that you are receiving XML but on the fact that you are receiving back objects. If you are using WPF, you are much better off using SOAP that through VS will create all the goo to present you a nice taxonomy of objects in memory that you can reason on. I have a preference for LINQ to objects, but that is just a personal preference at this point. Once the objects are in memory, you do anything you want with them.

    HTH

    --Alessandro

    • Proposed as answer by AlessC Monday, February 16, 2009 6:46 AM
    • Marked as answer by AlessC Monday, March 23, 2009 8:08 PM
    Monday, February 16, 2009 6:45 AM
  • Hi Liem Luong

    The answer to your question comes in two different flavors.

    From the legal standpoint, you need to tread a fine line.
    The term of use say verbatim (paragraph 3)

     You will not, and will not permit your users or other third parties to: (...)
    (m) copy, store, or cache any Live Search results, except for the intermediate purpose allowed in §2(b);

    §2(b) in turn states that

    we grant you a non-exclusive, non-transferable, non-sublicenseable license to use the services to: (...) make limited intermediate copies of the Live Search results, solely as necessary to display them on your Website or application

    The spirit of the rule is that you are not allowed to store result and serve them stale or are not allowed to copy over the index.
    IANAL, but as long as you do not store data for more than a few hours, you will be fine.

    Hi Alessandro

    Thank you for your response. My WPF application is that a window display the search results from live Search API.
    I mean like: i use the Live Search API to retrieve the result from the search engine. Then i will put it in memory (like array database). Then i will change the order to display on my WPF for testing.

    Example: As i submit the query to my application. The Live Search API return for example 10 results in that order (1, 2, 3....10). when i display that 10 results on my WPF window. i see the 2nd results is more important than the 1st result. i will put the 2nd result first then the 1st results after that. The rest will be the same.

    I mean i just change the order of the 1st and the 2nd result. This is not a commercial application or anything. I am the only one to use this project, no one else, no users, no third party. This is just the project i work on to test the my algorithm to recognize the good result. As you said as long as i don't store data for more than a few hours , i will be fine. Basically i just run the code and see the results on the window if my algorithm work or not. It will not be more than 5 minutes.  I change the order of the "web" only. Base on the TERM OF USE  (CODE OF CONDUCT / RESTRICTION ON USE) form dev.live.com for Live Search. I will not:
    (c) modify, filter, obscure, or replace the text, images, or other content of Live Search results, including by changing the order in which Live Search results appear (but this limitation will not apply to Live Search results of type "Web")
    ,intermixing Live Search results with search results from other sources, or intermixing with Live Search results any other content so that the other content appears to be part of Live Search results;
    but it said this limit will not apply to the Live Search results of type WEB.  So do you think i will be fine? Once again thanks.


    Wednesday, April 1, 2009 6:24 AM
  • Hi Liem Luong,

    The scenario you describe is fully compliant with the Terms of Use.

    Good luck

    --Alessandro
    Friday, April 3, 2009 3:16 AM