Thứ Năm, 14 tháng 5, 2009

Khám phá Search Monkey (Yahoo! Search nền tảng mở)

Bạn thường không “khoái” kết quả tìm kiếm trên Yahoo! Với nền tảng SearchMonkey mới, mọi thứ sẽ trở nên sinh động và hấp dẫn hơn. Được Yahoo! khẳng định là nền tảng “mở” hoàn toàn mới cho công cụ tìm kiếm trực tuyến của mình, SearchMonkey cho phép người dùng cuối, các nhà phát triển ứng dụng/dịch vụ và điều hành Web có thể sử dụng những dữ liệu đã được cấu trúc (hay có thể hiểu đơn giản là dữ liệu có cấu trúc) để tạo ra những kết quả tìm kiếm Yahoo! hiệu quả và hấp dẫn hơn.

Trong khuôn khổ bài viết này, tác giả chỉ trình bày những khái niệm ở mức cơ bản nhất về mô hình và các loại dữ liệu mà SearchMonkey sử dụng để vận hành, kèm theo đó là phần hướng dẫn tạo mới một ứng dụng SearchMonkey đơn giản.

KHÁI NIỆM

Về nguyên tắc, SearchMonkey giúp người dùng khai thác và xây dựng các dịch vụ dữ liệu để từ đó tạo ra những ứng dụng/tính năng hiển thị kết quả tìm kiếm mới. Khi đã sở hữu một (hay nhiều) ứng dụng tìm kiếm theo ý riêng, người dùng có thể tự sử dụng hoặc chia sẻ với mọi người dùng Yahoo! khác nếu muốn.

Đối với người dùng phổ thông và nhà phát triển ứng dụng/dịch vụ, SearchMonkey cho phép tạo ra những ứng dụng nhỏ ở dạng có thể chia sẻ để nâng cấp kết quả tìm kiếm với dữ liệu bổ sung và có cấu trúc như hình ảnh hay liên kết. Người dùng sử dụng công cụ tìm kiếm Yahooo Search có thể dễ dàng bổ sung các ứng dụng SearchMonkey trực tiếp vào hồ sơ (profile) Yahoo! của mình. Điều này cũng có nghĩa là, để sử dụng SearchMonkey, người dùng có thể đăng nhập vào dịch vụ Yahoo! bằng chính tài khoản hộp thư Yahoo! Mail quen thuộc.

Một ứng dụng SearchMonkey sẽ thu gom dữ liệu đã được cấu trúc từ nhiều nguồn và sử dụng ngôn ngữ PHP để hiển thị những dữ liệu đó dựa trên những đặc tả/chỉ định cụ thể của người dùng. Ví dụ, người dùng có thể phát triển một ứng dụng có nhiệm vụ hiển thị liên kết đến định nghĩa trên Wikipedia tương ứng với từ khóa tìm kiếm.

Trong khi đó, đối với nhà điều hành website, nền tảng SearchMonkey về cơ bản có nhiệm vụ thay đổi cách thức mà các kết quả tìm kiếm được biên soạn lại và hiển thị bằng cách khai thác chung dữ liệu đã được cấu trúc cung cấp cho hàng triệu trang web đã được tạo chỉ mục bởi Yahoo! Search. Bằng cách chia sẻ dữ liệu có cấu trúc với Yahoo!, các nhà điều hành website và xuất bản nội dung có thể xây dựng các kết quả tìm kiếm hữu ích hơn, thích đáng hơn và hấp dẫn hơn, từ đó giúp tăng số lượng lẫn chất lượng của lưu lượng thông tin từ Yahoo! Search.

[Image]

NGUYÊN LÝ

Một ứng dụng SearchMonkey được xây dựng từ một hay nhiều dịch vụ dữ liệu - có nhiệm vụ cung cấp thông tin đã được cấu trúc để hiển thị trong các kết quả tìm kiếm Yahoo! - và một ứng dụng hiển thị (presentation application) có chức năng xác định cách thức Yahoo! Search trình bày dữ liệu.

Ngôn ngữ XML thông dụng dùng để cung cấp dữ liệu từ bất kỳ nguồn thông tin nào đến các ứng SearchMonkey được gọi là DataRSS, một đặc tả cho siêu dữ liệu URL dạng nhúng trong các nguồn dữ liệu ở định dạng Atom chuẩn. Khi dữ liệu này có mặt trong DataRSS, các nhà phát triển SearchMonkey sẽ sử dụng ngôn ngữ PHP để “ánh xạ” những dữ liệu này vào một ứng dụng hiển thị đã được cấu hình lại và cải tiến (nâng cấp) những kết quả tìm kiếm cá nhân.

SearchMonkey hỗ trợ các dịch vụ cung cấp dữ liệu sau: dữ liệu chỉ mục Yahoo (Yahoo! Index), dữ liệu web ngữ nghĩa (Semantic Web Data), dữ liệu cung cấp từ nguồn khác (Data Feed) và dữ liệu tùy biến (Custom Data Service).

