<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki1.informatik.uni-mannheim.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chrisahn</id>
	<title>Mediawiki1 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki1.informatik.uni-mannheim.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chrisahn"/>
	<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php/Special:Contributions/Chrisahn"/>
	<updated>2026-05-13T21:10:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ro:Infocaseta_Pap%C4%83&amp;diff=45499</id>
		<title>Mapping ro:Infocaseta Papă</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ro:Infocaseta_Pap%C4%83&amp;diff=45499"/>
		<updated>2015-03-04T01:03:23Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: moved Mapping ro:Papă to Mapping ro:Infocaseta Papă: renamed in rowiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = ChristianBishop&lt;br /&gt;
| mappings = &lt;br /&gt;
	{{ PropertyMapping | templateProperty = data-naștere | ontologyProperty = birthYear }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = nume-botez | ontologyProperty = child }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data-naștere | ontologyProperty = birthDate }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = predecesor | ontologyProperty = veneratedIn }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = predecesor | ontologyProperty = canonizedBy }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = nume-botez | ontologyProperty = parent }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = sfârșit-pontificat | ontologyProperty = deathYear }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = nume | ontologyProperty = beatifiedBy }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = predecesor | ontologyProperty = predecessor }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = predecesor | ontologyProperty = title }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = succesor | ontologyProperty = office }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = nume-botez | ontologyProperty = birthName }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = sfârșit-pontificat | ontologyProperty = deathDate }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data-naștere | ontologyProperty = deathPlace }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = nume | ontologyProperty = subtitle }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data-naștere | ontologyProperty = birthPlace }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = succesor | ontologyProperty = successor }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ro:Infocaseta_Pap%C4%83&amp;diff=45498</id>
		<title>Mapping ro:Infocaseta Papă</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ro:Infocaseta_Pap%C4%83&amp;diff=45498"/>
		<updated>2015-03-04T01:01:29Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: Created page with '{{TemplateMapping | mapToClass = ChristianBishop | mappings =  	{{ PropertyMapping | templateProperty = data-naștere | ontologyProperty = birthYear }} 	{{ PropertyMapping | temp...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = ChristianBishop&lt;br /&gt;
| mappings = &lt;br /&gt;
	{{ PropertyMapping | templateProperty = data-naștere | ontologyProperty = birthYear }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = nume-botez | ontologyProperty = child }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data-naștere | ontologyProperty = birthDate }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = predecesor | ontologyProperty = veneratedIn }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = predecesor | ontologyProperty = canonizedBy }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = nume-botez | ontologyProperty = parent }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = sfârșit-pontificat | ontologyProperty = deathYear }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = nume | ontologyProperty = beatifiedBy }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = predecesor | ontologyProperty = predecessor }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = predecesor | ontologyProperty = title }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = succesor | ontologyProperty = office }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = nume-botez | ontologyProperty = birthName }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = sfârșit-pontificat | ontologyProperty = deathDate }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data-naștere | ontologyProperty = deathPlace }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = nume | ontologyProperty = subtitle }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data-naștere | ontologyProperty = birthPlace }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = succesor | ontologyProperty = successor }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ro:Discografie&amp;diff=45497</id>
		<title>Mapping ro:Discografie</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ro:Discografie&amp;diff=45497"/>
		<updated>2015-03-04T00:59:45Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: Created page with '{{TemplateMapping | mapToClass = Agent | mappings =  	{{ PropertyMapping | templateProperty = artist | ontologyProperty = alias }} }}'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = Agent&lt;br /&gt;
| mappings = &lt;br /&gt;
	{{ PropertyMapping | templateProperty = artist | ontologyProperty = alias }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ro:Carte&amp;diff=45496</id>
		<title>Mapping ro:Carte</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ro:Carte&amp;diff=45496"/>
		<updated>2015-03-04T00:57:51Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: Created page with '{{TemplateMapping | mapToClass = Book | mappings =  	{{ PropertyMapping | templateProperty = urmată_de | ontologyProperty = subsequentWork }} 	{{ PropertyMapping | templatePrope...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = Book&lt;br /&gt;
| mappings = &lt;br /&gt;
	{{ PropertyMapping | templateProperty = urmată_de | ontologyProperty = subsequentWork }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = isbn | ontologyProperty = isbn }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data_apariției | ontologyProperty = description }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = țara_de_apariție | ontologyProperty = country }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = autor_copertă | ontologyProperty = coverArtist }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = titlu | ontologyProperty = characterInPlay }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data_apariției | ontologyProperty = publicationDate }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = autor_ilustrații | ontologyProperty = illustrator }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = titlu_original | ontologyProperty = settingOfPlay }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = subiect | ontologyProperty = nonFictionSubject }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = precedată_de | ontologyProperty = predecessor }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data_apariției | ontologyProperty = activeYearsStartYear }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = limba | ontologyProperty = language }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = număr_pagini | ontologyProperty = numberOfPages }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data_apariției | ontologyProperty = lcc }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = autor | ontologyProperty = author }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = țara_de_apariție | ontologyProperty = dcc }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = titlu_original | ontologyProperty = subtitle }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = data_apariției | ontologyProperty = activeYearsEndYear }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = urmată_de | ontologyProperty = successor }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = seria | ontologyProperty = series }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = editura | ontologyProperty = publisher }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = oclc | ontologyProperty = oclc }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = precedată_de | ontologyProperty = previousWork }}&lt;br /&gt;
	{{ PropertyMapping | templateProperty = gen | ontologyProperty = literaryGenre }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_id:Infobox_building&amp;diff=45495</id>
		<title>Mapping id:Infobox building</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_id:Infobox_building&amp;diff=45495"/>
		<updated>2015-03-04T00:49:42Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: Created page with '{{ TemplateMapping | mapToClass = Building | mappings =      {{ PropertyMapping | ontologyProperty = foaf:name | templateProperty = name }} }}'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TemplateMapping | mapToClass = Building | mappings = &lt;br /&gt;
    {{ PropertyMapping | ontologyProperty = foaf:name | templateProperty = name }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_es:Ficha_de_pel%C3%ADcula&amp;diff=45494</id>
		<title>Mapping es:Ficha de película</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_es:Ficha_de_pel%C3%ADcula&amp;diff=45494"/>
		<updated>2015-03-04T00:48:57Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: Undo revision 45493 by Chrisahn (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = Film&lt;br /&gt;
| mappings =&lt;br /&gt;
	{{PropertyMapping | templateProperty = título original | ontologyProperty = foaf:name }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = título | ontologyProperty = foaf:name }}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección2 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección3 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección4 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección5 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección6 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección7 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección8 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección9 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = producción | ontologyProperty = producer }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = guión | ontologyProperty = writer }}	&lt;br /&gt;
        {{PropertyMapping | templateProperty = guion | ontologyProperty = writer }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = reparto | ontologyProperty = starring }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = música | ontologyProperty = musicComposer }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = escenografía | ontologyProperty = cinematography }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = edición | ontologyProperty = editing }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = montaje | ontologyProperty = editing }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = distribución | ontologyProperty = distributor }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país2 | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país3 | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país4 | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = presupuesto | ontologyProperty = budget | unit = Currency }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = imdb | ontologyProperty = imdbId }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = estreno | ontologyProperty = releaseDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = duración | ontologyProperty = runtime | unit = Time }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma2 | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma3 | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma4 | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = género | ontologyProperty = genre }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = fotografía | ontologyProperty = cinematography }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = precedida_por | ontologyProperty = previousWork }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = sucedida_por | ontologyProperty = subsequentWork }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_es:Ficha_de_pel%C3%ADcula&amp;diff=45493</id>
		<title>Mapping es:Ficha de película</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_es:Ficha_de_pel%C3%ADcula&amp;diff=45493"/>
		<updated>2015-03-04T00:47:56Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = Film&lt;br /&gt;
| mappings =&lt;br /&gt;
	{{PropertyMapping | templateProperty = título original | ontologyProperty = foaf:name }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = título | ontologyProperty = foaf:name }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección2 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección3 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección4 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección5 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección6 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección7 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección8 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = dirección9 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = producción | ontologyProperty = producer }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = guión | ontologyProperty = writer }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = reparto | ontologyProperty = starring }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = música | ontologyProperty = musicComposer }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = escenografía | ontologyProperty = cinematography }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = edición | ontologyProperty = editing }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = montaje | ontologyProperty = editing }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = distribución | ontologyProperty = distributor }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país2 | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país3 | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país4 | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = presupuesto | ontologyProperty = budget | unit = Currency }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = imdb | ontologyProperty = imdbId }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = estreno | ontologyProperty = releaseDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = duración | ontologyProperty = runtime | unit = Time }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma2 | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma3 | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma4 | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = precedida_por | ontologyProperty = previousWork }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = sucedida_por | ontologyProperty = subsequentWork }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Partit_pol%C3%ADtic&amp;diff=45491</id>
		<title>Mapping ca:Partit polític</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Partit_pol%C3%ADtic&amp;diff=45491"/>
		<updated>2015-03-04T00:43:22Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = PoliticalParty&lt;br /&gt;
| mappings =&lt;br /&gt;
	{{PropertyMapping | templateProperty = nom | ontologyProperty = foaf:name }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = fundació | ontologyProperty = formationDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = desaparició | ontologyProperty = extinctionDate }}&lt;br /&gt;
&lt;br /&gt;
        {{PropertyMapping | templateProperty = president | ontologyProperty = president}}&lt;br /&gt;
        {{PropertyMapping | templateProperty = secretari_general | ontologyProperty = person}}&lt;br /&gt;
        {{PropertyMapping | templateProperty = líder | ontologyProperty = leader}}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = seu | ontologyProperty = headquarter }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = web | ontologyProperty = foaf:homepage }}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = partit_europeu | ontologyProperty = party }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = partit_juvenil | ontologyProperty = party }}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
	{{PropertyMapping | templateProperty = ideologia | ontologyProperty = ? }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = publicació | ontologyProperty = ? }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = parlament | ontologyProperty = ? }}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Infotaula_Llibre&amp;diff=45490</id>
		<title>Mapping ca:Infotaula Llibre</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Infotaula_Llibre&amp;diff=45490"/>
		<updated>2015-03-04T00:42:17Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: Undo revision 45489 by Chrisahn (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = Book&lt;br /&gt;
| mappings = &lt;br /&gt;
 {{PropertyMapping | templateProperty = nom | ontologyProperty = foaf:name }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = títol_orig | ontologyProperty = foaf:name }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = traductor | ontologyProperty = translator }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = autor | ontologyProperty = author }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = dibuixant | ontologyProperty = illustrator }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = artista_portada | ontologyProperty = coverArtist }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = país | ontologyProperty = country }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = ciutat | ontologyProperty = city }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = idioma | ontologyProperty = language }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = sèrie | ontologyProperty = series }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = tema | ontologyProperty = nonFictionSubject }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = gènere | ontologyProperty = literaryGenre }}&lt;br /&gt;
 &amp;lt;!-- use dc:publisher instead --&amp;gt;&lt;br /&gt;
 {{PropertyMapping | templateProperty = editorial | ontologyProperty = publisher }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = data_pub | ontologyProperty = publicationDate }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = data_pub_català | ontologyProperty = publicationDate }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = format | ontologyProperty = mediaType }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = pàgines | ontologyProperty = numberOfPages }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = isbn | ontologyProperty = isbn }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = precedit_per | ontologyProperty = previousWork }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = seguit_per | ontologyProperty = subsequentWork }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Infotaula_Llibre&amp;diff=45489</id>
		<title>Mapping ca:Infotaula Llibre</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Infotaula_Llibre&amp;diff=45489"/>
		<updated>2015-03-04T00:41:21Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = Book&lt;br /&gt;
