TagFS — Tag Semantics for Hierarchical File Systems

Post on 17-Sep-2014

23 views 5 download

Tags:

description

Finally a file can be on more than one folder! End of the tyranny of the hierarchy.The talk describes the design and implementation of a tag-based file system. Presented at IKNOW 2006.

Transcript of TagFS — Tag Semantics for Hierarchical File Systems

20062006

TagFS — Tag Semantics for Hierarchical File Systems

Bonus Track: Introducing SemFS

Web3.0

2006

Stephan Bloehdorn

Institute AIFB, University of Karlsruhe, Germany

Olaf Görlitz ISWeb, University of

Koblenz-Landau, Germany

Simon Schenk ISWeb, University of

Koblenz-Landau, Germany

Max Völkel Forschungszentrum

Informatik, Karlsruhe, Germany

talk

Max Völkel Forschungszentrum

Informatik, Karlsruhe, Germany

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

2

Motivation

„Every user [...] indicated that their attempts to establish elaborate filing schemas for archived information failed because they proved to require more time and effort than the information was worth.“

Barreau and Nardi, 1995

Contributions Mapping file system semantics to tagging semantics Architecture for a semantic file system

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

3

Hierarchical file systems have some problems

Single locaction property E.g. where to put a song produced by two artists? Each file may be only in one folder

There are links/shortcuts, but where to put the „primary“ file?

Browsing to maximum specifity E.g. 5 clicks for /My Music/Fatboy Slim/2006/danceable/favourite

even if there are only 5 Fatboy Slim songs altogether The more you organise, the more you have to browse

Missing orthogonality E.g. /2003/Fatboy Slim/favourite or /favourite/Fatboy Slim/2003? Many dimensions, only one access path

No query refinement FS lists only directories explicitly placed there, no help

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

4

Tagging

Simple idea: Instead of putting resources in folders (nested containers),

put tags (labels) on resources

Tagging user interfaces User sees a resource, can type in tags (simple, single keywords,

separated by space or comma) User can click on a tag, UI lists all resources with that tag assigned Conjunctive queries: e.g. fatboyslim+favourite

Examples: del.icou.us, flickr, 100 more Who has used a tagging system?

newWeb2.0

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

5

Example: del.icio.us

TaggingBrowsing

Queries

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

6

Comparison

File system: partition of the adress space

Tagging: overlapping sets

ab

a+b+ca+c

b+c

a+b

c

ab

c

/a/a/b/a/c

/a/a/b/a/b/c/a/c/a/c/b/c/c/b/c/b/a/c/a/c/a/b/b/b/a/b/a/c/b/c/b/c/a

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

7

Mapping file system semantics to tagging semantics

Query and Browse – the easy partsQuery

Use path as query, e.g. /a/b/c = query for a+b+c

Browsing /a Contained files:

all resources tagged with a ( if not to many) Contained folders:

All tags b, for which the conjunctive query a+b is not empty

Any tag is a good starting point!

Note: Virtual directory views are computed at runtime

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

8

Mapping file system semantics to tagging semantics

Tagging – the hard partChanging existing tagging

Copy file from a to b = tag file with b also Move file from a to b = remove tag a, add tag b Delete file from a = remove tag a Rename a to b = for all files tagged with a:

remove a, add b

Add files to TagFS Add file to folder a = add file to TagFS; tag file with a File identity determined by hash or filename

Allows updating a file, if content is changed externally

Delete files from TagFS Move file to deleteMe = delete file

Create tag a = create folder a This folder would not be shown, because it‘s empty

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

9

Tagging in the file system

Many locaction property Each file may carry as many tags as desired

Browsing until result is small enough Each folder contains all files tagged with the folder name

Orthogonality of information dimensions Path interpreted as a conjunctive query,

e.g. Lisa Ekdahl/2006 is the same as 2006/Lisa Ekdahl Not all reviewers agreed on this

Query refinement Each folder lists useful query refinements as sub-folers

Providing all standard filesystem operations compatibility with existing applications

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

10

Introducing SemFS

Implementing TagFS with SemFS

Web2.0 Web3.0

Semantic Desktop

RDFkeywords

Bonus Track

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

11

What is a file system?

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

12

What is a file system? Organising files …

An address given as path expression := Letter “:“ (“\“ name)*

File System

dir!

response

files

folders

name metadata

metadata

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

13

What is a file system?… managing binary data

File System

metadata data

write1011

read1011

1011

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

14

What is a file system?… managing binary data

File System

rename

metadata data

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

15

What is a file system?… managing binary data

File System

Add file or delete file

metadata data

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

16