* Yahoo! Index: Là dữ liệu tìm kiếm “cốt lõi” được thu thập bởi công cụ Yahoo! Search Crawler hay còn gọi là Yahoo! Slurp. Những dữ liệu này bao gồm tên (tựa) trang web, phần tóm tắt nội dung (summary), kích thước tập tin, dạng MIME và các thông tin khác mà mạng lưới máy tìm kiếm của Yahoo! đã thu thập trong nhiều năm. Các kết quả tìm kiếm Yahoo! chuẩn được xây dựng bằng cách sử dụng hệ thống chỉ mục của Yahoo!

Trong SearchMonkey, Yahoo! Index được đặc tả bởi khoá (ID) yahoo:index. Trong khi các dịch vụ dữ liệu khác có thể cung cấp nhiều dữ liệu đã được tùy chỉnh (customized data) thì Yahoo! Index lại cung cấp cấp thông tin kỹ thuật cốt lõi (core technical information) cho mỗi trang web trong số hàng tỷ trang web mà Yahoo! đã lập chỉ mục.

* Semantic Web Data: Là các vi định dạng (microformat) và dữ liệu RDF (Resource Description Framework) được thu thập bởi Yahoo! Search Crawler. Những dữ liệu này bao gồm eRDf đã được giải mã/phân rã, RDFa và các microformat như hcard và XFN. Nếu một trang web sử dụng các dữ liệu web ngữ nghĩa, Yahoo! Search Crwaler có thể tự động trích xuất những thông tin này và cung cấp chúng cho các nhà phát triển SearchMonkey. Yahoo! lưu trữ những thông tin này trên máy chủ, vì thế việc truy xuất những thông tin kể trên tương đối nhanh. Với Yahoo! Index, dữ liệu web ngữ nghĩa được trích xuất “làm tươi” mỗi khi trang web đó được truy xuất (duyệt qua), vì thế luôn tồn tại một độ trễ nhất định trước khi Yahoo! cập nhật bất kỳ sự thay đổi nào.

Trong SearchMonkey, dịch vụ dữ liệu web ngữ nghĩa được đặc tả bởi các khóa như com.yahoo.uf.hcard (cho dữ liệu hcard) hay com.yahoo.rdf.erdf (cho dữ liệu eRDF). Các microformat và RDF cho phép chủ website cung cấp nhiều ý nghĩa/nội dung/thông tin hơn về trang web của họ đến các thực thể phần mềm. Ví dụ, bạn có thể sử dụng khóa hcard để biểu diễn một chuỗi ký tự riêng biệt mà trên thực tế đó là một địa chỉ - có vài điều con người có thể dễ dàng hiểu được nhưng sẽ khó khăn hơn đối với phần mềm (máy tính).

* Data Feed: Là nguồn dữ liệu DataRSS được cung cấp bởi website thứ 3 như Amazon hay LinkedIn. Những dữ liệu này bao gồm bất kỳ thông tin về một địa chỉ URL mà mà chủ website chọn để cung cấp. Một khi chủ website tạo nguồn dữ liệu, họ đăng ký chúng vào Yahoo! Site Explorer, vì thế Yahoo! có thể lập chỉ mục nguồn tin và cung cấp chúng cho các nhà phát triển SearchMonkey. Với dữ liệu web ngữ nghĩa, Yahoo! lưu thông tin trên máy chủ để cải thiện hiệu năng của các ứng dụng SearchMonkey.

Trong SearchMonkey, dữ liệu được cung cấp từ nguồn khác được đặc tả bởi các khóa như sm031-LinkedIn. Dữ liệu từ nguồn khác là cách thức xuất sắc để cung cấp những thông tin hữu ích về webiste, đặc biệt nếu như bạn không thể thiết kế lại website để kết hợp vào đó dữ liệu microformat hay RDF dạng nhúng.

* Custom Data Service: Là bất kỳ dữ liệu nào được trích xuất từ một trang web dạng (X)HTML hay dịch vụ web và được đại diện (thể hiện) trong SearchMonkey dưới dạng dữ liệu DataRSS. Có 2 loại dịch vụ dữ liệu tùy biến:

1) Page - dùng cho bất kỳ dữ liệu nào dùng để “bẫy” trong một trang HTML. Nếu bạn hiểu rõ cấu trúc của trang web bên dưới, bạn có thể tạo ra một dịch vụ dữ liệu tùy biến để trích xuất những dữ liệu này và cung cấp chúng ở định dạng DataRSS cho ứng dụng hiển thị (ứng dụng SearchMonkey).

2) Web Service - dùng cho bất kỳ dữ liệu nào được trả về bởi một dịch vụ web. Bạn có thể tạo một dịch vụ dữ liệu tùy biến để gọi một giao tiếp API của ứng dịch vụ web và chuyển kết quả sang dạng DataRSS. Nếu dịch vụ web trả về dạng dữ liệu OpenSearch XML thì SearchMonkey có thể tự động chuyển những kết quả này sang định dạng DataRSS.

