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

PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER

62 858 1

Đ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 62
Dung lượng 3,95 MB

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

Nội dung

Với những bộ luật thông minh, WAVE chophép tận dụng được gần như tối đa khả năng của một hệ thống mạng ngang hàng vớicác máy tham gia phân tán để thực hiện những bài toán đòi hỏi độ phức

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÀI THU HOẠCH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

Trang 2

LỜI MỞ ĐẦU 1

CHƯƠNG 1: MẠNG XÃ HỘI VÀ CÁC BÀI TOÁN LIÊN QUAN 3

1.1 Lịch sử Mạng xã hội 3 1.2 Đặc điểm Mạng xã hội ảo 4 1.3 Một số bài toán đối với Mạng xã hội 7 CHƯƠNG 2: NGÔN NGỮ WAVE 10

2.1 Giới thiệu về ngôn ngữ Wave 10 2.2 Node, Link và Không gian phân tán 10 2.3 Cấu trúc của ngôn ngữ Wave 12 2.4 Cấu trúc dữ liệu cơ bản của Wave 13 2.6 Các Acts trong Wave 14 2.7 Rules – Các luật trong Wave 17 2.8 Wave và mô hình lập trình truyền thống 19 CHƯƠNG 3: MẠNG TRI THỨC CHO MẠNG XÃ HỘI VÀ CÁC BÀI TOÁN 25

3.1 Xây dựng mạng tri thức cho mạng xã hội 25 3.1.1 Thu thập thông tin cho mạng tri thức 25 3.1.2 Tạo dựng mạng tri thức 26 3.1.3 Lưu trữ 26 3.1.4 Thành phần tạo dựng Mạng tri thức 28 3.2 Bài toán phân tích quan hệ 29

3.3 Bài toán phân tích đặc điểm 38

3.3.1 Bài toán tìm kiếm theo mẫu 38 3.3.2 Bài toán Tìm Đường đi ngắn nhất 39 3.3.4 Bài toán tìm Đường kính 41 3.3.5 Bài toán tìm Tâm và Bán kính 45 CHƯƠNG 4: ỨNG DỤNG XÁC ĐỊNH KEY PLAYER TRONG MẠNG XÃ HỘI 46

4.1 Đặt vấn đề 46

4.2 Giải quyết vấn đề 46

4.3 Giải bài toán tìm key player trong mạng xã hội 50

4.4 Chương trình 55

KẾT LUẬN 57

TÀI LIỆU THAM KHẢO 58

Trang 3

M Đ U Ở ĐẦU ẦU

Ngày nay, sự phát triển của công nghệ thông tin nói chung và kiến trúc mạng nói riêng

đã và đang đạt được những bước tiến nhất định Công nghệ thông tin đang dần đượcđưa vào ứng dụng trong mọi lĩnh vực của cuộc sống, từ việc điều khiển các thiết bịmột cách tự động, hỗ trợ hoạt động kinh doanh, sản xuất của con người, cho đến việcgiả lập chính xã hội loài người – mạng xã hội

Mạng xã hội ra đời đã trở thành một trào lưu mới trong mọi tầng lớp sử dụng máy tính

và Internet làm công cụ giao lưu, tìm kiếm tri thức Mạng xã hội giúp thu hẹp khoảngcách giữa người với người, góp phần biến thế giới mà chúng ta đang sinh sống trở

thành một “thế giới phẳng” Với khả năng kết nối, chia sẻ thông tin một cách dễ

dàng, mạng xã hội dần trở thành một kho kiến thức khổng lồ Và từ đây, nhu cầu tìmkiếm, phân tích lượng thông tin khổng lồ trong rất nhiều mạng xã hội đang tồn tại vàphát triển trở nên cần thiết hơn bao giờ hết

Tuy thế, các công nghệ tìm kiếm hiện tại đứng đầu là Google đều chưa thể tận dụnghết khả năng của mạng xã hội Bởi lẽ mạng xã hội có cấu trúc rất mở, các thành phầnđược gắn kết với nhau theo dạng quan hệ (một chiều, hai chiều) nên việc tìm kiếmthông tin trên mạng xã hội phải làm việc ở mức phân tích quan hệ, tìm kiếm các đặcđiểm Trong khi các cỗ máy tìm kiếm hiện thời vẫn chỉ tập trung vào tìm kiếm nộidung thì có một công nghệ mới đang có những bước phát triển rất lớn lại có khả năngphân tích, tìm kiếm dựa trên quan hệ, đó là công nghệ WAVE

Công nghệ WAVE bao gồm bộ ngôn ngữ WAVE và bộ thông dịch chính ngôn ngữ đó.Chúng tập hợp lại thành một nền tảng mạnh mẽ trong việc hỗ trợ tính toán và xử lýsong song dựa trên các hệ thống phân tán Với những bộ luật thông minh, WAVE chophép tận dụng được gần như tối đa khả năng của một hệ thống mạng ngang hàng vớicác máy tham gia phân tán để thực hiện những bài toán đòi hỏi độ phức tạp tính toáncao

Trên cơ sở đó, bài thu hoạch này tập trung tìm hiểu và làm rõ hơn khả năng tận dụngcông nghệ WAVE vào việc xử lý các bài toán dựa trên quan hệ trên các mạng xã hội,

để từ đó tạo tiền đề cho việc ứng dụng WAVE vào trong các bài toán lớn hơn, giảiquyết vấn đề thu thập, tìm kiếm và phân tích thông tin trên diện rộng Bên cạnh đó, tìmhiểu việc xác định key player trong mạng xã hội, cài đặt thuật toán xác định keyplayer trong mạng xã hội(đồ thị)

Do giới hạn về mặt thời gian, tất cả những ứng dụng của WAVE cũng như việc ứngdụng WAVE vào các bài toán phân tích trong mạng xã hội sẽ không thể được trình bàymột cách đầy đủ và chi tiết Bài thu hoạch gồm ba phần chính:

Trang 4

Phần đầu nhằm giới thiệu về mạng xã hội, trình bày các đặc điểm của mạng xã hộiđồng thời lý giải vì sao muốn tìm hiểu thông tin trong một mạng xã hội phải cần đếncông nghệ WAVE

Phần thứ hai cung cấp cái nhìn chi tiết hơn về mạng xã hội hiện vẫn đang dần đầu vềquy mô, số lượng người dùng tại Việt Nam Phần này cũng trình bày việc đưa các dữliệu “ảo” của mạng xã hội vào thành các thành phần quan hệ trong WAVE

Phần ba tạo ra mạng tri thức nhằm giải quyết các bài toán phân tích quan hệ trongmạng xã hội

Phần bốn tìm hiểu xác định key player trong mạng xã hội Giải bài toán các vấn đềtrên đồ thị, tìm key player trên mạng xã hội( đồ thị)

Qua đây, em xin gửi lời cảm ơn chân thành tới thầy PGS.TS Đỗ Phúc, người đãhướng dẫn và chỉ bảo tận tình cho em trong suốt quá trình học tập cũng như thực hiệnbài thu hoạch này Em xin cảm ơn những chuyên gia cố vấn qua mạng đã giúp đỡ vàtạo điều kiện tốt nhất cho em hoàn thành bài thu hoạch này Bên cạnh đó, em cũng xincảm ơn các bạn bè học viên cùng lớp đã cùng thảo luận, nghiên cứu vấn đề này

Học viên thực hiện

Phạm Ngọc Giàu

Trang 5

CHƯƠNG 1: MẠNG XÃ HỘI VÀ CÁC BÀI TOÁN LIÊN QUAN

Mạng xã hội, hay còn gọi là mạng xã hội ảo (social network) là một cấu trúc mang tính

