首页 > 解决方案 > 在 Python 中将字符串与生成的 RDF 实体匹配

问题描述

我正在尝试将主题和对象字符串与包含它们的 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 并从主题/对象中只抓取一个单词,但这不一致并且通常不起作用。

标签: pythonstringrdfmatching

解决方案


如果我理解正确,那么使用模式匹配我们可以获得所需的字符串并生成所需的 uri,您可以将其与所需的对象匹配。即使三元组重复,知识图也会将它们识别为相同


推荐阅读