Code Monkey home page Code Monkey logo

federatedquerykg's Introduction

Hackathon on Querying Federations of Knowledge Graphs

an event of the COST Action on Distributed Knowledge Graphs (DKG)

Event Time: 25th-27th April 2023
Location: KORDON OTEL ÇANKAYA, Izmir, Turkey
(Address: Gazi Osman Pasa Bulvarı No:13 Çankaya/Konak/ İZMİR)
Sponsor: Thanks to COST and, in particular, the DKG COST Action for sponsoring this workshop.
This repository is used to post event information, to share use case material, data description and access, query engine information and configuration files, code, and to document the progress and outcome of the event.

Workshop Description

Federated querying, an essential technology for the effective and scalable implementation of Semantic Web technologies, aims to retrieve and integrate data from remote Knowledge Graphs. However, due to the inherent dynamic nature of knowledge graphs, heterogeneity in terms of ontologies and vocabularies used datasets, and the lack of FAIR metadata, federated querying over multiple knowledge graphs remains a challenging task. Therefore, we would like to host a hackathon event to 1) identify challenges regarding writing and executing federated queries, 2) collect practical use cases of federating query across multiple dataset, 3) bring federated query tools to work in the use cases.

This hackathon will bring together use case providers and providers of federation tools with the goal of defining the "challenges" and use cases of federation engines. Before the hackathon event, three use case providers will prepare the description of the problems and challenges, ensure the datasets are findable and accessible during event, and prepare potential queries that will be used in the hackathon event. The tool providers will test their federation engines or virtual KG integration systems, and provide clear documentation in order to address the challenges brought by the use cases.

Workshop materials are shared in this Google Folder

Tool Providers (Presentation slides)

Use cases

Agenda

The agenda is available now in this Github repo - agenda.md. We encourage you to fill in the form about your dietary restriction and your willingness to have dinner and social event together.

Registration

The participants have been invited by the organizers. Participants whose participation is funded by the DKG COST Action will receive an official invitation email from the Action and will need to accept that invitation by logging in to the COST portal. To this end, they need to create an account at the portal, unless they already have one (which should be the case for all members of working groups of the Action).

Practical information

The participants are encouraged to book the flights and accommodation by themselves as soon as possible. Note that you may also need a visa. Please find the information about visas, transportation, accommodation and meals, and reimbursement below.

Visa

You may need a Visa or an e-Visa for entering Turkey. The situation may be different based on your nationality and residence permit. Therefore, we strongly suggest you check the links below and apply for the Visa or e-Visa on time.

If you need an invitation letter in your visa application process, our local organizers from Turkey agreed to write an official signed invitation letter for people in need of a visa or e-visa. In this case, please get in touch with the event organizers.

Transportation

Flights

You can fly to Izmir Adnan Menderes Airport. You can check the arrival information from Izmir Airport Website to find the reasonal and economical flights that are leaving from an airport close to your city. You can also use the flightconnections.com Website to find airports that have direct connections to Izmir.

Since we are planning to start the event in the morning of April 25, it is recommended to arrive the day before.

For participants funded by the COST Action, the allowance for travel expenses is limited to 400€ per person.

Transportation in Izmir

The visitors arriving from Izmir Adnan Menderes Airport can travel to the event hotel by using a few transportation options:

  1. Access by Public Buses: Use bus 202, which departs from the airport, to get there. At the bus, you can purchase the tickets. At the stop labeled “İzmir Mesleki ve Teknik Anadolu Lisesi” you must get off the bus. They will get to the hotel after a three to four minute walk. Bus timetable is available.
  2. Access by HAVAŞ Buses: To go to the area where the hotel is situated in Çankaya, you can take private buses named “HAVAŞ” that depart from Izmir Adnan Menderes airport.
  3. Access by Metro: From the airport, you can take trains between 05:15 and 23:59. You need to buy İzmirKart at the airport. You must board an Izban train headed in the direction of Aliağa or Menemen and get off at the “HalkaPınar” stop. From HalkaPınar station, you need to switch to Metro in the direction of Fahrettin Altay and get off at the “Çankaya” stop. After a 5- to 6-minute walk, you can get to the hotel.

Accommodation