xã hội tạo thành từ các nút (node), mỗi nút đó có thể là một cá nhân hay một tổ chức.Mạng xã hội làm nhiệm vụ kết nối các thành viên, người dùng trên Internet lại vớinhau dựa theo những tiêu chí nào đó, với nhiều mục đích khác nhau, không phân biệtthời gian và không gian Với một cấu trúc đơn giản nhất như thế, một mạng xã hội có

thể được biểu diễn như một “đồ thị” như Hình 1.1

Hình 1.1: Đồ thị biểu diễn cấu trúc mạng xã hội1.1 Lịch sử mạng xã hội

Mạng máy tính (computer network) ra đời làm nền tảng cho sự xuất hiện củamạng xã hội Có một vài cách tiếp cận khác nhau về mạng xã hội Cách tiếp cận đầutiên cho rằng mạng xã hội là một nơi để mọi người có thể tương tác với nhau thôngqua các phòng trò chuyện (chat room), chia sẻ thông tin cá nhân, ý tưởng qua các chủ

đề được tạo lập trên những trang cá nhân, mà về sau này được gọi là “blogging” Những mạng xã hội dạng này thì đã xuất hiện từ năm 1985 với THE WELL,

Theglobe.com (1994), Geocities (1995) và Tripod (1995)

Còn một cách tiếp cận khác, đơn giản hơn thì mạng xã hội là nơi mà mọi người

có thể kết nối với nhau thông qua địa chỉ thư điện tử của họ Mạng xã hội đầu tiên của

dạng này – Classmates – ra đời vào năm 1995 với mục đích kết nối bạn học, tiếp đó

Trang 6

SixDegrees được tạo ra vào năm 1997 là với mục đích giao lưu kết bạn dựa theo sở

thích

Năm 2002, Friendster ra đời và mau chóng trở thành trào lưu tại Mỹ Tuy vậy do phát

triển quá nhanh mà thiếu đi sự tính toán đối với phân tải đã khiến các server của dịch

vụ này hay bị xảy ra hiện tượng quá tải Công ty này sau đó có được Google đề nghịmua lại với trị giá khoảng 30 triệu đô la Mỹ tuy nhiên thương vụ không thành công

Năm 2004, MySpace đi vào hoạt động, nhanh chóng nổi bật với các tính năng mới hấp

dẫn, trong đó phải kể đến tính năng chia sẻ nhạc Dịch vụ này đã thu hút được rấtnhiều các ban nhạc tham gia vào mạng xã hội MySpace, từ đó giúp cho mạng xã hộinày có thêm được rất nhiều những thành viên quan tâm, để rồi trở thành mạng xã hộilớn nhất thế giới cho tới tận thời điểm hiện nay

Năm 2006 đánh dấu sự có mặt của Facebook (thực ra là việc mở rộng phạm vi của

mạng xã hội này ra toàn cầu thay vì cho cộng đồng các trường đại học tại Mỹ vốn đãtồn tại từ năm 2004), một mạng xã hội “mở” Facebook cung cấp một nền tảng lập

trình gọi là Facebook Platform cho phép những thành viên chuyên sâu có thể tạo ra

các ứng dụng (tiếng anh: Applications) Nhờ vậy Facebook có được rất nhiều các ứngdụng vừa được cập nhật một cách nhanh chóng, lại vừa phù hợp với nhiều đối tượngvới các sở thích cá nhân khác nhau

Ngoài ra hiện nay còn có một trào lưu mới xuất hiện nhưng cũng đã phát triển hết sức

nhanh chóng, đó là Twitter Nếu như các mạng xã hội trước kia thường được gọi là

blogging thì Twitter còn được gọi là micro-blogging Được gọi như vậy bởi Twitterchỉ cung cấp cho người dùng khả năng tạo ra những dòng tin nhắn nhanh và ngắn gọn

cỡ 140 ký tự (gần giống với số ký tự cho phép trong một tin nhắn SMS trên điện thoại

di động)

1.2 Đặc điểm mạng xã hội o ảo

Có thể nói Mạng xã hội có thể phát triển mạnh mẽ được như hiện nay là do những ưuthế đáng kể mà chúng mang lại so với các cách tiếp cận cộng đồng truyền thống

Một là vấn đề chi phí Có thể thấy rằng việc tham gia vào một mạng xã hội, dù

là đối với một cá nhân hay một tổ chức đều chiếm một chi phí tương đối thấp, bởi trênthực tế, các mạng xã hội hiện nay hầu hết cho phép đăng ký và sử dụng miễn phí.Trong khi đó, khi đã trở thành một thành viên của một mạng xã hội, các cá nhân hay tổchức đó có thể có được rất nhiều thông tin hữu ích cho mối quan tâm, sự phát triển củamình Ví dụ như một công ty sau khi tham gia một mạng xã hội nào đó, có thể chỉ cầnvài cú nhấp chuột là đã có thể tìm hiểu về các sở thích của người dùng, xu hướng củanhững sở thích đó Qua đó, công ty có thể phát hiện ra được những khách hàng tiềm

Trang 7

năng, vạch ra một chiến lược kinh doanh mới cho thời kỳ khó khăn … Những việc làmnày có thể giúp ích rất nhiều cho hoạt động kinh doanh hiện tại của công ty đó.

Hai là khả năng xây dựng các mối quan hệ tin cậy Nhờ vào việc quan sát được

các bài viết, đánh giá của các thành viên trong mạng xã hội, một tổ chức có thể nắmbắt được nhu cầu và đánh giá của khách hàng về các sản phẩm hay dịch vụ mà họ cungcấp Hơn thế là khi họ có những phản hồi tích cực đối với khách hàng, từ đó xây dựngmột mối quan hệ “ảo” với khách hàng trong khi có thể mang lại một niềm tin “thực”.Không quá tốn kém như những hệ thống chăm sóc khách hàng lớn mà mang lại hiệuquả cũng không hề nhỏ, đó chính là lợi thế của mạng xã hội

Hay đối với những cá nhân, nhờ việc đọc được những bài viết phần nào mang tính chấtriêng tư, tâm sự của bạn bè, hay con cái, họ có thể có được những hiểu biết rõ rànghơn về bạn bè, con cái của mình, thấy được vấn đề mà người kia đang gặp phải, từ đógiúp họ giải quyết vấn đề dễ dàng hơn Bởi nghiên cứu cho thấy, giới trẻ đang có xuhướng kể ra những phức tạp cá nhân trên blog, mạng xã hội dễ dàng hơn là nói chuyệntrực tiếp với các bậc phụ huynh, hay cả với bạn bè Khi ấy niềm tin trong mối quan hệcũng được nâng lên đáng kể

Ba là việc tạo lập các mối quan hệ trong mạng xã hội trở nên dễ dàng hơn bao

giờ hết Thử tưởng tượng trong mạng xã hội nào đó, người dùng có một vài người bạn,những người ấy lại có nhiều bạn bè khác, cứ như vậy Nhờ vào mạng xã hội, ngườidùng ban đầu có thể thiết lập một mối quan hệ với bất cứ ai, đơn giản chỉ khởi đầubằng việc gửi đi một lời nhắn đề nghị được kết bạn Sau khi được chấp nhận bởi phíabên kia, việc cần làm để gìn giữ mối quan hệ đó đó là cố gắng cân bằng giữa việc cho

đi và nhận lại Việc này ở trên một mạng xã hội tỏ ra đơn giản hơn so với việc duy trìmối quan hệ trong xã hội bình thường, bởi cho đi và nhận về trong mạng xã hội nhiềukhi chỉ nằm ở mức có những bình luận trong những bài viết của bạn bè

