Ch2: Tìm kiếm DL ĐPT Dữ liệu ĐPT Nguyễn Thị Oanh Bộ môn HTTT Viện CNTT & TT oanhnt@soict.hust.edu.vn 1
Hachiko- chú chó trung thành Câu chuyện xảy ra vào năm 1925, tại tỉnh Shibuya. Như thường lệ, buổi sáng giáo sư Ueno Eizaburo đi bộ tới nhà ga Shibuya, theo sau là chú chó trung thành Hachi, Text Database Image Database Tổ chức dữ liệu và tìm kiếm? Video Database 2 http://www.youtube.com/watch?v=fw03ipy3yxe&feature=related Audio Database
Kiểu DB Tất cả nguồn DL đã được con xây dựng như 1 hệ thống Một số nguồn DL đã được xây dựng như 1 hệ thống con, một số nguồn DL mới Tất cả các nguồn DL đều mới 3
Kiến trúc của MMDB Nguyên tắc tự trị (Principle of Autonomy) Nguyên tắc đồng nhất (Principle of Uniformity) Nguyên tắc kiến trúc lai (Principle of Hybrid Organization) 4
Nguyên tắc tự trị Mỗi kiểu dữ liệu được tổ chức riêng phù hợp cho từng kiểu dữ liệu Cần tính đến sự liên kết chéo giữa các cấu trúc DL khác nhau Thời gian xử lý truy vấn phải đủ nhanh Kỹ thuật cài đặt phù hợp: hướng đối tượng (object-oriented) 5
6 Nguyên tắc tự trị
Nguyên tắc đồng nhất 7 Tìm 1 kiểu cấu trúc DL chung để lưu thông tin nội dung cho tất cả các kiểu DL khác nhau Xây dựng file chỉ số đồng nhất (unified index), cho phép truy nhập các kiểu đối tượng khác nhau Trích ra các phần chung của kiểu DL Trong công nghiệp, ng/tắc này được xây dựng dựa trên: Annotation (nhãn, các chú giải), hoặc Metadata Dễ cài đặt, tìm kiếm nhanh Kỹ thuật ghi chú giải (annotation)? Tự động thủ công khả năng biểu diễn của ngôn ngữ: mất vài thông tin chi tiết (texture)?
8 Nguyên tắc đồng nhất
Nguyên tắc kiến trúc lai Một số kiểu DL dùng cấu trúc riêng Dành cho các nguồn DL mà chỉ mục và các giải thuật trên đó đã được xây dựng một số khác sử dụng cấu trúc chung (dùng chỉ số đồng nhất) Nguồn DL mới chưa có chỉ mục (đương nhiên không có giải thuật) Cần thực hiện liên kết giữa các nguồn DL khác nhau dựa trên index của chúng 9 Tối đa việc sử dụng lại các tài nguyên (code) đã tồn tại và tối thiểu việc phải mở rộng các tệp chỉ số đã có
10 Nguyên tắc kiến trúc lai
Tổ chức DL ĐPT dựa trên nguyên tắc đồng nhất 11
VD 1 CSDL đa phương tiện Chúng có thể được tạo ra bởi con người hoặc bởi 1 hệ thống tìm kiếm ảnh/video/văn bản nào đó Bức ảnh photo1.jpg có Jane Shady, Denis Dopeman và 1 người thứ 3, chụp ở Medelin, Columbia, ngày 5/1/1997 Video video1.mpg: Jane Shady đưa cho Denis Dopeman 1 chiếc vali (khung hình 50-> 100). Video thu được từ camera theo dõi ngôi nhà của Denis ở Rockville, Maryland năm 1996 Văn bản document1.txt chứa thông tin cơ bản về Denis Dopeman, lấy từ dữ liệu của FBI 12
Metadata và Media Abstractions 13 Nội dung DL được mô tả ở mức cao («ngữ nghĩa»): đối tượng, sự kiện,... chứ không phải ở mức thấp (màu sắc, ) Gắn mỗi đối tượng/sự kiện o i với 1 siêu dữ liệu (metadata) md(o i ) Tạo các metadata? thủ công hoặc từ các hệ thống tìm kiếm/nhận dạng thao tác ở thuộc tính mức thấp Cần cấu trúc toán học để biểu diễn nội dung đa phương tiện Media Abstractions
14 Media Abstractions
Media Abstractions Xác định các điểm chung của các kiểu DL ĐPT khác nhau Tập các đối tượng dữ liệu (objects) mà nội dung cần mô tả : ảnh, video, audio,.. Trong mỗi đối tượng này có các đặc điểm (features) gì: các đối tượng, sự kiện, trong ảnh, vidéo, Mỗi đặc điểm này có các thuộc tính riêng: màu của đồ vật,.. Có thể có mối liên hệ giữa các đặc điểm: mối liên hệ không gian giữa các đối tượng trong ảnh, 15 Các thuộc tính hoặc các liên hệ có thể phụ thuộc hoặc không phụ thuộc vào đối tượng dữ liệu
Media Abstractions: Định nghĩa Bộ 8-phần tử: M = (S, fe, ATTR,, R, F, Var1, Var2) S (states): tập các đối tượng dữ liệu: {photo1.jpg, video1:[s,e), document1.txt, } fe (features): tập các đặc điểm trong các đối tượng DL: {Jane, Denis, vali, } ATTR: tập các giá trị thuộc tính: màu vali, màu áo của Jane, : S 2 fe : chỉ ra mỗi đối tượng dữ liệu có nhưng đặc điểm nào (photo1.jpg) = {Jane Shady, Denis Dopeman, unknown person} 16
17 Media Abstractions M = (S, fe, ATTR,, R, F, Var1, Var2) R: tập các quan hệ fe i x ATTR j x S với i, j >= 0 left_of(person, Person, State) = {(Jane Shady, Denis Dopeman, photo1.jpg), } age(person, Age)= {(Jane Shady, 36), } không phụ thuộc S F: tập các quan hệ giữa các đối tượng dữ liệu (S) before(state1, State2) = {(photo1.gif, photo2.gif), } Var1: tập các biến trên S Var2: tập các biến trên fe
CSDL ảnh với Media Abstraction M = (S, fe, ATTR,, R, F, Var1, Var2) S = {pic1.gif, pic2.gif, } fe = {Bob, Jim, Bill, Charlie, Ed} ATTR: : R: left_of, father F: 18 pic1.gif pic2.gif pic3.gif pic4.gif pic5.gif pic6.gif pic7.gif Bob, Jim Jim Bob Bill Charlie Ed,Bill Ed
CSDL video với Media Abstraction M = (S, fe, ATTR,, R, F, Var1, Var2) S = {frame1, frame2, frame3, frame4, frame5} fe = {Jane Shady, Denis Dopeman, Dopeman s house, briefcase} ATTR: : R: have(person, Object, State) spouse(person, Person) F: before(state1, state2) 19 Frame1 Frame2 Frame3 Frame4 Frame5 Dopeman s house, briefcase, Jany Shady Dopeman s house, briefcase, Jany Shady, Denis Dopeman Dopeman s house, briefcase, Jany Shady, Denis Dopeman Dopeman s house, briefcase, Jany Shady, Denis Dopeman Dopeman s house, Jany Shady
CSDL video với Media Abstraction R: have(person, Object, State) spouse(person, Person) Jane Shady Briefcase frame1 Jane Shady Briefcase frame2 Jane Shady Briefcase frame3 Denis Dopeman Briefcase frame4 Jane Shady Denis Dopeman Peter Shady Debra Dopeman 20 F: before(state1, state2) frame1 frame1 frame1. frame2 frame3 frame4
Hệ cơ sở dữ liệu đa phương tiện có cấu trúc đồng nhất (SMDS- Structured Multimedia Database System) 21
SMDS Structured Multimedia Database System (SMDS): bộ 5 phần tử: ({M 1, M 2,, M n },,, inh, subst) M i = (S i, fe i, ATTR i, i, R i, F i, Var1 i, Var2 i ): Media abstraction : quan hệ tương đương trên : thứ tự bộ phận, xác định trên FE\ inh : FE\ 2 FE\ n FE i 1 subst : thay thế giá trị thuộc tính bởi 1 giá trị khác n i 1 i 1 ATTR 2 n i ATTR i fe i Cho phép tính đến tính đương đồng, kế thừa giữa các đặc điểm (features) 22
SMDS: Ví dụ 3 Media abstraction tương ứng cho: ảnh, video, audio Tập các đặc điểm FE = {church, durnstein, danube, subrahmanian, cathedral, melk, st.paul, rome, stream,tiber } church cathedral, river stream [st.paul] [church], [st.peter] [church] 23 [danube] [river], [tiber] [river]
Truy vấn SMDS (Hệ thống dựa trên nguyên tắc hợp nhất) Sử dụng ngôn ngữ SQL mở rộng Một số hàm cơ bản: FindType(Obj): FindType(im1.jpg) = image FindType(im1.mpeg) = video FindObjWithFeature(f): FindObjWithFeature(john) = {im1.gif, im2.gif, im3.gif, video1.mpg:[1, 5]} 24
Truy vấn SMDS (Hệ thống dựa trên nguyên tắc hợp nhất) FindObjWithFeatureAndAttr(f, a, v): FindObjWithFeatureAndAttr(Jane Shady, suit, blue) = {video1.mpg:[10,20], video1.mpg:[50,90]} FindFeaturesinObj(Obj): FindFeaturesinObj(im1.gif) = {John, Lisa} FindFeatureAndAttrinObj(Obj) FindFeaturesAndAttrinObj(im1.gif) = 25
SMDS-SQL Tất cả các câu lệnh SQL chuẩn đều là SMDS-SQL Ngoài ra: 26 SELECT <media-entities> FROM <media> <source> <M> WHERE term IN func_call <media-entities>: thực thể đa phương tiện (ĐPT): Các đối tượng ĐPT không liên tục m:[i,j] với m: đối tượng ĐPT liên tục, i, j: số nguyên m.a với m là 1 thực thể ĐPT, a là 1 thuộc tính của m
SMDS-SQL Ví dụ Tìm tất cả ảnh hoặc đoạn video có xuất hiện Denis Dopeman và Jane Shady? SELECT M FROM smds source1 M WHERE (FindType(M) = video OR FindType(M) = Image) AND M IN FindObjWithFeature(Denis Dopeman) AND M IN FindObjWithFeature(Jane Shady) 27
SMDS-SQL Ví dụ Tìm tất cả các bức ảnh có cả Denis Dopeman và Jane Shady, Jane ở bên trái của Denis? SELECT FROM WHERE M smds source1 M FindType(M) = Image AND M IN FindObjWithFeature(Denis Dopeman) AND M IN FindObjWithFeature(Jane Shady) AND left_of(jane Shady, Denis Dopeman, M) 28
SMDS-SQL Ví dụ Tìm tất cả các bức ảnh có Jane Shady và 1 người mặc đồ màu xanh xuất hiện cùng Denis Dopeman trong video? SELECT M, Person FROM WHERE smds source1 M, M1 FindType(M) = Image AND FindType(M1) = Video AND M IN FindObjWithFeature(Jane Shady) AND M1 IN FindObjWithFeature(Denis Dopeman) AND Person IN FindFeaturesWithObj(M) AND Person IN FindFeaturesWithObj(M1) 29 AND M IN FindObjWithFeatureAndAttr(Person, suit, blue) AND Person Jane Shady AND Person Denis Dopeman
Truy vấn SMDS nguyên tắc (Hệ thống dựa trên lai) Biểu diễn ĐPT lai 2 phần các đối tượng dữ liệu được biểu diễn theo ng/tắc hợp nhất (SMDS) các đối tượng dữ liệu biểu diễn theo ng/tắc tự trị (non-smds) SMDS-SQL : dùng cho hệ thống hợp nhất HM-SQL (Hybrid-multimedia): Cho phép biểu diễn truy vấn tương ứng với các ngôn ngữ trong các nguồn DL tự trị 30 Cho phép biểu diễn kết nối giữa các đối tượng trong SMDS và non-smds
HM-SQL Tương tự ngôn ngữ SQL Mệnh đề SELECT, FROM : giống SMDS-SQL Mệnh đề WHERE cho phép biểu diễn dưới dạng term IN MS:func_call term: biến hoặc đối tượng cùng kiểu với đầu ra của func_call Nếu MS = SMDS thì func_call là 1 trong 5 hàm đã được định nghĩa trong SMDS 31 Nếu MS: non-smds thì func_call là câu truy vấn biểu diễn bằng ngôn ngữ truy vấn trong nguồn MS, QL(MS)
HM-SQL Ví dụ Tìm tất cả video clips có Denis Dopeman từ 2 nguồn dữ liệu video1 (cài đặt với SMDS) và video2 (non-smds)? SELECT M FROM WHERE smds video1, videodb video2 M IN smds:findobjwithfeature(denis Dopeman) OR M IN videodb:findvideowithobject(denis Dopeman) 32
HM-SQL Ví dụ Tìm tất cả những người xuất hiện cùng Denis Dopeman ở nguồn dữ liệu video1 (cài đặt với SMDS), video2 (non-smds) và dữ liệu ảnh idb (non-smds)? 33 (SELECT P1 FROM smds video1 V1 WHERE V1 IN smds:findobjwithfeature(denis Dopeman) AND P1 IN smds:findfeaturesinobj(v1) AND P1 Denis Dopeman) UNION (SELECT P2 FROM videodb video2 V2 WHERE V2 IN videodb:findvideowithobject(denis Dopeman) AND P2 IN videodb:findobjectsinvideo(v2) AND P2 Denis Dopeman) UNION (SELECT P3 FROM imagedb idb I3 WHERE I3 IN imagedb:getpic(denis Dopeman) AND P3 IN imagedb:getfeatures(i3) AND P3 Denis Dopeman)
Đánh chỉ mục SMDS với file đảo tăng cường (Enhanced Inverted File) 1 Ví dụ SMDS đơn giản: 34
featurenode: tên; 1 danh sách các node con (tương ứng cho quan hệ ); 1 dsach con trỏ trỏ tới statenode; 1 dsach trỏ đến các featurenodes thuộc subst(feature) Featuretable statetable 35 Statenode: 1 con trỏ trỏ đến file dữ liệu & 1 danh sách liên kết trỏ đến featurenode
Truy vấn mở rộng (Query Relaxation) Khi tính đến sự kế thừa của các đặc điểm và tính tương đồng về giá trị thuộc tính (inh & subst) Q = {Q i }, i = 1..k VD: David John inh(denis Dopeman) Q2 mở rộng của Q1 Q1:SELECT FROM WHERE AND Q2: SELECT FROM WHERE AND 36 M smds video1, videodb video2 M IN smds:findobjwithfeature(denis Dopeman) M IN videodb:findvideowithobject(denis Dopeman) M smds video1, videodb video2 M IN smds:findobjwithfeature(denis John) M IN videodb:findvideowithobject(denis John)
Truy vấn mở rộng ( ) briefcase inh(package), grey subst(black) SELECT M FROM smds source1 WHERE M IN smds:findobjwithfeature(denis Dopeman) AND M IN smds:findobjwithfeatureandattr(briefcase, color, black) SELECT FROM WHERE AND M smds source1 M IN smds:findobjwithfeature(denis Dopeman) M IN smds:findobjwithfeatureandattr(package, color, black) 37 SELECT FROM WHERE AND M smds source1 M IN smds:findobjwithfeature(denis Dopeman) M IN smds:findobjwithfeatureandattr(package, color, grey)
Tổng kết Khi xây dựng 1 CSDL ĐPT: Xác định rõ các kiểu dữ liệu ĐPT nào cần được truy nhập đến Có tồn tại kỹ thuật đánh chỉ mục tin cậy và hiệu quả trên các nguồn DL cần xem xét không xác định hệ thống dựa trên nguyên tắc hợp nhất hay nguyên tắc kiến trúc lai phương pháp đánh chỉ mục hợp lý để dễ dàng/hiệu quả các truy vấn Lưu ý: Các metadata trong chương này được coi như đã tồn tại từ Chú thích/gán nhãn (Annotation) thủ công 38 Chương trình tự động / bán tự động
39 Google Images
40 Google Images
41 Google Images
42