1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án công nghệ thông tin Xây dựng wrapper cho nguồn dữ liệu Web trong hệ thống tích hợp dữ liệu

72 632 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 1,46 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khi tách thông tin từ các trang Web, cùng một kỹ thuật được sử dụng vàocác trang Web và các tài liệu bán cấu trúc: Kỹ thuật NLP truyền thống là khôngthích hợp, do nguồn thông tin thường

Trang 1

Lời giới thiệu

Thông tin ngày càng đóng một vị trí quan trọng trong cuộc sống Vấn đềlưu trữ và khai thác thông tin đang trở lên cấp thiết hơn bao giờ hết Lượng thôngtin mà ta tiếp xúc là rất lớn, do đó để lựa chọn các thông tin thích hợp là vấn đềkhông đơn giản Từ nhu cầu đó sự ra đời của một hệ thống tích hợp thông tin là tấtyếu

Trên tinh thần nghiên cứu học hỏi các kỹ thuật tích hợp dữ liệu Nhóm 4sinh viên chúng em đã nghiên cứu và cài đặt một hệ tích hợp BKDATIS Đây là hệthống phát triển tại trung tâm tính toán hiệu năng cao trường Đại học Bách Khoa

Hà Nội

Hệ thống của chúng em chia làm 4 phần Trong đó em tham gia phần xâydựng wrapper cho nguồn dữ liệu Web Đây là đóng gói nguồn dữ liệu Web cungcấp cho tầng trên một giao diện truy cập thống nhất, đơn giản và độc lập

Cấu trúc đồ án của em có 5 phần: Chương 1: Giới thiệu về hệ thống tíchhợp dữ liệu Chương 2 : Cơ sỏ lý thuyết : Trình bày các kỹ thuật, lý thuyết sử dụng

để xây dựng wrapper trong BKDATIS Chương 3 : Cài đặt : Trình bày mô hình,cài đặt cụ thể wrapper Chương 4 : Nhận xét đánh giá

Do hạn chế về thời gian cũng như kinh nghiệm, nên đồ án không tránh khỏinhững thiếu sót Kính mong thày cô góp ý, hướng dẫn thêm cho chúng em hoànthiện dự án này

Em xin chân thành cảm ơn TS Nguyễn Thanh Thuỷ Người luôn quan tâmnhắc nhở, hướng dẫn, tạo mọi điều kiện để em hoàn thành đồ án tốt nghiệp này

Em vô cùng cảm ơn TS Trần Đình Khang Người đã tận tình chỉ bảo, góp ýtrong qỳa trỡnh làm đồ án

Em cũng vô cùng biết ơn ThS Tạ Tuấn Anh Người đó cú những đóng gópquý báu, đưa ra các mô hình, giải pháp thực hiện giúp bọn em chọn một hướng đitốt nhất

Cuối cùng em rất cảm ơn các thày cô, anh chị và các bạn trên trung tâmTính toán hiệu năng cao đã tạo mọi điều kiện, giúp đỡ em thực hiện đồ án này

Trang 2

Chương I : GIỚI THIỆU 1.1 Các hệ thống tích hợp dữ liệu

Khi xã hội phát triển, con người ngày càng phải tiếp xúc với nhiều thông tinhơn Từ thời nguyên thuỷ khi thông tin cũn ớt con người chưa có nhu cầu về cácphương tiện lưu trữ thông tin Tuy nhiên cùng với thời gian, khi mà lượng thôngtin ngày càng nhiều lờn, thỡ bắt đầu xuất hiện chữ viết cựng cỏc phương tiện lưugiữ chúng như vỏ cây, da thỳ,… rồi đến các phương tiện tiên tiến hơn như giấy,sách vở,… Khi mà lượng sách vở quá nhiều lại xuất hiện nhu cầu tổ chức lưu trữchúng để sử dụng, và quản lý hiệu quả hơn Con người tập hợp sách thành thưviện, sắp xếp, phân loại để dễ tìm kiến, trao đổi

Hiện nay với sự ra đời và phát triển của công nghệ thông tin, thông tin đượclưu trữ trên máy tính rất đơn giản dưới nhiều dạng khác nhau Điều đó dẫn tới sựbùng nổ về thông tin Tin tức không những quá nhiều mà còn được biểu diễn dướirất nhiều dạng, nhiều nơi khác nhau Con người bị tràn ngập trong biển thông tin,

và từ đó xuất hiện nhu cầu làm thế nào để khai thác thông tin một cách hiệu quả

Bây giờ hóy xột một ứng dụng hiện tại làm việc cơ sở dữ liệu Con ngườinhiều khi phải làm việc với nhiều dạng tài liệu khác nhau từ một tài liệu văn bảnthông thường, một bảng Exel, một trang Web, hay một cơ sở dữ liệu Ngay cả với

cơ sở dữ liệu cũng tồn tại nhiều mô hình khác nhau như mô hình quan hệ, mô hìnhhướng đối tượng, mô hình mạng, … Các nguồn dữ liệu này không những khácnhau về mô hình mà với sự phát triển của các hệ thống mạng nó cũn được lưu trữphân tán khắp nơi Ngoài ra còn một thách thức nữa là các nguồn này luôn thayđổi, bổ xung, cập nhật một cách độc lập Vì vậy việc thu thập, tích hợp, và tríchchọn thông tin là một yêu cầu cần thiết, nó sẽ giúp người sử dụng nắm bắt thôngtin một cách hiệu quả và chính xác

Tích hợp thông tin là một trong những vấn đề thách thức đối với việc khaithác thông tin và thu hút được nhiều sự quan tâm của các chuyên gia Hệ thốngtích hợp dữ liệu là hệ thống cho phép đưa ra một khung nhìn thống nhất cho việc

Trang 3

truy cập tới các nguồn dữ liệu tự trị không đồng nhất và một giao diện truy vấntrờn nó.

1.2 Web và vấn đề khai thác thông tin từ Web

1.2.1 Tài liệu web

WWW cung cấp một nguồn thông tin vô tận Các thông tin này thường làbán cấu trúc, mặc dù bạn có thể tìm thấy cả văn bản có cấu trúc và không Thôngtin này cũng là thông tin động, nó cú chứa cỏc siờu liên kết và có thể biểu diễn ởnhiều hình thức khác nhau và chia sẻ rộng rãi trên nhiều trang và nhiều hệ thống

Tuy nhiên Web cũng đặt ra những thách thức, và đã đưa những nỗ lựcnghiên cứu về việc tách thông tin từ các văn bản cấu trúc và bán cấu trúc

Một số định nghĩa tất cả các trang Web là bán cấu trúc vì họ cho rằng nóchứa thông tin cấu trúc liên quan đến cách thể hiện Tuy nhiên Hsu đã đưa ra mộtcác phân loại các trang Web tốt hơn: Một trang Web cung cấp các mục thông tin là

