SPARQL查询不起作用 - SNOMED-CT本体

时间:2018-04-17 10:57:48

标签: sparql ontology snomed-ct

我正在尝试执行一个非常简单的SPARQL查询,根据查询字符串中传递的名称,使用https://bioportal.bioontology.org/ontologies/SNOMEDCT/?p=classes&conceptid=root(在Java中)检索有关特定疾病的信息,我不明白为什么它不是工作。以下是相关代码:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT DISTINCT *
FROM <http://bioportal.bioontology.org/ontologies/SNOMEDCT>
FROM <http://bioportal.bioontology.org/ontologies/globals>
WHERE
{
    ?x rdfs:label ?label .
    FILTER (CONTAINS ( UCASE(str(?label)), "MELANOMA") )
}

1 个答案:

答案 0 :(得分:2)

BioPortal上SNOMED-CT中唯一出现的rdfs:labelsnomed-term: rdfs:label "SNOMEDCT"。 BioPortal uses skos:prefLabelrdfs:label代替PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX snomed-term: <http://purl.bioontology.org/ontology/SNOMEDCT/> SELECT DISTINCT * FROM <http://bioportal.bioontology.org/ontologies/SNOMEDCT> FROM <http://bioportal.bioontology.org/ontologies/globals> WHERE { ?x skos:prefLabel ?label . FILTER (CONTAINS ( UCASE(str(?label)), "MELANOMA") ) } )。

尝试此查询:

?x rdfs:subClassOf+ snomed-term:64572001

应该有10个结果。

如果您需要将结果限制为疾病,可能您需要在查询中添加ee.addListener(function(){ return new Promise((callback,failed)=> { this.triggerAnimation(callback); }) }); 。但不幸的是,似乎BioPortal SPARQL端点不支持SPARQL 1.1属性路径。