Rdf 动态SPARQL查询以获取用Venn图表示的类之间的数据

Rdf 动态SPARQL查询以获取用Venn图表示的类之间的数据,rdf,sparql,Rdf,Sparql,我正在构建一个语义应用程序,其中我有RDF存储库中可用的所有类和子类的列表。然后,用户将类或子类拖动到绘图区域以形成维恩图。假设我有两个类,类A和类B,用户拖动它们,我需要启动SPARQL查询以获取这两个类是否有任何关系,如果有,我需要获取这两个类之间的公共数据。假设用户添加了另一个类,例如类C,然后我需要获取这些类之间的关系和数据 我需要SPARQL查询以下内容: 1.SPARQL查询以检查类A、B和C之间是否存在关系。我这里指的关系是,这三个类之间是否存在任何公共数据,如果没有,哪些类具有关

我正在构建一个语义应用程序,其中我有RDF存储库中可用的所有类和子类的列表。然后,用户将类或子类拖动到绘图区域以形成维恩图。假设我有两个类,类A和类B,用户拖动它们,我需要启动SPARQL查询以获取这两个类是否有任何关系,如果有,我需要获取这两个类之间的公共数据。假设用户添加了另一个类,例如类C,然后我需要获取这些类之间的关系和数据

我需要SPARQL查询以下内容:
1.SPARQL查询以检查类A、B和C之间是否存在关系。我这里指的关系是,这三个类之间是否存在任何公共数据,如果没有,哪些类具有关系。
2.SPARQL查询以获取这些类之间的公共数据,例如,AnB或BnC或AnBnC或AU(BnC)(如维恩图术语)


请在这方面帮助我,因为我是SPARQL查询新手。

我不知道你所说的“关系”是什么意思。我猜AnB是指“A和B的实例数”等。您可以得到如下计数:

  • AnB:
    选择(将(不同的?x)计数为?c){xa.?xa}
  • AuB:
    select(count(distinct?x)as?c){{xa}union{xa}
  • A-B:
    select(将(不同的?x)计数为?c){x过滤器不存在{x A}

更容易回答具体问题-一个完整的、最少的示例,包括有效的样本数据、您尝试过的内容、发生的情况以及您想要的内容。