แนวทางการบูรณาการข้อมูลแบบเปิดโดยใช้เทคโนโลยี Linked Open Data

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "แนวทางการบูรณาการข้อมูลแบบเปิดโดยใช้เทคโนโลยี Linked Open Data"— ใบสำเนางานนำเสนอ:

1 แนวทางการบูรณาการข้อมูลแบบเปิดโดยใช้เทคโนโลยี Linked Open Data
ดร.มารุต บูรณรัช ห้องปฎิบัติการวิจัยเทคโนโลยีภาษาธรรมชาติและความหมาย ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ สานักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ คณะวิทยาศาสตร์ มหาวิทยาลัยทักษิณ จ.พัทลุง วันที่ 18 พฤษภาคม 2559

2 หัวข้อนำเสนอ แนวคิดการเปิดเผยข้อมูล (open data concepts)
มีประโยชน์อย่างไร ต่างจากการเผยแพร่ข้อมูลผ่านเว็บไซต์อย่างไร มาตรฐานทีเกี่ยวข้องกับการจัดทำชุดข้อมูล (dataset) รูปแบบไฟล์ (file format), เมตาเดทา (metadata), สิทธิ์ในการใช้งานข้อมูล (license) แนวทางการเชื่อมโยงข้อมูลแบบเปิด (Linked open data) แนวคิดการเปิดเผยข้อมูล 5 ระดับ (5-stars open data) โครงสร้างพื้นฐานที่จำเป็นสำหรับการบูรณาการข้อมูลแบบเปิด URI (Uniform Resource Locator) RDF, SPARQL และ Ontology RESTFul Web API NECTEC’s RDF Dataset Management Platform

3 แนวคิดการเปิดเผยข้อมูล (Open Data Concepts)

4 การเปิดเผยข้อมูล (open data) มีประโยชน์อย่างไร
ความโปร่งใส (transparency) การสร้างมูลค่า ทางสังคมและเศรษฐกิจ (Releasing social and commercial value) การสร้างความมีส่วนร่วมของทุกภาคส่วน (Participation and engagement) What is Open? - Open Knowledge Foundation;

5 ตัวอย่างการเปิดเผยข้อมูลภาครัฐในระดับประเทศ

6 ตัวอย่างการใช้ประโยชน์จากข้อมูลเปิดภาครัฐ Data.gov.uk
Mobile App แสดงค่าพฤติกรรมความรุนแรงของชุมชน

7 ตัวอย่างการใช้ประโยชน์จากข้อมูลเปิดภาครัฐ

8 ตัวอย่างการใช้ประโยชน์จากข้อมูลเปิดภาครัฐ

9 เว็บไซต์ศูนย์กลางชุดข้อมูลภาครัฐ(Data.go.th)
ข้อมูล ณ.วันที่ 28 ก.พ. 2559

10 ระบบ “ภาษีไปไหน?”

11 การเปิดเผยข้อมูลต่างจากการเผยแพร่ข้อมูลผ่านเว็บไซต์อย่างไร ?

12 การเปิดเผยข้อมูลในแบบรายงาน
การเปิดเผยข้อมูลในรูปแบบรายงาน (pdf) ข้อมูลอยู่ในแบบที่นำไปใช้ซ้ำได้ยาก (non machine-readable)

13 การเปิดเผยข้อมูลในแบบหน้าเว็บ (web page)
HTML นำข้อมูลเข้าสู่ฐานข้อมูล เพื่อให้ผู้ใช้สืบค้นและเข้าถึง Web browser ได้ ข้อมูลอยู่ในแบบที่นำไปใช้ซ้ำได้ยาก ในโปรแกรมคอมพิวเตอร์ที่ต้องการนำข้อมูลนี้ไปใช้ (non machine-readable)

14 การเปิดเผยข้อมูลในแบบชุดข้อมูล (dataset)
การเปิดเผยข้อมูลดิบ (raw data)ในแบบไฟล์ตารางคำนวณ (spreadsheet) ข้อมูลอยู่ในแบบที่นำไปใช้ซ้ำได้ง่าย ในโปรแกรมคอมพิวเตอร์ที่ต้องการนำข้อมูลนี้ไปใช้ (machine-readable)

15 การเปิดเผยข้อมูลในแบบชุดข้อมูล (dataset) (2)
HTML Export Open Data - เผยแพร่ข้อมูลดิบในแบบชุดข้อมูล (dataset) ที่นำออกจากฐานข้อมูล (Database) เพิ่มเติมจากที่ให้เข้าถึงผ่านหน้าเว็บได้

16 วิธีการเปิดเผยข้อมูล (Publishing Open Data)
อ้างอิง: แนวปฏิบัติและมาตรฐานเชิงเทคนิคสำหรับศูนย์กลางข้อมูลเปิดภาครัฐ (Data.go.th)

17 รูปแบบ (format) ของการเปิดเผยข้อมูล
ความซับซ้อนของความต้องการใช้งานข้อมูล

18 รูปแบบของไฟล์ (file format) สำหรับการเปิดเผยข้อมูล
รูปแบบของไฟล์ที่เหมาะสมสำหรับการเปิดเผย ข้อมูลพิจารณาจาก เป็นมาตรฐานเปิด (open standard) โปรแกรมคอมพิวเตอร์นำไปใช้งานได้ง่าย (machine readable/ reusability)

19 รูปแบบการเปิดเผยข้อมูลตามความง่ายต่อการนำไปใช้งาน
มาตรฐานเปิด การนำไปใช้ซ้ำได้ง่าย

