Все запросы SPARQL к моему хранилищу данных Sesame терпят неудачу (ничего не возвращая). Что я неправильно настроил?

Я установил openrdf-sesame и openrdf-workbench (2.8.6) под tomcat7 на Ubuntu Linux. Я загрузил следующие данные:

@prefix mur: <http://madeup.com/recipe#>.
@prefix branda: <http://madeup.com/branda#>.
@prefix brandb: <http://madeup.com/brandb#>.
@prefix brandc: <http://madeup.com/brandc#>.

mur:sausage a mur:sausage;
    mur:label "sausage".

branda:sausage a mur:sausage;
    branda:label "Brand A extra spicy sausage";
    branda:href "http://www.google.com/";
    branda:image "http://lorempixel.com/600/300/food/4/Brand%20A%20extra%20spicy%20sausage";
    mur:upc "01234".

brandb:sausage a mur:sausage;
    brandb:label "Brand B mild sausage";
    brandb:href "http://www.bing.com/";
    brandb:image "http://lorempixel.com/600/300/food/3/Brand%20B%20mild%20sausage";
    mur:upc "56789".

brandc:stockpot a mur:stockpot.

mur:spaghetti_recipe a mur:Recipe;
    mur:label "World famous sausage and spaghetti";
    mur:has_ingredient mur:sausage,
        [ a mur:sausage;
          mur:quantity "2";
          mur:units "lbs";
          mur:note "2 lbs sausage casings removed";
          branda:note "2 lbs Brand A extra spicy sausage (caseless)";
          brandb:note "2 lbs (1 package) of Brand B mild sausage with the casings removed"
        ];
    mur:has_ingredient mur:onion,
        [ a mur:onion;
          mur:quantity "1";
          mur:size "small";
          mur:label "1 small onion, chopped (optional)"
        ];
    mur:has_ingredient mur:garlic,
        [ a mur:garlic;
          mur:quantity "3";
          mur:label "3 garlic cloves, minced"
        ];
    mur:has_ingredient mur:tomato,
        [ a mur:tomato;
          mur:quantity "28";
          mur:units "ounces";
          mur:label "28 ounces of diced tomatoes"
        ];
    mur:has_ingredient mur:tomato_paste,
        [ a mur:tomato_paste;
          mur:quantity "12";
          mur:units "ounces";
          mur:label "12 ounces of tomato paste"
        ];
    mur:has_ingredient mur:water,
        [ a mur:water;
          mur:quantity "2";
          mur:units "cups";
          mur:label "If you want to simmer it as less, add less)"
        ];
   mur:has_ingredient mur:basil,
        [ a mur:basil;
          mur:quantity "3";
          mur:units "teaspoons";
          mur:label "3 teaspoons basil"
        ];
    mur:has_ingredient mur:spaghetti,
        [ a mur:spaghetti;
          mur:subtype "thin";
          mur:quantity "1";
          mur:units "lb";
          mur:label "1 lb thin spaghetti"
        ];
    mur:has_direction
        [ mur:step 1;
          mur:uses mur:sausage;
          mur:uses mur:stockpot;
          mur:label "In large, heavy stockpot, brown sausage, breaking up as you stir";
          branda:label "In large, heavy stockpot, brown Brand A extra spicy sausage, breaking up as you stir";
          brandb:label "In large, heavy stockpot, brown Brand B mild sausage breaking up as you stir"
        ].

Кажется, я не могу выполнить какой-либо запрос sparql к нему. Я пробовал:

select distinct ?property
where { 
    ?s ?property ?o .
}

Я не получаю результатов от этого запроса. Когда я пытаюсь использовать workbench, я получаю страницу в своем браузере, которая говорит: Этот файл XML не имеет связанной с ним информации о стиле. Дерево документа показано ниже. Тогда под ним ничего нет. Когда я пытаюсь выполнить тот же запрос, используя SPARQLWrapper в python, я также получаю пустой XML-документ в качестве результата. В workbench, если я нажимаю на контексты, я вижу свой контекст, если я нажимаю на пространства имен, я вижу свои nsamspaces, однако, если я нажимаю на типы, сервер выдает ошибку 500. С "java.lang.NoClassDefFoundError: java/util/Objects" в верхней части трассировки стека.

Есть идеи?


person Michael Richey    schedule 03.10.2015    source источник
comment
Я только что попробовал первый пример на страницах 2-4 книги Боба Дюшарма Learning SPARQL и получил точно такие же результаты. Пустая XML-страница.   -  person Michael Richey    schedule 03.10.2015
comment
В ваших данных RDF в строке 79 есть синтаксическая ошибка. Вы уверены, что данные действительно были загружены в Sesame? После исправления ошибки я добавил данные в хранилище Sesame и выполнил запрос, который работал нормально: вот результат вашего запроса   -  person Jeen Broekstra    schedule 03.10.2015
comment
На какой версии java вы работаете? Sesame 2.8.6 предполагается для работы на java 6, но NoClassDefFoundError заставляет меня думать, что функция java 7 могла случайно проскользнуть в кодовую базу.   -  person Jeen Broekstra    schedule 04.10.2015
comment
Данные загрузились, я отредактировал их, чтобы вставить в пост, и испортил. Я исправил это выше. Java 6. Я думаю, что могу перейти на Java 7 и посмотреть, решит ли это проблему. Это хорошая идея.   -  person Michael Richey    schedule 04.10.2015


Ответы (1)


Оказывается, некоторые функции Java 7 случайно попали в кодовую базу Sesame 2.8. Несмотря на то, что в документации сказано, что Sesame 2.8 совместим с Java 6, на самом деле для версии 2.8.6 требуется среда выполнения Java 7.

Это ошибка (см. SES-2325), и она будет исправлена ​​в следующем выпуске Sesame. выпуск патча. Тем временем обходным путем является обновление до Java 7 или 8 (что в любом случае является очень хорошей идеей).

person Jeen Broekstra    schedule 03.10.2015