Những ưu điểm mà mạng xã hội mang lại như đã kể trên là rất to lớn, tuy vậy cũng cần phải chỉ ra một số mặt hạn chế của mạng xã hội:

Vấn đề đầu tiên mà mạng xã hội gặp phải là vấn đề về thông tin cá nhân của

người dùng Khi đã kết nối vào mạng xã hội, có bạn bè trên đó đồng nghĩa với việcngười dùng cũng phải đối mặt với nguy cơ bị lợi dụng các thông tin (cá nhân) đăng tảilên đó Với những thông tin như vậy, những kẻ có ý đồ không tốt có thể tìm hiểu nhiềuthứ khác hơn về người dùng đó Điều đó có thể làm ảnh hưởng tới lợi ích cá nhân củangười dùng đó ngay trong thời điểm hiện tại cũng như tương lai Biết đâu một bức ảnhxưa cũ có thể được lôi ra để làm hại tới thanh danh của người dùng đó về sau này???

Trang 8

Vấn đề thứ hai nằm ở chính cơ chế vận hành của các mạng xã hội Mạng xã hội

cũng như mọi trang web khác, đều phải giải quyết các vấn đề liên quan tới bảo mậtthông tin Thêm vào đó, các trang mạng xã hội còn gặp phải một số vấn đề riêng ví dụnhư tình trạng nhắn tin rác làm phiền những thành viên tham gia, sử dụng những công

cụ tự viết Vấn đề này xuất hiện khá nhiều trên các phương tiện thông tin đại chúnggần đây, có thể lấy ví dụ về vài sự cố các tài khoản mạng xã hội của những người nổitiếng bị hacker kiểm soát, những thông tin nhạy cảm được tung ra …

Một vấn đề nữa cần nói tới trong mặt hạn chế của mạng xã hội là việc tiêu tốn

thời gian sử dụng Việc tham gia một mạng xã hội, kiểm tra các thay đổi gần đây từbạn bè, cập nhật những thay đổi, thông tin cho chính mình nhiều khi làm mất thời giancủa người tham gia Tất nhiên điều này còn tùy thuộc vào cách từng người phân phốithời gian của mình cho việc “online” trên các mạng xã hội mà họ tham gia Tuy vậytheo những phân tích gần đây thì có tình trạng khá nhiều người trẻ bị hội chứng

“nghiện” khi tham gia mạng xã hội Nếu tình trạng này xảy ra ở diện rộng thì sẽ có rấtnhiều hiệu ứng không tốt kèm theo

Như vậy, cũng như những dịch vụ khác triển khai và khai thác trên nền Internet, mạng

xã hội cũng thể hiện được những ưu và nhược điểm nhất định Nhược điểm của mạng

xã hội phần lớn kế thừa từ những nhược điểm vốn có của các dịch vụ nền web, nhưngnhững ưu điểm của dịch vụ này lại mang tính chất đột phá so với các cách thức truyền

thông cộng tác truyền thống Như trong một cuốn sách với tựa đề Groundswell của

nhà xuất bản Forrester Research ra đời năm 2008, mạng xã hội và tác động của nó đã

được mô tả với thuật ngữ “groundswell”, tạm hiểu là: “một bước tiến tự nhiên của loài

người khi sử dụng các công cụ trên mạng để kết nối, tích lũy kiến thức, lấy những gì

họ cần – thông tin, hỗ trợ, các ý tưởng, các sản phẩm hay khả năng thương lượng vớicộng đồng” Và với những tiềm năng hiện tại mà mạng xã hội mang lại (xem Bảng 1 1),việc tham gia, phân tích và tận dụng những điểm mạnh mà mạng xã hội mang lại làcần thiết

Bảng 1 1 : Tiềm năng đối với mạng xã hội thông qua vài con số

Trang 9

trong 1 phút, có hơn 6.600 bức ảnh đăng tải lên Flickr, hơn 320 tài khoản mới trên và hơn 98000 thông điệp được đẳng tải lên Twitter.

- Dự kiến đến năm 2013, game thủ trên các mạng xã hội sẽ bỏ ra đến 6 tỉ USD để mua các vật dụng ảo trong game.

1.3 Một số bài toán đối với mạng xã hội

Hiện tại cũng có một số phần mềm cho phép phân tích, xử lý các thông tin dựatrên quan hệ kiểu như trên Tuy nhiên có thể nhận thấy rằng, hầu hết những công cụ đócần phải có một cơ sở dữ liệu đầu vào để tạo ra đồ thị quan hệ, thông thường là từ một

kiểu file cơ sở dữ liệu như CSV, XML … từ đó mới bắt đầu thực thi các phân tích liên

quan tới đồ thị quan hệ đó Việc thu thập các nút, quan hệ giữa các nút hay các thuộctính khác thường không được định nghĩa mà có thể nhờ một phần mềm khác, hay cũng

có thể do người dùng trực tiếp đưa vào Cách thức này hạn chế ở điểm sẽ khó nắm bắtđược các thay đổi trên mạng xã hội mang tính chất “thời gian thực” (tiếng Anh:

realtime) Công nghệ WAVE mà các bài toán trong bài thu hoạch này khai thác sẽ có

thể hỗ trợ toàn bộ các công việc trên, từ bước thu thập (theo thời gian thực) và tạo lập

đồ thị quan hệ (mà trong WAVE được gọi là một mạng tri thức – Knowledge

Network) tới bước thực hiện phân tích quan hệ dựa trên một cấu trúc ngôn ngữ mới

cũng mang tên WAVE

Công nghệ WAVE cho phép việc xử lý thông tin ở mức đồ thị, tức là xử lýthông tin ở dạng quan hệ WAVE tự nó sẽ tạo ra một đồ thị biểu diễn các mối quan hệ,các thuộc tính để rồi từ đồ thị đó thực hiện các bài toán phân tích quan hệ Ngoài việc

có thể xử lý các bài toán liên quan tới quan hệ mà hiện tại các cỗ máy tìm kiếm dạngGoogle chưa thể làm được thì về sau này, còn có thể ứng dụng WAVE vào các bàitoán xây dựng các Ontology, từ đó tiếp tục xử lý thông tin ở mức độ Ontology Ngoài

ra việc xử lý thông tin dạng nội dung cũng có thể được thực hiện khá dễ dàng thôngqua việc gửi các truy vấn tìm kiếm dạng Full-Text Search vào trong WAVE Tóm lại,WAVE giúp xử lý dễ dàng hơn các bài toàn cả ở mức tìm kiếm nội dung lẫn tìm kiếmtrong quan hệ cộng đồng

Về tìm kiếm dựa trên quan hệ, hiện có khá nhiều bài toán liên quan có khả năngtận dụng để lấy ra kết quả phục vụ các mục đích khác nhau, thường là ứng dụng tronglĩnh vực xã hội học Có thể chia các bài toán này ra làm hai dạng chính: tìm các quanhệ; phân tích các đặc điểm

Một bài toán tìm quan hệ có thể có rất nhiều dạng, tựu chung lại, những bàitoán dạng này làm nhiệm vụ tìm ra trong một tập hợp cá thể có mối quan hệ với nhau,một, hoặc một vài, hoặc một tập hợp con thỏa mãn một dạng quan hệ nào đó Lấy ví

Trang 10

dụ, có thể kể ra như tìm bạn chung (mutual friend) của hai hay ba người bất kỳ trongmạng xã hội Kết quả của bài toán này có thể phần nào giúp chúng ta tìm hiểu điểmgặp nhau trong quan hệ giữa những người được chỉ ra, tức là phân tích tại sao giữa họlại có mối quan hệ.