| mappings = &lt;br /&gt;
 {{PropertyMapping | templateProperty = nom | ontologyProperty = foaf:name }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = títol_orig | ontologyProperty = foaf:name }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = traductor | ontologyProperty = translator }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = autor | ontologyProperty = author }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = dibuixant | ontologyProperty = illustrator }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = artista_portada | ontologyProperty = coverArtist }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = país | ontologyProperty = country }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = ciutat | ontologyProperty = city }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = idioma | ontologyProperty = language }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = sèrie | ontologyProperty = series }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = tema | ontologyProperty = subject }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = gènere | ontologyProperty = genre }}&lt;br /&gt;
 &amp;lt;!-- use dc:publisher instead --&amp;gt;&lt;br /&gt;
 {{PropertyMapping | templateProperty = editorial | ontologyProperty = publisher }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = data_pub | ontologyProperty = publicationDate }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = data_pub_català | ontologyProperty = publicationDate }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = format | ontologyProperty = mediaType }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = pàgines | ontologyProperty = pages }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = isbn | ontologyProperty = isbn }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = precedit_per | ontologyProperty = previousWork }}&lt;br /&gt;
 {{PropertyMapping | templateProperty = seguit_per | ontologyProperty = subsequentWork }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Fitxa_de_pel%C2%B7l%C3%ADcula&amp;diff=45488</id>
		<title>Mapping ca:Fitxa de pel·lícula</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Fitxa_de_pel%C2%B7l%C3%ADcula&amp;diff=45488"/>
		<updated>2015-03-04T00:39:32Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = Film&lt;br /&gt;
| mappings =&lt;br /&gt;
	{{PropertyMapping | templateProperty = títol original | ontologyProperty = foaf:name }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = títol | ontologyProperty = foaf:name }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = direcció | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = direcció2 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = direcció3 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = direcció4 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = direcció5 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = direcció6 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = direcció7 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = direcció8 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = direcció9 | ontologyProperty = director }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = producció | ontologyProperty = producer }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = guió | ontologyProperty = writer }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = repartiment | ontologyProperty = starring }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = música | ontologyProperty = musicComposer }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = escenografía | ontologyProperty = cinematography }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = edició | ontologyProperty = editing }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = muntatge | ontologyProperty = editing }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = distribució | ontologyProperty = distributor }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país2 | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país3 | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = país4 | ontologyProperty = country }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = pressupost | ontologyProperty = budget | unit = Currency }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = imdb | ontologyProperty = imdbId }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = estrena | ontologyProperty = releaseDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = duració | ontologyProperty = runtime | unit = Time }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma2 | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma3 | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = idioma4 | ontologyProperty = language }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = precedida_per | ontologyProperty = previousWork }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = seguida_de | ontologyProperty = subsequentWork }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Actor&amp;diff=45487</id>
		<title>Mapping ca:Actor</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Actor&amp;diff=45487"/>
		<updated>2015-03-04T00:36:58Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = Actor&lt;br /&gt;
| mappings =&lt;br /&gt;
	{{PropertyMapping | templateProperty = name | ontologyProperty = foaf:name }}&lt;br /&gt;
        {{PropertyMapping | templateProperty = nom de naixença | ontologyProperty = foaf:givenName }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = data de naixença | ontologyProperty = birthDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = indret de naixença | ontologyProperty = birthPlace }}&lt;br /&gt;
        {{PropertyMapping | templateProperty = data de defunció | ontologyProperty = deathDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = lloc de defunció | ontologyProperty = deathPlace }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = cònjuge | ontologyProperty = spouse }}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis oscar | ontologyProperty = academyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis bafta | ontologyProperty = baftaAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis cesar | ontologyProperty = cesarAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis emmy | ontologyProperty = emmyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = filmfare awards | ontologyProperty = filmFareAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis golden globe | ontologyProperty = goldenGlobeAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = altres premis | ontologyProperty = award }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis goya | ontologyProperty = goyaAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis grammy | ontologyProperty = grammyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis tony | ontologyProperty = tonyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis gaudí | ontologyProperty = gaudiAward }}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = pàgina web | ontologyProperty = foaf:homepage }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = imdb | ontologyProperty = imdbId }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Infotaula_d%27artista_musical&amp;diff=45486</id>
		<title>Mapping ca:Infotaula d'artista musical</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Infotaula_d%27artista_musical&amp;diff=45486"/>
		<updated>2015-03-04T00:14:57Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Docs are listed in Catalan, but all usages are in English, the same as on en.wikipedia --&amp;gt;&lt;br /&gt;
{{ConditionalMapping&lt;br /&gt;
| cases =&lt;br /&gt;
 {{Condition&lt;br /&gt;
    | templateProperty = Current_members&lt;br /&gt;
    | operator = isSet&lt;br /&gt;
    | mapping = {{TemplateMapping&lt;br /&gt;
                | mapToClass = Band&lt;br /&gt;
                }}&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
 {{Condition&lt;br /&gt;
    | templateProperty = Past_members&lt;br /&gt;
    | operator = isSet&lt;br /&gt;
    | mapping = {{TemplateMapping&lt;br /&gt;
                | mapToClass = Band&lt;br /&gt;
                }}&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
 {{Condition&lt;br /&gt;
    | templateProperty = Background&lt;br /&gt;
    | operator = equals&lt;br /&gt;
    | value = group_or_band&lt;br /&gt;
    | mapping = {{TemplateMapping&lt;br /&gt;
                | mapToClass = Band&lt;br /&gt;
                }}&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
 {{Condition&lt;br /&gt;
    | templateProperty = Background&lt;br /&gt;
    | operator = equals&lt;br /&gt;
    | value = cover_band&lt;br /&gt;
    | mapping = {{TemplateMapping&lt;br /&gt;
                | mapToClass = Band&lt;br /&gt;
                }}&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
 {{Condition&lt;br /&gt;
    | templateProperty = Background&lt;br /&gt;
    | operator = equals&lt;br /&gt;
    | value = classical_ensemble&lt;br /&gt;
    | mapping = {{TemplateMapping&lt;br /&gt;
                | mapToClass = Band&lt;br /&gt;
                }}&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
 {{Condition&lt;br /&gt;
    | operator = otherwise&lt;br /&gt;
    | mapping = {{TemplateMapping&lt;br /&gt;
                | mapToClass = MusicalArtist&lt;br /&gt;
                }}&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
| defaultMappings =&lt;br /&gt;
	{{PropertyMapping | templateProperty = Name | ontologyProperty = foaf:name }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Background | ontologyProperty = background }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Birth_name | ontologyProperty = foaf:givenName }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Alias | ontologyProperty = alias }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Born | ontologyProperty = birthDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Born | ontologyProperty = birthPlace }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Died | ontologyProperty = deathDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Died | ontologyProperty = deathPlace }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Origin | ontologyProperty = hometown }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Instrument | ontologyProperty = instrument }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Genre | ontologyProperty = genre }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Occupation | ontologyProperty = occupation }}&lt;br /&gt;
        {{DateIntervalMapping&lt;br /&gt;
          | templateProperty          = Years_active&lt;br /&gt;
          | startDateOntologyProperty = activeYearsStartYear&lt;br /&gt;
          | endDateOntologyProperty   = activeYearsEndYear&lt;br /&gt;
        }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Label | ontologyProperty = recordLabel}}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Associated_acts | ontologyProperty = associatedBand }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Associated_acts | ontologyProperty = associatedMusicalArtist }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = URL | ontologyProperty = foaf:homepage }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = Notable_instruments | ontologyProperty = instrument }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45467</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45467"/>
		<updated>2015-02-25T20:44:36Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WARNING: Work in progess. The content of this page is largely incorrect.'''&lt;br /&gt;
&lt;br /&gt;
TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works. [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST (abstract syntax tree)&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor processes the AST and produces triples&lt;br /&gt;
* The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [http://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala InfoboxExtractor] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [http://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala MappingExtractor] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45466</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45466"/>
		<updated>2015-02-25T20:44:12Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WARNING: Work in progess. The content of this page is largely incorrect.'''&lt;br /&gt;
&lt;br /&gt;
TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works. [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST (abstract syntax tree)&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor processes the AST and produces triples&lt;br /&gt;
* The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala InfoboxExtractor] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala MappingExtractor] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Actor&amp;diff=45464</id>
		<title>Mapping ca:Actor</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Actor&amp;diff=45464"/>
		<updated>2015-02-25T20:20:03Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: moved Mapping ca:Actor TEMPORARY SUFFIX to Mapping ca:Actor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = Actor&lt;br /&gt;
| mappings =&lt;br /&gt;
	{{PropertyMapping | templateProperty = name | ontologyProperty = foaf:name }}&lt;br /&gt;
        {{PropertyMapping | templateProperty = nom de naixença | ontologyProperty = foaf:givenName }}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = data de naixença | ontologyProperty = birthDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = indret de naixença | ontologyProperty = birthPlace }}&lt;br /&gt;
        {{PropertyMapping | templateProperty = data de defunció | ontologyProperty = deathDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = lloc de defunció | ontologyProperty = deathPlace }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = cònjuge | ontologyProperty = spouse }}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis oscar | ontologyProperty = academyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis bafta | ontologyProperty = baftaAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis cesar | ontologyProperty = cesarAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis emmy | ontologyProperty = emmyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = filmfare awards | ontologyProperty = filmFareAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis golden globe | ontologyProperty = goldenGlobeAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = altres premis | ontologyProperty = award }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis goya | ontologyProperty = goyaAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis grammy | ontologyProperty = grammyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis tony | ontologyProperty = tonyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis gaudí | ontologyProperty = gaudiAward }}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = pàgina web | ontologyProperty = foaf:homepage }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = imdb | ontologyProperty = imdbId }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Actor&amp;diff=45461</id>
		<title>Mapping ca:Actor</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_ca:Actor&amp;diff=45461"/>
		<updated>2015-02-25T20:15:27Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: moved Mapping ca:Actor to Mapping ca:Actor TEMPORARY SUFFIX&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateMapping&lt;br /&gt;
| mapToClass = Actor&lt;br /&gt;
| mappings =&lt;br /&gt;
	{{PropertyMapping | templateProperty = name | ontologyProperty = foaf:name }}&lt;br /&gt;
        {{PropertyMapping | templateProperty = nom de naixença | ontologyProperty = foaf:givenName }}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = data de naixença | ontologyProperty = birthDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = indret de naixença | ontologyProperty = birthPlace }}&lt;br /&gt;
        {{PropertyMapping | templateProperty = data de defunció | ontologyProperty = deathDate }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = lloc de defunció | ontologyProperty = deathPlace }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = cònjuge | ontologyProperty = spouse }}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis oscar | ontologyProperty = academyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis bafta | ontologyProperty = baftaAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis cesar | ontologyProperty = cesarAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis emmy | ontologyProperty = emmyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = filmfare awards | ontologyProperty = filmFareAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis golden globe | ontologyProperty = goldenGlobeAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = altres premis | ontologyProperty = award }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis goya | ontologyProperty = goyaAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis grammy | ontologyProperty = grammyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis tony | ontologyProperty = tonyAward }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = premis gaudí | ontologyProperty = gaudiAward }}&lt;br /&gt;
&lt;br /&gt;
	{{PropertyMapping | templateProperty = pàgina web | ontologyProperty = foaf:homepage }}&lt;br /&gt;
	{{PropertyMapping | templateProperty = imdb | ontologyProperty = imdbId }}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=User:Chrisahn/Sandbox&amp;diff=45458</id>
		<title>User:Chrisahn/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=User:Chrisahn/Sandbox&amp;diff=45458"/>
		<updated>2015-02-25T19:01:58Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Mapping ro:Papă]]&lt;br /&gt;
[[:Mapping ro:Papă]]&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45457</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45457"/>
		<updated>2015-02-25T18:44:56Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WARNING: Work in progess. The content of this page is largely incorrect.'''&lt;br /&gt;
&lt;br /&gt;
TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works. [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST (abstract syntax tree)&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor processes the AST and produces triples&lt;br /&gt;
* The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45456</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45456"/>
		<updated>2015-02-25T18:44:30Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WARNING: Work in progess. The content of this page is largely incorrect.'''&lt;br /&gt;