có cấu trúc nếu mỗi thuộc tính trong nhóm có thể tách chính xác dựa vào một vàiluật cú pháp thống nhất, ví dụ các dấu phân cách hay thứ tự các thuộc tính Tuynhiên các trang Web bán cấu trúc có thể chứa cỏc nhúm tin thiếu một vài thuộctính, thuộc tính với nhiều giá trị, hoán vị thuộc tính, hay các ngoại lệ Một trangWeb là không có cấu trúc nếu nó yêu cầu các tri thức từ vựng để tỏch cỏc thuộctính đúng đắn Trong các phần sau chúng ta sẽ đề cập đến các trang Web cả có cấutrúc, bán cấu trúc hay không có cấu trúc tuỳ thuộc vào cách sắp xếp nội dung Tuynhiên tính cấu trúc của trang Web luôn tuỳ thuộc vào thuộc tính mà người sử dụngmuốn tách Thường các công cụ tạo Web tạo ra các trang có cấu trúc tốt, trong khicác trang tạo bằng tay thường ít cấu trúc

Khi tách thông tin từ các trang Web, cùng một kỹ thuật được sử dụng vàocác trang Web và các tài liệu bán cấu trúc: Kỹ thuật NLP truyền thống là khôngthích hợp, do nguồn thông tin thường không thể hiện các cấu trúc ngữ pháp đầy đủnhư các kỹ thuật này được thiết kế để sử dụng Hơn nữa, các kỹ thuật NLP thường

Trang 4

chậm, và có vấn đề khi số lượng tài liệu lớn và nội dung cần tách được tách trựctiếp

Phần lớn dữ liệu trên Web được cập nhật thường xuyên như một danh sáchmục các thuộc tính, như các chỉ mục tìm kiếm Web Với các trang Web bán cấutrúc, sự xuất hiện thường xuyên của chúng có thể khai thác để tách dữ liệu thay vì

sử dụng các tri thức về từ vựng

Tổ chức và cỏc siờu liên kết của tài liệu là một khía cạnh quan trọng khitrích thông tin từ trang Web vỡ nó không có trong các tài liệu văn bản Ví dụ,duyệt theo cỏc siờu liên kết là cần thiết để nhận được các thông tin cần tỡm Cỏcluật tách sẽ phụ thuộc vào tổ chức tổng thể của trang Web và một vài luật sẽ cúcỏc giới hạn hạn chế việc sử dụng một số loại trang Web

Các trang Web là kết quả của các truy vấn nguồn dữ liệu trực tuyến thườngsinh ra một tập các trang liên kết Các trang Web bán cấu trúc được phân lớp nhưsau:

(i) Kết quả một mức một trang, trong đó một trang chứa tất cả các

mục liên quan đến truy vấn nguồn, (ii) Kết quả một mức nhiều trang, trong đó phải theo nhiều siêu liên

kết để nhận được danh sách đầy đủ của câu trả lời, và (iii) Các trang hai mức, trong đó phải theo liên kết của mỗi mục trong

mức thứ nhất để duyệt một trang chứa tất cả thông tin liên quanđến các mục

1.2.2 Bộ sinh wrapper

Internet đưa ra một số lượng lớn và ngày càng tăng các nguồn thông tin,chúng ta có thể tìm thấy bằng các trình duyệt hay bằng các bộ máy tìm kiếm Cácnguồn thông tin này độc lập với nhau, không có kết nối với nguồn khác, và mỗidịch vụ tồn tại độc lập Điều đó dẫn đến sự cần thiết phải trích thông tin từ Web,

đó là việc tách và tập hợp thông tin từ các nguồn độc lập

Các dữ liệu cấu trúc và phi cấu trúc trên Web có xu hướng tăng lên, và cũn

cú sự tăng lên của các trang web ẩn Đó là các trang web sinh ra từ vài cơ sở dữ

Trang 5

liệu, dựa vào yêu cầu người dùng Người ta nói rằng có đến 80% các trang web làweb ẩn Các trang này không thể lấy được bằng các web crawler hay tìm kiếm qua

bộ tìm kiếm Điều đó có nghĩa là cần phải có một công cụ đặc biệt để trích thôngtin từ các trang web như vậy

Tách thông tin từ các Web site thường được thực hiện bởi các wrapper

1.2.2.1 Wrapper

Một wrapper có thể coi như một thủ tục được thiết kế để trích nội dung củamột nguồn thông tin Trong cộng đồng cơ sở dữ liệu, một wrapper là một thànhphần phần mềm chuyển dữ liệu từ một truy vấn từ một mô hình này tới một môhình khác Trong môi trường web, mục đích của nó là chuyển thông tin không cụthể được lưu trữ trờn cỏc tài liệu HTML thành thông tin cụ thể lưu trữ theo mộtcấu trúc để tiếp tục xử lý

Một wrapper cho một nguồn web chấp nhận một truy vấn thông tin tớinguồn này, lấy các trang thích hợp từ nguồn về, trớch cỏc thông tin yêu cầu và trảlại kết quả Nó bao gồm một tập các luật tách và mã lệnh yêu cầu áp dụng các luậtnày vào một nguồn cụ thể Để trích thông tin từ vài nguồn độc lập cần phải có mộtthư viện wrapper Wrapper cần phải thực hiện nhanh chóng, bởi vì chúng thườngđược sử dụng trực tuyến để đáp ứng nhu cầu người sử dụng Wrapper cần phải cókhả năng đối mặt với sự thay đổi và cấu trúc không tự nhiên của web, giống như

sự cố mạng, tài liệu không hợp khuôn dạng, thay đổi bố trí, …

Có hai lợi ích chính đối với việc xây dựng wrapper cho nguồn web: Khảnăng nhận được thông tin thích hợp từ các nguồn riêng lẻ để tiếp tục tăng cường,

và tất cả các nguồn được xây dựng wrapper có thể truy vấn sử dụng chung mộtngôn ngữ truy vấn chung Sau đó có thể có được các truy cập tích hợp vào cácnguồn, và các nguồn web có thể truy vấn theo kiểu cơ sở dữ liệu sử dụng ngônngữ truy vấn chung

1.2.2.2 Từ IE đến WG

Yêu cầu trích và tích hợp dữ liệu từ nhiều nguồn web đã dẫn đến sự pháttriển bộ sinh wrapper (WG – Wrapper Generation) Lĩnh vực này xuất hiện độc lập

Trang 6

với cộng đồng IE truyền thống, và một ứng dụng WG trích dữ liệu từ các trangweb được sinh trực tuyến, dựa trên truy vấn của người sử dụng, dựng cỏc mẫuHTML định nghĩa trước Trong cộng đồng WG, tập hợp các nguồn thông tin nhưvậy gọi là các nguồn dữ liệu bán cấu trúc Để kết hợp dữ liệu từ các nguồn đó, dữliệu thích hợp cần phải trích từ các mẫu HTML Do đó, wrapper đơn giản là mộtứng dụng IE cho nguồn một dữ liệu.

