使用sparql查询海龟文件时如何进行过滤

时间:2016-09-18 21:34:53

标签: sparql semantic-web apache-jena turtle-rdf

我应该提到我是语​​义网络世界的初学者。我的龟文件有以下结构:

@prefix ns0: <http://www.cws.org/ep/01#> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix gr: <http://purl.org/goodrelations/v1#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .    
#...
        <file:///C:/Users/Anis/Downloads/usdl-editor-master/usdl-editor-master/index.html#OSZwMOW5JiZTlJXb7>
          a ns0:GuaranteedState ;
          ns0:executionParameterType [
            a ns0:executionParameterType ;
            dc:description "Description Inpuuut" ;
            ns0:hasVariable <file:///C:/index.html#ekHCp7iFi1aEWM7QQ>

          ] ;
          dc:title "Input" .

        <file:///C:/index.html#ekHCp7iFi1aEWM7QQ>
          a ns0:Variable ;
          ns0:hasDefault [
            a gr:QuantitativeValue ;
            gr:hasValue "document.csv" ;
            gr:hasUnitOfMeasurement "csv"
          ] ;
          rdfs:label "test1" .
    #...

我正在尝试按dc:title = "Input"过滤。

这是我的问题,我应该添加什么?

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ns0: <http://www.cws.org/ep/01#>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX gr: <http://purl.org/goodrelations/v1#>
SELECT   *
WHERE   { 

          ?path  dc:title ?x

}

My query result始终显示“@”..我不知道它是什么意思?

3 个答案:

答案 0 :(得分:1)

如果完全匹配将得到你想要的,那么直接在三重模式中指定,例如:

SELECT ?path
WHERE {
   ?path dc:title "Title" .
}

..获得任何?path,其值为&#34;标题&#34;对于dc:title属性。例如,<file:///C:/Users/Anis/Downloads/usdl-editor-master/usdl-editor-master/index.html#OSZwMOW5JiZTlJXb7>将在您的示例中匹配。

如果匹配不准确,那么FILTERregex()一起使用应该有效。

SELECT ?path
WHERE {
   ?path dc:title ?x .
   FILTER regex(?x, "Title", "i")
}

...将任何dc:title属性与&#34; Title&#34;匹配在字符串中,忽略大小写。

答案 1 :(得分:0)

这只是一个想法,但我认为FILTER条款可能就是您所需要的:

 FILTER(?x = "Input") 

应该做的伎俩。

答案 2 :(得分:-1)

问题是解决的.. 在我的情况下,我必须将@whatever(例如。&#34; @ en&#34;)添加到我的结构文件中。然后我将此行添加到我的查询中:FILTER(?x =&#34;输入&#34; @ EN)。 以下是我的疑问:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ns0: <http://www.cws.org/ep/01#>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX gr: <http://purl.org/goodrelations/v1#>
SELECT *
 WHERE { 
 ?path dc:title ?x .
FILTER (?x = "Input"@en)
}