Home > Nepomuk, Soprano > Virtuoso – Once More With Feeling

Virtuoso – Once More With Feeling

October 22, 2009 Leave a comment Go to comments

The Virtuoso backend for Soprano and, thus, Nepomuk can be seen as rather stable now. So now the big tests can begin as the goal is to make it the standard in KDE 4.4. Let me summarize the important information again:

Step 1

Get Virtuoso 5.0.12 from the Sourceforge download page. Virtuoso 6 is NOT supported. (not yet anyway)

Step 2

Hints for packagers: Soprano only needs two files: the virtuoso-t binary and the virtodbc_r(.so) ODBC driver. Everything else is optional. (For the self-compiling folks out there: –disable-all-vads is your friend.)

Step 3

Install libiodbc which is what the Soprano build will look for (Virtuoso is simply a run-time dependency.)

Step 4

Rebuild Soprano from current svn trunk (Remember: Redland is still mandatory. Its memory storage is used all over Nepomuk!)

Step 5

Edit ${KDEHOME}/share/config/nepomukserverrc with your favorite editor. In the “[Basic Settings]“ section add “Soprano Backend=virtuosobackend”. Do not touch the main repository settings!

Step 6

Restart Nepomuk. I propose the following procedure to gather debugging information in case something goes wrong:
Shutdown Nepomuk completely:

 # qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit

Restart it by piping the output into a temporary file (bash syntax):

 # nepomukserver 2> /tmp/nepomuk.stderr

Step 7

Wait for Nepomuk to convert your data. If you are running KDE trunk you even get a nice progress bar in the notification area (BTW: does anyone know why it won’t show the title?)

And Now?

That is already it. Now you can enjoy the new Virtuoso backend.

The development has taken a long time. But I want to thank OpenLink and especially Patrick van Kleef who helped a lot by fixing the last little tidbits in Virtuoso 5 for my unit tests to pass. Next step is Virtuoso 6.

  1. JJ
    October 22, 2009 at 14:35 | #1

    Q: Is Virtuoso also a run time dependency during building tests?

    • October 22, 2009 at 15:42 | #2

      only for the virtuosobackendtest. (which will fail in 3 tests due to an unresolved issue in virtuoso which has no influence on Nepomuk.)

  2. Børre
    October 22, 2009 at 15:34 | #3

    When I did the seven steps above and after I started nepomukserver, it reported that it wasn’t able to make the file ${KDEHOME}/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso.lck

    The file ${KDEHOME}/share/config/nepomukserverrc was reset to use the sesame2 backend.

    I made the folder ${KDEHOME}/share/apps/nepomuk/repository/main/data/virtuosobackend manually and repeated steps 5-7, and then it worked.

    • October 22, 2009 at 15:43 | #4

      That is weird. Normally there should be code that creates the folder. I will check again.

      • November 3, 2009 at 17:30 | #5

        The packages for Fedora in kde-redhat unstable (built by Rex Dieter) require the same thing to be done.

  3. October 22, 2009 at 21:55 | #6

    Man, I can’t wait until this his the Kubuntu repos/PPA’s.

    I’d so love to try this, but tend to break things when I touch compiling. :\

  4. Ig
    October 22, 2009 at 23:09 | #7

    I’m trying openSUSE packages under 4.3.2 and conversion was fine but seems dolphin is slow obtaining file information and sometimes a change the file but the data is not updated. I don’t remember this effect before change but I’m not, sure so problem can be previous.

    By the way, are there a simple query to delete strigi information or export only custom data? Actually I try using strigi with my music but fails miserably because it was not capable to obtain album and artist names.

    I think that if I deselect a directory for strigi scanning all strigi data in that directory would be deleted in db but not. Is this a bug?

    • October 23, 2009 at 18:17 | #8

      Yes, that is a bug in the strigi service. Actually it is more of a design flaw.
      As for the data deletion: see http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/TipsAndTricks#Remove_all_Strigi-indexed_data

      • Ig
        October 23, 2009 at 20:29 | #9

        Oh, I don’t see this tip before :). Seems to work but two things:

        1) nepomukcmd alias don’t work in openSUSE, you must change {$HOME}/.kde4/share for `kde4-config –localprefix`share to solve this problem.

        2) using directly your command don’t works for me, but changing nepomukcmd for proper sopranocmd works. The displayed error was:

        xargs: nepomukcmd: No such file or directory

        Thank you so much.

  5. October 23, 2009 at 04:32 | #10

    qdbus? doesn’t nepomuk obey kquitapp? o.0

    • October 23, 2009 at 18:15 | #11

      Not when it used to be based on QCoreApplication

  6. E.T. Anderson
    October 23, 2009 at 04:45 | #12

    When I run cmake, it completes successfully, but it says that the virtuoso backend will not be built. Since that’s kind of the point, I’m wondering what I’m doing wrong. I installed libiodbc2 and libiodbc2-dev, but I’m pretty new to compiling and am not sure why cmake will not build the virtuoso backend.

    • October 23, 2009 at 18:14 | #13

      Maybe you need to remove CMakeCache.txt so cmake will actually pick up libiodbc.

      • E.T. Anderson
        October 24, 2009 at 20:03 | #14

        Thank you for the suggestion.

        I was able to get it to recognize libiodbc by running cmake in wizard mode and specifying /usr/include manually.

    • Andras
      November 15, 2009 at 22:09 | #15

      The checks are not good enough IMO, it doesn’t say what you need. Yes, Step3 contains I need iodbc, but if I don’t read this blog, I wound’t know from the cmake output.

      • November 17, 2009 at 10:24 | #16

        I added a little hint to the cmake output

  7. Aaron Seigo
    October 23, 2009 at 08:44 | #17

    are any of the examples you point to in playground suitable for the kdeexamples module?

    • October 23, 2009 at 18:13 | #18

      Maybe the tagging and rating plugin for Konqueror although that could even be moved into kdebase.
      Everything else is more targetted to be a real stable component at some time.

  1. December 20, 2009 at 00:59 | #1