Hệ thống IE truyền thống dựng cỏc mẫu tách dựa trên sự kết hợp các ràngbuộc ký pháp và ngữ nghĩa Tuy nhiên, như được đề cập trước đây, với các tài liệubán cấu trúc như các ứng dụng WG đú, cỏc mẫu tách từ vựng thường không thể ápdụng được Để đối mặt với kiểu miền ứng dụng mới, các nhà nghiên cứu giới thiệumột tập các mẫu tacchs, và một hệ thống WG sinh ra các mẫu tách dựa trên phâncách chứ không sử dụng các rằng buộc từ vựng Với kiểu các trang web này, tất cảtàI liệu được sinh ra bằng cách điền vào cùng một mẫu

Mặc dù các trang web là đối tượng của ứng dụng WG, tách thông tin từ cácnguồn này không đơn giản Sự ổn định là ví dụ một thách thức quan trọng, như có

cả một số lượng lớn các site và sự khác biệt lớn trong kiểu định dạng Sự linh hoạt

là một thách thức khác, như định dạng nguồn có thể thay đổi

Trang 7

1.2.2.3 Bộ sinh Wrapper

Việc xây dựng wrapper có thể thực hiện thủ công, hay sử dụng hướng tiếpcận bán tự động và tự động Xây dựng wrapper thủ công thường gắn với việc cácđoạn mã đặc biệt Người xây dựng cũng phải dành thời gian để hiểu cấu trúc tàiliệu và chuyển nó thành mã chương trình Mặc dù sẽ đơn giản hơn khi lập trìnhtách thông tin thủ công cho các trang web bán cấu trúc hơn là cho các văn bản tự

do, công việc phải làm cũng không đơn giản, viết mã bằng tay là nhàm chán và dễphát sinh lỗi

Các công cụ trợ giúp xây dựng wrapper thủ công đã được phát triển Mộtvài hướng tiếp cận sử dụng biểu thức cú pháp trong đó cấu trúc các trang web cóthể được mô tả, và cung cấp các công cụ cho việc phát sinh mã để tách dựa trên cúpháp cho trước Tuy nhiên, thậm chi xác định cú pháp cũng là nhàm chán và tốnthời gian và yêu cầu trình độ chuyên môn cao

Mặc dù cho đến nay rất nhiều wrapper được viết bằng tay, hệ thống IE xâydựng thủ công không thể đáp ứng được các thay đổi về miền, và phải được thayđổi cho mỗi miền mới Điều đó có nghĩa là việc tạo dữ liệu thủ công yêu cầu chiphí bảo trì cao Với các nguồn dữ liệu web đó là vấn đề như số lượng các nguồnthông tin cần quan tâm thường rất lớn và nội dung và cấu trúc của các nguồn thôngtin khác nhau có thể thay đổi nhanh Hơn nữa các nguồn thông tin mới luôn xuấthiện và định dạng nguồn cũng có thể thay đổi Do đó, cơ chế và kỹ thuật để giúp

đỡ việc xây dựng wrapper là cần thiết cho việc tự động tách thông tin trên web

Sinh wrapper bán tự động dựng cỏc công cụ hỗ trợ thiết kế wrapper Vàihướng tiếp cận cung cấp giao diện hướng trình diễn trong đó người sử dụng chỉcho hệ thống các thông tin cần tỏch Dựng một giao diện đồ hoạ, người thiết kế cóthể lập trình theo sự trình diễn, cho ứng dụng thấy trường nào cần tách Hướngtiếp cận này không cần các chuyên gia tri thức viết mã wrapper ở bước này, vàcũng ít sinh lỗi hơn Tuy nhiên, mỗi site và sự thay đổi site cần một sự trình diễn

để chi ra dữ liệu cần tách do hệ thống không thể tự suy luận ra cấu trúc của site

Trang 8

Sinh wrapper tự động dùng kỹ thuật học máy, và cộng đồng nghiên cứuwrapper đã phát triển thuật toán học máy cho một dải wraper – từ đơn giản đếnphức tạp Tuy nhiên thậm chí hệ thống sinh wrapper tự động yêu cầu sự tham giatối thiểu của người sử dụng Hệ thống thường phải trải qua pha đào tạo.

1.3 Một số dự án xây dựng wrapper trên Web

Một số nhóm nghiên cứu tập trung vào vấn đề trích dữ liệu có cấu trúc từtài liệu HTML Nhiều nghiên cứu thuộc lĩnh vực cơ sở dữ liệu, và tập trung vàowrapper chuyển truy vấn cơ sở dữ liệu tới các yêu cầu Web và phân tích trang webkết quả…

WysiWyg Web Wrapper Factory (W4F) là công cụ sinh wrapper cho web

Nó cú một ngôn ngữ để xác định và duyệt Web site và ngôn ngữ mô tả để trích dữliệu từ các trang web Nó cũng cung cấp cơ chế ánh xạ dữ liệu tách vào cấu trúcđích Như tờn đó chỉ ra, W4F cung cấp một giao diện người sử dụng cho việc sinhcác luật

Ngôn ngữ WebL của Compaq là ngôn ngữ thủ tục để viết wrapper cho web

Nó cung cấp một ngôn ngữ trích dữ liệu rất mạnh(tương tự biểu thức đường dẫn

đệ quy kết hợp với biểu thức chính quy), ngôn ngữ không đưa ra XML và đầu vàothiếu sức mạnh của XSLT và XPath

Hệ thống Ariadne, Galic, TSIMMIS là các mediator hỗ trợ truy vấn nhiềunguồn dữ liệu không đồng nhất Trong khi Garlic và TSIMMIS hỗ trợ nhiều nguồnbao gồm nguồn Web, cơ sở dữ liệu, và hệ thống tệp Ariadne tập trung vào nguồnWeb Trong mỗi hệ thống, một quá trình mô hình hoá hình thành một khung nhìntích hợp về dữ liệu chứa trong nguồn và một qỳa trỡnh truy vấn trên khung nhìntích hợp đó

Trong Garlic và TSIMMIS, wrapper được viết bằng một ngôn ngữ thủ tục

và dịch ra một mã có thể thực thi được trong khi Ariadne sử dụng mộ cơ chế sinhwrappẻ dự trên sự giới thiệu Nó dựng biểu thức chính quy và các bảng ánh xạ để

Trang 9

giải quyết vấn đề khác biệt về từ vựng giữa các nguồn dữ liệu Web, nhưng thiếubiểu thức đường dẫn Chúng ta chú ý rằng biểu thức đường dẫn là rất quan trọngtrong việc tách dữ liệu từ cây HTML bởi vì duyệt cấu trúc các phần tử HTML làluôn cần thiết.

XWRAP là bộ sinh wrapper bán tự động xây dựng ngữ nghĩa cho các thẻHTML đặc biệt (như tiêu đề, bảng) và cách sắp xếp dữ liệu Các heuristics đượcdùng để xác định mối quan hệ cha con giữa các phần tử dữ liệu, như tên bảng, têntrường, và các giá trị Wrapper sinh ra phụ thuộc vào sự lồng nhau của các bảng vàcác phần tử, nó làm việc tốt với các trang web dạng bảng nhưng không làm việcvới các trang ít có cấu trúc

1.4.1 Giới thiệu hệ thống BKDATIS

