กลับไปหน้าบทความ

อ่าน 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/rock
mkdir -p relations/rock/includes/hard_rock
mkdir -p relations/rock/includes/grunge
mkdir -p relations/rock/includes/heavy_metal
mkdir -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
  • คุณสมบัติเพิ่มเติมและระบบไฟล์แท็ก
  • แท็กต่อต้านการผลิต
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Tagsistant&oldid=1337934604 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ แท็กซิสเตอร์

Tagsistant คือ ระบบไฟล์เชิงความหมาย สำหรับ เคอร์เนลลินุกซ์ เขียนด้วย ภาษาซี และอิงตาม FUSE แตกต่างจาก ระบบไฟล์ แบบดั้งเดิมที่ใช้ลำดับชั้นของไดเร็กทอรีในการค้นหาวัตถุ Tagsistant...

การออกแบบและความแตกต่างกับระบบไฟล์แบบลำดับชั้น

ในทางคอมพิวเตอร์ ระบบไฟล์ เป็นรูปแบบหนึ่งของที่เก็บข้อมูล ซึ่งสามารถใช้ในการจัดเก็บ ดึงข้อมูล และอัปเดต ไฟล์ ได้ ไฟล์แต่ละไฟล์สามารถระบุตำแหน่งได้อย่างเฉพาะเจาะจงด้วย พาธ ของ ไฟล์ ผู้ใช้ต้องทราบพาธล่วงหน้าเพื่อเข้าถึงไฟล์ และพาธนั้นไม่จำเป็นต้องมีข้อมูลใดๆ...

ไดเร็กทอรีแท็ก/

ระบบไฟล์ Tagsistant ประกอบด้วยไดเร็กทอรีหลักสี่แห่ง:

ตัวให้เหตุผลและความสัมพันธ์/ไดเร็กทอรี

Tagsistant มี ระบบวิเคราะห์ข้อมูล แบบง่ายๆ ที่ขยายผลลัพธ์ของการค้นหาโดยการรวมวัตถุที่ติดแท็กที่เกี่ยวข้อง ความสัมพันธ์ระหว่างสองแท็กสามารถสร้างขึ้นภายใน relations/ ไดเร็กทอรีตามรูปแบบสามระดับ: