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

SPARQL-获取直接分配给个人的所有数据属性,以及通过对象属性间接分配给其他个人的所有数据属性,sparql,rdf,owl,ontology,geosparql,Sparql,Rdf,Owl,Ontology,Geosparql,到目前为止,我的代码是: 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

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

    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) 

}
前缀:
选择?属性?值
在哪里{
?poi:POIhasID 787。
?poi?属性?值;
筛选器(?属性不在(rdf:类型))
#过滤器isLiteral(?值)
}
我想做的是获取ID为787的某个个体,例如,给我他所有的直接数据类型属性,排除rdf:type答案,排除任何非文字值,并给我其他个体上的所有间接数据类型属性,这些个体通过对象属性与第一个个体连接。特别是,我使用geosparql,希望获得该地点的数据属性以及指定给几何体的点个体子类的GPS坐标,该点个体子类与具有geo:hasgometry对象属性的地点个体相连接。
理想的情况是发生一些递归的事情,例如,?值(它不是文字)显示在与?属性相同的列中,而?值2(例如)显示在与值相同的列中,我记住了导出到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)

    }
}
前缀:
前缀rdf:
选择?属性?值?值2
在哪里{
{?poi:POIhasID 787。
?poi?属性?值
筛选器(?属性不在(rdf:类型))
过滤器isLiteral(?值)
}联合{
?poi:POIhasID 787。
?poi?prop2?值2。
?值2?属性?值
过滤器isLiteral(?值)
}
}