我有一个项目,目标是将用户输入添加到包含有关国家/地区数据的乌龟文件(名为Main_Triples)中。我正在使用python创建带有参数的函数,这些参数可以使用SPARQL插入。我必须使用SPARQL。如何在SPARQL中编写此代码并更新文件?
我的rdf结构:
ex:Afghanistan a country:addressCountry ;
ex:HappyLifeYear_Index 1.24e+01 ;
ex:SCI 37 ;
ex:UHC 34 ;
ex:average_wellbeing 3.8e+00 ;
ex:avglifeexp 5.97e+01 ;
ex:gdp 691 ;
ex:hpi_rank 110 ;
ex:hpi_total_score 2.02e+01 ;
ex:inequality_of_Outcome 43 ;
ex:info_availability "high" ;
ex:inregion "MiddleEastandNorthAfrica" ;
ex:population_count 29726803 .
我的基本python代码(不起作用。我想将参数作为输入,并添加谓词/对象来表示阿富汗。
def addcountryfact(country, fact, data):
country = URIRef(ex + country)
fact = URIRef(ex + fact)
data = URIRef(ex + data)
addto = ("""
PREFIX ex: <http://example.org/>
INSERT ?country ?fact ?data
WHERE {
?country ?fact ?data
}
""")
addto = g.query(cd, initBindings={'fact': fact, 'country': country, 'data': data})
EX = Namespace("http://example.org/")
def add_country_fact(country, fact, data):
q = """
INSERT DATA {
?country ?fact ?data .
}
"""
g.update(
q,
initBindings={
'fact': EX[fact],
'country': EX[country],
'data': EX[data]
}
)
我认为这是一个使用SPARQL的学生练习,否则您将按照@UninformedUser在评论中的建议进行操作:
def add_country_fact(country, fact, data):
g.add((
EX[country],
EX[fact],
EX[data]
))
使用g.add(())
更简单,更快捷(无需转换为SPARQL。)>