How to generate all triples that fit a particular

2019-03-04 17:52发布

It is a follow up question to :

How to list and count the different types of node and edge entities in the graph data using SPARQL query?

So assuming I have the different node entities and edge entities of a given graph, how do I go about listing all triples, given a node-edge-node pattern? And how do I generate ALL node-edge-node patterns given the node and edge entities?

Example: If there is a network consisting of papers(nodes), authors(nodes), conferences(nodes), iswrittenby(edge), ispublishedin(edge), presentsin(edge) and so on , I'd have node entity type : papers authors conferences and for edge entity type: iswrittenby, ispublishedin , presentsin etc

What I'm looking to do now is generate patterns like:

1) paper(node)-iswrittenby(edge)-author(node) 2) paper(node)-iscitedby(edge)-paper(node) and so on... and then generate all triples from the dataset which satisfy these patterns.

1条回答
smile是对你的礼貌
2楼-- · 2019-03-04 18:40

I think what you're looking for is

construct {   
  ?paper :isWrittenBy ?author .
  ?paper :isCitedBy ?paper2
}
where {
  ?paper :isWrittenBy ?author .
  ?paper :isCitedBy ?paper2
}

The spec section on construct queries might be a helpful reference.

查看更多
登录 后发表回答