zoukankan      html  css  js  c++  java
  • SPARQL 入门教程

    1.准备工作

    1.1 下载ZIP

    1.2 配置环境变量

    1.3 查询文件

    2. 查询操作

    2.1 普通查询

    /**
     * 查询family为“Smith”的 GivenName
     */
    
    // 前缀声明
    PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
    
    SELECT ?givenName
    WHERE
      { ?y  vcard:Family  "Smith" .
        ?y  vcard:Given  ?givenName .
      }
    

    2.2 正则表达式查询

    • 语法:FILTER regex(?x, "pattern", [,"flags"])
    • "flags":是可选操作;
    /**
     * 查找GivenName中含有“r”的结果
     */
    
    // 前缀声明
    PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
    
    SELECT ?g
    WHERE
    {
        ?y vcard:Given ?g .
        FILTER regex(?g, "r", "i")   // 其中“i”,对应“flags”,表示忽略大小写
    }
    

    2.3 OPTIONAL 操作

    /**
     * 查询 name 字段,若 age 字段存在,也需要显示;
     */
    
    // 前缀声明
    PREFIX info:    <http://somewhere/peopleInfo#>
    PREFIX vcard:   <http://www.w3.org/2001/vcard-rdf/3.0#>
    
    SELECT ?name ?age
    WHERE 
     {
         ?person vcard:FN ?name .
         OPTIONAL { ?person info:age ?age } // 若 age 存在,则显示
     }
    

    2.4 OPTIONAL 和 FILTER 操作

    /**
     * 查询 name 字段,若 age 字段存在,且大于24岁,则显示
     */
    
    PREFIX info:    <http://somewhere/peopleInfo#>
    PREFIX vcard:   <http://www.w3.org/2001/vcard-rdf/3.0#>
    
    SELECT ?name ?age
    WHERE 
     {
         ?person vcard:FN ?name .
         OPTIONAL { ?person info:age ?age . FILTER ( ?age > 24 ) } // 若 age 存在,且大于24,则显示
     }
    

    /**
     * 查询 name 字段,只显示 age 字段存在,且大于24岁的
     */
    
    PREFIX info:    <http://somewhere/peopleInfo#>
    PREFIX vcard:   <http://www.w3.org/2001/vcard-rdf/3.0#>
    
    SELECT ?name ?age
    WHERE 
     {
         ?person vcard:FN ?name .
         OPTIONAL { ?person info:age ?age . } // 若 age 存在,则显示
         FILTER ( ?age > 24 )                 // FILTER 独立于 OPTIONAL
     }
    

    /**
     * 查询 name 字段,若 age 字段存在,且大于24岁,或者不存在 age 字段的
     */
    
    PREFIX info:    <http://somewhere/peopleInfo#>
    PREFIX vcard:   <http://www.w3.org/2001/vcard-rdf/3.0#>
    
    SELECT ?name ?age
    WHERE 
     {
         ?person vcard:FN ?name .
         OPTIONAL { ?person info:age ?age . } // 若 age 存在,则显示
         FILTER ( !bound(?age) || ?age > 24 )   
     }
    

    2.5 UNION 操作

    PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
    PREFIX vCard:   <http://www.w3.org/2001/vcard-rdf/3.0#>
    
    SELECT ?name1 ?name2
    WHERE
     {
         { [] foaf:name ?name1 } UNION { [] vCard:FN ?name2 }
     }
    

    参考资料:

  • 相关阅读:
    Nginx 七层反向代理
    Nginx Rewrite域名及资源重定向!(重点)
    对FPM 模块进行参数优化!
    Nginx压力测试及通用优化
    LNMP架构及应用部署!(重点)
    安装PHP解析环境!
    Mysql安装并修改字符集 ----> 基于源码包安装
    Nginx安装部署!
    python入门
    Android学习进度三
  • 原文地址:https://www.cnblogs.com/linkworld/p/9996529.html
Copyright © 2011-2022 走看看