让我用这两个链接作为我的例子: http://en.wikipedia.org/wiki/Maarten_Stekelenburg http://dbpedia.org/page/Maarten_Stekelenburg
我想要做的是获取位于右上角信息框中的所有dbpprops(带有图片的那个)。 在这里我遇到了两个问题:
如何在不知情的情况下获取所有属性(我们正在组建一个足球运动员数据库,每个球员的道具名称都不同)
如何确保这些是框内的属性,因为该页面上还有许多其他dbpprops,并且它看起来不像dbpedia那样。
之后我想将所有这些属性添加到数组中(如果可能的话)。 如果可能的话,我希望看起来像这样:
PREFIX dbp: <http://dbpedia.org/resource/>
PREFIX dbp2: <http://dbpedia.org/ontology/>
PREFIX dbp3: <http://dbpedia.org/property/>
SELECT *
WHERE {
dbp:".$term." dbp2:abstract ?abstract .
dbp:".$term." dbp2:thumbnail ?img .
dbp:".$term." dbp3:* ?properties . //This would then be replaced by the necessary line
FILTER langMatches(lang(?abstract), 'en')
}
编辑:我正在使用PHP
答案 0 :(得分:1)
我无法保证信息框中的属性集将完全是属于dbpprop属性的属性(与dbpedia-owl属性相反),但看起来有一个相当好的对应关系。在这种情况下,您可以使用如下所示的查询,询问您提到的人的属性和值,但只查询dbpprop命名空间中的属性。
prefix dbpedia: <http://dbpedia.org/resource/>
prefix dbpprop: <http://dbpedia.org/property/>
select ?property ?value where {
dbpedia:Maarten_Stekelenburg ?property ?value
filter( strstarts(str(?property),str(dbpprop:)) )
}
----------------------------------------------------------------------------------------------------------------------
| property | value |
======================================================================================================================
| dbpprop:bg | "gold"@en |
| dbpprop:bg | "#F1771D"@en |
| dbpprop:birthDate | "1982-09-21+02:00"^^<http://www.w3.org/2001/XMLSchema#date> |
| dbpprop:birthPlace | "Haarlem, Netherlands"@en |
| dbpprop:caps | 44 |
| dbpprop:caps | 191 |
| dbpprop:clubnumber | 24 |
| dbpprop:clubs | dbpedia:A.S._Roma |
| dbpprop:clubs | dbpedia:AFC_Ajax |
| dbpprop:currentclub | dbpedia:A.S._Roma |
| dbpprop:dateOfBirth | 22 |
| dbpprop:fg | "navy"@en |
| dbpprop:fg | "white"@en |
| dbpprop:fullname | "Maarten Stekelenburg"@en |
| dbpprop:goals | 0 |
| dbpprop:name | "Maarten Stekelenburg"@en |
| dbpprop:name | "Stekelenburg, Maarten"@en |
| dbpprop:nationalcaps | 4 |
| dbpprop:nationalcaps | 54 |
| dbpprop:nationalgoals | 0 |
| dbpprop:nationalteam | dbpedia:Netherlands_national_football_team |
| dbpprop:nationalteam | dbpedia:Netherlands_national_under-21_football_team |
| dbpprop:nationalyears | 2002 |
| dbpprop:nationalyears | 2004 |
| dbpprop:ntupdate | 18 |
| dbpprop:pcupdate | 21 |
| dbpprop:placeOfBirth | "Haarlem, Netherlands"@en |
| dbpprop:position | <http://dbpedia.org/resource/Goalkeeper_(association_football)> |
| dbpprop:shortDescription | "Dutch footballer"@en |
| dbpprop:title | "Awards"@en |
| dbpprop:title | "Netherlands squads"@en |
| dbpprop:years | 2002 |
| dbpprop:years | 2011 |
| dbpprop:youthclubs | dbpedia:AFC_Ajax |
| dbpprop:youthclubs | "Schoten"@en |
| dbpprop:youthclubs | "Zandvoort '75"@en |
| dbpprop:youthyears | 1997 |
| dbpprop:wordnet_type | <http://www.w3.org/2006/03/wn/wn20/instances/synset-soccer_player-noun-1> |
| dbpprop:hasPhotoCollection | <http://wifo5-03.informatik.uni-mannheim.de/flickrwrappr/photos/Maarten_Stekelenburg> |
----------------------------------------------------------------------------------------------------------------------
您提到将结果存储在数组中,但我并不完全理解您提供的示例。它看起来更像是一个查询,而不是将某些内容放入数组的代码。此外,您还没有指定您正在使用的编程语言,因此我们无法真正响应数组操作代码。