为什么在查询本体时我们必须加载 ontology,还要提供它的命名空间?
Why while querying ontologies we have to load the ontology, also provide its namespace?
我想知道为什么我们必须加载一个 ontology,并在查询时提供它的命名空间?为什么加载 ontology 还不够?
为了更好地理解我的问题,这里有一个示例代码:
g = rdflib.Graph()
g.parse('ppp.owl', format='turtle')
ppp = rdflib.Namespace('http://purl.org/xxx/ont/ppp/')
g.bind('ppp', ppp)
在第 2 行中,我们打开了 ontology (ppp.owl),但在第 3 行中我们还提供了它的命名空间。命名空间是否显示程序如何处理 ontology?
干杯,
射频
要在语义网上指定一个元素,您需要它的 URI:唯一资源标识符,它由 名称空间 和本地名称。例如,考虑 Person
一个 RDF class;您如何区分 Person
DBpedia class http://dbpedia.org/ontology/Person
和其他 ontology 中的 Person?您需要命名空间 http://dbpedia.org/ontology/
和本地名称 Person
。两者都唯一标识 class.
现在回到您的具体问题,当您查询 ontology 时,您可能会使用多个名称空间,某些名称空间可能不是您的 ontology。您需要其他名称空间来查询您自己的 ontology,例如rdf
、rdfs
和 owl
。例如,您很少可以在没有 rdf:type
属性 的情况下编写任意查询,它包含在 rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns>
命名空间下,而不是您的 ontology 命名空间下。因此,您需要指定命名空间。
好了,现在你应该知道为什么要使用命名空间了,那我们就可以继续了。为什么每次需要时都要重复命名空间的整个字符串?它只不过是在查询中使用的附加到本地名称的前缀字符串,以避免详尽地编写完整的 uri。查看 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
和 type
之间的区别。
编辑
正如@AKSW 所说,作为结论,无需声明命名空间即可使用 ontology,但它增加了经常使用 URI 具有特定命名空间的资源时的便利性。
我想知道为什么我们必须加载一个 ontology,并在查询时提供它的命名空间?为什么加载 ontology 还不够?
为了更好地理解我的问题,这里有一个示例代码:
g = rdflib.Graph()
g.parse('ppp.owl', format='turtle')
ppp = rdflib.Namespace('http://purl.org/xxx/ont/ppp/')
g.bind('ppp', ppp)
在第 2 行中,我们打开了 ontology (ppp.owl),但在第 3 行中我们还提供了它的命名空间。命名空间是否显示程序如何处理 ontology?
干杯, 射频
要在语义网上指定一个元素,您需要它的 URI:唯一资源标识符,它由 名称空间 和本地名称。例如,考虑 Person
一个 RDF class;您如何区分 Person
DBpedia class http://dbpedia.org/ontology/Person
和其他 ontology 中的 Person?您需要命名空间 http://dbpedia.org/ontology/
和本地名称 Person
。两者都唯一标识 class.
现在回到您的具体问题,当您查询 ontology 时,您可能会使用多个名称空间,某些名称空间可能不是您的 ontology。您需要其他名称空间来查询您自己的 ontology,例如rdf
、rdfs
和 owl
。例如,您很少可以在没有 rdf:type
属性 的情况下编写任意查询,它包含在 rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns>
命名空间下,而不是您的 ontology 命名空间下。因此,您需要指定命名空间。
好了,现在你应该知道为什么要使用命名空间了,那我们就可以继续了。为什么每次需要时都要重复命名空间的整个字符串?它只不过是在查询中使用的附加到本地名称的前缀字符串,以避免详尽地编写完整的 uri。查看 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
和 type
之间的区别。
编辑
正如@AKSW 所说,作为结论,无需声明命名空间即可使用 ontology,但它增加了经常使用 URI 具有特定命名空间的资源时的便利性。