【问题标题】:Setup RDF ontology with Virtuoso使用 Virtuoso 设置 RDF 本体
【发布时间】:2011-04-03 17:31:12
【问题描述】:

过去几个小时,我在 Google 上搜索有关如何使用 virtuoso 服务器(开源版本)配置 RDF 存储的教程或指南。

我有使用 Protégé 软件创建的 RDF 文件。如何将此文件添加到 virtuoso 服务器并配置 端点 以便能够通过 Jena 或其他此类 API 插入/更新或查询数据。

【问题讨论】:

  • 在大多数三元存储中,断言本体与断言任何其他普通 RDF 数据完全相同。请参阅下面的答案,其中包含参考和指示。我希望它有所帮助。

标签: java rdf jena virtuoso


【解决方案1】:

最简单的方法可能是在documentation pageHTTP PUT using Content-Type: application/rdf+xml 的第 (16.8.3) 点上进行解释。这种机制基本上运行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 @987654322@ -u user:pass

注意:如果您运行的是 Windows 机器,则可以从 here 安装 curl

之后要查询数据...您也可以使用curl 进行查询。

curl -F "query=YOUR SPARQL QUERY" @987654324@

请注意,您必须使用 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 指向您的 virtuoso 服务器正在侦听的位置。

【讨论】:

  • 你好@msalvadores。感谢您的回复。实体myorganisation.com/ontologies/ontology1 是什么意思?我需要在互联网上拥有一些域才能发布我的本体?我可以在本地主机上做吗?
  • 该实体是 URI 而不是 URL,这意味着它不需要是可解析的。所以你可以放任何你想要的 URI,你不需要拥有这个域。
  • 我在 curl 中遇到错误“您无权访问此位置。”我需要在 virtuoso 中配置这个实体 myorganisation.com/ontologies/ontology1
  • 我不这么认为,用户和密码呢?你传对了吗?
  • 用户和密码是默认的-u dba:dba
【解决方案2】:

您可以从 Virtuoso Conductor (http:cname:8890/conductor) 转到“RDF -> RDF Store Upload”选项卡,您可以从文件系统或 URL 位置上传 RDF 数据集文件。

Virtuoso Jena Provider 可用于使用 Jena Fanework 查询 Virtuoso Quad Store。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多