|
|---|
| And it came to pass, that, while Apollos was at Corinth, Paul having passed through the upper coasts came to Ephesus: and finding certain disciples,
|
|---|
| ᎯᎠᏃ ᏄᎵᏍᏔᏅᎩ, ᎾᎯᏳ ᎠᏉᎳ ᎪᎵᏂᏗᏱ ᎡᏙᎲᎩ, ᏉᎳ ᎠᏰᎵ ᎨᏒ ᎤᎶᏒ, ᎡᏈᏌ ᏭᎷᏨᎩ. ᏚᏩᏛᎲᏃ ᎩᎶ ᎢᏳᎾᏍᏗ ᎠᏃᎯᏳᎲᏍᎩ,
|
|---|
Hi-a-no nu-li-s-ta-nv-gi, na-hi-yu A-quo-la go-li-ni-di-yi e-do-hv-gi, Quo-la a-ye-li ge-sv u-lo-sv, E-qui-sa wu-lu-tsv-gi. Du-wa-dv-hv-no gi-lo i-yu-na-s-di a-no-hi-yu-hv-s-gi,
|
|---|
|
|---|
| He said unto them, Have ye received the Holy Ghost since ye believed? And they said unto him, We have not so much as heard whether there be any Holy Ghost.
|
|---|
| ᎯᎠ ᏂᏚᏪᏎᎸᎩ; ᎡᏥᏁᎸᏍᎪ ᎦᎸᏉᏗᏳ ᎠᏓᏅᏙ ᎨᏦᎯᏳᏅᎯ? ᎯᎠᏃ ᏅᎬᏩᏪᏎᎸᎩ; ᎥᏝ ᎣᎦᏛᎦᏅᎯᎤᏅ ᏱᎩ ᎦᎸᏉᏗᏳ ᎠᏓᏅᏙ ᎡᎲᎢ.
|
|---|
Hi-a ni-du-we-se-lv-gi; E-tsi-ne-lv-s-go ga-lv-quo-di-yu a-da-nv-do ge-tso-hi-yu-nv-hi? Hi-a-no nv-gv-wa-we-se-lv-gi; v-tla o-ga-dv-ga-nv-hi-u-nv yi-gi Ga-lv-quo-di-yu A-da-nv-do e-hv-i.
|
|---|
|
|---|
| And he said unto them, Unto what then were ye baptized? And they said, Unto John's baptism.
|
|---|
| ᎯᎠᏃ ᏂᏚᏪᏎᎸᎩ; ᎦᏙ ᎤᏍᏗ ᏗᏓᏬᏍᏙᏗ ᎨᏒ ᏕᏣᏬᏍᏔᏁᎢ? ᏣᏂ ᏧᏓᏬᏍᏙᏗ ᎨᏒ, ᎤᎾᏛᏅᎩ.
|
|---|
Hi-a-no ni-du-we-se-lv-gi; Ga-do u-s-di di-da-wo-s-do-di ge-sv de-tsa-wo-s-ta-ne-i? Tsa-ni tsu-da-wo-s-do-di ge-sv, u-na-dv-nv-gi.
|
|---|
|
|---|
| Then said Paul, John verily baptized with the baptism of repentance, saying unto the people, that they should believe on him which should come after him, that is, on Christ Jesus.
|
|---|
| ᏉᎳᏃ ᎯᎠ ᏄᏪᏒᎩ; ᏣᏂ ᎤᏙᎯᏳᎯ ᏓᏓᏬᏍᏗᏍᎬᎩ ᏗᏓᏬᏍᏙᏗ ᎦᏁᏟᏴᏍᏗ ᎨᏒ ᎣᏓᏅᏛ ᎤᎬᏩᎵ, ᏕᎧᏁᏤᎲ ᏴᏫ, ᎤᏃᎯᏳᏗᏱ ᎣᏂ ᏅᏓᏰᎩ, ᎾᏍᎩ ᎦᎶᏁᏛ ᏥᏌ ᏕᎪᏎᎲᎩ.
|
|---|
Quo-la-no hi-a nu-we-sv-gi; Tsa-ni u-do-hi-yu-hi da-da-wo-s-di-s-gv-gi di-da-wo-s-do-di ga-ne-tli-yv-s-di ge-sv o-da-nv-dv u-gv-wa-li, de-ka-ne-tse-hv yv-wi, u-no-hi-yu-di-yi o-ni nv-da-ye-gi, na-s-gi Ga-lo-ne-dv Tsi-sa de-go-se-hv-gi.
|
|---|
|
|---|
| When they heard this, they were baptized in the name of the Lord Jesus.
|
|---|
| ᎾᏍᎩᏃ ᎤᎾᏛᎦᏅ ᎤᎬᏫᏳᎯ ᏥᏌ ᏚᏙᎥ ᏕᎨᎦᏬᏍᏔᏅᎩ.
|
|---|
Na-s-gi-no u-na-dv-ga-nv U-gv-wi-yu-hi Tsi-sa du-do-v de-ge-ga-wo-s-ta-nv-gi.
|
|---|
|
|---|
| And when Paul had laid his hands upon them, the Holy Ghost came on them; and they spake with tongues, and prophesied.
|
|---|
| ᎿᎭᏉᏃ ᏉᎳ ᏚᏏᏔᏛ, ᎦᎸᏉᏗᏳ ᎠᏓᏅᏙ ᎤᏂᎷᏤᎸᎩ, ᏚᏂᏬᏂᏒᎩᏃ ᏧᏓᎴᏅᏛ ᏗᎦᏬᏂᎯᏍᏗ ᎨᏒᎢ, ᎠᎴ ᎤᎾᏙᎴᎰᏒᎩ.
|
|---|
Hna-quo-no Quo-la du-si-ta-dv, Ga-lv-quo-di-yu A-da-nv-do u-ni-lu-tse-lv-gi, du-ni-wo-ni-sv-gi-no tsu-da-le-nv-dv di-ga-wo-ni-hi-s-di ge-sv-i, a-le u-na-do-le-ho-sv-gi.
|
|---|
|
|---|
| And all the men were about twelve.
|
|---|
| ᎾᏍᎩᏃ ᎠᏂᏍᎦᏯ ᏂᎦᏛ ᏔᎳᏚ ᎢᏴᏛ ᎾᏂᎥᎩ.
|
|---|
Na-s-gi-no a-ni-s-ga-ya ni-ga-dv ta-la-du i-yv-dv na-ni-v-gi.
|
|---|
|
|---|
| And he went into the synagogue, and spake boldly for the space of three months, disputing and persuading the things concerning the kingdom of God.
|
|---|
| ᏗᎦᎳᏫᎢᏍᏗᏱᏃ ᏭᏴᎸ ᎾᏍᎦᎢᎲᎾ ᎦᏬᏂᏍᎬᎩ, ᏦᎢ ᎢᏯᏅᏙ ᎢᎦᎯᏛ ᏕᎦᏬᏁᏗᏍᎬᎩ ᎠᎴ ᏓᏍᏗᏰᏗᏍᎬᎩ ᎤᏃᎯᏳᏗᏱ ᎤᏁᎳᏅᎯ ᎤᏤᎵᎪᎯ ᎤᎬᏩᎵ.
|
|---|
Di-ga-la-wi-i-s-di-yi-no wu-yv-lv na-s-ga-i-hv-na ga-wo-ni-s-gv-gi, tso-i i-ya-nv-do i-ga-hi-dv de-ga-wo-ne-di-s-gv-gi a-le da-s-di-ye-di-s-gv-gi u-no-hi-yu-di-yi U-ne-la-nv-hi u-tse-li-go-hi u-gv-wa-li.
|
|---|
|
|---|
| But when divers were hardened, and believed not, but spake evil of that way before the multitude, he departed from them, and separated the disciples, disputing daily in the school of one Tyrannus.
|
|---|
| ᎩᎶᏃ ᎢᏳᎾᏍᏗ ᎤᏂᏍᏓᏲᏒ ᎠᎴ ᏄᏃᎯᏳᏅᎾ ᏄᎵᏍᏔᏅ, ᎠᎴ ᎣᏐᏅᏉ ᎤᏂᏃᎮᎸ ᎾᏍᎩ ᎦᏅᏅ ᎤᎬᏩᎵ ᎤᏂᏣᏘ ᎠᏂᎦᏔᎲᎢ, ᏚᏓᏅᎡᎸᎩ, ᎠᎴ ᏚᏓᏓᎴᏔᏅᎩ ᎠᏃᎯᏳᎲᏍᎩ ᏕᎦᏬᏁᏗᏍᎬᎩ ᏂᏚᎩᏨᏂᏒ ᎩᎶ ᎢᏳᏍᏗ ᏓᎳᎾ ᏧᏙᎢᏛ ᏧᏕᏲᏗᏱ.
|
|---|
Gi-lo-no i-yu-na-s-di u-ni-s-da-yo-sv a-le nu-no-hi-yu-nv-na nu-li-s-ta-nv, a-le o-so-nv-quo u-ni-no-he-lv na-s-gi ga-nv-nv u-gv-wa-li u-ni-tsa-ti a-ni-ga-ta-hv-i, du-da-nv-e-lv-gi, a-le du-da-da-le-ta-nv-gi a-no-hi-yu-hv-s-gi de-ga-wo-ne-di-s-gv-gi ni-du-gi-tsv-ni-sv gi-lo i-yu-s-di Da-la-na tsu-do-i-dv tsu-de-yo-di-yi.
|
|---|
|
|---|
| And this continued by the space of two years; so that all they which dwelt in Asia heard the word of the Lord Jesus, both Jews and Greeks.
|
|---|
| ᎾᏍᎩᏃ ᎯᎠ ᏄᏛᏁᎸᎩ ᏔᎵ ᏧᏕᏘᏴᏛ ᎢᎪᎯᏛ, ᎾᏍᎩ ᏅᏓᏳᎵᏍᏙᏔᏅᎩ ᏂᎦᏛ ᎡᏏᏱ ᎠᏁᎯ ᎠᏂᏧᏏ ᎠᎴ ᎠᏂᎪᎢ ᎤᎾᏛᎦᏅᎩ ᎧᏃᎮᏛ ᎤᎬᏫᏳᎯ ᏥᏌ ᎤᏤᎵᎦ.
|
|---|
Na-s-gi-no hi-a nu-dv-ne-lv-gi ta-li tsu-de-ti-yv-dv i-go-hi-dv, na-s-gi nv-da-yu-li-s-do-ta-nv-gi ni-ga-dv E-si-yi a-ne-hi A-ni-tsu-si a-le A-ni-go-i u-na-dv-ga-nv-gi ka-no-he-dv U-gv-wi-yu-hi Tsi-sa u-tse-li-ga.
|
|---|
|
|---|
| And God wrought special miracles by the hands of Paul:
|
|---|
| ᎠᎴ ᎤᏁᎳᏅᎯ ᏯᏃ ᎢᏳᎵᏍᏙᏗ ᏂᎨᏒᎾ ᎤᏍᏆᏂᎪᏗ ᏚᎸᏫᏍᏓᏁᎲᎩ ᏉᎳ ᎠᎬᏗᏍᎬᎩ;
|
|---|
A-le U-ne-la-nv-hi ya-no i-yu-li-s-do-di ni-ge-sv-na u-s-qua-ni-go-di du-lv-wi-s-da-ne-hv-gi Quo-la a-gv-di-s-gv-gi;
|
|---|
|
|---|
| So that from his body were brought unto the sick handkerchiefs or aprons, and the diseases departed from them, and the evil spirits went out of them.
|
|---|
| ᎠᏰᎸᏰᏃ ᏧᏓᎴᏅᎯ ᏗᏯᏠ ᎠᎴ ᏗᏞᏌᏙ ᏓᏂᏃᎮᎲᎩ ᏧᏂᏢᎩ, ᎥᏳᎩᏃ ᎠᎵᏛᏗᏍᎬᎩ, ᎤᏂᏲᏃ ᏗᏓᏅᏙ ᎬᏩᏂᏄᎪᎬᎩ.
|
|---|
A-ye-lv-ye-no tsu-da-le-nv-hi di-ya-tlo a-le di-tle-sa-do da-ni-no-he-hv-gi tsu-ni-tlv-gi, v-yu-gi-no a-li-dv-di-s-gv-gi, u-ni-yo-no di-da-nv-do gv-wa-ni-nu-go-gv-gi.
|
|---|
|
|---|
| Then certain of the vagabond Jews, exorcists, took upon them to call over them which had evil spirits the name of the Lord Jesus, saying, We adjure you by Jesus whom Paul preacheth.
|
|---|
| ᎩᎶᏃ ᎢᏳᎾᏍᏗ ᎠᏂᏧᏏ ᏅᏁᏙᎯ, ᎠᏂᏍᎩᎾ ᏗᏂᏄᎪᏫᏍᎩ, ᎤᎾᏓᏅᏖᎴ ᎤᎬᏫᏳᎯ ᏥᏌ ᏕᎤᏙᎥ ᏧᏂᏁᎢᏍᏓᏁᏗᏱ ᎤᏂᏲ ᏗᏓᏅᏙ ᏧᏂᏯᎢ, ᎯᎠ ᏄᏂᏪᏎᎢ; ᎢᏨᏁᎢᏍᏓᏏ ᏥᏌ, ᎾᏍᎩ ᏉᎳ ᎠᎵᏥᏙᎲᏍᎬ ᏥᎦᏃᎮᎭ.
|
|---|
Gi-lo-no i-yu-na-s-di A-ni-tsu-si nv-ne-do-hi, a-ni-s-gi-na di-ni-nu-go-wi-s-gi, u-na-da-nv-te-le U-gv-wi-yu-hi Tsi-sa de-u-do-v tsu-ni-ne-i-s-da-ne-di-yi u-ni-yo di-da-nv-do tsu-ni-ya-i, hi-a nu-ni-we-se-i; I-tsv-ne-i-s-da-si Tsi-sa, na-s-gi Quo-la a-li-tsi-do-hv-s-gv tsi-ga-no-he-ha.
|
|---|
|
|---|
| And there were seven sons of one Sceva, a Jew, and chief of the priests, which did so.
|
|---|
| ᎠᏁᎮᏃ ᎦᎵᏉᎩ ᎢᏯᏂᏛ ᏏᏫ ᏧᏙᎢᏛ ᏧᏪᏥ ᎠᏧᏏ ᏄᎬᏫᏳᎡ ᎠᏥᎸᎨᎶᎯ ᎾᏍᎩ ᎾᎾᏛᏁᎮᎢ.
|
|---|
A-ne-he-no ga-li-quo-gi i-ya-ni-dv Si-wi tsu-do-i-dv tsu-we-tsi A-tsu-si nu-gv-wi-yu-e a-tsi-lv-ge-lo-hi na-s-gi na-na-dv-ne-he-i.
|
|---|
|
|---|
| And the evil spirit answered and said, Jesus I know, and Paul I know; but who are ye?
|
|---|
| ᎤᏲᏃ ᎠᏓᏅᏙ ᎤᏁᏨ ᎯᎠ ᏄᏪᏎᎢ; ᏥᏌ ᏥᎦᏔᎭ, ᎠᎴ ᏉᎳ ᏥᎦᏔᎭ, ᏂᎯᏍᎩᏂ ᎦᎪ ᎢᏣᏍᏗ?
|
|---|
U-yo-no a-da-nv-do u-ne-tsv hi-a nu-we-se-i; Tsi-sa tsi-ga-ta-ha, a-le Quo-la tsi-ga-ta-ha, ni-hi-s-gi-ni ga-go i-tsa-s-di?
|
|---|
|
|---|
| And the man in whom the evil spirit was leaped on them, and overcame them, and prevailed against them, so that they fled out of that house naked and wounded.
|
|---|
| ᎠᏍᎦᏯᏃ ᎤᏲ ᎠᏓᏅᏙ ᎤᏯᎢ ᏚᏁᎷᎩᎡᎴᎢ, ᎠᎴ ᎡᏍᎦ ᏂᏚᏩᏁᎴᎢ, ᎠᎴ ᏚᏎᎪᎩᏎᎢ, ᎾᏍᎩ ᎢᏳᏍᏗ ᎤᎾᎵᏎ ᎾᎿᎭᎠᏓᏁᎸ ᎤᏂᏄᎪᏤ ᏧᏂᏰᎸᎢᎭ ᎠᎴ ᏗᎨᏥᏐᏅᏅᎯ.
|
|---|
A-s-ga-ya-no u-yo a-da-nv-do u-ya-i du-ne-lu-gi-e-le-i, a-le e-s-ga ni-du-wa-ne-le-i, a-le du-se-go-gi-se-i, na-s-gi i-yu-s-di u-na-li-se na-hna a-da-ne-lv u-ni-nu-go-tse tsu-ni-ye-lv-i-ha a-le di-ge-tsi-so-nv-nv-hi.
|
|---|
|
|---|
| And this was known to all the Jews and Greeks also dwelling at Ephesus; and fear fell on them all, and the name of the Lord Jesus was magnified.
|
|---|
| ᎠᎴ ᎾᏍᎩ ᎯᎠ ᎤᎾᏛᎦᏅᎩ ᏂᎦᏛ ᎠᏂᏧᏏ ᎠᎴ ᎠᏂᎪᎢ ᎡᏈᏌ ᎠᏁᎯ; ᏂᎦᏛᏃ ᎤᏂᎾᏰᏒᎩ, ᎠᎴ ᎤᎬᏫᏳᎯ ᏥᏌ ᏚᏙᎥ ᎦᎸᏉᏗᏳ ᏄᎵᏍᏔᏅᎩ.
|
|---|
A-le na-s-gi hi-a u-na-dv-ga-nv-gi ni-ga-dv A-ni-tsu-si a-le A-ni-go-i E-qui-sa a-ne-hi; ni-ga-dv-no u-ni-na-ye-sv-gi, a-le U-gv-wi-yu-hi Tsi-sa du-do-v ga-lv-quo-di-yu nu-li-s-ta-nv-gi.
|
|---|
|
|---|
| And many that believed came, and confessed, and shewed their deeds.
|
|---|
| ᎤᏂᏣᏛᎩᏃ ᎤᏃᎯᏳᏅᎯ ᎤᏂᎷᏨᎩ, ᎠᏂᏃᎲᏍᎬ ᎠᎴ ᎬᏂᎨᏒ ᎾᏅᏁᎲᏚᏂᎸᏫᏍᏓᏁᎸᎢ.
|
|---|
U-ni-tsa-dv-gi-no u-no-hi-yu-nv-hi u-ni-lu-tsv-gi, a-ni-no-hv-s-gv a-le gv-ni-ge-sv na-nv-ne-hv-du-ni-lv-wi-s-da-ne-lv-i.
|
|---|
|
|---|
| Many of them also which used curious arts brought their books together, and burned them before all men: and they counted the price of them, and found it fifty thousand pieces of silver.
|
|---|
| ᎾᏍᏉ ᎤᏂᏣᏛᎩ ᎤᏍᏆᏂᎪᏗ ᎠᎾᏛᏁᎵᏍᎩ ᏚᏂᏟᏌᏅᎩ ᎪᏪᎵ, ᎠᎴ ᏚᎾᎪᎲᏍᏔᏅᎩ ᏂᎦᏛ ᎠᏂᎦᏔᎲᎢ. ᎤᎾᏎᎸᏃ ᏧᎬᏩᎶᏗᎯ ᎤᎾᏙᎴᎰᏒᎩ ᎯᏍᎦᏍᎪᎯ ᎢᏯᎦᏴᎵ ᎨᏒ ᎤᏂᏁᎬ ᎠᏕᎸ.
|
|---|
Na-s-quo u-ni-tsa-dv-gi u-s-qua-ni-go-di a-na-dv-ne-li-s-gi du-ni-tli-sa-nv-gi go-we-li, a-le du-na-go-hv-s-ta-nv-gi ni-ga-dv a-ni-ga-ta-hv-i. U-na-se-lv-no tsu-gv-wa-lo-di-hi u-na-do-le-ho-sv-gi hi-s-ga-s-go-hi i-ya-ga-yv-li ge-sv u-ni-ne-gv a-de-lv.
|
|---|
|
|---|
| So mightily grew the word of God and prevailed.
|
|---|
| ᎾᏍᎩ ᏧᎵᏂᎬᎬᎩ ᎤᏛᏃᏒᎩ ᎠᎴ ᎤᏰᎵᏒᎩ ᎧᏃᎮᏛ ᎤᏁᎳᏅᎯ ᎤᏤᎵᎦ.
|
|---|
Na-s-gi tsu-li-ni-gv-gv-gi u-dv-no-sv-gi a-le u-ye-li-sv-gi ka-no-he-dv U-ne-la-nv-hi u-tse-li-ga.
|
|---|
|
|---|
| After these things were ended, Paul purposed in the spirit, when he had passed through Macedonia and Achaia, to go to Jerusalem, saying, After I have been there, I must also see Rome.
|
|---|
| ᎾᏍᎩᏃ ᎯᎠ ᏄᎵᏍᏔᏂᏙᎸ, ᏉᎳ ᎤᏓᏅᏖᎸᎩ ᎤᏓᏅᏛᎢ, ᎿᎭᏉ ᎹᏏᏙᏂ ᎠᎴ ᎡᎧᏯ ᎤᎶᏐᏅᎯ, ᏥᎷᏏᎵᎻ ᏭᎶᎯᏍᏗᏱ, ᎯᎠ ᏄᏪᏒᎩ; ᎾᎿᎭᎬᏇᏙᏅᎯ ᎨᏎᏍᏗ ᎶᎻ ᎾᏍᏉ ᎠᏎ ᏛᏥᎪᎢ.
|
|---|
Na-s-gi-no hi-a nu-li-s-ta-ni-do-lv, Quo-la u-da-nv-te-lv-gi u-da-nv-dv-i, hna-quo Ma-si-do-ni a-le E-ka-ya u-lo-so-nv-hi, Tsi-lu-si-li-mi wu-lo-hi-s-di-yi, hi-a nu-we-sv-gi; na-hna gv-que-do-nv-hi ge-se-s-di Lo-mi na-s-quo a-se dv-tsi-go-i.
|
|---|
|
|---|
| So he sent into Macedonia two of them that ministered unto him, Timotheus and Erastus; but he himself stayed in Asia for a season.
|
|---|
| ᎰᏩᏃ ᎹᏏᏙᏂ ᏕᎤᏅᏒᎩ ᎠᏂᏔᎵ ᎬᏩᏍᏕᎸᎯᏙᎯ, ᏗᎹᏗ ᎠᎴ ᎢᎳᏍᏓ, ᎤᏩᏒᏍᎩᏂ ᎤᏗᎩᏴᎩ ᎡᏏᏱ ᎢᎸᏍᎩ ᎢᎪᎯᏛ.
|
|---|
Ho-wa-no Ma-si-do-ni de-u-nv-sv-gi a-ni-ta-li gv-wa-s-de-lv-hi-do-hi, Di-ma-di a-le I-la-s-da, u-wa-sv-s-gi-ni u-di-gi-yv-gi E-si-yi i-lv-s-gi i-go-hi-dv.
|
|---|
|
|---|
| And the same time there arose no small stir about that way.
|
|---|
| ᎾᎯᏳᏃ ᎥᏝ ᎤᏍᏗᏉ ᎤᏕᏯᏙᏗ ᏱᏄᎵᏍᏔᏁᎢ, ᏅᏓᎦᎵᏍᏙᏗᏍᎬᎩ ᎾᏍᎩ ᎦᏅᏅ ᎤᎬᏩᎵ.
|
|---|
Na-hi-yu-no v-tla u-s-di-quo u-de-ya-do-di yi-nu-li-s-ta-ne-i, nv-da-ga-li-s-do-di-s-gv-gi na-s-gi ga-nv-nv u-gv-wa-li.
|
|---|
|
|---|
| For a certain man named Demetrius, a silversmith, which made silver shrines for Diana, brought no small gain unto the craftsmen;
|
|---|
| ᎩᎶᏰᏃ ᎢᏳᏍᏗ ᏗᎻᏟᏯ ᏧᏙᎢᏛ, ᎠᏕᎸ ᎠᏢᏅᎥᏍᎩ, ᎠᏕᎸ ᏗᎪᏢᏔᏅᎯ ᏓᏓᏁᎸ ᏕᎪᏢᎾᏁᎲ ᏓᏰᏂ, ᎥᏝ ᎤᏍᏗᏉ ᏧᎬᏩᎶᏗ ᏱᏓᏩᏛᎡᎮ ᎠᏃᏢᏅᎥᏍᎩ.
|
|---|
Gi-lo-ye-no i-yu-s-di Di-mi-tli-ya tsu-do-i-dv, a-de-lv a-tlv-nv-v-s-gi, a-de-lv di-go-tlv-ta-nv-hi da-da-ne-lv de-go-tlv-na-ne-hv Da-ye-ni, v-tla u-s-di-quo tsu-gv-wa-lo-di yi-da-wa-dv-e-he a-no-tlv-nv-v-s-gi.
|
|---|
|
|---|
| Whom he called together with the workmen of like occupation, and said, Sirs, ye know that by this craft we have our wealth.
|
|---|
| ᎾᏍᎩ ᏚᏪᏟᏌᏅ ᎠᎴ ᏅᏩᎾᏓᎴ ᎾᏍᎩ ᎢᏳᏍᏗ ᏧᏂᎸᏫᏍᏓᏁᎯ ᏚᏪᏟᏌᏅ ᎯᎠ ᏄᏪᏒᎩ; ᎢᏥᏍᎦᏯ, ᎢᏥᎦᏔᎭ ᎯᎠ ᎾᏍᎩ ᏗᎦᎸᏫᏍᏓᏁᏗ ᎨᏒ ᏧᎬᏩᎶᏗ ᎢᏗᏩᏛᏗᏍᎬᎢ.
|
|---|
Na-s-gi du-we-tli-sa-nv a-le nv-wa-na-da-le na-s-gi i-yu-s-di tsu-ni-lv-wi-s-da-ne-hi du-we-tli-sa-nv hi-a nu-we-sv-gi; I-tsi-s-ga-ya, i-tsi-ga-ta-ha hi-a na-s-gi di-ga-lv-wi-s-da-ne-di ge-sv tsu-gv-wa-lo-di i-di-wa-dv-di-s-gv-i.
|
|---|
|
|---|
| Moreover ye see and hear, that not alone at Ephesus, but almost throughout all Asia, this Paul hath persuaded and turned away much people, saying that they be no gods, which are made with hands:
|
|---|
| ᎠᎴ ᎢᏥᎪᏩᏘᎭ ᎠᎴ ᎢᏣᏛᎩᎭ, ᎥᏝ ᎡᏈᏌᏉ ᎤᏩᏒ, ᎾᏍᏉᏍᎩᏂ ᎠᎴᏉ ᏂᎬᎾᏛ ᎡᏏᏱ, ᎯᎠ ᏉᎳ ᏓᏍᏗᏰᏗᏍᎬ ᏚᎦᏔᎲᏒ ᎤᏂᏣᏘ ᏴᏫ, ᎯᎠ ᏂᏕᎦᏪᏎᎲᎢ, ᎥᏝ ᎦᎸᎳᏗ ᎠᏁᎯ ᏱᎩ ᎩᎶ ᏧᏬᏰᏂᏉ ᏧᏬᏢᏔᏅᎯ ᏥᎩ.
|
|---|
A-le i-tsi-go-wa-ti-ha a-le i-tsa-dv-gi-ha, v-tla E-qui-sa-quo u-wa-sv, na-s-quo-s-gi-ni a-le-quo ni-gv-na-dv E-si-yi, hi-a Quo-la da-s-di-ye-di-s-gv du-ga-ta-hv-sv u-ni-tsa-ti yv-wi, hi-a ni-de-ga-we-se-hv-i, v-tla ga-lv-la-di a-ne-hi yi-gi gi-lo tsu-wo-ye-ni-quo tsu-wo-tlv-ta-nv-hi tsi-gi.
|
|---|
|
|---|
| So that not only this our craft is in danger to be set at nought; but also that the temple of the great goddess Diana should be despised, and her magnificence should be destroyed, whom all Asia and the world worshippeth.
|
|---|
| ᎠᎴ ᎥᏝ ᎯᎠᏉ ᏗᎩᎸᏫᏍᏓᏁᏗ ᎨᏒ ᎤᏩᏒ ᎤᏁᎳᎩ ᏫᎬᏩᏲᏥᏓᏍᏗ ᏱᎩ; ᎾᏍᏉᏍᎩᏂ ᎠᏓᏁᎸ ᎦᎸᏉᏗᏳ ᎦᎸᎳᏗ ᎡᎯ ᏓᏰᏂ ᎤᏤᎵᎦ ᎠᏎᏉᏉ ᎢᎬᏩᎵᏍᏔᏂᏓᏍᏗ, ᎠᎴ ᎾᏍᎩ ᎠᏥᎸᏉᏗᏳ ᎨᏒ ᏫᎬᏩᏲᏥᏓᏍᏗ, ᎾᏍᎩ ᏂᎦᏛ ᎡᏏᏱ ᎠᎴ ᏂᎬᎾᏛ ᎡᎶᎯ ᏥᎬᏩᎸᏉᏗᎭ.
|
|---|
A-le v-tla hi-a-quo di-gi-lv-wi-s-da-ne-di ge-sv u-wa-sv u-ne-la-gi wi-gv-wa-yo-tsi-da-s-di yi-gi; na-s-quo-s-gi-ni a-da-ne-lv ga-lv-quo-di-yu ga-lv-la-di e-hi Da-ye-ni u-tse-li-ga a-se-quo-quo i-gv-wa-li-s-ta-ni-da-s-di, a-le na-s-gi a-tsi-lv-quo-di-yu ge-sv wi-gv-wa-yo-tsi-da-s-di, na-s-gi ni-ga-dv E-si-yi a-le ni-gv-na-dv e-lo-hi tsi-gv-wa-lv-quo-di-ha.
|
|---|
|
|---|
| And when they heard these sayings, they were full of wrath, and cried out, saying, Great is Diana of the Ephesians.
|
|---|
| ᎾᏍᎩᏃ ᎤᎾᏛᎦᏅ ᎤᏂᏔᎳᏬᏍᎬᎢ ᎤᏂᎧᎵᏨᎩ, ᎠᎴ ᎤᏁᎷᏅᎩ ᎯᎠ ᏄᏂᏪᏒᎩ; ᎦᎸᏉᏗᏳ ᏓᏰᏂ ᎡᏈᏌ ᎠᏁᎯ ᎤᎾᏤᎵᎦ.
|
|---|
Na-s-gi-no u-na-dv-ga-nv u-ni-ta-la-wo-s-gv-i u-ni-ka-li-tsv-gi, a-le u-ne-lu-nv-gi hi-a nu-ni-we-sv-gi; Ga-lv-quo-di-yu Da-ye-ni E-qui-sa a-ne-hi u-na-tse-li-ga.
|
|---|
|
|---|
| And the whole city was filled with confusion: and having caught Gaius and Aristarchus, men of Macedonia, Paul's companions in travel, they rushed with one accord into the theatre.
|
|---|
| ᏂᎬᏃ ᎦᏚᎲ ᎤᎾᏓᏑᏰᏛᏉ ᏄᎵᏍᏔᏅᎩ, ᏚᏂᏂᏴᎲᏃ ᎦᏯ ᎠᎴ ᎡᎵᏍᏔᎦ ᎹᏏᏙᏂ ᎠᏁᎯ, ᏉᎳ ᎤᎾᎵᎪᎯ ᎠᏁᏙᎲᎢ, ᎤᎴᏃᏅᎯ ᎤᎾᏁᎷᎩᏒᎩ ᏭᏂᏴᎸᎩ ᎤᎾᏛᏁᎸᏗᏱ.
|
|---|
Ni-gv-no ga-du-hv u-na-da-su-ye-dv-quo nu-li-s-ta-nv-gi, du-ni-ni-yv-hv-no Ga-ya a-le E-li-s-ta-ga Ma-si-do-ni a-ne-hi, Quo-la u-na-li-go-hi a-ne-do-hv-i, u-le-no-nv-hi u-na-ne-lu-gi-sv-gi wu-ni-yv-lv-gi u-na-dv-ne-lv-di-yi.
|
|---|
|
|---|
| And when Paul would have entered in unto the people, the disciples suffered him not.
|
|---|
| ᏉᎳᏃ ᏫᏚᏴᏎᏗᏱ ᏴᏫ ᎤᏓᏅᏖᎸ, ᎠᏃᎯᏳᎲᏍᎩ ᎬᏩᏅᏍᏓᏕᎸᎩ.
|
|---|
Quo-la-no wi-du-yv-se-di-yi yv-wi u-da-nv-te-lv, a-no-hi-yu-hv-s-gi gv-wa-nv-s-da-de-lv-gi.
|
|---|
|
|---|
| And certain of the chief of Asia, which were his friends, sent unto him, desiring him that he would not adventure himself into the theatre.
|
|---|
| ᎩᎶᏃ ᎢᏳᎾᏍᏗ ᏗᎨᎦᏁᎶᏗ ᎡᏏᏱ ᎠᏁᎯ, ᏉᎳ ᏧᎵᎢ, ᎤᎾᏓᏅᏒᎩ ᏫᎬᏩᏔᏲᏎᎸᎩ, ᏭᏴᏍᏗᏱ ᏂᎨᏒᎾ ᎤᎾᏛᏁᎸᏗᏱ.
|
|---|
Gi-lo-no i-yu-na-s-di di-ge-ga-ne-lo-di E-si-yi a-ne-hi, Quo-la tsu-li-i, u-na-da-nv-sv-gi wi-gv-wa-ta-yo-se-lv-gi, wu-yv-s-di-yi ni-ge-sv-na u-na-dv-ne-lv-di-yi.
|
|---|
|
|---|
| Some therefore cried one thing, and some another: for the assembly was confused; and the more part knew not wherefore they were come together.
|
|---|
| ᎤᏁᎷᏅᎯ ᏧᏓᎴᏅᏛᏉ ᏂᏚᏂᏪᏒᎩ; ᏓᏂᎳᏫᎥᏰᏃ ᎤᎾᏓᏑᏰᏛᏉ ᎨᏒᎩ, ᎠᎴ ᎤᏟ ᎢᏯᏂᏛ ᎥᏝ ᏯᏂᎦᏔᎮ ᏅᏗᎦᎵᏍᏙᏗᏍᎬ ᎤᎾᏓᏟᏌᏅᎢ.
|
|---|
U-ne-lu-nv-hi tsu-da-le-nv-dv-quo ni-du-ni-we-sv-gi; da-ni-la-wi-v-ye-no u-na-da-su-ye-dv-quo ge-sv-gi, a-le u-tli i-ya-ni-dv v-tla ya-ni-ga-ta-he nv-di-ga-li-s-do-di-s-gv u-na-da-tli-sa-nv-i.
|
|---|
|
|---|
| And they drew Alexander out of the multitude, the Jews putting him forward. And Alexander beckoned with the hand, and would have made his defence unto the people.
|
|---|
| ᏭᏃᏯᏁᏒᎩᏃ ᎡᎵᎩ ᎤᏂᏣᏘ ᎠᏂᏙᎾᎥᎢ, ᎾᏍᎩ ᎠᏂᏧᏏ ᎠᏂᏅᏫᏍᏗᏍᎬᎩ; ᎡᎵᎩᏃ ᎤᏕᎸᏅ ᎤᏬᏰᏂ ᎤᏚᎵᏍᎬᎩ ᎤᏩᏒ ᎠᎵᏍᏕᎵᏍᎬᎢ ᏧᏬᏁᏙᏗᏱ ᏴᏫ.
|
|---|
Wu-no-ya-ne-sv-gi-no E-li-gi u-ni-tsa-ti a-ni-do-na-v-i, na-s-gi A-ni-tsu-si a-ni-nv-wi-s-di-s-gv-gi; E-li-gi-no u-de-lv-nv u-wo-ye-ni u-du-li-s-gv-gi u-wa-sv a-li-s-de-li-s-gv-i tsu-wo-ne-do-di-yi yv-wi.
|
|---|
|
|---|
| But when they knew that he was a Jew, all with one voice about the space of two hours cried out, Great is Diana of the Ephesians.
|
|---|
| ᎠᏎᏃ ᎤᎾᏙᎴᎰᏒ ᎠᏧᏏ ᎨᏒᎢ, ᏌᏉ ᏥᎧᏁᎪ ᎾᏍᎩᏯ ᏂᎦᏛ ᎤᏁᎷᏅᎩ, ᏔᎵᎭ ᎢᏳᏟᎶᏛ ᎢᎪᎯᏛ ᎯᎠ ᎾᏂᏪᏍᎬᎩ; ᎦᎸᏉᏗᏳ ᏓᏰᏂ ᎡᏈᏌ ᎠᏁᎯ ᎤᎾᏤᎵᎦ.
|
|---|
A-se-no u-na-do-le-ho-sv A-tsu-si ge-sv-i, sa-quo tsi-ka-ne-go na-s-gi-ya ni-ga-dv u-ne-lu-nv-gi, ta-li-ha i-yu-tli-lo-dv i-go-hi-dv hi-a na-ni-we-s-gv-gi; Ga-lv-quo-di-yu Da-ye-ni E-qui-sa a-ne-hi u-na-tse-li-ga.
|
|---|
|
|---|
| And when the townclerk had appeased the people, he said, Ye men of Ephesus, what man is there that knoweth not how that the city of the Ephesians is a worshipper of the great goddess Diana, and of the image which fell down from Jupiter?
|
|---|
| ᏗᎪᏪᎵᏍᎩᏃ ᏚᏲᏍᏙᏓᏁᎸ ᏴᏫ, ᎯᎠ ᏄᏪᏒᎩ; ᎢᏥᏍᎦᏯ ᎡᏈᏌ ᎢᏤᎯ, ᎦᎪ ᎡᎭ ᎾᎦᏔᎲᎾ ᎦᏚᎲ ᎡᏈᏌ ᎾᏍᎩ ᎡᏓᏓᏙᎵᏍᏓᏁᎯ ᎨᏒ ᎦᎸᏉᏗᏳ ᎦᎸᎳᏗ ᎡᎯ ᏓᏰᏂ, ᎠᎴ ᏧᏉᏙ ᏅᏓᏳᎶᎣᏒᎯ ᏗᏟᎶᏍᏔᏅᎯ?
|
|---|
Di-go-we-li-s-gi-no du-yo-s-do-da-ne-lv yv-wi, hi-a nu-we-sv-gi; I-tsi-s-ga-ya E-qui-sa i-tse-hi, ga-go e-ha na-ga-ta-hv-na ga-du-hv E-qui-sa na-s-gi e-da-da-do-li-s-da-ne-hi ge-sv ga-lv-quo-di-yu ga-lv-la-di e-hi Da-ye-ni, a-le Tsu-quo-do nv-da-yu-lo-o-sv-hi di-tli-lo-s-ta-nv-hi?
|
|---|
|
|---|
| Seeing then that these things cannot be spoken against, ye ought to be quiet, and to do nothing rashly.
|
|---|
| ᎾᏍᎩᏃ ᎢᏳᏍᏗ ᎯᎠ ᏄᏜᏓᏏᏛᎡᏗ ᏂᎨᏒᎾ ᏥᎩ, ᏙᎯᏱᏉᏍᎩᏂ ᏱᏂᏣᏛᏅ, ᎠᎴ ᎪᎱᏍᏗ ᎬᏁᎳᎩ ᏂᏣᏛᏁᎸᎾ ᏱᎩ.
|
|---|
Na-s-gi-no i-yu-s-di hi-a nu-dla-si-dv-e-di ni-ge-sv-na tsi-gi, do-hi-yi-quo-s-gi-ni yi-ni-tsa-dv-nv, a-le go-hu-s-di gv-ne-la-gi ni-tsa-dv-ne-lv-na yi-gi.
|
|---|
|
|---|
| For ye have brought hither these men, which are neither robbers of churches, nor yet blasphemers of your goddess.
|
|---|
| ᏕᏣᏘᏃᎦᏰᏃ ᎯᎠ Ꮎ ᎠᏂᏍᎦᏯ, ᎾᏍᎩ ᎦᎸᏉᏗ ᏕᎨᏒ ᎠᏂᏃᏍᎩᏍᎩ ᏂᎨᏒᎾ, ᎠᎴ ᎢᏣᏤᎵ ᎦᎸᎳᏗ ᎡᎯ ᎠᏂᏐᏢᎢᏍᏗᏍᎩ ᏂᎨᏒᎾ.
|
|---|
De-tsa-ti-no-ga-ye-no hi-a na a-ni-s-ga-ya, na-s-gi ga-lv-quo-di de-ge-sv a-ni-no-s-gi-s-gi ni-ge-sv-na, a-le i-tsa-tse-li ga-lv-la-di e-hi a-ni-so-tlv-i-s-di-s-gi ni-ge-sv-na.
|
|---|
|
|---|
| Wherefore if Demetrius, and the craftsmen which are with him, have a matter against any man, the law is open, and there are deputies: let them implead one another.
|
|---|
| ᎾᏍᎩ ᎢᏳᏍᏗ ᎢᏳᏃ ᏗᎻᏟᏯ ᎠᎴ ᎾᏍᎩ ᏣᏁᎭ ᎠᏃᏢᏅᎥᏍᎩ ᎠᏄᎯᏍᏗᏍᎨᏍᏗ ᎩᎶᎢ, ᎤᏜᏓᏅᏛ ᏗᏓᏱᎵᏓᏍᏗᏱ, ᎠᎴ ᎨᏥᎦᏘᏗᏍᏗ ᎠᏁᎭ; ᏫᏓᎾᏓᏱᎵᏓ.
|
|---|
Na-s-gi i-yu-s-di i-yu-no Di-mi-tli-ya a-le na-s-gi tsa-ne-ha a-no-tlv-nv-v-s-gi a-nu-hi-s-di-s-ge-s-di gi-lo-i, u-dla-nv-dv di-da-yi-li-da-s-di-yi, a-le ge-tsi-ga-ti-di-s-di a-ne-ha; wi-da-na-da-yi-li-da.
|
|---|
|
|---|
| But if ye inquire any thing concerning other matters, it shall be determined in a lawful assembly.
|
|---|
| ᎢᏳᏍᎩᏂ ᎪᎱᏍᏗ ᏅᏩᏓᎴ ᎢᏥᏱᎵᏙᎮᏍᏗ, ᎤᎵᏁᏨᎯ ᏕᎦᎳᏫᎥ ᏓᏚᎪᏔᏅᎭ.
|
|---|
I-yu-s-gi-ni go-hu-s-di nv-wa-da-le i-tsi-yi-li-do-he-s-di, u-li-ne-tsv-hi de-ga-la-wi-v da-du-go-ta-nv-ha.
|
|---|
|
|---|
| For we are in danger to be called in question for this day's uproar, there being no cause whereby we may give an account of this concourse.
|
|---|
| ᎨᎦᎵᏱᎵᏕᏗᏰᏃ ᎪᎯ ᎢᎦ ᎤᏓᏑᏰᏛ ᏥᏓᎵᏖᎸᎲᎦ, ᎥᏝᏰᏃ ᎪᎱᏍᏗ ᏯᎭ ᎨᎩᏃᎮᏗ ᏅᏗᎦᎵᏍᏙᏗᏍᎬ ᎯᎠ ᎪᎯ ᏥᏓᏓᎶᏌ.
|
|---|
Ge-ga-li-yi-li-de-di-ye-no go-hi i-ga u-da-su-ye-dv tsi-da-li-te-lv-hv-ga, v-tla-ye-no go-hu-s-di ya-ha ge-gi-no-he-di nv-di-ga-li-s-do-di-s-gv hi-a go-hi tsi-da-da-lo-sa.
|
|---|
|
|---|
| And when he had thus spoken, he dismissed the assembly.
|
|---|
| ᎾᏍᎩᏃ ᏄᏪᏒ ᏚᏰᎵᎯᏍᏔᏅᎩ ᏓᏂᎳᏫᎥᎢ.
|
|---|
Na-s-gi-no nu-we-sv du-ye-li-hi-s-ta-nv-gi da-ni-la-wi-v-i.
|
|---|


