Toon posts:

Wikipedia databases

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hopelijk het goede (sub)forum, zo niet dan toch.

Ik heb een vraag m.b.t. het gebruik van de Wikipedia databases. Ik heb ze, volgens mij, gevonden op deze pagina: https://dumps.wikimedia.org/enwiki/20150901/.html

Ik kan echter weinig vinden over het gebruik ervan. Ik heb via Google gezocht op tutorials, ook in het Engels niks gevonden (zoekterm: using wikipedia databases tutorial, uiteraard varianten geprobeerd).

Waar ik eigenlijk concreet naar op zoek ben is een uitleg over welke informatie ik in welke database vind. Een soort van logisch gegevensmodel als het ware. een database schema heb ik al wel gevonden: https://upload.wikimedia.....24.1_database_schema.svg Alleen kan ik deze niet mappen op de aanwezige databases? :?
Wie kan mij een beetje verder helpen?

Acties:
  • +1 Henk 'm!

  • Umbrah
  • Registratie: Mei 2006
  • Laatst online: 08:09

Umbrah

The Incredible MapMan

Vraagje... waarom zou je rechtstreeks met de databases willen praten en een "out of sync" kopie van de database willen hebben? Er is gewoon een API (https://www.mediawiki.org/wiki/API:Main_page), en als je nog verder wilt gaan: er is het vakgebied 'linked data' met DBPedia als middenpunt, en nog heel wat meer data (waaronder wikipedia) allemaal via 'structured language' aangeboden:

Afbeeldingslocatie: http://lod-cloud.net/versions/2011-09-19/lod-cloud_colored.png

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Umbrah schreef op zaterdag 10 oktober 2015 @ 19:19:
Vraagje... waarom zou je rechtstreeks met de databases willen praten en een "out of sync" kopie van de database willen hebben? Er is gewoon een API (https://www.mediawiki.org/wiki/API:Main_page), en als je nog verder wilt gaan: er is het vakgebied 'linked data' met DBPedia als middenpunt, en nog heel wat meer data (waaronder wikipedia) allemaal via 'structured language' aangeboden:
Omdat het zover niet hoeft te gaan. Ik wil 'gewoon' een offline database met historie informatie, in casu jeugdteams van voetballers, welke ik middels SQL wil uitvragen.

Edit: wel bedankt voor de link.

Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 22:36

The Eagle

I wear my sunglasses at night

Wikipedia gebruikt geen RDBMS ;)
Dat kan ook niet, omdat alle info is. Ik verwacht dat er een nosql als Hbase onder zit :)

Edit: en bij mijn weten is er ook een offline versie van wikipedia beschikbaar, alsook idd volledige dumps.
Heb er zelf wel eens met Hadoop mee geexperimenteerd, gewoon de hele dataset op HDFS zetten en dan in iets als Hbase of Hive importeren. Dan kun je er wel met SQL like tools op querien :)

[ Voor 54% gewijzigd door The Eagle op 10-10-2015 19:50 ]

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • 0 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
The Eagle schreef op zaterdag 10 oktober 2015 @ 19:48:
Wikipedia gebruikt geen RDBMS ;)
Dat kan ook niet, omdat alle info is. Ik verwacht dat er een nosql als Hbase onder zit :)

Edit: en bij mijn weten is er ook een offline versie van wikipedia beschikbaar, alsook idd volledige dumps.
Heb er zelf wel eens met Hadoop mee geexperimenteerd, gewoon de hele dataset op HDFS zetten en dan in iets als Hbase of Hive importeren. Dan kun je er wel met SQL like tools op querien :)
https://www.quora.com/Why...her-than-a-NoSQL-database

MediaWiki (de onderliggende software) draait op MySQL.

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

PolarBear schreef op zaterdag 10 oktober 2015 @ 19:54:
MediaWiki (de onderliggende software) draait op MySQL.
Een van de ja. Het hoeft niet per se MySQL te zijn bij mijn weten. :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
The Eagle schreef op zaterdag 10 oktober 2015 @ 19:48:
Wikipedia gebruikt geen RDBMS ;)
Dat kan ook niet, omdat alle info is. Ik verwacht dat er een nosql als Hbase onder zit :)