BKDATIS là hệ thống tích hợp các nguồn dữ liệu không đồng nhất Cácnguồn dữ liệu gồm các nguồn có cấu trúc (cơ sở dữ liệu) và bán cấu trúc (HTML,Text)

Hệ thống BKDATIS sử dụng XML là mô hình dữ liệu trung gian trao đổigiữa cỏc mụ đun Đây là một định dạng thường được sử dụng để biểu diễn môhình dữ liệu bán cấu trúc Hiện nay XML đang trở thành một chuẩn để trao đổi dữliệu giữa các chương trình Nó có tính cấu trúc cao, linh hoạt và tự mô tả nội dung.Trong hệ thống XML được sử dụng để trao dữ liệu giữa các wrapper và tầng tíchhợp và trả lại kết quả cho người sử dụng Hệ thống chọn XML làm đầu ra bởi vì từ

nó rất dễ chuyển sang một định dạng khác mà người dùng mong muốn Bên cạnhXML hệ thống còn sử dụng DTD (định nghĩa dữ liệu ) để biểu diễn mô hình dữliệu của các nguồn cục bộ Mô đụn xây dựng ánh xạ sẽ dùng DTD cục bộ để đưa

ra lược đồ tổng thể

Trang 10

Hình 1 Hệ thống tích hợp dữ liệu

Hiện tại các nguồn dữ liệu tích hợp của hệ thống là hệ cơ sở dữ liệu quan

hệ và HTML Cơ sơ dữ liệu quan hệ là nguồn có cấu trúc và hỗ trợ các truy vấncòn HTML là nguồn dữ liệu bán cấu trúc Wrapper cho các nguồn cơ sở dữ liệuquan hệ sẽ chuyển các truy vấn tới wrapper (Xquery) thành truy vấn của nguồn(SQL) sau đó kết quả trả về được chuyển sang dạng XML với một lược đồ DTD.Wrapper cho HTML sử dụng một cơ chế tách thông tin và lưu nó theo mô hìnhXML sau đó sử dụng một mô đun truy vấn trực tiếp trên XML và lấy đó làm kếtquả đưa ra

Mô đun MetaData lấy DTD từ các nguồn cục bộ rồi xây dựng lược đồ tổngthể

Các DTD cục bộ trước hết được chuyển thành lược đồ khái niệm Ontology

Tầng trên cùng, tần phân tách truy vấn được xây dựng theo mô hình LAV.Một lợi thế của mô hình LAV so với mô hình GAV là cho phép thêm bớt cácnguồn một cách dễ dàng

Trang 11

1.4.2 Kiến trúc hệ thống BKDATIS

1.4.2.1 Trường hợp sử dụng

Hình 2 Trường hợp sử dụng

Hệ thống có hai tác nhân là kỹ sư tri thức, và người sử dụng cuối:

- Kỹ sư tri thức: Tham gia vào bước tích hợp lược đồ Kỹ sư tri thức sẽcung các thông tin cần thiết, hiệu trỉnh lược đồ

- Người sử dụng cuối: Đưa vào các truy vấn và nhận các kết quả

Trang 12

o Tích hợp lược đồ khái niệm cục bộ thành lược đồ khái niệmchung.

b Tích hợp dữ liệu: Chức năng

o Tách truy vấn của người sử dụng thành các truy vấn cụ bộ

o Tích hợp kết quả truy vấn từ các nguồn cục bộ

1.4.2.3 Tầng giao tiếp người sử dụng

Hình 3 Mô hình hệ thống

Giải thích mô hình :

Ứng dụng có thể được cài đặt trên một máy server, nhận yêu cầu của người sửdụng thông qua các giao diện web browser và gửi trả lại kết quả cũng qua giaodiện đú Cỏc nguồn dữ liệu dùng cho tích hợp có thể được chuyển đổi thànhcác tài liệu XML và DTD thông qua các Wrapper DTD được sử dụng chotích hợp lược đồ, XML tài liệu dùng cho việc truy vấn

Dữ liệu trao đổi qua mạng biểu diễn theo chuẩn XML

Trang 13

Hình 4 Mô hình giao tiếp trong hệ thống

Trang 14

Chương II : CƠ SỞ LÝ THUYẾT

a) Dễ dàng chuyển đổi dữ liệu

Trong máy tính có nhiều định dạng tệp khác nhau, mỗi chương trình hầunhư đều có một định dạng tệp riêng Chuyển đổi dữ liệu giữa chúng là một vấn đề

tệp doc(Word), xls(Exel), dbf(Foxpro), mdb(Access), txt(Text), rtf(Rich Text)hay mới nhất là html, htm Khi chương trình của bạn phải in ra báo cáo chẳnghạn, bạn phải dự trù chuyển đổi và xuất báo cáo ra các dạng này Một công việcrất phức tạp Nếu dữ liệu của tệp chỉ được lưu theo dạng Text thì vấn đề trở lênđơn giản Hầu như mọi chương trình đều có thể đọc được tệp Text Mặc dù vậy tệpText khó có thể bố trí dữ liệu theo cấu trúc

Trong XML, dữ liệu và định dạng được lưu trữ ở dạng text và bạn có thể dễdàng cấu hình cũng như thay đổi bằng cỏc trỡnh soạn thảo thông thường XML.Hơn nữa bạn dễ dàng cỏ định cấu trúc cho tệp XML theo các thẻ tự định nghĩamột cách rất linh hoạt Với các chương trình sử dụng một bộ công cụ XML có thể

Trang 15

dễ dàng đọc cũng như sửa đổi tệp XML Như vậy XML cung cấp một cách lưu dữliệu rất hiệu quả.

b) Dữ liệu tự mô tả

Dữ liệu trong tài liệu XML tự mô tả nội dung và ý nghĩa của nó Chỉ dựavào tên ta có thể hình dung ra nội dung và cách dữ liệu muốn thể hiện

c) Dữ liệu có cấu trúc

Một khía cạnh mạnh mẽ khác của XML là không chỉ cho phép lưu

dữ liệu và tệp XML dựa trên thẻ mà còn tổ chức dữ liệu theo cấu trúc dữ liệu phâncấp hoàn chỉnh Đây là điều rất quan trọng khi cần khả năng định nghĩa dữ liệu cócấu trúc Ngoài ra với một định nghĩa kiểu dữ liệu (DTD) ta có thể kiểm tra xemcác cấu trúc trong tài liệu cú đỳng hay không

2.1.1.2 Tài liệu XML

Để biểu diễn dữ liệu, một tài liệu XMLsẽ nhóm dữ liệu trong các phần

tử-element, các phần tử này được giới hạn bới các thẻ -tag Các thẻ gắn với nhau theo

từng cặp thẻ đầu-start tag, thẻ cuối-end tag Một cặp thẻ trong XML sẽ gắn một

nhãn hay tên cho một mẫu dữ liệu để định danh nó

Trang 16

<subject> Quick In troduction XML </subject> Quick In troduction XML

Trong trường hợp đặc biệt khi phần thông tin trong hai thẻ đầu và cuối là