Bài toán phân tích đặc điểm cũng là dạng bài toán được dùng khá nhiều trongnghiên cứu xã hội học Ví dụ như bài toán tìm đường kính, là bài toán giúp giải quyếtvấn đề tìm khoảng cách ngắn nhất giữa hai người (hai nút) trong một mạng xã hội Nó

gần giống với thử nghiệm Small World nhằm tìm ra khoảng cách đủ để kết nối giữa

hai người bất kỳ trên toàn nước Mỹ, và kết quả khá bất ngờ rằng khoảng cách trungbình nằm trong khoảng 5.5-6, tức là khá nhỏ so với người ta tưởng tượng

Có một bài toán tìm đặc điểm khác trong quan hệ là tìm tâm của một tập hợpcác cá thể (các nút) Kết quả của bài toán này sẽ cho thấy nút trong đồ thị mà khoảngcách từ nút đó tới mọi nút khác trong đồ thị của tập hợp các cá thể đó là ngắn nhất

Các bài toán trên đơn thuần là những bài toán dựa trên đồ thị, và nếu chỉ nhưvậy thì có lẽ rằng với một ma trận kề dạng như Hình 1 3 dưới, các bài toán trên cũng

có thể được giải quyết tương đối dễ dàng với một số thao tác tính toán không phức tạp.(bởi lẽ một đồ thị có thể được biểu diễn dưới dạng ma trận)

Trang 11

Hình 1.3: Ma trận kề biểu diễn đồ thị gồm 4 đối tượng

Tuy nhiên ma trận không thể giải quyết được tình huống mở rộng đồ thị sẵn cóvới những nút mới, những thuộc tính mới Và WAVE có thể giải quyết trọn vẹn điềunày, bởi WAVE xử lý trên một đồ thị thuần túy

Có thể lấy ví dụ về việc thêm một thuộc tính mở rộng cho quy trình phân tíchtrong đồ thị Đó là khi muốn mở rộng thêm cho quá trình phân tích quan hệ đơn thuầnmột thuộc tính chỉ nghề nghiệp của người tham gia mạng xã hội Giả sử xét nghềnghiệp SINH VIÊN, đối với việc tính toán dựa trên ma trận, việc này là hết sức khókhăn, có thể phải xây dựng lại toàn bộ ma trận Nhưng với WAVE, việc cần làm chỉ làtạo ra một nút với tên gọi “SINH VIÊN”, và những nút có sẵn nếu có thuộc tính nghềnghiệp tương ứng thì sẽ có một liên kết với tên gọi dạng “LÀ” đến nút “SINH VIÊN”này Rất dễ ràng, và lúc này việc tìm kiếm một cá nhân với thuộc tính nghề nghiệp làsinh viên lại trở lại với một bài toán đồ thị đơn giản: tìm kiếm các nút có liên kết “LÀ”đến nút “SINH VIÊN” Ví dụ này cho thấy khả năng mở rộng rất lớn của đồ thị, mạng

Trang 12

tri thức trong WAVE Khi các cơ sở, thuộc tính tăng lên, WAVE chỉ cần thay đổi mộtphần nhỏ của đồ thị trong khi những truy vấn trước đó sẽ không bị ảnh hưởng.

CHƯƠNG 2: NGÔN NGỮ WAVE

Chương này trình bày về cú pháp và ngữ nghĩa của ngôn ngữ Wave Đây là một ngônngữ đặc biệt cho phép tạo và xử lý thông tin trong không gian mạng theo hướng.Chương trình viết bằng ngôn ngữ này có thể được coi như một thành phần linh hoạt cókhả năng di động và kết hợp với các thành phần riêng lẻ, phân tán khác Trong quátrình “di chuyển”, chương trình có thể mang theo dữ liệu đồng thời cập nhật vào dữliệu lưu tại mạng tri thức Các chương trình mặc dù được xử lý song song nhưng vẫn

có những cơ chế cho phép chúng phối hợp đồng bộ với nhau thông qua hệ thống cácluật

Phần cuối chương còn đề cập tới một vấn đề mang tính tương quan: Wave và cácphương pháp lập trình truyền thống (lập trình tuần tự và lập trình song song)

Trang 13

2.1 Giới thiệu về ngôn ngữ Wave

Wave là một ngôn ngữ đặc biệt cung cấp khả năng thực thi mềm dẻo, đa người dùngtrên hệ thống phân tán Quá trình thực thi của ngôn ngữ Wave giống như virus, tức là

có khả năng nhân bản và lan tỏa qua mạng, thực thi phân tán mà không cần bất kỳ sựđiều khiển tập trung nào

Kiến trúc Wave mô tả quá trình xử lý phân tán qua việc tự định hướng luồng chươngtrình qua không gian dữ liệu phân tán có cấu trúc như một đồ thị hay được gọi là

Knowledge Network Các node trên mạng phân tán thuộc về một Wave Interpreter

nào đấy WI là thành phần có trách nhiệm thực thi trên từng bộ phận riêng lẻ củamạng, thao tác lên dữ liệu được lưu trữ trong các node.Trong khi di chuyển, nhữngthành phần của mã Wave có thể tự nhân bản, phân chia hay được chỉnh sửa trong khivẫn duy trì sự trao đổi dữ liệu qua lại lẫn nhau

2.2 Node, Link và Không gian phân tán : Knowledge Network

Định nghĩa:

các biến (biến là thuộc tính của node)

trong không gian Nó cũng có các thuộc tính

Wave tạo và xử lý KN – là tập hợp các node và các link có hướng hoặc vôhướng Cả node và link đều có nội dung riêng của mình (kiểu giá trị là string) KN có

Trang 14

máy tính có thể không chứa hoặc chứa nhiều node của KN và các link có thể kết nốitới các node trong cùng máy tính hoặc với các máy tính khác.

Tất cả các node đều có địa chỉ duy nhất trong không gian phân tán bao gồm 2thành phần: thành phần thứ nhất để phân biệt các node trong cùng một máy, và thứ hai

là để phân biệt các node giữa các máy khác nhau trong không gian mạng Node có thể

được truy cập qua các node khác một cách trực tiếp bằng Content hay bằng Address

của chúng hoặc qua quá trình mở rộng qua các link của KN, việc đặt tên cho link và

node nhằm phục vụ điều này Có 2 kiểu nhảy qua lại giữa các node đó là direct hop và

surface hop để thực hiện việc nhảy tới 1 node hay có thể nhảy đến tất cả các node

khác – được dùng cho việc gửi quảng bá.

Không giống với node, link của KN không thể truy xuất trực tiếp qua tên Dữliệu lưu trữ trong link chỉ có thể nhận được hoặc thay đổi một cách cục bộ, trong quátrình di chuyển qua link hay khi đứng trực tiếp tại một node cụ thể nào đó Từ mộtnode, cả nội dung và hướng của link có thể truy xuất trực tiếp

Ví dụ:

Hình 2 1: Knowledge Network

Trang 15

wave  {{move , } } move  { data_unit act } | [rule] (Wave) }rule] (Wave) }Wave) } rule  SQ | OS | AS | AP | RP | WT | ID | CR unit  { stirng; } | N{l_d} | F{l_d} | C | A | P | S | L | T | act  # | ~ | /~ | == | / = | < | <= | + | - | * | / | ** | | | % | & | : | :: |

= | ? | !

2.3 C u trúc ấu trúc của ngôn ngữ Wave

Ngôn ngữ Wave đặc trưng cho quá trình lan tỏa song song trong không gian dữliệu phân tán được biết là KN Do vậy cú pháp của ngôn ngữ miêu tả rõ quá trình hoạtđộng

