Latest Publications

DC-X: Managing image rights

Posted in March 1, 201014:15hTim StrehleNo Comments »

Usage rights for images – and other types of assets like video – are a tricky, but important part of Digital Asset Management. Am I allowed to use this image for my publication, under which conditions, and will I have to pay for it? Are there any restrictions? A DAM system must help answer these questions.

As is the case whenever money is involved, details matter. Only a subset of my publications might be allowed to use the image, and only for a limited time. I may or may not have to pay again if I reuse the same image. Assets may have to be prohibited from reuse due to legal reasons. An exclusive deal may lock out everyone else from using the same image (or even variants – and probably only for a limited time, or only in a certain geographical region).

Capturing all these details as structured data is the goal of the PLUS Coalition’s Picture Licensing Universal System. It looks like a great standard for exchanging rights metadata, but we feel it is overkill to use internally within our DC-X DAM system: We need something that’s simple enough that checking usage rights for hundreds of assets has no noticeable impact on response times. (But we’re still planning to add support for PLUS metadata during image import and export.)

Here’s how DC-X manages usage rights metadata:

There’s a database table for rights metadata properties, with columns for a property name and a value, scope, publication, remark, and date from/to. A simple example: Property name=”Fee Required”, value=”1″, scope=”Online” means that usage on an online website incurs a fee (value=”0″ would mean “no fee”).

Predefined property names are “Contract”, “Embargo”, “Exclusive Rights”, “External Syndication”, “Fee Required”, “Internal Syndication”, “Notice”, “Price Category”, “Purchased”, “Rights Agent”, “Rights Unclear”, “Singular Usage”, “Usage Permitted”. This list will certainly be expanded, and customers can define their own types.

Usually a contract exists with each provider, defining common rights for all images sent by them. To make this easier to handle, DC-X rights metadata properties can be bundled into “rights profiles”. We recommend creating one rights profile per provider (or multiple rights profiles if there’s different conditions for subsets of their images). Example: A rights profile named “Reuters images” could combine the properties UsagePermitted=”1″, FeeRequired=”0″, ExternalSyndication=”0″, Notice=”Credit required” if your contract with Reuters allowed you to use all images sent by them with no additional per-image fee, but images must be credited and redistribution is not allowed. (If different parts of your organization have different contracts with Reuters, you could even use the “scope” or “publication” fields to limit properties to a certain part.) And if your contract changes, you simply update the rights profile; all images will immediately reflect the changes.

Rights profiles must be attached to documents (multiple profiles per document are allowed). This can be done manually, or automatically during ingestion: At the moment, you can configure DC-X hotfolders to automatically attach a certain rights profile to all images coming in through it. In the future, it will also be possible to have DC-X determine the appropriate rights profile by looking at the document’s metadata (like the IPTC Credit or ByLine field).

If you need to override certain properties – like when a certain Reuters image must not be used anymore for legal reasons – you can also attach rights metadata properties directly to documents (without rights profiles). Here’s a screenshot from DC-X that shows an image with both a rights profile and a directly attached property:

dcx-rights

To visualize usage rights in search results, DC-X displays icons like the Euro sign or the globe in the screenshot above. They are called “flags” and represent rules being dynamically applied to each document. Example for the “Euro sign” flag definition: “Display if the rights property FeeRequired=1 exists.” (Flags can do much more; they can inspect other document metadata like IPTC fields or image file properties like size and colorspace.) Any number of flags can be defined by the customer.

Rights properties can be used in the DC-X user interface to detect whether certain actions are allowed (i.e., the export to the online CMS can detect that you’re trying to export an image for which you do not have online usage rights). Finally, usage rights can be queried and even changed through the DC-X Web Service API.

Differences compared to DC5: DC5 had no notion of usage rights built in, rights handling was meant to be implemented during the installation and customization phase.

Import performance numbers from a real-world DC-X installation

Posted in February 25, 201012:54hTim StrehleNo Comments »

