Rdf 如何在SPARQL中查找引用其他对象的对象

Rdf 如何在SPARQL中查找引用其他对象的对象,rdf,sparql,authorize.net-cim,Rdf,Sparql,Authorize.net Cim,首先,我必须道歉,因为对于XML、RDF和SPARQL查询,我是个新手。我所有的知识都是基于3天的大量阅读,所以我还没有完全理解。然而,我在尝试使用Jena查询大型RDF文件时遇到的一个问题是,如何获取属于超类的所有实例 对不起,如果这是糟糕的措辞,所以这里是一个例子。在我的RDF文件中,始终有一个主节点: PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX cim: <http://iec.ch/T

首先,我必须道歉,因为对于XML、RDF和SPARQL查询,我是个新手。我所有的知识都是基于3天的大量阅读,所以我还没有完全理解。然而,我在尝试使用Jena查询大型RDF文件时遇到的一个问题是,如何获取属于超类的所有实例

对不起,如果这是糟糕的措辞,所以这里是一个例子。在我的RDF文件中,始终有一个主节点:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX cim: <http://iec.ch/TC57/2010/CIM-schema-cim15#>
SELECT ?relationship ?object
WHERE {
  ?object   ?relationship  ?mainNode . 
  ?mainNode cim:Object.name     "The Main Node" . 
}
主节点

还有一些对象将此节点作为资源,如:


连接点1


等电位1
现在我知道了如何查询任何
rdf:type
,以及(稍微)如何使用SPARQL对查询进行图形化。我要做的是首先找到MainNode(我已经可以找到),然后找到引用此MainNode的所有元素/objetcs/Class/实例

通过我当前的尝试,我可以直接查询
连接
潜在的
,但不能同时查询两者。因此,返回所有连接的查询将是:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX cim: <http://iec.ch/TC57/2010/CIM-schema-cim15#>
SELECT ?object
WHERE {
    ?object   cim:Connection.node ?mainNode . 
    ?mainNode cim:Object.name     "The Main Node" . 
}
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX cim: <http://iec.ch/TC57/2010/CIM-schema-cim15#>
SELECT ?object
WHERE {
    ?object   cim:potential.node  ?mainNode . 
    ?mainNode cim:Object.name     "The Main Node" . 
}
但是我需要同时提取这两个类,并且不想使用
UNION
,因为可能有更多的类我没有包括在内。我试图将
?对象
行更改为:

?mainNode cim:*.name "The Main Node" . 

然而星号
*
不允许我在这里提供任何类。事实上,
Connection
Potential
都可以被视为超类的子类,该超类包含变量
node

我认为您需要的是任何距离主节点一个三重连接的节点:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX cim: <http://iec.ch/TC57/2010/CIM-schema-cim15#>
SELECT ?relationship ?object
WHERE {
  ?object   ?relationship  ?mainNode . 
  ?mainNode cim:Object.name     "The Main Node" . 
}
前缀rdf:
前缀cim:
选择关系对象
在哪里{
?对象?关系?主节点。
?mainNode cim:Object.name“主节点”。
}
该查询将告诉您所有直接连接到主节点的节点,以及连接谓词的URI


如果您只需要从相关节点到主节点的一些连接,那么您需要在联合中枚举它们,或者添加一个
FILTER
子句来删除您不需要的连接。

这正是我想要的!没想到最后会这么直截了当。谢谢