public static Graph fetchData(QueryExecutionFactory qef, ResourceShape shape, Node node) { MappedConcept<Graph> mc = ResourceShape.createMappedConcept(shape, null, false); LookupService<Node, Graph> ls = LookupServiceUtils.createLookupService(qef, mc); Map<Node, Graph> map = ls.fetchMap(Collections.singleton(node)); // if(map.size() > 1) { // throw new RuntimeException("Should not happen"); // } Graph result = map.isEmpty() ? null : map.values().iterator().next(); return result; }
@Override public void apply(Model input) { QueryExecutionFactory qef = new QueryExecutionFactoryModel(input); List<Resource> resources = ServiceUtils.fetchListResources(qef, concept); Map<Resource, Model> extra = lookupService.fetchMap(resources); for(Entry<Resource, Model> entry : extra.entrySet()) { Model m = entry.getValue(); input.add(m); } } }
@Override public void apply(DatasetGraph input) { QueryExecutionFactory qef = new QueryExecutionFactoryDatasetGraph(input, false); List<Node> nodes = ServiceUtils.fetchList(qef, concept); Map<Node, DatasetGraph> extra = lookupService.fetchMap(nodes); for(Entry<Node, DatasetGraph> entry : extra.entrySet()) { DatasetGraph m = entry.getValue(); Iterator<Quad> it = m.find(); while(it.hasNext()) { Quad quad = it.next(); input.add(quad); } } } }
public static void processHopQuery(HopQuery hopQuery, Collection<Node> sourceNodes, Map<Node, DatasetGraph> result, QueryExecutionFactory defaultQef, Multimap<Node, Node> back) { QueryExecutionFactory qef = hopQuery.getQef(); qef = (qef == null ? defaultQef : qef); MappedQuery<DatasetGraph> mappedQuery = hopQuery.getMappedQuery(); LookupService<Node, DatasetGraph> ls = LookupServiceUtils.createLookupService(qef, mappedQuery); ls = LookupServicePartition.create(ls, chunkSize); Map<Node, DatasetGraph> tmpMap = ls.fetchMap(sourceNodes); Map<Node, DatasetGraph> map; if(back != null) { map = new HashMap<Node, DatasetGraph>(); for(Entry<Node, DatasetGraph> entry : tmpMap.entrySet()) { Node tmpNode = entry.getKey(); DatasetGraph datasetGraph = entry.getValue(); Collection<Node> keys = back.get(tmpNode); for(Node key : keys) { map.put(key, datasetGraph); } } } else { map = tmpMap; } DatasetGraphUtils.mergeInPlace(result, map); }
Map<Node, List<Node>> map = ls.fetchMap(sourceNodes);
public static void main(String[] args) { QueryExecutionFactory sparqlService = new QueryExecutionFactoryHttp("http://dbpedia.org/sparql", "http://dbpedia.org"); Var var = Var.alloc("s"); Query query = QueryFactory.create("Prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> Prefix dbpo: <http://dbpedia.org/ontology/> Select ?s ?w { ?s a dbpo:Castle ; geo:geometry ?w }"); LookupService<Node, Table> ls = new LookupServiceSparqlQuery(sparqlService, query, var); ls = LookupServicePartition.create(ls, 1); ls = LookupServiceCacheMem.create(ls); List<Node> keys = new ArrayList<Node>(); keys.add(NodeFactory.createURI("http://dbpedia.org/resource/Marksburg")); keys.add(NodeFactory.createURI("http://dbpedia.org/resource/Rosenburg")); Map<Node, Table> map = ls.fetchMap(keys); System.out.println(map); } }
public static Map<Node, RDFNode> fetch(Prologue prologue, SparqlService sparqlService, ShapeExposable shapeSupplier, Collection<Node> nodes) { //RdfType type = typeFactory.forJavaType(clazz); ResourceShapeBuilder builder = new ResourceShapeBuilder(prologue); shapeSupplier.exposeShape(builder); ResourceShape shape = builder.getResourceShape(); // TODO The lookup service should deal with empty concepts //Graph result; Map<Node, RDFNode> result; if(!shape.isEmpty()) { QueryExecutionFactory qef = sparqlService.getQueryExecutionFactory(); LookupService<Node, Graph> ls = MapServiceResourceShape.createLookupService(qef, shape); Map<Node, Graph> map = ls.fetchMap(nodes); result = map.entrySet().stream() .collect(Collectors.toMap( Entry::getKey, e -> { Model m = ModelFactory.createModelForGraph(e.getValue()); RDFNode r = ModelUtils.convertGraphNodeToRDFNode(e.getKey(), m); return r; })); } else { result = Collections.emptyMap(); } return result; }
public static Map<Node, RDFNode> fetch(Prologue prologue, SparqlService sparqlService, ShapeExposable shapeSupplier, Collection<Node> nodes) { //RdfType type = typeFactory.forJavaType(clazz); ResourceShapeBuilder builder = new ResourceShapeBuilder(prologue); shapeSupplier.exposeShape(builder); ResourceShape shape = builder.getResourceShape(); // TODO The lookup service should deal with empty concepts //Graph result; Map<Node, RDFNode> result; if(!shape.isEmpty()) { QueryExecutionFactory qef = sparqlService.getQueryExecutionFactory(); LookupService<Node, Graph> ls = MapServiceResourceShape.createLookupService(qef, shape); Map<Node, Graph> map = ls.fetchMap(nodes); result = map.entrySet().stream() .collect(Collectors.toMap( Entry::getKey, e -> { Model m = ModelFactory.createModelForGraph(e.getValue()); RDFNode r = ModelUtils.convertGraphNodeToRDFNode(e.getKey(), m); return r; })); } else { result = Collections.emptyMap(); } return result; }
public static void execQueriesHop(QueryExecutionFactory qef, Collection<Node> nodes, Collection<MappedQuery<DatasetGraph>> mappedQueries, Map<Node, DatasetGraph> result) { for(MappedQuery<DatasetGraph> mappedQuery : mappedQueries) { MapService<Concept, Node, DatasetGraph> listService = MapServiceUtils.createListServiceMappedQuery(qef, mappedQuery, true); LookupService<Node, DatasetGraph> lookupService = LookupServiceListService.create(listService); lookupService = LookupServicePartition.create(lookupService, chunkSize); Map<Node,DatasetGraph> nodeToGraph = lookupService.fetchMap(nodes); DatasetGraphUtils.mergeInPlace(result, nodeToGraph); } }
Map<Node, DatasetGraph> map = ls.fetchMap(Arrays.<Node>asList(NodeFactory.createURI("http://fp7-pp.publicdata.eu/resource/project/231648"), NodeFactory.createURI("http://fp7-pp.publicdata.eu/resource/project/231549")));
Map<Node, Node> tmp = precedingChangeSetLs.fetchMap(subjects); Map<Node, Node> subjectToRecentChangeSet = new HashMap<Node, Node>(tmp);