KILLING ZOE A film review by James Berardinelli Copyright 1994 James Berardinelli Status: O Rating (0 to 10): 6.8
Date Released: varies (9/94) Running Length: 1:36 Rated: R (Violence, sexual situations, nudity, language, drug use)
Starring: Eric Stoltz, Julie Delpy, Jean-Hugues Anglade Director: Roger Avary Producer: Samuel Hadida Screenplay: Roger Avary Cinematography: Tom Richmond Music: Tomandandy Released by October Films In English and French with subtitles
"I have always liked European cinema and, originally, I was going to make this for $200,000 on 16mm black and white. So I decided to write a movie with a lot of French language and use subtitles, and them make it a violent action picture... For the most part, I wanted to write an extreme example of what my generation is about - people who are living for the moment. I know there are optimists out there, those who are trying to make things better, but it's the momentum of a diseased culture that's difficult to stop. At the same time, [KILLING ZOE] is still kind of a comedy. You really have to look at the craziness for its comic value." - Roger Avary, writer/director of KILLING ZOE
Zed (Eric Stoltz) is a safecracker who has to choose between two offers to show him "the real Paris": one from old friend Eric (Jean- Hugues Anglade) who wants him to participate in a Bastille Day bank robbery, and one from Zoe (Julie Delpy), a prostitute who has fallen for him. Zed's decision and its ramifications form the framework for Roger Avary's ultraviolent and disturbing debut feature.
Avary, who is given credit for participating in the writing of TRUE ROMANCE and PULP FICTION, doesn't have quite the style of friend and sometimes-collaborator Quentin Tarantino (who, along with RESERVOIR DOGS producer Lawrence Bender, is listed as an executive producer). KILLING ZOE covers similar ground--examining the criminal "element" of society - but lacks the crispness of dialogue that has become one of Tarantino's trademarks. With the exception of the bedroom conversations between Zed and the title character, very little of what's said in this movie is memorable.
The title is somewhat misleading, as the movie is only tangentially about Zoe. That's not to say that she doesn't have a pivotal role in the way the heist is played out, but Avary chooses to devote far more of his attention on Eric, a character who has slipped into madness through drug use and a death sentence from AIDS. By the time we meet Eric, he's strung-out and out-of-control, and certainly not the kind of person any self-respecting thief would want to be working for on such a high-risk venture.
Avary uses odd camera angles, distortion, and a cacophonous score to emphasize the chaos of the word he has created. The effect is unsettling and, as such, singularly effective. Unusual imagery abounds, including back-and-forth cuts during a sex scene involving Zed and Zoe with clips from Friedrich Willhelm Murnau's NOSFERATU.
One of the chief disappointments with KILLING ZOE is the lack of screen time devoted to the most fascinating aspect of the film--the relationship between Zed and Zoe. These two characters work well together, but Avary seems more intent upon probing Eric's distorted world. There is too much untapped potential here not to be mourned over.
Eric Stoltz, whose career seems to have turned towards independent productions, gives another strong performance (in the wake of those in BODIES, REST AND MOTION and NAKED IN NEW YORK). Stoltz thrives in low-key roles like this, in some ways working better as a mirror to those around him than as an individual in his own right. His reaction shots to Eric's brutality are notable, revealing as much about the man as does Anglade's fierce portrayal.
As was the case in WHITE, Delpy is underused. Despite developing the most interesting personality in the film, she has an amazing lack of substantial scenes. Considering how good she is in what Avary has given us, it becomes frustrating to see her reduced to a non-entity for the bulk of the movie.
Ultimately, the greatest fault with KILLING ZOE may lie in Avary's ambition. In trying to do too much (crime film, love story, psychological thriller, and dissection of an alienated generation) with a ninety-minute motion picture, his focus becomes blurred. Regardless, with a style that alternately recalls John Woo and Sam Peckinpah, and a tone that is nihilistic in the extreme, he has created a movie that, while obviously flawed, isn't easily forgotten.
- James Berardinelli<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Sets
Operands of Access commands (symbols, instances, and other objects) can be grouped together into sets, where they are stored and operated upon. Access commands take sets as arguments, and return sets as results. Sets provide a more efficient mechanism for storing large numbers of elements than do Tcl-based containers such as lists or arrays.
Note: The Tcl string representation of these sets takes the form _DI_n, where n is an integer; this string is used as a handle into DIScover data structures. In the sense that the string representation is a handle to a richer but inaccessible data structure, DIScover sets are similar to Tcl file handles. DIScover sets are passed by reference, and are reference counted and garbage collected.


