<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF[
	<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
	<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
	<!ENTITY owl 'http://www.w3.org/2002/07/owl#'>
	<!ENTITY swivt 'http://semantic-mediawiki.org/swivt/1.0#'>
	<!ENTITY wiki 'http://wikibase.nl/Special:URIResolver/'>
	<!ENTITY category 'http://wikibase.nl/Special:URIResolver/Category-3A'>
	<!ENTITY property 'http://wikibase.nl/Special:URIResolver/Property-3A'>
	<!ENTITY wikiurl 'https://open-csp.org/'>
]>

<rdf:RDF
	xmlns:rdf="&rdf;"
	xmlns:rdfs="&rdfs;"
	xmlns:owl ="&owl;"
	xmlns:swivt="&swivt;"
	xmlns:wiki="&wiki;"
	xmlns:category="&category;"
	xmlns:property="&property;">

	<owl:Ontology rdf:about="https://open-csp.org/Special:ExportRDF/DevOps-3ADoc/FlexForm/2.1-2C_2.5/create_pages">
		<swivt:creationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2026-04-30T12:45:18+02:00</swivt:creationDate>
		<owl:imports rdf:resource="http://semantic-mediawiki.org/swivt/1.0"/>
	</owl:Ontology>
	<swivt:Subject rdf:about="http://wikibase.nl/Special:URIResolver/DevOps-3ADoc/FlexForm/2.1-2C_2.5/create_pages">
		<rdfs:label>create pages</rdfs:label>
		<rdfs:isDefinedBy rdf:resource="https://open-csp.org/Special:ExportRDF/DevOps-3ADoc/FlexForm/2.1-2C_2.5/create_pages"/>
		<swivt:page rdf:resource="https://open-csp.org/DevOps-3ADoc/FlexForm/2.1-2C_2.5/create_pages"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50000</swivt:wikiNamespace>
		<swivt:wikiPageContentLanguage rdf:datatype="http://www.w3.org/2001/XMLSchema#string">en</swivt:wikiPageContentLanguage>
		<property:Class rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc</property:Class>
		<property:Doc_parent rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.1-2C_2.5/Test_cases"/>
		<property:Doc_sort_order rdf:datatype="http://www.w3.org/2001/XMLSchema#double">5</property:Doc_sort_order>
		<property:Doc_subject rdf:resource="&wiki;DevOps-3ADoc/FlexForm"/>
		<property:Doc_synopsis rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Various tests related to creating pages using _create</property:Doc_synopsis>
		<property:Doc_target_group rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Administrator</property:Doc_target_group>
		<property:Doc_title_with_versions rdf:datatype="http://www.w3.org/2001/XMLSchema#string">create pages (2.1, 2.5)</property:Doc_title_with_versions>
		<property:Subject_version rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2.1</property:Subject_version>
		<property:Subject_version rdf:datatype="http://www.w3.org/2001/XMLSchema#string">2.5</property:Subject_version>
		<property:Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">create pages</property:Title>
		<property:Has_query rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.1-2C_2.5/create_pages-23_QUERY89d756efb9700b68a198df5c893943f9"/>
		<swivt:wikiPageCreationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2025-10-08T13:10:20Z</swivt:wikiPageCreationDate>
		<property:Creation_date-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2460957.0488426</property:Creation_date-23aux>
		<property:Display_title_of rdf:datatype="http://www.w3.org/2001/XMLSchema#string">create pages</property:Display_title_of>
		<swivt:wikiPageModificationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2025-10-10T09:51:50Z</swivt:wikiPageModificationDate>
		<property:Modification_date-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2460958.9109954</property:Modification_date-23aux>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc/FlexForm/2.1, 2.5/create pages</swivt:wikiPageSortKey>
		<property:Page_creator rdf:resource="&wiki;User-3AFd4138e7-2D8b46-2D4c8f-2D99bf-2Dd4b738ebc295"/>
		<property:Page_author rdf:resource="&wiki;User-3AEbc16062-2Ddd09-2D4928-2D8cf3-2D821f492b0c44"/>
		<property:Page_author rdf:resource="&wiki;User-3AFd4138e7-2D8b46-2D4c8f-2D99bf-2Dd4b738ebc295"/>
		<property:Page_ID rdf:datatype="http://www.w3.org/2001/XMLSchema#double">595</property:Page_ID>
		<property:Parsed_text rdf:datatype="http://www.w3.org/2001/XMLSchema#string">These tests assume you are using a wiki with $wgCapitalLinks set to true (the default setting). Else tests like A1 and A2 will produce different results, as the first letter won't be capitalized automatically. You can still use these tests, but you will have to carefully evaluate the results yourself, as some of the instructions will not be applicable. 
 Tests should be done with FlexForm extension setting create-seo-titles set to true as well as false. Note that create-seo-titles is only applied to input from formfields that is inserted in mwwrite of a create, not to hardcoded values in mwwrite. Therefore most of these tests (except for D) should have the same results with create-seo-titles set to true or false. 
 To execute the tests, copy the content shown below to a page on your wiki. The content contains test instructions as well as forms to test different _create options. 
 After you finish testing, delete the created test pages. You can for example find these in your contributions or use the Semantic MediaWiki query to get a list of pages and delete them through Special:DeleteBatch. 
 
 
 A. next_available test 
 Test each create multiple times 
 Verify that the created page gets a new number each time, i.e. "Test page1" then "Test page2" then "Test page3" etc. 
 Tests A1, A2, A3, A4 and A6 (with namespace option "(Main)") should result in similar pagetitles
 note: with create-seo-titles set to true, A4 will produce a different pagetitle, for example "Test-page1"  
 Tests A5 and A6 (with namespace options "template" and "Template") should result in similar pagetitles
 note: you might see "Template" in the created page in a different language, if your user preference is set to a language other than English  
 A1. Test_page 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Test_page"  mwtemplate = "Test"  mwoption = "next_available"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 A2. test_page 
   &lt; form &gt; 
 &lt; _create  mwwrite = "test_page"  mwtemplate = "Test"  mwoption = "next_available"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 A3. :Test_page 
   &lt; form &gt; 
 &lt; _create  mwwrite = ":Test_page"  mwtemplate = "Test"  mwoption = "next_available"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 A4. Test page 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Test page"  mwtemplate = "Test"  mwoption = "next_available"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 A5. Template:test_page 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Template:test_page"  mwtemplate = "Test"  mwoption = "next_available"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
  A6. [namespace]:Test_page 
   &lt; form &gt; 
 &lt; _create  mwwrite = "[namespace]:Test_page"  mwtemplate = "Test"  mwoption = "next_available"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; div &gt; 
 &lt; select  name = "namespace"  placeholder = "Choose a namespace"  required = "required" &gt; 
 &lt; option  value = "" &gt; (Main) &lt;/ option &gt; 
 &lt; option  value = "Template"  &gt; Template &lt;/ option &gt; 
 &lt; option  value = "template" &gt; template &lt;/ option &gt; 
 &lt;/ select &gt; 
 &lt;/ div &gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 B. add_random test 
 Test each create multiple times 
 Verify that the created page gets a new number each time, i.e. "Test page1759998954" then "Test page1759998946" etc.
 note: the numbers are not fully random as they are based on timestamp, but each create should result in a unique number.  
 Tests B1, B2, B3 and B5 (with namespace option "(Main)") should result in similar pagetitles 
 Tests B4 and B5 (with namespace options "template" and "Template") should result in similar pagetitles
 note: you might see "Template" in the created page in a different language, if your user preference is set to a language other than English  
 B1. Test_page 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Test_page"  mwtemplate = "Test"  mwoption = "add_random"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 B2. test_page 
   &lt; form &gt; 
 &lt; _create  mwwrite = "test_page"  mwtemplate = "Test"  mwoption = "add_random"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 B3. :Test_page 
   &lt; form &gt; 
 &lt; _create  mwwrite = ":Test_page"  mwtemplate = "Test"  mwoption = "add_random"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 B4. Template:test_page 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Template:test_page"  mwtemplate = "Test"  mwoption = "add_random"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
  B5. [namespace]:Test_page 
   &lt; form &gt; 
 &lt; _create  mwwrite = "[namespace]:Test_page"  mwtemplate = "Test"  mwoption = "add_random"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; div &gt; 
 &lt; select  name = "namespace"  placeholder = "Choose a namespace"  required = "required" &gt; 
 &lt; option  value = "" &gt; (Main) &lt;/ option &gt; 
 &lt; option  value = "Template"  &gt; Template &lt;/ option &gt; 
 &lt; option  value = "template" &gt; template &lt;/ option &gt; 
 &lt;/ select &gt; 
 &lt;/ div &gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
  B6. Test_page/ 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Test_page/"  mwtemplate = "Test"  mwoption = "add_random"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 B7. Test_page- 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Test_page-"  mwtemplate = "Test"  mwoption = "add_random"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 C. range tests 
 Test each create multiple times 
 C1 should create titles "Test_page/2019000", "Test_page/2019001", "Test_page/2019002" etc. 
 C2 should create titles "Test_page/1", "Test_page/2", "Test_page/3" etc. 
 C3 should create titles "Test_page/0001", "Test_page/0002", "Test_page/0003" etc. 
 C3 should create titles "Template:Test_page/0001", "Template:Test_page/0002", "Template:Test_page/0003" etc.
 note: you might see "Template" in the created page in a different language, if your user preference is set to a language other than English  
  C1. Test_page/range:2019000-2019999 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Test_page/"  mwtemplate = "Test"  mwoption = "range:2019000-2019999"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 
 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
  C2. Test_page/range:1-9999 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Test_page/"  mwtemplate = "Test"  mwoption = "range:1-9999"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 
 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
  C3. Test_page/range:1-9999 with mwleadingzero 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Test_page/"  mwtemplate = "Test"  mwoption = "range:1-9999"  mwleadingzero  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 
 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
  C4. template:Test_page/range:1-9999 with mwleadingzero 
   &lt; form &gt; 
 &lt; _create  mwwrite = "template:Test_page/"  mwtemplate = "Test"  mwoption = "range:1-9999"  mwleadingzero  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 
 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
 D. create-seo-titles test 
 The create should result a page title where values from input fields are cleaned up. Symbols and spaces are replace with "-" and all letters are lower case (except for the first one if $wgCapitalLinks is set to true) 
 D1 should give an error message as it's an invalid pagetitle: "Could not create page Test#@*( PAge. Invalid title." 
 D2 should create "Test page/test-page" (or invalid title when create-seo-titles is set to false) 
 D3 should create "Test-page" (or invalid title when create-seo-titles is set to false) 
  D1. Test_#@*( PAge 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Test_#@*( PAge"  mwtemplate = "Test"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 
 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
  D2. Test page/[Title] 
   &lt; form &gt; 
 &lt; _create  mwwrite = "Test page/[Title]"  mwtemplate = "Test"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 
 &lt; input  type = "text"  name = "Title"  value = "Test_#@*( PAge"  /&gt; 

 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
  D3. [Title] 
   &lt; form &gt; 
 &lt; _create  mwwrite = "[Title]"  mwtemplate = "Test"  mwfollow  /&gt; 
 &lt; input  type = "text"  name = "Content"  value = "{{#time:r|now||l}}"  /&gt; 
 &lt; input  type = "text"  name = "Title"  value = "test_#@*( PAge"  /&gt; 
 &lt; input  type = "submit"  /&gt; 
 &lt;/ form &gt; 
 
  Potentially useful Semantic MediaWiki query to find created pages (if you are using SMW) 
 {{#ask:[[~*Test page*]]
|?=Page
|?#-=Page
|?Modification date
|sort=Modification date
|order=desc
}}</property:Parsed_text>
	</swivt:Subject>
	<swivt:Subject rdf:about="http://wikibase.nl/Special:URIResolver/DevOps-3ADoc/FlexForm/2.1-2C_2.5/create_pages-23_QUERY89d756efb9700b68a198df5c893943f9">
		<swivt:masterPage rdf:resource="&wiki;DevOps-3ADoc/FlexForm/2.1-2C_2.5/create_pages"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">50000</swivt:wikiNamespace>
		<property:Query_depth rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0</property:Query_depth>
		<property:Query_format rdf:datatype="http://www.w3.org/2001/XMLSchema#string">plainlist</property:Query_format>
		<property:Query_size rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</property:Query_size>
		<property:Query_string rdf:datatype="http://www.w3.org/2001/XMLSchema#string">[[:DevOps:Doc/FlexForm/2.1, 2.5/create pages]]</property:Query_string>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Doc/FlexForm/2.1, 2.5/create pages# QUERY89d756efb9700b68a198df5c893943f9</swivt:wikiPageSortKey>
	</swivt:Subject>
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#creationDate" />
	<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#page" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiNamespace" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageContentLanguage" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AClass" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_parent" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_sort_order" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_subject" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_synopsis" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_target_group" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADoc_title_with_versions" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ASubject_version" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ATitle" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AHas_query" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageCreationDate" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ACreation_date-23aux" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3ADisplay_title_of" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageModificationDate" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AModification_date-23aux" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageSortKey" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_creator" />
	<owl:ObjectProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_author" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3APage_ID" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AParsed_text" />
	<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#masterPage" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_depth" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_format" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_size" />
	<owl:DatatypeProperty rdf:about="http://wikibase.nl/Special:URIResolver/Property-3AQuery_string" />
	<!-- Created by Semantic MediaWiki, https://www.semantic-mediawiki.org/ -->
</rdf:RDF>