rỗng thì thẻ đó được gọi là thẻ rỗng - Empty tag- và được viết rút gọn như sau:

<tag/>

Các thẻ lồng trong một thẻ khác và được gán giá trị trực tiếp, giá trị này

không thường xuyên bị thay đổi thì có thể được biểu diễn qua các thuộc tính –

Attribute- là các cặp (tên thuộc tính _ giá trị thuộc tính ) nằm trong ngay thẻ mức

Trang 17

subject= “Quick In troduction XML” > = “Quick In troductionXML” >

2.2 Công cô truy vấn XML: XQuery

Trang 18

Hình 5 Mô hnhf dữ liệu XML

2.2.2 Cú pháp biểu thức truy vấn

XQuery là ngôn ngữ chức năng trong đó truy vấn được biểu diễn dưới dạngbiểu thức XQuery hỗ trợ một số loại biểu thức, cấu trúc Một số loại biểu thứcXQuery có thể lồng nhau Nó làm tăng tính linh hoạt

Đầu vào và đầu ra của một truy vấn là một mẫu mô hình dữ liệu dùng bởi cảXQuery 1.0 và XPath 2.0 XQuery không phải là một ngôn ngữ XML – một phiênbản bằng cú pháp XML gọi là XQueryX Các dạng chính của biểu thức XQuerynhư sau:

1 Biểu thức đường dẫn ví dụ: /a//b[c=5]

2 Hàm tạo biểu thức ví dụ: <a> </a>

3 Biểu thức FLWR ví dụ $x, 5

4 Biểu thức chứa các hàm và các toán tử ví dụ x + y, -z , foo(x, y)

5 Biểu thức điều kiện ví dụ IF THEN ELSE

6 Biểu thức hạn chế ví dụ: EVERY var IN expr SATISFIES expr

7 biểu thức kiểm tra hay thay đổi kiểu dữ liệu ví dụ: INSERT, REPLACE,DELETE

2.2.2.1 Biểu thức FLWR

Trang 19

Cơ chế chính của XQuery là biểu thức FLWR:

FOR – LET – WHERE – RETURN

FOR sinh ra một danh sánh có thứ tự các liên kết tên nhà xuất bản với $p

LET gắn từng liên kết trên với một liên kết phụ gắn các phần tử sách của nhà xuấtbản đó với viến $b, lúc này, chúng ta có danh sách cặp liên kết ($p, $b)

WHERE lọc danh sách này để nhận được các cặp mong muốn

RETURN xây dựng cho từng cặp một giá trị kết quả

Kết quả kết hợp trong trường hợp này là danh sách nhà xuất bản đã xuất bản hơn

Sự khác nhau giữa FOR và LET

FOR $x IN /library/book – sinh danh sách liên kết $x tới mỗi phần tử sách

trong thư viện, nhưng

LET $x := /library/book – sinh ra một liên kết đơn $x tới danh sách các phần

tử sách trong thư viện

Trang 20

Nó đủ để thực hiện kết nối các tài liệu:

2.2.2.2 Biểu thức gắn với các toán tử và hàm

XQuery cung cấp hầu hết các toán tử và các hàm có thể tìm thấy trong hầuhết các ngôn ngữ máy tính., bao gồm các phép toán số học, phép toán so sánh, vàcác phép toán danh sách Các hàm được xây dựng sẵn bao gồm AVG, SUM,COUNT, MAX và MIN, ngoài ra cũn cú cỏc hàm liên quan đến tài liệu và cỏc nỳtnhư DOCUMENT, EMPTY và DISTINCT

Ví dụ : Tìm giá thấp nhất của mỗi quyển sách, trả lại trong phần tử

Trang 21

2.2.2.3 Biểu thức điều kiện

XQuery cũng cho phép sử dụng biểu thức IF-THEN-ELSE

THEN <status>inactive</status> THEN <status>inactive</status>

ELSE <status>active</status> ELSE <status>active</status>

}

</user>

2.2.2.4 Biểu thức hạn chế

SOME và EVERY gọi là các biểu thức hạn chế Thông qua biểu thức SOME

có thể xác định xem liệu ít nhất một nút trong tập thoả mãn một vị từ Biểu thứcEVERY dùng để kiểm tra xem tất cả cỏc nỳt của tập thoả mãn một vị từ

Ví dụ sau liệt kê danh sách của các người dùng

<frequent_bidder>

