RDFLib:如何在Python中创建本体?

时间:2017-09-27 14:04:06

标签: python rdf ontology rdfs

我在rdflib中使用Python为Urban系统定义了一个本体。我定义了class urbanSystemsubClass name

import rdflib
from rdflib.graph import Graph, ConjunctiveGraph
from rdflib import Graph, URIRef, BNode, Literal
from rdflib import Namespace
from rdflib.namespace import OWL, RDF, RDFS, FOAF
myOntology =  Namespace("http://www.semanticweb.org/myOntology#")
g.bind("myOntology", myOntology)

# Create the graph 
g = Graph()
# Create the node to add to the Graph
urbanSystem = URIRef(myOntology["urbanSystem"])

# Add the OWL data to the graph
g.add((urbanSystem, RDF.type, OWL.Class))
g.add((urbanSystem, RDFS.subClassOf, OWL.Thing))

name = URIRef(myOntology["name"])
g.add((name, RDF.type, OWL.Class))
g.add((name, RDFS.subClassOf, urbanSystem))

现在我想在我的本体中添加一个城市,例如Paris

label = URIRef(myOntology["Paris"])

Paris的最佳方式是urbanSystem,名称为Paris

这就是我在做的事。

g.add( (label, RDF.type, myOntology.urbanSystem) )
g.add( (label, myOntology.name, Literal['Paris']) )

1 个答案:

答案 0 :(得分:0)

您将 name 定义为类,然后将其用作对象属性。您需要

g.add((name, RDF.type, OWL.ObjectProperty))

否则看起来还可以