Very often you will not know the absolute path to a web page (even one you have created.) So of course you can't use an absolute path name.
Also, even when you are creating a web site on your home computer it is convenient to be able to rearrange things. This is much easier with relative path names.
The picture shows the web site we wish to create.
Below are (in simulation) the three disk files that are
to be linked.
Both Pets
and Hobbies
are
subdirectories of the directory that myHome.html
is in.
| myHome.html | Hobbies/myHobbies.html | Pets/myPets.html |
|---|---|---|


I am studying at Eskişehir Technical University, where mostly Java education is given. There are web technologies that I learn from lessons and with my own effort. I have a basic knowledge of Python, C #, SQL.
HTML ✫✫✫✫, CSS ✫✫✫✫, JAVASCRIPT ✫✫✫ , PHP ✫✫
I am studying at Eskişehir Technical University, where mostly Java education is given. The projects I have made are generally prepared using the Java language. It is a language that I want to improve myself and I like.
I also know the C # language at the basic level I reached with the education I received from the courses given at the university. I have a few simple interfaces and projects. It is a language I want to improve.
I really like the Python language in terms of artificial intelligence and image processing. I have a university thesis that I am currently continuing. Identifying and analyzing masked and unmasked people. Using data sets and certain algorithms, the system will be a system that will analyze and share the necessary information we need.
SHSCAMPUS is a student interaction platform project. On this platform, students can access many shared lecture notes for free. In this platform open to all university students; Students can also share their notes as documents, images or videos. They can even make money!
I created a platform to reach the professions you need according to working hours. For the current 4 professions (driver, doctor, plumber, locksmith
It is a system that detects pedestrians passing through a place, follows, counts, distinguishes whether they are masked or not, and determines the risk in the region according to the ratio of masked pedestrians and the number of pedestrians.
echo "# Music-Player-Java-Proje" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/huseyingulcicek08/Music-Player-Java-Proje.git git push -u origin master
It was a homework given at the university. A 2D study.
Hello, I'm Huseyin Computer Engineer I am a senior student at Eskişehir Technical University Computer Engineering department and I am a computer engineer who likes to deal with C #, Java, Python. I am currently looking for a compulsory short term internship for an active university. I read, learn, think, code and deal with philosophy
Download Resume


--- layout: post title: Auto reset vs manual reset date: type: post parent_id: '0' published: false password: '' status: pitch categories: [] tags: [] meta: _edit_last: '1' _su_title: '' author: login: akropp email<EMAIL_ADDRESS>display_name: akropp first_name: '' last_name: '' permalink: "/2012/10/11/auto-reset-vs-manual-reset/" ---
Pulse vs set


In the last post, we saw how to reduce global contention in a concurrent key-value store and provide some limited transactional support through versioning. In this post, we show how to use versioning to get rid of local locks. The key here is the compare-and-swap instruction. This is the atomic version of the following:
func CompareAndSwapUint64(addr *int64, old, new int64) (swapped bool) {
if *addr == old {
*addr = new
return true
}
return false
}
Atomic compare-and-swaps are purely user space and unlike mutexes would never require any help from the operating system. Hence, they can be much cheaper. The tradeoff is that we have to allow Get
or Put
fail sometimes in the case of simultaneous reads/writes, in which case the client needs to retry. This is captured by the ConflictErr
variable below.
type Version uint64
var ConflictErr = fmt.Errorf("Conflict detected, retry")
var StaleVersionErr = fmt.Errorf("Stale version detected")
type value struct {
data []byte
version *uint64
}
// CSKVStore is a low level key-value store that uses atomic operations
// instead of local locks. It still uses a global lock for coordinating
// insertion of new keys.
type CSKVStore struct {
sync.RWMutex
kvMap map[string]*value
}
This is similar to the versioned LCKVStore from the last post except now the version appears as a pointer. This is necessary because of the compare-and-swap signature.
Before going into the details, we should mention a few points about our design. First, all access to the actual value of the version is always through atomic operations. Second, we have the following invariant: both Get
and Put
will only return even version values. The odd values are temporary states used internally in the store to indicate the presence of a concurrent write operation and are never exposed to the client.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Get returns the byte slice associated with the key if it exists.
func (kvs *CSKVStore) Get(key string) ([]byte, Version, error) {
kvs.RLock()
defer kvs.RUnlock()
val, ok := kvs.kvMap[key]
if !ok {
return nil, 0, fmt.Errorf("Invalid key")
}
verp := val.version
ver := atomic.LoadUint64(verp)
if ver % 2 != 0 {
return nil, 0, ConflictErr
}
res := make([]byte, len(val.data))
copy(res, val.data)
if atomic.CompareAndSwapUint64(verp, ver, ver) {
return res, Version(ver), nil
}
return nil, 0, ConflictErr
}
The main things to note here are lines 10 and 16. These make sure that if there is any write to this key while we are copying data, the read will not go through. To get a more full picture, we should take a look at the Put
implementation.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Put associates the value with the given key. When ver is not
// nil, it updates only if the given version matches the current one.
// When using non-nil ver, the client must provide a version received
// from a previous successful Put or Get. Any other version may
// result in an unexpected behavior.
func (kvs *CSKVStore) Put(key string, ver *Version, v []byte) (Version, error) {
kvs.RLock()
val, ok := kvs.kvMap[key]
if !ok {
kvs.RUnlock()
return kvs.createOrUpdate(key, v)
}
buf := make([]byte, len(v))
copy(buf, v)
var expected uint64
verp := val.version
if ver != nil {
expected = uint64(*ver)
} else {
expected = atomic.LoadUint64(verp)
}
if expected%2 != 0 {
if ver != nil {
return 0, fmt.Errorf("Invalid version")
}
return 0, ConflictErr
}
if atomic.CompareAndSwapUint64(verp, expected, expected+1) {
val.data = buf
atomic.StoreUint64(verp, expected+2)
return Version(expected + 2), nil
}
if ver != nil {
return 0, StaleVersionErr
}
return 0, ConflictErr
}
// createOrUpdate associates the value to the key. It works whether
// the key is existing or not. It acquires an exclusive lock.
func (kvs *CSKVStore) createOrUpdate(key string, v []byte) (Version, error) {
buf := make([]byte, len(v))
copy(buf, v)
kvs.Lock()
defer kvs.Unlock()
val, ok := kvs.kvMap[key]
if !ok {
var version uint64
val = &value{version: &version}
}
val.data = buf
kvs.kvMap[key] = val
return Version(*val.version), nil
}
The above code is somewhat subtle. The key to understanding it is to realize that we are implicitly using the parity of the version as a local lock. A successful write increases the version by 2 (line 30), while an unsuccessful one does not change it. In more detail, note that the only times the version is odd are after lines 28 & 29. This is the critical section of the code. For example, suppose some thread A has reached and stopped in the middle of this section. If another thread B computes expected
version (line 18 or 20) and tries to enter the critical section, it will fail either in line 22 or 28, due to either staleness of its version (since it has read the version before A had increased it in line 28) or because of its parity (in case it has read the version after A made it odd in line 28). This ensures the integrity of writes.
Tradeoffs
The above low level key-value store highlights another design principle in optimistic concurrency: sacrificing 100% rate success for performance. But what are the cons of this design? Beside complexity, which in this case was due to our reliance on low-level libraries and not inherent to the optimistic design, two other considerations are starvation and fairness.
These issues often do not arise in low-contention settings but can be major problems otherwise. An advantage of lock based designs is that starvation can be mitigated by employing a decent scheduler. However, in optimistic systems the responsibility of retrying in the case of temporary errors falls to the client, and it may not be clear at what frequency the client should retry, or if there is any guarantee from its perspective that it won’t be starved in favor of more aggressive clients. These issues can be addressed partially with more careful designs and the help of rate limiters in real world settings.
Conclusion
The ideas we have been discussing about optimistic systems are not just theory. They are for example used often in some of the most powerful popular databases such as PostgreSQL, MySQL, CockroachDB, etc. Outside the world of databases, these ideas are useful in the internet protocols. In particular, when modifying resources via a REST API, most applications do not consider locking to be a good idea and instead rely on headers such as if-not-modified-since
to achieve transactional behavior in an optimistic way.
Finally, we note that concurrency is a subtle subject. Even the most seasoned professionals sometimes make mistakes using it. Hence, it’s important not to be lured by it when your application does not actually require or benefit much from it. But once these powerful methods become important and you start on the quest of designing your concurrent system, have in mind optimistic design principles. And always do extensive testing.
And that’s it for this series!


# package imports
import base64
import io
from dash.dependencies import ALL, Input, Output, State
from dash.exceptions import PreventUpdate
import pandas as pd
# local imports
from plotting.app import app
from plotting.pages.upload import upload
from plotting.layout.layout import store_id
from plotting.utils import functions as func
<EMAIL_ADDRESS>Output(upload.info_id, 'children'),
Output(store_id, 'data'),
Input(upload.upload_id, 'contents'),
State(upload.upload_id, 'filename')
)
def update_upload(contents, filename):
"""Handle uploading data
Parameters
----------
contents: str
base64 string that contains contents of uploaded file
filename: str
Name of file being uploaded
Returns
----------
text: list or str
list of components or str of output text
data: dict
Dictionary that contains data from uploaded file
"""
if filename is None:
raise PreventUpdate
content_type, content_string = contents.split(',')
decoded = base64.b64decode(content_string)
try:
if filename.endswith('.csv'):
df = pd.read_csv(
io.StringIO(decoded.decode('utf-8', 'replace'))
)
else:
raise Exception
except Exception as e:
print(e)
error_text = 'Error uploading, something is wrong with the file.'
return error_text, None
succ_text = 'File uploaded successfully: ' + filename
return succ_text, {'df': df.to_dict('records')}


