我正在尝试为我的应用程序提出一个本体(内部)。但是,我想尽可能多地借钱。当我环顾不同的现有本体时,我观察到重叠。例如:foaf:Person 和 dbpedia:Person 等。两者都是其代理类、事物类等的子类。尽管它们可能具有不同的属性。为什么他们不互相重用/扩展?
我的问题:
1) 为什么 dbpedia 不使用 foaf:person 反之亦然?
2) 你如何选择 b/w dbpedia:Person 和 foaf:Person 或者你自己创建?
我对此很陌生。请原谅我的无知。
我正在尝试为我的应用程序提出一个本体(内部)。但是,我想尽可能多地借钱。当我环顾不同的现有本体时,我观察到重叠。例如:foaf:Person 和 dbpedia:Person 等。两者都是其代理类、事物类等的子类。尽管它们可能具有不同的属性。为什么他们不互相重用/扩展?
我的问题:
1) 为什么 dbpedia 不使用 foaf:person 反之亦然?
2) 你如何选择 b/w dbpedia:Person 和 foaf:Person 或者你自己创建?
我对此很陌生。请原谅我的无知。
1) 因为 DBpedia 包含数千个用于各种不同事物的类,如果他们必须在开始发布 DBpedia 数据之前在 Web 上搜索其他类以重用,他们将永远无法到达任何地方。所以他们用自己的类创建了自己的 DBpedia 本体。rdfs:subClassOf
在某些情况下,当他们发现现有类时,他们会通过或owl:equivalentClass
稍后将 DBpedia 本体类映射到现有类。此外,FOAF 如何定义“Person”和 DBpedia 如何定义“Person”可能存在细微差别。例如,像哈利波特这样的虚构人物是不是一个人?定义自己的类会更安全,这样您就可以完全控制定义。
2) 这是一个复杂的决定。如果有一个完善的词汇表,如 FOAF、DC、SKOS 等,可以满足您的需求,那么您应该始终重复使用它,而不是自己发明。如果不存在适用的词汇表,或者如果您不相信词汇表的出版商是有信誉的并且从长远来看会保持词汇表的稳定和稳定,那么创建自己的词汇表可能会更好。您始终可以组合多个词汇表,或使用您自己的一些属性(在您自己的命名空间中)扩展现有词汇表。如果您定义自己的类和属性,则应始终尝试将它们映射到现有的类和属性。如果您可以在多个现有词汇表之间进行选择,请选择使用更广泛的词汇表。LOV、LODstats等服务Sindice Analytics可以提供帮助。