【问题标题】:How to get the prefix and namespace list from Virtuoso, using Sesame如何使用 Sesame 从 Virtuoso 获取前缀和命名空间列表
【发布时间】:2018-02-05 12:47:18
【问题描述】:

如何在 Virtuoso 中获取词汇表(或图表)的前缀和命名空间列表,就像我们在 Sesame 中一样:

在 Sesame 中,我们可以使用 RepositoryConnection 对象检索词汇表(存储库)的前缀和命名空间列表,

RepositoryResult<Namespace> nameSpaces = connection.getNamespaces();

但是当我们将词汇表上传到 Virtuoso 时,我们如何获得相同的词汇表。

VirtGraph 提供默认前缀和命名空间列表,但不提供上传词汇表中的前缀和命名空间列表。

【问题讨论】:

    标签: virtuoso sesame


    【解决方案1】:

    您最初问题的措辞表明您可能认为“词汇表”、“图表”和“存储库”都是同义词。他们不是!一个“存储库”(也称为数据存储)可能包含一个或多个“图表”,其中一个或多个可能包含一个“词汇表”(或者,在 RDF 用语中,更常见的是一个“本体”),它描述了用于描述某些实体类的术语,有或没有“实例数据”(有时称为“记录”,是对这些类的一些实际实例的实际描述)。

    也就是说——RDF-Turtle、RDF-N3 和类似文件中的PREFIX(或@prefix)语句实际上并不是数据的一部分;它们是序列化的一部分。因此,它们不会自动作为前缀或命名空间保存在 Virtuoso 数据存储中。

    Virtuoso Conductor 提供了用于定义命名空间的部分(http://{virtuoso-host-fqdn}:{port}/conductor/关联数据命名空间)。我们通常建议通过该界面工作,但专家也可以直接使用相关的 SQL 表,DB.DBA.SYS_XML_PERSISTENT_NS_DECL。当 Virtuoso 以支持 CURIEs(a/k/a Compact URI)的格式生成序列化输出时,以及 Virtuoso 在 SPARQL 查询和其他地方解释 CURIE 时,使用此处定义的命名空间。

    您可以通过内置页面http://{virtuoso-host-fqdn}:{port}/sparql?help=nsdeclseen on DBpedia 或通过任何 SQL 连接(iSQL、ODBC、JDBC 等)查看当前定义的命名空间 --

      SELECT  NS_PREFIX, 
              NS_URL 
        FROM  DB.DBA.SYS_XML_PERSISTENT_NS_DECL
    ORDER BY  LOWER(NS_PREFIX) ;
    

    您也可以使用 Sesame(现在的 RDF4J)方法来获取这些,如来自documentation and sample code we provide 的这个 sn-p --

    // test getNamespace
    Namespace testns = null;
    RepositoryResult<Namespace> namespaces = null;
    boolean hasNamespaces = false;
    
    try {
        namespaces = con.getNamespaces();
        hasNamespaces = namespaces.hasNext();
        while (namespaces.hasNext()) {
            Namespace ns = namespaces.next();
            // LOG("Namespace found: (" + ns.getName() + " " + ns.getPrefix() + ")");
            testns = ns;
        }
    }
    catch (Exception e) {
        log("Error[" + e + "]");
        e.printStackTrace();
        ok = false;
    }
    

    我们的 Provider 还具有删除和更新已注册命名空间的方法,这些方法在 VirtuosoRepositoryConnection 类中实现,如每个 Provider 的 API 文档中所述(RDF4JSesame 4Sesame 2)。

    (ObDisclaimer:OpenLink Software 产生 Virtuoso,并雇用我。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      相关资源
      最近更新 更多