&lt;br /&gt;
TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works. [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST (abstract syntax tree)&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor consumes AST and produces triples. The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45455</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45455"/>
		<updated>2015-02-25T18:39:46Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WARNING: Work in progess. The content of this page is largely incorrect.'''&lt;br /&gt;
&lt;br /&gt;
TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works. [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor consumes AST and produces triples. The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45454</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45454"/>
		<updated>2015-02-25T18:39:00Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works. [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor consumes AST and produces triples. The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45453</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45453"/>
		<updated>2015-02-25T18:38:22Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works. [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor consumes AST and produces triples. The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
'''Because it is based on incorrect assumptions, the rest of this page is also largely incorrect.'''&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45452</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45452"/>
		<updated>2015-02-25T18:37:12Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works. [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor consumes AST and produces triples. The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45451</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45451"/>
		<updated>2015-02-25T18:27:16Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor consumes AST and produces triples. The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45450</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45450"/>
		<updated>2015-02-25T18:27:02Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor consumes AST and produces triples. The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45449</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45449"/>
		<updated>2015-02-25T18:06:55Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Rewriting templateProperty */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&lt;br /&gt;
&lt;br /&gt;
: The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor consumes AST and produces triples. The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
&lt;br /&gt;
: No it doesn't. See above. [[User:Chrisahn|Chrisahn]] 18:06, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45448</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45448"/>
		<updated>2015-02-25T18:05:47Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&amp;lt;s&amp;gt;* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&lt;br /&gt;
&lt;br /&gt;
: The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor consumes AST and produces triples. The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45447</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45447"/>
		<updated>2015-02-25T18:05:01Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
&lt;br /&gt;
You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&lt;br /&gt;
&lt;br /&gt;
: The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
Here's what actually happens:&lt;br /&gt;
&lt;br /&gt;
* Wikitext is parsed into an AST&lt;br /&gt;
* The AST is passed to several different extractors according to the configuration&lt;br /&gt;
* Each extractor consumes AST and produces triples. The triples are not used as input for any other extractors.&lt;br /&gt;
&lt;br /&gt;
Here's what the [InfoboxExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/InfoboxExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
&lt;br /&gt;
Here's what the [MappingExtractor https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/mappings/MappingExtractor.scala] does:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props in the AST and passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
* these are emitted as generic mapping-based props, eg&lt;br /&gt;
** http://dbpedia.org/ontology/parent for EN, BG and any other language (usual prefix dbo:)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45446</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45446"/>
		<updated>2015-02-25T17:57:26Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
&lt;br /&gt;
You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&lt;br /&gt;
&lt;br /&gt;
The last part (''data is passed through mappings'') is wrong. The mapping based extractor processes the Wikitext source, '''not''' the output of the InfoboxExtractor. A pipeline architecture would make a lot of sense, but that's not how DBpedia works [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45445</id>
		<title>Rewriting templateProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Rewriting_templateProperty&amp;diff=45445"/>
		<updated>2015-02-25T17:54:15Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Intro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO: Make an EN example using Infobox Politician&lt;br /&gt;
--[[User:VladimirAlexiev|VladimirAlexiev]] 12:12, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
The basic way the extractor works is like this:&lt;br /&gt;
&lt;br /&gt;
* data is extracted from template props&lt;br /&gt;
* these are emitted as language-specific '''raw''' props, eg&lt;br /&gt;
** http://dbpedia.org/property/parent for EN (usual prefix [http://prefix.cc/dbp dbp:])&lt;br /&gt;
** http://bg.dbpedia.org/property/родител for BG (usual prefix [http://prefix.cc/bgdbp bgdbp:]&lt;br /&gt;
* the raw data is passed through mappings templateProperty -&amp;gt; ontologyProperty&lt;br /&gt;
&lt;br /&gt;
The last part is wrong. [[User:Chrisahn|Chrisahn]] 17:54, 25 February 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
You'd think that templateProperty is the same as the raw prop name. Yeah but not always.&lt;br /&gt;
&lt;br /&gt;
== Wikipedia Prop Structures ==&lt;br /&gt;
Many Wikipedia templates allow creating '''several''' instances of something. &lt;br /&gt;
Eg [https://en.wikipedia.org/wiki/Template:Listen Listen] allows a Wikipedia editor to attach up to 11 soundRecording to the subject,&lt;br /&gt;
using &amp;quot;parallel&amp;quot; arrays of properties:&lt;br /&gt;
* filename, filename1... filename10&lt;br /&gt;
* title, title1... title10&lt;br /&gt;
* description, description1.. description10&lt;br /&gt;
The parallelism is reflected in a numeric suffix.&lt;br /&gt;
&lt;br /&gt;
Good maps take care of this, by grouping the &amp;quot;parallel props&amp;quot; in separate IntermediateNodeMappings or a similar structure that can produce an &amp;quot;array&amp;quot;.&lt;br /&gt;
Eg [http://mappings.dbpedia.org/index.php?title=Mapping_en:Listen&amp;amp;action=edit mapping Listen] has this 11 times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  {{IntermediateNodeMapping | nodeClass = Sound | correspondingProperty = soundRecording | mappings =&lt;br /&gt;
    {{ PropertyMapping | templateProperty = type          | ontologyProperty = dc:type }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = filename1     | ontologyProperty = filename }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = title1        | ontologyProperty = title }}&lt;br /&gt;
    {{ PropertyMapping | templateProperty = description1  | ontologyProperty = description }}&lt;br /&gt;
  }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now consider Politicians. They may hold several Positions, each over several Mandates (they are nasty that way).&lt;br /&gt;
For each Position&amp;gt;Mandate (say 5*3=15), there's a bunch of props such as&lt;br /&gt;
party, predecessor, successor, colleagues (eg vicePresident, governor...), years the subject came to that position,&lt;br /&gt;
years the colleagues came to their respective positions, etc.&lt;br /&gt;
&lt;br /&gt;
Eg see prop names of [https://bg.wikipedia.org/wiki/Шаблон:Държавник_инфо Държавник_инфо], but that's not the complete story: there's also трети_мандат_* (&amp;quot;third mandate&amp;quot; fields) etc.&lt;br /&gt;
* If the 2D data arrays below the photos of Rosen Plevneliev and Angela Merkel don't strike your fancy, check out one of them Socialists that ruled for 40 years: [https://bg.wikipedia.org/wiki/Тодор_Живков Тодор_Живков]&lt;br /&gt;
See a full list of props and an incomplete attempt to group them all at [http://mappings.dbpedia.org/index.php?title=Mapping_bg:Държавник_инфо&amp;amp;action=edit Mapping Държавник_инфо].&lt;br /&gt;
&lt;br /&gt;
Wikidata editors were at a loss to create meaningful two-dimensional parallel arrays of names, so they created parasitc prefixes &amp;amp; suffixes that are not so easy to match up. Eg there are 10 props &amp;quot;предшестванОт&amp;quot;, all mapped to &amp;quot;predecessor&amp;quot; but in different groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 предшестван от&lt;br /&gt;
 предшестван от2&lt;br /&gt;
 предшестван от3&lt;br /&gt;
 втори_мандат_предшестван от&lt;br /&gt;
 втори_мандат_предшестван от2&lt;br /&gt;
 втори_мандат_предшестван от3&lt;br /&gt;
 трети_мандат_предшестван от&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The prefixes may have any form&lt;br /&gt;
* The suffixes are digits, optionally followed by letters&lt;br /&gt;
&lt;br /&gt;
== Rewriting templateProperty ==&lt;br /&gt;
&lt;br /&gt;
The parasitic prefixes/suffixes encode important info about the grouping of props,&lt;br /&gt;
but that info is not transmitted in any clear way.&lt;br /&gt;
&lt;br /&gt;
Assume a mapping fragment like this, extracting data for resource bgdbr:Тодор_Живков&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{IntermediateNodeMapping | nodeClass = CareerStation | correspondingProperty = careerStation | mappings = &lt;br /&gt;
    {{ PropertyMapping | templateProperty = втори_мандат_предшестван от3 | ontologyProperty = predecessor }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What the extractor '''really''' does is:&lt;br /&gt;
* Takes data from the templateProperty provided (as expected)&lt;br /&gt;
* Strips parasitic prefixes &amp;amp; suffixes from the templateProperty (maybe unexpected) and converts to camelCase&lt;br /&gt;
* Emits the data using the original subject and this '''rewritten''' templateProperty, eg:&lt;br /&gt;
      bgdbr:Тодор_Живков bgdbp:предшестванОт &amp;lt;data&amp;gt;&lt;br /&gt;
* Makes an IntermediateNode and connects it with correspondingProperty (as expected), eg:&lt;br /&gt;
      bgdbr:Тодор_Живков dbo:careerStation bgdbr:Тодор_Живков__1&lt;br /&gt;
* Emits the data using the IntermediateNode and the ontologyProperty as provided (as expected), eg;&lt;br /&gt;
      bgdbr:Тодор_Живков__1 dbo:predeccessor &amp;lt;data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This achieves several goals:&lt;br /&gt;
* the general semantics of the raw property is preserved, but not its grouping&lt;br /&gt;
* the grouping is preserved by the creation of IntermediateNodes that use mapped properties (if the mapping is good)&lt;br /&gt;
&lt;br /&gt;
This allows you to make queries such as:&lt;br /&gt;
* all predecessors of Тодор_Живков lumped together (regardless of the position). This works even if these raw props are not mapped!&lt;br /&gt;
      select * {bgdbr:Тодор_Живков bgdbp:предшестванОт ?pred}&lt;br /&gt;
* all predecessors of Тодор_Живков, paired with successors, and the corresponding position name (office). (Note: you may want to throw in some OPTIONALs)&lt;br /&gt;
      select * {bgdbr:Тодор_Живков dbo:careerStation&lt;br /&gt;
        [dbo:predecessor ?pred; dbo:successor ?succ; dbo:office ?office]}&lt;br /&gt;
&lt;br /&gt;
Neat!&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' Currently only purely numeric parasitic suffixes are stripped.&lt;br /&gt;
Prefixes and alphanumeric suffixes would be stripped after [https://github.com/dbpedia/extraction-framework/issues/317 issue #317] is implemented&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:DisclaimerMapping&amp;diff=45417</id>
		<title>Template:DisclaimerMapping</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:DisclaimerMapping&amp;diff=45417"/>
		<updated>2015-02-23T14:07:45Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: Reverted edits by Chrisahn (Talk) to last revision by Gaurav&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the mapping for the Wikipedia template [http://{{#replace:{{NAMESPACEE}}|Mapping_|}}.wikipedia.org/wiki/Template:{{PAGENAMEE}} {{PAGENAME}}]. Find usages of this Wikipedia template [http://{{#replace:{{NAMESPACEE}}|Mapping_|}}.wikipedia.org/wiki/Special:WhatLinksHere/Template:{{PAGENAMEE}}?limit=500&amp;amp;namespace=0 here].&lt;br /&gt;
&lt;br /&gt;
[http://{{SERVERNAME}}/server/mappings/{{#replace:{{NAMESPACEE}}|Mapping_|}}/extractionSamples/{{FULLPAGENAMEE}} Test this mapping] (or in namespace [http://{{SERVERNAME}}/server/mappings/{{#replace:{{NAMESPACEE}}|Mapping_|}}/extractionSamples/{{FULLPAGENAMEE}}?namespace=File File] or [http://{{SERVERNAME}}/server/mappings/{{#replace:{{NAMESPACEE}}|Mapping_|}}/extractionSamples/{{FULLPAGENAMEE}}?namespace=Creator Creator]) with some example Wikipedia pages. Check which [http://{{SERVERNAME}}/server/templatestatistics/{{#replace:{{NAMESPACEE}}|Mapping_|}}/?template={{PAGENAMEE}} properties are not mapped yet].&lt;br /&gt;
&lt;br /&gt;
[[Writing_Mappings/Templates|Read more]] about mapping Wikipedia templates.&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=OntologyProperty:HasAnnotation&amp;diff=45416</id>
		<title>OntologyProperty:HasAnnotation</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=OntologyProperty:HasAnnotation&amp;diff=45416"/>
		<updated>2015-02-23T13:53:30Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: '''{{Reserved for DBpedia}}'''&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''{{Reserved for DBpedia}}'''&lt;br /&gt;
&lt;br /&gt;
{{ObjectProperty&lt;br /&gt;
| labels=&lt;br /&gt;
{{label|en|Indicates an annotation associated with this document}}&lt;br /&gt;
| rdfs:domain = Document&lt;br /&gt;
| rdfs:range = Annotation&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=OntologyProperty:HasKMLData&amp;diff=45415</id>
		<title>OntologyProperty:HasKMLData</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=OntologyProperty:HasKMLData&amp;diff=45415"/>
		<updated>2015-02-23T13:53:15Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: '''{{Reserved for DBpedia}}'''&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''{{Reserved for DBpedia}}'''&lt;br /&gt;
&lt;br /&gt;
{{DatatypeProperty&lt;br /&gt;
| labels=&lt;br /&gt;
{{label|en|Has KML data associated with it (usually because of [https://commons.wikimedia.org/wiki/Commons:Geocoding/Overlay KML overlays])}}&lt;br /&gt;
| rdfs:domain = File&lt;br /&gt;
| rdfs:range = xsd:string&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=OntologyProperty:AsWikiText&amp;diff=45414</id>
		<title>OntologyProperty:AsWikiText</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=OntologyProperty:AsWikiText&amp;diff=45414"/>
		<updated>2015-02-23T13:52:51Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: '''{{Reserved for DBpedia}}'''&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''{{Reserved for DBpedia}}'''&lt;br /&gt;
&lt;br /&gt;
{{DatatypeProperty&lt;br /&gt;
| labels=&lt;br /&gt;
{{label|en|Contains a [https://www.mediawiki.org/wiki/Wikitext WikiText] representation of this thing}}&lt;br /&gt;
| rdfs:domain = &lt;br /&gt;
| rdfs:range = xsd:string&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:DisclaimerMapping&amp;diff=45413</id>
		<title>Template:DisclaimerMapping</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:DisclaimerMapping&amp;diff=45413"/>
		<updated>2015-02-23T13:03:21Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: Reverted edits by Gaurav (Talk) to last revision by Chrisahn&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the mapping for the Wikipedia template [http://{{#replace:{{NAMESPACEE}}|Mapping_|}}.wikipedia.org/wiki/Template:{{PAGENAMEE}} {{PAGENAME}}]. Find usages of this Wikipedia template [http://{{#replace:{{NAMESPACEE}}|Mapping_|}}.wikipedia.org/wiki/Special:WhatLinksHere/Template:{{PAGENAMEE}}?limit=500&amp;amp;namespace=0 here].&lt;br /&gt;
&lt;br /&gt;
[http://{{SERVERNAME}}/server/mappings/{{#replace:{{NAMESPACEE}}|Mapping_|}}/extractionSamples/{{FULLPAGENAMEE}} Test this mapping] with some example Wikipedia pages. Check which [http://{{SERVERNAME}}/server/templatestatistics/{{#replace:{{NAMESPACEE}}|Mapping_|}}/?template={{PAGENAMEE}} properties are not mapped yet].&lt;br /&gt;
&lt;br /&gt;
[[Writing_Mappings/Templates|Read more]] about mapping Wikipedia templates.&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=How_to_add_a_mapping_namespace&amp;diff=38912</id>
		<title>How to add a mapping namespace</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=How_to_add_a_mapping_namespace&amp;diff=38912"/>
		<updated>2014-12-21T13:50:45Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: /* Get language code and rank */ Don't use namespace numbers &amp;gt;= 400&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As an example, we use the fictitious language ''Xxyzish'' with Wikipedia domain ''xx'' and Wikipedia rank 44.&lt;br /&gt;
&lt;br /&gt;
'''CAUTION''': several subtle code changes will be needed to accomodate '''language codes that contain a dash''' (e.g. ''roa-rup'' or ''be-x-old''), especially in regard to URLs, file names and other identifiers, also in parts of the code base not listed here. In this case, please update the code and this guide.&lt;br /&gt;
&lt;br /&gt;
=== Get language code and rank ===&lt;br /&gt;
&lt;br /&gt;
Get the wiki language code and rank from [http://s23.org/wikistats/wikipedias_html.php the list of Wikipedias].&lt;br /&gt;
&lt;br /&gt;
Namespace number: multiply the rank by 2 and add 200&lt;br /&gt;
&lt;br /&gt;
Example: language code &amp;quot;xx&amp;quot;, rank 44, namespace number 288.&lt;br /&gt;
&lt;br /&gt;
'''CAUTION''': If the calculated namespace number already exists for another language (because the ranking has changed) do '''not''' change the existing namespace number. Please find a neighboring or close enough number that works.&lt;br /&gt;
&lt;br /&gt;
Example: If 288 is in use, we choose some other number that is not used, let's say 298.&lt;br /&gt;
&lt;br /&gt;
'''CAUTION''': Do not use namespace numbers &amp;gt;= 400. Namespaces 400 and above are used by MediaWiki. Please find a number between 200 and 398 that is not yet used.&lt;br /&gt;
&lt;br /&gt;
Example: If the language rank is 100, the formula above would yield namespace number 400. Instead, we choose some other number that is not used, let's say 398.&lt;br /&gt;
&lt;br /&gt;
=== Update mappings wiki ===&lt;br /&gt;
&lt;br /&gt;
==== Update MediaWiki settings ====&lt;br /&gt;
&lt;br /&gt;
Log onto the machine that is running this mappings wiki, i.e. serving http://mappings.dbpedia.org/index.php URLs.&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php. Add the following snippet in the correct alphabetical position in the map defining the extra namespaces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;xx&amp;quot;=&amp;gt;288,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the Apache server.&lt;br /&gt;
&lt;br /&gt;
==== Add the mappings main page ====&lt;br /&gt;
&lt;br /&gt;
Edit {{fullurl:Mapping xx}}. The page content should be the following, where ''Xxyzish'' is the English name of the language:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Mapping main page|xx|Xxyzish}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update [[MediaWiki:Sidebar|mappings wiki sidebar]] ====&lt;br /&gt;
&lt;br /&gt;
Edit [[MediaWiki:Sidebar]]. Add a link for the new language in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
** Mapping xx|Mappings (xx)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update [[DBpedia datasets|datasets overview]] ====&lt;br /&gt;
&lt;br /&gt;
Edit [[DBpedia datasets]]. Add a column for the new language in the correct alphabetical position and update all rows according to the settings in [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.default.properties dump/extraction.default.properties]. This is probably the most tedious part...&lt;br /&gt;
&lt;br /&gt;
=== Update the extraction framework ===&lt;br /&gt;
&lt;br /&gt;
==== Edit Namespace.scala ====&lt;br /&gt;
&lt;br /&gt;
Edit your copy of [https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/wikiparser/Namespace.scala core/src/main/scala/org/dbpedia/extraction/wikiparser/Namespace.scala]. Add something like this in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;xx&amp;quot;-&amp;gt;288,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Edit extraction.default.properties ====&lt;br /&gt;
&lt;br /&gt;
Edit your copy of [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.default.properties dump/extraction.default.properties]. Add something like this in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extractors.xx=MappingExtractor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can add more extractors, but make sure that the required configuration exists for the new language.&lt;br /&gt;
&lt;br /&gt;
==== Update namespace settings for mappings wiki ====&lt;br /&gt;
&lt;br /&gt;
To update the namespace settings for the mappings wiki, cd to core/ and run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
../clean-install-run generate-settings&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Commit changes ====&lt;br /&gt;
&lt;br /&gt;
Commit and push the changes to default branch.&lt;br /&gt;
&lt;br /&gt;
=== Update and restart the mapping server ===&lt;br /&gt;
&lt;br /&gt;
Log onto the machine that is running the mapping server, i.e. serving http://mappings.dbpedia.org/server/ URLs.&lt;br /&gt;
&lt;br /&gt;
Stop the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /etc/init.d/mappings-server stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if there's no start/stop script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps axfu | grep java&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look for class ...server.Server, and then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kill &amp;lt;process id&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a dummy file extraction_framework/server/src/main/statistics/mappingstats_xx.txt with the following content (make sure there are '''two empty lines''' at the end!): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wikiStats|xx&lt;br /&gt;
&lt;br /&gt;
redirects|0&lt;br /&gt;
&lt;br /&gt;
templates|0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then update and compile the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd extraction_framework&lt;br /&gt;
git pull&lt;br /&gt;
mvn clean install --projects core,server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, start the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /etc/init.d/mappings-server start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if there's no start/stop script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd extraction_framework/server&lt;br /&gt;
../run server &amp;amp;&amp;gt;server-&amp;lt;YYYY&amp;gt;-&amp;lt;MM&amp;gt;-&amp;lt;DD&amp;gt;.01.log &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Generate and deploy statistics ===&lt;br /&gt;
&lt;br /&gt;
==== Extract data from Wikipedia dump file ====&lt;br /&gt;
&lt;br /&gt;
Download the latest dump for language xx. [https://github.com/dbpedia/extraction-framework/wiki/Extraction-Instructions see here for details]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dump&amp;gt; ../run download config={download-config-file}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run RedirectExtractor, InfoboxExtractor and TemplateParameterExtractor. [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.stats.properties dump/extraction.stats.properties] should already contain the correct settings. cd into directory dump/ and execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dump&amp;gt; ../run stats-extraction extraction.stats.properties&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Extract statistics from triples files ====&lt;br /&gt;
&lt;br /&gt;
cd into directory server/, modify the path to the dump base dir in pom.xml if necessary and run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server&amp;gt; ../run stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy src/main/statistics/mappingstatistics_xx.txt to same folder on the mappings server.&lt;br /&gt;
&lt;br /&gt;
=== Update and deploy sprint stuff ===&lt;br /&gt;
&lt;br /&gt;
Ask Pablo how to do that...&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=How_to_add_a_mapping_namespace&amp;diff=38911</id>
		<title>How to add a mapping namespace</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=How_to_add_a_mapping_namespace&amp;diff=38911"/>
		<updated>2014-12-21T13:44:56Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: sourceforge -&amp;gt; github correct section name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As an example, we use the fictitious language ''Xxyzish'' with Wikipedia domain ''xx'' and Wikipedia rank 44.&lt;br /&gt;
&lt;br /&gt;
'''CAUTION''': several subtle code changes will be needed to accomodate '''language codes that contain a dash''' (e.g. ''roa-rup'' or ''be-x-old''), especially in regard to URLs, file names and other identifiers, also in parts of the code base not listed here. In this case, please update the code and this guide.&lt;br /&gt;
&lt;br /&gt;
=== Get language code and rank ===&lt;br /&gt;
&lt;br /&gt;
Get the wiki language code and rank from [http://s23.org/wikistats/wikipedias_html.php the list of Wikipedias].&lt;br /&gt;
&lt;br /&gt;
Namespace number: multiply the rank by 2 and add 200&lt;br /&gt;
&lt;br /&gt;
Example: language code &amp;quot;xx&amp;quot;, rank 44, namespace number 288.&lt;br /&gt;
&lt;br /&gt;
'''CAUTION''': If the calculated namespace number already exists for another language (because the ranking has changed) do '''not''' change the existing namespace number. Please find a neighboring or close enough number that works.&lt;br /&gt;
&lt;br /&gt;
Example: if 288 is in use, we choose some other number that is not used, let's say 298.&lt;br /&gt;
&lt;br /&gt;
=== Update mappings wiki ===&lt;br /&gt;
&lt;br /&gt;
==== Update MediaWiki settings ====&lt;br /&gt;
&lt;br /&gt;
Log onto the machine that is running this mappings wiki, i.e. serving http://mappings.dbpedia.org/index.php URLs.&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php. Add the following snippet in the correct alphabetical position in the map defining the extra namespaces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;xx&amp;quot;=&amp;gt;288,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the Apache server.&lt;br /&gt;
&lt;br /&gt;
==== Add the mappings main page ====&lt;br /&gt;
&lt;br /&gt;
Edit {{fullurl:Mapping xx}}. The page content should be the following, where ''Xxyzish'' is the English name of the language:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Mapping main page|xx|Xxyzish}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update [[MediaWiki:Sidebar|mappings wiki sidebar]] ====&lt;br /&gt;
&lt;br /&gt;
Edit [[MediaWiki:Sidebar]]. Add a link for the new language in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
** Mapping xx|Mappings (xx)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update [[DBpedia datasets|datasets overview]] ====&lt;br /&gt;
&lt;br /&gt;
Edit [[DBpedia datasets]]. Add a column for the new language in the correct alphabetical position and update all rows according to the settings in [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.default.properties dump/extraction.default.properties]. This is probably the most tedious part...&lt;br /&gt;
&lt;br /&gt;
=== Update the extraction framework ===&lt;br /&gt;
&lt;br /&gt;
==== Edit Namespace.scala ====&lt;br /&gt;
&lt;br /&gt;
Edit your copy of [https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/wikiparser/Namespace.scala core/src/main/scala/org/dbpedia/extraction/wikiparser/Namespace.scala]. Add something like this in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;xx&amp;quot;-&amp;gt;288,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Edit extraction.default.properties ====&lt;br /&gt;
&lt;br /&gt;
Edit your copy of [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.default.properties dump/extraction.default.properties]. Add something like this in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extractors.xx=MappingExtractor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can add more extractors, but make sure that the required configuration exists for the new language.&lt;br /&gt;
&lt;br /&gt;
==== Update namespace settings for mappings wiki ====&lt;br /&gt;
&lt;br /&gt;
To update the namespace settings for the mappings wiki, cd to core/ and run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
../clean-install-run generate-settings&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Commit changes ====&lt;br /&gt;
&lt;br /&gt;
Commit and push the changes to default branch.&lt;br /&gt;
&lt;br /&gt;
=== Update and restart the mapping server ===&lt;br /&gt;
&lt;br /&gt;
Log onto the machine that is running the mapping server, i.e. serving http://mappings.dbpedia.org/server/ URLs.&lt;br /&gt;
&lt;br /&gt;
Stop the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /etc/init.d/mappings-server stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if there's no start/stop script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps axfu | grep java&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look for class ...server.Server, and then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kill &amp;lt;process id&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a dummy file extraction_framework/server/src/main/statistics/mappingstats_xx.txt with the following content (make sure there are '''two empty lines''' at the end!): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wikiStats|xx&lt;br /&gt;
&lt;br /&gt;
redirects|0&lt;br /&gt;
&lt;br /&gt;
templates|0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then update and compile the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd extraction_framework&lt;br /&gt;
git pull&lt;br /&gt;
mvn clean install --projects core,server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, start the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /etc/init.d/mappings-server start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if there's no start/stop script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd extraction_framework/server&lt;br /&gt;
../run server &amp;amp;&amp;gt;server-&amp;lt;YYYY&amp;gt;-&amp;lt;MM&amp;gt;-&amp;lt;DD&amp;gt;.01.log &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Generate and deploy statistics ===&lt;br /&gt;
&lt;br /&gt;
==== Extract data from Wikipedia dump file ====&lt;br /&gt;
&lt;br /&gt;
Download the latest dump for language xx. [https://github.com/dbpedia/extraction-framework/wiki/Extraction-Instructions see here for details]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dump&amp;gt; ../run download config={download-config-file}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run RedirectExtractor, InfoboxExtractor and TemplateParameterExtractor. [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.stats.properties dump/extraction.stats.properties] should already contain the correct settings. cd into directory dump/ and execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dump&amp;gt; ../run stats-extraction extraction.stats.properties&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Extract statistics from triples files ====&lt;br /&gt;
&lt;br /&gt;
cd into directory server/, modify the path to the dump base dir in pom.xml if necessary and run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server&amp;gt; ../run stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy src/main/statistics/mappingstatistics_xx.txt to same folder on the mappings server.&lt;br /&gt;
&lt;br /&gt;
=== Update and deploy sprint stuff ===&lt;br /&gt;
&lt;br /&gt;
Ask Pablo how to do that...&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=How_to_add_a_mapping_namespace&amp;diff=38910</id>
		<title>How to add a mapping namespace</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=How_to_add_a_mapping_namespace&amp;diff=38910"/>
		<updated>2014-12-21T13:44:19Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: sourceforge -&amp;gt; github correct link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As an example, we use the fictitious language ''Xxyzish'' with Wikipedia domain ''xx'' and Wikipedia rank 44.&lt;br /&gt;
&lt;br /&gt;
'''CAUTION''': several subtle code changes will be needed to accomodate '''language codes that contain a dash''' (e.g. ''roa-rup'' or ''be-x-old''), especially in regard to URLs, file names and other identifiers, also in parts of the code base not listed here. In this case, please update the code and this guide.&lt;br /&gt;
&lt;br /&gt;
=== Get language code and rank ===&lt;br /&gt;
&lt;br /&gt;
Get the wiki language code and rank from [http://s23.org/wikistats/wikipedias_html.php the list of Wikipedias].&lt;br /&gt;
&lt;br /&gt;
Namespace number: multiply the rank by 2 and add 200&lt;br /&gt;
&lt;br /&gt;
Example: language code &amp;quot;xx&amp;quot;, rank 44, namespace number 288.&lt;br /&gt;
&lt;br /&gt;
'''CAUTION''': If the calculated namespace number already exists for another language (because the ranking has changed) do '''not''' change the existing namespace number. Please find a neighboring or close enough number that works.&lt;br /&gt;
&lt;br /&gt;
Example: if 288 is in use, we choose some other number that is not used, let's say 298.&lt;br /&gt;
&lt;br /&gt;
=== Update mappings wiki ===&lt;br /&gt;
&lt;br /&gt;
==== Update MediaWiki settings ====&lt;br /&gt;
&lt;br /&gt;
Log onto the machine that is running this mappings wiki, i.e. serving http://mappings.dbpedia.org/index.php URLs.&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php. Add the following snippet in the correct alphabetical position in the map defining the extra namespaces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;xx&amp;quot;=&amp;gt;288,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the Apache server.&lt;br /&gt;
&lt;br /&gt;
==== Add the mappings main page ====&lt;br /&gt;
&lt;br /&gt;
Edit {{fullurl:Mapping xx}}. The page content should be the following, where ''Xxyzish'' is the English name of the language:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Mapping main page|xx|Xxyzish}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update [[MediaWiki:Sidebar|mappings wiki sidebar]] ====&lt;br /&gt;
&lt;br /&gt;
Edit [[MediaWiki:Sidebar]]. Add a link for the new language in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
** Mapping xx|Mappings (xx)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update [[DBpedia datasets|datasets overview]] ====&lt;br /&gt;
&lt;br /&gt;
Edit [[DBpedia datasets]]. Add a column for the new language in the correct alphabetical position and update all rows according to the settings in [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.default.properties dump/extraction.default.properties]. This is probably the most tedious part...&lt;br /&gt;
&lt;br /&gt;
=== Update the extraction framework ===&lt;br /&gt;
&lt;br /&gt;
==== Edit Namespace.scala ====&lt;br /&gt;
&lt;br /&gt;
Edit your copy of [https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/wikiparser/Namespace.scala core/src/main/scala/org/dbpedia/extraction/wikiparser/Namespace.scala]. Add something like this in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;xx&amp;quot;-&amp;gt;288,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Edit extract.default.properties ====&lt;br /&gt;
&lt;br /&gt;
Edit your copy of [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.default.properties dump/extraction.default.properties]. Add something like this in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extractors.xx=MappingExtractor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can add more extractors, but make sure that the required configuration exists for the new language.&lt;br /&gt;
&lt;br /&gt;
==== Update namespace settings for mappings wiki ====&lt;br /&gt;
&lt;br /&gt;
To update the namespace settings for the mappings wiki, cd to core/ and run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
../clean-install-run generate-settings&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Commit changes ====&lt;br /&gt;
&lt;br /&gt;
Commit and push the changes to default branch.&lt;br /&gt;
&lt;br /&gt;
=== Update and restart the mapping server ===&lt;br /&gt;
&lt;br /&gt;
Log onto the machine that is running the mapping server, i.e. serving http://mappings.dbpedia.org/server/ URLs.&lt;br /&gt;
&lt;br /&gt;
Stop the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /etc/init.d/mappings-server stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if there's no start/stop script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps axfu | grep java&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look for class ...server.Server, and then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kill &amp;lt;process id&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a dummy file extraction_framework/server/src/main/statistics/mappingstats_xx.txt with the following content (make sure there are '''two empty lines''' at the end!): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wikiStats|xx&lt;br /&gt;
&lt;br /&gt;
redirects|0&lt;br /&gt;
&lt;br /&gt;
templates|0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then update and compile the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd extraction_framework&lt;br /&gt;
git pull&lt;br /&gt;
mvn clean install --projects core,server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, start the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /etc/init.d/mappings-server start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if there's no start/stop script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd extraction_framework/server&lt;br /&gt;
../run server &amp;amp;&amp;gt;server-&amp;lt;YYYY&amp;gt;-&amp;lt;MM&amp;gt;-&amp;lt;DD&amp;gt;.01.log &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Generate and deploy statistics ===&lt;br /&gt;
&lt;br /&gt;
==== Extract data from Wikipedia dump file ====&lt;br /&gt;
&lt;br /&gt;
Download the latest dump for language xx. [https://github.com/dbpedia/extraction-framework/wiki/Extraction-Instructions see here for details]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dump&amp;gt; ../run download config={download-config-file}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run RedirectExtractor, InfoboxExtractor and TemplateParameterExtractor. [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.stats.properties dump/extraction.stats.properties] should already contain the correct settings. cd into directory dump/ and execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dump&amp;gt; ../run stats-extraction extraction.stats.properties&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Extract statistics from triples files ====&lt;br /&gt;
&lt;br /&gt;
cd into directory server/, modify the path to the dump base dir in pom.xml if necessary and run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server&amp;gt; ../run stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy src/main/statistics/mappingstatistics_xx.txt to same folder on the mappings server.&lt;br /&gt;
&lt;br /&gt;
=== Update and deploy sprint stuff ===&lt;br /&gt;
&lt;br /&gt;
Ask Pablo how to do that...&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=How_to_add_a_mapping_namespace&amp;diff=38909</id>
		<title>How to add a mapping namespace</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=How_to_add_a_mapping_namespace&amp;diff=38909"/>
		<updated>2014-12-21T13:42:47Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: sourceforge -&amp;gt; github&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As an example, we use the fictitious language ''Xxyzish'' with Wikipedia domain ''xx'' and Wikipedia rank 44.&lt;br /&gt;
&lt;br /&gt;
'''CAUTION''': several subtle code changes will be needed to accomodate '''language codes that contain a dash''' (e.g. ''roa-rup'' or ''be-x-old''), especially in regard to URLs, file names and other identifiers, also in parts of the code base not listed here. In this case, please update the code and this guide.&lt;br /&gt;
&lt;br /&gt;
=== Get language code and rank ===&lt;br /&gt;
&lt;br /&gt;
Get the wiki language code and rank from [http://s23.org/wikistats/wikipedias_html.php the list of Wikipedias].&lt;br /&gt;
&lt;br /&gt;
Namespace number: multiply the rank by 2 and add 200&lt;br /&gt;
&lt;br /&gt;
Example: language code &amp;quot;xx&amp;quot;, rank 44, namespace number 288.&lt;br /&gt;
&lt;br /&gt;
'''CAUTION''': If the calculated namespace number already exists for another language (because the ranking has changed) do '''not''' change the existing namespace number. Please find a neighboring or close enough number that works.&lt;br /&gt;
&lt;br /&gt;
Example: if 288 is in use, we choose some other number that is not used, let's say 298.&lt;br /&gt;
&lt;br /&gt;
=== Update mappings wiki ===&lt;br /&gt;
&lt;br /&gt;
==== Update MediaWiki settings ====&lt;br /&gt;
&lt;br /&gt;
Log onto the machine that is running this mappings wiki, i.e. serving http://mappings.dbpedia.org/index.php URLs.&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php. Add the following snippet in the correct alphabetical position in the map defining the extra namespaces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;xx&amp;quot;=&amp;gt;288,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the Apache server.&lt;br /&gt;
&lt;br /&gt;
==== Add the mappings main page ====&lt;br /&gt;
&lt;br /&gt;
Edit {{fullurl:Mapping xx}}. The page content should be the following, where ''Xxyzish'' is the English name of the language:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Mapping main page|xx|Xxyzish}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update [[MediaWiki:Sidebar|mappings wiki sidebar]] ====&lt;br /&gt;
&lt;br /&gt;
Edit [[MediaWiki:Sidebar]]. Add a link for the new language in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
** Mapping xx|Mappings (xx)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Update [[DBpedia datasets|datasets overview]] ====&lt;br /&gt;
&lt;br /&gt;
Edit [[DBpedia datasets]]. Add a column for the new language in the correct alphabetical position and update all rows according to the settings in [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.default.properties dump/extraction.default.properties]. This is probably the most tedious part...&lt;br /&gt;
&lt;br /&gt;
=== Update the extraction framework ===&lt;br /&gt;
&lt;br /&gt;
==== Edit Namespace.scala ====&lt;br /&gt;
&lt;br /&gt;
Edit your copy of [https://github.com/dbpedia/extraction-framework/blob/master/core/src/main/scala/org/dbpedia/extraction/wikiparser/Namespace.scala core/src/main/scala/org/dbpedia/extraction/wikiparser/Namespace.scala]. Add something like this in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;xx&amp;quot;-&amp;gt;288,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Edit extract.default.properties ====&lt;br /&gt;
&lt;br /&gt;
Edit your copy of [https://github.com/dbpedia/extraction-framework/blob/master/dump/extract.default.properties dump/extract.default.properties]. Add something like this in the correct alphabetical position:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extractors.xx=MappingExtractor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can add more extractors, but make sure that the required configuration exists for the new language.&lt;br /&gt;
&lt;br /&gt;
==== Update namespace settings for mappings wiki ====&lt;br /&gt;
&lt;br /&gt;
To update the namespace settings for the mappings wiki, cd to core/ and run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
../clean-install-run generate-settings&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Commit changes ====&lt;br /&gt;
&lt;br /&gt;
Commit and push the changes to default branch.&lt;br /&gt;
&lt;br /&gt;
=== Update and restart the mapping server ===&lt;br /&gt;
&lt;br /&gt;
Log onto the machine that is running the mapping server, i.e. serving http://mappings.dbpedia.org/server/ URLs.&lt;br /&gt;
&lt;br /&gt;
Stop the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /etc/init.d/mappings-server stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if there's no start/stop script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ps axfu | grep java&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look for class ...server.Server, and then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
kill &amp;lt;process id&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a dummy file extraction_framework/server/src/main/statistics/mappingstats_xx.txt with the following content (make sure there are '''two empty lines''' at the end!): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wikiStats|xx&lt;br /&gt;
&lt;br /&gt;
redirects|0&lt;br /&gt;
&lt;br /&gt;
templates|0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then update and compile the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd extraction_framework&lt;br /&gt;
git pull&lt;br /&gt;
mvn clean install --projects core,server&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, start the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo /etc/init.d/mappings-server start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if there's no start/stop script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd extraction_framework/server&lt;br /&gt;
../run server &amp;amp;&amp;gt;server-&amp;lt;YYYY&amp;gt;-&amp;lt;MM&amp;gt;-&amp;lt;DD&amp;gt;.01.log &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Generate and deploy statistics ===&lt;br /&gt;
&lt;br /&gt;
==== Extract data from Wikipedia dump file ====&lt;br /&gt;
&lt;br /&gt;
Download the latest dump for language xx. [https://github.com/dbpedia/extraction-framework/wiki/Extraction-Instructions see here for details]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dump&amp;gt; ../run download config={download-config-file}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run RedirectExtractor, InfoboxExtractor and TemplateParameterExtractor. [https://github.com/dbpedia/extraction-framework/blob/master/dump/extraction.stats.properties dump/extraction.stats.properties] should already contain the correct settings. cd into directory dump/ and execute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dump&amp;gt; ../run stats-extraction extraction.stats.properties&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Extract statistics from triples files ====&lt;br /&gt;
&lt;br /&gt;
cd into directory server/, modify the path to the dump base dir in pom.xml if necessary and run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server&amp;gt; ../run stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy src/main/statistics/mappingstatistics_xx.txt to same folder on the mappings server.&lt;br /&gt;
&lt;br /&gt;
=== Update and deploy sprint stuff ===&lt;br /&gt;
&lt;br /&gt;
Ask Pablo how to do that...&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_hy&amp;diff=38861</id>
		<title>Mapping hy</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Mapping_hy&amp;diff=38861"/>
		<updated>2014-12-09T19:44:40Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: There is no namespace Mapping_hy yet, a developer has to install it first&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please don't add pages named '''Mapping hy:Xyz'''. There is no namespace Mapping_hy yet, a developer has to install it first. Adding pages whose names start with Mapping_hy will lead to problems later. Please write to dbpedia-discussion. Thanks.&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=MediaWiki:Sidebar&amp;diff=28398</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=MediaWiki:Sidebar&amp;diff=28398"/>
		<updated>2013-09-18T11:02:13Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: fixed order of eo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
* DBpedia&lt;br /&gt;
** {{fullurl:Special:AllPages|namespace=200}}|Ontology Classes&lt;br /&gt;
** {{fullurl:Special:AllPages|namespace=206}}|Ontology Dataypes&lt;br /&gt;
** {{fullurl:Special:AllPages|namespace=202}}|Ontology Properties&lt;br /&gt;
** Mapping ar|Mappings (ar)&lt;br /&gt;
** Mapping bg|Mappings (bg)&lt;br /&gt;
** Mapping bn|Mappings (bn)&lt;br /&gt;
** Mapping ca|Mappings (ca)&lt;br /&gt;
** Mapping cs|Mappings (cs)&lt;br /&gt;
** Mapping de|Mappings (de)&lt;br /&gt;
** Mapping el|Mappings (el)&lt;br /&gt;
** Mapping en|Mappings (en)&lt;br /&gt;
** Mapping eo|Mappings (eo)&lt;br /&gt;
** Mapping es|Mappings (es)&lt;br /&gt;
** Mapping et|Mappings (et)&lt;br /&gt;
** Mapping eu|Mappings (eu)&lt;br /&gt;
** Mapping fr|Mappings (fr)&lt;br /&gt;
** Mapping ga|Mappings (ga)&lt;br /&gt;
** Mapping hi|Mappings (hi)&lt;br /&gt;
** Mapping hr|Mappings (hr)&lt;br /&gt;
** Mapping hu|Mappings (hu)&lt;br /&gt;
** Mapping id|Mappings (id)&lt;br /&gt;
** Mapping it|Mappings (it)&lt;br /&gt;
** Mapping ja|Mappings (ja)&lt;br /&gt;
** Mapping ko|Mappings (ko)&lt;br /&gt;
** Mapping nl|Mappings (nl)&lt;br /&gt;
** Mapping pl|Mappings (pl)&lt;br /&gt;
** Mapping pt|Mappings (pt)&lt;br /&gt;
** Mapping ru|Mappings (ru)&lt;br /&gt;
** Mapping sk|Mappings (sk)&lt;br /&gt;
** Mapping sl|Mappings (sl)&lt;br /&gt;
** Mapping tr|Mappings (tr)&lt;br /&gt;
** Mapping ur|Mappings (ur)&lt;br /&gt;
** Mapping zh|Mappings (zh)&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=OntologyProperty:Country&amp;diff=28127</id>
		<title>OntologyProperty:Country</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=OntologyProperty:Country&amp;diff=28127"/>
		<updated>2013-08-29T15:00:23Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: | owl:equivalentProperty = wikidata:P17&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ObjectProperty&lt;br /&gt;
|labels=&lt;br /&gt;
  {{label|en|country}}&lt;br /&gt;
  {{label|de|Land}}&lt;br /&gt;
  {{label|pt|país}}&lt;br /&gt;
  {{label|el|χώρα}}&lt;br /&gt;
  {{label|nl|land}}&lt;br /&gt;
  {{label|fr|pays}}&lt;br /&gt;
  {{label|es|país}}&lt;br /&gt;
| rdfs:range = Country&lt;br /&gt;
| owl:equivalentProperty = wikidata:P17&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:ObjectProperty&amp;diff=28126</id>
		<title>Template:ObjectProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:ObjectProperty&amp;diff=28126"/>
		<updated>2013-08-29T13:43:54Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: use Template:LinkProperties&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{DisclaimerOntologyProperty}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;th colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ontology object property &amp;lt;small&amp;gt;([[Template:ObjectProperty|&amp;lt;span style=&amp;quot;cursor:help;&amp;quot;&amp;gt;help&amp;lt;/span&amp;gt;]])&amp;lt;/small&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
{{#if:{{{labels|}}}|{{{labels}}}|&lt;br /&gt;
{{#if:{{{rdfs:label@en|}}}|&amp;lt;!-- no message --&amp;gt;|&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;please define an English label: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;labels = {{label|en|...}} ...&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if:{{{rdfs:label@ar|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ar&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ar}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@bg|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@bg&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@bg}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@bn|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@bn&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@bn}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ca|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ca&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ca}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@cs|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@cs&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@cs}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@de|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@de&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@de}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@el|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@el&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@el}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@en|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@en&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@en}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@es|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@es&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@es}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@fr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@fr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@fr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ga|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ga&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ga}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hi|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hi&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hi}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hu|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hu&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hu}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@it|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@it&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@it}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ja|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ja&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ja}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ko|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ko&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ko}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@nl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@nl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@nl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@pl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@pl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@pl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@pt|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@pt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@pt}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ru|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ru&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ru}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@sl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@sl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@sl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@tr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@tr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@tr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}}&lt;br /&gt;
{{{comments|}}}&lt;br /&gt;
{{#if:{{{rdfs:comment@en|}}}|&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:comment@en&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:comment@en}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:domain&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkClasses|{{{rdfs:domain|}}}|owl:Thing}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:range&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkClasses|{{{rdfs:range|}}}|owl:Thing}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdf:type&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdf:type|}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:subPropertyOf&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkProperties|{{{rdfs:subPropertyOf|}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;owl:equivalentProperty&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkProperties|{{{owl:equivalentProperty|}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;owl:propertyDisjointWith&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkProperties|{{{owl:propertyDisjointWith|}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;The '''&amp;lt;nowiki&amp;gt;{{ObjectProperty}}&amp;lt;/nowiki&amp;gt;''' template can be used to define ontology object properties. &lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{ObjectProperty&lt;br /&gt;
| labels                   =&lt;br /&gt;
{{label|en|...}}&lt;br /&gt;
{{label|..|...}}&lt;br /&gt;
| comments                 =&lt;br /&gt;
{{comment|en|...}}&lt;br /&gt;
{{comment|..|...}}&lt;br /&gt;
| rdfs:domain              = &lt;br /&gt;
| rdfs:range               =&lt;br /&gt;
| rdf:type                 = [ owl:FunctionalProperty | owl:InverseFunctionalProperty | owl:TransitiveProperty | owl:SymmetricProperty | owl:ReflexiveObjectProperty | owl:IrreflexiveObjectProperty ]&lt;br /&gt;
| rdfs:subPropertyOf       =&lt;br /&gt;
| owl:equivalentProperty   = &lt;br /&gt;
| owl:propertyDisjointWith =&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
* '''labels''': should be defined to provide a human-readable version of a property's name. Use ISO language code 639-1 (e.g. &amp;lt;nowiki&amp;gt;{{label|en|...}}&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
* '''comments''': should be defined to provide a human-readable description of a property. Use ISO language code 639-1 (e.g. &amp;lt;nowiki&amp;gt;{{comment|en|...}}&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
* '''rdfs:domain''': is used to state that any resource that has a given property is an instance of the stated class. If left empty, owl:Thing is assumed.&lt;br /&gt;
* '''rdfs:range''': is used to state that the values of a property are instances of the stated class. If left empty, owl:Thing is assumed.&lt;br /&gt;
* '''rdf:type''': currently, only [http://www.w3.org/TR/owl-ref/#FunctionalProperty-def owl:FunctionalProperty],  [http://www.w3.org/TR/owl-ref/#InverseFunctionalProperty-def owl:InverseFunctionalProperty], [http://www.w3.org/TR/owl-ref/#TransitiveProperty-def owl:TransitiveProperty], [http://www.w3.org/TR/owl-ref/#SymmetricProperty-def owl:SymmetricProperty], [http://www.w3.org/2007/OWL/wiki/Syntax#Reflexive_Object_Properties owl:ReflexiveProperty] and [http://www.w3.org/2007/OWL/wiki/Syntax#Irreflexive_Object_Properties owl:IrreflexiveProperty] are supported.&lt;br /&gt;
* '''rdfs:subPropertyOf''': defines that the property is a subproperty of some other property. Formally this means that if P1 is a subproperty of P2, then the property values of P1 are a subset of the property values of P2.&lt;br /&gt;
* '''owl:equivalentProperty''':&lt;br /&gt;
* '''owl:propertyDisjointWith''':&lt;br /&gt;
&lt;br /&gt;
For backwards compatibilty, the following format for labels and comments is also possible but '''deprecated''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{ObjectProperty&lt;br /&gt;
| rdfs:label@en          =&lt;br /&gt;
| rdfs:label@..          =&lt;br /&gt;
| rdfs:comment@en        =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
The definition of the DBpedia ontology property [[OntologyProperty:doctoralAdvisor|doctoralAdvisor]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{ObjectProperty&lt;br /&gt;
| labels = &lt;br /&gt;
{{label|en|doctoral advisor}}&lt;br /&gt;
| comments =&lt;br /&gt;
| rdfs:domain  = Scientist&lt;br /&gt;
| rdfs:range   = Person&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will be rendered to this table:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ObjectProperty&lt;br /&gt;
| labels = &lt;br /&gt;
{{label|en|doctoral advisor}}&lt;br /&gt;
| comments =&lt;br /&gt;
| rdfs:domain@en  = Scientist&lt;br /&gt;
| rdfs:range   = Person&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:DatatypeProperty&amp;diff=28125</id>
		<title>Template:DatatypeProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:DatatypeProperty&amp;diff=28125"/>
		<updated>2013-08-29T13:43:43Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: added owl:propertyDisjointWith&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{DisclaimerOntologyProperty}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;th colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ontology datatype property &amp;lt;small&amp;gt;([[Template:DatatypeProperty|&amp;lt;span style=&amp;quot;cursor:help;&amp;quot;&amp;gt;help&amp;lt;/span&amp;gt;]])&amp;lt;/small&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
{{#if:{{{labels|}}}|{{{labels}}}|&lt;br /&gt;
{{#if:{{{rdfs:label@en|}}}|&amp;lt;!-- no message --&amp;gt;|&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;please define an English label: &amp;lt;nowiki&amp;gt;labels = {{label|en|...}} ...&amp;lt;/nowiki&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if:{{{rdfs:label@ar|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ar&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ar}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@bg|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@bg&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@bg}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@bn|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@bn&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@bn}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ca|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ca&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ca}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@cs|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@cs&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@cs}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@de|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@de&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@de}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@el|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@el&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@el}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@en|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@en&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@en}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@es|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@es&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@es}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@fr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@fr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@fr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ga|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ga&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ga}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hi|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hi&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hi}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hu|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hu&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hu}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@it|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@it&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@it}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ja|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ja&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ja}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ko|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ko&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ko}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@nl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@nl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@nl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@pl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@pl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@pl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@pt|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@pt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@pt}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ru|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ru&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ru}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@sl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@sl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@sl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@tr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@tr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@tr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}}&lt;br /&gt;
{{{comments|}}}&lt;br /&gt;
{{#if:{{{rdfs:comment@en|}}}|&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:comment@en&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:comment@en}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:domain&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkClasses|{{{rdfs:domain|}}}|owl:Thing}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:range&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{#if:{{{rdfs:range|}}}|[[Datatype:{{{rdfs:range}}}|{{{rdfs:range}}}]]|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;please define range&amp;lt;/span&amp;gt;}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdf:type&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{#if:{{{rdf:type|}}}|{{{rdf:type}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:subPropertyOf&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkProperties|{{{rdfs:subPropertyOf|}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;owl:equivalentProperty&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkProperties|{{{owl:equivalentProperty|}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;owl:propertyDisjointWith&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkProperties|{{{owl:propertyDisjointWith|}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;The '''&amp;lt;nowiki&amp;gt;{{DatatypeProperty}}&amp;lt;/nowiki&amp;gt;''' template can be used to define ontology datatype properties.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{DatatypeProperty &lt;br /&gt;
| labels                 =&lt;br /&gt;
{{label|en|...}}&lt;br /&gt;
{{label|..|...}}&lt;br /&gt;
| comments               =&lt;br /&gt;
{{comment|en|...}}&lt;br /&gt;
{{comment|..|...}}&lt;br /&gt;
| rdfs:domain            =&lt;br /&gt;
| rdfs:range             =&lt;br /&gt;
| rdf:type               =&lt;br /&gt;
| rdfs:subPropertyOf     =&lt;br /&gt;
| owl:equivalentProperty =&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
* '''labels''': should be defined to provide a human-readable version of a property's name. Use ISO language code 639-1 (e.g. &amp;lt;nowiki&amp;gt;{{label|en|...}}&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
* '''comments''': should be defined to provide a human-readable description of a property. Use ISO language code 639-1 (e.g. &amp;lt;nowiki&amp;gt;{{comment|en|...}}&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
* '''rdfs:domain''': is used to state that any resource that has a given property is an instance of the stated class. If left empty, owl:Thing is assumed.&lt;br /&gt;
* '''rdfs:range''': is used to state that the values of a property are instances of the stated class. &lt;br /&gt;
** XSD Datatypes: xsd:date, xsd:time, xsd:dateTime, xsd:gYear, xsd:gYearMonth, xsd:gMonth, xsd:gMonthDay, xsd:gDay, xsd:boolean, xsd:string, xsd:integer, xsd:double, xsd:float&lt;br /&gt;
** [[DBpedia Datatypes]]&lt;br /&gt;
* '''rdf:type''': currently, only [http://www.w3.org/TR/owl-ref/#FunctionalProperty-def owl:FunctionalProperty] is supported.&lt;br /&gt;
* '''rdfs:subPropertyOf''': defines that the property is a subproperty of some other property. Formally this means that if P1 is a subproperty of P2, then the property values of P1 are a subset of the property values of P2.&lt;br /&gt;
* '''owl:equivalentProperty''':&lt;br /&gt;
&lt;br /&gt;
For backwards compatibilty, the following format for labels and comments is also possible but '''deprecated''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{DatatypeProperty&lt;br /&gt;
| rdfs:label@en          =&lt;br /&gt;
| rdfs:label@..          =&lt;br /&gt;
| rdfs:comment@en        =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
The definition of the DBpedia ontology property [[OntologyProperty:height|height]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{DatatypeProperty &lt;br /&gt;
| labels = &lt;br /&gt;
{{label|en|height}}&lt;br /&gt;
| comments =&lt;br /&gt;
| rdfs:range   = Length&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will be rendered to this table:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{DatatypeProperty &lt;br /&gt;
| labels = &lt;br /&gt;
{{label|en|height}}&lt;br /&gt;
| comments =&lt;br /&gt;
| rdfs:range   = Length&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:DatatypeProperty&amp;diff=28124</id>
		<title>Template:DatatypeProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:DatatypeProperty&amp;diff=28124"/>
		<updated>2013-08-29T13:38:34Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: use Template:LinkProperties also for rdfs:subPropertyOf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{DisclaimerOntologyProperty}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;th colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ontology datatype property &amp;lt;small&amp;gt;([[Template:DatatypeProperty|&amp;lt;span style=&amp;quot;cursor:help;&amp;quot;&amp;gt;help&amp;lt;/span&amp;gt;]])&amp;lt;/small&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
{{#if:{{{labels|}}}|{{{labels}}}|&lt;br /&gt;
{{#if:{{{rdfs:label@en|}}}|&amp;lt;!-- no message --&amp;gt;|&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;please define an English label: &amp;lt;nowiki&amp;gt;labels = {{label|en|...}} ...&amp;lt;/nowiki&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if:{{{rdfs:label@ar|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ar&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ar}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@bg|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@bg&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@bg}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@bn|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@bn&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@bn}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ca|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ca&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ca}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@cs|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@cs&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@cs}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@de|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@de&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@de}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@el|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@el&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@el}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@en|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@en&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@en}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@es|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@es&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@es}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@fr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@fr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@fr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ga|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ga&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ga}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hi|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hi&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hi}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hu|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hu&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hu}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@it|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@it&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@it}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ja|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ja&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ja}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ko|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ko&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ko}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@nl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@nl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@nl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@pl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@pl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@pl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@pt|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@pt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@pt}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ru|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ru&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ru}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@sl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@sl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@sl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@tr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@tr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@tr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}}&lt;br /&gt;
{{{comments|}}}&lt;br /&gt;
{{#if:{{{rdfs:comment@en|}}}|&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:comment@en&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:comment@en}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:domain&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkClasses|{{{rdfs:domain|}}}|owl:Thing}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:range&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{#if:{{{rdfs:range|}}}|[[Datatype:{{{rdfs:range}}}|{{{rdfs:range}}}]]|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;please define range&amp;lt;/span&amp;gt;}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdf:type&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{#if:{{{rdf:type|}}}|{{{rdf:type}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:subPropertyOf&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkProperties|{{{rdfs:subPropertyOf|}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;owl:equivalentProperty&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkProperties|{{{owl:equivalentProperty|}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;The '''&amp;lt;nowiki&amp;gt;{{DatatypeProperty}}&amp;lt;/nowiki&amp;gt;''' template can be used to define ontology datatype properties.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{DatatypeProperty &lt;br /&gt;
| labels                 =&lt;br /&gt;
{{label|en|...}}&lt;br /&gt;
{{label|..|...}}&lt;br /&gt;
| comments               =&lt;br /&gt;
{{comment|en|...}}&lt;br /&gt;
{{comment|..|...}}&lt;br /&gt;
| rdfs:domain            =&lt;br /&gt;
| rdfs:range             =&lt;br /&gt;
| rdf:type               =&lt;br /&gt;
| rdfs:subPropertyOf     =&lt;br /&gt;
| owl:equivalentProperty =&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
* '''labels''': should be defined to provide a human-readable version of a property's name. Use ISO language code 639-1 (e.g. &amp;lt;nowiki&amp;gt;{{label|en|...}}&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
* '''comments''': should be defined to provide a human-readable description of a property. Use ISO language code 639-1 (e.g. &amp;lt;nowiki&amp;gt;{{comment|en|...}}&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
* '''rdfs:domain''': is used to state that any resource that has a given property is an instance of the stated class. If left empty, owl:Thing is assumed.&lt;br /&gt;
* '''rdfs:range''': is used to state that the values of a property are instances of the stated class. &lt;br /&gt;
** XSD Datatypes: xsd:date, xsd:time, xsd:dateTime, xsd:gYear, xsd:gYearMonth, xsd:gMonth, xsd:gMonthDay, xsd:gDay, xsd:boolean, xsd:string, xsd:integer, xsd:double, xsd:float&lt;br /&gt;
** [[DBpedia Datatypes]]&lt;br /&gt;
* '''rdf:type''': currently, only [http://www.w3.org/TR/owl-ref/#FunctionalProperty-def owl:FunctionalProperty] is supported.&lt;br /&gt;
* '''rdfs:subPropertyOf''': defines that the property is a subproperty of some other property. Formally this means that if P1 is a subproperty of P2, then the property values of P1 are a subset of the property values of P2.&lt;br /&gt;
* '''owl:equivalentProperty''':&lt;br /&gt;
&lt;br /&gt;
For backwards compatibilty, the following format for labels and comments is also possible but '''deprecated''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{DatatypeProperty&lt;br /&gt;
| rdfs:label@en          =&lt;br /&gt;
| rdfs:label@..          =&lt;br /&gt;
| rdfs:comment@en        =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
The definition of the DBpedia ontology property [[OntologyProperty:height|height]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{DatatypeProperty &lt;br /&gt;
| labels = &lt;br /&gt;
{{label|en|height}}&lt;br /&gt;
| comments =&lt;br /&gt;
| rdfs:range   = Length&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will be rendered to this table:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{DatatypeProperty &lt;br /&gt;
| labels = &lt;br /&gt;
{{label|en|height}}&lt;br /&gt;
| comments =&lt;br /&gt;
| rdfs:range   = Length&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:DatatypeProperty&amp;diff=28123</id>
		<title>Template:DatatypeProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:DatatypeProperty&amp;diff=28123"/>
		<updated>2013-08-29T13:36:13Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: use Template:LinkProperties&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{DisclaimerOntologyProperty}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;th colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:left&amp;quot;&amp;gt;Ontology datatype property &amp;lt;small&amp;gt;([[Template:DatatypeProperty|&amp;lt;span style=&amp;quot;cursor:help;&amp;quot;&amp;gt;help&amp;lt;/span&amp;gt;]])&amp;lt;/small&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
{{#if:{{{labels|}}}|{{{labels}}}|&lt;br /&gt;
{{#if:{{{rdfs:label@en|}}}|&amp;lt;!-- no message --&amp;gt;|&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;please define an English label: &amp;lt;nowiki&amp;gt;labels = {{label|en|...}} ...&amp;lt;/nowiki&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if:{{{rdfs:label@ar|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ar&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ar}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@bg|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@bg&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@bg}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@bn|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@bn&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@bn}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ca|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ca&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ca}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@cs|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@cs&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@cs}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@de|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@de&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@de}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@el|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@el&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@el}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@en|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@en&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@en}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@es|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@es&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@es}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@fr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@fr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@fr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ga|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ga&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ga}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hi|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hi&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hi}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@hu|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@hu&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@hu}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@it|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@it&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@it}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ja|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ja&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ja}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ko|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ko&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ko}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@nl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@nl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@nl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@pl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@pl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@pl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@pt|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@pt&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@pt}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@ru|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@ru&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@ru}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@sl|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@sl&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@sl}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}} {{#if:{{{rdfs:label@tr|}}}|&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td width=&amp;quot;150px&amp;quot;&amp;gt;rdfs:label@tr&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:label@tr}}}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;}}&lt;br /&gt;
{{{comments|}}}&lt;br /&gt;
{{#if:{{{rdfs:comment@en|}}}|&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:comment@en&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{{rdfs:comment@en}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:domain&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkClasses|{{{rdfs:domain|}}}|owl:Thing}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:range&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{#if:{{{rdfs:range|}}}|[[Datatype:{{{rdfs:range}}}|{{{rdfs:range}}}]]|&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;please define range&amp;lt;/span&amp;gt;}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdf:type&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{#if:{{{rdf:type|}}}|{{{rdf:type}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;rdfs:subPropertyOf&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{#if:{{{rdfs:subPropertyOf|}}}|{{{rdfs:subPropertyOf}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;owl:equivalentProperty&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;{{linkProperties|{{{owl:equivalentProperty|}}}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;The '''&amp;lt;nowiki&amp;gt;{{DatatypeProperty}}&amp;lt;/nowiki&amp;gt;''' template can be used to define ontology datatype properties.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{DatatypeProperty &lt;br /&gt;
| labels                 =&lt;br /&gt;
{{label|en|...}}&lt;br /&gt;
{{label|..|...}}&lt;br /&gt;
| comments               =&lt;br /&gt;
{{comment|en|...}}&lt;br /&gt;
{{comment|..|...}}&lt;br /&gt;
| rdfs:domain            =&lt;br /&gt;
| rdfs:range             =&lt;br /&gt;
| rdf:type               =&lt;br /&gt;
| rdfs:subPropertyOf     =&lt;br /&gt;
| owl:equivalentProperty =&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
* '''labels''': should be defined to provide a human-readable version of a property's name. Use ISO language code 639-1 (e.g. &amp;lt;nowiki&amp;gt;{{label|en|...}}&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
* '''comments''': should be defined to provide a human-readable description of a property. Use ISO language code 639-1 (e.g. &amp;lt;nowiki&amp;gt;{{comment|en|...}}&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
* '''rdfs:domain''': is used to state that any resource that has a given property is an instance of the stated class. If left empty, owl:Thing is assumed.&lt;br /&gt;
* '''rdfs:range''': is used to state that the values of a property are instances of the stated class. &lt;br /&gt;
** XSD Datatypes: xsd:date, xsd:time, xsd:dateTime, xsd:gYear, xsd:gYearMonth, xsd:gMonth, xsd:gMonthDay, xsd:gDay, xsd:boolean, xsd:string, xsd:integer, xsd:double, xsd:float&lt;br /&gt;
** [[DBpedia Datatypes]]&lt;br /&gt;
* '''rdf:type''': currently, only [http://www.w3.org/TR/owl-ref/#FunctionalProperty-def owl:FunctionalProperty] is supported.&lt;br /&gt;
* '''rdfs:subPropertyOf''': defines that the property is a subproperty of some other property. Formally this means that if P1 is a subproperty of P2, then the property values of P1 are a subset of the property values of P2.&lt;br /&gt;
* '''owl:equivalentProperty''':&lt;br /&gt;
&lt;br /&gt;
For backwards compatibilty, the following format for labels and comments is also possible but '''deprecated''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{DatatypeProperty&lt;br /&gt;
| rdfs:label@en          =&lt;br /&gt;
| rdfs:label@..          =&lt;br /&gt;
| rdfs:comment@en        =&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
The definition of the DBpedia ontology property [[OntologyProperty:height|height]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{DatatypeProperty &lt;br /&gt;
| labels = &lt;br /&gt;
{{label|en|height}}&lt;br /&gt;
| comments =&lt;br /&gt;
| rdfs:range   = Length&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will be rendered to this table:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{DatatypeProperty &lt;br /&gt;
| labels = &lt;br /&gt;
{{label|en|height}}&lt;br /&gt;
| comments =&lt;br /&gt;
| rdfs:range   = Length&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:LinkProperty&amp;diff=28122</id>
		<title>Template:LinkProperty</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:LinkProperty&amp;diff=28122"/>
		<updated>2013-08-29T13:33:24Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: Created page with '&amp;lt;includeonly&amp;gt;{{#switch:{{#explode:{{item|{{{1|}}}|{{{2|}}}}}|:|0}} |schema\ =[http://schema.org/{{#explode:{{item|{{{1|}}}|{{{2|}}}}}|:|1}} {{item|{{{1|}}}|{{{2|}}}}}] |bibo\ =[h...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch:{{#explode:{{item|{{{1|}}}|{{{2|}}}}}|:|0}}&lt;br /&gt;
|schema\ =[http://schema.org/{{#explode:{{item|{{{1|}}}|{{{2|}}}}}|:|1}} {{item|{{{1|}}}|{{{2|}}}}}]&lt;br /&gt;
|bibo\ =[http://purl.org/ontology/bibo/{{#explode:{{item|{{{1|}}}|{{{2|}}}}}|:|1}} {{item|{{{1|}}}|{{{2|}}}}}]&lt;br /&gt;
|wikidata\ =[http://www.wikidata.org/wiki/Property:{{#explode:{{item|{{{1|}}}|{{{2|}}}}}|:|1}} {{item|{{{1|}}}|{{{2|}}}}}]&lt;br /&gt;
|[[OntologyProperty:{{item|{{{1|}}}|{{{2|}}}}}|{{item|{{{1|}}}|{{{2|}}}}}]]}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Explanation of what's going on above:&lt;br /&gt;
If the item with index {{{2}}} in list {{{1}}}&lt;br /&gt;
has a part before the colon &amp;quot;:&amp;quot; (see note 1)&lt;br /&gt;
and that part is equal to &amp;quot;schema&amp;quot;, &amp;quot;bibo&amp;quot;, &amp;quot;wikidata&amp;quot; (see note 2)&lt;br /&gt;
then we use the part after the colon and genereate a link to schema.org, bibo, wikidata.&lt;br /&gt;
Otherwise, we generate an internal link.&lt;br /&gt;
Notes: &lt;br /&gt;
(1) This #ifeq would also be true if the item was&lt;br /&gt;
just &amp;quot;schema\&amp;quot;, but that's almost impossible.&lt;br /&gt;
(2) #explode adds a backslash when dealing with colons,&lt;br /&gt;
that's why we use the string &amp;quot;schema\&amp;quot;, not &amp;quot;schema&amp;quot;.&lt;br /&gt;
TODO: add more targets besides schema.org, bibo, wikidata&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Generates a link to a class from a list. First parameter is the list (comma-separated strings), second parameter is the index (zero-based).&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:LinkProperties&amp;diff=28121</id>
		<title>Template:LinkProperties</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:LinkProperties&amp;diff=28121"/>
		<updated>2013-08-29T13:27:04Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: adapted copy of Template:LinkClasses&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#if:{{item|{{{1|}}}|0}}|{{linkProperty|{{{1}}}|0}}{{#if:{{item|{{{1}}}|1}}|, {{linkProperty|{{{1}}}|1}}{{#if:{{item|{{{1}}}|2}}|, {{linkProperty|{{{1}}}|2}}{{#if:{{item|{{{1}}}|3}}|, {{linkProperty|{{{1}}}|3}}{{#if:{{item|{{{1}}}|4}}|, {{linkProperty|{{{1}}}|4}}|}}|}}|}}|}}|{{{2|}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Generates links to properties in a list. First parameter is the list (comma-separated strings), second parameter is the default value (may be empty, will not become a link).&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
	<entry>
		<id>https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:LinkClass&amp;diff=28120</id>
		<title>Template:LinkClass</title>
		<link rel="alternate" type="text/html" href="https://mediawiki1.informatik.uni-mannheim.de/index.php?title=Template:LinkClass&amp;diff=28120"/>
		<updated>2013-08-29T13:23:03Z</updated>

		<summary type="html">&lt;p&gt;Chrisahn: comment: bibo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch:{{#explode:{{item|{{{1|}}}|{{{2|}}}}}|:|0}}&lt;br /&gt;
|schema\ =[http://schema.org/{{#explode:{{item|{{{1|}}}|{{{2|}}}}}|:|1}} {{item|{{{1|}}}|{{{2|}}}}}]&lt;br /&gt;
|bibo\ =[http://purl.org/ontology/bibo/{{#explode:{{item|{{{1|}}}|{{{2|}}}}}|:|1}} {{item|{{{1|}}}|{{{2|}}}}}]&lt;br /&gt;
|[[OntologyClass:{{item|{{{1|}}}|{{{2|}}}}}|{{item|{{{1|}}}|{{{2|}}}}}]]}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Explanation of what's going on above:&lt;br /&gt;
If the item with index {{{2}}} in list {{{1}}}&lt;br /&gt;
has a part before the colon &amp;quot;:&amp;quot; (see note 1)&lt;br /&gt;
and that part is equal to &amp;quot;schema&amp;quot; (see note 2)&lt;br /&gt;
then we use the part after the colon and genereate a link to schema.org or bibo.&lt;br /&gt;
Otherwise, we generate an internal link.&lt;br /&gt;
Notes: &lt;br /&gt;
(1) This #ifeq would also be true if the item was&lt;br /&gt;
just &amp;quot;schema\&amp;quot;, but that's almost impossible.&lt;br /&gt;
(2) #explode adds a backslash when dealing with colons,&lt;br /&gt;
that's why we use the string &amp;quot;schema\&amp;quot;, not &amp;quot;schema&amp;quot;.&lt;br /&gt;
TODO: add more targets besides schema.org and bibo&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Generates a link to a class from a list. First parameter is the list (comma-separated strings), second parameter is the index (zero-based).&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chrisahn</name></author>
	</entry>
</feed>