README 7.01 KB
Newer Older
1 2
1 Introduction

Martyn Russell's avatar
Martyn Russell committed
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
  Tracker is a search engine and that allows the user to find their
  data as fast as possible. Users can search for their files and
  search for content in their files too.  

  Tracker is a semantic data storage for desktop and mobile devices.
  Tracker uses W3C standards for RDF ontologies using Nepomuk with
  SPARQL to query and update the data.

  Tracker is a central repository of user information, that provides
  two big benefits for the desktop; shared data between applications
  and information which is relational to other information (for
  example: mixing contacts with files, locations, activities and
  etc.).

  This central repository works with a well defined data model that
  applications can rely on to store and recover their information.
  That data model is defined using a semantic web artifact called
  ontology. An ontology defines the relationships between the
  information stored in the repository.

  An EU-funded project called Nepomuk was started to define some of
Piotr Drąg's avatar
Piotr Drąg committed
24
  the core ontologies to be modeled on the Desktop. Tracker uses this
Martyn Russell's avatar
Martyn Russell committed
25
  to define the data's relationships in a database.
26 27 28

  All discussion related to tracker happens on the Tracker
  mailing list
29

30 31 32 33 34 35
        http://mail.gnome.org/mailman/listinfo/tracker-list

  IRC channel #tracker on:

        irc.gimp.net

36
  Bugs and feature requests should be filed at:
37

38
        http://bugzilla.gnome.org
39

40
  More infomation on Tracker can be found at:
41

Piotr Drąg's avatar
Piotr Drąg committed
42
        http://wiki.gnome.org/Projects/Tracker
43

Piotr Drąg's avatar
Piotr Drąg committed
44
  Repository (first is read-only, second is write access):
45 46

	git://git.gnome.org/tracker
47
	ssh://<user>@git.gnome.org/git/tracker
48

49 50
  The official RoadMap (aka TODO) can be found at:

Piotr Drąg's avatar
Piotr Drąg committed
51
        http://wiki.gnome.org/Projects/Tracker/Roadmap
52 53


54 55 56 57
2 Use Cases

  Tracker is the most powerful open source metadata database and
  indexer framework currently available and because it is built
Piotr Drąg's avatar
Piotr Drąg committed
58
  around a combination indexer and SQL database and not a
59 60
  dedicated indexer, it has much more powerful use cases:

Piotr Drąg's avatar
Piotr Drąg committed
61
  * Provide search and indexing facilities similar to those on
62 63
  other systems (Windows Vista and Mac OS X).

64
  * Common database storage for all first class objects (e.g. a
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
  common music/photo/contacts/email/bookmarks/history database)
  complete with additional metadata and tags/keywords.

  * Comprehensive one stop solution for all applications needing
  an object database, powerful search (via RDF Query), first class
  methods, related metadata and user-definable metadata/tags.

  * Can provide a full semantic desktop with metadata everywhere.

  * Can provide powerful criteria-based searching suitable for
  creating smart file dialogs and vfolder systems.

  * Can provide a more intelligent desktop using statistical
  metadata.

3 Features

  * Desktop-neutral design (it's a freedesktop product built
  around other freedesktop technologies like D-Bus and XDGMime
  but contains no GNOME-specific dependencies besides GLib).

Martyn Russell's avatar
Martyn Russell committed
86 87
  * Very memory efficient. Unlike some other indexers, Tracker is
  designed and built to run well on mobile and desktop systems with
88
  lower memory (256MB or less).
89 90 91 92

  * Non-bloated and written in C for maximum efficiency.

  * Small size and minimal dependencies makes it easy to bundle
Piotr Drąg's avatar
Piotr Drąg committed
93
  into various distros, including live CDs.
94 95 96

  * Provides option to disable indexing when running on battery.

97 98
  * Provides option to index removable devices.

