如何使用Python rdflib库添加本体IRI ?



这里描述了我的问题,但是(可能是旧的)提出的解决方案不适合我!

https://github.com/RDFLib/rdflib/issues/817

我想用rdflib来填充Python的本体IRI,就像protp的本体头一样。

我不确定你所说的本体标头是什么意思。我假设您希望以编程方式修改本体元数据。下面的代码添加了一些语句。您可以在图形对象上使用add()remove()方法,如下所示来更改您的数据。

from rdflib import OWL, RDF, RDFS, Graph, URIRef, Literal
g = Graph()
ontology_iri = URIRef("urn:example:ontology_iri")
g.add((ontology_iri, RDF.type, OWL.Ontology))
g.add((ontology_iri, RDFS.label, Literal("My ontology")))
g.print()

输出:

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
<urn:example:ontology_iri> a owl:Ontology ;
rdfs:label "My ontology" .

一个新的解决方案:https://github.com/RDFLib/rdflib/issues/817

from rdflib.extras.infixowl import Ontology
baseuri = rdflib.URIRef("http://purl.org/net/bel-epa/polti.owl")
nsuri = rdflib.URIRef(str(baseuri) + '#')
POLTI = rdflib.Namespace(nsuri)
g = rdflib.Graph(identifier=baseuri)
g.bind('polti', POLTI)
o = Ontology(
identifier=nsuri,
graph=g,
comment=rdflib.Literal(
"Georges Polti‘s Thirty-Six Dramatic Situations.", lang="en"
),
)
o.setVersion(rdflib.Literal("0.1.0", lang="en"))
print(g.serialize(format='pretty-xml'))

输出:

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>
<owl:Ontology rdf:about="http://purl.org/net/bel-epa/polti.owl#">
<rdfs:comment xml:lang="en">Georges Polti‘s Thirty-Six Dramatic Situations.</rdfs:comment>
<owl:versionInfo xml:lang="en">0.1.0</owl:versionInfo>
</owl:Ontology>
</rdf:RDF>

最新更新