假设我在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(年龄)相关,THIRD将与SECOND(颜色)相关 另外,我如何将结果保存为rdf文件并使用某些rdf查看器查看(例如rdf-gravity) 感谢您的帮助。
答案 0 :(得分:1)
对于此应用程序,graph database可能是比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)
通过跟踪您已经看过哪些文档对并忽略重复,可以提高效率。如上所述,你会看到每个边缘两次。