<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://rishon.rcorp.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikidata%2FChemin%2FPath</id>
	<title>Module:Wikidata/Chemin/Path - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://rishon.rcorp.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikidata%2FChemin%2FPath"/>
	<link rel="alternate" type="text/html" href="https://rishon.rcorp.fr/index.php?title=Module:Wikidata/Chemin/Path&amp;action=history"/>
	<updated>2026-09-05T15:05:20Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://rishon.rcorp.fr/index.php?title=Module:Wikidata/Chemin/Path&amp;diff=401&amp;oldid=prev</id>
		<title>RubnK : 1 version importée</title>
		<link rel="alternate" type="text/html" href="https://rishon.rcorp.fr/index.php?title=Module:Wikidata/Chemin/Path&amp;diff=401&amp;oldid=prev"/>
		<updated>2025-06-26T12:20:29Z</updated>

		<summary type="html">&lt;p&gt;1 version importée&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 26 juin 2025 à 14:20&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;fr&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Aucune différence)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>RubnK</name></author>
	</entry>
	<entry>
		<id>https://rishon.rcorp.fr/index.php?title=Module:Wikidata/Chemin/Path&amp;diff=400&amp;oldid=prev</id>
		<title>wp&gt;Jules* : A protégé « Module:Wikidata/Chemin/Path » : Modèle très utilisé ([Modifier=Autoriser uniquement les utilisateurs autopatrolled] (infini) [Renommer=Autoriser uniquement les utilisateurs autopatrolled] (infini))</title>
		<link rel="alternate" type="text/html" href="https://rishon.rcorp.fr/index.php?title=Module:Wikidata/Chemin/Path&amp;diff=400&amp;oldid=prev"/>
		<updated>2019-06-25T09:44:25Z</updated>

		<summary type="html">&lt;p&gt;A protégé « &lt;a href=&quot;/index.php/Module:Wikidata/Chemin/Path&quot; title=&quot;Module:Wikidata/Chemin/Path&quot;&gt;Module:Wikidata/Chemin/Path&lt;/a&gt; » : Modèle très utilisé ([Modifier=Autoriser uniquement les utilisateurs autopatrolled] (infini) [Renommer=Autoriser uniquement les utilisateurs autopatrolled] (infini))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local path = {}&lt;br /&gt;
local propt = require &amp;quot;Module:Propriétés&amp;quot;&lt;br /&gt;
&lt;br /&gt;
path.Node = {}&lt;br /&gt;
&lt;br /&gt;
function path.Node:new (o)&lt;br /&gt;
  o = o or {}&lt;br /&gt;
  setmetatable(o, self)&lt;br /&gt;
  self.__index = self&lt;br /&gt;
  return o&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
path.AlternativeNode = path.Node:new()&lt;br /&gt;
&lt;br /&gt;
function path.AlternativeNode:create(nodes)&lt;br /&gt;
	local newinst = {[&amp;quot;nodes&amp;quot;] = nodes}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function path.AlternativeNode:type()&lt;br /&gt;
	return &amp;quot;alternativenode&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
path.SequenceNode = path.Node:new()&lt;br /&gt;
&lt;br /&gt;
function path.SequenceNode:create(nodes)&lt;br /&gt;
	local newinst = {[&amp;quot;nodes&amp;quot;] = nodes}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function path.SequenceNode:type()&lt;br /&gt;
	return &amp;quot;sequencenode&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
path.StarNode = path.Node:new()&lt;br /&gt;
function path.StarNode:create(node)&lt;br /&gt;
	assert(node, &amp;quot;(Some) Node : no node provided on creation&amp;quot;)&lt;br /&gt;
	local newinst = {[&amp;quot;node&amp;quot;] = node}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
