如何筛选查询SPARQL属性" type"

时间:2017-04-18 03:18:34

标签: sparql

我有一个数据源文件,其中一个属性是实际的类实例:

<clinic:Radiology rdf:ID="rad1234">
        <clinic:diagnosis>Stage 4</clinic:diagnosis>
        <clinic:ProvidedBy rdf:resource="#MountSinai"/>
        <clinic:ReceivedBy rdf:resource="#JohnSmith"/>
        <clinic:patientId>7890123</clinic:patientId>
        <clinic:radiologyDate>01-01-2017</clinic:radiologyDate>
  </clinic:Radiology>

所以clinic:ProvidedBy指向这个:

<clinic:Radiologists rdf:ID="MountSinai">
        <clinic:name>Mount Sinai</clinic:name>
        <clinic:npi>1234567</clinic:npi>
        <clinic:specialty>Oncology</clinic:specialty>
 </clinic:Radiologists>

如何使用属性clinic:providedBy(类型为clinic:Radiologists)进行查询?无论我尝试过什么都不会带来结果。

1 个答案:

答案 0 :(得分:0)

目前还不清楚你想要具备什么,所以我的答案将返回“MountSinai提供的所有放射学资源”

PREFIX clinic: <THE NAMESPACE OF_THE_CLINIC_PREFIX>
PREFIX : <THE_BASE_NAMESPACE_OF_YOUR_RDF_DOCUMENT>

SELECT DISTINCT ?s WHERE {
  ?s clinic:ProvidedBy :MountSinai
}

但是,我真的建议从RDF和SPARQL教程开始,因为您的评论形成了您的查询

SELECT * WHERE { ?x rdf:resource "#MountSinai" }

缺少基本的SPARQL基础知识。为了编写匹配的SPARQL查询,最好还是查看Turtle中的数据。 N-Triples格式都更接近SPARQL语法。