SPARQL 查询不工作 - SNOMED-CT ontology
SPARQL query not working - SNOMED-CT ontology
我正在尝试执行一个非常简单的 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") )
}
在 BioPortal 上的 SNOMED-CT 中唯一出现 rdfs:label
的是 snomed-term: rdfs:label "SNOMEDCT"
。 BioPortal uses skos:prefLabel
(which is a subproperty of rdfs: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") )
}
应该有 10 个结果。
如果您需要将结果限制为 疾病 ,您可能需要将 ?x rdfs:subClassOf+ snomed-term:64572001
添加到查询中。但不幸的是,BioPortal SPARQL 端点似乎不支持 SPARQL 1.1 属性 路径。
我正在尝试执行一个非常简单的 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") )
}
在 BioPortal 上的 SNOMED-CT 中唯一出现 rdfs:label
的是 snomed-term: rdfs:label "SNOMEDCT"
。 BioPortal uses skos:prefLabel
(which is a subproperty of rdfs: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") )
}
应该有 10 个结果。
如果您需要将结果限制为 疾病 ,您可能需要将 ?x rdfs:subClassOf+ snomed-term:64572001
添加到查询中。但不幸的是,BioPortal SPARQL 端点似乎不支持 SPARQL 1.1 属性 路径。