20 รูปแบบไฟล์ชุดข้อมูลบน Data.go.th
ข้อมูล ณ. วันที่ 28 ก.พ. 59

21 ตัวอย่างหมวดหมู่ (category) ของชุดข้อมูล
จำนวนชุดข้อมูล ศาสนา ศิลปะ และวัฒนธรรม 89 สาธารณสุข 70 เศรษฐกิจ การเงิน และอุตสาหกรรม 69 งบประมาณ และการใช้จ่ายของภาครัฐ 60 คมนาคม และโลจิสติกส์ 41 พลังงาน ทรัพยากรธรรมชาติ และสิ่งแวดล้อม 27 สถานที่ การท่องเที่ยว และกีฬา 24 สังคมและสวัสดิการ 23 เกษตรกรรม และชลประทาน 22 การศึกษา 21 เทคโนโลยีสารสนเทศ และการสื่อสาร 13 กฎหมาย ศาล และอาชญากรรม 10 การเมือง และการปกครอง แผนที่ 4 ภูมิอากาศ และภัยพิบัติ ตัวระบุวัตถุดิจิทัล และรหัสมาตรฐาน 3 วิทยาศาสตร์ เทคโนโลยีและนวัตกรรม Data.go.th กำหนดหมวดหมู่ของชุดข้อมูล 17 หมวดหมู่ (ดัดแปลงจากหมวดหมู่ที่กำหนดโดยสำนักงานสถิติแห่งชาติ) ข้อมูล ณ. วันที่ 28 ก.พ. 59

22 เมตาเดทาของชุดข้อมูล data.go.th
ลำดับที่ รายการ ฟิลด์บังคับ คำอธิบาย 1 Unique Identifier Yes รหัส (ID) สำหรับข้อมูลในแต่ละชุด (Auto-generated) 2 Title ชื่อหัวข้อของชุดข้อมูล 3 Description บ่งบอกถึงเนื้อความในข้อมูลอย่างสั้น 4 Tags Keywords ที่เกี่ยวข้องกับชุดข้อมูล สำหรับการค้นหา 5 Last Updated วันที่ทำการเปลี่ยนแปลงหรืออัพเดตข้อมูลครั้งล่าสุด (Auto-generated) 6 Publisher ชื่อหน่วยงานเจ้าของชุดข้อมูลที่เผยแพร่ 7 Contact Name ชื่อผู้ติดต่อหลักสำหรับข้อมูลที่นำมา เผยแพร่ 8 Contact ของผู้ติดต่อหลัก 9 Contact Number เบอร์โทรของผู้ติดต่อหลัก

23 เมตาเดทาของชุดข้อมูล data.go.th (2)
ลำดับที่ รายการ ฟิลด์บังคับ คำอธิบาย 10 Format Yes รูปแบบของไฟล์ข้อมูล 11 Frequency ความถี่ในการเผยแพร่ข้อมูล 12 Category หมวดหมู่ของชุดข้อมูล 13 Language ภาษาของชุดข้อมูล 14 Public Access Level ระดับในการเข้าถึงข้อมูล (มี/ ไม่มีข้อจำกัดในการใช้งานชุดข้อมูล) 15 URL URL ของชุดข้อมูล 16 License Open Government License 17 Rights อธิบายเพิ่มเติมจากข้อ 14

24 Open Government License – Thailand
สิทธิและเสรีภาพของผู้ใช้ข้อมูล คัดลอก เผยแพร่ แจกจ่าย และส่งข้อมูล เพื่อวัตถุประสงค์อันชอบด้วย กฎหมาย ปรับใช้ข้อมูล โดยวิธีการหรือรูปแบบใดๆ ซึ่งไม่เป็นการปรับเปลี่ยน เนื้อหาสาระของข้อมูล เพื่อวัตถุประสงค์อันชอบด้วยกฎหมาย ใช้ประโยชน์ของข้อมูล ซึ่งรวมถึง การรวมข้อมูลเข้ากับข้อมูลอื่นๆ หรือ การนำข้อมูลมาเป็น ส่วนหนึ่งของผลิตภัณฑ์หรือแอปพลิเคชันของผู้ใช้ ข้อมูล ในเชิงสาธารณะประโยชน์ หรือในเชิงพาณิชย์ เพื่อวัตถุประสงค์ อันชอบด้วยกฎหมาย

25 Open Government License – Thailand (2)
ผู้ใช้ข้อมูลต้องอ้างอิงถึงผู้อนุญาต โดยใส่ ข้อความเฉพาะของผู้ให้บริการข้อมูลที่ระบุถึงผู้ อนุญาต หรือ อาจระบุเป็น “สิทธิการใช้ข้อมูล ภายใต้สัญญาอนุญาตให้ใช้ข้อมูล ภาครัฐแบบเปิดของประเทศไทย (Open Government License - Thailand) จาก “Data.go.th”” การอนุญาตให้ใช้ข้อมูลนี้ไม่ครอบคลุมถึง “ข้อมูลส่วนบุคคลที่อยู่ในเนื้อหาข้อมูล”