For participants funded by the COST Action, the expenses for accommodation are included in the daily allowance which is a maximum of 140€ per person per day. Please note that the daily allowance includes your hotel stays and meals.

The event venue (KORDON hotel) is fully booked now, so we advise the participants to look for other hotels in Alsancak as well as the accommodations in Karsiyaka and Bornova that are close to tram, metro and ferry stations. For example, here are some possible hotel options: Gran Via Hotels Alsancak, Ontur Hotel, or Tanik Hotel. We do not have agreements or official contacts with these hotels, but participants can book through websites such as Booking.com or Hotels.com.

You can book the hotel via Booking.com, Hotels.com, Air BNB, and other options for alternative accommodation.

Currency

While most places accept debit and credit cards, we suggest having some cash in Turkish Lira with you in case you need it.

Reimbursement

It is very important to sign the attendance sheet every single day when you are in the workshop. This is required for us to get the funding from the COST Action and, for participants reimbursed by that funding, to get their reimbursement.

For participants funded by the COST Action, after the event, you will need to fill a claim form in the COST portal. The claim form will be available after you accept the invitation to this workshop (see above). You will need to fill in your arrival and departure time and upload travel tickets. In contrast to the travel allowance, for claiming the daily allowance (which is also meant to cover your accommodation, in addition to meals) you do not need to provide any proof (such as hotel invoice or receipts for meals).

Please read COST Action Travel Reimbursement Rules (from 2022) about what can or cannot be reimbursed by our funder: https://www.cost.eu/uploads/2022/09/Travel-Reimbursement-Rules_March_2022.pdf

Organizers

Participants

  • Sijin Cheng (Linköping University, Sweden)
  • Peter Haase (metaphacts, Germany)
  • Andreas Schwarte (metaphacts, Germany)
  • Antonis Troumpoukis (National Center for Scientific Research "Demokrito", Greece)
  • Muhammad Saleem (University of Leipzig, Germany)
  • Katja Hose (Aalborg University, Denmark)
  • Christian Aebeloe (Aalborg University, Denmark)
  • Ruben Taelman (Ghent University, Belgium)
  • Bryan-Elliott Tam (Ghent University, Belgium)
  • Jonni Hanski (Ghent University, Belgium)
  • Hala Skaf (Nantes University, France)
  • Minh-Hoang Dang (Nantes University, France)
  • Maria-Esther Vidal (TIB Leibniz Information Center for Science and Technology, Germany)
  • Philipp D. Rohde (TIB Leibniz Information Center for Science and Technology, Germany)
  • Michel Dumontier (Maastricht University, The Netherlands)
  • Amr Azzam (Vienna University of Economics and Business, Austria)
  • María del Mar Roldán (Universidad de Málaga, Spain)
  • Manuel Paneque (Universidad de Málaga, Spain)

federatedquerykg's People

Contributors

sunchang0124 avatar hartig avatar rcelebi avatar vemonet avatar fenixdreamer avatar egonw avatar

Stargazers

Dylan Lin avatar sijin avatar Andras Micsik avatar  avatar Hazal Türkmen avatar Fatih Sen avatar Minh-Hoang DANG avatar XD avatar Pieter Colpaert avatar  avatar

Watchers

 avatar  avatar  avatar Philipp D. Rohde avatar Pedro V avatar Kody Moodley avatar  avatar sijin avatar  avatar

federatedquerykg's Issues

HeFQUIN bug with BIND in between SERVICE clauses

Query:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX wp:      <http://vocabularies.wikipathways.org/wp#>
PREFIX dc:      <http://purl.org/dc/elements/1.1/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>
PREFIX bl: <https://w3id.org/biolink/vocab/>
PREFIX up: <http://purl.uniprot.org/core/>

SELECT * WHERE {

  SERVICE <http://kg-hub-rdf.berkeleybop.io/blazegraph/sparql> {
    ?gene bl:category bl:Gene ;
          rdfs:label ?geneLabel .
    FILTER ( ?geneLabel = "AP2B1" )
  }

  BIND(uri(replace(str(?gene), "http://identifiers.org/", "https://identifiers.org/")) as ?geneHttps)

  SERVICE <https://sparql.wikipathways.org/sparql> {    
    ?geneHttps dct:isPartOf ?pathway .
    ?pathway dc:title ?pathwayLabel .
  }

}

