ruby-rdf / sparql

Ruby SPARQL library
http://rubygems.org/gems/sparql
The Unlicense
89 stars 14 forks source link

SELECT and FROM position #39

Closed manabuishii closed 2 years ago

manabuishii commented 2 years ago

Hello , to_sparql is really awesome 👍 For out project wanted it.

I use rdf/sparql 3.2.0.

I parse following SPARQL Query

PREFIX obo: <http://purl.obolibrary.org/obo/>

SELECT DISTINCT ?enst
FROM <http://rdf.integbio.jp/dataset/togosite/ensembl>
WHERE {

  ?enst obo:SO_transcribed_from ?ensg .
}
LIMIT 10

and I use to_sparql()

The problem is FROM is appear before SELECT .

I run follwing code

require "sparql"

# SPARQL
endpoint = "https://integbio.jp/togosite/sparql"
rq = <<'SPARQL'.chop
PREFIX obo: <http://purl.obolibrary.org/obo/>

SELECT DISTINCT ?enst
FROM <http://rdf.integbio.jp/dataset/togosite/ensembl>
WHERE {

  ?enst obo:SO_transcribed_from ?ensg .
}
LIMIT 10
SPARQL

puts "original SPARQL:\n#{rq}"

# # convert
parsedobject = SPARQL.parse(rq)

rqfromparsedobject = parsedobject.to_sparql()

puts "\n\nSPARQL converted from parsedobject:\n#{rqfromparsedobject}"

Output is here:

original SPARQL:
PREFIX obo: <http://purl.obolibrary.org/obo/>

SELECT DISTINCT ?enst
FROM <http://rdf.integbio.jp/dataset/togosite/ensembl>
WHERE {

  ?enst obo:SO_transcribed_from ?ensg .
}
LIMIT 10

SPARQL converted from parsedobject:
PREFIX obo: <http://purl.obolibrary.org/obo/>
FROM <http://rdf.integbio.jp/dataset/togosite/ensembl>
SELECT DISTINCT ?enst
WHERE {
?enst obo:SO_transcribed_from ?ensg .
}
LIMIT 10