này:

Một

chương

trình Wave( gọi đơn giản là Wave) bao gồm sự kết hợp các tác động lên

KN gọi là các move – thành phần có thể thực hiện xử lý dữ liệu cục bộ tại các Node

của KN và mở rộng tới các Node khác Quá trình thực thi song song hay thực thikhông theo thứ tự được tách biệt bởi dấu phẩy (,) phát triển một cách độc lập từ cùng

một Node trong KN Tập các moves độc lập gọi là zone, được tách biệt nhau bởi dấu

chấm (.), các thành phần này sẽ được thực thi một cách tuần tự

Ví dụ: Ft={Fa=1;2;3} Fa+1 ^Ft.T=Fa

Các Rule trong Wave cung cấp cho Wave khả năng mở rộng trong không gianmạng, kết hợp cùng với các Wave khác Một ví dụ, các luật có thể tự động tách Wave

ra thành nhiều nhánh riêng biệt rồi sau đó phát triển chúng song song hoặc tuần tựtrong KN, chúng có thể tạo ra hoặc mở rộng KN trong khi di chuyển Các Rule sẽđược làm rõ hơn trong phần sau

Một cách tổng quát, việc thực thi phần đầu của Wave (Wave’s Head) tại một vàiNode có thể là nguyên nhân dẫn tới quá trình lan tỏa của Tail của chuỗi Wave (Wave’sTail) tới 0 hay nhiều các Node khác– chúng ta sẽ gọi chúng là tập các Node tới được

Trang 16

2.4 Cấu trúc dữ liệu cơ bản của Wave

Wave là ngôn ngữ được dùng cho quá trình xử lý trên mạng, nhưng không giống cácngôn ngữ khác, kiểu dữ liệu cơ sở không phản ánh việc đó Wave sử dụng kiểu dữ liệu

cơ sở là Vector: là tập các string được phân tách nhau bới dấu chấm phẩy (;) Tất cảcác hoạt động của ngôn ngữ đều thực thi trên Vector Truy cập tới thành phần củaVector có thể thông qua chỉ số hay chính nội dung của các thành phần trong Vector –indexing và contenting Dữ liệu lưu trữ trong Vector là động, tức có thể thay đổi khi có

sự thêm bớt dữ liệu một cách tự động

Ví dụ:

Vector chứa 1 phần tử: 3

Chứa 6 phần tử: 1;2;3;4;5;6

Chứa nhiều kiểu dữ liệu khác nhau: 34;NONE;25;;a;;;b

Biến Spatial và kiểu

Wave thao tác trên kiểu biến được gọi là spatial variable, chúng nằm phân tán vàthường liên quan tới dữ liệu cục bộ tại các Node của KN hay có thể thuộc về một

chuỗi Wave nào đó Biến kiểu này được chia làm 2 loại: task variable và

environment variable

Task variables

Task variable bao gồm: node variable và frontal variable Các biến kiểu nodal đượclưu cục bộ tại node của KN, các biến kiểu frontal có thể đi cùng Wave qua các nodekhác nhau trong mạng Cả 2 loại biến này đều là tạm thời

 Biến Nodal: các biến loại này được khai báo bắt đầu bằng ký tự N

 Biến Frontal: các biến loại này được khai báo bắt đầu bằng ký tự F

Environment variables

Biến môi trường có những định danh và ý nghĩa khác nhau:

 CONTENT (C): chứa content của Node hiện thời Giá trị của C luôn làstring, việc thay đổi nội dung của C có thể được gán trực tiếp bằng giá trịnào đó hoặc NONE – xóa Node cùng với các Link liên kết với nó

 ADDRESS (A): địa chỉ của Node hiện thời Luôn trả lại địa chỉ đầy đủcủa Node nơi Wave đang đứng gồm định danh của Node trong máy vàđịnh danh của Node trong mạng Đây là biến chỉ đọc

 PREDECESSOR (P): biến lưu địa chỉ của Node trước đó Wave đã điqua Nó chỉ thay đổi khi có sự di chuyển của Wave sang Node khác

Trang 17

 LINK (L): chứa content của Link vừa mới đi qua.

 TERMINAL (T): một loại biến đặc biệt dùng để in ra giá trị tương ứngtại một đầu cuối nào đó

Ví dụ:

Biến Nodal: N, Nhieu, Ntue

Biến Frontal: Fpath, Ftemp…

Biến môi trường: TERMINAL, LINK, L…

2.6 Các hành động

2.6.1 Control acts

Các Act thực hiện các phép toán cơ bản bên trong move, dùng để thay đổi giá trị các

biến, thay đổi trạng thái hoạt động của wave Giá trị trả về gồm 3 loại chính sau:

 TRUE (2): thành công và cho phép Wave tiếp sau đó thực thi tại Node hiệnthời

 DONE (1): thành công nhưng không cho phép Wave thực thi tiếp tại Nodehiện thời

 FALSE (0): thất bại, loại bỏ Wave tại Node hiện thời

Control acts được phân loại như hop, filters, assignment, state genertator và codeinjection

Hop Được thực thi bằng toán hạng # Ta sẽ hiểu rõ hơn cách thực thi của Hop qua các

Ví dụ sau:

 DIRECT # ALL, cách viết khác @#: nhảy tới tất cả các node khác trong KNtrên cùng máy tính từ một node nào đó

 -p#b: nhảy từ node hiện thời theo cung đi ra (-)p tới node b

 ANY#ALL hay #: nhảy qua tất cả các link tới tất cả hàng xóm của một node

 Và một số kiểu nhảy khác: x#ALL, ANY#x

 Để nhảy sang 1 node ở máy khác ta có cấu trúc: a#b$$`IP, trong đó IP là địachỉ IP của máy đích

Filter Các filter gồm các phép toán sau đây: ~ (thuộc về), /~ (không thuộc về), == (so

sánh bằng), /= (so sánh không bằng), < (so sánh nhỏ hơn), <= (so sánh nhỏ hơn hoặcbằng), > (so sánh lớn hơn), >= (so sánh lớn hơn hoặc bằng) Giá trị trả về sẽ là TRUEhoặc FALSE Nếu giá trị trả về là TRUE, node hiện thời sẽ trở thành một SNR vàWave tail sẽ tiếp tục phát triển từ node này

 Filter ~:

Trang 18

o Cú pháp: vector1 ~ vector2

o Chức năng: kiểm tra các phần tử của vector 1 có nằm trong vector 2hay không

Ví dụ: a;b ~ p;q;b;a sẽ trả về TRUE

 Filter /~: ngược lại toán tử ~

 Filter ==:

o Cú pháp: v1 == v2

o Chức năng: kiểm tra 2 vector có bằng nhau hay không

o Ví dụ: 2;3 == 2;3 sẽ trả lại TRUE

 Filter /=: ngược lại với ==

 Các filter còn lại: >,>=,<,<= có ý nghĩa toán học thông thường nhưng đượcthực hiện trên vector

Nếu 1 filter trả lại giá trị TRUE, node hiện tại sẽ trở thành SNR, ngược lại SNR sẽrỗng và chuỗi Wave sẽ dừng quá trình thực thi

Ví dụ: w1.TRUE!.w2

Trong Ví dụ này w2 sẽ tiếp tục thực hiện

w1.DONE.w2 hoặc w1.!.w2 sẽ dừng sau khi thực hiện xong w1

Code Injection

Cú pháp ^Func, trong đó Func là một chuỗi Wave Phép chèn mã này sẽ bổ sung thêmvào chuỗi Wave một chuỗi nằm trong biến sau ^ Phép này hay được sử dụng khi gọichương trình con

