Last week I explained how to install and start using SemanticScuttle. This time, as promised, I’ll share some more tricks for advanced personal usage of SemanticScuttle.

Why personal, you ask? Indeed, SemanticScuttle is also capable of actual social bookmarking, that is showing in one view many collections of bookmarks, voting the best ones and so on. However, to make your SemanticScuttle installation so social, you’d need to convince many people to use that instead of Delicious. Being the only user, however, is still very productive (see next paragraph) and provides evidence to convince others to switch. Let’s begin then, by mentioning…

The other reason to use SemanticScuttle

Besides privacy and data ownership, there is another big reason to put your bookmarks online into something like SemanticScuttle, even if you never plan to share them with anybody: search flexibility.

SemanticScuttle puts your bookmarks into an Open Source relational database. That’s something that, by definition, you can analyze, maintain, and search in many ways with lots of desktop or Web-based tools. Do you see what I mean?

If SemanticScuttle can’t search your bookmarks as you’d like, you could ask its developers to add that feature, but you would not need to wait for it. You could also immediately search your bookmarks in many sophisticated ways with PhpMyAdmin or any other similar tool! This thing alone is, in my opinion, worth the effort of setting SemanticScuttle up. Let’s now see some tricks, grouped by task.

How to upload bookmark files bigger than 1 MB

The 1 MB limit on the size of the bookmarks files that you can upload and automatically import to SemanticScuttle can be increased by:

  • giving bigger values to upload_max_filesize and post_max_size in the general PHP configuration file, php.ini
  • setting a corresponding MAX_FILE_SIZE in this hidden field:
    <input type=”hidden” name=”MAX_FILE_SIZE” value=”1024000″ /> of the bookmark upload forms at data/templates/default/importDelicious.tpl.php and data/templates/default/importNetscape.tpl.php.

DB Host configuration

Last week, I mentioned that SemanticScuttle only works on Linux (or CentOS, at least) if you set the $dbhost variable to ‘localhost’. Its default value, however, ( is the only one working on a Windows 7 server, because of this issue. You’ve been warned!

Changing the default sort order

By default, when you sort bookmarks by date, SemanticScuttle looks at their modification date. Therefore, if you add a tag now to a URL you bookmarked in 1999, it will show up among the ones created today. Should you find (like I do) this behaviour confusing, no problem! Set $dateOrderField inside data/config.php to ‘bDatetime’ and bookmarks will be ordered by their creation date.


As many other LAMP programs, SemanticScuttle works faster under heavy load if it can use a cache. To enable this feature, you must create a dedicated folder inside the SemanticScuttle directory (“cache” in the example below), make it writable by the Web server account, and define it inside config.php:

  $usecache = true;
  $dir_cache = dirname(__FILE__) . '/cache/';


One of the reasons to self-host online bookmarks is greater privacy. SemanticScuttle can improve it by passing all the listed bookmarks to the URL redirection service set by the administrator in the configuration file:

  $useredir = true;
  // URL prefix for bookmarks to redirect through:
  $url_redir = 'your_url_redirection_service';

Page structure and looks

You can control the structure of pages in SemanticScuttle in two ways. These self-explaining configuration variables, for example, add text of your choice (including HTML code) in several fixed parts of all pages:

  $sitename             = 'My very own bookmarks'``
  $welcomeMessage       = 'Welcome to my very own bookmarks'``
  $sidebarTopMessage    = 'Hello folks'
  $sidebarBottomMessage = 'bottom hello folks'

Finer control is possible by modifying (after a backup, of course!) some default settings in the PHP source code. As an example, consider the Recent and Popular tags boxes in the SemanticScuttle sidebar. By default, each of them shows 30 tags. If you want more or less, open the www/index.php file and assign a value you like to $tplVars[‘popCount’]. Figure A shows the more compact layout I get with a value of 15 and the other settings shown above.

Figure A

The order of the boxes, instead, is defined in the $index_sidebar_blocks array of config.php.

The general look of SemanticScuttle, instead, is defined by themes that live, each in its own folder, inside the data/templates directory. The easiest and safest way to play with themes is to copy the default one in a different folder, say “mytemplate”, set “$theme = ‘mytemplate’ and start messing with code and colors to see what happens.

Tips for efficient bookmarking

SemanticScuttle will make your browsing much more efficient, but only if you do take the time to feed into it good data and keep them current. In practice, this means that you should always:

  • remove from the title of a Web page unimportant parts like the Website name
  • remove from the URL any tracking parts, e.g. Feedproxy and similar codes
  • assign good, consistently named tags (the bookmarklet autocompletion feature is great for this)
  • use the inclusion and synonym markups for tags whenever necessary
  • enter a meaningful description (the bookmarklet will automatically use for this any text you select in the page you want to bookmark!)
  • include proper attributes in the description, like author, address or any other one you want to create
  • customize the $filetypes array (see config.default.php) to automatically assign the right file type tags to files you bookmark frequently, like “slideshow” for .odp or .ppt URLs

Are we done? Almost. Remember I said something about keeping your bookmark collection current? Go to the administration interface and click on “Check all URLs”. After some (possibly long) time, SemanticScuttle will produce a list of all the bookmarks that lead to non-existing pages, and should therefore be removed.


Many thanks to SemanticScuttle lead developer C. Weiske for this software and for his support; he directly provided some of these tricks.