2

假设我在 mongoDB 中有某种集合,我想使用 rdflib 创建具有所有可能关系的图形。例如,如果我的数据库中有 3 个条目:

FIRST{color:red, name:Ben, age: 29}
SECOND{color :blue ,name:David, age:29}
THIRD{color :blue,name:Mark,age:34}

然后 FIRST 将与 SECOND(age) 相关,THIRD 将与 SECOND(color) 相关 此外,我如何将结果保存为 rdf 文件并使用一些 rdf 查看器(例如 rdf-gravity)查看它我感谢您的帮助。

4

1 回答 1

0

对于此应用程序,图形数据库可能是比 MongoDB 更好的工具。使用 MongoDB 执行此操作的最简单方法是 1+N 查询:

# Get a cursor for the entire collection
docs = db.collection.find()

for doc in docs:
    # Get all documents that have a common element
    related_docs = db.collection.find({"$or": [
        {"color": doc["color"]},
        {"name": doc["name"]},
        {"age": doc["age"]},
        ]})

    # Record the relationships in whatever structure you're using
    for related_doc in related_docs:
        store_relationship(doc, related_doc)

您可以通过跟踪您已经看过哪些文档对并忽略重复来提高效率。如所写,您将看到每个边缘两次。

于 2013-10-18T16:28:38.083 回答