【问题标题】:How to instantiate an ontology using rdflib?如何使用 rdflib 实例化本体?
【发布时间】:2015-07-20 10:32:26
【问题描述】:

我有一个定义了一系列类、子类和属性的本体。现在我想用 Python 代码自动实例化本体,并再次将其保存在 RDF/XML 中,然后将其加载到 Protege 中。我写了以下代码:

def instantiating_ontology(rdf_address):
from rdflib import *
g = Graph()
input_RDF = g.parse(rdf_address)
#input_RDF = g.open(rdf_address, create=False)
myNamespace="http://www.semanticweb.org/.../ontologies/2015/3/RNO_V5042_RDF"
rno = Namespace(myNamespace+"#")
nodeClass = URIRef(rno+"Node")
arcClass = URIRef(rno+"Arc")
#owlNamespace = 'http://www.w3.org/2002/07/owl#NamedIndividual'
namedIndividual = URIRef('http://www.w3.org/2002/07/owl#NamedIndividual')
rdftype = URIRef("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")
for i in range(0,100):
    individualName = rno + "arc_"+str(arcID)
    #arc_individual= BNode(individualName)
    arc_individual = BNode()
    #g.add()
    #g.add((arc_individual,rdftype, namedIndividual))
    g.add((arc_individual,rdftype, arcClass))
    g.add((arc_individual,rdftype, arcClass))
    #g.commit()
output_address ="RNO_V5042_RDF.owl"
g.serialize(destination = output_address)

该文件包含添加到 rdf/xml 的三元组:

  <rdf:Description rdf:nodeID="N0009844208f0490887a02160fbbf8b98">
<rdf:type rdf:resource="http://www.semanticweb.org/ehsan.abdolmajidi/ontologies/2015/3/RNO_V5042#Arc"/>

但是当我在 Protege 中打开文件时,没有类的实例。

谁能告诉我我定义实例的方式是错误的还是我应该使用不同的标签?

【问题讨论】:

    标签: python instance rdf ontology rdflib


    【解决方案1】:

    在玩弄了代码和结果之后,我意识到 rdf:nodeID 的概念应该替换为 rdf:about。为此,我只需要更改

    for i in range(0,100):
    individualName = rno + "arc_"+str(arcID)
    #arc_individual= BNode(individualName)
    arc_individual = BNode()        #---> remove this one 
    arc_individual = URIRef(individualName)    #----> add this one 
    g.add((arc_individual,rdftype, arcClass))
    g.add((arc_individual,rdftype, arcClass))
    arc_individual = URIRef(individualName)
    

    这似乎很容易,但我花了一些时间才理解。我希望这可以帮助其他人。 :D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多