Federation:

PREFIX rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd:    <http://www.w3.org/2001/XMLSchema#>
PREFIX fd:     <http://www.example.org/se/liu/ida/hefquin/fd#>
PREFIX ex:     <http://example.org/>

ex:KGHub
      a            fd:FederationMember ;
      fd:interface [ a                  fd:SPARQLEndpointInterface ;
                     fd:endpointAddress <http://kg-hub-rdf.berkeleybop.io/blazegraph/sparql> ] .

ex:WikiPathways
      a            fd:FederationMember ;
      fd:interface [ a                  fd:SPARQLEndpointInterface ;
                     fd:endpointAddress <https://sparql.wikipathways.org/sparql> ] .

Output of the HeFQUIN CLI tool:

null
java.lang.UnsupportedOperationException
        at se.liu.ida.hefquin.jenaintegration.sparql.engine.main.OpExecutorHeFQUIN$MainQueryIterator.nextStage(OpExecutorHeFQUIN.java:220)
        at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:100)
        at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:60)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:64)
        at org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:55)
        at org.apache.jena.sparql.resultset.ResultSetMem.<init>(ResultSetMem.java:89)
        at org.apache.jena.query.ResultSetFactory.makeRewindable(ResultSetFactory.java:311)
        at org.apache.jena.query.ResultSet.rewindable(ResultSet.java:83)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output$(ResultSetWriterText.java:132)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output(ResultSetWriterText.java:120)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output(ResultSetWriterText.java:116)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.write(ResultSetWriterText.java:59)
        at org.apache.jena.riot.resultset.rw.ResultsWriter.write(ResultsWriter.java:156)
        at org.apache.jena.riot.resultset.rw.ResultsWriter.write(ResultsWriter.java:126)
        at org.apache.jena.sparql.util.QueryExecUtils.outputResultSet(QueryExecUtils.java:133)
        at org.apache.jena.sparql.util.QueryExecUtils.doSelectQuery(QueryExecUtils.java:150)
        at org.apache.jena.sparql.util.QueryExecUtils.executeQuery(QueryExecUtils.java:81)
        at se.liu.ida.hefquin.engine.HeFQUINEngineBuilder$MyEngine.executeQuery(HeFQUINEngineBuilder.java:169)
        at se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel.exec(RunQueryWithoutSrcSel.java:105)
        at org.apache.jena.cmd.CmdMain.mainMethod(CmdMain.java:92)
        at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:58)
        at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:45)
        at se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel.main(RunQueryWithoutSrcSel.java:49)

error in filter on merging results

