Я подозреваю, что ваша проблема в том, что вы не пытаетесь сопоставить правильный URI в вашем запросе:
SELECT * WHERE {?s <univ-bench.owl#name> ?o}
Все, что заключено в угловые скобки, рассматривается как URI, и поскольку вы использовали относительный URI, который процессор SPARQL предположительно разрешает для некоторой произвольной базы, в результате чего абсолютный URI отличается от идентификатора в ваших данных, поэтому ваш запрос не будет ничего совпадать.
Вам нужно либо указать полный URI следующим образом:
SELECT * WHERE {?s <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#name> ?o}
, либо использовать префикс, например, так:
PREFIX ub: <univ-bench.owl#>
SELECT * WHERE { ?s ub:name ?o }
Если ни один из них не работает, то я подозреваю, что этонекоторые проблемы с относительными URI.Мой совет: никогда используйте относительные URI, всегда используйте абсолютные URI, где это возможно.Если вы должны использовать относительные URI, всегда указывайте базовый URI в явном виде, т.е. убедитесь, что ваши данные использовали абсолютные URI, перезагрузите их в свое хранилище и попробуйте снова.
Вы можете сделать это с помощью xml:base="http://example.org"
в RDF / XML или с помощью BASE <http://example.org/>
в SPARQL.Если я использую 4store, я считаю, что их командная строка импортера имеет аргументы, которые можно использовать для установки базового URI по умолчанию, когда ни один не указан.
Другая вещь, которую вы можете сделать, это попытаться поместить ваши данные в другуюТройное хранилище и посмотрите, испытываете ли вы такое же поведение, если вы это сделаете, то это будет означать проблему с относительными и абсолютными URI, как я предлагал.Если другое хранилище ответит на запрос нормально, это может означать возможную ошибку в 4store, и в этом случае вам следует связаться с ними в их списке рассылки - http://groups.google.com/group/4store-support