Extends
- base/chains
The base of all classes in the system, this is one of the few pure "classes" in core the of the system. It is a pretty clean little class whose primary purpose is to surface the composition chains and a basis for storing options on mixin and subclass instances. Options are handled at the instance rather than the prototype level so that multiple instances don't compete for default values.


PSlogger
Documentation
PM> Install-Package PSlogger
The logger is a strongly typed system for asynchronous and synchronous logging of program messages from .NET programs to an Azure Table Storage data store.
It can of course be used to log messages from anything, not just .NET software. The system's main feature is automatically organizing messages by run of a software assembly.
Optimized for message retrieval by software execution
PSlogger is optimized for a particular style of message logging. Specifically it organizes messages for conveniently querying all messages for an arbitrary run of a software assebly (program) in the correct order in which the messages were produced, upon which additional filters may be applied.
For example:
- a single request/response cycle
- a specific run of a batch program
It accomplished this by using the software assembly identifier (caller) as the partition key, and one timestamp (associated with the run) as the partial row key.
Data is organized by daily tables. All messages for a given run reside in the same daily table, regardless of when they were actually generated.
Daily table organization makes message deletion efficient.
Message retrieval by caller is also generaly fast, but due to the log deletion optimization retrieval over an excessive number of days will result in performance degradation, even to the point of unusability. Generally this is not a useful use case. The logger is optimized for more common case of searching for messages in a specific run.
The repo solution includes the GetLog
console app with examples of message retrieval. The Predicate
type
defines all the necessary query parameters.
Caller
identifier of logging software assemblyOperator
EQ, GT, LT, BetweenStartDate
run timeEndDate
only used for BetweenLogLevels
list of requested log levels, empty list for all
Guaranteed ordering, even with async inserts
There is also a timestamp associated with each message, but asynchronous writes and other reasons may make this unreliable for message ordering.
For message ordering the system provides a log counter. The calling software can either manage the log counter, or take advantage of the CountingLog
type which will manage the counter. This assures messages can be ordered by their temporal generation, even when inserted asynchronously. It is not
necessary to maintain the counter. In that case order falls back to the message generation timestamp.
Optimized for old message deletion
Storage may be cheap, but it is not free, and table row deletion is slow. Physical storage organization by day allows the purgeBeforeDaysBack
function to simply drop tables, a much more efficient operation.
Suggested Usage
The logger records messages and data from program runs (transactions, batch runs, etc.) to determine program health, timely exectution, verify processing, and record exceptions.
It is also usefule for long running process like daemons or services that have a sleep/awake cycle. In that case the run timestamp should be associated with each wake cycle.
In general enough information should be logged so that a reasonable query strategy on the data store can determine:
- Is the process alive. (Is it executing on schedule, performing intended processes, and creating expected outputs?)
- The process has not thrown errors. (Trap exceptions and record them in the log with enough supporting information to make problems transparent.)
To facilitate complete logging, follow this protocol:
Caller
identifies the program.UtcRunTime
is the process start time for each message recorded in an entire run of a program (or request/response).UtcTime
records the time of each message generated.-
Counter
It is possible to generate messages in rapid succession with asyncronous inserts so thatUtcTime
does not increment. There is no guarantee of the order in which messages post. It is the user's responsibility to incrementCounter
for correct message ordering. Use theCountingLog
type as a log template for the duration of the program to automatically increment theCounter
with each message. Message
is the primary logged message.AssembliesOrVersion
MachineName
Process
optional, process within program generating the messageStringInfo
optional, any custom data to further specify program state.ByteInfo
optional, any custom data to further specify program state.Exception
optional, System.Exception (PSlogger stores the entire .NET exception including inner exceptions)ExceptionString
optional, exception in string format, e.g. for logging from REST interface
Examples
Initializing a CountingLog
template to generate messages.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: |
|
Writing messages.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: |
|
Logging exceptions.
1: 2: 3: 4: 5: 6: 7: 8: 9: |
|
Documentation
- API Reference contains automatically generated documentation for all types, modules and functions in the library.
Contributing and copyright
The project is hosted on GitHub where you can report issues, fork the project and submit pull requests. If you're adding a new public API, please also consider adding samples that can be turned into a documentation. You might also want to read the library design notes to understand how it works.
The library is available under Public Domain license, which allows modification and redistribution for both commercial and non-commercial purposes. For more information see the License file in the GitHub repository.