micheldumontier@FSELAP0508:~/code/external/HeFQUIN$ java -cp target/HeFQUIN-0.0.1-SNAPSHOT.jar se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel --federationDescription=ExampleFederation.ttl --query=bio2rdf-drug-model-phenotypes.rq
Getting the variables from arbitrary SPARQL patterns is an open TODO (type of Jena Op in the current case: org.apache.jena.sparql.algebra.op.OpFilter).
java.lang.UnsupportedOperationException: Getting the variables from arbitrary SPARQL patterns is an open TODO (type of Jena Op in the current case: org.apache.jena.sparql.algebra.op.OpFilter).
        at se.liu.ida.hefquin.engine.query.impl.QueryPatternUtils.getVariablesInPattern(QueryPatternUtils.java:355)
        at se.liu.ida.hefquin.engine.query.impl.QueryPatternUtils.getVariablesInPattern(QueryPatternUtils.java:304)
        at se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpBindJoinSPARQL.<init>(BaseForExecOpBindJoinSPARQL.java:41)
        at se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.ExecOpBindJoinSPARQLwithFILTER.<init>(ExecOpBindJoinSPARQLwithFILTER.java:49)
        at se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpBindJoinWithFILTER.createExecOp(PhysicalOpBindJoinWithFILTER.java:110)
        at se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpBindJoinWithFILTER.createExecOp(PhysicalOpBindJoinWithFILTER.java:102)
        at se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpBindJoinWithFILTER.createExecOp(PhysicalOpBindJoinWithFILTER.java:1)
        at se.liu.ida.hefquin.engine.queryproc.impl.compiler.TaskBasedQueryPlanCompilerBase$Worker._createTasks(TaskBasedQueryPlanCompilerBase.java:71)
        at se.liu.ida.hefquin.engine.queryproc.impl.compiler.PushBasedQueryPlanCompilerImpl$Worker.createTasks(PushBasedQueryPlanCompilerImpl.java:100)
        at se.liu.ida.hefquin.engine.queryproc.impl.compiler.TaskBasedQueryPlanCompilerBase.createTasks(TaskBasedQueryPlanCompilerBase.java:39)
        at se.liu.ida.hefquin.engine.queryproc.impl.compiler.PushBasedQueryPlanCompilerImpl.createTasks(PushBasedQueryPlanCompilerImpl.java:63)
        at se.liu.ida.hefquin.engine.queryproc.impl.compiler.TaskBasedQueryPlanCompilerBase.compile(TaskBasedQueryPlanCompilerBase.java:31)
        at se.liu.ida.hefquin.engine.queryproc.impl.QueryProcessorImpl.processQuery(QueryProcessorImpl.java:64)
        at se.liu.ida.hefquin.jenaintegration.sparql.engine.main.OpExecutorHeFQUIN$MainQueryIterator.nextStage(OpExecutorHeFQUIN.java:227)
        at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:100)
        at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:60)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:64)
        at org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:55)
        at org.apache.jena.sparql.resultset.ResultSetMem.<init>(ResultSetMem.java:89)
        at org.apache.jena.query.ResultSetFactory.makeRewindable(ResultSetFactory.java:311)
        at org.apache.jena.query.ResultSet.rewindable(ResultSet.java:83)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output$(ResultSetWriterText.java:132)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output(ResultSetWriterText.java:120)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output(ResultSetWriterText.java:116)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.write(ResultSetWriterText.java:59)
        at org.apache.jena.riot.resultset.rw.ResultsWriter.write(ResultsWriter.java:156)
        at org.apache.jena.riot.resultset.rw.ResultsWriter.write(ResultsWriter.java:126)
        at org.apache.jena.sparql.util.QueryExecUtils.outputResultSet(QueryExecUtils.java:133)
        at org.apache.jena.sparql.util.QueryExecUtils.doSelectQuery(QueryExecUtils.java:150)
        at org.apache.jena.sparql.util.QueryExecUtils.executeQuery(QueryExecUtils.java:81)
        at se.liu.ida.hefquin.engine.HeFQUINEngineBuilder$MyEngine.executeQuery(HeFQUINEngineBuilder.java:169)
        at se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel.exec(RunQueryWithoutSrcSel.java:105)
        at org.apache.jena.cmd.CmdMain.mainMethod(CmdMain.java:92)
        at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:58)
        at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:45)
        at se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel.main(RunQueryWithoutSrcSel.java:49)
PREFIX mp: <http://purl.obolibrary.org/obo/MP_>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dct: <http://purl.org/dc/terms/>
SELECT *
{
    SERVICE <http://bio2rdf.org/sparql> {
     ?drug <http://bio2rdf.org/drugbank_vocabulary:target> ?target .
     FILTER(?drug = <http://bio2rdf.org/drugbank:DB00619>)
     ?target <http://bio2rdf.org/drugbank_vocabulary:x-hgnc> ?hgnc .
   }
  SERVICE <http://bio2rdf.org/sparql> {
    ?hgnc <http://bio2rdf.org/hgnc_vocabulary:x-mgi> ?marker .
   }    
  SERVICE <http://bio2rdf.org/sparql> {
    ?model <http://bio2rdf.org/mgi_vocabulary:marker> ?marker .
    ?model <http://bio2rdf.org/mgi_vocabulary:allele> ?all .
    ?all <http://bio2rdf.org/mgi_vocabulary:allele-attribute> ?allele_type .
    ?model <http://bio2rdf.org/mgi_vocabulary:phenotype> ?phenotypes .
    FILTER (str(?allele_type) = "Null/knockout") 
  }