Ví dụ: Ft={Fa=1;2;3} Fa+1 ^Ft.T=Fa

Trang 19

2.6.2 Fusion acts: Các phép toán hợp nhất

Các phép toán số học Bao gồm các phép toán +, -, *, / Nếu thực hiện chia cho 0, kết

Các phép toán trên Vector đặc biệt Gồm 1 số phép toán sau:

 &: append, nối 1 Vector vào sau 1 Vector khác

o Ví dụ: v1 & v2 – v1, v2 là 2 Vector

 Toán tử hai chấm (:) : lấy giá trị tại 1 vị trí của Vector

o Ví dụ: Fa=3;2;3 Fa:1 sẽ trả lại 3

 Toán tử (::):

o Ví dụ: Fa=3;2;3 Fa::3 = 10 Kết quả Fa = 10;2;10

 |: splits, chia string ở toán hạng bên trái thành 1 Vector các string con bởidấu phân cách ở toán hạng bên phải

o Ví dụ: `a+b+c’ | `+’ sẽ trả lại a;b;c

 %: join, ngược lại với | tức nó sẽ hợp các Vector con lại thành 1 string vớiphân cách là toán hạng bên phải

o Ví dụ: a;b;c % `+’ sẽ trả lại a+b+c

Gọi hàm bên ngoài (External calls) Thực hiện qua toán tử ?, gọi một hàm nào đó

của hệ thống với đầu vào là các tham số từ Wave truyền vào

Ví dụ: 50?`sleep’ sẽ dừng chương trình 50 giây

2.7 Rules – Các luật trong Wave

Wave có thể phát triển độc lập, dị bộ và được xử lý song song trong không gian phântán Tuy nhiên điểm mạnh của Wave là nó có hệ thống các RULE để quản lý và đồng

bộ các các hành động RULE thiết lập các ràng buộc trong việc lan tỏa chuỗi Wave.Thông qua RULE, hệ thống có thể thực thi nhiều lần một Wave, hay tiếp tục lan tỏaWave nếu thỏa mãn một điều kiện nào đó, hoặc có thể chấm dứt toàn bộ wave RULEthường “treo” phần còn lại của chuỗi Wave (remainder) và lan tỏa nó ra chỉ khi chuỗiWave nằm trong luật thực thi xong và trả lại trạng thái TRUE

Trang 20

2.7.1 Các Luật Rẽ Nhánh

 SEQUENCE(SQ): kích hoạt tất cả các nhánh một cách tuần tự mà khôngcần quan tâm tới trạng thái kết quả trả về SNR trên SQ là tập các SNR từcác nhánh con

Ví dụ: SQ(Fa=1, Fa+1).T=Fa sẽ tạo ra 2 nhánh Fa=1 và Fa+1, thực hiện

tuần tự 2 nhánh này Kết quả cuối là 2

 OS_SEQUENCE: kích hoạt tất cả các nhánh tuần tự cho tới khi nó nhậnđược kết quả TRUE hoặc DONE trả về từ một nhánh nào đó

Ví dụ: OS(Fa=5.Fa>1, T=Fa) tạo ra 2 nhánh Fa=5.Fa>1 và T=Fa và thực

hiện tuần tự Nhưng do nhánh thứ nhất trả về TRUE nên không thực hiện tiếp nhánh thứ 2

 AND_SEQUENCE(AS): tương tự SQ nếu tất cả các nhánh đều trả về TRUEhoặc DONE, nếu 1 nhánh FALSE, trạng thái toàn bộ AS sẽ là FALSE

Ví dụ: AS(TRUE!, FALSE!) sẽ trả lại FALSE

 OR_PARALLEL(OP): kích hoạt các nhánh và thực thi chúng song song,nếu 1 nhánh trả về TRUE hoặc DONE, OP sẽ nhận TRUE Nếu khôngnhánh nào trả về TRUE hoặc DONE, OP sẽ FALSE

Ví dụ: OP(FALSE!, FALSE!, TRUE!) sẽ trả lại TRUE

 AND_PARALLEL(AP): như AS nhưng các nhánh thực thi song song

Ví dụ: AP(TRUE!, TRUE!, FALSE!) sẽ trả lại FALSE

 RANDOM(RN): chọn một nhánh ngẫu nhiên để phát triển tiếp

Nếu kết quả trạng thái trả về là DONE (SNR không rỗng) thì Tail của Wave sẽ bị loại

bỏ

Ví dụ: F = 1; 9; 5; 6; 7; 8; 12.

REPEAT ( Fi +1 F : Fi /= NONE N + ( F: Fi)).

TERMINAL =N.

Trang 21

2.7.3 Create

Luật CREATE(CR) cho phép Wave có khả năng mở rộng chính mạng KNtrong khi lan tỏa trong không gian Chuỗi Wave chứa luật này vẫn phát triển như thôngthường, chỉ có các bước nhảy là bị ảnh hưởng - có thể thay đổi chế độ của chúng từchế độ lan tỏa (navigation) sang chế độ tạo mới (creation) Khi đó các node và link nếuchưa có sẽ được tạo ra

Có rất nhiều chi tiết quan trọng trong ngữ nghĩa của luật CR Nếu node của 1bước nhảy tương ứng bằng địa chỉ của nó – điều này có nghĩa node đó đã tồn tại, tứccác thành phần trong luật CR nếu chưa có sẽ được tạo ra, còn nếu đã tồn tại thì quátrình CR sẽ không tạo ra node hoặc link mới

