从维基百科中的某个框中获取所有dbpprop

时间:2014-05-13 22:10:48

标签: php sparql wikipedia dbpedia

让我用这两个链接作为我的例子: 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

1 个答案:

答案 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:)) )
}

SPARQL results

----------------------------------------------------------------------------------------------------------------------
| 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> |
----------------------------------------------------------------------------------------------------------------------

您提到将结果存储在数组中,但我并不完全理解您提供的示例。它看起来更像是一个查询,而不是将某些内容放入数组的代码。此外,您还没有指定您正在使用的编程语言,因此我们无法真正响应数组操作代码。