3
몇 가지 분석을하기 위해 정 그래프에 RDF 데이터를로드하고 있습니다. 내가 링크 지정하기위한 지원 클래스를 생성 DirectedGraph g = new DirectedSparseGraph<String,GraphLink>();
정 그래프의 RDF 데이터 표현하기
: 다음
public class GraphLink {
String uri;
Float weight;
}
내가 이런 식으로 채 웁니다 :
for each rdf triple <s,p,o>{
g.addVertex(s)
g.addVertex(o)
GraphLink link = new GraphLink()
link.uri = pred
link.weight = some weight;
g.addEdge(link, s, o)
}
인가 그래서 내가 가진 새로운 그래프를 만들 이것이 효과적인 방법인가 아니면 더 좋은 방법이 있는가? 가장자리의 표현은 매우 직관적이지만, 내가 할 경우 :
g.addEdge(p, s, o)
나는 중복 가장자리의 예외를 얻을.
힌트가 있습니까?
UPDATE :이 코드는 잘 작동하는 것 같다 :
DirectedGraph<RDFNode,Statement> g = new DirectedSparseGraph<RDFNode,Statement>()
// list all statements
// TODO: pagination for very large graphs.
assert m.size() < 10000000,"graph is too large."
m.listStatements().each{ stm->
RDFNode sub = stm.getSubject()
RDFNode obj = stm.getObject()
g.addVertex(sub)
if (includeLiterals || !obj.isLiteral()){
g.addVertex(obj)
g.addEdge(stm, sub, obj, EdgeType.DIRECTED)
}
}
Mulone
매우 유용합니다, 감사합니다! – Mulone