{

FOR $u IN document("users.xml")//user_tuple

Trang 22

EVERY $item IN document("items.xml")//item_tuple SATISFIES

SOME $b IN document("bids.xml")//bid_tuple SATISFIES

($item/itemno = $b/itemno ($item/itemno = $b/itemno AND

Biểu thức đường dẫn bao gồm một dãy các bước Mỗi bước biểu diễn mộtdịch chuyển trên tài liệu dọc theo một trục, và mỗi bước có thể áp dụng một haynhiều vị từ để loại bớt cỏc nỳt khụng thoả mãn điều kiện Kết quả của mỗi bước làmột dẫy cỏc nỳt làm điểm bắt đầu cho bước tiếp theo Trục mặc định là trụcthường là “child”, bước đầu tiên trong đường dẫn trả về cỏc nỳt là con trực tiếpcủa nút trong ngữ cảnh

Kết quả của biểu thức đường dẫn là dãy cỏc nỳt hay các giá trị cơ sở Cỏc nỳttrong kết quả biểu thức đường dẫn sắp xếp theo vị trí ban đầu của nó trong tài liệugốc Nếu kết quả của biểu thức đường dẫn bao gồm cỏc nỳt bắt nguồn từ nhiều tàiliệu khác nhau, thứ tự cỏc nỳt phụ thuộc vào thực thi Kết quả cũng có thể chứacác giá trị trùng nhau Nhưng nó sẽ không chứa hai nút trùng nhau

Ví dụ sau dùng biểu thức đường dẫn chứa 3 bước ở bước thứ nhất xác định nútgốc trong tài liệu Bước thứ hai xác định chương thứ hai của tài liệu Bước thứ batìm phần tử hình ảnh xuất hiện ở bất kỳ đâu trong trương này, nhưng chỉ giữ lạicác phần tử cú nhón có giá trị “Tree Frogs”

Trang 23

(Q1) Trong chương hai của tài liệu tên “zoo.xml”, tìm cỏc hỡnh cú nhón “TreeFrogs”

document("zoo.xml")//chapter[2]//figure[caption = "Tree Frogs"]

XPath cho phép một nút được chọn từ một dãy cỏc nỳt bằng cách xác định thứ tựcủa nó trong dãy( như trong bước chapter[2] trong Q1) XQuery cho phép biểuthức điều kiện chọn chứa một dãy các số nguyên xác định thứ tự cỏc nỳt đượcchọn Dãy này có thể xác định bởi các số ( như 1,3,5,7) hay một biểu thức sinh ramột dãy số nguyên liên tiếp ( như 1 to 10 ) Nút đầu tiên trong dãy coi như có sốthứ tự là 1

(Q2) Tìm tất cả cỏc hỡnh trong chương từ 2 tới 5 của tài liệu “zoo.xml”

document("zoo.xml")//chapter[2 TO 5]//figure

Ngoài các biểu thức thông thường của XPath, XQuery giới thiệu một toán tử gọi làtoán tử dereference (“=>”) Toán hạng bên trái của toán tử dereference phải là mộtnỳt cú kiểu IDREF hay IDREFS Toán tử dereference trả lại các toán tử thamchiếu bởi thuộc tính Một toán tử dereference theo sau bởi tên của phần tử đích.Phần tử đích không khớp với tên đã cho sẽ không được trả lại Tên phần tử đích là

“*” cho phép phần tử đớch cú bất kỳ tên nào

Một toán tử dereference có thể sử dụng chỉ với tài liệu có lược dồ hay DTD, dotoán tử cần phải tỡm cỏc nỳt cú kiểu ID, IDREF, và IDREFS, cỏc nỳt đú chỉ có thể

có bằng các tham chiếu tới lược đồ hay DTD

Toán tử dereference có thể sử dụng trong các bước của biểu thức chính quy Ví dụ,truy vấn sau đây dùng toán tử dereference để tỡm nhón của phần tử “fig” thamchiếu bởi thuộc tính “refid” của phần tử “figref”

(Q3) Tỡm nhón của cỏc hỡnh tham chiếu bởi phần tử <figref> trong trườngcủa “zoo.xml” cú nhón là “Frogs”

document("zoo.xml")//chapter[title = "Frogs"]//figref/@refid=>fig/caption

Trang 24

Về mục đích toán tử dereference tương tự với hàm id trong XPath.

Trong XPath, mỗi bước chọn một tập cỏc nỳt liên quan đến một nút ngữ cảnh Mỗinút trong tập này sẽ được dùng như nút ngữ cảnh trong bước tiếp theo Tập cỏc nỳtđược chọn theo cách này được kết hợp, như bởi toán tử UNION, để nhận được kếtquả cho bước tiếp theo XQuery mở rộng XPath 1.0 bằng cách cho phép mỗi bướctrong một biểu thức đường dẫn chứa bất kỳ biểu thức XQuery nào, được chứatrong hai dấu đóng, mở ngoặc kép để tránh nhầm lẫn Ví dụ sau đưa ra một ví dụchứa toán tử ONION (định nghĩa bởi toán tử “|”) có thể được dùng trong một bướccủa biểu thức đường dẫn

(Q4) Tìm tất cả nhãn của cỏc hỡnh và bảng trong các chương của tài liệu

là số nguyên 47, thì data() có kiểu nguyên và giá trị là 47.Nếu nội dung của đối sốcủa nó không phải là một giá trị có kiểu đơn giản, một hàm dữ liệu sẽ sinh ra mộtlỗi

Khi một toán tử định nghĩa trờn cỏc kiểu đơn giản được sử dụng với m?t toỏnhạng là một dãy cỏc nỳt, hàm data sẽ lần lượt trích nội dung của cỏc nỳt, sinh rakết quả là một dãy các giá trị đơn giản

Ví dụ đây minh hoạ lời gọi ngầm và rõ ràng của hàm data Nếu truy vấn chọn mộtnhân viên có một mức lương, kết quả của truy vấn sẽ là một số nguyên, nếu truyvấn chọn nhiều nhõn vên, hay một nhân viên có nhiều mức lương, kờt quả sẽ làmột dãy các số nguyên

Trang 25

(Q6) Từ một tài liệu chứa các nhân viên và lương tháng của họ, tách ra lươnghàng năm của nhân viên tên “Fred”

//emp[name="Fred"]/salary * 12

hay

//emp[name="Fred"]/salary/data() * 12

2.2.3 Hướng tiếp cận theo trường hợp sử dụng

Mỗi trường hợp sử dụng tập trung vào một vùng ứng dụng đặc biệt, và có chứaDTD và ví dụ dữ liệu ra Mỗi trường hợp sử dụng xác định một tập truy vấn có thể

áp dụng với dữ liệu vào, và các kết quả hi vọng trả về với mỗi truy vấn

Mã ví dụ

Data Type Definition (DTD):

<!ELEMENT bib (book* )>

<!ELEMENT book (title, (author+ | editor+ ), publisher, price )> <!ATTLIST book year CDATA #REQUIRED >

<!ELEMENT author (last, first )>

<!ELEMENT editor (last, first, affiliation )>

<!ELEMENT title (#PCDATA )>

<!ELEMENT last (#PCDATA )>

<!ELEMENT first (#PCDATA )>

<!ELEMENT affiliation (#PCDATA )>

<!ELEMENT publisher (#PCDATA )>

<!ELEMENT price (#PCDATA )>

Dữ liệu thử (tìm thấy ở www.bn.com/bib.xml)

<bib>

<book year="1994">

<title>TCP/IP Illustrated</title>

<author><last>Stevens</last><first>W.</first></author>

Trang 26

<publisher>Morgan Kaufmann Publishers</publisher>

Trang 28

2.2.4 XqueryX: cú pháp XML cho Xquery

XQueryX là dạng biểu diễn XML của XQuery Nó được tạo bằng cách ánh

xạ các luật tạo XQueryX tổng quát sang luật XML Kết quả có thể không thuậntiện cho người đọc và viết nhưng các chương trình có thể phân tích dễ dàng, và doXQueryX biểu diễn dưới dạng XML nên có thể dựng cỏc công cụ XML chuẩn đểđọc, tạo, dịch và thay đổi truy vấn

XQueryX có thể sử dụng trong một vài môi trường:

- Sử dụng lại bộ phân tích: Trong môi trường dữ liệu không đồng nhất,một vài hệ thống cú dựng chỳng để thực hiện truy vấn Một bộ phân tíchsinh ra XQueryX cho tất cả hệ thống

- Truy vấn trên truy vấn: Bởi vì XQueryX biểu diễn dạng XML, truy vấn

có thể chuyển thành câu truy vấn mới Ví dụ, một truy vấn có thể thựchiện trên tập các truy vấn XQueryX để xác định truy vấn nào dùng biểuthức FLWR

- Sinh truy vấn: Trong vài môi trường lập trình hướng XML, có thệ sẽthuận tiên hơn nếu xây dưng truy vấn dưới dạng XQueryX, do đó cáccông cụ XML có thể dùng để thực hiện điều này

- Nhúng truy vấn dưới dạng XML: XQueryX có thể nhúng trực tiếp vàotài liệu XML

2.2.4.1 Ánh xạ cú pháp

Với mỗi luật trong cú pháp tổng quát, chúng ta tạo một biểu diễn tươngđương dưới dạng XML Ví dụ, luật chứa các luật sản xuất sau:

FLWRExpr ::= (ForClause | LetClause)+ WhereClause? "return" Expr

ForClause ::= "for" Variable "in" Expr ("," Variable "in" Expr)*

LetClause ::= "let" Variable ":=" Expr ("," Variable ":=" Expr)*

WhereClause ::= "where" Expr

Mô hình nội dung XQueryX sau đây tương ứng với cấu trúc luật trên

<!ELEMENT flwr ((forAssignment | letAssignmen)+, where?, return)>

Trang 29

<!ELEMENT forAssignment %expression;>

<!ATTLIST forAssignment variable CDATA #REQUIRED> <!ELEMENT letAssignment %expression; >

<!ATTLIST letAssignment variable CDATA #REQUIRED > <!ELEMENT where (%expression;)>

<!ELEMENT return (%expression;)>

Bây giờ xét biểu thức FLWR trong XQuery

WHERE $b/publisher = "Morgan Kaufmann" AND $b/year = "1998"RETURN

Trang 30

<q:constant datatype="CHARSTRING">Morgan Kaufmann</q:constant> </q:function>

<!ENTITY % ORDER_LITERALS "(ASCENDING | DESCENDING)">

<!ENTITY % QUANTIFIER_TYPE "(SOME | EVERY)">

<!ENTITY % expression "(q:variable | q:constant | q:function | q:flwr

| q:elementConstructor | q:predicatedExpr | q:sortBy | q:ifThenElseExpr

| q:quantifier | q:exprList | q:step | q:identifier | q:nodeKindTest)">

<!ENTITY % AXIS_TYPE "(DEREFERENCE | ANCESTOR |ANCESTORORSELF

Trang 31

| ATTRIBUTE | CHILD | DESCENDANT | DESCENDANTORSELF |FOLLOWING

| FOLLOWINGSIBILING | NAMESPACE | PARENT | PRECEDING

| PRECEDINGSIBLING | SLASHSLASH | SELF)">

<!ENTITY % NODE_KIND "(NODE | TEXT | COMMENT | DATA |PROCESSING_INSTRUCTION)">

<!ELEMENT q:query (q:functionDefinition* , %expression;)>

<!ELEMENT q:functionDefinition (q:argumentDeclaration* , %expression;)>

<!ATTLIST q:functionDefinition functionName CDATA #REQUIRED

datatype CDATA #REQUIRED >

<!ELEMENT q:argumentDeclaration EMPTY>

<!ATTLIST q:argumentDeclaration name CDATA #REQUIRED

datatype CDATA #REQUIRED >

<!ELEMENT q:exprList (%expression;)*>

<!ELEMENT q:predicatedExpr (%expression; , q:predicate+)>

<!ELEMENT q:predicate ((q:rangeFrom , q:rangeTo) | %expression;)>

<!ELEMENT q:rangeFrom (%expression;)>

<!ELEMENT q:rangeTo (%expression;)>

<!ELEMENT q:variable (#PCDATA)>

<!ELEMENT q:identifier (#PCDATA)>

<!ELEMENT q:constant (#PCDATA)>

<!ATTLIST q:constant datatype CDATA #IMPLIED >

<!ELEMENT q:function (%expression;)*>

<!ATTLIST q:function name CDATA #REQUIRED >

<!ELEMENT q:flwr ((q:forAssignment | q:letAssignment)+ , q:where? ,q:return)>

Trang 32

<!ELEMENT q:forAssignment %expression;>

<!ATTLIST q:forAssignment variable CDATA #REQUIRED >

<!ELEMENT q:letAssignment %expression;>

<!ATTLIST q:letAssignment variable CDATA #REQUIRED >

<!ELEMENT q:where (%expression;)>

<!ELEMENT q:return (%expression;)>

<!ELEMENT q:ifThenElseExpr (%expression; , %expression; , %expression;)>

<!ELEMENT q:sortBy (%expression; , q:sortfield+)>

<!ELEMENT q:sortfield (%expression;)>

<!ATTLIST q:sortfield order %ORDER_LITERALS; "ASCENDING" >

<!ELEMENT q:quantifier (q:quantifierAssignment , %expression;)>

<!ATTLIST q:quantifier type %QUANTIFIER_TYPE; "SOME" >

<!ELEMENT q:quantifierAssignment (%expression;)>

<!ATTLIST q:quantifierAssignment variable CDATA #REQUIRED >

<!ELEMENT q:elementConstructor (q:tagName , q:attributeConstructor* ,(%expression;)*)>

<!ELEMENT q:tagName (q:identifier | q:variable)>

<!ELEMENT q:attributeConstructor (q:attributeName , q:attributeValue)>

<!ELEMENT q:attributeName (q:identifier | q:variable)>

<!ELEMENT q:attributeValue (%expression;)>

<!ELEMENT q:step (%expression; , %expression;)>

<!ATTLIST q:step axis %AXIS_TYPE; #REQUIRED

abbreviated (true | false ) 'true' >

<!ELEMENT q:dot EMPTY>

<!ELEMENT q:dotdot EMPTY>

<!ELEMENT q:nodeKindTest (q:piTargetTest?)>

<!ATTLIST q:nodeKindTest kind %NODE_KIND; #REQUIRED >

<!ELEMENT q:piTargetTest (#PCDATA)>

2.3 DEL – Ngôn ngữ trích chọn dữ liệu

Trang 33

Wrapper mà chúng tôi xây dựng dùng ngôn ngữ DEL làm ngôn ngữ biểudiễn kịch bản trích chọn thông tin DEL là được tổ chức W3C công bố Nó đóđược sử dụng trong dự án Republica Một ưu điểm của DEL là có thể dùng đểtrích chọn dữ liệu cả tài liệu HTML hay một tài liệu văn bản thông thường Cũngchính vì thế mà nó khụng tận dụng được hết các cấu trúc của HTML Tuy nhiên dođược biểu diễn đưới dạng XML nên dễ dàng phân tích và xây dựng Để áp dụngvào việc xây dựng wrapper chúng tôi đã bỏ bớt một số phần của DEL (hỗ trợ đểtách văn bản) cũng như thêm một số phần tử để việc tách hiệu quả hơn.

2.3.1 Các ngôn ngữ kịch bản tách dữ liệu trong wrapper

Nhiều wrapper cung cấp một ngôn ngữ để mô tả các luật tách để tách dữliệu từ các tài liệu HTML Các ngôn ngữ này dùng để thể hiện các truy vấn trongquá trình tỏch Nó cú cac thuộc tính đặc biệt sau: (a) tỏch cỏc cấu trúc cú pháp từtài liệu HTML; (b) xác định cấu trúc đó dựa vào nội dung của nó (ngữ nghĩa); (c)duyệt theo cấu trúc dựa theo biểu thức đường dẫn; và (d) ánh xạ các cấu trúc đó tớicấu trúc đối tượng tương ứng của kết quả

HEL (HTML Extraction Language) là ngôn ngữ tách dữ liệu sử dụng trong

dự án W4F HEL là ngôn ngữ dạng DOM trong đó tài liệu HTML được biểu diễndưới dạng đồ thị các thẻ

Ví dụ một luật tách của HEL: caption = html.body.table[0].tr[*].txt

HEL mô hình tài liệu HTML theo mô hình DOM và xác định thông tin táchdựa vào cấu trúc phân lớp của cây Dữ liệu tách ra theo các luật lưu vào các trường

có trong lược đồ ban đầu dạng danh sách Thông tin sau đó được lưu theo NSL(nested string lists) Cuối cùng cấu trúc NSL được ánh xạ theo cấu trúc trongwrapper W4F cung cấp các hàm để các chương trình sử dụng thông tin tách trongtrình

Dự án AraneusWTK sử dụng ngôn ngữ NF để biểu diễn các luật tỏch Cỏcluật tách trong AraneusWTK biểu diễn theo cú pháp BNF

Ví dụ

$AllConferences: *<hr> ( $ConfWithInitial )+ ;

Trang 35

END

Trong quá trình đối sỏnh cỏc luật NF dữ liệu có thể được tách ra theo mộttrong các cấu trúc khai báo trong các $TPi (i là số nguyên) $TPi khai báo một cấutrúc đơn giản bao gồm tờn cỏc trường dữ liệu ra và kiểu dữ liệu Ngoài ra NF còncung cấp một cơ chế bắt lỗi

Nói chung nhiều dự án xây dựng wrapper đều sử dụng một ngôn ngữ nào

đó Dự án Jedi dùng ngôn ngữ Jedi, Lapis dựng cỏc ràng buộc văn bản (textcontrain) và nhiều dự án dùng biểu thức chính quy làm ngôn ngữ kịch bản

Trong các ngôn ngữ trên dữ liệu ra có cấu trúc khá đơn giản (Araneus dùngcấu trúc danh sách, còn HEL dựa vào cấu trúc NSL để chương trình sử dụngchúng định dạng lại) Nó không thể đưa ra được một kết quả có cấu trúc phức tạp

Trong dự án này chúng tôi đã chọn ngôn ngữ DEL làm ngôn ngữ kịch bản.Cấu trúc dữ liệu ra rất linh hoạt nó được biểu diễn ngay trong quỏ tỡnh tỏch thôngtin Một lý do nữa mà chúng tôi chọn DEL đó là DEL là một ngôn ngữ có địnhdạng XML Do đó không phải mất công xây dựng một chương trình phân tích cúpháp phức tạp mà có thể sử dụng ngay các công cụ phân tích XML để phân tíchchúng

2.3.2 Giới thiệu DEL

DEL là tài liệu dạng XML mô tả quá trình chuyển từ một định dạng dữ liệukhác sang dạng XML Một kịch bản DEL cho biết cách xác định vị trí và tỏch cỏcđoạn dữ liệu từ một dữ liệu vào và chốn chỳng vào một tài liệu XML kết quả Một

bộ xử lý tài liệu DEL có thể dùng để trích thông tin rồi tạo một tàI liệu XML mớihay thay đổi tàI liệu XML hiện tại bằng cách thờm cỏc phần tử mới và các thuộctích ở một phần tử xác định bằng biểu thức XPath Định vị các đoạn dữ liệu trên

Trang 36

dữ liệu vào có thể thực hiện bằng cách tìm kiếm theo mẫu và đối sánh theo biểuthức chính quy Các đoạn dữ liệu trích được trước hết được lưu vào các thanh ghi(hay ngăn xếp) để có thể lọc lại trước khi đưa ra Dữ liệu sau đó được từ các thanhghi( hay ngăn xếp) và đặt vào vị trí chính xác trong cây DOM của tàI liệu XMLsinh ra Để đặt dữ liệu vào XML, một con trỏ vị trí được dùng để lưu vị trí hiệnhành Con trỏ vị trí có thể thay đổi bằng biểu thức XPath.

2.3.3 Định nghĩa ngôn ngữ trích dữ liệu

Phần sau đây sẽ mô tả các phần tử của ngôn ngữ trích chọn dữ liệu, cácthuộc tính cũng như giá trị của nó

Chú ý: Giá trị của các thuộc tính “stack” và “regX”(trong đó X là tên thanhghi do người dùng định nghĩa có ít nhất một ký tự) sẽ được phân tích thành giá trịtrước khi sử dụng Sau đó giá trị thực sự chủa chúng sẽ được lấy từ bộ nhớ (stackhay register) Trong các trường hợp khác giá trị thực sự được cho trong giá trị củathuộc tính

2.3.3.1 wrapper

Chức năng: phần tử wrapper là phần tử chứa ( phần tử gốc) cho các luậtkịch bản DEL Khi tạo một tàI liệu ra mới, phần tử map đầu tiên có thuộc tínhmaptype là “createDocument”

Chứa: đầu tiên là các phần tử template và map sau đó có thể có một trong các phần

tử sau đây: repeat, map, extract, test, set hay runtemplate

Ngày đăng: 30/04/2015, 15:08

HÌNH ẢNH LIÊN QUAN

Hình 1 Hệ thống tích hợp dữ liệu - đồ án công nghệ thông tin Xây dựng wrapper cho nguồn dữ liệu Web trong hệ thống tích hợp dữ liệu
Hình 1 Hệ thống tích hợp dữ liệu (Trang 10)
Hình 2 Trường hợp sử dụng - đồ án công nghệ thông tin Xây dựng wrapper cho nguồn dữ liệu Web trong hệ thống tích hợp dữ liệu
Hình 2 Trường hợp sử dụng (Trang 11)
Hình 3 Mô hình hệ thống - đồ án công nghệ thông tin Xây dựng wrapper cho nguồn dữ liệu Web trong hệ thống tích hợp dữ liệu
Hình 3 Mô hình hệ thống (Trang 12)
Hình 4 Mô hình giao tiếp trong hệ thống - đồ án công nghệ thông tin Xây dựng wrapper cho nguồn dữ liệu Web trong hệ thống tích hợp dữ liệu
Hình 4 Mô hình giao tiếp trong hệ thống (Trang 13)
Hình 5 Mô hnhf dữ liệu XML - đồ án công nghệ thông tin Xây dựng wrapper cho nguồn dữ liệu Web trong hệ thống tích hợp dữ liệu
Hình 5 Mô hnhf dữ liệu XML (Trang 18)
Hình 6Chuyển đổI các Markup thành chuỗI các tag và PCData - đồ án công nghệ thông tin Xây dựng wrapper cho nguồn dữ liệu Web trong hệ thống tích hợp dữ liệu
Hình 6 Chuyển đổI các Markup thành chuỗI các tag và PCData (Trang 58)
Hình 8 Hiển thị DEL script - đồ án công nghệ thông tin Xây dựng wrapper cho nguồn dữ liệu Web trong hệ thống tích hợp dữ liệu
Hình 8 Hiển thị DEL script (Trang 65)
Hình 9: Hiển thị trang Web dưới dạng text - đồ án công nghệ thông tin Xây dựng wrapper cho nguồn dữ liệu Web trong hệ thống tích hợp dữ liệu
Hình 9 Hiển thị trang Web dưới dạng text (Trang 66)
Hình 10 Kết quả thực hiện - đồ án công nghệ thông tin Xây dựng wrapper cho nguồn dữ liệu Web trong hệ thống tích hợp dữ liệu
Hình 10 Kết quả thực hiện (Trang 67)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w