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

用于查找当前管理器的SPARQL查询,sparql,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{

我目前有以下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}.
}
前缀geo:
前缀xsd:
前缀p:
前缀o:
选择*WHERE{
经理p:经理UBS。
可选{管理器p:cityofbirth?city}。
可选{管理器p:dateOfBirth?dob}。
可选{管理器p:image?image}。
}
这当前返回所有的管理器,但我只想返回当前的管理器,这是通过过滤器完成的,还是有另一种编写查询的方法

我还有第二个问题,在MCFC页面上:。 如何访问DBO数据类型?我假设简单地使用o:而不是p:然后调用数据类型的名称就可以了,但事实似乎并非如此

编辑:

前缀geo:
前缀xsd:
前缀p:
前缀o:
选择*WHERE{
?接地p:接地。
可选{地面p:座位容量?容量}。
可选{?地面p:image?image}。
}

我不明白为什么上面的查询在中没有返回任何内容,因为页面背景类型为dbp,并且背景有图像和SeatCapacity。

在这种情况下,您不需要添加过滤器。您只需使用属性
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}.
}
前缀geo:
前缀xsd:
前缀p:
前缀o:
选择*WHERE{
经理?经理
可选{管理器p:cityofbirth?city}。
可选{管理器p:dateOfBirth?dob}。
可选{管理器foaf:description?image}。
}
您也可以使用
p:currentclub
,但我不推荐使用,因为它的对象是文本


关于第二个问题,capacity是
p:capacity
的对象,但我没有看到
p:image
属性,只有
foaf:description
,我在上面的查询中也为管理者使用了该属性。

在这种情况下不需要添加过滤器。您只需使用属性
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}.
}
前缀geo:
前缀xsd:
前缀p:
前缀o:
选择*WHERE{
经理?经理
可选{管理器p:cityofbirth?city}。
可选{管理器p:dateOfBirth?dob}。
可选{管理器foaf:description?image}。
}
您也可以使用
p:currentclub
,但我不推荐使用,因为它的对象是文本


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

由于Ivo正式回答了您的第一个问题,下面是如何改进您的第二个问题。如果你正在寻找曼城足球俱乐部的体育场,这一事实被描述为贝娄

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}.
}
前缀geo:
前缀xsd:
前缀p:
前缀o:
选择*WHERE{
地面?地面。
可选{地面p:座位容量?容量}。
可选{?地面p:image?image}。
}

由于您的第一个问题已由Ivo及时回答,下面是如何改进您的第二个问题。如果你正在寻找曼城足球俱乐部的体育场,这一事实被描述为贝娄

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}.
}
前缀geo:
前缀xsd:
前缀p:
前缀o:
选择*WHERE{
地面?地面。
可选{地面p:座位容量?容量}。
可选{?地面p:image?image}。
}