99 100 101 102 103 104
  * Implements the freedesktop specification for metadata
  (http://freedesktop.org/wiki/Standards/shared-filemetadata-spec).

  * Extracts embedded File, Image, Document and Audio type
  metadata from files.

Piotr Drąg's avatar
Piotr Drąg committed
105
  * Supports the WC3's RDF Query syntax for querying metadata.
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

  * Provides support for both free text search (like Beagle/Google)
  as well as structured searches using RDF Query.

  * Responds in real time to file system changes to keep its
  metadata database up to date and in sync.

  * Fully extensible with custom metadata - you can store,
  retrieve, register and search via RDF Query all your own custom
  metadata.

  * Can extract a file's contents as plain text and index them.

  * Can provide thumbnailing on the fly.

  * It auto-pauses indexing when running low on diskspace.

Martyn Russell's avatar
Martyn Russell committed
123
4 Compilation
124

125 126 127 128 129 130 131 132 133
  The git repository contains input to the GNU Autotools however a
  number of commands need to be run to initialize GNU Autotools in the
  project directory. To setup the project for compilation after
  checking it out from the git repository, use: 

        ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var

  Or if you don't have autogen.sh (i.e. you are using the released
  tarball), you can use:
134

135
        ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
136 137 138

  To start compiling the project use:

139 140 141 142 143 144 145 146 147
        make
        sudo make install

  If you install using any other prefix, you might have problems
  with files not being installed correctly. (You may need to copy
  and amend the dbus service file to the correct directory and/or
  might need to update ld_conf if you install into non-standard
  directories.)

Martyn Russell's avatar
Martyn Russell committed
148
4.1 Notes on Solaris
149 150 151 152

  To compile Tracker with GCC on Solaris uses the following
  commands :

153 154 155 156 157 158
        CFLAGS="-D_POSIX_PTHREAD_SEMANTICS" ./configure \
	--prefix=/usr \
	--sysconfdir=/etc \
        --localstatedir=/var \
	--with-pic

159 160 161 162 163 164 165
        make
        sudo make install

  To compile Tracker with SUN Studio on Solaris uses the
  following commands, because there are some problems to compile
  exiv2 using SUN C++ compiler :

166 167 168 169 170 171 172
        CFLAGS="-D_POSIX_PTHREAD_SEMANTICS" ./configure \
	--prefix=/usr \
	--sysconfdir=/etc \
        --localstatedir=/var \
	--with-pic \
        --disable-exiv2

173 174 175
        make
        sudo make install

Martyn Russell's avatar
Martyn Russell committed
176
4.2 Compile Options
177 178

  Tracker has several compiler options to enable/disable certain
179
  features. You can get a full listing by running
180

181
  	./configure --help
182

183
5 Running Tracker
184

185
5.1 Usage
186

Martyn Russell's avatar
Martyn Russell committed
187
  Tracker normally starts itself when users log in. You can indexing by running:
188

Martyn Russell's avatar
Martyn Russell committed
189 190 191 192 193 194 195
    $prefix/libexec/tracker-miner-fs

  You can configure how this works using:

    $prefix/bin/tracker-preferences

  You can monitor data miners using:
196

Martyn Russell's avatar
Martyn Russell committed
197 198 199 200 201 202 203 204 205
    $prefix/bin/tracker-status-icon

  You can do simple searching using an applet:

    $prefix/libexec/tracker-search-bar

  You can do more extensive searching using:

    $prefix/bin/tracker-search-tool
206

207
5.2 Setting Inotify Watch Limit
208

Martyn Russell's avatar
Martyn Russell committed
209
  When watching large numbers of folders, its possible to exceed
210 211 212 213 214 215
  the default number of inotify watches. In order to get real time
  updates when this value is exceeded it is necessary to increase
  the number of allowed watches. This can be done as follows:

  1. Add this line to /etc/sysctl.conf:
     "fs.inotify.max_user_watches = (number of folders to be
216
      watched; default used to be 8192 and now is 524288)"
217 218 219 220

  2. Reboot the system OR (on a Debian-like system) run
     "sudo /etc/init.d/procps restart"

221
6 Further Help
222

223
6.1 Man pages
224

Martyn Russell's avatar
Martyn Russell committed
225 226
  Every config file and every binary has a man page. If you start with
  tracker-store, you should be able to find out about most other
227
  commands on the SEE ALSO section.
228

229
6.2 Utilities
230

Martyn Russell's avatar
Martyn Russell committed
231
  There are a range of tracker utilities that help you query for data.