Ví dụ: CR(@#a.+p#b.+q$$c`192.168.1.10’)

Ý nghĩa: nhảy trực tiếp tới node a mặc dù node a chưa có nhưng do nằm trong luật

CR nên node a sẽ được tạo ra, sau đó tạo ra link có hướng +p tới node b, tạo node c

và link +q nối từ a đến c trên máy 192.168.1.10

2.7.4 Release

Luật RL sẽ khởi tạo một Wave mới độc lập với chuỗi Wave ban đầu, mã củaWave mới này là phần nằm trong dấu ngoặc của RL, WE của Wave mới chính là WEcủa Wave ban đầu Wave mới được tạo ra được đưa vào Wave Queue để chờ xử lý.Phần remainder của Wave ban đầu sẽ tiếp tục được thực hiện như bình thường

Ví dụ: w1.RL(w2).w3

Ý nghĩa: sau khi thực thi xong w1, gặp RL chương trình Wave sẽ tách w2 cùng với biến môi trường thành Wave mới cho vào hàng đợi xử lý, chuỗi Wave tiếp tục thực thi

là w3 cùng với biến môi trường của nó.

2.8 Wave và mô hình lập trình truyền thống

Trang 22

Hình 2 2 Thành phần của Spread Diagrams

Các kiểu module của Spread Diagram là :

 SNR

 Move

 Rule

 Halt

 Các thành phần liên quan: Link,Biến Spatial

Wave và mô hình lập trình song song

Wave biểu diễn theo SD trong mạng dữ liệu có thể được điều khiển hoàn toàn bởiRule Các thành phần của chuỗi Wave tự tách thành các nhánh trước và trong quá trìnhthực thi

Ví dụ: Tách chuỗi Wave

(m1 m4, m5), (m2 m4, m5 ), (m3 m4, m5)

Trang 23

Hình 2 3: Tự động tách trong chuỗi Wave

Ngoài ra, trong quá trình Wave thực thi, các thành phần của nó có thể được sao chép

và thay thế mà dữ liệu không bị thay đổi (Như trong Hình 2 4: m2 được sao chép và

thay thế mà dữ liệu vẫn được giữ nguyên)

m1.(m2 (m3, m3, m3)), (m2 (m3, m3, m3)), (m2 (m3, m3, m3))

Hình 2 4: Một số trường hợp xử lý song song

Ở một ví dụ khác ta thấy rõ hơn Rule điều khiển chuỗi Wave như nào (Hình 2 5)

Trang 24

Hình 2 5: Wave xử lý song song có kèm theo Rule

m1 OR_PARALLEL((m2 m4, m4, m4), ( m3 m4, m4, m4) ) m5

Wave và mô hình lập trình tuần tự

Việc cho phép phát triển không gian, xử lý song song và tự động trong môi trườngphân tán, Wave có thể dễ dàng mô hình hóa một số chương trình xử lý tuần tự Giốngcác chương trình bình thương, truyền thống ở cùng một máy tính, Wave phải ở cùngmột điểm trong không gian và chỉ có duy nhất một luồng được xử lý Chúng ta sẽ bàn

về vấn đề này thông qua các ví dụ ở dưới đây

Hai ví dụ trên được thể hiện ở Hình 2 6

Hình 2 6: Xử lý tuần tự không Rule và có Rule

Trang 25

và OR_ SEQUENTIAL (AND_SEQUENTIAL ( (e DONE ! ) , s1) s2)

Hình 2 8: Một số trường hợp với mệnh đề if-else

Hình 2 9: Một số trường hợp với mệnh đề if-else

Trang 26

o If – else với filter

Hình 2 10: else-if với filter

o Else – if parallel

Hình 2 11: else-if parallel

o Else – if với Rule

Hình 2 12: else-if với Rule

o Switch

Trang 28

Hình 2 15: Câu lệnh lặp sử dụng Recursion

Trang 29

CHƯƠNG 3: XÂY DỰNG MẠNG TRI THỨC CHO MẠNG XÃ HỘI

3.1 Xây dựng mạng tri thức cho mạng xã hội

Để thực hiện được những bài toán đặt ra trên cơ sở quan hệ đồ thị của WAVE, cầnphải tạo ra được một đồ thị quan hệ trong WAVE, hay còn gọi là một KN – Mạng trithức Đối với các bài toán phân tích mạng xã hội, cần phải thực thi việc tạo ra KNtương ứng với đồ thị quan hệ trong mạng xã hội đó Tức là mỗi cá thể (mỗi cá nhânhiện diện trên mạng xã hội) sẽ tương ứng với một nút trong KN, quan hệ giữa các cáthể là đường liên kết giữa các nút trong KN

3.1.1 Thu thập thông tin cho mạng tri thức

Việc đầu tiên cần làm là phải lấy ra được một hệ thống các nút tương ứng với các cáthể trong mạng xã hội Và để làm việc này sẽ có từng bộ Web Crawler – Parser tươngứng với từng dạng mạng xã hội khác nhau

Bộ Web Crawler – Parser đơn giản là một phương thức trong Java dùng để lấy về toàn

bộ mã HTML của liên kết (URL) được chỉ định, mà ở đây là đường dẫn tới danh sáchbạn bè (Friend List) của một cá thể nào đó trên mạng xã hội Sau khi lấy được nộidung dạng mã HTML lưu trữ như một xâu ký tự trong Java, bộ Phân tích cú pháp(Parser) làm việc và lấy ra các friend có xuất hiện trong mã HTML thu được Thực ra

bộ phân tích cú pháp ở đây không hoàn toàn đúng nghĩa là một bộ phân tích cú pháp,

nó không có luật cú pháp, cũng không sinh ra tập từ tố … Bộ phân tích ở đây chỉ làmnhiệm vụ lợi dụng việc tồn tại những ký tự tạo nên một định danh cho mỗi cá nhântrên mạng xã hội trong mã HTML của danh sách bạn bè, cộng với việc có một số mãHTML với các thuộc tính nhất định nằm trước và sau định danh đó, từ đó tìm kiếm vịtrí các định danh đó, lấy ra và lưu trữ tại Cơ sở dữ liệu

Như vậy, về mặt bản chất bộ Web crawler và Parser yêu cầu hai điều kiện:

- Danh sách bạn bè của một cá thể trong mạng xã hội phải có thể được hiển thị vàlấy về dưới dạng mã HTML

- Mã HTML thu về phải có những quy tắc nhất định để xác định vị trí của cácđịnh danh tương ứng với từng cá thể trong mạng xã hội

Đây là cách thức xử lý trong thời điểm hiện tại, rõ ràng vẫn bộc lộ nhiều điểm hạn chếnhất định:

- Việc phải lấy toàn bộ mã HTML của trang web danh sách bạn bè của mạng xãhội là tương đối lãng phí đường truyền, bởi trong một trang web có thể còn cónhiều thành phần hơn là chỉ có mã HTML (vd: JavaScript, CSS …), ngoài ra

Trang 30

còn có ảnh … trong khi cái cần thu được chỉ là một vài đoạn mã HTML đơngiản.

- Việc phân tích mã HTML dựa vào các đặc điểm nhất định để lấy ra vị trí xuấthiện các định danh có thể bị ảnh hưởng nếu trong mã HTML đó xuất hiện cácđặc điểm nhưng do người dùng tạo ra Việc này sẽ có thể làm sai lệch kết quảthu được

3.1.2 Tạo dựng mạng tri thức cho m ng xã h i ạng xã hội ội

Khi Wave Interpreter được khởi tạo, nó sẽ tạo ra một mạng tri thức (KN) “rỗng”, tức

là chưa tồn tại một nút nào trên đó Như vậy, để tạo ra mạng tri thức với các nút tươngứng với các định danh thu được ở trên, chương trình chỉ cần gửi truy vấn cho WI, đềnghị WI tạo ra những nút cũng như liên kết như đã xác định

Câu truy vấn có dạng:

CR(@#`blogID_1’ `friend’#`blogID_2’ , `friend’#`blogID_3’ ,

`friend’#`blogID_4’)

Với câu truy vấn này, WI sẽ hiểu rằng phải tạo ra trên KN một nút với định danh là

“blogID_1”, sau đó tạo ra các nút với định danh lần lượt là “blogID_2”, “blogID_3”

và “blogID_4” Đồng thời WI cũng hiểu rằng sẽ phải tạo ra các liên kết mang tên

“friend” từ nút “blogID_1” tới 3 nút còn lại

Như vậy, với câu truy vấn tương đối đơn giản, một mạng tri thức nhỏ đã được tạo ra

với 4 nút có liên kết với nhau theo kiểu “friend”, hay nói cách khác, một phần nhỏ của

mạng xã hội đã được tạo ra, quan hệ bạn bè cũng đã được xác định trong đó

Thêm một cơ chế nữa của WI đó là khi WI nhận được một truy vấn tạo nút với địnhdanh giống với nút đã được tạo ra trước đó thì truy vấn đó được bỏ qua, không có sựthay đổi nào tới mạng tri thức đã được tạo

Do vậy, cứ tiếp tục với các nút khác thu thập được, chương trình chỉ cần gửi cho WInhững câu truy vấn dạng trên thì dần dần mạng tri thức gần như hoàn chỉnh

3.1.3 Lưu trữ

Về cơ bản, quá trình thu thập thông tin hay tạo dựng mạng tri thức đều không nhấtthiết phải cần đến một hệ cơ sở dữ liệu hoàn chỉnh bởi các thông tin hoàn toàn có thểlưu tạm thời ra file Tuy nhiên khi lưu trữ thông tin theo cách này, có thể gặp một sốvấn đề sau:

 Phải tự xây dựng các bộ đọc dữ liệu từ file cũng như thống nhất quycách ghi dữ liệu ra file

 Có thể bị xung đột khi tiến trình đọc ghi cùng truy xuất file

Trang 31

 Truy xuất file thường chậm

Ngoài ra có một bài toán đặt ra cho quá trình thu thập thông tin blog đó là làm sao đểsau khi tắt chương trình (vì một lý do nào đó như lỗi, cần khởi động lại máy, sự cố mấtđiện …) thì khi bật lên trở lại, chương trình có thể tiếp tục quá trình thu thập thông tin

từ vị trí trước khi xảy ra sự cố

Hơn thế nữa, về mở rộng sau này của hệ thống là thu thập, lưu trữ thông tin vềtoàn bộ các thành phần cần thiết trong một blog (bài viết, bình luận …), cho nên việc

sử dụng một cơ sở dữ liệu khi ấy là việc bắt buộc Có nhiều dạng cơ sở dữ liệu có thể

sử dụng cho trường hợp này, nhưng tùy vào mục đích mở rộng mà cso thể lựa chọnloại phù hợp Nếu cần lưu trữ phân tán, hiệu năng cao, tìm kiếm theo từ khóa có thể sử

dụng BerkerlyDB Nếu cần lưu trữ phân tán, tìm kiếm dạng Full-text search thì lại có thể sử dụng Solr (hiệu năng vừa phải), Tokyo Cabinet (hiệu năng khá cao) Nhưng

với khả năng của WAVE, việc tìm kiếm full-text có thể gửi thông qua WAVE tới cácmáy trong mạng, từ đó việc tìm kiếm không còn mang tính chất phân tán đối với cơ sở

dữ liệu nữa thì có thể sử dụng một hệ cơ sở dữ liệu không phân tán nhưng cung cấptìm kiếm full-text search Với lý do đó cộng với lượng dữ liệu thử nghiệm ở mức trungbình, chưa lớn, hệ thống được mô tả trong khóa luận này sẽ sử dụng một hệ cơ sở dữ

liệu quan hệ quen thuộc: MySQL

Với bài toán đối với mạng xã hội, cơ sở dữ liệu trong MySQL hiện được thiết kế vớimột bảng duy nhất gồm các trường và thông số như Hình 3 1

Hình 3 1: Cấu trúc Cơ sở dữ liệu MySQL

Như vậy, bài toán khôi phục sau sự cố ở trên có thể được giải quyết bằng cách lấy ra

từ cơ sở dữ liệu những bản ghi có trường “friends” là rỗng Việc này hoàn toàn đơn

giản trong cơ sở dữ liệu MySQL chỉ với một câu truy vấn:

SELECT `blogID` FROM `blog_list` WHERE `friends`=’’;

Ngày đăng: 10/04/2015, 13:21

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Slides bài giảng Cơ sở dữ liệu nâng cao của Thầy, PGS.TS. Đỗ Phúc Sách, tạp chí
Tiêu đề: Slides bài giảng Cơ sở dữ liệu nâng cao
Tác giả: PGS.TS. Đỗ Phúc
[2] Stephen P. Borgatti, “Indentifying sets of key players in a social network”, 2006 Sách, tạp chí
Tiêu đề: Indentifying sets of key players in a social network
Tác giả: Stephen P. Borgatti
Năm: 2006
[3] Borst, P.M., H.-T Goetz, P. S. Sapaty, and W. Xorn, “Paralled Knowledge Processing in Open Networks,” Proc. International Conference and Exhibition“High-Performance Computing in Networks” (HPCN Europe ‘94), Munich, Germany, April 1994 Sách, tạp chí
Tiêu đề: Paralled Knowledge Processing in Open Networks
Tác giả: P.M. Borst, H.-T Goetz, P. S. Sapaty, W. Xorn
Nhà XB: Proc. International Conference and Exhibition“High-Performance Computing in Networks” (HPCN Europe ‘94)
Năm: 1994
[4] Corbin M. J., and P. S. Sapaty, “Distributed Object-Based Simulation in Wave,” J. Simul. Pract. Theory, Vol. 3, No.3, pp. 157-181, 1995 Sách, tạp chí
Tiêu đề: Distributed Object-Based Simulation in Wave
[5] Livatharas, C., “Integration of Heterogeneous Databases Using WAVE,” M.Sc. Project Report, Department of Electrical Engineering, University of Surrey.Surrey, England, August 1995 Sách, tạp chí
Tiêu đề: Integration of Heterogeneous Databases Using WAVE
Tác giả: Livatharas, C
Nhà XB: Department of Electrical Engineering, University of Surrey
Năm: 1995
[6] Sapaty, P.S., “The Wave-0 Language as a Framework of Navigational Structures for Knowledge Bases Using Semantic Networks,” Proc. USSR Academy of Sciences: Technical Cybernetics, No. 5, 1986 (in Russian) Sách, tạp chí
Tiêu đề: The Wave-0 Language as a Framework of Navigational Structures for Knowledge Bases Using Semantic Networks
[7] Varbanov, S. and P. S. Sapaty, “An Information System Based on the Wave Navigation Techniques,” Abstr. International Conference, AIMSA’86, Varna, Bulgaria, 1986 Sách, tạp chí
Tiêu đề: An Information System Based on the Wave Navigation Techniques

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Đồ thị biểu diễn cấu trúc mạng xã hội 1.1 Lịch sử mạng xã hội - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 1.1 Đồ thị biểu diễn cấu trúc mạng xã hội 1.1 Lịch sử mạng xã hội (Trang 5)
Hình 1.3: Ma trận kề biểu diễn đồ thị gồm 4 đối tượng - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 1.3 Ma trận kề biểu diễn đồ thị gồm 4 đối tượng (Trang 11)
Hình 2 1:  Knowledge Network - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 2 1: Knowledge Network (Trang 14)
Hình 2 2 Thành phần của Spread Diagrams - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 2 2 Thành phần của Spread Diagrams (Trang 22)
Hình 2 3: Tự động tách trong chuỗi Wave - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 2 3: Tự động tách trong chuỗi Wave (Trang 23)
Hình 2 6: Xử lý tuần tự không Rule và có Rule - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 2 6: Xử lý tuần tự không Rule và có Rule (Trang 24)
Hình 2 13: Switch - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 2 13: Switch (Trang 27)
Hình 3 2: Sơ đồ hoạt động thành phần tạo dựng mạng tri thức - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 3 2: Sơ đồ hoạt động thành phần tạo dựng mạng tri thức (Trang 32)
Hình 4 2: WORLD database - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 4 2: WORLD database (Trang 34)
Hình 4 3: TOPICS database - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 4 3: TOPICS database (Trang 35)
Hình 4 4: OCCUPATION database - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 4 4: OCCUPATION database (Trang 36)
Hình 4 5: BLOGGER database - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 4 5: BLOGGER database (Trang 37)
Hình 4 6: Cơ sở dữ liệu tổng hợp - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 4 6: Cơ sở dữ liệu tổng hợp (Trang 38)
Đồ thị minh họa thuật toán:Giả sử ta cần tìm đường đi ngắn nhất giữa node A và node H - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
th ị minh họa thuật toán:Giả sử ta cần tìm đường đi ngắn nhất giữa node A và node H (Trang 43)
Hình 4 7. Giao di n tính About  c a ch ệ số cụm) ủa từng nút trong  ương trình: ng trình - PHÂN TÍCH MẠNG XÃ HỘI DÙNG CÔNG NGHỆ WAVE VÀ ỨNG DỤNG TÌM KEY PLAYER
Hình 4 7. Giao di n tính About c a ch ệ số cụm) ủa từng nút trong ương trình: ng trình (Trang 60)

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