26 License อื่นๆ – Creative Commons
สัญลักษณ์ ชื่อเรียก คำอธิบาน CC BY อนุญาตให้ใช้ข้อมูลอย่างอิสระ โดยต้องระบุที่มาข้อมูล (Credit original creator) CC Share Alike อนุญาตให้ใช้ข้อมูลอย่างอิสระ โดยต้องระบุที่มาข้อมูล และต้องอนุญาตให้ใช้ข้อมูลที่สร้างขึ้นภายใต้สิทธิ์เดียวกัน (Credit original creator + credit the same license CC NoDerivs ห้ามดัดแปลงแก้ไข CC NonCommercial ห้ามนำไปใช้ในเชิงพาณิชย์

27 แนะนำระบบ CKAN Opensource software for Open Data Catalogs
Download URL: stores metadata of datasets makes it easy to find datasets Developed by Open Knowledge Foundation ( available in 53 languages

28 ตัวอย่างเว็บไซต์ที่ใช้ CKAN
Data.gov.uk - Data.gov Data.go.jp Open data portal of many other countries, city governments, research institutions

29 CKAN Features search all metadata fields faceted search
organization, tag, format, license multiple resources in the same dataset different format, different time periods Preview dataset table, graph, map

30 CKAN Features (2) Change history
Each organization can manage their own datasets, users Custom themes Extensions APIs Metadata harvesting User comments on datasets

31 การเชื่อมโยงข้อมูลแบบเปิด (Linked open data)

32 การเปิดเผยข้อมูล 5 ระดับ

33 ความหมายของการเปิดเผยข้อมูล 5 ระดับ

34 ตัวอย่างรูปแบบข้อมูลตามการเปิดเผยข้อมูล 5 ระดับ

35 ชุดข้อมูลตัวอย่าง หน่วยงาน ก. ต้องการเปิดเผยข้อมูลรายชื่อ เจ้าหน้าที่ในหน่วยงาน สาขาที่สังกัด ที่อยู่ จังหวัดที่ตั้ง และเบอร์ติดต่อ การเปิดเผยข้อมูล ระดับที่ 1 -> .pdf การเปิดเผยข้อมูล ระดับที่ 2 -> .xls (Excel format) การเปิดเผยข้อมูล ระดับที่ 3 -> .csv (Comma Separated Format) การเปิดเผยข้อมูล ระดับที่ 4 และ 5 -> .rdf (Resource Description Framework)

36 ตัวอย่างการเปิดเผยข้อมูล ระดับที่ 1
employee.pdf OL = Open License

37 การเปิดเผยข้อมูล ระดับที่ 1
ข้อดี - สร้างง่าย - ง่ายต่อการอ่าน ดูสวยงาม ข้อเสีย - นำข้อมูลไปต่อยอดใช้ประโยชน์ยาก (not reusable)

38 ตัวอย่างการเปิดเผยข้อมูล ระดับที่ 2
** ข้อมูลดิบ (raw data) employee.xls OL = Open License RE = Reusable

39 การเปิดเผยข้อมูล ระดับที่ 2
ข้อดี - สร้างง่าย - นำข้อมูลไปต่อยอดใช้ประโยชน์ได้ง่าย (reusable) ข้อเสีย - ไม่ใช่มาตรฐานแบบเปิด (not open format)

40 ตัวอย่างการเปิดเผยข้อมูล ระดับที่ 3
employee.csv OL = Open License RE = Reusable OF = Open Format

41 การเปิดเผยข้อมูล ระดับที่ 3
ข้อดี - สร้างง่าย - นำข้อมูลไปต่อยอดใช้ประโยชน์ได้ง่าย (reusable) - มาตรฐานแบบเปิด (open format) ข้อเสีย - ยากต่อการบูรณาการเชื่อมโยงข้อมูลข้ามชุด ข้อมูล

42 ตัวอย่างการเปิดเผยข้อมูล ระดับที่ 4
@prefix a: < . a:person_1 a:name “นายสมชาย ใจดี”. a:person_1 a:branch_province “กรุงเทพมหานคร ”. a:person_1 a:branch_address “1 ถ.รัชดาภิเษก เขตดินแดง กรุงเทพมหานคร 10400”. a:person_1 a:branch_phone “ ”. a:person_2 a:name “นายสมศักดิ์ สุภาพ”. a:person_2 a:branch_province “ปทุมธานี”. a:person_2 a:branch_address “111 ถ.พหลโยธิน ต.คลองหนึ่ง อ.คลองหลวง จ.ปทุมธานี 12120”. a:person_2 a:branch_phone “ ”. a:person_3 a:name “นายสมพงษ์ สวัสดี”. a:person_3 a:branch_province “กรุงเทพมหานคร”. a:person_3 a:branch_address “1 ถ.รัชดาภิเษก เขตดินแดง กรุงเทพมหานคร 10400”. a:person_3 a:branch_phone “ ”. URI OL = Open License RE = Reusable OF = Open Format URI = Uniform Resource Identifier employee.rdf

43 การเปิดเผยข้อมูล ระดับที่ 4
ข้อดี - นำข้อมูลไปต่อยอดใช้ประโยชน์ได้ง่าย (reusable) - มาตรฐานแบบเปิด (open format) - รองรับการบูรณาการเชื่อมโยงข้อมูลข้ามชุดข้อมูล ข้อเสีย - สร้างได้ยากกว่าระดับที่ 1-3

44 ตัวอย่างการเปิดเผยข้อมูล ระดับที่ 5
@prefix a: < b: < . a:person_1 a:name “นายสมชาย ใจดี”. a:person_1 a:branch_province b:province_10. a:person_1 a:branch_address “1 ถ.รัชดาภิเษก เขตดินแดง กรุงเทพมหานคร 10400”. a:person_1 a:branch_phone “ ”. a:person_2 a:name “นายสมศักดิ์ สุภาพ”. a:person_2 a:branch_province b:province_13. a:person_2 a:branch_address “111 ถ.พหลโยธิน ต.คลองหนึ่ง อ.คลองหลวง จ.ปทุมธานี 12120”. a:person_2 a:branch_phone “ ”. a:person_3 a:name “นายสมพงษ์ สวัสดี”. a:person_3 a:branch_province b:province_10. a:person_3 a:branch_address “1 ถ.รัชดาภิเษก เขตดินแดง กรุงเทพมหานคร 10400”. a:person_3 a:branch_phone “ ”. URI อ้างอิงข้อมูลในชุดข้อมูลอื่น OL = Open License RE = Reusable OF = Open Format URI = Uniform Resource Identifier LD = Linked Data employee.rdf

45 ตัวอย่างการเปิดเผยข้อมูล ระดับที่ 5 (2)
@prefix b: < . b:province_10 b:name “กรุงเทพมหานคร”. b:province_10 b:name_en “Bangkok”. b:province_10 b:code “10”. b:province_13 b:name “ปทุมธานี”. b:province_13 b:name_en “Pathum Thani”. b:province_13 b:code “13”. … thai_location.rdf

46 การเปิดเผยข้อมูล ระดับที่ 5
ข้อดี - นำข้อมูลไปต่อยอดใช้ประโยชน์ได้ง่าย (reusable) - มาตรฐานแบบเปิด (open format) - มีการบูรณาการเชื่อมโยงข้อมูลข้ามชุดข้อมูล (linked data) ข้อเสีย - สร้างได้ยากกว่าระดับที่ 1-3 - ต้องมีมาตรฐานรหัสบ่งชี้ (standard identifier)

47 ประโยชน์ของ open data ระดับที่ 4-5
เพิ่มคุณค่าให้กับชุดข้อมูลที่มีอยู่ สามารถนำไปสู่ความเชื่อมโยงของข้อมูล (Linked Data) ง่ายต่อการอ้างอิงไปยังชุดข้อมูลอื่นโดยใช้ URI ชุดข้อมูลอื่นสามารถอ้างอิงมายังชุดข้อมูลของเราโดยใช้ URI ผู้พัฒนาโปรแกรมสามารถบูรณาการข้อมูลจากหลายๆ ชุดข้อมูล มาสร้างเป็นแอพพลิเคชันใหม่ได้ง่ายยิ่งขึ้น

48 เปรียบเทียบ RDF กับไฟล์ Excel (.xls)
Data model columns, rows, cells resource, class, property Schema language no RDFS, OWL (ontology) Query language SPARQL Purpose data interchange data integration Semantic relationship (meaning) ambiguous well-defined Machine- understandable meaning can not be interpreted by machine meaning can be interpreted by machine (inference)

49 เปรียบเทียบ RDF กับ XML
Data model elements, attributes resource, class, property Schema language DTD, XML Schema RDFS, OWL (ontology) Schema required optional Query language XQuery SPARQL Purpose data interchange data integration Semantic relationship (meaning) ambiguous well-defined Machine- understandable meaning can not be interpreted by machine meaning can be interpreted by machine (inference)

50 โครงสร้างพื้นฐานของการเชื่อมโยงข้อมูล
ข้อมูลชนิดมีโครงสร้างที่อยู่ในรูปแบบที่ถูกต้อง (well- formatted structured data) รหัสกลางในการอ้างอิงถึงสิ่งต่างๆ (standard codes) เว็บเอพีไอ (Web API)

51 ข้อมูลชนิดมีโครงสร้างที่อยู่ในรูปแบบที่ถูกต้อง
ไฟล์ชุดข้อมูลที่จะสามารถแปลงเป็นข้อมูลชนิด RDF ต้องมี คุณภาพดี และมีโครงสร้างข้อมูลในแบบของฐานข้อมูล แถวแรกเป็นชื่อคอลัมน์/ แถวที่เหลือเป็นค่าข้อมูล 1 คอลัมน์ 1 ชื่อ (ไม่มีการ span คอลัมน์) ไม่มีคำอธิบายข้อมูลอยู่เหนือ หรือ ท้ายตาราง Ivan Ermilov, Sören Auer, and Claus Stadler User-driven semantic mapping of tabular data. In Proceedings of the 9th International Conference on Semantic Systems (I-SEMANTICS '13), Marta Sabou, Eva Blomqvist, Tommaso Di Noia, Harald Sack, and Tassilo Pellegrini (Eds.). ACM, New York, NY, USA,

52 ตัวอย่างข้อมูลมีโครงสร้างไม่ถูกต้อง
มีการ spanคอลัมน์ ในชื่อคอลัมน์ หรือ ในค่าข้อมูล เก็บข้อมูลในแต่ละคอลัมน์

53 ตัวอย่างข้อมูลมีโครงสร้างไม่ถูกต้อง (2)
มีคำอธิบายข้อมูลอยู่เหนือ หรือท้ายตาราง มีแถว หรือ คอลัมน์ว่าง (ไม่มีข้อมูล) มีแถว ที่เป็นชื่อคอลัมน์หลายครั้ง

54 รหัสกลางในการอ้างอิงถึงสิ่งต่างๆ (standard codes)
ต้องมีข้อตกลงเรื่องรหัสบ่งชี้มาตรฐาน (standard identifier) ที่ชุดข้อมูลจากต่างหน่วยงานต้องใช้งานร่วมกัน รหัสบุคคล รหัสหน่วยงาน รหัสสถานที่ รหัสถนน รหัสตำบล/อำเภอ รหัสจังหวัด ฯลฯ รหัสหน่วยงาน รหัสจังหวัด

55 Web API vs. ไฟล์ชุดข้อมูล (Full Dataset)
การใช้งานต้องอ่านข้อมูลทั้งไฟล์ เช่น ข้อมูลทั้ง 10 ปี วิธีการประมวลผลข้อมูลเช่น การสืบค้นข้อมูล ทำโดยนักพัฒนา ต้อง download ชุดข้อมูลใหม่เมื่อมีการปรับปรุงข้อมูล Web API ใช้งานชุดข้อมูลเฉพาะส่วนที่ต้องการ เช่น เลือกเข้าถึงเฉพาะข้อมูลของปีปัจจุบันเท่านั้น นักพัฒนาไม่ต้องเขียนวิธีประมวลผลข้อมูลเอง เพียงส่งผ่านตัวแปรเท่านั้น เมื่อมีการปรับปรุงข้อมูล สามารถเรียกใช้ API เดิมได้

56 เทคโนโลยี Linked Open Data

57 เทคโนโลยีสำหรับการเชื่อมโยงข้อมูล
Linked Open Data Uniform Resource Identifier (URI) Resource Description Framework (RDF) SPARQL RESTFul Web API

58 การเชื่อมโยงข้อมูล (Linked Open Data)
ข้อมูลล่าสุด: 30 August 2014

59 หลักการของ Linked Open Data (LOD)
หลักการข้อ 1 – ใช้ URI เป็นรหัสบ่งชี้สิ่งต่างๆ (identifier) 1 URI ใช้เป็นรหัสบ่งชี้ของเพียง 1 สิ่งเท่านั้น URI บ่งชี้อะไรก็ได้ เช่น คน สิ่งของ เอกสาร คุณลักษณะ ความสัมพันธ์ ฯลฯ

60 ตัวอย่างการใช้ URI เป็นรหัสบ่งชี้
URI ที่ใช้แทน ม.ร.ว.คึกฤทธิ์ ปราโมทย์ URI ที่ใช้แทนหนังสือ “สี่แผ่นดิน” URI ที่ใช้แทนจังหวัด “กรุงเทพฯ” URI ที่ใช้แทนความสัมพันธ์ “รู้จัก” ตัวอย่างโดย ศ.ดร.วิลาศ วูวงศ์ มหาวิทยาลัยมหิดล

61 หลักการของ Linked Open Data (LOD) (2)
หลักการข้อ 2 – ใช้ URI แบบ http เพื่อที่เมื่อคนเรียก URI นั้นผ่าน browser แล้วสามารถ แสดงข้อมูลเกี่ยวกับสิ่งนั้นได้ หลักการข้อ 3 – ข้อมูลที่แสดงเกี่ยวกับสิ่งนั้น ควรอยู่ในแบบมาตรฐาน RDF

62 ตัวอย่างการแสดงข้อมูลเกี่ยวกับ URI ในแบบ RDF

63 หลักการของ Linked Open Data (LOD) (3)
หลักการข้อ 4 – สร้างความเชื่อมโยง (link) ไปยัง URI อื่นๆ เพื่อให้สามารถเชื่อมโยงไป ยังสิ่งอื่นๆ ได้ ตัวอย่างโดย ศ.ดร.วิลาศ วูวงศ์ มหาวิทยาลัยมหิดล

64 RDF (Resource Description Framework)
RDF Triple: subject predicate object. <uri> <uri> {<uri> หรือ “literal”}. kukrit type Person. kukrit hasName “Kukrit Pramoj”. kukrit birthPlace singburi. ตัวอย่างโดย ศ.ดร.วิลาศ วูวงศ์ มหาวิทยาลัยมหิดล

65 ตัวอย่าง RDF Triple “ม.ร.ว.คึกฤทธิ์ ปราโมทย์เกิดที่จังหวัดสิงห์บุรี”
<subject> <predicate> <object>. < < <

66 ตัวอย่างการเชื่อมโยงข้อมูลโดยใช้ RDF
ตัวอย่างโดย ศ.ดร.วิลาศ วูวงศ์ มหาวิทยาลัยมหิดล

67 ตัวอย่างการเชื่อมโยงข้อมูลโดยใช้ RDF (2)
ตัวอย่างโดย ศ.ดร.วิลาศ วูวงศ์ มหาวิทยาลัยมหิดล

68 ตัวอย่างการเชื่อมโยงข้อมูลโดยใช้ RDF (2)
ตัวอย่างโดย ศ.ดร.วิลาศ วูวงศ์ มหาวิทยาลัยมหิดล

69 ตัวอย่างการเชื่อมโยงข้อมูลโดยใช้ RDF (3)
ตัวอย่างโดย ศ.ดร.วิลาศ วูวงศ์ มหาวิทยาลัยมหิดล

70 SPARQL: ภาษาสำหรับค้นคืนข้อมูล RDF
PREFIX dbpedia: < PREFIX dp: < PREFIX ntl: < SELECT ?x WHERE { ntl:kukrit dp:birthPlace ?x. } คำถาม: ม.ร.ว.คึกฤทธิ์ ปราโมทย์เกิดที่ ?

71 สถาปัตยกรรมเว็บเชิงความหมายของ W3C
71

72 RDF Schema & OWL (Ontology)
ex:Writer ex:PrimeMinister ex:Kukrit_Pramoj “Kukrit Pramoj”

73 ระบบจัดการชุดข้อมูลชนิด RDF (RDF Dataset Management System)
LST Lab, NECTEC

74 ที่มาและความสำคัญ RDF เป็นมาตรฐานข้อมูลที่สนับสนุนการ เชื่อมโยงข้อมูลตามแนวคิดของ Linked Open Data (LOD) ได้เป็นอย่างดี การค้นคืนข้อมูล RDF จาก RDF Data Portal ปกติจะทำผ่าน SPARQL Endpoint

75 ตัวอย่าง SPARQL Endpoint

76 SPARQL Endpoint VS. RESTFul API
นักพัฒนาแอพพลิเคชัน (developer)ต้องมีความรู้เกี่ยวกับมาตรฐาน RDF,SPARQL โปรแกรมเครื่องมือสนับสนุนการจัดการข้อมูล RDF สำหรับนักพัฒนายังมีไม่มากนัก RESTFul API เป็นเทคโนโลยีที่นักพัฒนาสามารถเรียนรู้ได้ง่ายกว่า (Low learning curve) โปรแกรมเครื่องมือสนับสนุนสำหรับนักพัฒนามีมากกว่า รองรับหลายภาษา Comparison between SPARQL Endpoint & RESTFul API -For querying via SPARQL Endpoint , Developer needs to learn new skill (RDF,SPARQL) Not as many support tools for developer -For querying via RESTFul API It can use users reduce a learning curve to use the data And more support tools for developers.

77 วัตถุประสงค์ เพื่อสนับสนุนการแปลงชุดข้อมูลแบบเปิดในแบบ CSV ให้อยู่ในแบบที่ง่ายต่อการบูรณาการข้อมูล ชุดข้อมูลตามมาตรฐาน RDF (4-star open data) RESTFul API ของชุดข้อมูล เพื่อพัฒนา Linked Open Data Platform ที่ ใช้งานง่าย โดยผู้ใช้ไม่จำเป็นต้องมีความรู้เกี่ยวกับ มาตรฐาน RDF และ SPARQL

78 Dataset APIs 1 ชุดข้อมูล / 1 API
ระบบทำหน้าที่แปลงไฟล์ ชุดข้อมูล CSV ให้อยู่ใน แบบมาตรฐาน RDF และ สร้างเป็น RESTFul API สำหรับการค้นคืนข้อมูลใน แต่ละชุดข้อมูล 1 ชุดข้อมูล / 1 API This figure shows design of dataset APIs DemoAPI.data.go.th provide the data as a service via RESTFul APIs for each dataset which was converted in RDF format and publish on this portal All datasets have the same pattern of querying APIs. So ,it can help user to reduce a learning time to use the data. Krataithong, P., Buranarach, M., Supnithi, T., and Hongwarittorrn, N., Semi-Automatic Framework for Generating RDF Dataset from Open Data, Proc. of the 11th International Symposium on Natural Language Processing (SNLP2016), February 2016. Krataithong, P., Buranarach, M., and Supnithi, T., RDF Dataset Management Framework for Data.go.th, Proc. of the 10th International Conference on Knowledge, Information and Creativity Support Systems (KICSS2015), November 2015.

79 เว็บไซต์สร้าง API อย่างอัตโนมัติจากชุดข้อมูลแบบเปิด (Beta)

80 ตัวอย่างการใช้งาน API สำหรับชุดข้อมูล (Dataset API)

81 ตัวอย่างการค้นหาข้อมูลจากชุดข้อมูลผ่าน Web API
ข้อมูลสายรถเมล์ 1. ค้นหาข้อมูลป้ายรถเมล์บนถนนเยาวราช Dataset : city_bus API: /searching/api/dataset/query?dsname=city_bus&path=city_bus& property=road&operator=CONTAINS&value=เยาวราช 2. ค้นหาข้อมูลป้ายรถเมล์ที่รถเมล์สาย1 วิ่งผ่านบนถนนเจริญกรุง Dataset : city_bus API: /searching/api/dataset/query?dsname=city_bus&path=city_bus& property=Number_bus&operator=EQUALS&value=1&property=road& operator=CONTAINS&value=เจริญกรุง ข้อมูลระดับน้ำในเขื่อน 3. ค้นหาข้อมูลระดับน้ำในเขื่อนลำตะคองวันที่มีระดับน้ำที่ใช้ได้น้อยกว่าร้อยละ 30 Dataset : dam_stat API: /searching/api/dataset/query?dsname=dam_stat&path=DamStat& property=damName&operator=CONTAINS&value=ลำตะคอง& property=usablePercentage&opeator=LT&value=30

82 ตัวอย่าง Demo Application ของ demo-api.data.go.th
Data Mashup Reservoir This slide we show the sample mash up application by programming that I access 2 dataset via RESTFul API the Figures on Top– I get the reservoir statistic data and render this description on Thailand Map ,column chart and tables. And we linked between reservoir stat and rainfall stat with province name Rainfall November 13, 2015

83 สรุป การเปิดเผยข้อมูล (open data) สามารถทำได้โดยการสร้างไฟล์ชุด ข้อมูล (dataset) ที่อยู่ในแบบที่โปรแกรมคอมพิวเตอร์สามารถ ประมวลผลได้ง่าย (machine readable/ reusable) ผู้เผยแพร่ชุดข้อมูลต้องระบุเมตาเดทา (metadata) และกำหนดสิทธิ์ในการใช้งานข้อมูล (license) เพื่อประโยชน์ของผู้ใช้งานชุดข้อมูล แนวทางการเปิดเผยข้อมูล 5 ระดับ แต่ละระดับต่างกันที่ ความง่ายต่อการนำไปใช้โดยโปรแกรมคอมพิวเตอร์ (Machine Readable) ความเป็นมาตรฐานแบบเปิด (Open Standard) การเชื่อมโยงข้อมูลแบบเปิด (Linked open data) ต้องมีการจัดเก็บ ข้อมูลอย่างถูกโครงสร้าง มีการใช้รหัสบ่งชี้กลางร่วมกัน และสนับสนุน วิธีการเข้าถึงข้อมูลที่สะดวกกับนักพัฒนา เช่น ในแบบของ Web API

84 แนวคิดเทคโนโลยี RESTFul Web API
These slides are taken and adapted from Semantic Web Service course lectures at STI: Introduction to Web Services, Yossi Amir, Itzik Kasovitch REST (Representational State Transfer), Roger L. Costello, Timothy D. Kehoe

85 Web API Web API หรือ Web Service เป็นรูปแบบ ของการให้บริการคำนวณ ประมวลผลและ ข้อมูล โดยไม่จำกัดว่าผู้ใช้บริการจะมาจากต่าง เครื่องหรือต่างหน่วยงานหรือไม่ “เว็บเซอร์วิส เป็นฟังก์ชันการทำงานของแอพพลิเคชันที่สามารถเข้าถึงได้ผ่านโปรโตคอลแบบเปิด”

86 ตัวอย่างการใช้ประโยชน์ Web API Example Mashup: Housingmaps.com

87 ตัวอย่างการใช้ประโยชน์ Web API (2) Example Mashup: Housingmaps.com
เว็บ Housingmaps.com ใช้ประโยชน์จาก 2 Web API (หรือ เว็บเซอร์วิส) คือ Craigslist API Google Maps API Web API ทำให้แอพพลิเคชันของหน่วยงาน หนึ่งสามารถใช้ประโยชน์จากแอพพลิเคชันของ หน่วยงานอื่นได้ผ่านเว็บ

88 ประวัติของเว็บเซอร์วิส
เทคโนโลยีเว็บเซอร์วิสถูกพัฒนาขึ้นมาเพื่อแก้ปัญหา การรับส่งข้อมูลระหว่างโปรแกรมจากต่างระบบ ดังนี้ การทำงานร่วมกันได้ (Interoperability) สามารถทำงานผ่าน Firewall ได้ (Firewall traversal) ลดความซับซ้อน (Complexity)

89 การทำงานร่วมกันได้ (Interoperability)
เดิมการประมวลผลข้อมูลจากต่างระบบแต่ละ บริษัทใช้มาตรฐานของตัวเองทำให้ไม่ สามารถทำงานร่วมกันได้ เช่น DCOM ทำงานกับโปรแกรม Windows เท่านั้น RMI ทำงานกับโปรแกรมที่เขียนด้วยภาษา Java ได้เท่านั้น

90 สามารถทำงานผ่าน Firewall ได้ (Firewall traversal)
การรับส่งข้อมูลระหว่างโปรแกรมจากต่างระบบ ใน แบบเดิม เช่น CORBA, DCOM รันอยู่บน port ที่ไม่เป็นมาตรฐาน เว็บเซอร์วิสทำงานผ่านโปรโตคอล HTTP ซึ่งรัน อยู่บน port 80 ทำให้สามารถทำงานผ่าน Firewall ได้

91 ลดความซับซ้อน (Complexity)
เว็บเซอร์วิส ถูกพัฒนาให้นักพัฒนาสามารถใช้ งานได้ง่ายขึ้น เทคโนโลยีเดิม เช่น RMI, DCOM, CORBA มีความซับซ้อน ยากสำหรับนักพัฒนา ต้องเรียนรู้ภาษาและเทคโนโลยีใหม่ ในการที่จะงานเทคโนโลยีเหล่านี้

92 เว็บเซอร์วิสชนิด RESTful (RESTful Web Services)
Representational State Transfer (REST) เป็นลักษณะการเรียกใช้งานซอฟแวร์ในสภาพแวดล้อมการทำงานแบบกระจาย เช่น WWW REST เป็นรูปแบบหนึ่งของการประมวลผลแบบ client/ server การส่งคำขอใช้งานและผลลัพธ์จะมองเป็นการเปลี่ยนสถานะของ resource

93 หลักการ (Conceptual Overview) (3) RESTful Web Service definition
เว็บแอพพลิเคชัน เป็นการรับคำสั่งในการประมวลผลผ่าน URL เพื่อแสดงข้อมูลผลลัพธ์ให้กับผู้ใช้ ผลลัพธ์เป็นเอกสาร HTML เพื่อแสดงผลใน browser เว็บเซอร์วิสแบบ RESTful คล้ายกับเว็บแอพพลิเคชัน แต่ ต่างกันที่ผู้ใช้ประโยชน์จากข้อมูลผลลัพธ์คือโปรแกรม คอมพิวเตอร์ ผลลัพธ์เป็นข้อมูลตามมาตรฐาน XML หรือ JSON เพื่อไปใช้งานในแอพพลิเคชันอื่นๆ

94 แนวคิดสำคัญพื้นฐานของ REST
Resources URLs Simple Operations 1 operation = 1 resource = 1 URL 1 URL ของเว็บเซอร์วิสจะใช้แทน 1 resource เช่นเดียวกับที่ 1 URL ของหน้าเว็บใช้แทน 1 resource

95 ตัวอย่าง RESTFul Web Service
ตัวอย่าง เช่น บริษัท Parts Depot สร้างเว็บ เซอร์วิสให้บริการลูกค้า ดังนี้ แสดงรายการสินค้าทั้งหมดในร้าน (get a list of parts) แสดงรายละเอียดของแต่ละผลิตภัณฑ์สินค้า (get detailed information about a particular part) ส่งใบสั่งซื้อ (submit a Purchase Order (PO))

96 ตัวอย่าง RESTFul Web Service (2)
HTTP GET request URL 1 Parts List HTTP response Response (HTML/XML doc) HTTP GET request URL 2 Part Data Web Server HTTP response Response (HTML/XML doc) PO (HTML/XML) HTTP POST URL 3 PO HTTP response URL to submitted PO

97 ตัวอย่าง Web Service: แสดงรายการสินค้าทั้งหมดในร้าน
ตัวอย่าง URL ของเว็บเซอร์วิสเพื่อ แสดงรายการสินค้าทั้งหมดในร้าน

98 ตัวอย่างผลลัพธ์ Web Service: แสดงรายการสินค้าทั้งหมดในร้าน
<?xml version="1.0"?> <Parts> <Part id="00345" href=" <Part id="00346" href=" <Part id="00347" href=" <Part id="00348" href=" </Parts> * ผลลัพธ์เป็นรายการ link ไปยังเว็บเซอร์วิสเพื่อแสดงข้อมูลสินค้าแต่ละรายการ

99 ตัวอย่าง Web Service: แสดงรายละเอียดของแต่ละผลิตภัณฑ์สินค้า
ตัวอย่าง URL ของเว็บเซอร์วิสเพื่อแสดง รายละเอียดของแต่ละผลิตภัณฑ์สินค้า

100 ตัวอย่างผลลัพธ์ Web Service: แสดงรายละเอียดของแต่ละผลิตภัณฑ์สินค้า
<?xml version="1.0"?> <Part> <Part-ID>00345</Part-ID> <Name>Widget-A</Name> <Description>This part is used within the frap assembly</Description> <Specification href=" <UnitCost currency="USD">0.10</UnitCost> <Quantity>10</Quantity> </Part>

101 ตัวอย่างการใช้งานจริง Twitter REST API – GET example
Srdjans-MacBook-Pro:~ skomazec$ curl -v * About to connect() to api.twitter.com port 80 (#0) * Trying connected * Connected to api.twitter.com ( ) port 80 (#0) > GET /1/statuses/show/ xml HTTP/1.1 > User-Agent: curl/ (universal-apple-darwin10.0) libcurl/ OpenSSL/0.9.8l zlib/1.2.3 > Host: api.twitter.com > Accept: */* > < HTTP/ OK < Date: Sun, 06 Jun :09:31 GMT < Server: hi < Status: 200 OK < X-Transaction: < X-RateLimit-Limit: 150 < Vary: Accept-Encoding < Connection: close < <?xml version="1.0" encoding="UTF-8"?> <status> <created_at>Thu Feb 25 14:23: </created_at> <id> </id> <text>From our European public policy blog, Amit Singhal explains just how tough search is: <source><a href=" rel="nofollow">bit.ly</a></source> <truncated>false</truncated> <user> <id> </id> <name>A Googler</name> <screen_name>google</screen_name> <location>Mountain View, CA</location> <description>News and updates from Google</description> <profile_image_url> <url> <protected>false</protected> <followers_count> </followers_count> Service URL

102 JSON Overview JavaScript Object Notation (JSON)
A lightweight computer data interchange format. Specified in Request For Comment (RFC) 4627. Represents a simple alternative to XML A text-based, human-readable format for representing simple data structures and associative arrays (called objects). Used by a growing number of services JavaScript-friendly notation Its main application is in Ajax Web application programming. A serialized object or array No namespaces, attributes etc. No schema language (for description, verification)

103 JSON Example { "firstName": "John", "lastName": "Smith", "age": 25,
"address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumbers": [ { "type": "home", "number": " " }, { "type": "fax", "number": " " } ], "newSubscription": false, "companyName": null }

104 เทียบได้กับ XML data ต่อไปนี้
<?xml version="1.0" encoding="UTF-8" ?> <firstName>John</firstName> <lastName>Smith</lastName> <age>25</age> <address> <streetAddress>21 2nd Street</streetAddress> <city>New York</city> <state>NY</state> <postalCode>10021</postalCode> </address> <phoneNumbers> <type>home</type> <number> </number> </phoneNumbers> <type>fax</type> <number> </number> <newSubscription>false</newSubscription> <companyName />

105 AJAX Overview Asynchronous JavaScript and XML (AJAX)
A group of interrelated web development techniques used on the client-side to create interactive web applications Web apps can fetch data from the server without refreshing the page AJAX is used to increase interactivity and dynamism of web pages Since the technological base is partially shared AJAX and RESTful services make a good match Enriching Web pages with the data operated through RESTful services


ดาวน์โหลด ppt แนวทางการบูรณาการข้อมูลแบบเปิดโดยใช้เทคโนโลยี Linked Open Data

งานนำเสนอที่คล้ายกัน


Ads by Google