Virtuoso-tips

提供:TogoWiki

移動: 案内, 検索

virtuoso tips まとめ

目次

Tips

VALUES

バグと思われる

VALUES

  • RDFを virtuoso に import 直後の状態で、VALUES で変数代入の挙動がおかしくなる現象(代入されない)(SPARQLthon66 より)
    • ver. 7.1
    • 解決法:virtuoso 再起動で正常になる
    • 関連:VALUESのバグ

OPTIONAL + DISTINCT

  • query: OPTIONAL で入れた変数を DISTINCT したとき、重複が取り除かれない(SPARQLthon66 より)
    • ver. 7.1
    • 解決法:もう一度 SELECT で囲む => query
## endpoint http://tools.jpostdb.org/proxy/sparql
DEFINE sql:select-option "order"
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX jpo: <http://rdf.jpostdb.org/ontology/jpost.owl#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX faldo: <http://biohackathon.org/resource/faldo#>
PREFIX : <http://rdf.jpostdb.org/entry/>
SELECT DISTINCT ?modification ?position
WHERE {
  :DS201_1 jpo:hasProtein/jpo:hasPeptideEvidence/jpo:hasPeptide/jpo:hasPsm ?psm .
  ?psm dct:identifier ?psm_id .
  ?psm jpo:hasModification ?mod_blank .
  ?mod_blank a ?mod .
  OPTIONAL { ?mod_blank faldo:location/faldo:position ?position . }
  FILTER (?mod != jpo:Modification)
  ?mod rdfs:label ?modification .
}
ORDER BY ?modification 
OFFSET 0
LIMIT 100

## endpoint http://tools.jpostdb.org/proxy/sparql
DEFINE sql:select-option "order"
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX jpo: <http://rdf.jpostdb.org/ontology/jpost.owl#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX faldo: <http://biohackathon.org/resource/faldo#>
PREFIX : <http://rdf.jpostdb.org/entry/>
SELECT DISTINCT ?modification ?position
WHERE {
  {
    SELECT DISTINCT ?modification ?position
    WHERE {
      :DS201_1 jpo:hasProtein/jpo:hasPeptideEvidence/jpo:hasPeptide/jpo:hasPsm ?psm .
      ?psm dct:identifier ?psm_id .
      ?psm jpo:hasModification ?mod_blank .
      ?mod_blank a ?mod .
      OPTIONAL { ?mod_blank faldo:location/faldo:position ?position . }
      FILTER (?mod != jpo:Modification)
      ?mod rdfs:label ?modification .
    }
  }
}
ORDER BY ?modification 
OFFSET 0
LIMIT 100

DEFINE sql:select-option "order"

  • query: DEFINE sql:select-option "order" 行の有無で結果がかわる
    • ver. 7.1
    • DEFILE 行ある方が正しい
    • プロパティ・パス(rdfs:subClassOf アスタリスク)が悪さしてるもよう
## endpoint https://tools.jpostdb.org/sparql
DEFINE sql:select-option "order"
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX jpo: <http://rdf.jpostdb.org/ontology/jpost.owl#>
PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX ncit: <http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#>
PREFIX sio: <http://semanticscience.org/resource/>
PREFIX : <http://rdf.jpostdb.org/entry/>
SELECT DISTINCT ?dataset ?project
WHERE {
  VALUES ?organ { ncit:C54189 }
  VALUES ?disease { obo:DOID_162 }

  ?dataset a jpo:Dataset ;
           dct:identifier ?dataset_id ;
           sio:SIO_000216 [ a jpo:NumOfLeadingProteins ;
                          sio:SIO_000300 ?protein_count ] ;
           sio:SIO_000216 [ a jpo:NumOfSpectra ;
                          sio:SIO_000300 ?spectrum_count ] . 
  ?project jpo:hasDataset ?dataset ;
           dct:identifier ?project_id ;
           dct:title ?project_title ;
           dct:date ?project_date . 
  ?dataset jpo:hasProfile/jpo:hasSample/jpo:organ ?organ .
  ?dataset jpo:hasProfile/jpo:hasSample/(jpo:disease|jpo:diseaseClass)/rdfs:subClassOf* ?disease .

}
ORDER BY ASC(?project_id) ASC(?dataset_id) 
個人用ツール