SPARQL查询以识别来自多个图之一的谓词

时间:2018-03-21 14:06:37

标签: sparql rdflib

我通过将许多本体组合在一起创建了一个本体。

我想使用SPARQL从组本体中的一个本体中识别所有中间项(关系)。

以下方法仅生成forked-repo

pyparsing error

如果我删除g = rdflib.Graph() result = g.parse("without-bfo.owl") qres = g.query( """ PREFIX sudo: <http://purl.url/sudo/ontology#> SELECT ?v WHERE { ?s sudo:?v ?o. }""") 前缀,则此查询将返回所有三元组。

2 个答案:

答案 0 :(得分:1)

您可以使用if (usernameField.text?.isEmpty == false){ ref.child("users").queryOrdered(byChild:"username").queryEqual(toValue: username).observeSingleEvent(of: .value, with: { snapshot in if snapshot.exists(){

检查关系是否以您的命名空间开头
CONTAINS

您还可以尝试SELECT ?v WHERE { ?s ?v ?o. FILTER CONTAINS(?v, "http://purl.url/sudo/ontology#") }

请参阅w3 documentation

答案 1 :(得分:0)

@Arcturus很接近。

以下对我有用。必须使用?vSTR声明为字符串。 This SO post提出了语法。

qres = g.query(
""" SELECT DISTINCT ?v
    WHERE {
      ?s ?v ?o . 
      FILTER CONTAINS(STR(?v), "sudo")
   }""")

表示qres中的行:     打印行