Tutorial_02_05:In this tutorial, we add a vector field grid to show the fields in Tutorial_02_04. The control buttons at the bottom of the view window have the properties indicated on the figure below. The view controls are as follow. To rotate, left-click and drag in the view window. To translate the view perpendicular to the camera view, right-click and drag in the view window. To zoom in and out, alt-left-click and drag in the view window or middle-button-click and drag.
|


Hit the sign-up bottom to register to the platform
Access your user account with all the interesting features just for you
Start sending one to one or bulk emails to your pals


capstyle(style)
Defines how endpoints of a path should be rendered. The style argument must be one of: BUTT
(the default), ROUND
, or SQUARE
. Note that the latter two styles extend the length of the path to add the endcaps.
The pen() command allows you to set the linecap style using its cap
argument.
fill(None) stroke(0) strokewidth(10) capstyle(BUTT) line(20,20, 50,20) capstyle(ROUND) line(20,40, 50,40) capstyle(SQUARE) line(20,60, 50,60)


The platform is easy to use, comprehensive and adaptable to a wide variety of aquaculture species; trout, tilapia, shrimp, crab, you name it
Objective, robust and credible computation of performance metrics
Dynamic and insightful simulation of animal inventory
Superior harvest forecasting, including weight distribution
"We have relied on the models developed by Dr. Bureau and his colleagues to audit past production performance and forecast growth of Nile tilapia at Toba Tilapia. These models proved very valuable and really helped improve production and feeding management."


YOUR PORTFOLIO
This is your portfolio! Congrats for getting it this far!
Hit the settings icon to edit. For profile pictures, you have to set up your AWS S3 bucket.
This is your portfolio! Congrats for getting it this far!
Hit the settings icon to edit. For profile pictures, you have to set up your AWS S3 bucket.


Setup Apache Web Server on Docker
- Install Docker on your computer
- With Docker running, enter the command: 'docker pull ubuntu' in the Command Prompt/Command Line Interface.
- Update the application packages by using the command: 'apt-get update', then 'apt-get install apache2', then enter another command: 'docker commit'.
- You'll have to share a directory between your host machine and Docker. Enter the command: 'docker run -it -v ~/an_absolute_local_directory:/a_diretory_in_Docker_container container_name/bin/bash'
; the '-v'(volume) command mounts the directory from the host into the specified directory of the container. **DISCLAIMER** Replace the directory names with legitimate directory names.**
- Run the command: 'docker ps -a' to see a list of available Docker images and their hashes.
- From the list of images, you'll see a hash next to the image you just made with Apache2, run the command: 'docker commit ubuntu-my_apache2', this will rename the hash from jibberish to a name which you'll easily recognize. **Please input the hash between the < & > signs.**
- Run your Apache webserver via Docker with the following command: 'docker run -it -p <IP_ADDRESS>:80:80 -v ~/folderName/local_dir:/var/www/html ubuntu-my_apache2 /bin/bash
- vi text editor is included with Ubuntu and most Linux distros so once you've initialized your Docker image, change directories to '/var/www/html', via: 'cd /var/www/html'
- Once you arrive in the /var/www/html/ directory, run the command: 'vi index.html', Once vi opens, copy the following HTML into your own index.html
- When you are finished with your index.html file, press the Escape key, then enter the following: ':wq', then press Enter. This will write your changes to the file, quit vi, and then bring you back to /var/www/html.
- At the command line, enter the following command: '/etc/init.d/apache2 restart' ; This will restart your Apache server. You ought to see something very similar to this:
- Open a web browser of your choice then enter "<IP_ADDRESS>" in the URL/Address textbox. You've just wrote your first web app! Congratulations!


Change your share structure
You can use this service to:
- give notice of consilidation of shares
- give notice of sub-division of shares
- give notice of redemption of shares
- give notice of re-conversion of stock into shares
You will need:
- the company number
- the company authentication code
It normally takes 10 minutes to complete this process.
Before you start
You should read the guidance on changing your share capital.
You can also change your share structure by post.


