Настройка онтологии RDF с помощью Virtuoso - PullRequest
3 голосов
/ 03 апреля 2011

Я в течение последних нескольких часов гуглял в поисках учебников или руководств о том, как настроить хранилище RDF с сервером Virtuoso (версия с открытым исходным кодом).

У меня есть файл RDF, созданный с помощью программного обеспечения Protégé. Как я могу добавить этот файл на сервер Virtuoso и настроить конечную точку , чтобы иметь возможность вставлять / обновлять или запрашивать данные через Jena или другой API такого рода.

Ответы [ 2 ]

3 голосов
/ 04 апреля 2011

Самый простой способ сделать это, как объяснить в пункте (16.8.3) этой страницы документации HTTP PUT using Content-Type: application/rdf+xml. Этот механизм в основном выполняет HTTP PUT отправку вашего файла в тройное хранилище.

curl -T your_file.rdf entity_uri_to_store_file -u user:pass

Думайте о entity_uri_to_store_file как о таблице, в которой вы хотите сохранить этот файл.

Итак, допустим, что ваш файл - ontology1.owl, и вы хотите сохранить его в сущности http://myorganisation.com/ontologies/ontology1 Тогда ваша команда будет выглядеть так ...

curl -T ontology1.owl <a href="http://myorganisation.com/ontologies/ontology1" rel="nofollow">http://myorganisation.com/ontologies/ontology1</a> -u user:pass

Примечание: если вы используете Windows, вы можете установить curl с здесь .

Чтобы запросить данные потом ... вы также можете сделать это с помощью curl.

curl -F "query=YOUR SPARQL QUERY" <a href="http://your.virtuososerver.org/sparql" rel="nofollow">http://your.virtuososerver.org/sparql</a>

Обратите внимание, что вы должны использовать SPARQL для доступа к данным.

В случае с Jena вы должны использовать Jena ARQ в командной строке ...

java -cp ... arq.query --service 'hhttp://your.virtuososerver.org/sparql' 'SELECT * WHERE {?s ?p ?o}'

или программно с использованием API ...

import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.sparql.engine.http.QueryExceptionHTTP;

public class QueryTest {

public static void main(String[] args) {
    String service = "http://your.virtuososerver.org/sparql";
    String query = "SELECT * WHERE {?s ?p ?o}";
    QueryExecution qe = QueryExecutionFactory.sparqlService(service, query);
    try {
       ResultSet results = qe.execSelect() ;
       for ( ; results.hasNext() ; ) {
           QuerySolution soln = results.nextSolution() ;
           RDFNode x = soln.get("s") ;
           RDFNode r = soln.get("p") ; 
           RDFNode l = soln.get("o") ;   
       }
    } catch (Exception e) {
        System.out.println("Query error:"+e);
    } finally {
        qe.close();
    }
 }

Просто не забудьте указать переменную service там, где слушает ваш виртуозный сервер.

2 голосов
/ 05 апреля 2011

В Virtuoso Conductor (http: cname: 8890 / Проводник) вы можете перейти на вкладку «Загрузка в RDF -> RDF Store», где вы можете загрузить файл наборов данных RDF из файловой системы или из URL-адреса.

Поставщик Virtuoso Jena можно использовать для запроса к Virtuoso Quad Store с использованием Jena Franework.

...