dbcls/rdf-config

同じpredicateで違うタイプのオブジェクトがぶら下がるタイプのクエリが生成できない

inutano opened this issue · 0 comments

こういうモデルがあり

- BioSample idorg_biosample:SAMD00222921:
  - a: biosample_ont:BioSampleRecord
  - rdfs:seeAlso+:
    - sra_study: SRAStudy
  - rdfs:seeAlso+:
    - sra_experiment: SRAExperiment

- SRAStudy idorg_sra:DRP006105:
  - a: dra_ont:Study

- SRAExperiment idorg_sra:DRX216152:
  - a: dra_ont:Experiment

こういうSPARQLを生成してほしい

SELECT ?BioSample ?SRAStudy ?SRAExperiment
WHERE {
    ?BioSample a biosample_ont:BioSampleRecord ;
        rdfs:seeAlso ?SRAStudy ;
        rdfs:seeAlso ?SRAExperiment .
    ?SRAStudy a dra_ont:Study .
    ?SRAExperiment a dra_ont:Experiment .
}

なのでこういうconfigを書いて

get_object_relation:
  description: Get related SRA data objects
  variables: [BioSample, sra_study, sra_experiment]

docker run --rm -it -v $(pwd):/config dbcls/rdf-config:snapshot-532ad10 rdf-config --config /config --sparql get_object_relation してみたところ

SELECT ?BioSample ?SRAStudy ?SRAExperiment
WHERE {
    ?BioSample a biosample_ont:BioSampleRecord ;
        rdfs:seeAlso ?SRAStudy ;
        rdfs:seeAlso ?SRAExperiment .
}

こうなってしまってタイプが指定されないので意図した結果になりません。