Max*_* Z. 3 rdf sparql authorize.net-cim
首先,我必须道歉,因为我在XML,RDF和SPARQL查询方面非常新.我所有的知识是基于大量的阅读3天,因此还没有完全沉入,然而,试图查询使用耶拿是一个大的RDF文件时,我遇到了一个问题,如何让这是一个超的部分所有实例?
对不起,如果这个措辞不好,那么这里有一个例子.在我的RDF文件中,总有一个主节点:
主节点
然后有一些对象将此节点作为资源,如:
<cim:Connection rdf:ID="connection_1">
<cim:Object.name>Connection Point 1</cim:Object.name>
<cim:Connection.node rdf:resource="#main_node_1"/>
</cim:Connection>
Run Code Online (Sandbox Code Playgroud)
要么
<cim:Potential rdf:ID="potential_1">
<cim:Object.name>Equal Potential 1</cim:Object.name>
<cim:Potential.node rdf:resource="#main_node_1"/>
</cim:Connection>
Run Code Online (Sandbox Code Playgroud)
现在我知道如何查询任何rdf:type
和(有点)如何使用SPARQL进行图形查询.我想要做的是找到MainNode(我已经可以),然后找到引用此MainNode的所有元素/ objetcs/classes/instances.
根据我目前的尝试,我可以查询Connection
或Potential
直接查询,但不能同时查询.所以返回所有Connection
s 的查询将是:
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" .
}
Run Code Online (Sandbox Code Playgroud)
对于所有人来说Potential
,查询将是:
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" .
}
Run Code Online (Sandbox Code Playgroud)
然而,我需要提取两者并且不想使用,UNION
因为可能有更多的类我没有包括在内.我的尝试是将?object
线路更改为:
?mainNode cim:*.name "The Main Node" .
Run Code Online (Sandbox Code Playgroud)
但是星号*
不允许我在这里提供任何课程.事实上,无论是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" .
}
Run Code Online (Sandbox Code Playgroud)
该查询将告诉您直接连接到主节点的所有节点以及连接谓词的URI.
如果您只想要从相关节点到主节点的某些连接,那么您需要在联合中枚举它们,或者添加一个FILTER
子句来删除您不想要的那些.