Graph RDF/OWL图中类间距离的度量

Graph RDF/OWL图中类间距离的度量,graph,rdf,semantic-web,sparql,ontology,Graph,Rdf,Semantic Web,Sparql,Ontology,也许有人能给我一个暗示。是否可以测量属于同一本体的两个概念/类之间的距离 例如,假设我有一个具有 天文学课和望远镜课。两者之间有联系,但不是直接联系。天文学有一个称为科学的父类,望远镜有一个称为光学仪器的父类,它属于它的父类,称为仪器,它与一个称为经验科学的类相关,最后属于一个称为科学的类 所以望远镜和天文学之间有着间接的联系,我想找出从一门课到另一门课所需要的步骤数 有没有一个简单的SPARQL查询可以解决这个问题?还是有更好的方法来完成这项工作?或者,使用语义网范式不可能发现这一点 任何提示

也许有人能给我一个暗示。是否可以测量属于同一本体的两个概念/类之间的距离

例如,假设我有一个具有 天文学课和望远镜课。两者之间有联系,但不是直接联系。天文学有一个称为科学的父类,望远镜有一个称为光学仪器的父类,它属于它的父类,称为仪器,它与一个称为经验科学的类相关,最后属于一个称为科学的类

所以望远镜和天文学之间有着间接的联系,我想找出从一门课到另一门课所需要的步骤数

有没有一个简单的SPARQL查询可以解决这个问题?还是有更好的方法来完成这项工作?或者,使用语义网范式不可能发现这一点


任何提示都将非常感谢。

据我所知,SPARQL不包含任何能够测量任意长度的间接链接的递归构造。您最好准备一组查询
distance_1(a,b)
distance_2(a,b)
。。。检查两个概念之间的特定距离


另一种选择是使用非SPARQL技术发现此信息,例如使用RDFlib在Python中编写图形遍历算法。

SPARQL提供了在图形中搜索任意长度路径的能力,但没有机制告诉您该路径的长度

因此,您可以执行以下操作:

SELECT * WHERE { ?s ex:property+ ?o }

语法非常类似于正则表达式,因此您可以进行替代、受限基数等操作

因为您明确提到了类,它们将在同一个本体中,所以可以安全地假设它们将始终是连接的(因为最终两者都将是“Thing”的子类,对吧?)。另一方面,我在括号中提到的路径(Class1->…->东西