WITNESS LIST Juvenile Justice & Family Issues Committee April 9, 1997-10:30A HB 323Committee Substitute (Staples) For: Cheng, Albert (Free Market Comm.) Gallagher, Maggie (Researcher) Glenn, Norval (Self, Professor) Gustafson, Florence (Self) Lester, Jerry (Self, Psychologist) Null, Ray (Self, A&M Student) Ritzen Hoppe, Diane (Self, Attorney) West, Thomas (Self, Prof. of Politics) Wheatley, Melinda (TX Pub. Policy Foundat.) Whitewood, Angela (Self) Witcher, Phyllis (Protecting Marriage,) Against: Getting, Roy (T.C.F.E.R.) Noble, Shannon (Self, Attorney) Riddering, Hannah (TX N.O.W.) Schneider, Christina (TX Council Fam. Violenc) On: Green, Bob (PNFT & TX Fathers Allia) Speight, Susan (TX Assoc. Marr/Fam Ther) Registering, but not testifying: For: Carter, Susie (TX Family Assoc.) Finegan, Eva (Self) Forster, Ron (Self) Lake, Renetta (Self) Mixson, Krista (Self) Moody, David (Self, Attorney) Moody, Valerie (Self) Sanders, Caroline (Sanders Mediation) Sanders, Ethan (Self) Shelton, David (TX Fathers Alliance) Against: Oliver, Julie (TX Coun. Fam. Violence) HB 1890 Committee Substitute (Goodman) For: Anderson, Eric (Self, Enviro. Consult.) Bischofshausen, Sharon (Austin Ch. Guidance Cen) Rhoads, Mary (Wichita Co. Juv. Board) Shelton, David (TX Fathers Alliance) Speight, Susan (TX Assoc. Marr/Fam Ther) Yingling, Lynelle (Self, Therapist) On: Green, Bob (TX Fathers Alliance) Registering, but not testifying: For: Dalrymple, Bill (TX Counseling Assoc.) HB 2069 For: DeBeauvoir, Dana (Co. Clerks Legis. Comm.) Against: Green, Bob (TX Fathers Alli. & PMFT) Registering, but not testifying: Against: Anderson, Eric (Children's Rights Coali) HB 2215 Amendment (McClendon) For: Speight, Susan (TX Assc. Marr/Fam Ther.) Registering, but not testifying: For: Dalrymple, Bill (TX Counseling Assoc.) Yingling, Lynelle (Self, Pri. Counsel/Ther) On: Shelton, David (TX Fathers Alliance) HB 2227 Committee Substitute (Goodman) For: Anderson, Eric (Self, Environ. Consult.) Green, Bob (PNFT & TX Fathers Alli.) Raesz, Robert (Self, Attorney) Shelton, David (TX Fathers Alliance) Registering, but not testifying: For: DeCuir, Louis (Self, Environ. Eng.) Forster, Ron (Fathers Hotline) Fryar, James (T.F.E.R.) Getting, Roy (T.C.F.E.R.) HB 2594 For: McKenna, Jan (Self, Attorney) Against: Getting, Roy (T.C.F.E.R.) Green, Bob (TX Fathers All. & PNFT) Registering, but not testifying: Against: Forster, Ron (Fathers Hotline) HB 3012 For: Anderson, Eric (Children's Rights Coal.) Shelton, David (TX Fathers Alliance) Stinson, Joseph (Austin Police Officer) Registering, but not testifying: For: DeCuir, Louis (Self, Environ. Eng.) Forster, Ron (Fathers Hotline) Fryar, James (T.F.E.R.) Getting, Roy (T.C.F.E.R.) Green, Bob (PNFT & TX Fathers Allia) Huffines, James (Self, Invest. Banker) Raesz, Robert (Self, Attorney) HB 3345 Against: Green, Bob (PNTF & TX Fathers Allia) HB 3346 Registering, but not testifying: For: Allison, Jim (Co. Judges & Comm. Asso) Forster, Ron (Fathers Hotline) Getting, Roy (T.C.F.E.R.) Green, Bob (PNTF & TX Fathers Allia) McKenna, Jan (Self, Attorney) Shelton, David (TX Fathers Alliance)


This is just an example of the working grid. Notice the lack of gutters or any other defaults. Mathematicss doesn't make assumptions about your layout and just takes care of the columns widths.
To check a live demo look at the demo.html


Toggle navigation
Stiona Software
BNF Chapter Chart
GP Surgery Chart
Drug Chart
Diabetes Map
Diabetes Time
Northern Ireland GP Prescription Spending Overview
BNF Chapter and Drug Spending from April 2013 - May 2016


val dictionary: Dictionary<K, *>
The dictionary that is used by the tokenizer
dictionary - The dictionary that is used by the tokenizer
dictionary


dnssec-signzone [-a] [-c class] [-d directory] [-s start-time] [-e end-time] [-f output-file] [-h] [-i interval] [-n nthreads] [-o origin] [-p] [-r randomdev] [-t] [-v level] {zonefile} [key...]
dnssec-signzone signs a zone. It generates NXT and SIG records and produces a signed version of the zone. If there is a signedkey file from the zone's parent, the parent's signatures will be incorporated into the generated signed zone file. The security status of delegations from the the signed zone (that is, whether the child zones are secure or not) is determined by the presence or absence of a signedkey file for each child zone.
Verify all generated signatures.
Specifies the DNS class of the zone.
Look for signedkey files in directory as the directory
Specify the date and time when the generated SIG records become valid. This can be either an absolute or relative time. An absolute start time is indicated by a number in YYYYMMDDHHMMSS notation;<PHONE_NUMBER>4500 denotes 14:45:00 UTC on May 30th, 2000. A relative start time is indicated by +N, which is N seconds from the current time. If no start-time is specified, the current time is used.
Specify the date and time when the generated SIG records expire. As with start-time, an absolute time is indicated in YYYYMMDDHHMMSS notation. A time relative to the start time is indicated with +N, which is N seconds from the start time. A time relative to the current time is indicated with now+N. If no end-time is specified, 30 days from the start time is used as a default.
The name of the output file containing the signed zone. The default is to append .signed to the input file.
Prints a short summary of the options and arguments to dnssec-signzone.
When a previously signed zone is passed as input, records may be resigned. The interval option specifies the cycle interval as an offset from the current time (in seconds). If a SIG record expires after the cycle interval, it is retained. Otherwise, it is considered to be expiring soon, and it will be replaced.
The default cycle interval is one quarter of the difference between the signature end and start times. So if neither end-time or start-time are specified, dnssec-signzone generates signatures that are valid for 30 days, with a cycle interval of 7.5 days. Therefore, if any existing SIG records are due to expire in less than 7.5 days, they would be replaced.
Specifies the number of threads to use. By default, one thread is started for each detected CPU.
The zone origin. If not specified, the name of the zone file is assumed to be the origin.
Use pseudo-random data when signing the zone. This is faster, but less secure, than using real random data. This option may be useful when signing large zones or when the entropy source is limited.
Specifies the source of randomness. If the operating system does not provide a /dev/random or equivalent device, the default source of randomness is keyboard input. randomdev specifies the name of a character device or file containing random data to be used instead of the default. The special value keyboard indicates that keyboard input should be used.
Print statistics at completion.
Sets the debugging level.
The file containing the zone to be signed. Sets the debugging level.
The keys used to sign the zone. If no keys are specified, the default all zone keys that have private key files in the current directory.
The following command signs the example.com zone with the DSA key generated in the dnssec-keygen man page. The zone's keys must be in the zone. If there are signedkey files associated with this zone or any child zones, they must be in the current directory. example.com, the following command would be issued:
dnssec-signzone -o example.com db.example.com Kexample.com.+003+26160
The command would print a string of the form:
In this example, dnssec-signzone creates the file db.example.com.signed. This file should be referenced in a zone statement in a named.conf file.


Bank of Epicodus
Create Account
Name:
Initial Amount:
Enter
Deposit or Withdraw Funds
Name:
Deposit Amount
Withdrawal Amount
Enter
Transaction Information
Account Name:
Balance: $


<EMAIL_ADDRESS>My team had a meeting in order to set a new years resolution for the team. We effective decided that while a few members of the team will be working on some parts of the software that had just been released into production, there will be a "Spring Clean" which will basically involve focusing on the processing that we use for our day to day job and looking at ways we could improve this for the sake of greater productivity.
This includes considering moving from using "GLASSFISH" as a server for our JAVA applications to "WILDFLY"... Also includes considering moving our applications from using Java 6 to Java 7/8.. It also includes moving all of our source control repository from SVN to "GIT"...using GITHUB.
Making Texts Dynamically Editable On A System
My task for this week also includes working on one of our software applications and making the "texts" on the application dynamically changeable by using another application. This other application interacts directly with the dabatase..
This program was written using Struts.. The whole idea behind this project is to allow certain types of staff in the facility to be able to use edit the texts on that system whenever they like without letting my team know about it every time.
Dutch Access - The Orange Button
I added a new feature to one of our systems - know as the proposal system, which is used by the users of ISIS to make proposals about coming to the facility to make an experiment. The feature included having an access route to the system that is unique and is expected to be used only by the Dutch and for a certain ISIS instrument.
This project was in Struts..
Computing Group Meeting
There was the monthly computing group meeting where there was a talk given by someone from a department of STFC - RAL Space... He talked about how RAL Space collaborate with CERN on a certain project and what that's like..
I had a meeting with a few users of the new system that has just been released and is being used by the users... This meeting was for the purpose of finding out more about the bug the user was experiencing and making detailed notes about them, as well as gathering new feature requests from the user... These requests and even most of the bugs are something that the team is aware of or has been reported earlier, but finding out more about it helps the team to priortise tasks and TRAC tickets..
STEM AMBASSADOR - Gadgets - What's MY Line
This week, about 100 year 7/8 school kids visited the facility and one of the activities they were involved with is "Gadgets - What's My Line". This involved them having to guess what a certain scientist/Engineer has as a gadget (which will be what the scientist/Engineer uses for their job), what he/she does, and the person's job title. The kids will have to find this answer out by asking questions from the scientist/Engineer...
As a STEM Ambassador, I volunteered to be one of the engineers (Software Engineer), and as my gadget, I had with me a keyboard and a mouse. This turned out to be a really exciting activity and they kids had lots of fun trying to guess what my job was... (guessing what the gadgets was wasn't hard for them).
ASSISTING WITH REFACTORING DUE TO MOVING FROM SVN TO GIT
As a result of moving from svn to git, some refactoring had to take place... this includes removing some hard-coded passwords from code and placing them in a configuration file instead...and this had to be checked across ALL repositories.. This wasn't as easy as it sounds due lots of project relying and depending on each other due to the nature of out applications..


{% extends base_template %}
{% load staticfiles %}
{% block title %}Choose a student loan{% endblock %}
{% block page_meta %}
{% endblock %}
{% block open_graph_image %}
{% endblock %}
{% block page_css %}
{% endblock %}
{% block body_class %}page paying-for-college{% endblock %}
{% block content %}
Three steps that can help you get the right loan for you.Choosing a loan
If you're considering student loans to help you pay for school, you're not alone - many students need loans to cover their full cost of attendance. In 2010, 67% of bachelor's degree recipients used loans to pay for their education. But the more money you borrow now, the higher your monthly loan payments will be after you graduate.
If you have to take out student loans, comparing your options can help you find the student loan best suited for your needs.
If you have to take out student loans, you essentially have two choices: federal student loans and private loans.
For most borrowers, federal student loans are the best option. When you start to pay back your federal loans, the interest rate will be fixed, which will help you predict your payments after graduation. And in some cases, the federal government will pay the interest on your loans while you are in school - these loans are called subsidized loans.
Other student loans are generally private student loans. The most common private student loans are offered by banks. Their interest rates are often variable, which means your interest rates and payments could go up over time. Private loans can also be more expensive - rates have been as high as 16% over the past couple of years. And when it is time to repay, private loans don't offer as many options to reduce or postpone payments.
For most people, federal student loans are a better deal than private student loans, so you'll want to take advantage of federal options first.
If your grants and federal loans are not enough to cover the cost of your education, you should consider the following options:
First, make sure you need a private student loan. These loans generally are not as affordable as federal student loans and offer little repayment flexibility.
Here are some factors to consider:
If you have to take out student loans, you essentially have two choices: federal student loans and private loans.
For most borrowers, federal student loans are the best option. When you start to pay back your federal loans, the interest rate will be fixed, which will help you predict your payments after graduation. And in some cases, the federal government will pay the interest on your loans while you are in school - these loans are called subsidized loans.
Other student loans are generally private student loans. The most common private student loans are offered by banks. Their interest rates are often variable, which means your interest rates and payments could go up over time. Private loans can also be more expensive - rates have been as high as 16% over the past couple of years. And when it is time to repay, private loans don't offer as many options to reduce or postpone payments.
For most people, federal student loans are a better deal than private student loans, so you'll want to take advantage of federal options first.
If your grants and federal loans are not enough to cover the cost of your education, you should consider the following options:
First, make sure you need a private student loan. These loans generally are not as affordable as federal student loans and offer little repayment flexibility.
Here are some factors to consider:
| Federal Loans | Private Loans | |
|---|---|---|
|
|
6-month grace period for undergraduates Flexible monthly payments based on income or financial hardship, and possible debt forgiveness for teaching, military service, and other public service work |
6-month grace period for most loans Very limited flexibility for those with financial need or hardship |
|
|
Rates are fixed The Subsidized Direct and Perkins Loans have no interest while you're in school Interest rates range from 3.86% to 6.41%, depending on the loan program There is a 4% loan fee on PLUS loans and 1% fee for other Direct Loans. |
Rates are often variable - they can change over time You are charged interest while you are in school Interest rates range depending on your credit and other factors May charge various fees, like an origination fee. |
|
|
Almost everyone is eligible for federal loans; those with financial need will qualify for lower rates | Lenders decide eligibility based on your credit and other factors, and you will likely need a co-signer |
|
limits
|
Varies, depending on who you are and the type of loan, but cannot exceed your college costs Generally, undergraduates can max out at $5,500-12,000 per year, and graduate students at $8,000-20,500 per year More info at studentaid.ed.gov |
Varies, depending on your credit and other factors, but generally, you should not borrow more than your college costs |
Federal student loans almost always cost less and are easier to repay than private loans. You must complete the Free Application for Federal Student Aid (FAFSA) to be eligible for federal student loans.
Perkins LoansSubsidized with a fixed 5% interest rate, administered through your school, and awarded based on financial need If you are eligible, you should take this loan first |
Direct LoansEither subsidized or unsubsidized Everyone is eligible for the Unsubsidized Direct Loan, and Subsidized Direct Loans are awarded based on financial need |
Parent or Grad PLUS LoansAvailable to graduate students and parents Parents with PLUS loans are responsible for repaying those loans |
There are many different private loan options, with different interest rates and costs. Generally, private student loans have higher costs than federal student loans and require a co-signer.
Borrowing beyond your federal loans could mean high levels of debt. Make sure you have explored all other options including applying for additional scholarships, cutting costs, or getting a part-time job before taking out a private loan. If you are still deciding where to go to school, consider all your options, including finding a low-cost school.
However if you need a private student loan, you should know that there are some unexpected places to look for deals. It's important to shop around and compare different loan offers.
State Agency LoansLoans offered by states to residents, or for students attending school in the state Ask your school's financial aid office for more information about "state sponsored alternative loans" |
Traditional Bank LoansThese loans come from commercial banks. You may be more familiar with their checking or savings accounts Talk to your parent or someone you trust about this option because you will likely need a co-signer |
School LoansSome schools have their own loan program for students, which tend to have fixed rates Ask your school's financial aid office for more information |
Federal student loans almost always cost less and are easier to repay than private loans. You must complete the Free Application for Federal Student Aid (FAFSA) to be eligible for federal student loans.
Subsidized with a fixed 5% interest rate, administered through your school, and awarded based on financial need
If you are eligible, you should take this loan first
Either subsidized or unsubsidized
Everyone is eligible for the Unsubsidized Direct Loan, and Subsidized Direct Loans are awarded based on financial need
Available to graduate students and parents
Parents with PLUS loans are responsible for repaying those loans
There are many different private loan options, with different interest rates and costs. Generally, private student loans have higher costs than federal student loans and require a co-signer.
Borrowing beyond your federal loans could mean high levels of debt. Make sure you have explored all other options including applying for additional scholarships, cutting costs, or getting a part-time job before taking out a private loan. If you are still deciding where to go to school, consider all your options, including finding a low-cost school.
However if you need a private student loan, you should know that there are some unexpected places to look for deals. It's important to shop around and compare different loan offers.
Loans offered by states to residents, or for students attending school in the state
Ask your school's financial aid office for more information about "state sponsored alternative loans"
These loans come from commercial banks. You may be more familiar with their checking or savings accounts
Talk to your parent or someone you trust about this option because you will likely need a co-signer
Some schools have their own loan program for students, which tend to have fixed rates
Ask your school's financial aid office for more information
The government pays the interest on subsidized loans while you are in school. You pay the interest on unsubsidized loans. Subsidized loans are awarded to students based on financial need.
These are now called Federal Direct Loans.
Congress has the authority to change federal student loan rates, but once you agree to a federal student loan, your interest rate remains the same until you have paid it off.
Interest rates on private student loans are set by the lender that makes the loan and depend on the lender's evaluation of your creditworthiness. Some private loans have variable interest rates, which mean your payment amount could change over time.
Don't replace student loan debt with credit card debt - it can be a much more expensive way to finance your education. Credit cards do not provide the flexible repayment terms or borrower protections offered by federal student loans.
Contact the company that services your student loan immediately. You might be able to temporarily suspend your payments or work out a temporarily reduced payment. Ask your servicer if it has a program for "forbearance" or "deferment." Learn more about your options to repay your student debt.


Nice, now we’re hydrated, energized and healthy. So now what? Now comes the part we all been waiting for, we're gonna get right geared up. If you took my advice and kept going inland you should be somewhere in the middle of the map. We want to head west to the North West Airfield [NWA], on the southwestern end you're going to find some barracks along with a two-story kind of military jailhouse. In the barracks you may or may not find some sort of military weapon [AK 101, AKM, M4 etc.]. If not don't sweat it; we got plenty other barracks and military bases. Along with weapons and ammo we're looking for military clothing such as vests, hunter backpacks, helmets etc.
From there we're going to head to the hangars. Now your best bet is going to be to go around the southern end of the airfield and stay in the cover of the bushes. This is quite the hot spot, especially since it's damn near impossible to find military grade weapons on the eastern end of the map, so be sure to stay in cover and look over your shoulder. Or if YOLO [hate that word] you can run right across the airstrip. If you choose this route be sure to serpentine [zigzag] so you're not easy to hit.
You're heart pumpin yet? It should be. You are so exposed over here and if you're on a populated server there's going to be people coming either from the east from Devils Castle, south from the direction you came from or from the tents north of the airfield [we're heading there next]. Keep looking over you're shoulder.
K, now let's search the hangars. In the hangars the loot spawns around the inside of the hangar close to the walls, mainly in the corners along with in the center. You're going to find ammo, attachments med supplies, clothing etc. I should have mentioned this sooner but grab any ammo even if you don't have the weapon it belongs to. You may find the weapon or you can barter with it later.
Let's keep heading up this side of the airfield looting, eating and drinking everything you find and looking over the shoulder as we go. Don't be tempted to run across the airstrip to the buildings on the north eastern side, we'll get there eventually.  Even if you want to play as a friendly player [Hero]. There's no love on Airstrips and in military bases, remember that if you want to survive in DayZ. If anyone says they're friendly they're fuckin lying. As long as you're around military loot consider everyone hostile.
So depending on how long the server's been up, you may or may not be geared up by now. If not see those tents up there? Ya? K, they're just like the hangars, we're going to find ammo, attachments for weapons and clothing. Remember to be careful, lots of places to hide or you can get sniped from the north. When we're done here we're heading to the buildings on the other side of the airstrip.