PREFIX rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd:    <http://www.w3.org/2001/XMLSchema#>
PREFIX fd:     <http://www.example.org/se/liu/ida/hefquin/fd#>
PREFIX ex:     <http://example.org/>

ex:bio2rdfSPARQL
      a            fd:FederationMember ;
      fd:interface [ a                  fd:SPARQLEndpointInterface ;
                     fd:endpointAddress <http://bio2rdf.org/sparql> ] .

error in merging multiple endpoints for filter for HeFQUIN

micheldumontier@FSELAP0508:~/code/external/HeFQUIN$ java -cp target/HeFQUIN-0.0.1-SNAPSHOT.jar se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel --federationDescription=ExampleFederation.ttl --query=bio2rdf-drug-model-phenotypes.rq
class org.apache.jena.sparql.syntax.ElementGroup cannot be cast to class org.apache.jena.sparql.syntax.ElementPathBlock (org.apache.jena.sparql.syntax.ElementGroup and org.apache.jena.sparql.syntax.ElementPathBlock are in unnamed module of loader 'app')
java.lang.ClassCastException: class org.apache.jena.sparql.syntax.ElementGroup cannot be cast to class org.apache.jena.sparql.syntax.ElementPathBlock (org.apache.jena.sparql.syntax.ElementGroup and org.apache.jena.sparql.syntax.ElementPathBlock are in unnamed module of loader 'app')
        at se.liu.ida.hefquin.engine.query.impl.QueryPatternUtils.merge(QueryPatternUtils.java:1111)
        at se.liu.ida.hefquin.engine.query.impl.QueryPatternUtils.merge(QueryPatternUtils.java:862)
        at se.liu.ida.hefquin.engine.federation.access.utils.SPARQLRequestUtils.merge(SPARQLRequestUtils.java:20)
        at se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics.MergeRequests.mergeGraphPatternIntoSPARQLRequest(MergeRequests.java:388)
        at se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics.MergeRequests.mergeSPARQLRequestsViaJoin(MergeRequests.java:416)
        at se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics.MergeRequests.mergeSPARQLRequestsViaJoin(MergeRequests.java:437)
        at se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics.MergeRequests.apply(MergeRequests.java:310)
        at se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.LogicalOptimizerImpl.optimize(LogicalOptimizerImpl.java:47)
        at se.liu.ida.hefquin.engine.queryproc.impl.planning.QueryPlannerImpl.createPlan(QueryPlannerImpl.java:69)
        at se.liu.ida.hefquin.engine.queryproc.impl.QueryProcessorImpl.processQuery(QueryProcessorImpl.java:61)
        at se.liu.ida.hefquin.jenaintegration.sparql.engine.main.OpExecutorHeFQUIN$MainQueryIterator.nextStage(OpExecutorHeFQUIN.java:227)
        at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:100)
        at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:60)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:64)
        at org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:55)
        at org.apache.jena.sparql.resultset.ResultSetMem.<init>(ResultSetMem.java:89)
        at org.apache.jena.query.ResultSetFactory.makeRewindable(ResultSetFactory.java:311)
        at org.apache.jena.query.ResultSet.rewindable(ResultSet.java:83)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output$(ResultSetWriterText.java:132)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output(ResultSetWriterText.java:120)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output(ResultSetWriterText.java:116)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.write(ResultSetWriterText.java:59)
        at org.apache.jena.riot.resultset.rw.ResultsWriter.write(ResultsWriter.java:156)
        at org.apache.jena.riot.resultset.rw.ResultsWriter.write(ResultsWriter.java:126)
        at org.apache.jena.sparql.util.QueryExecUtils.outputResultSet(QueryExecUtils.java:133)
        at org.apache.jena.sparql.util.QueryExecUtils.doSelectQuery(QueryExecUtils.java:150)
        at org.apache.jena.sparql.util.QueryExecUtils.executeQuery(QueryExecUtils.java:81)
        at se.liu.ida.hefquin.engine.HeFQUINEngineBuilder$MyEngine.executeQuery(HeFQUINEngineBuilder.java:169)
        at se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel.exec(RunQueryWithoutSrcSel.java:105)
        at org.apache.jena.cmd.CmdMain.mainMethod(CmdMain.java:92)
        at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:58)
        at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:45)
        at se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel.main(RunQueryWithoutSrcSel.java:49)
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dct: <http://purl.org/dc/terms/>
SELECT * # distinct ?phenotype_label

