태그슈탄트

Tagsistant
태그슈탄트
Tagsistant logo.png
개발자Tx0 <tx0@strumentiresistenti.org>
안정적 해제
0.6
기록 위치C
운영 체제리눅스 커널
다음에서 사용 가능영어
유형의미 파일 시스템
면허증GNU GPL
웹사이트http://www.tagsistant.net/
태그슈탄트
개발자Tx0

Tagistant리눅스 커널을 위한 의미 파일 시스템으로, C로 작성되고 FUSE를 기반으로 한다. 디렉토리 계층 구조를 사용하여 객체를 찾는 기존의 파일 시스템과 달리 Tagistant는 태그의 개념을 도입한다.

계층적 파일 시스템과의 설계 및 차이점

컴퓨팅에서 파일 시스템파일을 저장, 검색 및 업데이트하는 데 사용될 수 있는 데이터 저장소의 한 유형이다.각 파일은 경로에 의해 고유하게 위치할 수 있다.사용자는 파일에 접근하기 위해 경로를 미리 알고 있어야 하며, 경로에 반드시 파일의 내용에 대한 어떤 정보도 포함하지 않는다.

태그시스턴트는 태그를 기반으로 한 보완적 접근방식을 사용한다.사용자는 태그 집합을 만들어 파일, 디렉터리 및 기타 개체(장치, 파이프, ...)에 적용할 수 있다.그런 다음 사용자는 쿼리라고 하는 태그의 하위 집합과 일치하는 모든 개체를 검색할 수 있다.이러한 접근방식은 사진, 오디오 녹음, 영화 및 텍스트 문서와 같은 사용자 콘텐츠를 관리하는 데 적합하지만 경로의 비활성이 잘못된 콘텐츠에 대한 액세스를 방지하기 위한 보안 요건인 시스템 파일(라이브러리, 명령 및 구성 등)과 호환되지 않는다.

태그/디렉토리

Taggistant 파일 시스템에는 다음과 같은 네 가지 기본 디렉터리가 있다.

아카이브/
관계/관계
통계/
태그/

태그는 의 하위 디렉토리로 생성됨tags/디렉터리 및 이 구문을 준수하는 쿼리에 사용할 수 있음:

tags/subquery/[+/subquery/[+/subquery/]]/@/[1]

여기서 하위 쿼리는 디렉토리로 연결된 태그의 무제한 목록이다.

tag1/tag2/tag3/.../tagN/

경로로 구분된 부분tags/그리고@/실제 질의다.+/운영자는 하나의 단일 리스트에 다른 하위 리스트의 결과를 결합한다.@/오퍼레이터가 쿼리를 종료한다.

다음 쿼리의 결과로 반환되는 경우:

tags/t1/t2/+/t1/t4/@/

물체는 둘 다로 태그가 붙어야 한다.t1/그리고t2/또는 둘 다로서t1/그리고t4/. 태그가 지정된 모든 개체t2/또는t4/, 그러나 로는 아니다.t1/회수되지 않을 것이다.

쿼리 구문은 POSIX 파일 시스템 의미 체계를 의도적으로 위반하며, 경로 토큰은 다음과 같이 자신의 하위 토큰이 되도록 허용한다.tags/t1/t2/+/t1/t4/@어디에t1/두 번 나타나다그 결과, 유닉스(UNIX)에 의해 수행된 것과 같이 Taggistant 파일 시스템의 재귀적 스캔이 오류 또는 무한 루프와 함께 종료된다. find:

~/changistant_mountpoint$에서 태그/태그/태그/태그/태그/+태그/+태그/+태그/+태그/+태그/+태그/+태그/태그/+/태그/태그/+/태그/태그/태그/+[...]를 찾으십시오.

이 단점은 질의 내부의 태그를 임의의 순서로 나열할 수 있는 가능성에 의해 균형을 이룬다.질의tags/t1/t2/@/와 완전히 동등하다tags/t2/t1/@/그리고tags/t1/+/t2/t3/@/와 같다tags/t2/t3/+/t1/@/.

@/요소에는 POSIX 의미론 복원의 정확한 목적이 있다: 경로tags/t1/@/directory/전통적인 디렉토리를 참조하고 이 경로의 재귀적 스캔이 적절하게 수행된다.

이유자 및 관계/디렉토리

태그istant는 관련 태그로 태그가 지정된 개체를 포함함으로써 쿼리 결과를 확장하는 단순한 이유자를 특징으로 한다.두 태그 사이의 관계는 내부에서 설정될 수 있다.relations/3단계 패턴 뒤의 디렉터리:

relations/tag1/rel/tag2/

rel요소를 포함하거나 is_properties를 포함할 수 있다.음악 태그에 록 태그를 포함하려면 UNIX 명령을 사용하십시오.mkdir사용할 수 있는 항목:

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/디렉토리는 온톨로지의 기본 형태를 구성한다.

플러그 인 자동 태그 지정

Tagistant는 파일 또는 심볼링크가 작성될 때 호출되는 자동 태그 지정 플러그인 스택을 특징으로 한다.[2]선언된 MIME 유형이 일치하는 경우 각 플러그인이 호출됨

Tagistant 0.6으로 릴리스된 작업 플러그인의 목록은 다음과 같이 제한된다.

  • 텍스트/텍스트: 각 단어가 포함된 파일에 태그 지정<title>그리고<keywords>요소, 문서, 웹 페이지 및 html도 함께 제공
  • image/jpeg: 각 Exif 태그로 파일에 태그 지정

리포지토리

각 Taggistant 파일 시스템에는 다음이 포함된 해당 리포지토리가 있음archive/객체가 실제로 저장되는 디렉토리 및tags.sqlSQLite 데이터베이스로 태그 정보를 보관하는 파일.MySQL 데이터베이스 엔진이--db논쟁, thetags.sql파일이 비어 있을 것이다.이름이 다른 파일repository.ini리포지토리 구성이 있는 GLib ini 스토어.[3]

태그istant 0.6은 태그 추론 및 태그 분해능을 위해 SQL의 MySQL 및 SQLite 방언과 호환된다.그 논리를 다른 SQL 방언에 포팅하는 것도 가능하지만, 기본구조의 차이(특히 CROST SQL 키워드)를 고려해야 한다.

아카이브/및 통계/ 디렉토리

archive/디렉토리는 태그를 사용하지 않고 객체에 빠르게 접근할 수 있는 방법을 제공하기 위해 도입되었다.개체는 inode 번호가 앞에 붙은 상태로 나열된다.[4]

stats/디렉토리에는 사용 통계가 포함된 일부 읽기 전용 파일이 있다.A 파일configuration컴파일 시간 정보와 현재 리포지토리 구성을 모두 보유한다.

주요 비판

태그와 태그 정보를 저장하기 위해 외부 데이터베이스에 의존하는 것은 데이터베이스가 손상될 경우 메타데이터의 완전한 손실을 초래할 수 있다는 점이 강조되었다.[5]

평탄한 네임스페이스를 사용하는 것은 과밀화 경향이 있다는 점이 강조되었다.tags/전화번호부[6]이것은 삼중 태그를 도입하는 것을 완화할 수 있다.

참고 항목

참조

  1. ^ "tags/ and relations/ directories".
  2. ^ "How to write a plugin for Tagsistant?".
  3. ^ "Key-value file parser".
  4. ^ "Tagsistant 0.6 howto - Inodes".
  5. ^ "Extended attributes and tag file systems".
  6. ^ "The major problem with this approach is scalability". news.ycombinator.com.

외부 링크