อ่าน 2 นาที
แท็กซิสเตอร์
Tagsistant คือ ระบบไฟล์เชิงความหมาย สำหรับ เคอร์เนลลินุกซ์ เขียนด้วย ภาษาซี และอิงตาม FUSE แตกต่างจาก ระบบไฟล์ แบบดั้งเดิมที่ใช้ลำดับชั้นของไดเร็กทอรีในการค้นหาวัตถุ Tagsistant...
แท็กซิสเตอร์
| แท็กซิสเตอร์ | |
|---|---|
| นักพัฒนา | Tx0 <[email protected]> |
| เวอร์ชันเสถียร | 0.6 |
| เขียนเป็น | ซี |
| ระบบปฏิบัติการ | เคอร์เนลลินุกซ์ |
| มีจำหน่ายใน | ภาษาอังกฤษ |
| พิมพ์ | ระบบไฟล์เชิงความหมาย |
| ใบอนุญาต | จีเอ็นยู จีพีแอล |
| เว็บไซต์ | http://www.tagsistant.net/ |
| นักพัฒนา | ทx0 |
|---|---|
| อื่น | |
| ระบบปฏิบัติการที่รองรับ | ลินุกซ์ |
Tagsistantคือระบบไฟล์เชิงความหมายสำหรับเคอร์เนลลินุกซ์เขียนด้วยภาษาซีและอิงตามFUSE แตกต่างจาก ระบบไฟล์แบบดั้งเดิมที่ใช้ลำดับชั้นของไดเร็กทอรีในการค้นหาวัตถุ Tagsistant นำเสนอแนวคิดของแท็ก
การออกแบบและความแตกต่างกับระบบไฟล์แบบลำดับชั้น
ในทางคอมพิวเตอร์ระบบไฟล์เป็นรูปแบบหนึ่งของที่เก็บข้อมูล ซึ่งสามารถใช้ในการจัดเก็บ ดึงข้อมูล และอัปเดตไฟล์ได้ ไฟล์แต่ละไฟล์สามารถระบุตำแหน่งได้อย่างเฉพาะเจาะจงด้วยพาธ ของ ไฟล์ ผู้ใช้ต้องทราบพาธล่วงหน้าเพื่อเข้าถึงไฟล์ และพาธนั้นไม่จำเป็นต้องมีข้อมูลใดๆ เกี่ยวกับเนื้อหาของไฟล์
Tagsistant ใช้แนวทางเสริมที่อิงตามแท็กผู้ใช้สามารถสร้างชุดแท็กและนำแท็กเหล่านั้นไปใช้กับไฟล์ไดเร็กทอรีและวัตถุอื่นๆ ( อุปกรณ์ท่อฯลฯ ) จากนั้นผู้ใช้สามารถค้นหาวัตถุทั้งหมดที่ตรงกับชุดย่อยของแท็ก ซึ่งเรียกว่าการค้นหา แนวทางนี้เหมาะสำหรับการจัดการเนื้อหาของผู้ใช้ เช่น รูปภาพ บันทึกเสียง ภาพยนตร์ และเอกสารข้อความ แต่ไม่สามารถใช้งานร่วมกับไฟล์ระบบ (เช่น ไลบรารี คำสั่ง และการกำหนดค่า) ซึ่งความเฉพาะเจาะจงของเส้นทางเป็น ข้อกำหนดด้าน ความปลอดภัยเพื่อป้องกันการเข้าถึงเนื้อหาที่ไม่ถูกต้อง
ไดเร็กทอรีแท็ก/
ระบบไฟล์ Tagsistant ประกอบด้วยไดเร็กทอรีหลักสี่แห่ง:
- คลังเก็บเอกสารสำคัญ/
- ความสัมพันธ์/
- สถิติ/
- แท็ก/
แท็กจะถูกสร้างขึ้นเป็นไดเร็กทอรีย่อยของtags/ไดเร็กทอรีหลัก และสามารถใช้ในการค้นหาที่ตรงตามไวยากรณ์นี้:
tags/subquery/[+/subquery/[+/subquery/]]/@/[ 1 ]
โดยที่ซับเควรีคือรายการแท็กที่ไม่จำกัดจำนวน ซึ่งต่อกันเป็นไดเร็กทอรี:
tag1/tag2/tag3/.../tagN/
ส่วนของเส้นทางที่คั่นด้วยเครื่องหมาย & tags/และ & @/คือคำสั่งค้นหาจริง+/ตัวดำเนินการ `join` จะรวมผลลัพธ์ของคำสั่งค้นหาย่อยต่างๆ เข้าไว้ในรายการเดียว@/ตัวดำเนินการ `end` จะสิ้นสุดคำสั่งค้นหา
ผลลัพธ์ที่ได้จากการสืบค้นข้อมูลต่อไปนี้:
tags/t1/t2/+/t1/t4/@/
วัตถุจะต้องถูกติดแท็กเป็นทั้งt1/และt2/หรือเป็นทั้งt1/และt4/วัตถุใดๆ ที่ถูกติดแท็กเป็นt2/หรือt4/แต่ไม่ได้ติดแท็กเป็นt1/จะไม่ถูกดึงข้อมูลมา
ไวยากรณ์การค้นหาจงใจละเมิดความหมายของ ระบบไฟล์ POSIXโดยอนุญาตให้โทเค็นเส้นทางเป็นลูกหลานของตัวเอง เช่น ในtags/t1/t2/+/t1/t4/@กรณีที่t1/ปรากฏสองครั้ง ผลที่ตามมาคือ การสแกนแบบวนซ้ำของระบบไฟล์ Tagsistant จะจบลงด้วยข้อผิดพลาดหรือวนลูปไม่สิ้นสุด เหมือนที่เกิดขึ้นในระบบ Unixfind
~/tagsistant_mountpoint$ find tags/ แท็ก/ แท็ก/เอกสาร แท็ก/เอกสาร/+ แท็ก/เอกสาร/+/เอกสาร แท็ก/เอกสาร/+/เอกสาร/+ แท็ก/เอกสาร/+/เอกสาร/+/เอกสาร แท็ก/เอกสาร/+/เอกสาร/+/เอกสาร/+ [ ... ]ข้อเสียนี้ได้รับการชดเชยด้วยความเป็นไปได้ที่จะระบุแท็กภายในคำค้นหาในลำดับใดก็ได้ คำค้นหานี้tags/t1/t2/@/เทียบเท่ากับtags/t2/t1/@/และtags/t1/+/t2/t3/@/เทียบเท่าtags/t2/t3/+/t1/@/กับ
องค์ประกอบ นี้@/มีจุดประสงค์ที่ชัดเจนในการคืนค่าความหมายของ POSIX: เส้นทางดังtags/t1/@/directory/กล่าวอ้างอิงถึงไดเร็กทอรีแบบดั้งเดิม และการสแกนแบบเรียกซ้ำของเส้นทางนี้จะทำงานได้อย่างถูกต้อง
ตัวให้เหตุผลและความสัมพันธ์/ไดเร็กทอรี
Tagsistant มีระบบวิเคราะห์ข้อมูล แบบง่ายๆ ที่ขยายผลลัพธ์ของการค้นหาโดยการรวมวัตถุที่ติดแท็กที่เกี่ยวข้อง ความสัมพันธ์ระหว่างสองแท็กสามารถสร้างขึ้นภายในrelations/ไดเร็กทอรีตามรูปแบบสามระดับ:
relations/tag1/rel/tag2/
องค์ประกอบ นี้relสามารถรวมอยู่ด้วยหรือเทียบเท่าได้หากต้องการรวม แท็ก rockเข้าไปใน แท็ก musicmkdirสามารถใช้ คำสั่ง Unix ได้ดังนี้:
mkdir -p relations/music/includes/rock
ตัวให้เหตุผลสามารถแก้ไขความสัมพันธ์แบบเรียกซ้ำได้ ทำให้สามารถสร้างโครงสร้างที่ซับซ้อนได้:
mkdir -p relations/music/includes/rockmkdir -p relations/rock/includes/hard_rockmkdir -p relations/rock/includes/grungemkdir -p relations/rock/includes/heavy_metalmkdir -p relations/heavy_metal/includes/speed_metal
เครือข่ายความสัมพันธ์ที่สร้างขึ้นภายในrelations/ไดเร็กทอรีนั้นถือเป็นรูปแบบพื้นฐานของออนโทโลยี
ปลั๊กอินการติดแท็กอัตโนมัติ
Tagsistant มี สแต็กปลั๊กอิน การติดแท็กอัตโนมัติซึ่งจะถูกเรียกเมื่อมีการเขียนไฟล์หรือลิงก์สัญลักษณ์[ 2 ]ปลั๊กอินแต่ละตัวจะถูกเรียกหากประเภท MIME ที่ประกาศไว้ ตรงกัน
รายชื่อปลั๊กอินที่ใช้งานได้ซึ่งเผยแพร่พร้อมกับ Tagsistant 0.6 มีจำนวนจำกัดดังนี้:
- text/html: แท็กไฟล์ด้วยคำแต่ละคำ
<title>และ องค์ประกอบ ต่างๆ<keywords>รวมถึงเอกสารเว็บเพจและhtmlด้วย - image/jpeg: ติดแท็ก Exif ให้กับไฟล์แต่ละไฟล์
ที่เก็บข้อมูล
แต่ละระบบไฟล์ Tagsistant มีที่เก็บข้อมูลที่สอดคล้องกันซึ่งประกอบด้วยarchive/ไดเร็กทอรีที่วัตถุถูกบันทึกจริงและtags.sqlไฟล์ที่เก็บข้อมูลการติดแท็กในรูปแบบฐาน ข้อมูล SQLiteหากระบุเอ็นจินฐานข้อมูลMySQL--db ด้วย อาร์กิวเมนต์ ไฟล์นั้นtags.sqlจะว่างเปล่า ไฟล์อีกไฟล์หนึ่งชื่อrepository.iniGLib ini store ที่มีการกำหนดค่าที่เก็บข้อมูล[ 3 ]
Tagsistant 0.6 สามารถใช้งานร่วมกับภาษา SQL ของ MySQL และ Sqlite สำหรับการวิเคราะห์และแก้ไขปัญหาเรื่องแท็ก แม้ว่าการปรับใช้ตรรกะของโปรแกรมกับภาษา SQL อื่นๆ จะเป็นไปได้ แต่ต้องพิจารณาถึงความแตกต่างในโครงสร้างพื้นฐาน (โดยเฉพาะคำหลัก INTERSECT ใน SQL) ด้วย
ไดเร็กทอรี archive/ และ stats/
ไดเร็กทอรี นี้archive/ได้รับการแนะนำเพื่อให้สามารถเข้าถึงวัตถุได้อย่างรวดเร็วโดยไม่ต้องใช้แท็ก วัตถุจะถูกแสดงรายการโดยมีหมายเลข inode นำหน้า[ 4 ]
ไดเร็กทอรี นี้stats/มีไฟล์แบบอ่านอย่างเดียวหลายไฟล์ซึ่งบรรจุสถิติการใช้งาน ไฟล์หนึ่งconfigurationเก็บทั้งข้อมูลเวลาคอมไพล์และการกำหนดค่าที่เก็บข้อมูลปัจจุบัน
ข้อวิจารณ์หลัก
มีการเน้นย้ำว่าการพึ่งพาฐานข้อมูลภายนอกเพื่อจัดเก็บแท็กและข้อมูลการติดแท็กอาจทำให้ข้อมูลเมตาสูญหายทั้งหมดหากฐานข้อมูลเสียหาย[ 5 ]
มีการเน้นย้ำว่าการใช้เนมสเปซแบบแบนมักทำให้tags/ไดเร็กทอรีแออัด[ 6 ]สามารถลดปัญหานี้ได้โดยการแนะนำแท็ กสามชั้น
ดูเพิ่มเติม
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ
- แพ็คเกจ Arch Linux ถูกเก็บถาวรเมื่อวันที่ 28 สิงหาคม 2019 ที่Wayback Machine
- การสนทนาบน Hacker News
- คุณสมบัติเพิ่มเติมและระบบไฟล์แท็ก
- แท็กต่อต้านการผลิต
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ แท็กซิสเตอร์
Tagsistant คือ ระบบไฟล์เชิงความหมาย สำหรับ เคอร์เนลลินุกซ์ เขียนด้วย ภาษาซี และอิงตาม FUSE แตกต่างจาก ระบบไฟล์ แบบดั้งเดิมที่ใช้ลำดับชั้นของไดเร็กทอรีในการค้นหาวัตถุ Tagsistant...
การออกแบบและความแตกต่างกับระบบไฟล์แบบลำดับชั้น
ในทางคอมพิวเตอร์ ระบบไฟล์ เป็นรูปแบบหนึ่งของที่เก็บข้อมูล ซึ่งสามารถใช้ในการจัดเก็บ ดึงข้อมูล และอัปเดต ไฟล์ ได้ ไฟล์แต่ละไฟล์สามารถระบุตำแหน่งได้อย่างเฉพาะเจาะจงด้วย พาธ ของ ไฟล์ ผู้ใช้ต้องทราบพาธล่วงหน้าเพื่อเข้าถึงไฟล์ และพาธนั้นไม่จำเป็นต้องมีข้อมูลใดๆ...
ไดเร็กทอรีแท็ก/
ระบบไฟล์ Tagsistant ประกอบด้วยไดเร็กทอรีหลักสี่แห่ง:
ตัวให้เหตุผลและความสัมพันธ์/ไดเร็กทอรี
Tagsistant มี ระบบวิเคราะห์ข้อมูล แบบง่ายๆ ที่ขยายผลลัพธ์ของการค้นหาโดยการรวมวัตถุที่ติดแท็กที่เกี่ยวข้อง ความสัมพันธ์ระหว่างสองแท็กสามารถสร้างขึ้นภายใน relations/ ไดเร็กทอรีตามรูปแบบสามระดับ: