我目前正在开发宠物收养应用程序的后端,例如PetFinder。我有一个代表宠物公告的
Pet
实体,我希望我的宠物建模看起来像 PetFinder 那样,它们显示可用宠物的大量信息,如宠物品种、颜色、行为、个性等我的主要疑问是我如何或在哪里可以获得许多不同宠物物种的此类信息以及我应该如何将这些数据存储在数据库中?哪里可以获得所有狗品种、猫品种、马等东西,颜色选项也会根据动物种类而变化。
我知道上面的问题有两个不同的问题,但它们有点相关,我想解决这个问题,避免手动方法,比如手动插入我知道的每个狗品种,然后对所有其他物种再次执行此操作。
我正在使用 Elixir 和 Phoenix 构建后端应用程序,所以我想在使用像 theDogs API 这样的 api 获取数据后使用
seeds.exs
来填充类似“breeds”表的内容,但我不知道我应该做什么也支持其他物种。
寻找预先存在的真理来源是明智之举。
理论上,我认为您想要的是使用类似 https://dbpedia.org/page/Animal 的东西并构建您自己的 SPARQL 或 Turtle 查询来获取您需要的数据。
我天真的理解:DBpedia 是“链接数据”的来源。链接数据如下所示:
dog -> is_a_type_of -> animal
因此,如果您查看狗的页面:https://dbpedia.org/page/Dog 您会看到页面的大部分内容都是一个看起来像键值对的巨大表格。 这些实际上是所谓的
triple
或 triple statement
的 2 个部分。
在该页面搜索单词“dbp:genus”并查看它的值为“Canus”。
这意味着
Dog is_genus Canus
我对 RDF 的东西知之甚少,但这是我能想到的最好的东西,可以满足您的广泛需求。
祝你好运!
TL;DR 破解此https://dbpedia.org/sparql/,直到您可以列出所有狗品种。然后使用该工作查询并使用 https://hex.pm/packages/sparql 或类似的东西来完成。