| < Day Day Up > |
6.1 Performance-Limiting FactorsBefore we can begin to think about what to adjust on a busy MySQL server, it's best to get an understanding of the various factors that affect performance and, most importantly, how they can affect it. One of the single biggest problems that most MySQL users face is simply not understanding how to go about finding bottlenecks. 6.1.1 DisksThe fundamental battle in a database server is usually between the CPU(s) and available disk I/O performance; we'll discuss memory momentarily. The CPU in an average server is orders of magnitude faster than the hard disks. If you can't get data to the CPU fast enough, it must sit idle while the disks locate the data and transfer it to main memory. The real problem is that a lot of the disk access is random rather than sequential: read 2 blocks from here, 10 from there, 4 from there, and so on. This means that even though your shiny new SCSI disks are rated at 80 MB/sec throughput, you'll rarely see values that high. Most of the time you'll be waiting for the disks to locate the data. The speed at which the heads move across the platter and fetch another piece of data is known as seek time, and it's often the governing factor in real-world disk performance. The seek time consists of two factors. First is the amount of time required to move the head from one location to the next. When the head arrives at the new location, it often needs to wait for the disk platter to rotate a bit more so that it can read the desired piece of information. The disk's rotation speed, measured in RPMs, is the second factor. Generally speaking, the faster the platters rotate, the lower the disk's seek time will be. When you're shopping for your database server's disks, it's usually better to spend the extra cash for the 15,000-RPM model rather than saving a bit with the cheaper 10,000-RPM model. As a bonus, higher RPM drives provide greater transfer rates because they're reading data from a faster moving platter. This all means that the first bottleneck you're likely to encounter is disk I/O. The disks are clearly the slowest part of the system. Like the CPU's caches, MySQL's various buffers and caches use main memory as a cache for data that's sitting on disk. If your MySQL server has sufficient disk I/O capacity, and MySQL has been configured to use the available memory efficiently, you can better use the CPU's power. A common complaint against MySQL is that it can't handle really large tables. Assuming the people making that statement have even used MySQL, they likely encountered an I/O bottleneck they didn't know how to fix. MySQL worked great with a few hundred megabytes of data, but once loaded up with 60 GB, it became slow. The conclusion drawn was that MySQL was somehow inadequate. Of course, there are some circumstances in which MySQL can become CPU-bound rather than I/O-bound: they're simply not as common. If you often ask MySQL to perform some computation on your data (math, string comparison, etc.), the CPU will work harder. When running a CHECK TABLE command, you'll likely find the CPU pegged. And, of course, queries that aren't using indexes really tax it as well. 6.1.2 MemoryTo bridge the gap between blazingly fast CPUs and comparatively slow disks, we have memory. With respect to performance, it's in the middle—significantly faster than disks but still much slower than the CPU. The underlying operating system generally uses free memory to cache data read from and written to disk. That means if you frequently query the same small MyISAM table over and over, there's a very good chance you'll never touch the disk. Even though MySQL doesn't cache row data for MyISAM tables (only the index blocks), the entire MyISAM table is likely in the operating system's disk cache. Modern CPUs are even substantially faster than main memory. To combat this mismatch, chip makers have designed multilevel caching systems. It's common for a CPU to contain level 1, level 2, and even level 3 caches. The caches use significantly faster and more expensive memory, so they're generally a fraction of the size of main memory; a 512-KB L2 cache is generous. With that in mind, simply adding memory to your server will improve MySQL performance only if the operating system can make good use of it by caching even more disk blocks. If your database is 512 MB, and you already have 1 GB of memory, adding more memory probably won't help. On the other hand, if you run more than just MySQL on the server, adding memory may help. Maybe that Java application server you've been running is eating up a lot of the memory that could otherwise cache disk access. Keep in mind that Linux, like most modern operating systems, considers caching disk I/O an optional feature. It doesn't reserve any memory for it. So when free memory is low, MySQL can really suffer because MyISAM tables expect the OS to do some read caching. <IP_ADDRESS> MySQL's buffers and cachesBy adjusting how much memory MySQL uses, you can often realize significant performance improvements. To do that effectively, you first need to understand how MySQL uses memory. Most of the memory MySQL allocates is used for various internal buffers and caches. These buffers fall into two major groups: global buffers and per-connection buffers. As their name implies, global buffers are shared among all the connections (or threads) in MySQL. The two most important global buffers are the MyISAM key buffer (key_buffer_size) and InnoDB's buffer pool (innodb_buffer_pool_size). The MyISAM key buffer is where MySQL caches frequently used blocks of index data for MyISAM tables. The less often MySQL needs to hit the disk to scan a table's index, the faster queries will be. If possible, consider making the key buffer large enough to hold the indexes for your most actively used tables—if not all your tables. By adding up the size of the .MYI files for the tables, you'll have a good idea how large to set the buffer. MySQL doesn't cache rows for MyISAM tables—only indexes. InnoDB, on the other hand, caches index and row data together in its buffer pool. As you'll recall from Chapter 4, InnoDB uses clustered indexes. Because it stores the index and row data together, it's only natural to cache the index and row data in memory when possible.
6.1.3 NetworkThe performance of your network usually doesn't have much bearing on MySQL. In most deployments, clients are very near the servers—often connected to the same switch—so latency is low, and available bandwidth is quite high. But there are less common circumstances in which the network can get in the way. Duplex mismatch is a common network configuration problem that often goes unnoticed until load begins to increase. When it does, by all appearances MySQL is sending results very slowly to clients. But when you check the server, you find the CPU is nearly idle, and the disks aren't working very hard either. For whatever reason, there's a lot of 100-Mbit Ethernet equipment that has trouble auto-sensing the proper settings. Be sure your server and switch agree on either half or full duplex operation. Some MySQL deployments use Network Attached Storage (NAS) devices, such as a Network Appliance filer, rather than local disks for MySQL's data. The idea is that if the server dies, you can simply swap in a new one without having to worry about copying data or dealing with synchronization issues. (See Chapter 8 for more on this topic.) While that's all true, in dealing with a configuration it's critical that your network be as uncongested as possible. Ideally, you'll want to have a fast dedicated network path between your MySQL server and the storage server. Typically that means installing a second Network Interface Card (NIC) that is connected to a private network with your storage server. In a replication setup consisting of a single master and many slaves, it's quite possible to saturate a single network interface on the master with all the traffic generated by the slaves. This isn't because of something MySQL does horribly wrong. It's really just a matter of scale. Imagine that you have 50 slaves replicating from the master. Under normal circumstances, each slave uses a relatively small amount of bandwidth—say 100 KB/sec. That adds up to 5 Mbit/sec of bandwidth required for 50 slaves. If you're using 100-Mbit Ethernet, that's not a big deal. But what if your master begins getting more inserts per second, or large inserts that contain BLOB fields? You may reach the point that each slave needs 800 KB/sec of bandwidth to keep up with the master's data stream. At that point, you're looking at 40 Mbit/sec of data on your 100-MBit network. At that point you should begin to worry. One hundred Mbit/sec is the network's theoretical maximum bandwidth. In reality its capacity is quite a bit less that. Many network engineers use 50% utilization as a rule of thumb for capacity planning. Once they consistently see utilization that high, they begin thinking about how to break up the network to better isolate the traffic. The trouble is, that doesn't help much in this case. Because there's a single master, all slaves must read from it. There are three possible solutions to this problem.  They, in turn, serve as masters for the 50 slaves. See Chapter 7 for more information about multitiered replication architectures. Another option is to add a second network card to the master and split the 50 slaves across multiple switches. Each of the master's NICs are connected to a different switch. The problem is that you'd need to remember which server is on which switch port and adjust the slave configuration appropriately. A final solution is to compress the data stream between the master and slaves. This assumes that the data isn't already compressed and that the master has sufficient CPU power to handle compressing 50 outbound data streams while handling a high rate of inserts. Given the rate at which CPUs are evolving, this will soon be feasible. Chapter 7 discusses options for encrypting and compressing replication. Performance can become an issue when your network links have relatively high latency. This is typically a problem when the client and server are separated by a great distance or by an inherently high-latency link, such as dial-up or satellite. Your goal should be to keep the clients and servers as close (in network sense) to each other as possible. If you can't do this, consider setting up slaves that are close to your most distant clients. At first glance, this may not seem like a server-performance issue, but a high-latency or low-bandwidth network can really slow things down on the server side. When a client performs a large SELECT on a MyISAM table, it obtains a read lock on the data. Until the SELECT completes, the server won't release the lock and service any pending write requests for the table. If the client asking for the data happens to be far away or on a flaky or congested network, it will take a long time to retrieve the data and release the lock. The end result is that things get backed up on the server side even though the server has sufficient CPU and disk I/O to do the work. |
| < Day Day Up > |


