用于查找当前管理器的SPARQL查询

时间:2016-05-14 16:50:06

标签: sparql

我目前有以下SPARQL查询:

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX p: <http://dbpedia.org/property/> 
PREFIX o: <http://dbpedia.org/ontology/>        
SELECT * WHERE{
    ?manager p:managerclubs  <http://dbpedia.org/resource/Manchester_City_F.C.>.
    OPTIONAL {?manager p:cityofbirth ?city}.
    OPTIONAL {?manager p:dateOfBirth ?dob}.
    OPTIONAL {?manager p:image ?image}.
}

这当前返回所有管理器,但我只想返回当前管理器,这是通过过滤器完成还是有另一种编写查询的方式。

我还有MCFC页面上的第二个问题:http://dbpedia.org/page/Manchester_City_F.C。 如何访问DBO数据类型?我假设只使用o:而不是p:然后调用数据类型的名称会起作用,但似乎并非如此。

编辑:

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX p: <http://dbpedia.org/property/> 
PREFIX o: <http://dbpedia.org/ontology/>        
SELECT * WHERE{
    ?ground p:ground  <http://dbpedia.org/resource/Manchester_City_F.C.>.
    OPTIONAL {?ground p:seatingCapacity ?capacity}.
    OPTIONAL {?ground p:image ?image}.
}

我不明白为什么上面的查询没有返回任何内容:http://dbpedia.org/sparql,页面地面是dbp类型,并且有一个图像和seatinCapacity用于地面。

2 个答案:

答案 0 :(得分:4)

在这种情况下,您不需要添加过滤器。您可以使用属性o:manager

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX p: <http://dbpedia.org/property/> 
PREFIX o: <http://dbpedia.org/ontology/>        
SELECT * WHERE{
    <http://dbpedia.org/resource/Manchester_City_F.C.> o:manager ?manager

    OPTIONAL {?manager p:cityofbirth ?city}.
    OPTIONAL {?manager p:dateOfBirth ?dob}.
    OPTIONAL {?manager foaf:depiction ?image}.
}

您也可以使用p:currentclub,但我不建议将其作为文字对象。

关于第二个问题,容量接缝是p:capacity的对象,但我没有看到p:image属性,只有foaf:depiction,我也在查询中使用以上为经理。

答案 1 :(得分:4)

正如你的第一个问题得到伊沃的正确回答,以下是你的第二个问题。如果您正在寻找曼彻斯特城F.C体育场,那么这个事实就像下面一样。

dbr:Manchester_City_F.C. p:ground dbr:City_of_Manchester_Stadium

您正在使用相反方向的关系。您的查询应该是

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX p: <http://dbpedia.org/property/> 
PREFIX o: <http://dbpedia.org/ontology/>        
SELECT * WHERE{
    <http://dbpedia.org/resource/Manchester_City_F.C.> p:ground ?ground .
    OPTIONAL {?ground p:seatingCapacity ?capacity}.
    OPTIONAL {?ground p:image ?image}.
}