{
    SERVICE <http://bio2rdf.org/sparql> {
     #?drug <http://bio2rdf.org/drugbank_vocabulary:target> ?target .
     <http://bio2rdf.org/drugbank:DB00619> <http://bio2rdf.org/drugbank_vocabulary:target> ?target .
     #FILTER(?drug = )
     ?target <http://bio2rdf.org/drugbank_vocabulary:x-hgnc> ?hgnc .
   }
  SERVICE <http://bio2rdf.org/sparql> {
    ?hgnc <http://bio2rdf.org/hgnc_vocabulary:x-mgi> ?marker .
   }    
  SERVICE <http://bio2rdf.org/sparql> {
    ?model <http://bio2rdf.org/mgi_vocabulary:marker> ?marker .
    ?model <http://bio2rdf.org/mgi_vocabulary:allele> ?all .
    ?all <http://bio2rdf.org/mgi_vocabulary:allele-attribute> ?allele_type .
    ?model <http://bio2rdf.org/mgi_vocabulary:phenotype> ?phenotypes .
    FILTER (str(?allele_type) = "Null/knockout") 
   }
PREFIX rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd:    <http://www.w3.org/2001/XMLSchema#>
PREFIX fd:     <http://www.example.org/se/liu/ida/hefquin/fd#>
PREFIX ex:     <http://example.org/>

