繁体   English   中英

SPARQL-获取直接分配给个人的所有数据属性,以及通过对象属性间接分配给其他个人的所有数据属性

[英]SPARQL - Get all Data Properties directly assigned to an individual and all indirectly assigned to other individuals via an object property

到目前为止,我的代码是这样的:

    PREFIX : <http://www.semanticweb.org/evangelos/ontologies/2019/2/untitled-ontology-2#>

SELECT ?property ?value
WHERE{
    ?poi :POIhasID 7878787.
    ?poi ?property ?value;
    filter (?property not in (rdf:type))
    #filter isLiteral(?value) 

}

我想做的是得到一个ID为7878787的个人,例如,给我他所有的直接数据类型属性,排除rdf:type答案,排除任何非文字值,并给我提供所有间接数据类型属性通过对象属性与第一个连接的另一个人。 特别是,我使用geosparql,并且希望获得“地点”的数据属性以及分配给“几何”的“点个体”子类的GPS坐标,该子类与具有“ geo:hasGeometry”对象属性的“地点”个体相关联。 理想的情况将是递归发生,例如,?value与字面值不在同一列中,而?value2例如与value在同一列中,我谨记要导出到JSON下一步

似乎是这样:

PREFIX : <http://www.semanticweb.org/evangelos/ontologies/2019/2/untitled-ontology-2#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?property ?value ?value2
WHERE{
    {?poi :POIhasID 7878787.
    ?poi ?property ?value
    filter (?property not in (rdf:type))
    filter isLiteral(?value)
    } UNION {
    ?poi :POIhasID 7878787.
    ?poi ?prop2 ?value2.
    ?value2 ?property ?value
    filter isLiteral(?value)

    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM