<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=Lehelt_lugemise_koodi_n%C3%A4ide</id>
	<title>Lehelt lugemise koodi näide - Redigeerimiste ajalugu</title>
	<link rel="self" type="application/atom+xml" href="http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=Lehelt_lugemise_koodi_n%C3%A4ide"/>
	<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Lehelt_lugemise_koodi_n%C3%A4ide&amp;action=history"/>
	<updated>2026-11-07T01:59:19Z</updated>
	<subtitle>Selle lehekülje redigeerimiste ajalugu</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Lehelt_lugemise_koodi_n%C3%A4ide&amp;diff=8000&amp;oldid=prev</id>
		<title>Tammet – 14. märts 2007, kell 12:08</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Lehelt_lugemise_koodi_n%C3%A4ide&amp;diff=8000&amp;oldid=prev"/>
		<updated>2007-03-14T12:08:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;et&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Vanem redaktsioon&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Redaktsioon: 14. märts 2007, kell 14:08&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l71&quot;&gt;71. rida:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;71. rida:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     internalurllist=tripleValueList(filedata,&amp;#039;er:infoleht&amp;#039;)      &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     internalurllist=tripleValueList(filedata,&amp;#039;er:infoleht&amp;#039;)      &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     if debugFlag:     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     if debugFlag:     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                         print &#039;internal infoleht list: &#039;,internalurllist &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                       &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                         print &#039;internal infoleht list: &#039;,internalurllist &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                    # here starts code for automatically adding extra data &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                  &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     subjects=tripleGetSubjects(filedata)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     subjects=tripleGetSubjects(filedata)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     if debugFlag:     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     if debugFlag:     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l83&quot;&gt;83. rida:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;86. rida:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     tmptype=tripleMakePropForSubjectsDomain(filedata,subjects,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     tmptype=tripleMakePropForSubjectsDomain(filedata,subjects,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     &amp;#039;er:tyyp&amp;#039;,&amp;#039;tootaja&amp;#039;,(&amp;#039;er:amet&amp;#039;,&amp;#039;er:ametijuhend&amp;#039;,))     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                     &amp;#039;er:tyyp&amp;#039;,&amp;#039;tootaja&amp;#039;,(&amp;#039;er:amet&amp;#039;,&amp;#039;er:ametijuhend&amp;#039;,))     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                     # here ends code for automatically adding extra data &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     if debugFlag:     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     if debugFlag:     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                         print &amp;quot;--- derived triplets for url ---&amp;quot;                   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                         print &amp;quot;--- derived triplets for url ---&amp;quot;                   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l174&quot;&gt;174. rida:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;180. rida:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         res=res+[tmp]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         res=res+[tmp]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return res&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return res&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# the following code adds derived data for certain kinds of subjects&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;def tripleMakePropForSubjectsDomain(filedata,subjects,newpred,newvalue,oldpreds):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;def tripleMakePropForSubjectsDomain(filedata,subjects,newpred,newvalue,oldpreds):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key lambdadb:diff:1.41:old-1546:rev-8000:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Tammet</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Lehelt_lugemise_koodi_n%C3%A4ide&amp;diff=1546&amp;oldid=prev</id>
		<title>Tammet – 14. märts 2007, kell 12:07</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Lehelt_lugemise_koodi_n%C3%A4ide&amp;diff=1546&amp;oldid=prev"/>
		<updated>2007-03-14T12:07:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uus lehekülg&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/local/bin/python&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
import libxml2&lt;br /&gt;
import libxslt&lt;br /&gt;
from types import *&lt;br /&gt;
&lt;br /&gt;
# these paths must be set &lt;br /&gt;
&lt;br /&gt;
startPage=&amp;quot;/home/tanel/Ms/Semriik/index.html&amp;quot;&lt;br /&gt;
extractorPath=&amp;quot;/home/tanel/Ms/Semriik/extractrdfa.xsl&amp;quot;&lt;br /&gt;
outfile=&amp;quot;/home/tanel/Ms/Semriik/data.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# debug will give extra printout&lt;br /&gt;
debugFlag=0&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
def main():    &lt;br /&gt;
    #print &amp;#039;content-type: text/html\n&amp;#039;        &lt;br /&gt;
    &lt;br /&gt;
    fulldata=[]&lt;br /&gt;
    &lt;br /&gt;
    # -- read and parse extractor stylesheets --&lt;br /&gt;
&lt;br /&gt;
    styleDoc=libxml2.parseFile(extractorPath)&lt;br /&gt;
    style=libxslt.parseStylesheetDoc(styleDoc)&lt;br /&gt;
    &lt;br /&gt;
    # -- read start page triples --        &lt;br /&gt;
    &lt;br /&gt;
    url=startPage&lt;br /&gt;
    filedoc=libxml2.htmlParseFile(url,None)&lt;br /&gt;
    appres=style.applyStylesheet(filedoc, {&amp;#039;filepath&amp;#039; : &amp;quot;&amp;#039;&amp;quot;+url+&amp;quot;&amp;#039;&amp;quot;})&lt;br /&gt;
    triples=style.saveResultToString(appres)               &lt;br /&gt;
    filedata=parseTriplesXml(triples)&lt;br /&gt;
    confdata=filedata&lt;br /&gt;
    fulldata=fulldata+confdata&lt;br /&gt;
    if debugFlag:    &lt;br /&gt;
        print &amp;quot;==== start page gave triplets ====\n&amp;quot;&lt;br /&gt;
        showTriplets(confdata)     &lt;br /&gt;
        &lt;br /&gt;
    # -- loop over configuration data&lt;br /&gt;
&lt;br /&gt;
    handledorg=[]&lt;br /&gt;
    handledurl=[]&lt;br /&gt;
    for triple in confdata[1:]:        &lt;br /&gt;
        subject=triple.get(&amp;#039;subject&amp;#039;)&lt;br /&gt;
        organisation=subject&lt;br /&gt;
        if not organisation in handledorg:           &lt;br /&gt;
            if debugFlag:    &lt;br /&gt;
                print &amp;quot;\n==== handling org &amp;quot;,organisation,&amp;quot; ====\n&amp;quot;&lt;br /&gt;
            handledorg=handledorg+[organisation]&lt;br /&gt;
            urllist=tripleSubjectValueList(confdata,subject,&amp;#039;er:infoleht&amp;#039;)        &lt;br /&gt;
            if debugFlag:    &lt;br /&gt;
                print &amp;quot;found urls for org: &amp;quot;,urllist                                &lt;br /&gt;
            while urllist:                &lt;br /&gt;
                url=urllist[0]                &lt;br /&gt;
                if not url in handledurl:&lt;br /&gt;
                    if debugFlag:    &lt;br /&gt;
                        print &amp;quot;==== starting to process url ====&amp;quot;&lt;br /&gt;
                        print url&lt;br /&gt;
                    handledurl=handledurl+[url]    &lt;br /&gt;
                    filedoc=libxml2.htmlParseFile(url,None)                &lt;br /&gt;
                    appres=style.applyStylesheet(filedoc, {&amp;#039;filepath&amp;#039; : &amp;quot;&amp;#039;&amp;quot;+url+&amp;quot;&amp;#039;&amp;quot;})&lt;br /&gt;
                    triples=style.saveResultToString(appres)                                     &lt;br /&gt;
                    filedata=parseTriplesXml(triples)&lt;br /&gt;
                    if debugFlag:    &lt;br /&gt;
                        print &amp;quot;--- url gave initial triplets ---&amp;quot;                  &lt;br /&gt;
                        showTriplets(filedata)&lt;br /&gt;
                    internalurllist=tripleValueList(filedata,&amp;#039;er:infoleht&amp;#039;)     &lt;br /&gt;
                    if debugFlag:    &lt;br /&gt;
                        print &amp;#039;internal infoleht list: &amp;#039;,internalurllist                        &lt;br /&gt;
                    subjects=tripleGetSubjects(filedata)&lt;br /&gt;
                    if debugFlag:    &lt;br /&gt;
                        print &amp;#039;internal subjects list: &amp;#039;,subjects&lt;br /&gt;
                    tmporg=tripleMakeForSubjects(subjects,&amp;#039;er:asutus&amp;#039;,organisation)                    &lt;br /&gt;
                    department=tripleSubjectFirstValue(filedata,url,&amp;#039;er:osakond&amp;#039;)                &lt;br /&gt;
                    if department:&lt;br /&gt;
                        tmpdepartment=tripleMakeForSubjects(subjects,&amp;#039;er:osakond&amp;#039;,department)&lt;br /&gt;
                    else:&lt;br /&gt;
                        tmpdepartment=[]                      &lt;br /&gt;
                    tmptype=tripleMakePropForSubjectsDomain(filedata,subjects,&lt;br /&gt;
                                    &amp;#039;er:tyyp&amp;#039;,&amp;#039;tootaja&amp;#039;,(&amp;#039;er:amet&amp;#039;,&amp;#039;er:ametijuhend&amp;#039;,))    &lt;br /&gt;
                    if debugFlag:    &lt;br /&gt;
                        print &amp;quot;--- derived triplets for url ---&amp;quot;                  &lt;br /&gt;
                        showTriplets(tmporg)&lt;br /&gt;
                        showTriplets(tmpdepartment)&lt;br /&gt;
                        showTriplets(tmptype)                        &lt;br /&gt;
                    filedata=filedata+tmporg+tmpdepartment+tmptype               &lt;br /&gt;
                    if debugFlag:    &lt;br /&gt;
                        print &amp;quot;--- final triplets for url ---&amp;quot;                  &lt;br /&gt;
                        showTriplets(filedata)                    &lt;br /&gt;
                    fulldata=fulldata+filedata&lt;br /&gt;
                    urllist=urllist+internalurllist&lt;br /&gt;
                urllist=urllist[1:]&lt;br /&gt;
            &lt;br /&gt;
    style.freeStylesheet()&lt;br /&gt;
    if debugFlag:    &lt;br /&gt;
        print &amp;quot;\n==== final full data ====\n&amp;quot;       &lt;br /&gt;
        showTriplets(fulldata)   &lt;br /&gt;
    xmlstr=tripletsToXml(fulldata)&lt;br /&gt;
    if debugFlag:    &lt;br /&gt;
        print &amp;quot;\n==== final full data as xml string ====\n&amp;quot;       &lt;br /&gt;
        print xmlstr&lt;br /&gt;
    handler=open(outfile,&amp;quot;w&amp;quot;)    &lt;br /&gt;
    handler.write(xmlstr)    &lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
def tripleSubjectWithPredValueSet(triples,predicate,object):&lt;br /&gt;
    res=[]&lt;br /&gt;
    for el in triples:&lt;br /&gt;
        if type(el)==DictType:&lt;br /&gt;
            if (el.get(&amp;#039;object&amp;#039;)==object and&lt;br /&gt;
                el.get(&amp;#039;predicate&amp;#039;)==predicate and&lt;br /&gt;
                not el.get(&amp;#039;subject&amp;#039;) in res):&lt;br /&gt;
                res=res+[el.get(&amp;#039;subject&amp;#039;)]           &lt;br /&gt;
    return res&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
def tripleSubjectHasValue(triples,subject,predicate,object):&lt;br /&gt;
    for el in triples:&lt;br /&gt;
        if type(el)==DictType:&lt;br /&gt;
            if (el.get(&amp;#039;subject&amp;#039;)==subject and&lt;br /&gt;
                el.get(&amp;#039;predicate&amp;#039;)==predicate and&lt;br /&gt;
                el.get(&amp;#039;object&amp;#039;)==object):&lt;br /&gt;
                return True&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def tripleSubjectValueList(triples,subject,predicate):&lt;br /&gt;
    res=[]&lt;br /&gt;
    for el in triples:&lt;br /&gt;
        if type(el)==DictType:&lt;br /&gt;
            if (el.get(&amp;#039;subject&amp;#039;)==subject and&lt;br /&gt;
                el.get(&amp;#039;predicate&amp;#039;)==predicate):&lt;br /&gt;
                res=res+[el.get(&amp;#039;object&amp;#039;)]           &lt;br /&gt;
    return res&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
def tripleSubjectFirstValue(triples,subject,predicate):    &lt;br /&gt;
    for el in triples:&lt;br /&gt;
        if type(el)==DictType:&lt;br /&gt;
            if (el.get(&amp;#039;subject&amp;#039;)==subject and&lt;br /&gt;
                el.get(&amp;#039;predicate&amp;#039;)==predicate):&lt;br /&gt;
                return el.get(&amp;#039;object&amp;#039;)&lt;br /&gt;
    return &amp;quot;&amp;quot;    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def tripleValueList(triples,predicate):&lt;br /&gt;
    res=[]&lt;br /&gt;
    for el in triples:&lt;br /&gt;
        if type(el)==DictType:&lt;br /&gt;
            if el.get(&amp;#039;predicate&amp;#039;)==predicate:&lt;br /&gt;
                res=res+[el.get(&amp;#039;object&amp;#039;)]           &lt;br /&gt;
    return res&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def tripleGetSubjects(triples):&lt;br /&gt;
    res=[]&lt;br /&gt;
    for el in triples:&lt;br /&gt;
        if type(el)==DictType:&lt;br /&gt;
            tmp=el.get(&amp;#039;subject&amp;#039;)&lt;br /&gt;
            if not tmp in res:&lt;br /&gt;
                res=res+[tmp]                               &lt;br /&gt;
    return res    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def tripleMakeForSubjects(subjects,predicate,object):&lt;br /&gt;
    res=[]&lt;br /&gt;
    for el in subjects:&lt;br /&gt;
        tmp={&amp;#039;subject&amp;#039;:el,&amp;#039;predicate&amp;#039;:predicate,&amp;#039;object&amp;#039;:object}&lt;br /&gt;
        res=res+[tmp]&lt;br /&gt;
    return res&lt;br /&gt;
&lt;br /&gt;
def tripleMakePropForSubjectsDomain(filedata,subjects,newpred,newvalue,oldpreds):&lt;br /&gt;
    res=[]&lt;br /&gt;
    #elimsubjects=[]&lt;br /&gt;
    # collect objects which already have some newpred as predicate&lt;br /&gt;
    #for el in filedata:&lt;br /&gt;
    #    if type(el)==DictType:                      &lt;br /&gt;
    #        if el.get(&amp;#039;predicate&amp;#039;)==newpred:&lt;br /&gt;
    #            elimsubjects=elimsubjects+[el.get(&amp;#039;subject&amp;#039;)]&lt;br /&gt;
    # loop over all objects&lt;br /&gt;
    for el in filedata:&lt;br /&gt;
        if type(el)==DictType:                      &lt;br /&gt;
            if el.get(&amp;#039;predicate&amp;#039;) in oldpreds: # and not el in elimsubjects:&lt;br /&gt;
                res=res+[{&amp;#039;subject&amp;#039;:el.get(&amp;#039;subject&amp;#039;), &amp;#039;predicate&amp;#039;:newpred, &amp;#039;object&amp;#039;:newvalue}]&lt;br /&gt;
    return res                                  &lt;br /&gt;
                &lt;br /&gt;
&lt;br /&gt;
def showTriplets(triplets):  &lt;br /&gt;
    for el in triplets:&lt;br /&gt;
        if type(el)==DictType:&lt;br /&gt;
            print el.get(&amp;#039;subject&amp;#039;),el.get(&amp;#039;predicate&amp;#039;),el.get(&amp;#039;object&amp;#039;),el.get(&amp;#039;type&amp;#039;)           &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def tripletsToXml(triplets):  &lt;br /&gt;
    res=&amp;quot;&amp;quot;&amp;quot;&amp;lt;triplets&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    for el in triplets:&lt;br /&gt;
        if type(el)==DictType:&lt;br /&gt;
            tmp=&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;triplet&amp;gt;&lt;br /&gt;
 &amp;lt;subject&amp;gt;%s&amp;lt;/subject&amp;gt;&amp;lt;predicate&amp;gt;%s&amp;lt;/predicate&amp;gt;&amp;lt;object&amp;gt;%s&amp;lt;/object&amp;gt;&amp;lt;type&amp;gt;%s&amp;lt;/type&amp;gt;            &lt;br /&gt;
&amp;lt;/triplet&amp;gt;&amp;quot;&amp;quot;&amp;quot;               &lt;br /&gt;
            typeval=el.get(&amp;#039;type&amp;#039;)&lt;br /&gt;
            if not typeval:&lt;br /&gt;
                typeval=&amp;#039;xsd:string&amp;#039;&lt;br /&gt;
            tmpres=(tmp % (xmlStrEnc(el.get(&amp;#039;subject&amp;#039;)),xmlStrEnc(el.get(&amp;#039;predicate&amp;#039;)),&lt;br /&gt;
                           xmlStrEnc(el.get(&amp;#039;object&amp;#039;)),xmlStrEnc(typeval),))&lt;br /&gt;
            res=res+tmpres&lt;br /&gt;
    return res+&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/triplets&amp;gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def removeElem(el,list):&lt;br /&gt;
    if el in list:&lt;br /&gt;
        res=[]&lt;br /&gt;
        for x in list:&lt;br /&gt;
            if x!=el:&lt;br /&gt;
                res=res+[x]  &lt;br /&gt;
        return res                &lt;br /&gt;
    else:&lt;br /&gt;
        return list&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def parseTriplesXml(xmlstr):&lt;br /&gt;
    #print &amp;#039;parseTriplesXml &amp;#039;&lt;br /&gt;
    if not xmlstr:&lt;br /&gt;
        return None&lt;br /&gt;
    dom=libxml2.parseDoc(xmlstr)&lt;br /&gt;
    root=dom.children&lt;br /&gt;
    if not root or not root.children:&lt;br /&gt;
        return None    &lt;br /&gt;
    triple=root.children&lt;br /&gt;
    res=[]&lt;br /&gt;
    while triple:&lt;br /&gt;
        if triple.type==&amp;#039;element&amp;#039;:&lt;br /&gt;
            resel={}&lt;br /&gt;
            el=triple.children            &lt;br /&gt;
            while el:&lt;br /&gt;
                if el.type==&amp;#039;element&amp;#039;:&lt;br /&gt;
                    #print str(el)&lt;br /&gt;
                    if el.children and el.children.type==&amp;#039;text&amp;#039;:&lt;br /&gt;
                        #print el.name,el.content&lt;br /&gt;
                        resel[el.name]=xmlStrDec(el.content)&lt;br /&gt;
                el=el.next&lt;br /&gt;
            if resel:    &lt;br /&gt;
                res=res+[resel]    &lt;br /&gt;
        triple=triple.next          &lt;br /&gt;
    return res          &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def xmlStrDec(data):&lt;br /&gt;
    if not data:&lt;br /&gt;
        return &amp;quot;&amp;quot;      &lt;br /&gt;
    if data.find(&amp;#039;&amp;amp;lt;&amp;#039;)&amp;gt;=0:&lt;br /&gt;
        data=data.replace(&amp;#039;&amp;amp;lt;&amp;#039;,&amp;#039;&amp;lt;&amp;#039;)&lt;br /&gt;
    if data.find(&amp;#039;&amp;amp;gt;&amp;#039;)&amp;gt;=0:&lt;br /&gt;
        data=data.replace(&amp;#039;&amp;amp;gt&amp;#039;,&amp;#039;&amp;gt;&amp;#039;)&lt;br /&gt;
    if data.find(&amp;#039;&amp;amp;amp;&amp;#039;)&amp;gt;=0:&lt;br /&gt;
        data=data.replace(&amp;#039;&amp;amp;amp;&amp;#039;,&amp;#039;&amp;amp;&amp;#039;)    &lt;br /&gt;
    if data.find(&amp;#039;&amp;amp;apos;&amp;#039;)&amp;gt;=0:&lt;br /&gt;
        data=data.replace(&amp;#039;&amp;amp;apos;&amp;#039;,&amp;quot;&amp;#039;&amp;quot;) &lt;br /&gt;
    if data.find(&amp;#039;&amp;amp;quot;&amp;#039;)&amp;gt;=0:&lt;br /&gt;
        data=data.replace(&amp;#039;&amp;amp;quot;&amp;#039;,&amp;#039;&amp;quot;&amp;#039;)    &lt;br /&gt;
        &lt;br /&gt;
    return data                &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
def xmlStrEnc(data):&lt;br /&gt;
    if data.find(&amp;#039;&amp;amp;&amp;#039;)&amp;gt;=0:&lt;br /&gt;
        data=data.replace(&amp;#039;&amp;amp;&amp;#039;,&amp;#039;&amp;amp;amp;&amp;#039;)&lt;br /&gt;
    if data.find(&amp;#039;&amp;lt;&amp;#039;)&amp;gt;=0:&lt;br /&gt;
        data=data.replace(&amp;#039;&amp;lt;&amp;#039;,&amp;#039;&amp;amp;lt;&amp;#039;)&lt;br /&gt;
    if data.find(&amp;#039;&amp;gt;&amp;#039;)&amp;gt;=0:&lt;br /&gt;
        data=data.replace(&amp;#039;&amp;gt;&amp;#039;,&amp;#039;&amp;amp;gt;&amp;#039;)    &lt;br /&gt;
        &lt;br /&gt;
    return data&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tammet</name></author>
	</entry>
</feed>