Edit: en bij mijn weten is er ook een offline versie van wikipedia beschikbaar, alsook idd volledige dumps.
Heb er zelf wel eens met Hadoop mee geexperimenteerd, gewoon de hele dataset op HDFS zetten en dan in iets als Hbase of Hive importeren. Dan kun je er wel met SQL like tools op querien :)
Ik zie net dat mijn link helemaal niet werkt. Als ik op deze pagina kijk is er idd een offline versie. Quote:
"Wikipedia offers free copies of all available content to interested users. These databases can be used for mirroring, personal use, informal backups, offline use or database queries (such as for Wikipedia:Maintenance)."

Vanuit deze pagina kom ik op de databases pagina: English Wikipedia dumps in SQL and XML: https://dumps.wikimedia.org/enwiki/

Daarna kom ik dus niet verder en tutorials kan ik niet vinden.

[ Voor 3% gewijzigd door Verwijderd op 10-10-2015 20:06 ]


Acties:
  • 0 Henk 'm!

  • TheDevilOnLine
  • Registratie: December 2012
  • Laatst online: 06-06 22:54
Wikipedia gebruikte wel degelijk een RDBMS, namelijk MariaDB. Zie (o.a.) http://blog.wikimedia.org...wikipedia-adopts-mariadb/.

De data wordt in meerdere formaten beschikbaar gesteld, waaronder in SQL format. Maar hou er wel rekening mee dat het een gigantische berg aan data is en dat je oude laptopje van zolder niet de gewenste performance zal leveren.

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
De verschillende wikimedia-sites draaien allemaal op mediawiki, met een mariadb-backend. Het databaseformaat daarvan is te vinden op https://www.mediawiki.org/wiki/Manual:Database_layout. Er is alleen wel een grote 'maar' daarbij: lang niet alle informatie wordt gestructureerd opgeslagen. De informatie staat namelijk in de pagina-source (die als tekst word opgeslagen) -- een aantal gegevens worden tijdens het opslaan daar wel uit gedestilleerd en in tabellen opgeslagen (bijvoorbeeld welke pagina's aan elkaar linken: https://www.mediawiki.org/wiki/Manual:Pagelinks_table).

Omdat zelf een database op basis van dumps opbouwen nogal een herculean task is, is er een platform waar gebruikers direct queries op de database kunnen uitvoeren: https://quarry.wmflabs.org/. Je hebt daar uiteraard geen toegang tot privéinformatie (zoals, zeg, voorkeuren en emailadressen), maar je kunt wel van de meeste inhoudelijke tabellen gebruik maken. De paginatekst is ook niet aanwezig (aangezien die niet in dezelfde database wordt opgeslagen).

Om te zorgen dat data meer gestructureerd beschikbaar komt is er een nieuw project gestart, https://www.wikidata.org, waar juist alle data gestructureerd worden opgeslagen -- maar daarbij wordt mariadb in feite als een soort nosql-backend gebruikt (de data wordt namelijk als json geserialized en vervolgens opgeslagen).