Người dùng có thể tự tạo các dịch vụ dữ liệu tùy biến với SearchMonkey. Các dịch vụ dữ liệu tùy biến cho phép người dùng trích xuất thông tin từ bất kỳ trang web nào trên website, tất cả chỉ bị hạn chế bởi trí tưởng tượng và khả năng của người dùng trong việc viết các đoạn mã trích xuất. Nhược điểm của dịch vụ dữ liệu tùy biến là tốc độ chậm và dữ liệu chỉ tồn tại khi người dùng thực hiện một truy vấn tìm kiếm để “kích hoạt” dịch vụ dữ liệu.

Trong SearchMonkey, dịch vụ dữ liệu tùy biến được đặc tả bằng các khóa dạng tự động sinh ra như smid:aaWFb. Dù tốc độ đáp ứng chậm nhưng người dùng có thể sử dụng các dịch vụ dữ liệu tùy biến trong một nỗ lực 2 bước. Trước tiên, người dùng có thể tạo ra một dịch vụ dữ liệu tùy biến cho trang web của mình. Nếu thành công, người dùng có thể đánh dấu các trang web của mình với các microformat hay RDF, hay tạo ra một nguồn dữ liệu đầy đủ.

TẠO ỨNG DỤNG SEARCHMONKEY

Trong phần này, chúng ta sẽ cùng thử thực hiện việc tinh chỉnh kết quả tìm kiếm theo mong muốn trên Wikipedia. Tại trang chủ http://developer.yahoo.com/searchmonkey/, bạn nhấn vào nút Build an App và sau đó đăng nhập với tài khoản Yahoo! hiện có. Ở giao diện vừa xuất hiện, bạn nhấn vào liên kết Create a New Application để tạo mới một ứng dụng tìm kiếm mới, hoặc nếu muốn bổ sung vào hồ sơ của mình những ứng dụng SearchMonkey hiện được cung cấp sẵn trên thư viện SearchMonkey, bạn nhấn vào liên kết Application Gallery.

Bước 1: Ví dụ, để tạo ứng dụng có khả năng hiển thị định nghĩa trên Wikipedia ứng với một từ khóa tìm kiếm, bạn nhấn vào liên kết Create a New Application. Ở mục Name, bạn đặt cho ứng dụng một cái tên thật dễ nhớ (ví dụ là WikiPreview). Tiếp đến, chọn dạng hiển thị là Info bar hay Enhanced Result, rồi nhập vào phần mô tả tính năng của ứng dụng (tùy chọn), phân loại ứng dụng vào các nhóm định sẵn và thay đổi biểu tượng. Sau nữa, bạn đánh dấu chọn vào hộp thoại bên dưới nhãn Terms of Service và nhấn vào nút Next Step.

Bước 2: Bạn nhập vào một địa chỉ URL mẫu để so trùng các kết quả tìm kiếm Yahoo! Search và kích hoạt ứng dụng của mình. Bạn có thể sử dụng dấu (*) để “bẫy” bất kỳ chuỗi ký tự nào ở phần đầu hay kết thúc của URL mẫu. Trong ví dụ này, bạn nhập vào địa chỉ *.wikipedia.org/wiki/* để yêu cầu ứng dụng kích hoạt mọi trang nội dung Wikipedia, trong khi địa chỉ en.wikipedia.org/wiki/* chỉ kích hoạt ứng dụng trên các trang Wikipedia tiếng Anh. Để xem địa chỉ URL mẫu của mình có hoạt động tốt không, bạn nhấn vào nút AUTOFIND URLs. Ngoài ra, bạn cũng nên cung cấp địa chỉ để ứng dụng có thể tìm hình và liên kết tương ứng với địa chỉ URL ở trên. Sau đó, nhấn vào Next Step.

Bước 3: Đánh dấu chọn mọi dịch vụ dữ liệu mà Yahoo! mặc định đề xuất, hoặc nhấn vào liên kết Add More Data Services nếu muốn bổ sung các dịch vụ dữ liệu riêng, sau đó là nhấn Next Step để chuyển sang bước thứ 4. Tuy nhiên, ở mức độ sử dụng của người dùng phổ thông, bạn có thể bỏ qua bước này bằng cách nhấn vào nút Next Step để đến bước cuối cùng.

Bước 4: Bạn nhận được thông báo ứng dụng đã tạo xong và việc bạn cần làm là nhấn vào liên kết Try this Presentation Application in Yahoo! Search bên dưới mục Here’s what to do next để bổ sung ứng dụng đó vào hồ sơ Yahoo! của mình, hay nhấn vào liên kết Make the latest version of your application sharable so that others may use it để chia sẻ ứng dụng vừa tạo với mọi người dùng Yahoo! khác.

Từ lúc này, mỗi khi sử dụng công cụ tìm kiếm Yahoo! với tài khoản đăng nhập riêng, bên cạnh kết quả tìm kiếm mặc định của Yahoo!, bạn còn được cung cấp thông tin phụ trợ từ Wikipedia dưới dạng kết quả tìm kiếm nâng cao (enhanced result) hay thanh thông tin (info bar). Hy vọng các bạn sẽ thấy thú vị và đóng góp thêm về các ứng dụng này.

PC World VN
Tham khảo: Yahoo Developer Network

Không có nhận xét nào:

Đăng nhận xét