What is a file system? Organising files and managing binary data

View( path ) Metadata-Table

Contained files,

Contained directories,

Metadata: getName, getDate, …

Binary content irrelevant

Update

Metadata: setName, setDate, add file, delete file, move file

Binary+Metadata: read file, write file, trunc file

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

17

What is a virtual file system?Organising files and managing binary data

op

Virtual File System

metadata data

XFlickrCMS

Looks and behaves like a file system…

… but is no file system.

It‘s implemen-ted differently.

File System

metadata data

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

18

What is a semantic file system?Organising files and managing binary

data.

op

Semantic File System

metadata data

XFlickrCMSFile System

Flexible implementation. Unified metadata unified search

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

19

Architecture of SemFS:Filters

Input: Frontend gets path

SemFS maintains a list of filters, Formal: Filter(graph, path) (filtered graph, shorter path)

Each filter is asked sequencially to process a path

A filter consumes some parts of a path,and returns a filtered metadata graph Filter can delegate to a particular filter

or delegate back to filter chain

Output: Finally the filtered metadata graph is transformed to a directory view

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

20

Architecture of SemFS:Example for Filters

Filter-List: [Favourite, Artist , Main]

Main-Filter processes “\My Music“ and returns filtered graph, containing all music-resources. Delegates to Artist-Filter.

Artist-Filter processes “\Fatboy Slim“ and returns all resource, that have e.g. the dc:creator „Fatboy Slim“. Delegates to filter chain.

Favourites-Filter processes “\favourite“ and returns all resources accesses more than n times in the last x days

Main

Artist

Favourite

\My Music\Fatboy Slim\favourite

\Fatboy Slim\favourite

\favourite

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

21

Architecture of SemFS:Example for Filters

Filter-List: [Favourite, Artist , Main]

Main-Filter processes “\My Music“ and returns filtered graph, containing all music-resources. Delegates to Artist-Filter.

Artist-Filter processes “\Fatboy Slim“ and returns all resource, that have the rdfs:label „Fatboy Slim“. Delegates to filter chain.

Favourites-Filter processes “\favourite“ and returns all resources accesses more than n times in the last x days

Main

Artist

Favourite

\My Music\Fatboy Slim\favourite

\Fatboy Slim\favourite

\favourite

View( path ) Metadata-Table

Contained files,

Contained directories,

Metadata: getName, getDate, …

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

22

Architecture of SemFS:Class-Handlers

Different content-types have different meta-dataand different ways to read/write E.g. local bookmarks, remote bookmarks, images, mp3

files, …

Idea: access each class of content types via a Class-Handler

Metadata: getName, getDate, … Can be cached in metadata graph

Updates Metadata: setName, setDate, add file, delete file, move file Binary+Metadata: read file, write file, trunc file Other metadata operations, e.g. setGenre in ID3-tags

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

23

Architecture of SemFS: Summary: Metadata Graph, Filters, Class-HandlersMetadata graph (RDF)

Holds all metadata acts as a unifying cache, when content has ist own

metadata

Filters Create the view, organise resources (not limited to files)

Class Handlers Handle different content types and manages binary data

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

24

Using SemFS:A tagging file system (TagFS)

One Filter: Tag-Filter Consumes a single path segment a

Contained files: Returns all resources tagged with a

Contained folders:All tags b, for which the conjunctive query a+b is not empty

One Class Handler Delegates classic metadata queries to underlying file store Binary content resides in a folder of a classic file system Tag-queries handled by metadata graph

New problems No two files may have the same name (when rendered)

Rename at insertion or display time

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

25

Conclusions

TagFS

Many locaction property

Browsing only until result is small enough, no further

Orthogonality of information dimensions

Query refinement

Compatible with existing applications

SemFS

An efficient way to implement virtual file systems with pluggable semantics

Allows rapid and solid prototype creation

Interoperability with Semantic Desktop applications

Thank you. Questions?

Download Prototype at http://isweb.uni-koblenz.de/Research(Linux only, WebDAV/Windows in progress)

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

26

BACKUP

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

27

Contact Information

Max Völkel (author, presenter) Forschungszentrum Informatik, Karlsruhe, Germany http://www.fzi.de

Stephan Bloehdorn (author) Institute AIFB, University of Karlsruhe, Germany http://aifb.uni-karlsruhe.de/

Olaf Görlitz (author) and Simon Schenk (author) ISWeb, University of Koblenz-Landau, Germany http://isweb.uni-koblenz.de/

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

28

Architecture

TagFS - Tag Semantics for Hierarchical File Systems

http://semfs.ontoware.org

29

Tagging Ontology