In jouw geval heb je daar alleen ook weinig aan, omdat de informatie over jeugdteams nog niet op wikidata staat. Je zult dus toch zelf de informatie uit de paginatekst moeten halen. Dat is het handigste met de API (met dumps kán het wel, maar die zijn vooral handig als je informatie over echt álle pagina's moet hebben, bijvoorbeeld een wikipedia-brede search and replace).

Voorbeeldje: Wikipedia: Robin van Persie. De pagina heeft een sjabloon:
code:
1
2
3
4
5
{{Infobox voetballer
| spelernaam                  = Robin van Persie
(...)
| jeugdjaren                  = 1988&#8211;1996 <br />1996&#8211;2002
| jeugdteams                  = {{NL-VLAG|15}} [[SBV Excelsior|Excelsior]] <br />{{NL-VLAG|15}} [[Feyenoord]]


Je kunt gebruik maken van de parse API om een machineleesbare (leesbaardere...) variant te krijgen:

Wikipedia: MediaWiki API result
code:
1
2
3
4
5
6
7
<root>
  <template>
    <title>Infobox voetballer\n</title>
    <part><name> spelernaam                  </name>=<value> Robin van Persie\n</value></part>
    (...)
    <part><name> jeugdjaren                  </name>=<value> 1988\u20131996 &lt;br /&gt;1996\u20132002\n</value></part>
    <part><name> jeugdteams                  </name>=<value> <template><title>NL-VLAG</title><part><name index=\"1\"/><value>15</value></part></template> [[SBV Excelsior|Excelsior]] &lt;br /&gt;<template><title>NL-VLAG</title><part><name index=\"1\"/><value>15</value></part></template> [[Feyenoord]]\n</value></part>


Maargoed, je zult vervolgens de waarden alsnog zelf moeten parsen.

[ Voor 7% gewijzigd door ValHallASW op 11-10-2015 15:35 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ValHallASW schreef op zondag 11 oktober 2015 @ 15:31:


In jouw geval heb je daar alleen ook weinig aan, omdat de informatie over jeugdteams nog niet op wikidata staat. Je zult dus toch zelf de informatie uit de paginatekst moeten halen...

Voorbeeldje: Wikipedia: Robin van Persie. De pagina heeft een sjabloon:
code:
1
2
3
4
5
{{Infobox voetballer
| spelernaam                  = Robin van Persie
(...)
| jeugdjaren                  = 1988&#8211;1996 <br />1996&#8211;2002
| jeugdteams                  = {{NL-VLAG|15}} [[SBV Excelsior|Excelsior]] <br />{{NL-VLAG|15}} [[Feyenoord]]


Je kunt gebruik maken van de parse API om een machineleesbare (leesbaardere...) variant te krijgen:

Wikipedia: MediaWiki API result
code:
1
2
3
4
5
6
7
<root>
  <template>
    <title>Infobox voetballer\n</title>
    <part><name> spelernaam                  </name>=<value> Robin van Persie\n</value></part>
    (...)
    <part><name> jeugdjaren                  </name>=<value> 1988\u20131996 &lt;br /&gt;1996\u20132002\n</value></part>
    <part><name> jeugdteams                  </name>=<value> <template><title>NL-VLAG</title><part><name index=\"1\"/><value>15</value></part></template> [[SBV Excelsior|Excelsior]] &lt;br /&gt;<template><title>NL-VLAG</title><part><name index=\"1\"/><value>15</value></part></template> [[Feyenoord]]\n</value></part>


Maargoed, je zult vervolgens de waarden alsnog zelf moeten parsen.
Ik heb mij er inmiddels verder in verdiept en de diverse genoemde mogelijkheden onderzocht. Heb nu uiteindelijk via https://en.wikipedia.org/wiki/Special:Export een XML gedownload van de categorie Nederlandse profvoetballers. In deze info staat onder meer youth_teams. Dus nu nog in een database inlezen en dan ben ik eruit. Bedankt voor het meedenken allemaal.

[ Voor 26% gewijzigd door Verwijderd op 14-10-2015 23:46 ]


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Verwijderd schreef op woensdag 14 oktober 2015 @ 23:42:

Ik heb mij er inmiddels verder in verdiept en de diverse genoemde mogelijkheden onderzocht. Heb nu uiteindelijk via https://en.wikipedia.org/wiki/Special:Export een XML gedownload van de categorie Nederlandse profvoetballers. In deze info staat onder meer youth_teams. Dus nu nog in een database inlezen en dan ben ik eruit. Bedankt voor het meedenken allemaal.
Scherp, op de Engelse Wikipedia staat het inderdaad verder uitgesplitst. Wel zou ik alsnog willen suggereren Mediawiki ook het parsen te laten doen -- wikitext parsen is niet de meest triviale bezigheid ;) en de parsetree maakt je leven makkelijk(er).

Er is ook nog de REST api (die voor de visual editor gebruikt wordt): Wikipedia: Robin_van_Persie

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ValHallASW schreef op donderdag 15 oktober 2015 @ 14:58:
[...]


Scherp, op de Engelse Wikipedia staat het inderdaad verder uitgesplitst. Wel zou ik alsnog willen suggereren Mediawiki ook het parsen te laten doen -- wikitext parsen is niet de meest triviale bezigheid ;) en de parsetree maakt je leven makkelijk(er).

Er is ook nog de REST api (die voor de visual editor gebruikt wordt): Wikipedia: Robin_van_Persie
De MediaWiki had ik inderdaad al gevonden hier: https://www.mediawiki.org/wiki/Download

Toch wel goed te doen op deze manier.
Pagina: 1