用于查找当前管理器的SPARQL查询
我目前有以下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{
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}。
}