python - 如何在 Python 中解析和加载本体?

标签 python sparql rdf

我在“猫头鹰”文件(nif.owl)中有一个本体。
我熟悉Java,但它一直崩溃;因此,我尝试使用 Python。
但是,由于我之前没有使用过Python,我不确定我是否正确加载了本体!

这是我认为与加载本体相关的部分:

g = rdflib.Graph()
g.parse ('nif.owl', format='xml')
nif = rdflib.Namespace('http://purl.org/nif/ontology/nif.owl')
g.bind('nif', nif)

我相信问题在于 g.parse 将格式设置为“xml”。我想也许“xml”是错误的。

我还附加了本体文件的标题作为图像。

enter image description here

我认为代码有错误的原因是我得到的结果如下图所示:
enter image description here

谢谢!

PS:下面是完整的代码,以防万一它有问题:
import logging
import rdflib
import time

logging.basicConfig()
logger = logging.getLogger('logger')
logger.warning('The system may break down')

start_time = time.time()

g = rdflib.Graph()
g.parse ('nif.owl', format='xml')
nif = rdflib.Namespace('http://purl.org/nif/ontology/nif.owl')
g.bind('nif', nif)
query = """
select distinct ?p 
where { ?s ?p ?o}
        LIMIT 5
        """
result = g.query(query)
print(result.serialize(format='csv'))

print("--- %s seconds ---" % (time.time() - start_time))

最佳答案

除了格式应该是 format='application/rdf+xml' 之外,您的代码没有任何问题。 .

关于python - 如何在 Python 中解析和加载本体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56631109/

相关文章:

python - 如何使用pytest忽略测试中的警告?

python - 删除类时 __subclasses__ 的行为

python - textfield 和 charfield 的渲染去掉了额外的空白(Django/Python)

python - 如何在 Python 中使用 OAuth 对 Wikimedia Commons 查询服务进行身份验证?

rdf - SPARQL、沙盒入门

rdf - 导入 RDF : are referenced blank nodes gonna be merged or handled separately?

java - Jena-写入 owl 文件-意外结果

python - 如何在 python 中提取方法调用的数组条目

rdf - 在内存服务器中创建 Fuseki

serialization - Rdflib.js,如何将数据序列化为turtle(.ttl)格式?