ex:bio2rdfSPARQL
      a            fd:FederationMember ;
      fd:interface [ a                  fd:SPARQLEndpointInterface ;
                     fd:endpointAddress <http://bio2rdf.org/sparql> ] .

HeFQUIN issue with calling mapping service

Calling mapping service (i.e. https://bioregistry.io/sparql) returns empty result. Note that this custom SPARQL endpoint currently does not respond to POST requests. issue registered here: biopragmatics/bioregistry#802

micheldumontier@FSELAP0508:~/code/external/HeFQUIN$ java -cp target/HeFQUIN-0.0.1-SNAPSHOT.jar se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel --federationDescription=ExampleFederation.ttl --query=bioregistry-federation.rq --printLogicalPlan --printPhysicalPlan
> mj 
  > req[-53240192, 1714180207] ( { (filter (= ?geneLabel "AP2B1")
  (bgp
    (triple ?gene <https://w3id.org/biolink/vocab/category> <https://w3id.org/biolink/vocab/Gene>)
    (triple ?gene <http://www.w3.org/2000/01/rdf-schema#label> ?geneLabel)
  ))
 }, SPARQL endpoint at http://kg-hub-rdf.berkeleybop.io/blazegraph/sparql )
  > req[-513956468, -992590175] ( { (bgp (triple ?gene @owl:sameAs ?geneHttps)  ) }, SPARQL endpoint at https://bioregistry.io/sparql )

> FILTERBindJoin> bgpAdd[-513956468, -992590175] ( (bgp (triple ?gene @owl:sameAs ?geneHttps)  ), SPARQL endpoint at https://bioregistry.io/sparql )
  > req[-53240192, 1714180207] ( { (filter (= ?geneLabel "AP2B1")
  (bgp
    (triple ?gene <https://w3id.org/biolink/vocab/category> <https://w3id.org/biolink/vocab/Gene>)
    (triple ?gene <http://www.w3.org/2000/01/rdf-schema#label> ?geneLabel)
  ))
 }, SPARQL endpoint at http://kg-hub-rdf.berkeleybop.io/blazegraph/sparql )

--------------------------------
| gene | geneLabel | geneHttps |
================================
--------------------------------
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX wp:      <http://vocabularies.wikipathways.org/wp#>
PREFIX dc:      <http://purl.org/dc/elements/1.1/>
PREFIX dct: <http://purl.org/dc/terms/>
#! endpoint: https://sparql.wikipathways.org/sparql
PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>
PREFIX bl: <https://w3id.org/biolink/vocab/>
PREFIX up: <http://purl.uniprot.org/core/>
SELECT * #DISTINCT ?pathway ?pathwayLabel #?gene ?geneLabel 

{
    SERVICE <http://kg-hub-rdf.berkeleybop.io/blazegraph/sparql> {
		?gene bl:category bl:Gene ;
		rdfs:label ?geneLabel .
		#FILTER(?gene = <http://identifiers.org/ensembl/ENSG00000100030>)

        FILTER (?geneLabel = "AP2B1")
    } 
    SERVICE <https://bioregistry.io/sparql> {
    	?gene owl:sameAs ?geneHttps .
		#BIND(uri(replace(str(?gene), "http://identifiers.org/", "https://identifiers.org/")) as ?geneHttps)
	}
#	SERVICE <https://sparql.wikipathways.org/sparql> {
#		?geneHttps dct:isPartOf ?pathway .
#		?pathway dc:title ?pathwayLabel .
#	}
}
PREFIX rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd:    <http://www.w3.org/2001/XMLSchema#>
PREFIX fd:     <http://www.example.org/se/liu/ida/hefquin/fd#>
PREFIX ex:     <http://example.org/>

ex:bio2rdfSPARQL
      a fd:FederationMember ; fd:interface [ a fd:SPARQLEndpointInterface ; fd:endpointAddress <http://bio2rdf.org/sparql> ] .

ex:bioregistry
      a fd:FederationMember ; fd:interface [ a fd:SPARQLEndpointInterface ; fd:endpointAddress <https://bioregistry.io/sparql> ] .

ex:berkeleybop
      a fd:FederationMember ; fd:interface [ a fd:SPARQLEndpointInterface ; fd:endpointAddress <http://kg-hub-rdf.berkeleybop.io/blazegraph/sparql> ] .
      
ex:wikipathways
      a fd:FederationMember ; fd:interface [ a fd:SPARQLEndpointInterface ; fd:endpointAddress <https://sparql.wikipathways.org/sparql> ] .


error on property path in query

micheldumontier@FSELAP0508:~/code/external/HeFQUIN$ java -cp target/HeFQUIN-0.0.1-SNAPSHOT.jar se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel --federationDescription=ExampleFederation.ttl --query=bio2rdf-drug-model-phenotypes.rq
Getting the variables from arbitrary SPARQL patterns is an open TODO (type of Jena Op in the current case: org.apache.jena.sparql.algebra.op.OpSequence).
java.lang.UnsupportedOperationException: Getting the variables from arbitrary SPARQL patterns is an open TODO (type of Jena Op in the current case: org.apache.jena.sparql.algebra.op.OpSequence).
        at se.liu.ida.hefquin.engine.query.impl.QueryPatternUtils.getVariablesInPattern(QueryPatternUtils.java:355)
        at se.liu.ida.hefquin.engine.query.impl.QueryPatternUtils.getVariablesInPattern(QueryPatternUtils.java:304)
        at se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpBindJoinSPARQL.<init>(BaseForExecOpBindJoinSPARQL.java:41)
        at se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.ExecOpBindJoinSPARQLwithFILTER.<init>(ExecOpBindJoinSPARQLwithFILTER.java:49)
        at se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpBindJoinWithFILTER.createExecOp(PhysicalOpBindJoinWithFILTER.java:110)
        at se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpBindJoinWithFILTER.createExecOp(PhysicalOpBindJoinWithFILTER.java:102)
        at se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpBindJoinWithFILTER.createExecOp(PhysicalOpBindJoinWithFILTER.java:1)
        at se.liu.ida.hefquin.engine.queryproc.impl.compiler.TaskBasedQueryPlanCompilerBase$Worker._createTasks(TaskBasedQueryPlanCompilerBase.java:71)
        at se.liu.ida.hefquin.engine.queryproc.impl.compiler.PushBasedQueryPlanCompilerImpl$Worker.createTasks(PushBasedQueryPlanCompilerImpl.java:100)
        at se.liu.ida.hefquin.engine.queryproc.impl.compiler.TaskBasedQueryPlanCompilerBase.createTasks(TaskBasedQueryPlanCompilerBase.java:39)
        at se.liu.ida.hefquin.engine.queryproc.impl.compiler.PushBasedQueryPlanCompilerImpl.createTasks(PushBasedQueryPlanCompilerImpl.java:63)
        at se.liu.ida.hefquin.engine.queryproc.impl.compiler.TaskBasedQueryPlanCompilerBase.compile(TaskBasedQueryPlanCompilerBase.java:31)
        at se.liu.ida.hefquin.engine.queryproc.impl.QueryProcessorImpl.processQuery(QueryProcessorImpl.java:64)
        at se.liu.ida.hefquin.jenaintegration.sparql.engine.main.OpExecutorHeFQUIN$MainQueryIterator.nextStage(OpExecutorHeFQUIN.java:227)
        at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:100)
        at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:60)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
        at org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:64)
        at org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:55)
        at org.apache.jena.sparql.resultset.ResultSetMem.<init>(ResultSetMem.java:89)
        at org.apache.jena.query.ResultSetFactory.makeRewindable(ResultSetFactory.java:311)
        at org.apache.jena.query.ResultSet.rewindable(ResultSet.java:83)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output$(ResultSetWriterText.java:132)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output(ResultSetWriterText.java:120)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.output(ResultSetWriterText.java:116)
        at org.apache.jena.riot.resultset.rw.ResultSetWriterText.write(ResultSetWriterText.java:59)
        at org.apache.jena.riot.resultset.rw.ResultsWriter.write(ResultsWriter.java:156)
        at org.apache.jena.riot.resultset.rw.ResultsWriter.write(ResultsWriter.java:126)
        at org.apache.jena.sparql.util.QueryExecUtils.outputResultSet(QueryExecUtils.java:133)
        at org.apache.jena.sparql.util.QueryExecUtils.doSelectQuery(QueryExecUtils.java:150)
        at org.apache.jena.sparql.util.QueryExecUtils.executeQuery(QueryExecUtils.java:81)
        at se.liu.ida.hefquin.engine.HeFQUINEngineBuilder$MyEngine.executeQuery(HeFQUINEngineBuilder.java:169)
        at se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel.exec(RunQueryWithoutSrcSel.java:105)
        at org.apache.jena.cmd.CmdMain.mainMethod(CmdMain.java:92)
        at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:58)
        at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:45)
        at se.liu.ida.hefquin.cli.RunQueryWithoutSrcSel.main(RunQueryWithoutSrcSel.java:49)
PREFIX mp: <http://purl.obolibrary.org/obo/MP_>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dct: <http://purl.org/dc/terms/>
SELECT *
{
    SERVICE <http://bio2rdf.org/sparql> {
     ?drug <http://bio2rdf.org/drugbank_vocabulary:target> ?target .
     FILTER(?drug = <http://bio2rdf.org/drugbank:DB00619>)
     ?target <http://bio2rdf.org/drugbank_vocabulary:x-hgnc> ?hgnc .
   }
  SERVICE <http://bio2rdf.org/sparql> {
    ?hgnc <http://bio2rdf.org/hgnc_vocabulary:x-mgi> ?marker .
   }    
  SERVICE <http://bio2rdf.org/sparql> {
    ?model <http://bio2rdf.org/mgi_vocabulary:marker> ?marker .
    ?model <http://bio2rdf.org/mgi_vocabulary:allele> ?all .
    ?all <http://bio2rdf.org/mgi_vocabulary:allele-attribute> ?allele_type .
    ?model <http://bio2rdf.org/mgi_vocabulary:phenotype> ?phenotypes .
    #FILTER (str(?allele_type) = "Null/knockout") 
  }

    SERVICE <http://bio2rdf.org/sparql> {
    ?mp owl:sameAs ?phenotypes . 
    ?mp rdfs:label ?phenotype_label .
    ?mp rdfs:subClassOf* mp:0005385
   }
 }
PREFIX rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd:    <http://www.w3.org/2001/XMLSchema#>
PREFIX fd:     <http://www.example.org/se/liu/ida/hefquin/fd#>
PREFIX ex:     <http://example.org/>

ex:bio2rdfSPARQL
      a            fd:FederationMember ;
      fd:interface [ a                  fd:SPARQLEndpointInterface ;
                     fd:endpointAddress <http://bio2rdf.org/sparql> ] .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.