Being a few months into a medium-sized DC-X installation, I’d like to share a few real-world numbers regarding image and text import speed. During mass import runs, the system had a relatively high load but was still usable. I’m quite happy with the performance so far:

  • 50,000 images imported per hour (off-the-shelf DC-X importer); includes generation of preview images
  • 400,000 text articles (XML) imported per hour (minor performance tweaks needed, 8 parallel processes)
  • 800,000 documents indexed per hour by the Solr full-text search server

The total number of documents in that DC-X instance is currently 3.2 million, with the data taking up 44 GB in MySQL and 31 GB in Solr (plus the actual image, PDF and other files). A full optimization run of the Solr index takes 25 minutes.

The servers DC-X is running on (set up by Janz):

  • Three IBM System x3650 M2, each with:
  • two quad-core Intel Nehalem processors (Xeon X5570 @ 2.93GHz/1333MHz/8MB L3)
  • 48 GB RAM

The first server is running MySQL and Apache, the second one Solr and regular import processes and Apache, the third one Apache plus occasional mass import processes. Storage being used:

Software:

Major DC-X demo server update

Posted in February 11, 201016:09hThorsten MannNo Comments »

Starting tomorrow we will roll out a major DC-X upgrade on our demo server. Since the last update was back in October, there have been a lot of new features added meanwhile. The upgrade process will start at 10am (GMT+1) and should be finished in the late afternoon. During that time we are expecting a downtime and things will look broken.

If you need access to a working demo server tomorrow or during the weekend, please contact us.

TAGS: ,

Running DC-X on Mac mini Server

Posted in January 20, 201011:53hTim StrehleNo Comments »

I was excited when Apple anounced the new Mac mini Server, and was allowed to buy one for the company to install DC-X on it.

It’s a beautiful computer, and very small, of course! The mini makes no noise at all and doesn’t require a keyboard, mouse or display after the initial installation. The perfect server to carry around, place on your desktop or next to your router at home. “DC-X to go”… Its 1 TB of disk space should be good for a couple hundred thousand images, making it a great test/evaluation setup (or even a small production system?).

Installing DC-X is easy, but you have to make sure that the prerequisites are met: Apache 2, MySQL 5.1, PHP 5.3, Memcache, ImageMagick, Supervisor, an LDAP server etc. Quite a lot of stuff is being shipped with Mac OS X Snow Leopard Server (make sure to install XCode from the installation DVD), and MacPorts supplied almost everything else (”sudo port install pcre ghostscript rrdtool memcached libmcrypt libpng jpeg freetype ImageMagick wget”). The MySQL version was too old for DC-X, so I installed the latest MySQL 5.1 OS X package – make sure to use the 64bit version! (and set “mysqli.default_socket = /tmp/mysql.sock” in /private/etc/php.ini, the default value doesn’t work).

I was able to use the preinstalled Apache and PHP. (By the way – I was surprised that Apple doesn’t configure Apache to advertise itself via Bonjour, and I wasn’t able to make this work.) Some PHP modules were missing, I compiled these extensions separately (phpize; CPPFLAGS=”-I/opt/local/include” ./configure, make, sudo make install) and added them in php.ini: pcntl, zip, mcrypt (for these three, download the PHP 5.3.0 sources and go into the appropriate “ext” subdirectory), APC, memcache (requires a patch).

Supervisor and ExifTool (MacPorts only had an outdated version of the latter) were easy, I used their standard installation routines.

My initial plan was to use the LDAP server provided by OS X Server, allowing us to use their graphical user management interfaces and to integrate DC-X user accounts with the system-wide accounts. This seemed to work fine first, but when I took the Mac mini home, it seemed to be confused suddenly belonging to a different network and I wasn’t able to connect to or manage their LDAP in that environment. So I had to resort to a parallel OpenLDAP installation, but I hope someone will help me figure out how to safely move the server between networks…