just another app from the chartroom.
(whether you like today's weather or not)
Temperature:
Humidity:
Wind:
UV Index:
°F / °F
Humidity: %


|
Contiki 2.5
|
The uIP configuration functions are used for setting run-time parameters in uIP such as IP addresses. More...
Defines | |
| #define | uip_sethostaddr(addr) |
| Set the IP address of this host. | |
| #define | uip_gethostaddr(addr) |
| Get the IP address of this host. | |
| #define | uip_setdraddr(addr) |
| Set the default router's IP address. | |
| #define | uip_setnetmask(addr) |
| Set the netmask. | |
| #define | uip_getdraddr(addr) |
| Get the default router's IP address. | |
| #define | uip_getnetmask(addr) |
| Get the netmask. | |
| #define | uip_setethaddr(eaddr) |
| Specifiy the Ethernet MAC address. |
The uIP configuration functions are used for setting run-time parameters in uIP such as IP addresses.
| #define uip_getdraddr | ( | addr | ) |
| #define uip_gethostaddr | ( | addr | ) |
Get the IP address of this host.
The IP address is represented as a 4-byte array where the first octet of the IP address is put in the first member of the 4-byte array.
Example:
uip_ipaddr_t hostaddr; uip_gethostaddr(&hostaddr);
| addr | A pointer to a uip_ipaddr_t variable that will be filled in with the currently configured IP address. |
| #define uip_getnetmask | ( | addr | ) |
| #define uip_setdraddr | ( | addr | ) |
Set the default router's IP address.
| addr | A pointer to a uip_ipaddr_t variable containing the IP address of the default router. |
Definition at line 191 of file uip.h.
Referenced by main().
| #define uip_setethaddr | ( | eaddr | ) |
Specifiy the Ethernet MAC address.
The ARP code needs to know the MAC address of the Ethernet card in order to be able to respond to ARP queries and to generate working Ethernet headers.
| eaddr | A pointer to a struct uip_eth_addr containing the Ethernet MAC address of the Ethernet card. |
Definition at line 133 of file uip_arp.h.
Referenced by main().
| #define uip_sethostaddr | ( | addr | ) |
Set the IP address of this host.
The IP address is represented as a 4-byte array where the first octet of the IP address is put in the first member of the 4-byte array.
Example:
uip_ipaddr_t addr; uip_ipaddr(&addr, 192,168,1,2); uip_sethostaddr(&addr);
| addr | A pointer to an IP address of type uip_ipaddr_t; |
Definition at line 159 of file uip.h.
Referenced by main().
| #define uip_setnetmask | ( | addr | ) |
Set the netmask.
| addr | A pointer to a uip_ipaddr_t variable containing the IP address of the netmask. |
Definition at line 203 of file uip.h.
Referenced by main().


By looking at attribute usage and element occurrence we can derive the appropriate OWL cardinality restrictions. Cardinality restrictions are derived from occurrence constraints on particles. For straightforward content there is almost a direct mapping from occurrences to cardinality. Elements occur once by default, and attributes are optional. We can also change minOccurs and maxOccurs on an element and this will be directly reflected in the OWL cardinality constraint. However, this belies a significant difference between occurrence constraints and cardinality restrictions. An occurrence constraint in XML schema refers to the occurrence of content at a given lexical position in the document. Similar content may occur at different positions within the same particle. In contrast, Cardinality restrictions limit the total number of appearances of a property in the context of a given class.
The following example shows how cardinality restrictions are derived from occurrence constraints on complex content. The content of the 'all' compositor and sub-element 'foo' occur once by default. The maximum number of occurrences of 'bar' is unbounded. By default, the use of attribute 'baz' is optional.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.org/" xmlns="http://example.org/"> <xs:element name="foo" type="xs:string"/> <xs:element name="bar" type="xs:string"/> <xs:complexType name="Foobar"> <xs:all> <xs:element ref="foo"/> <xs:element ref="bar" maxOccurs="unbounded"/> </xs:all> <xs:attribute name="baz" type="xs:string"/> </xs:complexType> </xs:schema>
Cardinality restrictions only constrain the number of occurences of a property in the context of a given class. They don't affect global property definitions. Property 'foo' is restricted to a cardinality of 1, while property 'bar' has a minimum cardinality of 1 (the maximum is unlimited). The optional attribute 'baz' has a maximum cardinality of 1 - occurring at most once. Note also, that because 'baz' is a locally defined attribute, it alone has an additional value constraint. The type of 'baz' is local to the class, whereas the ranges of 'foo' and 'bar' are globally defined.
@prefix ns2: <http://example.org/def/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix ns1: <http://example.org/> . @prefix xs_: <http://www.w3.org/2001/XMLSchema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix xs: <http://www.w3.org/2001/XMLSchema> . ns1:bar a rdf:Property , owl:DatatypeProperty ; rdfs:range xs_:string . ns1:foo a rdf:Property , owl:DatatypeProperty ; rdfs:range xs_:string . <http://example.org/cardinality1.owl> a owl:Ontology . ns1:Foobar a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality "1"^^xs_:int ; owl:onProperty ns1:bar ] ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality "1"^^xs_:int ; owl:onProperty ns2:baz ] ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom xs_:string ; owl:onProperty ns2:baz ] ; rdfs:subClassOf [ a owl:Restriction ; owl:cardinality "1"^^xs_:int ; owl:onProperty ns1:foo ] . ns2:baz a rdf:Property , owl:DatatypeProperty .
An occurrence constraint in XML schema refers to the occurrence of content at a particular lexical position in the document. Similar content may occur at a different position within the same particle. This is demonstrated in the following example, where a single element 'foo' may be followed (in sequence) by yet another element 'foo'. Because these are both properties of the same resource we calculate the cardinality of 'foo' by summing repeated occurrences.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.org/" xmlns="http://example.org/"> <xs:element name="foo" type="xs:string"/> <xs:element name="foofoo"> <xs:complexType> <xs:sequence> <xs:element ref="foo" /> <xs:element ref="foo" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Summing the occurrences of 'foo' makes for a cardinality of 2, right? Wrong. The OWL below has a maximum cardinality of 2, but a minimum cardinality of 1.
@prefix ns2: <http://example.org/def/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix ns1: <http://example.org/> . @prefix xs_: <http://www.w3.org/2001/XMLSchema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix xs: <http://www.w3.org/2001/XMLSchema> . <http://example.org/cardinality2.owl> a owl:Ontology . ns1:foo a rdf:Property , owl:DatatypeProperty ; rdfs:range xs_:string . ns1:foofoo a owl:ObjectProperty ; rdfs:range [ a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality "1"^^xs_:int ; owl:onProperty ns1:foo ] ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality "2"^^xs_:int ; owl:onProperty ns1:foo ] ] .
There is an edge case where there may be two occurrences of 'foo' but only one distinct property/value pair. This happens if both occurrences have the same literal value, as demonstrated below. Both occurrences map to the same statement [ ns1:foo "foo"^^xs_:string ] (with the same subject). Because these are logical statements it makes no difference how many times they are asserted, it amounts to saying the same thing twice. The actual cardinality of 'foo' in this case is 1. Because of this, the minimum cardinality of any datatype property will never exceed 1.
<?xml version="1.0" encoding="UTF-8"?> <foofoo xmlns="http://example.org/"> <foo>foo</foo> <foo>foo</foo> </foofoo>
The two elements above amount to saying the same thing twice.
@prefix ns2: <http://example.org/def/> . @prefix ns1: <http://example.org/> . @prefix xs_: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix xs: <http://www.w3.org/2001/XMLSchema> . <http://example.org/cardinality2.xml> ns1:foofoo [ ns1:foo "foo"^^xs_:string ] .
Does this mean we lose information and can't achieve the reverse mapping back into RDF? If the number of times something was asserted is significant we have to record the sequence in which they occur. The example below shows how each occurrence of the element has been reified, making each an objectified resource in its own right, with its own identity. Each reified 'foo' is added to the object (of 'foofoo') as an rdf:Seq in their correct lexical order. With this additional metadata we see that there are two identical statements. This sequencing information is viewed as a data-structuring issue and is not modelled ontologically.
@prefix ns2: <http://example.org/def/> . @prefix ns1: <http://example.org/> . @prefix xs_: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix xs: <http://www.w3.org/2001/XMLSchema> . _:b1 a rdf:Seq ; rdf:_1 [ a rdf:Statement ; rdf:object "foo"^^xs_:string ; rdf:predicate ns1:foo ; rdf:subject _:b1 ] ; rdf:_2 [ a rdf:Statement ; rdf:object "foo"^^xs_:string ; rdf:predicate ns1:foo ; rdf:subject _:b1 ] ; ns1:foo "foo"^^xs_:string . <http://example.org/cardinality2a.xml> ns1:foofoo _:b1 .
Compositors like sequence, choice, all (and group references) are not directly represented in OWL because they are concerned with the lexical form of a document. However, their effect is to modulate the occurrences of elements within a particle. Like elements the maximum is set by maxOccurs, and the minimum by minOccurs. With nested compositors, the cardinality is calculated by multiplying nested elements by the occurrence constraints on the compositor. By default, the sequence compositor has a minimum and maximum factor of 1. The choice compositor has a maximum factor of 1, but an overriding minimum factor of 0 because all but one of its elements will not occur at all.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://example.org/" xmlns="http://example.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="foo" type="xs:string"/> <xs:element name="bar" type="xs:string"/> <!-- minimum cardinality of 0 for each choice --> <xs:complexType name="Foobar" mixed="true"> <xs:sequence maxOccurs="2"> <xs:choice maxOccurs="2"> <xs:element ref="foo"/> <xs:element ref="bar" maxOccurs="unbounded"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:schema>
The minimum cardinality of both 'foo' and 'bar' is 1*0*1 = 0. The maximum cardinality of both 'foo' and 'bar' is 2*2*1 = 4.
@prefix ns2: <http://example.org/def/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix ns1: <http://example.org/> . @prefix xs_: <http://www.w3.org/2001/XMLSchema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix xs: <http://www.w3.org/2001/XMLSchema> . ns1:bar a rdf:Property , owl:DatatypeProperty ; rdfs:range xs_:string . <http://example.org/cardinality3.owl> a owl:Ontology . ns1:foo a rdf:Property , owl:DatatypeProperty ; rdfs:range xs_:string . ns1:Foobar a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality "4"^^xs_:int ; owl:onProperty ns1:foo ] .
Another feature that will affect cardinality is the appearance of an xs:any wild-card. We have to count how many of these could match other elements in the particle and increment their cardinalities accordingly. The schema below includes an element 'foo' followed by a selection of xs:any elements that may, in principle, match yet another occurrence of 'foo'. We count how many of these may match 'foo' and increment its min and max cardinalities. The last two xs:any cannot match 'foo'. The 'foo' element is defined in the target namespace, but '#other' will only match an element in another namespace, while '#local' will only match a local, unqualified element.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.org/" xmlns="http://example.org/"> <xs:element name="foo" type="xs:string"/> <!-- element foo has max cardinality 4 --> <xs:complexType name="Any"> <xs:sequence> <xs:element ref="foo" /> <xs:any namespace="http://example.org"/> <xs:any namespace="##any"/> <xs:any namespace="##targetNamespace"/> <xs:any namespace="##other"/> <xs:any namespace="##local"/> </xs:sequence> </xs:complexType> </xs:schema>
As for other properties that may potentially match xs:any, there are no specific restrictions that can be derived from the schema. In an open-world we may pass over them in silence.
@prefix ns2: <http://example.org/def/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix ns1: <http://example.org/> . @prefix xs_: <http://www.w3.org/2001/XMLSchema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix xs: <http://www.w3.org/2001/XMLSchema> . <http://example.org/cardinality4.owl> a owl:Ontology . ns1:foo a rdf:Property , owl:DatatypeProperty ; rdfs:range xs_:string . ns1:Any a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality "4"^^xs_:int ; owl:onProperty ns1:foo ] ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality "1"^^xs_:int ; owl:onProperty ns1:foo ] .
The final feature relevant to cardinality is the use of substitution groups.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.org/" xmlns="http://example.org/" > <xs:element name="foo" /> <xs:element name="bar" substitutionGroup="foo" /> <xs:element name="foobar" type="Foobar" /> <xs:complexType name="Foobar"> <xs:sequence> <xs:element ref="foo" /> <xs:element ref="bar" /> </xs:sequence> </xs:complexType> </xs:schema>
The member element 'bar' can substitute for the head element 'foo', so the content may include up to 2 'bar's (we assume there may be other potential sub-properties that could also substitute for 'foo'). Conversely, as 'bar' is a sub-property of 'foo' each 'bar' statement implies a 'foo' statement. There are therefore up to 2 'foo's. Ordinarily, we might conclude that exactly two 'foo's are implied, but there is again the possibility that we might have two identical literal values.
@prefix ns2: <http://example.org/def/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix ns1: <http://example.org/> . @prefix xs_: <http://www.w3.org/2001/XMLSchema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix xs: <http://www.w3.org/2001/XMLSchema> . ns1:bar a rdf:Property ; rdfs:subPropertyOf ns1:foo . ns1:foobar a owl:ObjectProperty ; rdfs:range ns1:Foobar . ns1:foo a rdf:Property . ns1:Foobar a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality "1"^^xs_:int ; owl:onProperty ns1:foo ] ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality "2"^^xs_:int ; owl:onProperty ns1:foo ] ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality "1"^^xs_:int ; owl:onProperty ns1:bar ] ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality "2"^^xs_:int ; owl:onProperty ns1:bar ] . <http://example.org/substitution.owl> a owl:Ontology .


We’ll be back soon!
Sorry for the inconvenience but we’re performing some maintenance at the moment. If you need to you can always contact us, otherwise we’ll be back online shortly!
— Kyle Keck and Eddie Ceausu
Sorry for the inconvenience but we’re performing some maintenance at the moment. If you need to you can always contact us, otherwise we’ll be back online shortly!
— Kyle Keck and Eddie Ceausu