【发布时间】:2020-06-22 20:19:57
【问题描述】:
我正在尝试将主题和对象字符串与包含它们的 RDF 进行匹配,但是字符串已更改,因此很难生成完全匹配。我试图匹配最相似的,但 difflib 似乎不起作用。所以我有:
subject = "Juliette Gruber"
还有一个看起来像这样的 .rdf(为这篇文章而缩写):
<j.3:hasDeterminer rdf:resource="http://www.ontologydesignpatterns.org/ont/fred/quantifiers.owl#a"/>
<rdf:type rdf:resource="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#Actor"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#Actor">
<owl:equivalentClass rdf:resource="http://dbpedia.org/resource/Actor"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#ProbablyBestKnow">
<rdfs:subClassOf rdf:resource="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#BestKnow"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#Juliette_gruber">
<owl:sameAs rdf:resource="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#actor_1"/>
<j.1:hasQuality rdf:resource="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#British"/>
<rdf:type rdf:resource="http://www.ontologydesignpatterns.org/ont/fred/domain.owl#BritishActor"/>
</rdf:Description>
我正在尝试使用主题变量来查找包含它的行,但我似乎无法找到可靠的方法。这只是一个示例,我正在尝试对许多主题/对象/RDF 进行此操作。我尝试使用 difflib 并从主题/对象中仅抓取一个单词,但这不一致并且通常不起作用。
【问题讨论】:
-
我不明白这个问题。你的目标到底是什么?什么是输入,什么是输出?
-
我有一大堆句子。对它们做了两件事:1) 提取了一个实体(上面的“Juliette Gruber”),2) 句子已经被解析成一个 RDF 图,就像上面的那个。现在,我正在尝试查找包含“Juliette Gruber”的 RDF 图条目,但是我不确定如何匹配:
Juliette Gruber和http://www.ontologydesignpatterns.org/ont/fred/domain.owl#Juliette_gruber。另外,这只是一个例子,我正在尝试找到一个适用于这个问题的许多版本的解决方案 -
1.) 如果您使用 Python,您应该使用 rdflib API 2) 如果您为句子创建 RDF 数据,您应该使用字符串将
rdfs:label数据添加到实体 - 这是最佳实践,并允许通过查看标签来检索数据。例如,您可以使用 SPARQL ,例如select * where {?s rdfs:label "Juliette Gruber"} -
我没有生成 RDF,一个闭源 API 是
标签: python string rdf matching