Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据捕获的URI REF打印范围更广和范围更窄的概念_Python_Sparql_Semantic Web_Rdflib_Geosparql - Fatal编程技术网

Python 根据捕获的URI REF打印范围更广和范围更窄的概念

Python 根据捕获的URI REF打印范围更广和范围更窄的概念,python,sparql,semantic-web,rdflib,geosparql,Python,Sparql,Semantic Web,Rdflib,Geosparql,我很难根据我的URIRef(即SPAQRL查询的输出)打印SKOS更广泛和更狭窄的概念。我想根据捕获的URI REF(即生物量)打印更广泛和更狭窄的概念。我正在解析的文件不包含更广泛和更狭窄的概念。我不知道在对它们运行查询之前是否需要手动将它们添加到文件中 我已经看到了类似的问题,但没有找到解决方案 import rdflib g = rdflib.Graph() result = g.parse("C://Users/support/Documents/Re.txt", f

我很难根据我的URIRef(即SPAQRL查询的输出)打印SKOS更广泛和更狭窄的概念。我想根据捕获的URI REF(即生物量)打印更广泛和更狭窄的概念。我正在解析的文件不包含更广泛和更狭窄的概念。我不知道在对它们运行查询之前是否需要手动将它们添加到文件中

我已经看到了类似的问题,但没有找到解决方案

import rdflib
g = rdflib.Graph()
result = g.parse("C://Users/support/Documents/Re.txt", format=("turtle"))
qres = g.query(
    """
    prefix skos: <http://www.w3.org/2004/02/skos/core#> 
    
    SELECT  *
    WHERE { ?s  skos:prefLabel  "Biomass"} 
                     
    """)
for row in qres: print(row)
我尝试过嵌套SELECT查询,但不起作用

我的问题
qres=g.query(
"""
前缀skos:
挑选*
哪里{s skos:更广泛的?o.{
选择
其中{s skos:prefLabel“Biomative.”
}     
""")
对于qres中的行:打印(行)

如果您只是在努力处理查询,那么我认为您是在过度复杂化它。这应该是可行的

qres = g.query(
    """
    prefix skos: <http://www.w3.org/2004/02/skos/core#> 
        
    SELECT * WHERE { 
        ?s  skos:broader  ?o ; skos:prefLabel  "Biomass" . }   
                     
    """)
qres=g.query(
"""
前缀skos:
选择*其中{
s skos:更广泛的?o;skos:预先标记“生物量”。}
""")

“我不知道在对它们运行查询之前是否需要在文件中手动添加它们。”-说真的?我的意思是,您如何能够查询数据集中不存在的数据,无论是显式的还是隐式的?命名您的文件
Re.txt
也是一种不好的做法。而且它不是
URIRef
,而是URI。URIRef只是类在Python API中的命名方式,但在RDF/SPARQL世界中,它只是一个URI和您的最后一个查询无论如何都是无效的SPARQL语法。这将是两个查询,但没有嵌套。或者,您在这里看到嵌套的位置了吗?因此,添加数据,然后运行查询。在您的情况下,“合并”上一次尝试的两个查询。@初学者“在我的脚本中再次定义这些概念”是什么意思?谢谢您,克里斯:)祝您好运!
qres = g.query(
    """
    prefix skos: <http://www.w3.org/2004/02/skos/core#> 
        
    SELECT *
    WHERE { ?s  skos:broader  ?o . { 
           
     
    SELECT  ?s
    WHERE { ?s  skos:prefLabel  "Biomass" .}  
 
          }     
                     
    """)
             
for row in qres: print(row)
qres = g.query(
    """
    prefix skos: <http://www.w3.org/2004/02/skos/core#> 
        
    SELECT * WHERE { 
        ?s  skos:broader  ?o ; skos:prefLabel  "Biomass" . }   
                     
    """)