我在rdflib
中使用Python
为Urban系统定义了一个本体。我定义了class
urbanSystem
和subClass
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']) )
答案 0 :(得分:0)
您将 name 定义为类,然后将其用作对象属性。您需要
g.add((name, RDF.type, OWL.ObjectProperty))
否则看起来还可以