【问题标题】:Is it possible to just extract the SPARQL endpoint from a SPARQL query?是否可以从 SPARQL 查询中提取 SPARQL 端点?
【发布时间】:2015-03-12 23:12:08
【问题描述】:

我正在学习语义 Web 编程并尝试为 Android 平台开发应用程序。我的应用程序中有一个文本字段,用户可以在其中输入 SPARQL 查询。

我想知道是否可以从整个 SPARQL 查询中提取 SPARQL 端点。例如,在查询SELECT ?class FROM <http://myexample.com> WHERE{?class a owl:Class} Order By ?class 中,我想提取http://myexample.com

或者从看起来像 SELECT ?dataType ?data WHERE { <http://nasa.dataincubator.org/launch/1961-012> ?dataType ?data.} 的查询中提取 http://nasa.dataincubator.org/launch/1961-012

我想使用提取的端点,然后从 SPARQL 端点中检索该本体的类、属性等。

是否可以只提取端点?

【问题讨论】:

    标签: java sparql owl endpoint


    【解决方案1】:

    从您的示例查询中提取 URI http://myexample.com/ 非常简单。解析查询并检查解析结果(如何执行取决于您使用的查询解析器),或者只编写一个简单的正则表达式来获取FROM 子句并提取它后面的URI。

    但是,FROM 子句中的 URI不是 SPARQL 端点。 SPARQL 查询中的FROM 子句指定了一个命名图,一般来说,它是您查询的整个数据集的一个子集。但它不会告诉您查询将由哪个 SPARQL 端点执行。

    通常,SPARQL 端点不是查询本身的一部分,而是由您用于实际执行查询的工具确定的。

    在一种情况下,您可以从查询本身确定使用的端点,即如果 SPARQL 查询使用SERVICE 子句,例如:

    SELECT *
    WHERE { 
       SERVICE <http://example.org/sparql> { ?s ?p ?o } 
    }
    LIMIT 100
    

    但不保证会使用这种构造,事实上大多数 SPARQL 查询都不使用它。

    【讨论】:

      猜你喜欢
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多