หากคุณเพิ่งเริ่มใช้ Freebase ส่วนนี้จะครอบคลุมคำศัพท์และแนวคิดพื้นฐานที่จำเป็นต่อการทำความเข้าใจวิธีการทำงานของ Freebase
- กราฟ
- หัวข้อ
- ประเภทและพร็อพเพอร์ตี้
- โดเมนและรหัส
- ประเภทค่าแบบผสม
- MID ของหัวข้อ
- เนมสเปซ คีย์ และรหัสหัวข้อ
- ข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้
- สรุป
กราฟ
ข้อมูล Freebase จะจัดเก็บไว้ในโครงสร้างข้อมูลที่เรียกว่ากราฟ กราฟประกอบด้วยโหนดที่เชื่อมต่อกันด้วยขอบ ใน Freebase จะกำหนดโหนดโดยใช้ /type/object และกำหนดขอบโดยใช้ /type/link การจัดเก็บข้อมูลเป็นกราฟทำให้ Freebase สามารถข้ามการเชื่อมต่อที่กำหนดเองระหว่างหัวข้อต่างๆ ได้อย่างรวดเร็ว และเพิ่มสคีมาใหม่ๆ ได้อย่างง่ายดายโดยไม่ต้องเปลี่ยนโครงสร้างของข้อมูล
หัวข้อ
Freebase มีหัวข้อกว่า 39 ล้านหัวข้อเกี่ยวกับเอนทิตีในโลกแห่งความเป็นจริง เช่น ผู้คน สถานที่ และสิ่งต่างๆ เนื่องจากข้อมูล Freebase แสดงเป็นกราฟ หัวข้อเหล่านี้จึงสอดคล้องกับโหนดในกราฟ อย่างไรก็ตาม ไม่ใช่ทุกโหนดจะเป็นหัวข้อ ดูส่วนเกี่ยวกับ CVT เป็นตัวอย่างของโหนดที่ไม่ใช่หัวข้อ
ตัวอย่างประเภทหัวข้อที่พบใน Freebase
- เอนทิตีทางกายภาพ เช่น Bob Dylan, พิพิธภัณฑ์ลูฟวร์, ดาวเสาร์
- ผลงานศิลปะ/สื่อ เช่น The Dark Knight (ภาพยนตร์), Hotel California (เพลง)
- การจัดประเภท เช่น แก๊สมีตระกูล คอร์ดาตา
- แนวคิดเชิงนามธรรม เช่น ความรัก
- สำนักคิดหรือขบวนการทางศิลปะ เช่น ลัทธิประทับใจ
บางหัวข้อมีความโดดเด่นเนื่องจากมีข้อมูลจำนวนมาก (เช่น วอลมาร์ท) และบางหัวข้อก็มีความสำคัญเนื่องจากลิงก์ไปยังหัวข้ออื่นๆ อีกมากมาย ซึ่งอาจอยู่ในโดเมนข้อมูลที่แตกต่างกัน ตัวอย่างเช่น หัวข้อที่เป็นนามธรรมอย่างความรัก ความยากจน ความกล้าหาญ ฯลฯ ไม่ได้มีพร็อพเพอร์ตี้มากมายที่เชื่อมโยงกับหัวข้อเหล่านั้น แต่หัวข้อเหล่านี้มักปรากฏเป็นหัวข้อของหนังสือ บทกวี ภาพยนตร์ ฯลฯ ซึ่งทำให้หัวข้อเหล่านั้นโดดเด่นยิ่งขึ้น
ประเภทและพร็อพเพอร์ตี้
คุณสามารถดูหัวข้อใดก็ได้จากมุมมองที่แตกต่างกันมากมาย เช่น
- บ็อบ ดิลลันเป็นนักแต่งเพลง นักร้อง นักแสดง นักเขียนหนังสือ และนักแสดงภาพยนตร์
- เลโอนาร์โด ดา วินชีเป็นจิตรกร ประติมากร นักกายวิภาค สถาปนิก วิศวกร ...
- ความรักเป็นหัวเรื่องของหนังสือ ภาพยนตร์ ละคร บทกวี ...
- เมืองทุกเมืองเป็นสถานที่ตั้ง ซึ่งอาจเป็นจุดหมายปลายทางของนักท่องเที่ยวและเป็นผู้ว่าจ้างข้าราชการ
เราจึงได้นำแนวคิดของประเภทใน Freebase มาใช้เพื่อบันทึกลักษณะหลายแง่มุมของหัวข้อต่างๆ หัวข้อใน Freebase สามารถมีประเภทที่กำหนดได้ไม่จำกัดจำนวน ระบบจะกำหนดหัวข้อเกี่ยวกับ Bob Dylan เป็นหลายประเภท ได้แก่ ประเภทนักแต่งเพลง ประเภทนักประพันธ์เพลง ประเภทศิลปินเพลง (นักร้อง) ประเภทผู้แต่งหนังสือ ฯลฯ แต่ละประเภทจะมีชุดพร็อพเพอร์ตี้ที่แตกต่างกันซึ่งเกี่ยวข้องกับประเภทนั้นๆ ตัวอย่างเช่น
- ประเภทศิลปินเพลงมีพร็อพเพอร์ตี้ที่แสดงรายการอัลบั้มทั้งหมดที่ Bob Dylan ผลิต รวมถึงเครื่องดนตรีทั้งหมดที่เขามีชื่อเสียงในการเล่น
- ประเภทผู้แต่งหนังสือมีพร็อพเพอร์ตี้ที่แสดงรายการหนังสือทั้งหมดที่บ็อบ ดีแลนเขียนหรือแก้ไข รวมถึงแนวคิดหรือขบวนการด้านการเขียนของเขา
- ประเภทบริษัทมีพร็อพเพอร์ตี้มากมายสำหรับการแสดงข้อมูลผู้ก่อตั้งบริษัท สมาชิกคณะกรรมการ บริษัทแม่ แผนก พนักงาน ผลิตภัณฑ์ บันทึกรายได้และกำไรแบบปีต่อปี ฯลฯ
ดังนั้น คุณอาจคิดว่าประเภทคือคอนเทนเนอร์เชิงแนวคิดของพร็อพเพอร์ตี้ที่จำเป็นที่สุดในการอธิบายข้อมูลด้านใดด้านหนึ่ง (คุณอาจคิดว่าประเภทคล้ายกับตารางเชิงสัมพันธ์ และตาราง "ประเภท" แต่ละตารางมีคีย์นอกในตาราง "ข้อมูลประจำตัว" ตารางเดียวที่กำหนดแต่ละหัวข้ออย่างไม่ซ้ำกัน)
โดเมนและรหัส
เช่นเดียวกับการจัดกลุ่มพร็อพเพอร์ตี้เป็นประเภทต่างๆ ประเภทเองก็จัดกลุ่มเป็นโดเมนเช่นกัน ลองนึกถึงโดเมนเป็นส่วนต่างๆ ในหนังสือพิมพ์ฉบับโปรด เช่น ธุรกิจ ไลฟ์สไตล์ ศิลปะและความบันเทิง การเมือง เศรษฐศาสตร์ ฯลฯ โดยแต่ละโดเมนจะมีรหัส (ตัวระบุ) เช่น
รหัสของโดเมนมีลักษณะเป็นพาธไฟล์หรือพาธในที่อยู่เว็บ
นอกจากนี้ แต่ละประเภทจะมีรหัส และรหัสจะอิงตามโดเมนที่ประเภทนั้นๆ สังกัดอยู่ เช่น ประเภทบริษัทจะอยู่ในโดเมนธุรกิจ และมีรหัส /business/company
ตัวอย่างอื่นๆ มีดังนี้
/music/album
คือรหัสของประเภทอัลบั้ม (เพลง) ซึ่งอยู่ในโดเมนเพลง/film/actor
- ประเภทนักแสดงในโดเมนภาพยนตร์/medicine/disease
- ประเภทโรคในโดเมนยา
เช่นเดียวกับที่ประเภทรับช่วงส่วนเริ่มต้นของรหัสจากโดเมน พร็อพเพอร์ตี้ก็รับช่วงส่วนเริ่มต้นของรหัสจากประเภทที่พร็อพเพอร์ตี้นั้นสังกัดอยู่ด้วย เช่น พร็อพเพอร์ตี้อุตสาหกรรมของประเภทบริษัท (ใช้เพื่อระบุว่าบริษัทอยู่ในอุตสาหกรรมใด) จะมีรหัส /business/company/industry
ตัวอย่างอื่นๆ มีดังนี้
/automotive/engine/horsepower
คือรหัสของพร็อพเพอร์ตี้แรงม้าของประเภทเครื่องยนต์ (ยานยนต์)/astronomy/star/planet_s
คือรหัสของพร็อพเพอร์ตี้ Planets ของประเภท Star (ใช้สำหรับแสดงดาวเคราะห์ที่โคจรรอบดาวฤกษ์)/language/human_language/writing_system
คือรหัสของพร็อพเพอร์ตี้ระบบการเขียนของประเภทภาษามนุษย์
ดังนั้นแม้ว่าประเภทจะไม่ได้จัดเรียงเป็นลำดับชั้นใน Freebase แต่โดเมน ประเภท และพร็อพเพอร์ตี้จะมีรหัสที่จัดเรียงตามแนวคิดในลำดับชั้นที่คล้ายกับไดเรกทอรีไฟล์
ประเภทค่าแบบผสม
ประเภทค่าผสมคือประเภทภายใน Freebase ซึ่งใช้เพื่อแสดงข้อมูลที่แต่ละรายการประกอบด้วยฟิลด์หลายรายการ ประเภทค่าผสมหรือ CVT ใช้ใน Freebase เพื่อแสดงข้อมูลที่ซับซ้อน แม้ว่าอาจจะดูสับสนเล็กน้อยในช่วงแรก แต่ CVT เป็นส่วนที่สำคัญมากในสคีมา Freebase และช่วยให้สามารถสร้างความสัมพันธ์ที่ซับซ้อนระหว่างหัวข้อต่างๆ ได้อย่างแม่นยำยิ่งขึ้น
ลองดูตัวอย่างต่อไปนี้ ประชากรของเมืองเป็นสิ่งที่มีการเปลี่ยนแปลงอยู่ตลอดเวลา ซึ่งหมายความว่าเมื่อใดก็ตามที่คุณค้นหาประชากรใน Freebase คุณจะขอประชากร ณ วันที่หนึ่งๆ โดยนัยอย่างน้อย โดยมีค่า 2 ค่าที่เกี่ยวข้อง ได้แก่ จำนวนคนและวันที่ ต่อไปนี้คือสถานการณ์ที่ CVT มีประโยชน์อย่างยิ่ง หากไม่มี คุณจะต้องสร้างหัวข้อเพื่อจำลองข้อมูลประชากร และตั้งชื่อหัวข้อ เช่น "ประชากรของแวนคูเวอร์ในปี 1997" แล้วส่งข้อมูลในหัวข้อนั้น
คุณอาจคิดว่า CVT เป็นหัวข้อที่ไม่จำเป็นต้องตั้งชื่อที่แสดง CVT มี GUID ที่อ้างอิงได้อย่างอิสระเช่นเดียวกับหัวข้อปกติ อย่างไรก็ตาม ไคลเอ็นต์ Freebase จะถือว่ารายการเหล่านี้แตกต่างจากหัวข้อมาก ในกรณีส่วนใหญ่ พร็อพเพอร์ตี้ทุกรายการของ CVT ควรเป็นพร็อพเพอร์ตี้การแยกความกำกวม
MID ของหัวข้อ
แม้ว่าระบบอาจระบุหัวข้อได้หรือไม่ได้ด้วยรหัสเนมสเปซ/คีย์ แต่ก็ระบุได้เสมอด้วย MID ซึ่งเป็นตัวระบุเครื่องที่ประกอบด้วย /m/
ตามด้วยตัวระบุที่ไม่ซ้ำกันในฐาน 32 ระบบจะกำหนด MID ให้กับหัวข้อเมื่อสร้าง และจะจัดการ MID ตลอดอายุของหัวข้อ โดยจะมีบทบาทสำคัญเมื่อมีการผสานหรือแยกหัวข้อ ซึ่งจะช่วยให้แอปพลิเคชันภายนอกติดตามหัวข้อเชิงตรรกะได้แม้ว่าข้อมูลระบุตัวตนของ Freebase จริง (GUID ของหัวข้อ) อาจมีการเปลี่ยนแปลง รหัสที่ระบบสร้างขึ้นจะแตกต่างจากรหัส Freebase อื่นๆ ที่มนุษย์อ่านได้ (ซึ่งพร็อพเพอร์ตี้ "id" จะแสดง) ดังนี้
- รับประกันว่ามีอยู่
- สร้างโดยเครื่อง
- ออกแบบมาเพื่อรองรับการเปรียบเทียบแบบออฟไลน์
- ไม่ได้ออกแบบมาเพื่อสื่อความหมายให้มนุษย์เข้าใจ
- สั้น (อาจมีความยาวคงที่)
- เหมาะสำหรับการแลกเปลี่ยนคีย์อย่างรวดเร็วระหว่างระบบและคอมโพเนนต์ภายนอก (ภายนอก แลกเปลี่ยน)
MID คือตัวระบุที่แนะนำให้ใช้เพื่อระบุหัวข้อใน Freebase
Namespace, คีย์ และรหัสหัวข้อ
ลำดับชั้นของโดเมน ประเภท และรหัสพร็อพเพอร์ตี้ที่คล้ายกับไดเรกทอรีไฟล์เป็นเพียงการประยุกต์ใช้แนวคิดที่ครอบคลุมกว่า นั่นคือเนมสเปซและคีย์ เนมสเปซก็เหมือนไดเรกทอรีไฟล์ ส่วนคีย์ก็เหมือนชื่อไฟล์ เช่นเดียวกับชื่อไฟล์ทั้งหมดภายในไดเรกทอรีไฟล์หนึ่งๆ ที่ต้องไม่ซ้ำกัน คีย์ทั้งหมดภายในเนมสเปซหนึ่งๆ ก็ต้องไม่ซ้ำกันด้วย
ตัวอย่างที่เฉพาะเจาะจงมากขึ้นคือ /business
เป็นเนมสเปซที่สอดคล้องกับโดเมนธุรกิจ โดยประเภทที่เกี่ยวข้องกับธุรกิจจะมีคีย์ (เช่น company
) ที่ไม่ซ้ำกัน รหัสของแต่ละประเภทจะสร้างขึ้นโดยการต่อท้ายคีย์ของประเภทนั้นกับรหัสของเนมสเปซ (เช่น /business/company
)
นอกจากเนมสเปซที่สอดคล้องกับโดเมนและประเภทแล้ว ยังมีเนมสเปซอีกหลายประเภท เนมสเปซที่สำคัญที่สุดและพบได้บ่อยคือ /en
นี่คือเนมสเปซภาษาอังกฤษซึ่งหัวข้อที่รู้จักกันดีส่วนใหญ่จะมีคีย์ที่ไม่ซ้ำกันเพื่อสร้างรหัสภาษาอังกฤษที่มนุษย์อ่านได้ ตัวอย่างเช่น บ็อบ ดีแลน นักแต่งเพลงชื่อดังเป็นที่รู้จักกันดีจนหัวข้อของเขาใน Freebase มีคีย์ bob_dylan
ในเนมสเปซ /en
และรหัสของหัวข้อจึงเป็น /en/bob_dylan
รหัสนี้ช่วยให้คุณเข้าถึงหัวข้อของเขาในเว็บไคลเอ็นต์ได้ด้วย URL ที่เรียบง่าย
ข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้
แนวคิดพื้นฐานสุดท้ายที่จะกล่าวถึงเกี่ยวข้องกับความแตกต่างที่สำคัญระหว่างพร็อพเพอร์ตี้ Freebase กับสิ่งที่คล้ายกันในเทคโนโลยีฐานข้อมูลเชิงสัมพันธ์ ซึ่งก็คือคอลัมน์ตารางเชิงสัมพันธ์ สำหรับแต่ละแถว คอลัมน์ตารางเชิงสัมพันธ์จะมีได้เพียงค่าเดียว ตัวอย่างเช่น พิจารณาตารางเชิงสัมพันธ์ "book" ทั่วไปที่มีคอลัมน์ชื่อ "author" สำหรับแต่ละแถวในตาราง "book" คอลัมน์ "author" จะมีคีย์นอกได้เพียง 1 รายการในตาราง "author" หากหนังสือมีผู้เขียนหลายคน การออกแบบสคีมาเชิงสัมพันธ์อย่างง่ายนี้จะใช้ไม่ได้ และเราจะต้องสร้างตารางใหม่เพื่อจำลองการเป็นผู้เขียน กล่าวคือ เราจะต้องมีตาราง "หนังสือ" 1 ตาราง ตาราง "ผู้เขียน" 1 ตาราง และตาราง "การเขียน" 1 ตารางเพื่อจัดเก็บความสัมพันธ์แบบกลุ่มต่อกลุ่มระหว่างหนังสือและผู้เขียน และวิธีดึงข้อมูลจะเปลี่ยนแปลงไปอย่างมากเมื่อคุณเปลี่ยนจากการออกแบบสคีมาหนึ่งไปยังอีกสคีมาหนึ่ง
Freebase ต่างจากเทคโนโลยีฐานข้อมูลทั่วไปตรงที่มองว่าพร็อพเพอร์ตี้แบบหลายค่าเป็นสิ่งที่พึงประสงค์อย่างยิ่งในการสร้างแบบจำลองข้อมูลในชีวิตจริง จึงรองรับพร็อพเพอร์ตี้แบบหลายค่าโดยค่าเริ่มต้น กล่าวคือ เมื่อสร้างพร็อพเพอร์ตี้ /book/written_work/author
ระบบจะถือว่าอนุญาตให้มีผู้เขียนหลายคนต่อหนังสือ 1 เล่ม และคุณสามารถค้นหาพร็อพเพอร์ตี้แบบหลายค่าและพร็อพเพอร์ตี้แบบค่าเดียวได้ในลักษณะเดียวกัน คุณไม่จำเป็นต้องคิดว่าต้องรวมกับตารางที่สามที่สร้างความสัมพันธ์แบบหลายต่อหลายหรือไม่
สรุป
- ประเภทคือคอนเทนเนอร์เชิงแนวคิดของพร็อพเพอร์ตี้ที่เกี่ยวข้องซึ่งมักจำเป็นต่อการอธิบายลักษณะบางอย่างของหัวข้อ
- คุณกำหนดประเภทให้กับหัวข้อได้มากกว่า 1 ประเภท (ประเภทเริ่มต้นคือ
/common/topic
) - เมื่อจัดกลุ่มพร็อพเพอร์ตี้เป็นประเภทแล้ว ระบบจะจัดกลุ่มประเภทเป็นโดเมน
- ระบบจะกำหนดรหัสให้กับโดเมน ประเภท และพร็อพเพอร์ตี้ในลำดับชั้นของเนมสเปซ/คีย์
- ระบบจะกำหนดรหัสให้กับหัวข้อที่รู้จักกันดีทั่วไปในเนมสเปซ
/en
ซึ่งเป็นสตริงภาษาอังกฤษที่มนุษย์อ่านได้ - ระบบจะระบุหัวข้อใน Freebase โดยไม่ซ้ำกันด้วย GUID
- พร็อพเพอร์ตี้เป็นแบบหลายค่าโดยค่าเริ่มต้น และสามารถค้นหาพร็อพเพอร์ตี้แบบหลายค่าและพร็อพเพอร์ตี้แบบค่าเดียวได้ในลักษณะเดียวกัน