SPARQL查询语句

  1. 无条件查询
    SELECT ?s ?p ?o  
    FROM <book>
    WHERE { 
        ?s ?p ?o 
    } 
  2. 通过三元组的第一个值查询完整信息
    查询s=<file:///D:/d2rq/d2rq-0.8.1/book.nt#book/162101>的所有三元组信息
    PREFIX id: <file:///D:/d2rq/d2rq-0.8.1/book.nt#book/>
    
    SELECT  ?p ?o  
    FROM <book>
    WHERE { 
        id:162101 ?p ?o 
    } 
  3. 前缀查询
    查询o=<http://www.test.com#bookDynasty>的不重复的值
    PREFIX : <http://www.test.com#>
    
    SELECT  DISTINCT ?o  
    FROM <book>
    WHERE { 
       ?s :bookDynasty ?o 
    } 
  4. 字符串匹配查询
    查询bookTitle值中带有“二卷”的值
    PREFIX : <http://www.test.com#>
    
    SELECT  ?s ?o  
    FROM <book>
    WHERE { 
       ?s :bookTitle ?o.
       FILTER regex(?o, "二卷")
    } 
  5. 值匹配查询
    查询bookDynasty值不等于“明”的数据 同样适用于数值的大于小于等于判断
    PREFIX : <http://www.test.com#>
    
    SELECT DISTINCT ?o  
    FROM <book>
    WHERE { 
       ?x :bookDynasty ?o.
       FILTER (?o !=  "明")
    } 
  6. 无值匹配查询
    bookTitles存在空值的情况将无值的数据一起查出来
    PREFIX : <http://www.test.com#>
    
    SELECT ?bookId ?bookTitles
    WHERE{
    ?x :bookId ?bookId.
    OPTIONAL { ?x  :bookTitles  ?bookTitles}
    }
  7. 嵌套查询
    查询bookTitle带‘卷’的bookId和bookTitle
    PREFIX : <http://www.test.com#>
    
    SELECT ?bookId ?bookTitle
    FROM <book>
    WHERE{
    ?x :bookId ?bookId.
    ?x  :bookTitle  ?bookTitle
    FILTER regex(?bookTitle, "卷")
    }
  8. 删除某个三元组数据
    删除<aa> <bb> 'cc'这条三元组数据
    DELETE FROM GRAPH <book> { <aa> <bb> 'cc' }
  9. 删除符合条件的三元组数据
    删除bookId等于162102的三元组数据
    PREFIX bookId: <file:///D:/d2rq/d2rq-0.8.1/book.nt#book/>
    
    DELETE FROM GRAPH <book> { ?s ?p ?o  }
    WHERE { 
        bookId:162102 ?p ?o .
        ?s ?p ?o
    }

    客户端执行删除操作会报错没有权限 代码中可正常执行操作

  10. 插入数据
    PREFIX : <http://www.test.com#>
    PREFIX id: <file:///D:/d2rq/d2rq-0.8.1/book.nt#book/>
    
    INSERT
    INTO GRAPH <book>
    {
    id:162100
    :bookId "162100";
    :bookTitle "测试";
    :bookAuthor "作者"
    }
  11. 修改:先执行删除再插入数据
  12. 多图查询
    PREFIX : <http://www.test.com#>
    
    SELECT ?s ?o
    FROM <book>
    FROM <books>
    WHERE{
        GRAPH <book> {?s :bookTitle ?o. FILTER regex(?o, "卷")}
        GRAPH <books> {?s :bookTitle ?o. FILTER regex(?o, "卷")}
    }
  13. union连接
    返回满足UNION前后条件的值
    查询bookTitle匹配的bookDynasty和bookAuthor
    PREFIX : <http://www.test.com#>
    
    SELECT ?o ?d
    FROM <book>
    WHERE{
        ?s :bookTitle ?o.
        {
            {?s :bookDynasty ?d} UNION {?s :bookAuthor ?d}
        }
    }
  14. 排序
    ORDER BY ?bookTitle ASC(?id)
  15. 清空图
    CLEAR GRAPH <book>
  16. 读取rdf文件到virtuoso
    VirtModel virtModel = VirtModel.openDatabaseModel("graphName", "url", "user", "password");
    String file = "book.xml";
    InputStream in = FileManager.get().open(file);
    // .xml-"RDF/XML" .nt-"N-TRIPLE"
    virtModel.read(new InputStreamReader(in, "UTF-8"), null, "RDF/XML");
    virtModel.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值