semantic file system
{{Short description|File system prioritizing associative access}}
{{Semantics}}
Semantic file systems are file systems used for information persistence which structure the data according to their semantics and intent, rather than the location as with current file systems. It allows the data to be addressed by their content (associative access). Traditional hierarchical file-systems tend to impose a burden, for example when a sub-directory layout is contradicting a user's perception of where files would be stored. Having a tag-based interface alleviates this hierarchy problem and enables users to query for data in an intuitive fashion.
Semantic file systems raise technical design challenges as indexes of words, tags or elementary signs of some sort have to be created and constantly updated, maintained and cached for performance to offer the desired random, multi-variate access to files in addition to the underlying, mostly traditional block-based filesystem.
A semantic file system can be envisioned as a part of a semantic desktop.
History
The notion of semantic file system was proposed in 1991 by researchers of the MIT and École des Mines de Paris.{{Cite journal |last1=Gifford |first1=David |last2=Jouvelot |first2=Pierre |last3=Sheldon |first3=Mark A. |last4=O’Toole |first4=James W. Jr. |date=1991 |title=Semantic file systems |url=https://web.mit.edu/6.826/www/notes/HO13.pdf |journal=ACM Operating Systems Review |volume=25 |issue=5 |pages=16–25|doi=10.1145/121133.121138 }} They proposed an integrated system whose main query interface looked like a traditional file system interface via a virtual directory system that interpreted a path as a conjunctive query. Their implementation had automatic extraction of the relevant metadata via what they called file type specific transducers.
Starting in around 2004, a new wave of implementations centered on manual tagging of files and folders.
In 2008, researchers proposed to integrate semantic file systems with Semantic Web technologies.{{Cite journal |last1=Faubel |first1=Sebastian |last2=Kuschel |first2=Christian |date=2008 |title=Towards Semantic File System Interfaces |url=http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-401/iswc2008pd_submission_8.pdf |journal=ISWC (Posters & Demos)}}
Types of metadata
= Tags =
Tags can be used instead of folders to circumvent the limits of a hierarchical model.
= File type-specific =
Gifford et al. suggested the idea of file type-specific metadata automatically extracted by a file-type specific transducer.
For instance, for a source code text file, metadata could include the names of the procedures that the program exports or imports, procedure types, and the files included by the program. For a document, its date, author, title and structure (sections and subsections). For an e-mail, its sender, recipient and subject.
= Lineage =
In scientific workflows, provenance of a data file is important. A scientist might want to select a results file by filtering by the input dataset.
Architecture
Vasudevan and Pazandak{{Cite web |last1=Vasudevan |first1=Venu |last2=Pazandak |first2=Paul |date=1997 |title=Semantic File Systems |url=http://www.objs.com/survey/OFSExt.htm |access-date=2024-03-05 |website=Object Services and Consulting, Inc.}} introduce the distinction between integrated and augmented approaches:
- In integrated approaches, semantics are a feature of the file system.
- Tightly coupled systems are implemented within a file system
- Loosely coupled systems are implemented on top of a classical file system, but hide its interface.
- In augmented approaches, semantics are an abstraction on top of a classical file system. Access to the classical file system interface is maintained, the user can choose.
They suggest Open systems architecture as being well adapted to semantic file system implementations.
= Compatibility with hierarchical file systems =
Even integrated semantic file systems may choose to expose an interface for compatibility with existing local or distributed file system protocols. For instance, Gifford et al.’s 1991 implementation was fully compatible with NFS.
= Metadata storage =
Extended file attributes provided by the file system can be a way to store the metadata.
A relational database is another very frequent way to store the metadata.
Research implementations
class="wikitable sortable"
|+ !Name !Type !Metadata !OS !Date !Comment |
Lineage File System{{Cite web |last1=Sar |first1=Can |last2=Cao |first2=Pei |date=2005 |title=Lineage File System |url=https://crypto.stanford.edu/~cao/lineage |access-date=2024-03-14 |website=Stanford University}}
|File system extension |Lineage |2005 |Modifies the Linux kernel to log all process creation and file-related system calls. Uses a MySQL database. |
[https://web.archive.org/web/20091124184129/http://www.uni-koblenz.de/FB4/Institutes/IFI/AGStaab/Research/SemFS/ SemFS (formerly TagFS)]{{Cite journal |last1=Bloehdorn |first1=Stephan |last2=Völkel |first2=Max |date=2006 |title=TagFS — Tag Semantics for Hierarchical File Systems |url=https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=8389bf4a6b9ed2f67e7afc75619933d0bdcb9ad8 |journal=WWW Conference Proceedings |via=CiteSeerX}}
|File system |Tags |Linux, Windows |2006 |On Windows, can be mounted as a WebDAV drive. On Linux, based on FUSE. Tags are stored as RDF. Uses an internal file system, not exposed. |
SFS
|File system extension |File type-specific |Linux |1991 | |
Implementations
class="wikitable sortable"
|+ !Name !Type !Metadata !OS !Last update !Comment |
Be File System (BFS)
|File system | |BeOS |Proprietary; last version is freeware | | |Metadata is stored in extended file attributes. Works with file manager Tracker |
[https://darkfeline.github.io/dantalian/ dantalian]
|File system extension |Tags |Linux and contiguous POSIX-compatible file systems |Apache 2 |2016 |Uses symlinks |
[http://code.google.com/p/dhtfs/ dhtfs]
|User-level file system extension |Tags |Linux |2009 |Based on FUSE |
[http://silkwoodsoftware.com/ Elyse]
|Graphical file manager |Tags |Windows and MacOS |Proprietary, no cost | |2021 | |
[https://github.com/clipland/fuse-taglayer Fuse::TagLayer]
|File system extension |Tags |Linux |Perl |2013 |Based on FUSE |
[https://tabbles.net/ Tabbles]
|Graphical file manager |Tags |Proprietary, freemium | |Uses a SQL Server relational database. |
[http://www.tag2find.com/ Tag2Find]
| |Tags | | |2007 | |
[http://akslab.com/ TagsForAll]
|Graphical file manager |Tags |Windows x64 |Freemium | |2014 |70 tag limit in free version. Metadata is stored in two places: in files as ADS (Alternate Data Stream for NTFS), and in local database. |
Tagsistant
|File system |Tags |Linux |GPL |C |2017 |Tag-based, based on FUSE |
[https://www.tagspaces.org/ TagSpaces]
|Graphical file manager, web or desktop (uses Electron) |Tags |Windows, macOS, Linux, and Android. |AGPL (Freemium) |TypeScript, JavaScript, Java, Objective-C |Continues | |
[http://tagxfs.sourceforge.net/ tagxfs]
|File system extension |Tags |Linux |Boost Software License 1.0 |C++ |2013 |Extends the user space file system to a tag based hierarchy. |
[http://tmsu.org/ TMSU]
|Virtual file system |Tags | | | |2022 |Uses a SQLite relational database. |
[http://transparentag.sourceforge.net/ TransparenTag]
|File system |Tags |Linux, BSD |GPL v2 |2013 |Data and tags are stored as regular files |
WinFS
|File system and manager |Any type |Proprietary |2006 |Uses a relational database |
[http://code.google.com/p/xtagfs/ xtagfs]
|File system extension |Tags |GPL v2 |2009 |Based on FUSE |
See also
References
{{reflist}}
External links
Research & Specifications
- [http://eprints.cs.univie.ac.at/158/1/schandl.pdf The Sile Model. A Semantic File System Infrastructure for the Desktop]
- [https://web.archive.org/web/20060905031903/http://www.psrg.lcs.mit.edu/publications/Papers/sfs.pdf Semantic FS @ MIT Programming Systems Research Group]
- [https://blueprints.launchpad.net/ubuntu/+spec/tag-based-filesystem Launchpad Blueprints: A tag-based filesystem for Ubuntu]
- [https://web.archive.org/web/20070927003401/http://www.namesys.com/whitepaper.html ReiserFS future vision]
- [http://semanticweb.org/wiki/SemFS#Related_Work_and_Publications external list of related work on semantic file systems @ semanticweb.org]
- [https://www.nayuki.io/page/designing-better-file-organization-around-tags-not-hierarchies#hierarchical-organization-is-clumsy "Designing better file organization around tags, not hierarchies" detailed writeup by Nayuki]
- [https://sites.google.com/view/non-directory/home Non-Directory Filesystem]
{{Computer files}}