path.PlusNode = path.Node:new()&lt;br /&gt;
function path.PlusNode:create(node)&lt;br /&gt;
	assert(node, &amp;quot;(Some) Node : no node provided on creation&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	local newinst = {[&amp;quot;node&amp;quot;] = node}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
path.MaybeNode = path.Node:new()&lt;br /&gt;
function path.MaybeNode:create(node)&lt;br /&gt;
	assert(node, &amp;quot;(Some) Node : no node provided on creation&amp;quot;)&lt;br /&gt;
	local newinst = {[&amp;quot;node&amp;quot;] = node}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
path.BetweenNode = path.Node:new()&lt;br /&gt;
function path.BetweenNode:create(node, min, max)&lt;br /&gt;
	assert(node, &amp;quot;(Some) Node : no node provided on creation&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	local newinst = {&lt;br /&gt;
		[&amp;quot;node&amp;quot;] = node, &lt;br /&gt;
		[&amp;quot;min&amp;quot;] = min,&lt;br /&gt;
		[&amp;quot;max&amp;quot;] = max,&lt;br /&gt;
	}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
path.InverseNode = path.Node:new()&lt;br /&gt;
function path.InverseNode:create(node)&lt;br /&gt;
	assert(node, &amp;quot;(Some) Node : no node provided on creation&amp;quot;)&lt;br /&gt;
	local newinst = {[&amp;quot;node&amp;quot;] = node}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
path.QualifiedStatementNode = path.Node:new()&lt;br /&gt;
function path.QualifiedStatementNode:create(main_prop_node, qual_node)&lt;br /&gt;
	assert(main_prop_node, &amp;quot;(Some) Node : no node provided on creation&amp;quot;)&lt;br /&gt;
	assert(qual_node, &amp;quot;(Some) Node : no node provided on creation&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local newinst = {&lt;br /&gt;
		[&amp;quot;property&amp;quot;] = main_prop_node,&lt;br /&gt;
		[&amp;quot;qualifier&amp;quot;] = qual_node&lt;br /&gt;
	}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
path.PseudoPropertyNode = path.Node:new()&lt;br /&gt;
&lt;br /&gt;
path.PropertyNode = path.PseudoPropertyNode:new()&lt;br /&gt;
&lt;br /&gt;
function path.PropertyNode:create(property)&lt;br /&gt;
	assert(property, &amp;quot;(Prop Node : a property must be provided on creation&amp;quot;)&lt;br /&gt;
	local newinst = {&lt;br /&gt;
		[&amp;quot;property&amp;quot;] = propt.normalize(property)&lt;br /&gt;
	}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function path.PropertyNode:matches(property_str)&lt;br /&gt;
	return propt.normalize(property_str) == self.property&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- see https://www.w3.org/2009/sparql/docs/property-paths/Overview.xml&lt;br /&gt;
&lt;br /&gt;
path.NegatedPropertySetNode = path.PseudoPropertyNode:new()&lt;br /&gt;
function path.NegatedPropertySetNode:create(negated_nodes)&lt;br /&gt;
	assert(negated_nodes, &amp;quot;NegPSet Node : no nodeset provided on creation&amp;quot;)&lt;br /&gt;
	local newinst = {&lt;br /&gt;
		[&amp;quot;negated_nodes&amp;quot;] = negated_nodes&lt;br /&gt;
	}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	self.props = {}&lt;br /&gt;
	&lt;br /&gt;
	for _, val in pairs(negated_nodes) do&lt;br /&gt;
		self.props[val.node.property] = true&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function path.NegatedPropertySetNode:inset(pid)&lt;br /&gt;
	return self.props[pid] ~= nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function path.NegatedPropertySetNode:matches(property_str)&lt;br /&gt;
	return not self:inset(propt.normalize(property_str))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
path.PropertySetNode = path.PseudoPropertyNode:new()&lt;br /&gt;
function path.PropertySetNode:create(nodes)&lt;br /&gt;
	&lt;br /&gt;
	assert(nodes, &amp;quot;PseudoProp Node : no nodes provided on creation&amp;quot;)&lt;br /&gt;
	local newinst = {&lt;br /&gt;
		[&amp;quot;nodes&amp;quot;] = nodes&lt;br /&gt;
	}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	self.props = {}&lt;br /&gt;
	&lt;br /&gt;
	for _, val in pairs(nodes) do&lt;br /&gt;
		self.props[val.node.property] = true&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function path.PropertySetNode:inset(pid)&lt;br /&gt;
	return self.props[pid] ~= nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function path.PropertySetNode:matches(property_str)&lt;br /&gt;
	return self:inset(propt.normalize(property_str))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
path.QualifierSnakNode = path.Node:new()&lt;br /&gt;
&lt;br /&gt;
function path.QualifierSnakNode:create(pseudopnode)&lt;br /&gt;
	local newinst = {[&amp;quot;pseudopnode&amp;quot;] = pseudopnode}&lt;br /&gt;
	setmetatable(newinst, self)&lt;br /&gt;
	self.__index = self&lt;br /&gt;
	return newinst&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function path.QualifierSnakNode:type()&lt;br /&gt;
	return &amp;quot;qualifiersnaknode&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function path.QualifierSnakNode:matches(property_str)&lt;br /&gt;
	return self.pseudopnode:matches(property_str)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return path&lt;/div&gt;</summary>
		<author><name>wp&gt;Jules*</name></author>
	</entry>
</feed>