Help:Contributing/semanticDynamicContent: Difference between revisions

From Wikibase
Jump to navigation Jump to search
Correct #property vs #statements: same visible text, markup-level difference; drop wrong "values link to items" claim (via update-page on MediaWiki MCP Server)
style-guide revision: two of the client's parser functions enabled (factual fix), notes moved under their sections (via update-page on MediaWiki MCP Server)
Line 1: Line 1:
Semantic dynamic content renders item data on a wiki page at view time. Edit the item once; every page that renders its statements updates. The Wikibase client provides two parser functions; every example below is live against real items.
Semantic dynamic content renders item data on a wiki page at view time. Edit the item once; every page that renders its statements updates. Every example below is live against real items.


== The two parser functions ==
== The two parser functions ==


Both take a property — a P-number or its label — and render its statements. The difference is the output form:
Two of the Wikibase client's parser functions are enabled on this wiki. Both take a property — a P-number or its label — and render its statements. They differ in output form:


| Function | Output form | Use it when |
| Function | Output form | Use it when |
Line 22: Line 22:
== Examples ==
== Examples ==


Running example: Q99 (Factorial in Python). The <code>from=</code> argument names the entity; the property can be a P-number or a label.
Running example: Q99 (Factorial in Python). The <code>from=</code> argument names the entity. The property can be a P-number or a label.


{| class="wikitable" style="width:100%"
{| class="wikitable" style="width:100%"
Line 51: Line 51:
| {{#statements:P1|from=Q55}}
| {{#statements:P1|from=Q55}}
|}
|}
== Sitelinks: pages ↔ items ==
A sitelink is a page title on the <code>wikibase</code> site stored on an item. It maps the page to the item; the item page then shows the link in its Sitelinks section. Without <code>from=</code>, a parser function uses the item sitelinked to the current page.
Live pairs on this wiki: Q55 (Markdown) ↔ [[Cheatsheets:Markdown]], Q77 (SPARQL) ↔ [[Cheatsheets:SPARQL]].
To link a page: open the item, add the page title in the Sitelinks section (site <code>wikibase</code>). Or use the API: <code>action=wbsetsitelink</code> with <code>linksite=wikibase</code>.
== Gotchas ==


<blockquote>
<blockquote>
Line 83: Line 73:
|}
|}
</blockquote>
</blockquote>
== Sitelinks: pages ↔ items ==
A sitelink links an item to a page title on the <code>wikibase</code> site. It maps the page to the item; the item page shows the link in its Sitelinks section. Without <code>from=</code>, a parser function uses the item sitelinked to the current page.
Live pairs on this wiki: Q55 (Markdown) ↔ [[Cheatsheets:Markdown]], Q77 (SPARQL) ↔ [[Cheatsheets:SPARQL]].
To link a page: open the item, add the page title in the Sitelinks section (site <code>wikibase</code>). Or use the API: <code>action=wbsetsitelink</code> with <code>linksite=wikibase</code>.


<blockquote>
<blockquote>
'''Without <code>from=</code> the page must be sitelinked to an item.''' This page is not linked, so <syntaxhighlight lang="wikitext" inline>{{#statements:P1}}</syntaxhighlight> on it renders nothing. Link the page to an item (see Sitelinks above) to use the short form.
'''Without <code>from=</code> the page must be sitelinked to an item.''' This page is not linked, so <syntaxhighlight lang="wikitext" inline>{{#statements:P1}}</syntaxhighlight> on it renders nothing. Link the page to an item to use the short form.
</blockquote>
</blockquote>



Revision as of 06:42, 20 August 2026

Languages: English · français · Esperanto

Semantic dynamic content renders item data on a wiki page at view time. Edit the item once; every page that renders its statements updates. Every example below is live against real items.

The two parser functions

Two of the Wikibase client's parser functions are enabled on this wiki. Both take a property — a P-number or its label — and render its statements. They differ in output form:

| Function | Output form | Use it when | |----------|-------------|-------------| | #statements | Rich wikitext: each value keeps its markup (language attributes, list structure). | Default for page content — values stay marked up for styling and screen readers. | | #property | Escaped plain text: no markup survives. | Inside templates or table cells, where markup would interfere. |

Same call, both forms — Q96 (quotation, one statement per language):

#property #statements
The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform., La machine analytique ne prétend nullement être à l'origine de quoi que ce soit. Elle peut faire tout ce que nous savons lui ordonner d'exécuter., La analiza maŝino tute ne pretendas origini ion ajn. Ĝi povas fari ĉion, kion ni scias ordoni al ĝi plenumi. The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform., La machine analytique ne prétend nullement être à l'origine de quoi que ce soit. Elle peut faire tout ce que nous savons lui ordonner d'exécuter., La analiza maŝino tute ne pretendas origini ion ajn. Ĝi povas fari ĉion, kion ni scias ordoni al ĝi plenumi.

The visible text is identical. The difference is in the page source: #statements wraps each value in language markup, #property emits plain text. Item values render as labels, not links, on this wiki.

Examples

Running example: Q99 (Factorial in Python). The from= argument names the entity. The property can be a P-number or a label.

What you want You type You get
Instance
{{#statements:P1|from=Q99}}
code snippet
Programming language
{{#statements:P5|from=Q99}}
Python
Code source
{{#statements:P3|from=Q99}}
factorial = lambda n: 1 if n <= 1 else n * factorial(n - 1)
Attributed to
{{#statements:P6|from=Q99}}
Ada Lovelace
By label instead of P-number
{{#statements:instance of|from=Q99}}
code snippet
Another entity — Q55 (Markdown)
{{#statements:P1|from=Q55}}
programming language

An item with no statements renders nothing — empty output is not an error. Q94 (Ada Lovelace) has no statements:

You type You get
{{#statements:P1|from=Q94}}
person

An unknown property is an explicit error, not empty output — P999 does not exist:

You type You get
{{#statements:P999|from=Q55}}

Failed to render property P999: P999 property not found.

Sitelinks: pages ↔ items

A sitelink links an item to a page title on the wikibase site. It maps the page to the item; the item page shows the link in its Sitelinks section. Without from=, a parser function uses the item sitelinked to the current page.

Live pairs on this wiki: Q55 (Markdown) ↔ Cheatsheets:Markdown, Q77 (SPARQL) ↔ Cheatsheets:SPARQL.

To link a page: open the item, add the page title in the Sitelinks section (site wikibase). Or use the API: action=wbsetsitelink with linksite=wikibase.

Without from= the page must be sitelinked to an item. This page is not linked, so {{#statements:P1}} on it renders nothing. Link the page to an item to use the short form.

Limits

Lua modules ({{#invoke:Wikibase}}) are not available — the Scribunto extension is not installed. Use the parser functions above.

See also