Menu

Tree [cf7695] master /
 History

HTTPS access


File Date Author Commit
 doc 2011-07-12 Bruce Adams Bruce Adams [120320] Merge branch 'master' of ssh://filemetadata.git...
 man 2011-12-12 Bruce Adams Bruce Adams [8a579b] FoxHive[3305704] fix building of man pages.
 src 2012-01-04 Bruce Adams Bruce Adams [cf7695] FoxHive[3305704] Replaced Launcher busy wait.
 test 2012-01-04 Bruce Adams Bruce Adams [cf7695] FoxHive[3305704] Replaced Launcher busy wait.
 .gitignore 2011-12-10 Bruce Adams Bruce Adams [5adf1a] FoxHive[3305704] Bookin rest of previous change
 AUTHORS 2011-07-12 Bruce Adams Bruce Adams [120320] Merge branch 'master' of ssh://filemetadata.git...
 CMakeLists.txt 2012-01-04 Bruce Adams Bruce Adams [cf7695] FoxHive[3305704] Replaced Launcher busy wait.
 COPYING 2011-07-12 Bruce Adams Bruce Adams [120320] Merge branch 'master' of ssh://filemetadata.git...
 COPYING.LESSER 2011-07-12 Bruce Adams Bruce Adams [120320] Merge branch 'master' of ssh://filemetadata.git...
 ChangeLog 2011-07-12 Bruce Adams Bruce Adams [120320] Merge branch 'master' of ssh://filemetadata.git...
 License.txt 2011-07-12 Bruce Adams Bruce Adams [120320] Merge branch 'master' of ssh://filemetadata.git...
 README 2011-05-12 tortoise74 tortoise74 [abdaa5] Merge git and svn via git-svn
 THANKS 2011-07-12 Bruce Adams Bruce Adams [120320] Merge branch 'master' of ssh://filemetadata.git...
 build.sh 2011-07-12 Bruce Adams Bruce Adams [120320] Merge branch 'master' of ssh://filemetadata.git...
 clean.sh 2011-12-09 Bruce Adams Bruce Adams [700372] FoxHive[3305704] Added support for program test...

Read Me

File Meta Data Library
======================
homepage: http://sourceforge.net/projects/filemetadata/

The aim of this project is to provide an easy to use interface
with which to store and retrieve meta data about files.

Meta data about a file may be stored in any or 
all of the following places:

* In the same file-system (in a .filemetadata directory)
* Using extended file attributes
* Embedded in the file itself (for example XMP)
* In a shared database

The project intends to provide a comprehensive set of libraries, APIs 
and tools so that these resources may be accessed transparently 
in a way that allow applications to interoperate safely.

It includes tools that allow meta data to be copied or moved when
the file to which the meta data is attached is itself copied or moved,
even remotely.

Limited support is also provided for storing and retrieving meta data
referring to arbitrary resources (such as URLs). However, this falls 
outside the primary scope of the project.

Interoperating applications/systems
===================================

The project aims to interoperate cleanly with:
 * inbuilt operating system services (e.g. extended attributes)
 * XMP/EXIF embedded image meta-data 
 * ID3 embedded audio meta-data
 * Digikam 
 * the KDE nepomuk (semantic desktop) project
 * the Gnome Xesam project

Where possible (and if so configured) it may attempt to translate
meta-data suitable for one application into meta-data suitable for another.
A notable example is the encoding of simple tag based folksonomies using
the ontologies specfied by digikam and nepomuk.

Using this library the primary obstacle remaining to getting applications
to talk to each other will be use and understanding of each systems 
ontologies. A notable example of this might be the distinct ontologies used
by the competing xesam and nepomuk systems.

Platforms
=========

The project aims to be entirely cross platform but 
initially targeting linux and windows.

Meta Data
=========

The library will support the following kinds of meta data:

* simple folksonomy based tagging
* the Dublin core elements
* arbitrary RDF data

Build Instructions
==================

This project uses cmake & make for build configuration.
It also provides a simple wrapper script ./build.sh 
which will execute the commands necessary to build, test 
& package the software.

Tools
=====

This project makes use of the following tools and standards:

cmake        - build system
cppunit      - unit testing
doxygen      - source code documentation
open office  - general documentation

Libraries
=========
Rather than supporting all kinds of metadata itself
libfilemeta instead leverages specialised libraries designed elsewhere
to store and retrieve meta data of each kind.

Embedded image meta data         - libexiv2 - http://www.exiv2.org/ 
Extended file attributes (linux) - libxattr

APIs
====
The project aims to provide the following APIs:

Command-Line interface
C++
Java
C
GObject bindings
Nepomuk interface

Status
======

No software releases have been made at this time.

History
=======
The impetus for this project came from the original authors desire for a simple
API to share tags between applications and tag arbitrary files or web-pages.

Although there are many applications and web-sites offering tagging services,
few or none of them seem to interoperate with each other.

Maintainer/Author
=================
The primary maintainer of libfilemetadata is:

Bruce S. O. Adams  (tortoise_74 at yahoo co uk)
homepage: www.tortoise74.me.uk

Contributions, reviews and discussions are welcomed.
Please use the source facilities.

References
==========

Tag         - http://en.wikipedia.org/wiki/Tag_%28metadata%29
Folksonomy  - http://en.wikipedia.org/wiki/Folksonomy
XMP         - http://en.wikipedia.org/wiki/Extensible_Metadata_Platform
ID3         - http://en.wikipedia.org/wiki/Id3
Dublin Core - http://en.wikipedia.org/wiki/Dublin_core
Nepomuk     - http://nepomuk.kde.org/
Digikam     - http://www.digikam.org/
Xesam       - http://en.wikipedia.org/wiki/Xesam