gpt4 book ai didi

python - 使用 RDFlib 获取 Literal 对象的 lang 值

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:32 25 4
gpt4 key购买 nike

我有这个 rdf 文件:

<!DOCTYPE rdf:RDF [
<!ENTITY db "http://dbpedia.org/ontology/" >
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >]>

<rdf:RDF xmlns="http://dbpedia.org/ontology/"
xml:base="http://dbpedia.org/ontology/"
xmlns:db="http://dbpedia.org/ontology/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">


<owl:ObjectProperty rdf:about="&db;actingHeadteacher">
<rdfs:label xml:lang="el">διευθυντής σχολείου</rdfs:label>
<rdfs:label xml:lang="en">acting headteacher</rdfs:label>
</owl:ObjectProperty>
</rdf:RDF>

并希望通过 lang 值过滤 Literal 对象。例如:

from rdflib import Graph
from rdflib.namespace import RDFS
filetype = util.guess_format(rdf_file)
g = Graph()
g.parse(rdf_file, format = filetype)
for s,p,o in g.triples((None, RDFS.label, None)):
print(repr(o)) # rdflib.term.Literal('acting headteacher', lang='en')
# rdflib.term.Literal('διευθυντής σχολείου', lang='el')

我只想在 lang='en' 处查询 o

最佳答案

当您检查 manual for rdflib ,你会发现 rdflib.term.Literal 有一个名为 language 的属性和一个方法。但是,调用该方法似乎对我不起作用。

这样的事情可以做到:

# from rdflib import URIRef

subject = URIRef('&db;actingHeadteacher')

# just getting your literals directly here:
generator = graph.objects(subject, RDFS.label)

for lit in generator:
print lit.language

labelpreferredLabel only

如果您只对标签/首选标签(SKOS 或 RDFS)感兴趣,请查看 page 47 from the manual :

subject = URIRef('&db;actingHeadteacher')
graph.preferredLabel(subject=subject, label='en') # or label='el'

这将返回一个 (labelProp, label) 对列表,其中 labelPropskos:prefLabelrdfs:label

关于python - 使用 RDFlib 获取 Literal 对象的 lang 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23024443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com