The actual DC-X installation went smooth, I included its Apache configuration in /etc/apache2/sites/0000_any_80_.conf and after a “sudo /usr/sbin/apachectl restart” I was able to use the DC-X web interface. (I haven’t yet set up DC-X to automatically start at boot time, I guess this involves a custom plist file in /Library/LaunchDaemons and invoking launchctl on it.) Great to see DC-X run on Snow Leopard Server for the first time!

Installing DC-X was just the first step. If time permits, I’d love to find out how to integrate with the server functionality provided by OS X Server: The file server, Wiki server, calendar server, mail and instant messaging…

TAGS: ,

DC-X 1.1.0RC12

Posted in January 12, 201010:39hTim StrehleNo Comments »

You may have noticed that the demo server has been stuck at the DC-X version 1.1.0RC8 for quite some time…

This is because we’re currently quite busy working on customer projects, but it doesn’t mean that DC-X is not evolving any more! In fact, partners can now download DC-X 1.1.0RC12 (if you don’t know the URL, please contact us). There are minor but important fixes in lots of areas, including the installer, publication information, topic planning, RSS feed import and the list and gallery result views.

(And yes, the permanent “Release Candidate” status is a bit funny – DC-X is stable enough for a “real” release, but there are a few things missing from the administration UI that we’d like to implement for 1.1.0.)

TAGS: ,

Server maintenance on 1st December

Posted in November 30, 200914:08hJörg NaßNo Comments »

The DC-X demo server (http://dcx.digicol.de) will be updated on 1st December and will not be available between 10 a.m. and 1 p.m.

TAGS: ,

Server maintenance this weekend

Posted in November 20, 200909:57hawidhaniNo Comments »

The DC-X demo server (http://dcx.digicol.de) will be updated this weekend and will not be available for some time.

In general, there may be maintenance work on the server at weekends that is not announced before. If you need to have a working server on a Saturday or Sunday please send a mail, so we can schedule appropriately.

TAGS: ,

Command line fun, part two

Posted in October 19, 200915:17hTim StrehleNo Comments »

This DC-X command line made me smile today (I’m doing batch data imports at a customer site):

xsltproc custom_xml_to_dcx.xslt input.xml | php /opt/dcx/bin/dcx_import.php –app default – | php /opt/dcx/bin/dcx_export.php –app default -t document – -r ‘$job = new DCX_Job($obj->app); $job->setWorkflow(”recreate_previews”); $job->setStatus(DCX_Job::STATUS_TODO); $job->addDocument($obj->getId(), “input”); $job->save(); echo $obj->getId() . ” => ” . $job->getId() . “\n”;’

It may look intimidating, but it’s rather simple – an XML input file (actually coming from our old DC4 product here) is formatted as DC-X XML using XSLT. dcx_import.php creates a DC-X document record from that XML (it copies the files referenced in the XML and inserts the metadata into the DC-X database). The dcx_export.php call then runs code against the DC-X PHP API to create a job in the DC-X workflow engine for (re-)creating preview images (you can do this if there are no preview images, or – like in this case – they are too small).

See you at IFRA Expo 2009

Posted in October 13, 200914:39hTim StrehleNo Comments »

It’s not too late to visit us at IFRA Expo 2009 in Vienna – we’re at booth A1025 (here’s what we’ll show you)! (Well, I won’t be in Vienna this year, but you’ll meet Kirsten, Thorsten, Ole and the other Tim…)

If you can’t make it, you might want to plan a trip to IFRA Expo 2010; the Expo is coming to our hometown Hamburg next year so most of us will be at the booth at one time or the other!

TAGS:

DC-X 1.1.0RC2 on our demo server

Posted in October 7, 200918:17hTim StrehleNo Comments »

We just upgraded our demo server to DC-X 1.1.0RC2. You’ll notice that Related Content is displayed much faster and looks nicer… The topic planning area is under heavy construction, so this won’t be the last release before IFRA :-)

We hope everything works fine for you, let us know if it doesn’t!

TAGS: ,