ࡱ> v2 s t u v w x y z { | } ~ }~ IJKLMNOPQ! !!!!!!!"X%Y%Z%[%\%]%#((((((($,,,%............&'555(,-./01*)3567;9:h=>?@ABCDEFGHIJKLMNOPQRSUVWXYZ[\]^_`abcdefghijklmnopqrstuvw+55z889 x9:h=>?@ABCDEFGHIJKLMNOPQRSUVWXYZ[\]^_`abcdefghijklmnopqrstuvw7|}Root Entry0 (FileHeaderbDocInfo{cBodyText  ~8DocOptions @p @p Scripts @p @p JScriptVersion q DefaultJScriptnHwpSummaryInformation.ABinData@2 @2 PrvImage PrvTextBIN0004.gifs+BIN0005.bmp,&Section07/BIN0006.bmp(  799999999999999991:2:3:4:5:6:7:8:::;:>:?:@:A:B:G:H:I:J:K:L:T:U:V:W:p:q:r:s:t:u:v:w:x:y:z:{:|:}:~::::::::::::::::::::::: !"#$%&'()*+,-./0123456789:;<=>?@BCDEFHIJKMNOPQRSTUVWXYZ[\]^_`afcdeghijklmoptuvwxyz{|}~ I. RDF / RDFS 1. 8 8 tǸ (1) the original Resource Description Framework specifications, RDF Model and Syntax (1999 Recommendation) and RDF Schema (1999 Proposed Recommendation). (2) RDF/XML Syntax Specification (Revised) W3C Recommendation 10 February 2004 " http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ (3) RDF Vocabulary Description Language 1.0: RDF Schema W3C Recommendation 10 February 2004 " http://www.w3.org/TR/2004/REC-rdf-schema-20040210/ (4) " http://dewey.yonsei.ac.kr/courses/metadata/rdf/rdf_model_syntax_spec_kor.html " http://dewey.yonsei.ac.kr/courses/metadata/rdf/rdf_schem_spec_kor.html (5) 88 " Practical RDF, By ShelleyPowers, O'Reilly, July 2003, 360 pages (eBook) (6) W3 \H \ \ U\ Yյ)D XՔ tǸ (by Blueland) " http://www.w3schools.com/ RDF/RDFS \ tt| ճ0 \ tǸ " http://www.w3schools.com/rdf/default.asp II. RDF Tutorial RDF Tutorial <><The Resource Description Framework (RDF) is a l>GIF89atɻxxxkkk]]]PPPCCC555((( d`LH00`Hذ̘`H0|pdXL@`0H `H0`dHL`H0xp`XH@0d LȰ``HH00dLؘȀ`H0xp`XH@d0L `H0d`LH`H0|pdXL@0`$H`dHL00`HذȘdL0xp`XH@0` HdH0ȳ``HHdL0xp`XH@`0H Ը̰ĠऀؘpȈXxHp@h@d8`8X0xT0pH dxddxd`d`p`|``x`p``x`!,t H*\ȰÇ#JHŋ3jȱǏ CI NTK,YTr&͗8sɳϟ@IѣH*]bK9J %UWꐫV^qBd5E6ŶJisSt-(̿vRӃsiʬiW1Q0  Ljp+Ynj+^|l“0vY2'v1lMwV/s tJmoHktLg+Ҹe8qMO{6 LsCjiK;-wޖm_cvAcCgpڌ5m/8W7xDS9*nN{9kiщ,@\M3+SXK8յ? }{FoȎNO T7Jf6F1|iD*w8vdpW5KJb"IMfD #4Gc59/c,mo)WS8qI{[0]2D&,)Kf&}4jZ,ׄnz gRoot Entry Z 4(FileHeaderbDocInfocBodyText@uZ |Z ~778                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!!!!!!!! ! ! ! !!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!2!3!4!5!6!7!8!9!:!;!!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~!!!%%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%{%|%}%~%%%((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-................................................................................................................./55555555 5 5 5 5 5555555555555555555 5!5"5#5$5%5&5'5(5)5*5+5,5-5.5/505152535455565758595:5;5<5=5>5?5@5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5\5]5^5_5`5a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{5|5}55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777DocOptions @p @p Scripts @p @p JScriptVersion q DefaultJScriptnHwpSummaryInformation.ABinData@2 @2 PrvImage PrvTextBIN0004.gifs+BIN0005.bmp,&Section0ˬBIN0006.bmp(99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999::::::::: : : : : ::::::::::::::::::: :!:":#:$:%:&:':(:):*:+:,:-:.:/:0:9:<:=:C:D:E:F:M:N:O:P:Q:R:S:X:Y:Z:[:\:]:^:_:`:a:b:c:d:e:f:g:h:i:j:k:l:m:n:o::::::::::::: !"#$%&'()*+,-./0123456789:;<=>?@BCDEFHIJKMNOPQRSTUVWXYZ[\]^_`afcdeghijklmoptuvwxyz{|}~ I. RDF / RDFS 1. 8 8 tǸ (1) the original Resource Description Framework specifications, RDF Model and Syntax (1999 Recommendation) and RDF Schema (1999 Proposed Recommendation). (2) RDF/XML Syntax Specification (Revised) W3C Recommendation 10 February 2004 " http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ (3) RDF Vocabulary Description Language 1.0: RDF Schema W3C Recommendation 10 February 2004 " http://www.w3.org/TR/2004/REC-rdf-schema-20040210/ (4) " http://dewey.yonsei.ac.kr/courses/metadata/rdf/rdf_model_syntax_spec_kor.html " http://dewey.yonsei.ac.kr/courses/metadata/rdf/rdf_schem_spec_kor.html (5) 88 " Practical RDF, By ShelleyPowers, O'Reilly, July 2003, 360 pages (eBook) (6) W3 \H \ \ U\ Yյ)D XՔ tǸ (by Blueland) " http://www.w3schools.com/ RDF/RDFS \ tt| ճ0 \ tǸ " http://www.w3schools.com/rdf/default.asp II. RDF Tutorial RDF Tutorial <><The Resource Description Framework (RDF) is a l>mih:;Nm'7>(EYSnEom6KاF|-/.nwt?f>nj/_~{5?71Q^ܠ= o{6P"+kT 7&$1d9eĠ!Q|4;EbYVu\ǡb㪆{.G˚Jfr|wā ryg]ai6adzx LNZ('\MfXXĦ;+"1vW㷼s%g樠07J}c*nħ#66.`;̈́q 7?HxstpyABy܋] j cC#s2K&?5]/qtWqk>`WZMt<_7u(_Xb?$p f}>VC^C/u6O*MW=VG~nXkjzlUuEWqL]q!u殥:5oQsVҿH֗ǻ?k8,J{sOzq}jOw=RVkBnZ-ͣ+/Xkʫl'S5ّ}Ť&$4pR-fTea17ӣL۽}9FyWlecOjG^O<+Rx ,G!բ+vM[4ZJ9*-3AUIk>H.rY)Vꎊ򬭸6b%GcԃZ1\hnǦ7XtnyحszԪcէk!K[o-|"}y9):!vgG~#g#-\W?L[xF&YvmL7~ FɋvGKd3M)=򯓂8U3*im')2MjqU5gSw07\q\vг97K36'&XVS.|EП,-?e5OP, 41~xrA:sK}N]ʢC\3:J q11OHQfi{ߕ0ڹrx=x4mٟdKpJlbgB~5dxGusO)e*&vOl?*#(Bέ~x. E7 d4f  \ZGIF89atɻxxxkkk]]]PPPCCC555((( d`LH00`Hذ̘`H0|pdXL@`0H `H0`dHL`H0xp`XH@0d LȰ``HH00dLؘȀ`H0xp`XH@d0L `H0d`LH`H0|pdXL@0`$H`dHL004=R{&`'Xva,XB35?|/_~ >^ A= @@? @@Ф l@x=-@ @@@+@Z| @x0{WDZ-Nf*]i6E²vZD 5@Lhe-\{2 *6bZ^B`H+{4M.i׎S./9# @~'`MV. @t.PsJzVn7}BLʍOx LQ%tGY$d"w@O"k&Zd]Mҙ ^HhN:@.! /-,ES ]=.n{Y\Bc ܅V uwLq]ַݻԗ8!@`V +rTm\:,@4Ki%ł \Zy  B\^@x U&G@X!Vc/ Z*# @+W@|CV+ @o V@+z 7@+Per h =Bo29B r{!@ 7T!@`ZB hL B\^@x U&G@X!Vc/ Z*# @+W@|CV+ @o ^K`N+$2mqըWJx V-Ƌt 1h_ۢ$@&V%G.{{b3!Ta-"'N'@'=Zvaj@*0Vg/7Ir.HJDsorӔ*µʏ Ϛ 0GJsVHwb^sug ܬ!_) rS.)_GVBq|rb绚?3篚j PG5:0q̀e@hiD-sD+z:Dl Z).>s4LY癮 "yO) [ʡϡ' N5"B@-]|>N.fi 9^o~50< ߻;t PɡjVa)7X5_Ϩ-O9Q=Ns~GYM7èVw45.l|+aO+|h{pXV6w i04 !/,FV:{5J1ͨvх̨tQo%!XaR D8t烙ixD3`=6V?6GS4|.ELf1 ğ+9# [s#)PYr\}ESBE dۅ@Eb( =f,7si\Хsʰd1xĚ$G&l1L'BU儞8k:_>'爻9=-fixМk];ř#]ý[}{Q/n0%^l[x~/ȁ.N`N+|>`:\'9-{2i4#NexR|Jvǒa1Np#\r/G^a1ǔD @ hA`1 @!V>$@@+Y@x 1|["{[ I<6#Ucx9 ǔD pAsZKhL:0u/raH'rbmpcQ7R=,4s; ʞfժZ+ZsoD БK-¬n^:pM{V6Bh/CHgTG]?!Jq]-jaNBG+ 53»`C(.9@U|Sg6FڊV+Xu\[K+ Cҽv2d8Z~e{'}3msIkElE o0?$}kGJ}Io{'k5mnA1Ƌ[ld^#YoH-bXr e p_Vnө'LysWtep]cr] cjuIQ>T(>z~`ͣ?VG! CZ'}HLeM +VN;P]ra-! ,nG`B+:&Xs/,m~;`x۷=a x<9S@oL-Zy!S+w0o?  ܎Zy0 L<8 @vە!@dhq@#Vޮd @'@+O;@v%#`@8Zy2pA+CʓnG]N&V w p;hJF p2dฃ @+oW2 ' ܎Zy0 L<8 @vە!@dhq@#Vޮd @'@+O;@v%#`@8Zy2pAk] @ iWDZ-N:UnR-^5({k˅"t:Z } LheJ\6Ţg CZkENO[tA!IϴVaBzwU:{`0!MJDsorӔY*µʏ Ϛ 0GJsVHwb^sug ܬ!_) rS.)_GVBq|rb绚?3篚j PG5:0q̀e@hiD-sD+z:Dl Z).>s4LY癮 "yO) [ʡϡ' N5"B@-]|>N.fi 9^o~50< ߻;t PɡjVa)7X5_Ϩ-O9Q=Ns~GYM7èVw45.l|+aO+|h{pXV6w i04 !/,FV:{5J1ͨvх̨tQo%!XaR D8t烙ixD3`=6V?6GS4|.ELf1 ğ+9# [s#)PYr\}ESBE dۅ@Eb( =f,7si\Хsʰd1xĚ$G&l1L'BU儞8k:_>'爻9=-fixМk];ř#]ý[}{Q/n0%^l[x~/ȁ.N`N+|>`:\'9-{2i4#NexR|Jvǒa1Np#\r/G^a1ǔD @ hA`1 @!V>$@@+Y@x 1$@8ZyXBc)%@A_ i3PWlp݃ \/cQ91RDrXOY,?NSy9U;j._vA%0=EK[oϛO7=XkG%YwѨViVHڲpr1?"@PCZ)/T1}Asg[?GGgJa_~~xd= peV)&R$)*AQMǼe"Xf=dG+UxQ+"pY 0)qb#_p ar 5ZI9!@'h路Q\ش8%0Aw?:ld^u_ If?z*Cv/CNY OmB6C9OokJ_SBӫd%>(֣Iӟs]gvNOs<^"03LdHBk-z+.~wwp5Нʍˆۆ;L`B+/ak^^ηVW⣢~;i2X\Vtz1.LX܋VN5@oL-Zy!;0_@#pV> A /1 B"r !@Ǘ!@`Z xhKL H\v@x<%&A@X$V.d; <Z  ,@+O||I @'V>$@El @+_b Eh"@C /1 B"r !@Ǘ!@`Z xhKL H\v@x<%&A@X$V.d; <ZE|>DB(9o_C[mZXm0^{Q91Drci,f$bn6躂LG,o6pV/F@`V4L9{#~|z֊,Ij y!xB aR8~$kc  iebRϟ!+MoJ|uL 3r4ZW0hLïͰ⑽.|Ӌp꡴s) %AQM|G,TP UKd[l!'ͫвQ﬇8ZmJs Ho:Bx86ꇵh6C-fT9n=,@G+YBhybN$SV4/N!Қ#H&sBl(W!WJO:Q[ڗQG"ke>y ^4G}U=ZuHQgý|êGReڜۉ[Q^VsE"i98kB@`wCZ'.)#H߳t~fw=RXTA wY0Qf!QZPDOxK_T↘_6{f+n殟/ZRܺ^/r:lY:[C2DqV/ao` 0Gd ]7r/$V @C!\, @+_XtR !h.C /,:)Cr!@!@`Z9 Bh N 0Db@x!E'e@"Vb1 Z¢2  @+p^H|aICX @/$V @C!\, @+_XtR !h.C /,:)Cr!@7%G@@+wGzM_f`D@hRo6KR-[x??ⴲ>_< )l6ȑ{)!k{o]+s Q鷽ި芰nJdA&WaƨOk}kydzYT̑8Z,ӡN洬Cg ԎY99#wt[7 ydooS=U |OD7]'Y>M6ЎZp{co'U9~pk.Hʼi{ggZ+ |D_s7U|'.i9G?3D~wZ)hB9KhMwM >.8p'keam_MoūK6[-VNqQ2荢L]T촓1OJBъUaq9fOZYO0i٨Oj!>LS:B.zBp!͔CtiӽIÌj켡 7tAx)V&OwWz~cl6礎J7mo:C:c9x)*ZzڑVkG}}WDH L > o '8ZM>m]E6-]͙֮󍅑 Bt5C*tXTIkMTEUM;y.M&aψn/o=Έ8kzT bNvZLFiOn}Kժ_hZš*tkzT|45E1;9uЎ0yӪ>4 Z^=ܮu2p]T" ZTMjjh"zJa֫.VP ks8ssWLk9Lڐ虗jY0t> _+{x}#9k *}{謉h䡞M+mm(C=ӊһ&Z1B0c>#vII^ʺ9z6N[2_R$(2e+YiS N$P 5z;!s=\-kXQ|a0WWD+/ίYsӻG5zzw~r yuXjh4fe /-N}G+o;-.VL WiT&b1)>(r0Bz29C6o&BZs)ccgq*|E+{%\HĊ䢕՞  #N_l> %5a$C&ԯڡe&\6h啝V0׽R{ w=7z=v?2rdtG+krI:6^:ۼzv\zΣa7hF˷hmYO˷E{\~#,il߽\?iB19,Cr ? h {SME`VjEX fm>L(c1/<bX,,q6ɶ`7K.^g:ii kLԳ Y\Q6 > +ZnN׻m4V {|nJB^B XWfjreN ;S=_~4ސ hDj""Ւs+'TAhj\4Z2I<ʫH'>Q8܅>ETM,Pڋxs1Zkʨs7W(+gHD)Ci!a]wr"A=X3hw^g\ഝ^J61XYK?GԽ>ǙW5 ܈]L/wMC+{xX1z.~Who@JqQ[C+Ch*:spB7h՚ްY^{ZrJY.Θ{Q";Z՗%a9Zrwםa%C OtV~jk}@=7u:D` ^KJkQiK軲"0@G+{,tx9Y[veHI? B; Zy=oh?9|ZMtnQA!EVJ!{ 0l.,^jtuv@ i4KBצ} p ZyK $V/@8Zybֈv@+w H<1k @; ;i N$V5b ʝ@'@+O1CNhN  'f!@`'r'm|AF Z6 @DhY#f@II_ p"Ĭ3 $V/@8Zybֈv@+w H<1k @; ;i N$V5b ʝ@'@+O1CNhN  'f!@`'9S)~L9ןe9MȿD47G&Qkf эX"3a%&0JS\54Z1IJDrF-C~B\(ohh-,@$JЭ)@Okem_N5QK* ki^1t'Lբ_C0 ZX1?WdZkxXM?0fsZ-$<#.WS˜-Я9^KZZn>è@ h, "V~U, L@+'ZUf 0A@k_?@Z;?@zZ@Z~~~@ F_i Kl9REoѮ0FW6c)ШV6!Ogt2݈#ܗѿ??o?߿_> t tڀ  ɿ_ D`_:_@FࣖN~~ @ __ A< @}$@8J'~~ @x1G<:-Nd(Yi6²>uAh Z6%HUl\a=QIGrCΡ\,?N=G': f tҹ8ͩ:y?:CfNnl‹X 4'e Z+Q?k`Z7CxO'7%bؤj fc-y 카Nwojb :^,Wz\c @X!Nc/ :  @'WN|{V+ @o'N=@+z @'ߞa  =B o0A tr{!@ɷg @`:B v3L| B\^@x;t;x@@'oS /8@$}B01@`/8O=?+ͽ¦snBqh3@v7ZǕ?}(~o~ݫְ@u9uBKGn$onWKkĂ59-*!l쉒d{eB 5  8jV p { J+!@N 7Wfyo$w }]=9@AnbqjvŐ@vbs@@:Ia@I NR 'g:-&N@!NPcnDg&q#vbܛV NRݾOO[m6Ga-vND:ڽT}nPD50G½sMs7s CG+)ӽ6) ;o5\ٴJ;W0aEMe#u׈=Z7ps4 6m֣raV;)E! 'i:T3]aUlXxa4FXpJ8ṽq hS1lҺ֙i C bv>&|36#r3=o%TyU%Cծeo.kU(&tm,]b^HYDɹ8GJOCӠz B{4fz,X YM~po*s]`B.Kslh D:kߝ_Չ1=CCִ剧:!Gq`QV0C>M} Kt4*I'3FiD: X+`Z'z ͆¬f)|s ‡mn^^DKוGht!7+&̛IUXf¶142Q GO'ϫ5XjvR7E3-b6I 8lc=7hω@!g 9*!h9fm3b&Q8,!kÚ{Y=Xlԧ؅a]; Ic5S"G8&l>_sO}q"ҡ'&zMǫ-|r:^B ̹YջK9>k@GU.t^ a ^٬onN`\'{>/qєN)gk|Nny;]vJA2L:fxN 7켆:T @<*&!@5פ@ @P1 @!N&s)Ё%Nˬ1opräң NOdq<mދe}n}m9cLrL$ްTRںB& \-ߞtPsz4(GÉ|iZC@H :'t@ N'!@^)=W<" @9'ʞ4 u#2l_ӧ>64W\ ŹN:>f [ dS7ԊZBTjX~9\86d@\ PuҗtHO() ozZ'{r=d% ᭯IB%3^ L 0G IqCuw՜.@x4H'{n_5^(gmټ .-Ŀ~<:8@>O'arMe3=m?6>$Z{hY @/ `s y'h 0D`P'9t(C`\'}d>@؝: M<0!@'g!@hф@O&N>9{@G@'&ϯYrR?> cpmZevH9A܃iiz2<uؾOM44Wt-UpsGE(vvg]솛Wr$*Vx;V AJ/z+,VܲxT7[Zοނ59k xŹN}Μ:w9|}^B)sE9b  p['wykoNzhvc~tr]Wώga ؋N.5G ^<.3:/twq-g?]pһRq\NN bMۿ8_S'w/\`ؑ:77ugHqUɫs. <:,# \EBUɫs. <:,# \EBUɫs. <:,# \EBUɫs. <:,# \EBUɫs. <:,# \EBUɫs. <:,# \E;x@@'oS /8@$}B01@`/8O=?+ͽ¦snBqh3@v7ZǕ?}(~o~ݫְ@u9uBKGn$onWKkĂ59-*!l쉒d{eB 5  8jV p { J+!@N 7Wfyo$w }]=9@AnbqjvŐ@vbs@@:Ia@I NR 'g:-&N@!NPcnDg&q#vbܛV NRݾOO[m6Ga-vND:ڽT}nPD50G½sMs7s CG+)ӽ6) ;o5\ٴJ;W0aEMe#u׈=Z7ps4 6m֣raV;)E! 'i:T3]aUlXxa4FXpJ8ṽq hS1lҺ֙i C bv>&|36#r3=o%TyU%Cծeo.kU(&tm,]b^HYDɹ8GJOCӠz B{4fz,X YM~po*s]`B.Kslh D:kߝ_Չ1=CCִ剧:!Gq`QV0C>M} Kt4*I'3FiD: X+`Z'z ͆¬f)|s ‡mn^^DKוGht!7+&̛IUXf¶142Q GO'ϫ5XjvR7E3-b6I 8lc=7hω@!g 9*!h9fm3b&Q8,!kÚ{Y=Xlԧ؅a]; Ic5S"G8&l>_sO}q"ҡ'&zMǫ-|r:^B ̹YջK9>k@GU.t^ a ^٬onN`\'{>/qєN)gk|Nny;]vJA2L:fxN 7켆:T @<*&!@5פ@ @P1 @!N&s)Ё%Nˬ1opräң NOdq<mދe}n}m9cLrL$ްTRںB& \-ߞtPsz4(GÉ|iZC@H :'t@ N'!@^)=W<" @9'ʞ4 u#2l_ӧ>64W\ ŹN:>f [ dS7ԊZBTjX~9\86d@\ PuҗtHO() ozZ'{r=d% ᭯IB%3^ L 0G IqCuw՜.@x4H'{n_5cܖ$q-zriW>tt w]D9ǪF[ <  t8*< ffy۵/6Z'ŦQq  ȇ#=) vEu Nȱdk @>:9G$F@.}  @`7tr7aC OCnn؇ '@'=| ݄]u @  FM|2u py@'/Q!ϰgYWs{ȹ:5wK8#sqzn_Qr'>"[xw2e% !ɑYvՖۮˆEw0kBg膳Ѿ>:e IIBN4 6BN%K uwZ"L̘^wMp7:KU)\shsMPAM]@RnhY#%4a-x9N_}ywLwcfԿ#Ar+yNX\d fSqp#Z'r)H@&deda{CsȬ.9 ]o1#0b~{2[ub.ҳ8x:vlm_w~ \r+*'ssܱnFhteSWE htgԹEt@ E Kj;PV6t(Cw>n7 rBrgP&J[ɦF59v(DҭrD]'(:bE`ScxNF>,]r;8m?bP[R9YSחH/ 6Irgf~5qn[[^a[̷<&VB)yL{q߬gyރDھ;,@:e²XYYxb3 8NDI`W{eB 5s뮉E { q%+!<@L'{}:yL|Wn]A{N+˄Kȇtr?W'"x@!dCBmf׻Uui,?'h1>7@\x#4[J@11t?$"+C+HE#Еz#)v{h
M+tݱ;TW(_w B ͕Y>ɍ}ҹPҞ|.Ax䃘-OY^ KT|.< t  @`L: @$5@! 58K$wttrzaDL aG")QR@:Ī.鑬7N%M5{>/,7D럭উ#{G:9ܫfRAЎ'p,ºNj5X|+0ʣ1 öY~%6+Qmr0GuaE;סaM:/W MpےvJYEH#[eN6}8b.jg"]lJaqq4t.Q :2̺0Vh{9k:}]#. nNĭV6-x:R|2Df]Y͊wd["т:9vzEN #?{jejE*]bʶڴN{d9N@w^mRN*geqtOsx12i(Zݹ ^s4u>YT'X_^{Le[l_u9jQqMQ侃N*ijsb]*6>칩86ҝjB''R*Mkt ۑNM Q`t{v,>I'#}]R JavN,pPwAFuk*H4J>!o;FSxߞ,FQG*fF5} "yk-xBխ(z”S)3 o7:0&esޝCvTVHk7v7v/Fa{SVM;k0̭n,D"#HNhqu5WHj'5GWK'Ss#9l¶ e6n'6n32Rn/!)HKNW/n)\\f!))QX#:M XzF$wWNyb!ŧH.3g-[QysbS[+]qoY3gL֭,^ɺS,͉+-G"D:⹘:__#Gj_:Q72Ri'M㡞vv+܂Z^'7W__-B`yD':wo#3:yĥfej|9ۮ@'], @'_|B :"b :: ~N'(]6, N~p^񊊀 ~W'?Q @ H uPdg5XG, : !&VQZ]6Ʊ_ K q*KR#w:9Ԝ.@x4O'GW],.rcUvsn#{xtqb:y|Zkw~heG͓bS(8ZVBd:@@@R'ŇeXt2B5 py#ݏyMg# @tc :0!@'g!@`7tr7aC OCnn:s @ &>J]:@t<(@gWfF%jDqu8[Q7ɯ(soM1I$m]Ǻ- zɑa-,IʈoJ=D[-]{5`-1{tYCvh_~D[lm٤L\k]枫if3d^E qCը8{a*;X\B'fbtY)Ӊ$] fԍK 0"I/rσHNS5{+hsE'#W0DReeDŞr866 c<̘9YXl}ӟmbO0}@х9h=~{=+n&dt}Bx:v۽۠׻l^u/Q9uGhteSW-LUK7RoAAt򤌰o#ɺZ}ENw6[G=#an)ZH6eitQk: -#F$;sG$4mT ~~lqFpڲ_Xuˮ"E6wk! s!,5>ҽ`\U ڹx%iU/H,tEIC[[^~Vw8AY>@^'iZ{qNAݪ;rTzDHhW'ӊ@B|{;Rr0!p1tb@"N>*]8 @@'/q (҅ p1tb@"N>*]8 @@'/q (҅ p1tb@"N>*]8 @@'/q (҅ p1tb@"N>*]8 @@'/q (҅ p1tb@"N>*]8 @@'/q (҅ p1tb@"N>*]8 @@'/~q~́~: Ytb( $D@[[NfEo)llz$O'?p?˂fqYi{6^,ʚf:< 7 ]w-u-t_GgoGEjsSn7nJdCרSۺ0W[m',#uG6}cW-qvwRZXG]ݽ.9IDH5e07ϭVF(2VI!6'v0}5֕ +1ҍ},8^8z@@'ʹNf8%2l4(b6:v$,t28W Q$ۇs'nP' W$St?4 ih`1_O1#V;n_[a[ q~b=urB_VEm4TuMk(H-LS܈V,,NHY1i=Wjݔ"uo_ɃG 2]YB-v}(qnȮNFiӵOhFЫyC}|:lN/Z2F-^lvgJh 73x##8萛SpbtG[#("o޽uϽA4>6{e!xU NTtl'EjصPvuY9]olL=XץF5kKRǶh\PQRr[v5#i`(8~]6GƈsPtʲ[tg gn)3",E0sB۷Tf7^\~x:jfύk@'OG* 67YQSBDu#F:stԣ-o,.جGLTܮu-<#Vt/~w+]6s.X̂f=alU:"z킧kD+z _'NzV+ @N  @'W=a￿eK"r"NV>0odräH;bM$yϲVPݗ[O'?BY,.+0\8P7u=bbY+&HVŷ=a9X# tԙ8-hzvuYKiՅm]zhdahd|oMx:4KM{~8>5kA,j4u"[8+&h,D޺lGeE*K[vMe4upO"4RnG[RKe0,(w7Ui1];ztRݪt tnQ-l DFݨ#gW3{ڛsJ5VLg0qBJ-U=r[>^։ L_wFw.vvb:9P9'XЎ-xheqK'N,WES<]>IW:tMK"SyO#Wnצ f?ht-fg)c:)ؔ|7E:xhJ'׽*9@tr͑`Z4>7]#Mu)_+˜*XNܭA6[{Z'E-:CIo@@'uسotɣm(=a4gEqba61Pj.7щNJWWzp(]dW6]I,Qݤ#+$n ޿#;B6Ge\s]N6Zi:ʒ(eH5,;YKiJ9bnnvYGn'ݼ}?R p!tB@#N>.e8 @@'/Q 8Rt/'(8su=U񈼡HӚL5~[v-Xkzs;g$ߦ[Po6{RX6Sӻ'}^xSBt; ,hlYjG}b7]n_ysq1 0Ar]', YpΝ.ʼn:nU?Iaak~vtg/1WoTO'׬tiQG0Y gW)?]x`֍ymӭMQ6nIM  )n֯RA5ukõoD}n2+F:aMb@'k~#6dRi]:C+ ;尮 NE9%ZbO:>"՛ʯRTQVI'Z\╓x#t-P-n/^ɣ@:yX~Y0j6hUKHePOTOLjmawwQ,V;#fSo^ELK/t;&{fK.F{sCL!Ha-d bf˱.,tCI160qy z66\팜זWƭ;ވam(v1Ѩwmw#}n$T`S]vTp^AE'վei)Z:+$+8DO&Ysh?e 1MZ'̮չHUTG5Bk֭:7BFUl^*>p;k x2XPn?6td)KCP{(flPZ6-tQB,]7Gcxt=E&vcy'jD{hZGwd$֩m6}927ۦApg{m̮oaڲM(vTJ(hn3G n2}^Yeq2MrTKAxnsV#-rSLs]`T9⬚s`Ӯ4b=ED]oW0us=YY?TH~- @#W? fʦY8-~9#@@X'Os ܞ@R'Ňe$Գt 2(>S'k$"@o4k^w0W}%̝u&A{HrTx'Ӷky<"k ) '#"@i;_j @ir/D Hm @49yڎ"dZ p_ ˨jnL~؏DGsS lWo8&rr|팩ߘW?-1lND*ދ}SlP^Jwsow0#0ɥj@7' <'7pM{,F9VK^&[V=MFbF5-# ]-c R9  \N^7 >Pfc8ABV5:!4yZHդj%p.6Jghi@Ywlz6 r,|͍|ܹv*-jsF?n 8T`1'Y Gg&gkEkx}XMvZZx dX)~*>U[׺96aݙ @ fƾ%']@rr# 1rcB  @`C@Nny>F@N~V[(ls_ @h俏#@j9 P^P @n @ ;`a``a`0e h`a``a`0e hx  4 @ LXII2004D 3 14| |ǔ| $ 2:19:12Administrator5, 5, 0, 2135 5@ @ @GIF89a`H0ppp!hV eI+f# )D;777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777y7777777777777777777778# gifgifbmpbmpbmpbmpbmpbmp bmp bmp bmp bmp bmpbmpat GulimaBatangpB\ՑŬpat GulimaBatangpB\ՑŬpat GulimaBatangpB\Ց…pat GulimaBatangpB\Ց…pat GulimaBatangpB\Ց…pat GulimaBatangpB\Ց…pat GulimaBatangBp@@BIN0001.gifLZBIN0002.gifG BIN0003.bmp5BIN0004.bmp.vN _LinkDocr BIN0001.bmpT_FBIN0002.bmp <x.BIN0003.gif BIN0007.bmp_% BIN0008.bmp!6BIN0009.bmpSr BIN000A.bmp @@@BIN000B.bmpBIN000C.bmp BIN000D.bmpi BIN000E.bmp6 @@@@dddddddddddddd @dddddddddddddd @dddddddddddddd @_______ddddddd @      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~dddddddddddddd @dddddddddddddd` @dddddddddddddd @dddddddddddddd @dddddddddddddd (((@dddddddddddddd (((@dddddddddddddd @dBM6 6( քք`HذȘdL0xp`XH@0` HdH0ȳ``HHdL0xp`XH@`0H Ը̰ĠऀؘpȈXxHp@h@d8`8X0xT0pH dxddxd`d`p`|``x`p``x`!,t H*\ȰÇ#JHŋ3jȱǏ CI NTK,YTr&͗8sɳϟ@IѣH*]bK9J %UWꐫV^qBd5E6ŶJisSt-(̿vRӃsiʬiW1Q0  Ljp+Ynj+^|l“0vY2'v1lMwV/s tJmoHktLg+Ҹe8qMO{6 LsCjiK;-wޖm_cvAcCgpڌ5m/8W7xDS9*nN{9kiщ,@\M3+SXK8յ? }{FoȎNO T7Jf6F1|iD*w8vdpW5KJb"IMfD #4Gc59/c,mo)WS8qI{[0]2D&,)Kf&}4jZ,ׄnz g;`a``a`0e h`a``a`0e hx  4 @ LXII2004D 3 14| |ǔ| $ 2:19:12Administrator5, 5, 0, 2135 5@ @|Z @GIF89a`H0ppp!hV eI+f# )D;# gifgifbmpbmpbmpbmpbmpbmp bmp bmp bmp bmp bmpbmpat GulimaBatangpB\ՑŬpat GulimaBatangpB\ՑŬpat GulimaBatangpB\Ց…pat GulimaBatangpB\Ց…pat GulimaBatangpB\Ց…pat GulimaBatangpB\Ց…pat GulimaBatangBp@@@@@@@@@dddddddddddddd @dddddddddddddd @dddddddddddddd @_______ddddddd @dddddddddddddd @dddddddddddddd` @dddddddddddddd @dddddddddddddd @dddddddddddddd (((@dddddddddddddd (((@dddddddddddddd @dddddddddddddd @dddddddddddddd (((@dddddddddddddd @dddddddddddddd (((@dddddddddddddd` (((@dddddddddddddd ((((((@dddddddddddddd ((((((@dddddddddddddd ((((((@dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd (((@dddddddddddddd @dddddddddddddd (((@dddddddddddddd @dddddddddddddd @dddddddddddddd  @dddddddddddddd @dddddddddddddd  2^N 2^N 2^N 2^N 2^N 2^N 2^N2" ((p(@('( .( 6 ( xxxxxnndd  x Normal8Body 1 Outline 1  2 Outline 2 3 Outline 3 4 Outline 4 5 Outline 5 6 Outline 6 7 Outline 7 8 Page Number 8йHeader  Footnote   @@@@d@@ @d(1) the original Resource Description Framework specifications, klh%RDF Mo*)+$q[V Q1\pV4P2(&2j'֚~."f*3$,QR@jfXʊj`j@QMC;TM*&@[.梋BmgAȟ2oi&1ieYHWP Document FileÊ)$`Ѭ * V"Sg0vv֬r)觔MqD]rKBdAPJ53B혟(j)4@3pWT*Z0W呃;:Q TtIeȭ,Y2+B`!! C dcesdlocpngpdaeh DE@` ` ,Gdcesn@IH  J)R7J)/R7KKKGdlocGpngp-GdaehH ,B` C @RDF/RDFS i1, @ D E @,B` C I. RDF / RDFS DE@@ ` ` ,B` DE@` ` ,B` C1. 8 8 tǸ DE@!` ` ,B`C`(1) the original Resource Description Framework specifications, klh%RDF Model and Syntax (1999 Recommendation)klh and klh%RDF Schema (1999 Proposed Recommendation)klh. D Hr  E-RX,]@3RX,G0klh%:http\://www.w3.org/TR/1999/REC-rdf-syntax-19990222/;1;0;0;_Gklh%9http\://www.5t.asp II. RDF Tutoricd߈6) W3 \H \ \ U\ ok) (6) W3 \H \ \ U\ œ??i33ngDjsd *KKe]9&k1M}|uD!]NY[j-q]8}ϻ?q>}>~^ߙ-$"/?B8BB$B}0c!.c8qDEwc D$Ec$ID$Eka)DPEK64CF`a88FEs@'0Hh,I 1(q #(0-L Ҡ b0 P88Na1 '  'ItNR8E0 y@,4h5`fw3.org/TR/1999/PR-rdf-schema-19990303/;1;0;0;_B`,C(2) RDF/XML Syntax Specification (Revised) D E@9RX,B`(C W3C Recommendation 10 February 2004 D E@?RX,B`AC  " http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/ D  E@FRX,B`9C (3) RDF Vocabulary Description Language 1.0: RDF Schema D E@@LRX,B`(C W3C Recommendation 10 February 2004 D E@RRX,B`IC " klh%http://www.w3.org/TR/2004/REC-rdf-schema-20040210/klh D "@ E@XRX,G0klh%:http\://www.w3.org/TR/2004/REC-rdf-schema-20040210/;1;0;0;_B`C(4) D E@_RX,B`TC " http://dewey.yonsei.ac.kr/courses/metadata/rdf/rdf_model_syntax_spec_kor.html D E@@eRX,B`MC " http://dewey.yonsei.ac.kr/courses/metadata/rdf/rdf_schem_spec_kor.html D E@kRX,B` C (5) 88 DE@qRX,B`_C " Practical RDF, By klh%ShelleyPowersklh, O'Reilly, July 2003, 360 pages (eBook) D . E@xRX,G klh%Ehttp\://www.oreillynet.com/cs/catalog/view/au/90@x-t=book.view;1;0;0;'_B`8C(6) W3 \H \ \ U\ Yյ)D XՔ tǸ (by Blueland) DE@@~RX,B` C " http://www.w3schools.com/ D E@RX,B`C RDF/RDFS \ tt| ճ0 \ tǸ DE@RX,B`/C " http://www.w3schools.com/rdf/default.asp D E@RX,B`DE@@` ` ,B` C` II. RDF Tutorial DE@@` ` ,B` DE@R,B` CRDF Tutorial DE@0h,B` C  lbt DE@h,G lbt#*ڥ_M`H` l l B`  C  osg D E @<< l G  osg#*<_L@ cip$cip$<<$ ??????U<<<H`nnB`C The Resource Description Framework (RDF) is a language for representing information about web resources, such as content description, title, author, copyright information, availability schedules, and more. D  E RXl;@RXly RXlRXlB`$C klh%Startlearning RDF!klh D   E @RXlG 0klh%2http\://www.w3schools.com/rdf/rdf_intro.asp;1;0;0;_B`C@Table of Contents DE@ h,B`'C1. klh%Introduction to RDFklh D E@bR,G0klh%2http\://www.w3schools.com/rdf/rdf_intro.asp;1;0;0;_B`DCThis chapter gives an introduction to RDF and explains what RDF is. DE@R,B`Cklh%2. RDF Exampleklh DE@R,Gpklh%4http\://www.w3schools.com/rdf/rdf_example.asp;1;0;0;_B`&CThis chapter explains an RDF example. DE@ZR,B` Cklh%3. RDF Elementsklh DE@R,Gklh%1http\://www.w3schools.com/rdf/rdf_main.asp;1;0;0;_B`4CThis chapter explains the most common RDF elements. DE@ R,B`"C@klh%4. RDF Containersklh DE@R,Gklh%7http\://www.w3schools.com/rdf/rdf_containers.asp;1;0;0;_B`QC This chapter explains the RDF container elements bag, sequence, and alternative. DE@R,B`Cklh%5. RDF Schemaklh DE@H R,GPklh%3http\://www.w3schools.com/rdf/rdf_schema.asp;1;0;0;_B`7CThis chapter explains the RDF Schema extension to RDF. DE@R,B`#C`klh%6. RDF Dublin Coreklh DE@R,GPklh%3http\://www.w3schools.com/rdf/rdf_dublin.asp;1;0;0;_B`2C@This chapter explains the Dublin Core initiative. DE@@R,B`!C klh%7. RDF Referenceklh DE@'R,Gklh%6http\://www.w3schools.com/rdf/rdf_reference.asp;1;0;0;_B`0CThis chapter contains a complete RDF reference. DE@,R,B`Cklh%8. RDF / OWLklh DE@ 5R,Gklh%0http\://www.w3schools.com/rdf/rdf_owl.asp;1;0;0;_B`=CThis chapter describes the OWL language built on top of RDF. D<E@9R,B` DE@hB` ` ,B` C1. Introduction to RDF DE@M` ` ,B`DCRDF is a language for representing information about web resources. DE@XRX,B`DE@(_RX,B`!C (1) What You Should Already Know D E@he8,B`VC Before you study RDF you should have a basic understanding of XML and XML Namespaces. DEpRX,JvRX,B`aC If you want to study these subjects first, please visit klh%W3Schools' XML Tutorialklh. D@WE@RX,Gklh%0http\://www.w3schools.com/xml/default.asp;1;0;0;_B`C (2) What is RDF? DE@88,B`/CRDF stands for Resource Description Framework DE@`RX t&B`,CRDF is for describing resources on the web DE@RX t&B`)C RDF is designed to be read by computers DE@RX t&B`3C`RDF is not designed for being displayed to people DE@ RX t&B`)C RDF uses URIs to identify web resources DE@`RX t&B`4CRDF uses property values to describe web resources DE@RX t&B`6CRDF uses the terms resources, properties, and values DE@RX t&B`=CRDF also uses the the terms subject, predicates and objects DE@ RX t&B`*C@RDF is written in XML (XMLD tǩt RDF| lh) DE@`RX t&B`CRDF is a web standard DE@RX t&B`C@ DE@RX tB`,C(3) RDF is Designed to be Read by Computers DE@ 8,B`~CRDF was designed to provide a common way to describe information so it can be read (and understood) by computer applications. DKSEHRX,SRX,B`>CRDF descriptions are not designed to be displayed on the web. DE@RX,B`DE@RX,B`C(4) Examples of Use DE@8,B`GCDescribing properties for shopping items, like price and availability DE@(RX t&B`*C@Describing time schedules for web events DE@hRX t&B`[C` Describing information about web pages, like created and modified date, title, and author DERX t&S!RX tB`0CDescribing content and rating for web pictures DE@((RX t&B`'CDescribing content for search engines DE@h.RX t&B`!C Describing electronic libraries DE@4RX t&B`DE@:RX tB`.C (5) URIs to Identify, Properties to Describe DE@(A8,B`rC@RDF uses a URI (Uniform Resource Identifier) to identify a web resource, and properties to describe the resource. D MWEPPRX,[VRX,B`cC` The following example describes the resource klh%http://www.w3schools.com/default.aspklh: D5YE@`RX,Gpklh%,http\://www.w3schools.com/default.asp;1;0;0;_B`=C osg The example is simplified. Namespaces are omitted. DE@jttX,G osg#*tt_L@ cip$cip$tttt$::??????U ttttttB` C  osg DE@u33n+X,G osg#*3V_L@ cip$cip$33$V??????U 333B`:C@'In the example above, the URI "http://www.w3schools.com/default.asp" is used to identify a web page, the property "author" describes the author of the page, and the property value is "Jan Egil Refsnes". The property "created" tells when the page was created, and the property "modified" when it was last modified. DiqE RX,[,RX,lRX, RX,B`-C(6) RDF pt0 x-resources, properties, values DE@8,B`UC RDF terminology use the words resources, properties and values. (3-tuple(=triple)lp) D')38>E@RX,B`C@Semantic Web p.13 DE@$RX,B`CIn the above example: DE@LRX,B`FCklh%http://www.w3schools.com/default.aspklh is the resource D,<DE@tRX t&Gpklh%,http\://www.w3schools.com/default.asp;1;0;0;_B`$CThe element <author> is a property D"E@RX t&B`(CThe value "Jan Egil Refsnes" is a value DE@RX t&B`DE@4 RX,B`DE@RX,B`C0 xܴ@ Dl 0 DE@( RX,B`DE@PRX,B`%C osg DEx44,X,URX,G osgCjm4$`L noc$noc$m4m46Pu?????? noc$cer$nil$nil$nil$cer$cer$lle$cer$cer$cer$L noc$(+Eu:?@????? ????cer$cer$cer$LPcer$(+<.<.?@????? ????????!@H@ 'B` C Resource DE@RX$O<.<.LPcer$dY<.<.?Y@????? ????????!@H@ 'B` C property DE@RX$O<.<.LPcer$<.<.?@????? ????????!@H@ 'B`Cvalue DE@RX$O<.<.L Pcer$U  e/?@k@?@????p@ W @?Ъ]H?8@H@ B`Cauthor DE@RX O eeL Pnil$Mddp?q@?@????zGr@Q?0x4?UUUUUU?UAN@ddL Pnil$M T pP1*?@e@?Ƿ@????@@??UAN@ T L Pnil$M px\ ?@e@?@????@քքքքքքքքքքքքքքքքքքքք@?ai?UAN@ L Pcer$x\ ev-] /?@?Ҷ@????vw @ W @?Ъ]H?8@H@ B`Ccreated D    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgi7jklmnopqrstuvwxyz{|}~E@RXO eeL Pcer$K! e+ /?@?@????d @ W @?Ъ]H?8@H@ B` C modified DE@RXO eeL Plle$HJ~&t?@?H@????7@Ygu??t?UAH@ ?MB`%Chttp://www.w3schools.com/default.asp D$E@RXKP_%J_% L Pcer$Cl-[h?@?@????@@??UAH@ -B`C Jan Egil Refsnes DE@RX+O--L Pcer$Cl -[h?@??@????@@??UAH@ -B`C November 1, 1999 DE@RX+O--L Pcer$Cl6--[h?@?@????@@??UAH@ -B`C February 1, 2004 DE@RX+O--B`,C(7) RDF pt0 x-Subjects, Predicates Objects DE@_8,B`ECRDF terminology also use the words subjects, predicates and objects. DE@ oRX,B`FC; subjects(=resources), predicates(=properties) and objects(=values). DE@2yRX,B`CIn the above example: DE@ZRX,B`RC@ The resource klh%http://www.w3schools.com/default.aspklh is the subject D9IPE@RX t&Gpklh%,http\://www.w3schools.com/default.asp;1;0;0;_B`(CThe property "author" is the predicate D&E@“RX t&B`,CThe value "Jan Egil Refsnes" is the object D$*E@RX t&B`DE@B8,B`C@(8) RDF is Written in XML DE@j8,B`{C`As you can see from the example above, an RDF document is written in XML. The XML language used by RDF is called RDF/XML. DERX,RRX,B`CBy using XML, RDF information can easily be exchanged between different types of computers using different types of operating system and application languages. DERX,Q:RX,B` C  lbt DE@bddX,G lbt#*J'`MH` n B`D E @RXlH` Un UB`C XML D E @RXTH` EDn EDB`C RDF D E @RX(CH` n B`C `x D E @RXlH` Un UB` C T\ Ҭɥըx D E @RXTH` EDn EDB` C X Ĭɥ x D E @RX(CH` n B`C ¤ȹ D E @RXlH` Un UB`C 8 t- XML8X lp| x D E @RXTH` EDn EDB`C Xt - X| x D E @RX(CB`_C D \XՔp Ǵ XMLt l8 Ĭ5 pt0X lp| XXՔ p tǩ, RDF X Ĭ5 \D \ 0D \. \ 8DȄ DERX,4F RX,B`C@(9) RDF is a Web Standard DE@8,B`NC RDF became a W3C (World Wide Web Consortium) Recommendation in February 2004. DE@(RX,B`CA W3C Recommendation is understood by the industry and the web community as a web standard. A W3C Recommendation is a stable specification developed by a W3C Working Group and reviewed by the W3C Membership. D EPRX,RRX,%RX,B` C2. RDF Example DE@/` ` ,B`DE@8;R,B`C(1) RDF Example DE@?h,B`/CThis is a few lines from a list of CD records: DE@XHR,B` C  lbt DE@P,G lbt#*|1_MH` ( (B`C Title D E @R&H` T&T&B`C Artist D E @R`$H` B`C Country D E @RH` B`C Company D E @RH` B`C Price D E @RH` B`C Year D E @RH` ( (B`C Empire Burlesque D E @R&H` T&T&B` C @Bob Dylan D E @R`$H` B`C USA D E @RH` B` C Columbia D E @RH` B`C 10.90 D E @RH` B`C 1985 D E @RH` (9(B`C Hide your heart D E @R&H` T&9T&B` C Bonnie Tyler D E @R`$H` 9B`C `UK D E @RH` 9B` C CBS Records D E @RH` 9B`C 9.90 D E @RH` 9B`C 1988 D E @RH` ( (B`C ... D E @R&H` T& T&B`C @ D E @R`$H`  B`C @ D E @RH`  B`C @ D E @RH`  B`C @ D E @RH`  B`C @ D E @RB`KC` This is a few lines of an XML file with a reference to an RDF description: DE@MpR,B` C  osg DE@x|||,G osg#*(|V_L@ cip$cip$(|(|$U>I??????U ((||(|B`SC` The first line in the XML file is the XML declaration, telling the version of XML. DE@R,B`hC The rdf:RDF element (starting with rfd:RDF and ending with /rdf:RDF) indicates that the content is RDF. D ER,XH R,B`C`The xmlns:rdf namespace, specifies that tags with the rdf: prefix are from the namespace defined by "http://www.w3.org/1999/02/22-rdf-syntax-ns#". D ER,YR,B`CThe xmlns:cd namespace, specifies that tags with the cd: prefix are from the namespace defined by "http://www.recshop.fake/cd". D E(#R,W'R,B`C`The rdf:Description element (starting with rdf:Description and ending with /rdf:Description) contains the description of a resource identified by the rdf:about attribute. DEp0R,] 5R,B`YC The cd:artist element describes a property of the resource, and so does cd:country, etc. D E@=R,B`"C@(2) Resources, Properties, Values DE@PFh,B`^C When you think of RDF, think the following sentence: "Resources have Properties with Values". DERR,UXWR,B`%CFrom the example above you can read: DE@_R,B`wCThe Resource: http://www.recshop.fake/cd/Hide your heart" has a Property called "artist" with the value "Bonnie Tyler" DEhR,Y8mR,B`nC The Resource: http://www.recshop.fake/cd/Hide your heart" has a Property called "price" with the value "9.90" DEuR,XzR,B`HC Or like humans would normally say: "The CD Hide your heart costs $9.90" DGE@R,B`DE@R,B` C3. RDF Main Elements DE@H` ` ,B` DE@R,B`;C`This chapter describes the most important elements of RDF. DE@8RX,B`DE@xRX,B`C(1) The RDF Element <rdf:RDF> DE@8,B`CThe RDF element is the root of the RDF document. It defines the XML document to be an RDF document and contains a reference to the xmlns:rdf namespace: DERX,V8RX,B` C  osg DE@`--&X,G osg#*(-V_L@ cip$cip$(-(-$U??????U ((--(-B`C@The root element of an RDF document must always be the <rdf:RDF> element, and the root element must always have a reference to the RDF namespace: D7HpETRX,RRX,B`,Chttp://www.w3.org/1999/02/22-rdf-syntax-ns# D+E@RX,B`.C(2) The Description Element <rdf:Description> D-E@8,B`.CThe Description element describes a resource. DE@(RX,B`-CThe about attribute identifies the resource. D E@PRX,B`5CProperty elements are used to describe the resource: DE@x#RX,B` C  osg DE@- X XJX,G osg#*( XV_L@ cip$cip$( X( X$U,??????U (( X X( XB`iC The property elements (artist, country, company, price, and year) are defined in the namespace xmln:cd. DERX,U@RX,B`CThis namespace is outside RDF (and not a part of RDF). RDF defines only the framework. Properties must be defined by someone else (company, organisation, person, etc). DEhRX,WRX,B`C(3) Properties as Attributes DE@Ь8,B`FCProperties can also be expressed as attributes (instead of elements): DE@RX,B` C  osg DE@ lHlH=X,G osg#*lHV_L@ cip$cip$lHlH$T6$??????U lHlHlHB`CIn the example above, the properties (artist, country, company, price, and year) are expressed as attributes instead of elements.(}l8 ; abbreviated syntax) DERX,U@RX,B`CresourceX property| element\ \XՔ D ōl8(serialization syntax)|, ōl8tǘ }l8tǘ RDF  X\ t@ P l8 ٳ|X. 췘 ōl8t t T }0 }. DEhRX,HRX,}RX,B`=C; W3C RDF validator : SiRPAC(Simple RDF Parser and Compiler) DE@'RX,B`C(4) Properties as Resources DE@818,B`/CProperties can also be expressed as resources: DE@`@RX,B` C  osg DE@J]]OX,G osg#*(]V_L@ cip$cip$(](]$U.??????U ((]](]B`C In the example above, the property artist does not have a value, but a reference to a resource containing information about the artist. DERX,VȴRX,B`DE@RX,B` C@4. RDF Container Elements DE@` ` ,B`BC@Bag, Sequence, and Alternative are containers for other elements. D E@@ RX,B`DE@8,B`C(1) The Bag Element <rdf:Bag> DE@8,B`>CThe Bag element contains an unordered list of value elements: D%E@(RX,B` C  osg DE@(2hhtXX,G osg#*(hV_L@ cip$cip$(h(h$U4??????U ((hh(h B`ZC@ In the example above, the property element <cd:artist> contains a "bag" of artist values. DE@xRX,B`C(2) The Seq Element <rdf:Seq> DE@8,B`<CThe Seq element contains an ordered list of value elements: D#E@(RX,B` C  osg DE@PLhLhXX,G osg#*ܪLhV_L@ cip$cip$ܪLhܪLh$nU&4??????U ܪܪLhLhܪLh B`fC In the example above, the property element <cd:artist> contains an ordered sequence of artist values. DE܇RX,WRX,B`DE@DRX,B`C(3) The Alt Element <rdf:Alt> DE@8,B`FCThe Alt element contains a list of alternative values for an element: D#.E@(RX,B` C  osg DE@PbbSX,G osg#*bV_L@ cip$cip$bb$TV1??????U bbb B`fC In the example above, the property element <cd:format>, contains a list of alternative format values. DE<RX,W|RX,B`DE@RX,B`#C`;  8 \ 8 X   lT(reification) DE@̜RX,B`9C  " RDF Ɛ(resource)X type<\ 8(statement)D `  . DE@RX,B`eC | 䴴  Ryan@ KRG ƬtǸ klh%http://www.turningweb.com/indexklhX 1| й\ .  t, D$CERX,W\RX,Gklh%(%http://www.turningweb.com/index;1;0;0g`B`C osg DE@xxX,G osgCjUxm`L` noc$noc$UxUx?< ??????lle$nil$cer$cer$L Plle$hf0/< ??????Ym?v)Y7@??UAH@ 3^B`CKRG DE@RX[B`$CƬtǸ http://www.turning.com/indexX D!E@@RX[B`C1t. DE@ RX[P~4xhx~4U "3% L Pnil$^ dd%z ?@? @????(\BX@{Gz???UAN@ddL Pcer$s|" *?@@?$@????PB?@??UAH@ T B`CRyan DE@RX O|"|" L Pcer$ bK   ?@?@????n????!@H@  B`Csaid DE@RX OK K B`UC % rdf:predicate : xT\ 8X ƘX 1D ļX 1@ ƘX 8 \ 1D \\ t. D*E<RX,@|RX,B`NC % rdf:subject : xT\ 8 Xt 0  D ļX 1@ ƘX 8 1  t. D,ERX,?RX,B`;C` % rdf:object : xT\ 8X 1D ļXp 1@ ƘX 8X $ ȸt. D E@ RX,B`TC % rdf:type : \ X typeD 0 Xp, lT\ 8@ RDF:StatementX xǤ 4Ѥt. D3EMPE4 RX,FRX,B`C  osg DE@( ?>?>4X,G osgCj?>`L`noc$noc$?>?>J??????lle$nil$nil$nil$nil$lle$lle$cer$nil$cer$lle$cer$cer$cer$cer$cer$L lle$z7Nz7/?@?Ϲ@?????8???UAP z7 L Pnil$ nz?@?@????????UAN@L Pnil$Eu| @'| ?z@?@????Y&\#@U?@??UAN@| uL Pnil$pH!dd(# ?@?@????33333Y@{Gz???UAN@ddL Pnil$3D$&'N, n? @?@????@@??UAN@'L Plle$Y5 8, 8, j?}@?j@????????UAH@ 8B`C`http://www.turningweb.com/ D E@  6Pj8j̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥL Plle$\8, 8, j?6@?@????????UAH@ 8B`#C`http://purl.org.de/element/Creator D E@  6Pj8j̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥL Pcer$Z,{7? 2Un?@?@????g8?7=ո??Of?UAH@ 2B`CKnowledge Presentation Group D E@  t0O{7{7? ? L Pnil$xj)= Z?x@?@????@@??UAN@= L Pcer$N7k kZ5 -?N@?@?????L???UAH@ kB`CRyan D E@  4Okk L Plle$B >]g .3??????\4ӓ?HG?@??UAH@ >]B`4Chttp://www.w3.org/1999/02/22-rdf-synax-ns#Statement D E@  [P !tBt !̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥL Pcer$ | $n? @?@????3Y????U@H@ B` C rdf:type D E@   O$$L Pcer$Y@$}> n?@@?@????oE????U@H@ }B` Crdf:subject D E@  DO$$L Pcer$HZ$< n?@?Z@????Q-c????U@H@ <B`Crdf:predicate D E@  O$$L Pcer$D*$Vn?%@? @????M????U@H@ VB` C`rdf:object D E@   O$$L Pcer$,$Vn?޽@?e@????M????U@H@ VB`Csaid D E@   O$$B`DE@NRX,B`C`; t }0 l´ ɩ l8 DE@XRX,B`C  osg DE@bvvX,G osgCj~v`Lnoc$noc$~v~vD?????? lle$nil$lle$nil$nil$cer$cer$cer$cer$cer$L Plle$`)$/? ??@????.I'?nB???UAH@ /B`C@http://www.turningweb.com D E@  -P)L Pnil$)0ddW?@?@????R1F@??UAN@ddL Plle$A`)$E? "?a@?@????-VoD?nB???UAH@ EB`!C http://www.turningweb.com/ID1129 D E@  CP)L Pnil$RE  Z,?T@?@????@s6@0~?[A?V?UAN@ L Pnil$l , # d?@?>@????GnFn?@0zy???UAN@, # L Pcer$ Cs  ?@?s@???? k?dU 3.???UAH@ B`CRyan D E@  O L Pcer$)cs U&*?@@?s@????"Zg?dU 3.???UAH@ U&B`CRyan@turningweb.com D E@  $O L Pcer$Y+  ?@????? k?oD???U@H@ B`Ccreator D E@  O L Pcer$J   ?@?ʧ@???? k?dU 3.???U@H@ B`Cname D E@  O L Pcer$Wj   ?@?ʧ@???? k?dU 3.???U@H@ B`Cemail D E@  O B`FC <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-nsw#" DE@RX,B`8C xmlns:dc="http://purl.org/dc/element/1.1/" DE@ՒRX,B`4C xmlns:tw="http://www.turningweb.com" > DE@RX,B`LC <rdf:description rdf:about="klh%http://www.turningweb.comklh"> D(AE@%RX,Gklh%(http://www.turningweb.com;1;0;0`B`C <dc:creator> DE@MRX,B`ZC@ <rdf:description rdf:about="klh%http://www.turningweb.com/IDklh1129"> D /!KE@uRX,G0klh%("http://www.turningweb.com/ID;1;0;0`B`)C  <tw:name> Ryan </tw:name> DE@RX,B`JC@ <tw:email> klh%Ryan@turningweb.comklh </tw:email> D"5E@RX,Gklh%( mailto:Ryan@turningweb.com;2;0;0`B`C </rdf:description> DE@RX,B`C </dc:creator> DE@RX,B`C </rdf:description> DE@=RXstLggf0sn(((```8pyzi iE ũ y NN\\Κ 9 ũ9I 9zy%\%%Vzy%鉹9ɩz9 E ?Y89xt@=ᤧt .+'Kp,4V VP8ᒂDEފZӜUYO0R|D)u 7gT4NkW Yյ)D XՔ tǸ (by Blueland) " http://www.w3schools.com/ RDF/RDFS \ tt| ճ0 \ tǸ ,B`C </rdf:RDF> DE@eRX,B` DE@` ` ,B` C5. RDF Schema DE@` ` ,B`#C`RDF Schema is an extension to RDF. DE@@ RX,B`DE@RX,B`'C(1) RDF Schema and Application Classes D&E@8,B`>CRDF describes resources with classes, properties, and values. DE@#RX,B`CIn addition, RDF also need a way to define application-specific classes and properties. Application-specific classes and properties must be defined using extensions to RDF DE(-RX,Xh3RX,B`"C@One such extension is RDF Schema. DE@=RX,B`C(2) RDF Schema (RDFS) DE@G8,B`PC RDF Schema does not provide actual application-specific classes and properties. D"E@VRX,B`bC@ Instead RDF Schema provides the framework to describe application-specific classes and properties D-5EaRX,WHgRX,B`CClasses in RDF Schema is much like classes in object oriented programming languages. This allows resources to be defined as instances of classes, and subclasses of classes. DEpqRX,UwRX,B`C (3) RDFS Example DE@؁8,B`@CThe following example demonstrates some of the RDFS facilities: DE@RX,B` C  osg DE@vvdX,G osg#*v _L@ cip$cip$Բv$\VG;??-"?n???U ԲԲԲ B`[C` In the example above, the resources "horse" and "dog" is a subclass of the class "animal". DE|RX,QRX,B`C(4) Example Abbreviated DE@8,B`CSince an RDFS class is an RDF resource we can abbreviate the example above by using rdfs:Class instead if rdf:Description, and drop the rdf:type information: DE(RX,ThRX,B` C  osg DE@^a^aRX,G osg#*,^a _L@ cip$cip$pb,^a$X0??ݮK?T ???U pbpbpb B` C`That's it! DE@.RX,B`DE@VRX,B` C`6. RDF Dublin Core DE@` ` ,B`pCThe Dublin Core provides properties for describing network objects, suitable for use by network search engines. DE@ RX,XRX,B`DE@RX,B`C(1) The Dublin Core DE@8,B`RC@ RDF is metadata (data about data). RDF is used to describe information resources. D*E@@)RX,B`LC The Dublin Core is a set of predefined properties for describing documents. DE@h3RX,B`C`The first Dublin Core properties were defined at the Metadata Workshop in Dublin, Ohio in 1995 and is currently maintained by the klh%Dublin Core Metadata Initiativeklh. D5VGklh%http\://dublincore.org/;1;0;0;e_B` C  lbt DE@MuudX,G lbt#*tf_M@H` %%B` C Property D E @RX H` [[B` C `Definition D E @RX|H` % %B` C Contributor D E @RX H` [ [B`NC An entity responsible for making contributions to the content of the resource D E RX|ARX|H` %%B` C Coverage D E @RX H` [[B`3C `The extent or scope of the content of the resource D E @RX|H` % %B`C Creator D E @RX H` [ [B`GC An entity primarily responsible for making the content of the resource D E RX|>RX|H` %%B`C Format D E @RX H` [[B`6C The physical or digital manifestation of the resource D E @RX|H` %%B`C Date D E @RX H` [[B`4C A date of an event in the lifecycle of the resource D E @RX|H` %%B` C Description D E @RX H` [[B`*C @An account of the content of the resource D E @RX|H` % %B` C `Identifier D E @RX H` [ [B`@C An unambiguous reference to the resource within a given context D E RX|8RX|H` %%B` C Language D E @RX H` [[B`7C A language of the intellectual content of the resource D E @RX|H` %%B` C @Publisher D E @RX H`  [[B`8C An entity responsible for making the resource available D E @RX|H` %%B` C Relation D E @RX H`  [[B`"C @A reference to a related resource D E @RX|H` %%B`C Rights D E @RX H`  [[B`7C Information about rights held in and over the resource D E @RX|H` % %B`C Source D E @RX H`  [ [B`EC A Reference to a resource from which the present resource is derived D E RX|=RX|H` %%B`C Subject D E @RX H`  [[B`'C A topic of the content of the resource D E @RX|H` %%B`C Title D E @RX H` 9[[B`C A name given to the resource D E @RX|H` %%B`C Type D E @RX H` [[B`3C `The nature or genre of the content of the resource D E @RX|B`fC A quick look at the table above indicates that RDF is ideal for representing Dublin Core information. DERX,Y2RX,B`C (2) RDFS Example DE@8,B`BC@The following example demonstrates the use of Dublin Core in RDF: DE@(RX,B` C  osg DE@PvgvgWX,G osg#*,vg|_L@ cip$cip$r,vg$X3??l?ćl ???U rrrB` DE@` ` ,B` C 7. RDF Reference DE@F` ` ,B` DE@R,B` C(1) The RDF and RDFS Namespaces DE@6h,B`.CThe RDF namespace (xmlns:rdf) used by RDF is: DE@R,B`<Cklh%http://www.w3.org/1999/02/22-rdf-syntax-ns#klh D3Gklh%6http\://www.w3schools.com/rdf/rdf-syntax-ns.xml;1;0;0;_B`0CThe RDFS namespace (xmlns:rdfs )used by RDF is: DE@ֻR,B`6Cklh%http://www.w3.org/2000/01/rdf-schema#klh D-GPklh%3http\://www.w3schools.com/rdf/rdf-schema.xml;1;0;0;_B`$C(2) The RDF Extension and Mime Type DE@h,B`{C`The recommended extension for RDF files is *.rdf, but *.xml is often used to provide compatibility with older xml parsers. D+06;E^R,UR,B`7CThe registered mime type should be application/rdf+xml D#E@R,B`C(3) RDFS / RDF Classes DE@h,B` C  lbt DE@X ~~k,G lbt#*}_MH` 66B`C Element D E @RX1H` 66B` C Class of D E @RX1H` 66B` C Subclass of D E @RX1H` 66B` C `rdfs:Class D E @RX1H` 66B` C All classes D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C rdfs:Datatype D E @RX1H` 66B` C `Data types D E @RX1H` 66B`C Class D E @RX1H` 66B`C rdfs:Resource D E @RX1H` 66B`C All resources D E @RX1H` 66B`C Class D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C rdfs:Container D E @RX1H` 66B` C `Containers D E @RX1H` 66B` C Resource D E @RX1H` 6 6B` C rdfs:Literal D E @RX1H` 6 6B`"C @Literal values (text and numbers) D E RX1RX1H` 6 6B` C Resource D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B` C rdf:List D E @RX1H`  66B`C Lists D E @RX1H`  66B` C Resource D E @RX1H` 66B` C rdf:Property D E @RX1H`  66B` C `Properties D E @RX1H`  66B` C Resource D E @RX1H` 66B`C rdf:Statement D E @RX1H`  66B` C `Statements D E @RX1H`  66B` C Resource D E @RX1H` 66B`C @ D E @RX1H`  66B`C @ D E @RX1H`  66B`C @ D E @RX1H` 66B`C rdf:Alt D E @RX1H`  66B`C `Containers of alternatives D E @RX1H`  66B` C @Container D E @RX1H` 66B`C rdf:Bag D E @RX1H` 66B`C Unordered containers D E @RX1H` 66B` C @Container D E @RX1H` 66B`C rdf:Seq D E @RX1H` 66B`C `Ordered containers D E @RX1H` 66B` C @Container D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 6 6B`!C rdfs:ContainerMembershipProperty D E RX1RX1H` 6 6B` C Container membership properties D E RX1RX1H` 6 6B` C Property D E @RX1H` 66B`C rdf:XMLLiteral D E @RX1H` 66B`C `XML literal values D E @RX1H` 66B`C Literal D E @RX1B`C@(4) RDFS / RDF Properties DE@h,B` C  lbt DE@X ,G lbt#*_MH` v)v)B`C Element D E @RX$H` hhB`C Domain D E @RXH` hhB`C Range D E @RXH` \=\=B` C Description D E @RX8H` v)v)B` C rdfs:domain D E @RX$H` hhB` C Property D E @RXH` hhB`C Class D E @RXH` \=\=B`C `The domain of the resource D E @RX8H` v)bv)B` C `rdfs:range D E @RX$H` hbhB` C Property D E @RXH` hbhB`C Class D E @RXH` \=b\=B`C @The range of the resource D E @RX8H` v) v)B`C `rdfs:subPropertyOf D E @RX$H` h hB` C Property D E @RXH` h hB` C Property D E @RXH` \= \=B`-C The property is a sub property of a property D E RX8RX8H` v)v)B`C @ D E @RX$H` hhB`C @ D E @RXH` hhB`C @ D E @RXH` \=\=B`C @ D E @RX8H` v) v)B`C rdfs:subClassOf D E @RX$H` h hB`C Class D E @RXH` h hB`C Class D E @RXH` \= \=B`&C The resource is a subclass of a class D E RX8RX8H` v)q v)B` C rdfs:comment D E @RX$H` hq hB` C Resource D E @RXH` hq hB`C Literal D E @RXH` \=q \=B`/C The human readable description of the resource D E RX8RX8H` v)V v)B` C `rdfs:label D E @RX$H` hV hB` C Resource D E @RXH` hV hB`C Literal D E @RXH` \=V \=B`1C The human readable label (name) of the resource D E RX8RX8H` v)bv)B`C rdfs:isDefinedBy D E @RX$H` hbhB` C Resource D E @RXH` hbhB` C Resource D E @RXH` \=b\=B`C The definition of the resource D E @RX8H` v) v)B` C rdfs:seeAlso D E @RX$H`  h hB` C Resource D E @RXH`  h hB` C Resource D E @RXH`  \= \=B`.C The additional information about the resource D E RX8RX8H` v)bv)B` C rdfs:member D E @RX$H`  hbhB` C Resource D E @RXH`  hbhB` C Resource D E @RXH`  \=b\=B`C `The member of the resource D E @RX8H` v)v)B`C @ D E @RX$H`  hhB`C @ D E @RXH`  hhB`C @ D E @RXH`  \=\=B`C @ D E @RX8H` v)v)B` C @rdf:first D E @RX$H`  hhB`C List D E @RXH`  hhB` C Resource D E @RXH`  \=\=B`C @ D E @RX8H` v)v)B` C rdf:rest D E @RX$H`  hhB`C List D E @RXH`  hhB`C List D E @RXH`  \=\=B`C @ D E @RX8H` v)- v)B` C rdf:subject D E @RX$H` h- hB` C @Statement D E @RXH` h- hB` C Resource D E @RXH` \=- \=B`0C The subject of the resource in an RDF Statement D E RX8RX8H` v)~v)B`C rdf:predicate D E @RX$H` h~hB` C @Statement D E @RXH` h~hB` C Resource D E @RXH` \=~\=B`2C @The predicate of the resource in an RDF Statement D E RX8RX8(` RX8H` v) v)B` C `rdf:object D E @RX$H` h hB` C `Statement D E @RXH` h hB` C Resource D E @RXH` \= \=B`/C The object of the resource in an RDF Statement D E RX8RX8H` v)9v)B` C @rdf:value D E @RX$H` h9hB` C Resource D E @RXH` h9hB` C Resource D E @RXH` \=9\=B`C The property used for values D E @RX8H` v) v)B` C rdf:type D E @RX$H` h hB` C Resource D E @RXH` h hB`C Class D E @RXH` \= \=B`'C The resource is an instance of a class D E RX8RX8B`C`(5) RDF Attributes DE@h,B` C@ lbt DE@X {y,G lbt#*э _MH` *9*B`C Element D E @RX%H` 9B`C Domain D E @RXLH` 9B`C Range D E @RX0H` OG9OGB` C Description D E @RXBH` **B`C @ D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB`C @ D E @RXBH` * *B` C @rdf:about D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H` OG OGB`%C Defines the resource being described D E RXBRXBH` * *B`C rdf:Description D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H` OG OGB`,C Container for the description of a resource D E RXB#RXBH` * *B` C rdf:resource D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H` OG OGB`*C @Defines a resource to identify a property D E RXB!RXBH` * *B` C rdf:datatype D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H` OG OGB`$C Defines the data type of an element D E RXBRXBH` **B`C rdf:ID D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB`C Defines the ID of an element D E @RXBH` **B`C rdf:li D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB`C Defines a list D E @RXBH` **B`C rdf:_n D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB`C Defines a node D E @RXBH` * *B` C `rdf:nodeID D E @RX%H`   B`C @ D E @RXLH`   B`C @ D E @RX0H`  OG OGB`"C @Defines the ID of an element node D E RXBRXBH` * *B`C rdf:parseType D E @RX%H`   B`C @ D E @RXLH`   B`C @ D E @RX0H`  OG OGB`(C Defines how an element should be parsed D E RXBRXBH` **B`C rdf:RDF D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H`  OGOGB`C The root of an RDF document D E @RXBH` **B` C xml:base D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H`  OGOGB`C Defines the XML base D E @RXBH` * *B` C xml:lang D E @RX%H`   B`C @ D E @RXLH`   B`C @ D E @RX0H`  OG OGB`,C Defines the language of the element content D E RXBRXBH` **B`C @ D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB`C @ D E @RXBH` **B`C rdf:aboutEach D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB` C @(removed) D E @RXBH` **B`C rdf:aboutEachPrefix D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB` C @(removed) D E @RXBH` **B` C @rdf:bagID D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB` C @(removed) D E @RXBB`JC@ Elements described as (removed) are removed from the latest RDF standard. DE@R,B`DE@R,B` C8. Introduction to OWL DE@#` ` ,B`2C@OWL is a language for processing web information. DE@cRX,B`DE@RX,B`!C (1) What You Should Already Know D E@8,B`[C` Before you study OWL you should have a basic understanding of XML, XML Namespaces and RDF. DE#RX,RcRX,B`9C If you want to study these subjects first, please visit: DE@RX,B`JC@ klh%W3Schools' XML Tutorialklh and klh%RDF Tutorialklh. D4@Gklh%0http\://www.w3schools.com/xml/default.asp;1;0;0;_Gklh%0http\://www.w3schools.com/rdf/default.asp;1;0;0;_B`C (2) What is OWL? DE@8,B`&COWL stands for Web Ontology Language DE@RX t&B`COWL is built on top of RDF DE@RX t&B`.COWL is for processing information on the web DE@@RX t&B`1C OWL was designed to be interpreted by computers DE@ RX t&B`/COWL was not designed for being read by people DE@RX t&B`COWL is written in XML DE@RX t&B`COWL has three sublanguages DE@@RX t&B`COWL is a web standard DE@%RX t&B`DE@+RX tB`C(3) What is Ontology? DE@28,B`KC` Ontology is about the exact description of things and their relationships. DE@(ARX,B`sC`For the web, ontology is about the exact description of web information and relationships between web information. DEPKRX,ZQRX,B` C(4) Why OWL? D E@[8,B`=COWL is a part of the "Semantic Web Vision" - a future where: DE@jRX,B`#C`Web information has exact meaning DE@uRX t&B`/CWeb information can be processed by computers DE@H{RX t&B`2C@Computers can integrate information from the web DE@RX t&B`DE@ȇRX tB`0C(5) OWL was Designed for Processing Information DE@8,B`oC OWL was designed to provide a common way to process the content of web information (instead of displaying it). DE0RX,SpRX,B`JC@ OWL was designed to be read by computer applications (instead of humans). DE@RX,B`C(6) OWL is Different from RDF DE@8,B`wCOWL and RDF are much of the same thing, but OWL is a stronger language with greater machine interpretability than RDF. DERX,T(RX,B`AC OWL comes with a larger vocabulary and stronger syntax than RDF. DE@PRX,B`C(7) OWL Sublanguages DE@x8,B`COWL has three sublanguages: DE@RX,B` C@OWL Lite DE@RX t&B`COWL DL (includes OWL Lite) DE@RX t&B`COWL Full (includes OWL DL) DE@HRX t&B`DE@ RX tB`C@(8) OWL is Written in XML DE@8,B`CBy using XML, OWL information can easily be exchanged between different types of computers using different types of operating system and application languages. DE(RX,QhRX,B`C@(9) OWL Example (Airport) DE@8,B`KC` OWL Resource: klh%http://www.daml.org/2001/10/html/airport-ontklh D BGpklh%4http\://www.daml.org/2001/10/html/airport-ont;1;0;0;_B` CClass: klh%Airportklh DG klh%ehttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#Airport;0;0;0;_B` CProperties: D E@CRX,B`C`klh%elevationklh DG klh%ghttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#elevation;0;0;0;_B`C@klh%iataCodeklh DG klh%fhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#iataCode;0;0;0;_B`C@klh%icaoCodeklh DG klh%fhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#icaoCode;0;0;0;_B`C@klh%latitudeklh DG klh%fhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#latitude;0;0;0;_B`C@klh%locationklh DG klh%fhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#location;0;0;0;_B`C`klh%longitudeklh DG klh%ghttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#longitude;0;0;0;_B`Cklh%nameklh D G0 klh%bhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#name;0;0;0;_B`/C Produced using klh%dumpont2.javaklh D%Gpklh%,http\://www.daml.org/2003/09/dumpont/;1;0;0;_B` C  lbt DG lbt#*8 _H`8!RB`O C <\> OWL Resource: klh%http://www.daml.org/2001/10/html/airport-ontklh D FG pklh%4http\://www.daml.org/2001/10/html/airport-ont;1;0;0;_M`H`B B` C <rdf:RDF D E @X,B`;C ` xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" D :E @X,B`5C  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" D 4E @X,B`.C  xmlns:owl="http://www.w3.org/2002/07/owl#" D -E @ X,B`:C @ xml:base="http://www.daml.org/2001/10/html/airport-ont"> D 9E @X,B`D E @X,B`C <owl:Ontology rdf:about=""> D E @X,B`aC <owl:versionInfo>$Id: airport-ont.daml,v 1.1 2002/03/14 06:24:16 mdean Exp $</owl:versionInfo> D `E X,M X,B`'C  <rdfs:comment>Airport</rdfs:comment> D &E @X,B`C </owl:Ontology> D E @(#X,B`D E @&X,B`C <rdfs:Class rdf:ID="Airport"> D E @0*X,B`C  <rdfs:subClassOf> D E @-X,B`C  <owl:Restriction> D E @81X,B`-C  <owl:onProperty rdf:resource="#name"/> D ,E @4X,B`RC @ <owl:allValuesFrom քքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  ddddddddddddd @dddddddddddddd (((@dddddddddddddd @dddddddddddddd (((@dddddddddddddd` (((@dddddddddddddd ((((((@dddddddddddddd ((((((@dddddddBMi 6(cPi քքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~7BM 6(bX քքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք                          ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~BM6(DQքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{BM 6(Gd` քքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  !BMr 6(Ecpr քքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""" " " " " """"""""""""""""""" "!"""#"$"%"&"'"(")"*"+","-"."/"0"1"2"3"4"5"6"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""######### # # # # ################### #!#"###$#%#&#'#(#)#*#+#,#-#.#/#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~##################################################################################################################################$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z${$|$}$~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~BM66(E@քքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&& & & & & &&&&&&&&&&&&&&&&&&& &!&"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&1&2&3&4&5&6&7&8&9&:&;&<&=&>&?&@&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&X&Y&Z&[&\&]&^&_&`&a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z&{&|&}&~&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''' ' ' ' ' ''''''''''''''''''' '!'"'#'$'%'&'''(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'<'='>'?'@'A'B'C'D'E'F'G'H'I'J'K'L'M'N'O'P'Q'R'S'T'U'V'W'X'Y'Z'['\']'^'_'`'a'b'c'd'e'f'g'h'i'j'k'l'm'n'o'p'q'r's't'u'v'w'x'y'z'{'|'}'~''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((( ( ( ( ( ((((((((((((((((((( (!("(#($(%(&('((()(*(+(,(-(.(/(0(1(2(3(4(5(6(7(8(9(:(;(<(=(>(?(@(A(B(C(D(E(F(G(H(I(J(K(L(M(N(O(P(Q(R(S(T(U(V(W(X(Y(Z([(\(](^(_(`(a(b(c(d(e(f(g(h(i(j(k(l(m(n(o(p(q(r(s(t(u(v(w(x(y(z({(|(}(~(((!!!!!!!! ! ! ! !!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!2!3!4!5!6!7!8!9!:!;!!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~!!!BM 6(DԎքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք)))))))) ) ) ) ) ))))))))))))))))))) )!)")#)$)%)&)')()))*)+),)-).)/)0)1)2)3)4)5)6)7)8)9):);)<)=)>)?)@)A)B)C)D)E)F)G)H)I)J)K)L)M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)[)\)])^)_)`)a)b)c)d)e)f)g)h)i)j)k)l)m)n)o)p)q)r)s)t)u)v)w)x)y)z){)|)})~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))********* * * * * ******************* *!*"*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*[*\*]*^*_*`*a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*{*|*}*~**********************************************************************************************************************************+++++++++ + + + + +++++++++++++++++++ +!+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3+4+5+6+7+8+9+:+;+<+=+>+?+@+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+[+\+]+^+_+`+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+{+|+}+~++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,, , , , , ,,,,,,,,,,,,,,,,,,, ,!,",#,$,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\,],^,_,`,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,{,|,},~,,,%%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%{%|%}%~%%%BM6(E-քքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք-------- - - - - ------------------- -!-"-#-$-%-&-'-(-)-*-+-,---.-/-0-1-2-3-4-5-6-7-8-9-:-;-<-=->-?-@-A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-[-\-]-^-_-`-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-{-|-}-~----------------------------------------------------------------------------------------------------------------------------------......... . . . . ................... .!.".#.$.%.&.'.(.).*.+.,.-.../.0.1.2.3.4.5.6.7.8.9.:.;.<.=.>.?.@.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.[.\.].^._.`.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.{.|.}.~...(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()BM&6(E&քքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք//////// / / / / /////////////////// /!/"/#/$/%/&/'/(/)/*/+/,/-/.///0/1/2/3/4/5/6/7/8/9/:/;//?/@/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/[/\/]/^/_/`/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/{/|/}/~//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////000000000 0 0 0 0 0000000000000000000 0!0"0#0$0%0&0'0(0)0*0+0,0-0.0/000102030405060708090:0;0<0=0>0?0@0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111 1 1 1 1 1111111111111111111 1!1"1#1$1%1&1'1(1)1*1+1,1-1.1/101112131415161718191:1;1<1=1>1?1@1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\1]1^1_1`1a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1{1|1}1~1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222 2 2 2 2 2222222222222222222 2!2"2#2$2%2&2'2(2)2*2+2,2-2.2/202122232425262728292:2;2<2=2>2?2@2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X2Y2Z2[2\2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2{2|2}2~2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222333333333 3 3 3 3 3333333333333333333 3!3"3#3$3%3&3'3(3)3*3+3,3-3.3/303132333435363738393:3;3<3=3>3?3@3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3R3S3T3U3V3W3X3Y3Z3[3\3]3^3_3`3a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}3~3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444 4 4 4 4 4444444444444444444 4!4"4#4$4%4&4'4(4)4*4+4,4-4.4/404142434445464748494:4;4<4=4>4?4@4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4V4W4X4Y4Z4[4\4]4^4_4`4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4{4|4}4~44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-BMvN 6(E@N քքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքք................................................................................................................./66666666 6 6 6 6 6666666666666666666 6!6"6#6$6%6&6'6(6)6*6+6,6-6.6/606162636465666768696:6;6<6=6>6?6@6A6B6C6D6E6F6G6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6\6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6{6|6}6~6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666755555555 5 5 5 5 5555555555555555555 5!5"5#5$5%5&5'5(5)5*5+5,5-5.5/505152535455565758595:5;5<5=5>5?5@5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5\5]5^5_5`5a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{5|5}577777777 7 7 7 7 7777777777777777777 7!7"7#7$7%7&7'7(7)7*7+7,7-7.7/707172737475767778797:7;7<7=7>7?7@7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z7[7\7]7^7_7`7a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7r7s7t7u7v7w7x7y7z7{7|7}7~7775555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555556BM6(Qعքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքքicon3.gif for use in UBB (C) 1999 Philipp Esselbach (ple@gmx.net) http://www.ntgamepalace.iscool.net!  ,KI+t< Dy0ppq xn@fC$GX4DTxR+#"Zt IZS[fKkS;mF\Y[~g>YX&c.Jed(L7C-B.[=/WQGIF89aD43f333f3333f3ffffff3f̙3f3f333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f3333333f3333f3ffffff3f33ff3fddddddd ((((((@dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd @dddddddddddddd (((@dddddddddddddd @dddddddddddddd (((@dddddddddddddd @dddddddddddddd @dddddddddddddd3f3f3fff3ffffffffffff3ffff̙fff3fffffff3ffffff3f333f3333f3ffffff3f̙̙3̙f̙̙̙̙3f3f̙333f3̙333f3fff̙fff3f̙̙3f̙3f̙3f333f3333f3ffffff3f̙3f3f!,D4 H*\ȰÇ#JHAVaԘ1ŏ 7f 1P +RBr#ȇHFJ_RF{TY> 4D Ȍ\A3P2Ӧ'p'Y0$å[)=AM%Q2n򲋢vK0"Lw)a{@cV1ƥQR,{-7`e ,B6 *GEdabxZ1Z,٣v WUBTȘ1"T ,^<]F .F]LR[bdTydScثո>!+hB/kRY&}ivI 9KѤ;Q0NgOyym%i Je z+EF Db BO9Hn7.N:Pμꃖncys]dyӝOV U_Mth-gB$hZK0Mv>4'0Px!b .y|*IX! Rdܨ4S UcPYP(Dd=j(АP2tL3uPDO pKmXXXIkGBQ2\Qd&M*Z:3G1>$(Ygzk}.ΐʿ'\!5K)"iO[ " http://www.w3schools.com/rdf/default.asp II. RDF Tutorial RDF Tutorial <><The Resource Description Framework (RDF) isgF)V5Ê (r#b E?4=l(,YdˉJ 뱢,n%rcGM 4 XKT'lݐa=;ZJ;$(Y1_Rd[nФI)na =\(9G7s8?8@8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8\8]8^8_8`8a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}8~888R,B`#C`klh%6. RDF Dublin Coreklh DE@R,GPklh%3http\://www.w3schools.com/rdf/rdf_dublin.asp;1;0;0;_B`2C@This chapter explains the Dublin Core initiative. DE@@R,B`!C klh%7. RDF Referenceklh DE@'R,Gklh%6http\://www.w3schools.com/rdf/rdf_reference.asp;1;0;0;_B`0CThis chapter contains a complete RDF reference. DE@,R,B`Cklh%8. RDF / OWLklh DE@ 5R,Gklh%0http\://www.w3schools.com/rdf/rdf_owl.asp;1;0;0;_B`=CThis chapter describes the OWL language built on top of RDF. D<E@9R,B` DE@hB` ` ,B` C1. Introduction to RDF DE@M` ` ,B`DCRDF is a language for representing information about web resources. DE@XRX,B`DE@(_RX,B`!C (1) What You Should Already Know D E@he8,B`VC Before you study RDF you should have a basic understanding of XML and XML Namespaces. DEpRX,JvRX,B`aC If you want to study these subjects first, please visit klh%W3Schools' XML Tutorialklh. D@WE@RX,Gklh%0http\://www.w3schools.com/xml/default.asp;1;0;0;_B`C (2) What is RDF? DE@88,B`/CRDF stands for Resource Description Framework DE@`RX t&B`,CRDF is for describing resources on the web DE@RX t&B`)C RDF is designed to be read by computers DE@RX t&B`3C`RDF is not designed for being displayed to people DE@ RX t&B`)C RDF uses URIs to identify web resources DE@`RX t&B`4CRDF uses property values to describe web resources DE@RX t&B`6CRDF uses the terms resources, properties, and values DE@RX t&B`=CRDF also uses the the terms subject, predicates and objects DE@ RX t&B`*C@RDF is written in XML (XMLD tǩt RDF| lh) DE@`RX t&B`CRDF is a web standard DE@RX t&B`C@ DE@RX tB`,C(3) RDF is Designed to be Read by Computers DE@ 8,B`~CRDF was designed to provide a common way to describe information so it can be read (and understood) by computer applications. DKSEHRX,SRX,B`>CRDF descriptions are not designed to be displayed on the web. DE@RX,B`DE@RX,B`C(4) Examples of Use DE@8,B`GCDescribing properties for shopping items, like price and availability DE@(RX t&B`*C@Describing time schedules for web events DE@hRX t&B`[C` Describing information about web pages, like created and modified date, title, and author DERX t&S!RX tB`0CDescribing content and rating for web pictures DE@((RX t&B`'CDescribing content for search engines DE@h.RX t&B`!C Describing electronic libraries DE@4RX t&B`DE@:RX tB`.C (5) URIs to Identify, Properties to Describe DE@(A8,B`rC@RDF uses a URI (Uniform Resource Identifier) to identify a web resource, and properties to describe the resource. D MWEPPRX,[VRX,B`cC` The following example describes the resource klh%http://www.w3schools.com/default.aspklh: D5YE@`RX,Gpklh%,http\://www.w3schools.com/default.asp;1;0;0;_B`=C osg The example is simplified. Namespaces are omitted. DE@jttX,G osg#*tt_L@ cip$cip$tttt$::??????U ttttttB` C  osg DE@u33n+X,G osg#*3V_L@ cip$cip$33$V??????U 333B`:C@'In the example above, the URI "http://www.w3schools.com/default.asp" is used to identify a web page, the property "author" describes the author of the page, and the property value is "Jan Egil Refsnes". The property "created" tells when the page was created, and the property "modified" when it was last modified. DiqE RX,[,RX,lRX, RX,B`-C(6) RDF pt0 x-resources, properties, values DE@8,B`UC RDF terminology use the words resources, properties and values. (3-tuple(=triple)lp) D')38>E@RX,B`C@Semantic Web p.13 DE@$RX,B`CIn the above example: DE@LRX,B`FCklh%http://www.w3schools.com/default.aspklh is the resource D,<DE@tRX t&Gpklh%,http\://www.w3schools.com/default.asp;1;0;0;_B`$CThe element <author> is a property D"E@RX t&B`(CThe value "Jan Egil Refsnes" is a value DE@RX t&B`DE@4 RX,B`DE@RX,B`C0 xܴ@ Dl 0 DE@( RX,B`DE@PRX,B`%C osg DEx44,X,URX,G osgCjm4$`L noc$noc$m4m46Pu?????? noc$cer$nil$nil$nil$cer$cer$lle$cer$cer$cer$L noc$(+Eu:?@????? ????cer$cer$cer$LPcer$(+<.<.?@????? ????????!@H@ 'B` C Resource DE@RX$O<.<.LPcer$dY<.<.?Y@????? ????????!@H@ 'B` C property DE@RX$O<.<.LPcer$<.<.?@????? ????????!@H@ 'B`Cvalue DE@RX$O<.<.L Pcer$U  e/?@k@?@????p@ W @?Ъ]H?8@H@ B`Cauthor DE@RX O eeL Pnil$Mddp?q@?@????zGr@Q?0x4?UUUUUU?UAN@ddL Pnil$M T pP1*?@e@?Ƿ@????@@??UAN@ T L Pnil$M px\ ?@e@?@????@@?ai?UAN@ L Pcer$x\ ev-] /?@?Ҷ@????vw @ W @?Ъ]H?8@H@ B`Ccreated DE@RXO eeL Pcer$K! e+ /?@?@????d @ W @?Ъ]H?8@H@ B` C modified DE@RXO eeL Plle$HJ~&t?@?H@????7@Ygu??t?UAH@ ?MB`%Chttp://www.w3schools.com/default.asp D$E@RXKP_%J_% L Pcer$Cl-[h?@?@????@@??UAH@ -B`C Jan Egil Refsnes DE@RX+O--L Pcer$Cl -[h?@??@????@@??UAH@ -B`C November 1, 1999 DE@RX+O--L Pcer$Cl6--[h?@?@????@@??UAH@ -B`C February 1, 2004 DE@RX+O--B`,C(7) RDF pt0 x-Subjects, Predicates Objects DE@_8,B`ECRDF terminology also use the words subjects, predicates and objects. DE@ oRX,B`FC; subjects(=resources), predicates(=properties) and objects(=values). DE@2yRX,B`CIn the above example: DE@ZRX,B`RC@ The resource klh%http://www.w3schools.com/default.aspklh is the subject D9IPE@RX t&Gpklh%,http\://www.w3schools.com/default.asp;1;0;0;_B`(CThe property "author" is the predicate D&E@“RX t&B`,CThe value "Jan Egil Refsnes" is the object D$*E@RX t&B`DE@B8,B`C@(8) RDF is Written in XML DE@j8,B`{C`As you can see from the example above, an RDF document is written in XML. The XML language used by RDF is called RDF/XML. DERX,RRX,B`CBy using XML, RDF information can easily be exchanged between different types of computers using different types of operating system and application languages. DERX,Q:RX,B` C  lbt DE@bddX,G lbt#*J'`MH` n B`D E @RXlH` Un UB`C XML D E @RXTH` EDn EDB`C RDF D E @RX(CH` n B`C `x D E @RXlH` Un UB` C T\ Ҭɥըx D E @RXTH` EDn EDB` C X Ĭɥ x D E @RX(CH` n B`C ¤ȹ D E @RXlH` Un UB`C 8 t- XML8X lp| x D E @RXTH` EDn EDB`C Xt - X| x D E @RX(CB`_C D \XՔp Ǵ XMLt l8 Ĭ5 pt0X lp| XXՔ p tǩ, RDF X Ĭ5 \D \ 0D \. \ 8DȄ DERX,4F RX,B`C@(9) RDF is a Web Standard DE@8,B`NC RDF became a W3C (World Wide Web Consortium) Recommendation in February 2004. DE@(RX,B`CA W3C Recommendation is understood by the industry and the web community as a web standard. A W3C Recommendation is a stable specification developed by a W3C Working Group and reviewed by the W3C Membership. D EPRX,RRX,%RX,B` C2. RDF Example DE@/` ` ,B`DE@8;R,B`C(1) RDF Example DE@?h,B`/CThis is a few lines from a list of CD records: DE@XHR,B` C  lbt DE@P,G lbt#*|1_MH` ( (B`C Title D E @R&H` T&T&B`C Artist D E @R`$H` B`C Country D E @RH` B`C Company D E @RH` B`C Price D E @RH` B`C Year D E @RH` ( (B`C Empire Burlesque D E @R&H` T&T&B` C @Bob Dylan D E @R`$H` B`C USA D E @RH` B` C Columbia D E @RH` B`C 10.90 D E @RH` B`C 1985 D E @RH` (9(B`C Hide your heart D E @R&H` T&9T&B` C Bonnie Tyler D E @R`$H` 9B`C `UK D E @RH` 9B` C CBS Records D E @RH` 9B`C 9.90 D E @RH` 9B`C 1988 D E @RH` ( (B`C ... D E @R&H` T& T&B`C @ D E @R`$H`  B`C @ D E @RH`  B`C @ D E @RH`  B`C @ D E @RH`  B`C @ D E @RB`KC` This is a few lines of an XML file with a reference to an RDF description: DE@MpR,B` C  osg DE@x|||,G osg#*(|V_L@ cip$cip$(|(|$U>I??????U ((||(|B`SC` The first line in the XML file is the XML declaration, telling the version of XML. DE@R,B`hC The rdf:RDF element (starting with rfd:RDF and ending with /rdf:RDF) indicates that the content is RDF. D ER,XH R,B`C`The xmlns:rdf namespace, specifies that tags with the rdf: prefix are from the namespace defined by "http://www.w3.org/1999/02/22-rdf-syntax-ns#". D ER,YR,B`CThe xmlns:cd namespace, specifies that tags with the cd: prefix are from the namespace defined by "http://www.recshop.fake/cd". D E(#R,W'R,B`C`The rdf:Description element (starting with rdf:Description and ending with /rdf:Description) contains the description of a resource identified by the rdf:about attribute. DEp0R,] 5R,B`YC The cd:artist element describes a property of the resource, and so does cd:country, etc. D E@=R,B`"C@(2) Resources, Properties, Values DE@PFh,B`^C When you think of RDF, think the following sentence: "Resources have Properties with Values". DERR,UXWR,B`%CFrom the example above you can read: DE@_R,B`wCThe Resource: http://www.recshop.fake/cd/Hide your heart" has a Property called "artist" with the value "Bonnie Tyler" DEhR,Y8mR,B`nC The Resource: http://www.recshop.fake/cd/Hide your heart" has a Property called "price" with the value "9.90" DEuR,XzR,B`HC Or like humans would normally say: "The CD Hide your heart costs $9.90" DGE@R,B`DE@R,B` C3. RDF Main Elements DE@H` ` ,B` DE@R,B`;C`This chapter describes the most important elements of RDF. DE@8RX,B`DE@xRX,B`C(1) The RDF Element <rdf:RDF> DE@8,B`CThe RDF element is the root of the RDF document. It defines the XML document to be an RDF document and contains a reference to the xmlns:rdf namespace: DERX,V8RX,B` C  osg DE@`--&X,G osg#*(-V_L@ cip$cip$(-(-$U??????U ((--(-B`C@The root element of an RDF document must always be the <rdf:RDF> element, and the root element must always have a reference to the RDF namespace: D7HpETRX,RRX,B`,Chttp://www.w3.org/1999/02/22-rdf-syntax-ns# D+E@RX,B`.C(2) The Description Element <rdf:Description> D-E@8,B`.CThe Description element describes a resource. DE@(RX,B`-CThe about attribute identifies the resource. D E@PRX,B`5CProperty elements are used to describe the resource: DE@x#RX,B` C  osg DE@- X XJX,G osg#*( XV_L@ cip$cip$( X( X$U,??????U (( X X( XB`iC The property elements (artist, country, company, price, and year) are defined in the namespace xmln:cd. DERX,U@RX,B`CThis namespace is outside RDF (and not a part of RDF). RDF defines only the framework. Properties must be defined by someone else (company, organisation, person, etc). DEhRX,WRX,B`C(3) Properties as Attributes DE@Ь8,B`FCProperties can also be expressed as attributes (instead of elements): DE@RX,B` C  osg DE@ lHlH=X,G osg#*lHV_L@ cip$cip$lHlH$T6$??????U lHlHlHB`CIn the example above, the properties (artist, country, company, price, and year) are expressed as attributes instead of elements.(}l8 ; abbreviated syntax) DERX,U@RX,B`CresourceX property| element\ \XՔ D ōl8(serialization syntax)|, ōl8tǘ }l8tǘ RDF  X\ t@ P l8 ٳ|X. 췘 ōl8t t T }0 }. DEhRX,HRX,}RX,B`=C; W3C RDF validator : SiRPAC(Simple RDF Parser and Compiler) DE@'RX,B`C(4) Properties as Resources DE@818,B`/CProperties can also be expressed as resources: DE@`@RX,B` C  osg DE@J]]OX,G osg#*(]V_L@ cip$cip$(](]$U.??????U ((]](]B`C In the example above, the property artist does not have a value, but a reference to a resource containing information about the artist. DERX,VȴRX,B`DE@RX,B` C@4. RDF Container Elements DE@` ` ,B`BC@Bag, Sequence, and Alternative are containers for other elements. D E@@ RX,B`DE@8,B`C(1) The Bag Element <rdf:Bag> DE@8,B`>CThe Bag element contains an unordered list of value elements: D%E@(RX,B` C  osg DE@(2hhtXX,G osg#*(hV_L@ cip$cip$(h(h$U4??????U ((hh(h B`ZC@ In the example above, the property element <cd:artist> contains a "bag" of artist values. DE@xRX,B`C(2) The Seq Element <rdf:Seq> DE@8,B`<CThe Seq element contains an ordered list of value elements: D#E@(RX,B` C  osg DE@PLhLhXX,G osg#*ܪLhV_L@ cip$cip$ܪLhܪLh$nU&4??????U ܪܪLhLhܪLh B`fC In the example above, the property element <cd:artist> contains an ordered sequence of artist values. DE܇RX,WRX,B`DE@DRX,B`C(3) The Alt Element <rdf:Alt> DE@8,B`FCThe Alt element contains a list of alternative values for an element: D#.E@(RX,B` C  osg DE@PbbSX,G osg#*bV_L@ cip$cip$bb$TV1??????U bbb B`fC In the example above, the property element <cd:format>, contains a list of alternative format values. DE<RX,W|RX,B`DE@RX,B`#C`;  8 \ 8 X   lT(reification) DE@̜RX,B`9C  " RDF Ɛ(resource)X type<\ 8(statement)D `  . DE@RX,B`eC | 䴴  Ryan@ KRG ƬtǸ klh%http://www.turningweb.com/indexklhX 1| й\ .  t, D$CERX,W\RX,Gklh%(%http://www.turningweb.com/index;1;0;0g`B`C osg DE@xxX,G osgCjUxm`L` noc$noc$UxUx?< ??????lle$nil$cer$cer$L Plle$hf0/< ??????Ym?v)Y7@??UAH@ 3^B`CKRG DE@RX[B`$CƬtǸ http://www.turning.com/indexX D!E@@RX[B`C1t. DE@ RX[P~4xhx~4U "3% L Pnil$^ dd%z ?@? @????(\BX@{Gz???UAN@ddL Pcer$s|" *?@@?$@????PB?@??UAH@ T B`CRyan DE@RX O|"|" L Pcer$ bK   ?@?@????n????!@H@  B`Csaid DE@RX OK K B`UC % rdf:predicate : xT\ 8X ƘX 1D ļX 1@ ƘX 8 \ 1D \\ t. D*E<RX,@|RX,B`NC % rdf:subject : xT\ 8 Xt 0  D ļX 1@ ƘX 8 1  t. D,ERX,?RX,B`;C` % rdf:object : xT\ 8X 1D ļXp 1@ ƘX 8X $ ȸt. D E@ RX,B`TC % rdf:type : \ X typeD 0 Xp, lT\ 8@ RDF:StatementX xǤ 4Ѥt. D3EMPE4 RX,FRX,B`C  osg DE@( ?>?>4X,G osgCj?>`L`noc$noc$?>?>J??????lle$nil$nil$nil$nil$lle$lle$cer$nil$cer$lle$cer$cer$cer$cer$cer$L lle$z7Nz7/?@?Ϲ@?????8???UAP z7 L Pnil$ nz?@?@????????UAN@L Pnil$Eu| @'| ?z@?@????Y&\#@U?@??UAN@| uL Pnil$pH!dd(# ?@?@????33333Y@{Gz???UAN@ddL Pnil$3D$&'N, n? @?@????@@??UAN@'L Plle$Y5 8, 8, j?}@?j@????????UAH@ 8B`C`http://www.turningweb.com/ D E@  6Pj8j̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥL Plle$\8, 8, j?6@?@????????UAH@ 8B`#C`http://purl.org.de/element/Creator D E@  6Pj8j̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥL Pcer$Z,{7? 2Un?@?@????g8?7=ո??Of?UAH@ 2B`CKnowledge Presentation Group D E@  t0O{7{7? ? L Pnil$xj)= Z?x@?@????@@??UAN@= L Pcer$N7k kZ5 -?N@?@?????L???UAH@ kB`CRyan D E@  4Okk L Plle$B >]g .3??????\4ӓ?HG?@??UAH@ >]B`4Chttp://www.w3.org/1999/02/22-rdf-synax-ns#Statement D E@  [P !tBt !̥ͥΥϥХѥҥӥԥե֥ץإ٥ڥL Pcer$ | $n? @?@????3Y????U@H@ B` C rdf:type D E@   O$$L Pcer$Y@$}> n?@@?@????oE????U@H@ }B` Crdf:subject D E@  DO$$L Pcer$HZ$< n?@?Z@????Q-c????U@H@ <B`Crdf:predicate D E@  O$$L Pcer$D*$Vn?%@? @????M????U@H@ VB` C`rdf:object D E@   O$$L Pcer$,$Vn?޽@?e@????M????U@H@ VB`Csaid D E@   O$$B`DE@NRX,B`C`; t }0 l´ ɩ l8 DE@XRX,B`C  osg DE@bvvX,G osgCj~v`Lnoc$noc$~v~vD?????? lle$nil$lle$nil$nil$cer$cer$cer$cer$cer$L Plle$`)$/? ??@????.I'?nB???UAH@ /B`C@http://www.turningweb.com D E@  -P)L Pnil$)0ddW?@?@????R1F@??UAN@ddL Plle$A`)$E? "?a@?@????-VoD?nB???UAH@ EB`!C http://www.turningweb.com/ID1129 D E@  CP)L Pnil$RE  Z,?T@?@????@s6@0~?[A?V?UAN@ L Pnil$l , # d?@?>@????GnFn?@0zy???UAN@, # L Pcer$ Cs  ?@?s@???? k?dU 3.???UAH@ B`CRyan D E@  O L Pcer$)cs U&*?@@?s@????"Zg?dU 3.???UAH@ U&B`CRyan@turningweb.com D E@  $O L Pcer$Y+  ?@????? k?oD???U@H@ B`Ccreator D E@  O L Pcer$J   ?@?ʧ@???? k?dU 3.???U@H@ B`Cname D E@  O L Pcer$Wj   ?@?ʧ@???? k?dU 3.???U@H@ B`Cemail D E@  O B`FC <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-nsw#" DE@RX,B`8C xmlns:dc="http://purl.org/dc/element/1.1/" DE@ՒRX,B`4C xmlns:tw="http://www.turningweb.com" > DE@RX,B`LC <rdf:description rdf:about="klh%http://www.turningweb.comklh"> D(AE@%RX,Gklh%(http://www.turningweb.com;1;0;0`B`C <dc:creator> DE@MRX,B`ZC@ <rdf:description rdf:about="klh%http://www.turningweb.com/IDklh1129"> D /!KE@uRX,G0klh%("http://www.turningweb.com/ID;1;0;0`B`)C  <tw:name> Ryan </tw:name> DE@RX,B`JC@ <tw:email> klh%Ryan@turningweb.comklh </tw:email> D"5E@RX,Gklh%( mailto:Ryan@turningweb.com;2;0;0`B`C </rdf:description> DE@RX,B`C </dc:creator> DE@RX,B`C </rdf:description> DE@=RX,B`C </rdf:RDF> DE@eRX,B` DE@` ` ,B` C5. RDF Schema DE@` ` ,B`#C`RDF Schema is an extension to RDF. DE@@ RX,B`DE@RX,B`'C(1) RDF Schema and Application Classes D&E@8,B`>CRDF describes resources with classes, properties, and values. DE@#RX,B`CIn addition, RDF also need a way to define application-specific classes and properties. Application-specific classes and properties must be defined using extensions to RDF DE(-RX,Xh3RX,B`"C@One such extension is RDF Schema. DE@=RX,B`C(2) RDF Schema (RDFS) DE@G8,B`PC RDF Schema does not provide actual application-specific classes and properties. D"E@VRX,B`bC@ Instead RDF Schema provides the framework to describe application-specific classes and properties D-5EaRX,WHgRX,B`CClasses in RDF Schema is much like classes in object oriented programming languages. This allows resources to be defined as instances of clas8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888889ses, and subclasses of classes. DEpqRX,UwRX,B`C (3) RDFS Example DE@؁8,B`@CThe following example demonstrates some of the RDFS facilities: DE@RX,B` C  osg DE@vvdX,G osg#*v _L@ cip$cip$Բv$\VG;??-"?n???U ԲԲԲ B`[C` In the example above, the resources "horse" and "dog" is a subclass of the class "animal". DE|RX,QRX,B`C(4) Example Abbreviated DE@8,B`CSince an RDFS class is an RDF resource we can abbreviate the example above by using rdfs:Class instead if rdf:Description, and drop the rdf:type information: DE(RX,ThRX,B` C  osg DE@^a^aRX,G osg#*,^a _L@ cip$cip$pb,^a$X0??ݮK?T ???U pbpbpb B` C`That's it! DE@.RX,B`DE@VRX,B` C`6. RDF Dublin Core DE@` ` ,B`pCThe Dublin Core provides properties for describing network objects, suitable for use by network search engines. DE@ RX,XRX,B`DE@RX,B`C(1) The Dublin Core DE@8,B`RC@ RDF is metadata (data about data). RDF is used to describe information resources. D*E@@)RX,B`LC The Dublin Core is a set of predefined properties for describing documents. DE@h3RX,B`C`The first Dublin Core properties were defined at the Metadata Workshop in Dublin, Ohio in 1995 and is currently maintained by the klh%Dublin Core Metadata Initiativeklh. D5VE=RX,ZCRX,Gklh%http\://dublincore.org/;1;0;0;e_B` C  lbt DE@MuudX,G lbt#*tf_M@H` %%B` C Property D E @RX H` [[B` C `Definition D E @RX|H` % %B` C Contributor D E @RX H` [ [B`NC An entity responsible for making contributions to the content of the resource D E RX|ARX|H` %%B` C Coverage D E @RX H` [[B`3C `The extent or scope of the content of the resource D E @RX|H` % %B`C Creator D E @RX H` [ [B`GC An entity primarily responsible for making the content of the resource D E RX|>RX|H` %%B`C Format D E @RX H` [[B`6C The physical or digital manifestation of the resource D E @RX|H` %%B`C Date D E @RX H` [[B`4C A date of an event in the lifecycle of the resource D E @RX|H` %%B` C Description D E @RX H` [[B`*C @An account of the content of the resource D E @RX|H` % %B` C `Identifier D E @RX H` [ [B`@C An unambiguous reference to the resource within a given context D E RX|8RX|H` %%B` C Language D E @RX H` [[B`7C A language of the intellectual content of the resource D E @RX|H` %%B` C @Publisher D E @RX H`  [[B`8C An entity responsible for making the resource available D E @RX|H` %%B` C Relation D E @RX H`  [[B`"C @A reference to a related resource D E @RX|H` %%B`C Rights D E @RX H`  [[B`7C Information about rights held in and over the resource D E @RX|H` % %B`C Source D E @RX H`  [ [B`EC A Reference to a resource from which the present resource is derived D E RX|=RX|H` %%B`C Subject D E @RX H`  [[B`'C A topic of the content of the resource D E @RX|H` %%B`C Title D E @RX H` [[B`C A name given to the resource D E @RX|H` %%B`C Type D E @RX H` [[B`3C `The nature or genre of the content of the resource D E @RX|B`fC A quick look at the table above indicates that RDF is ideal for representing Dublin Core information. DERX,Y2RX,B`C (2) RDFS Example DE@8,B`BC@The following example demonstrates the use of Dublin Core in RDF: DE@(RX,B` C  osg DE@PvgvgWX,G osg#*,vg|_L@ cip$cip$r,vg$X3??l?ćl ???U rrrB` DE@` ` ,B` C 7. RDF Reference DE@F` ` ,B` DE@R,B` C(1) The RDF and RDFS Namespaces DE@6h,B`.CThe RDF namespace (xmlns:rdf) used by RDF is: DE@R,B`<Cklh%http://www.w3.org/1999/02/22-rdf-syntax-ns#klh D3E@>R,Gklh%6http\://www.w3schools.com/rdf/rdf-syntax-ns.xml;1;0;0;_B`0CThe RDFS namespace (xmlns:rdfs )used by RDF is: DE@ֻR,B`6Cklh%http://www.w3.org/2000/01/rdf-schema#klh D-E@nR,GPklh%3http\://www.w3schools.com/rdf/rdf-schema.xml;1;0;0;_B`$C(2) The RDF Extension and Mime Type DE@h,B`{C`The recommended extension for RDF files is *.rdf, but *.xml is often used to provide compatibility with older xml parsers. D+06;E^R,UR,B`7CThe registered mime type should be application/rdf+xml D#E@R,B`C(3) RDFS / RDF Classes DE@h,B` C  lbt DE@X ~~k,G lbt#*}_MH` 66B`C Element D E @RX1H` 66B` C Class of D E @RX1H` 66B` C Subclass of D E @RX1H` 66B` C `rdfs:Class D E @RX1H` 66B` C All classes D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C rdfs:Datatype D E @RX1H` 66B` C `Data types D E @RX1H` 66B`C Class D E @RX1H` 66B`C rdfs:Resource D E @RX1H` 66B`C All resources D E @RX1H` 66B`C Class D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C rdfs:Container D E @RX1H` 66B` C `Containers D E @RX1H` 66B` C Resource D E @RX1H` 6 6B` C rdfs:Literal D E @RX1H` 6 6B`"C @Literal values (text and numbers) D E RX1RX1H` 6 6B` C Resource D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B` C rdf:List D E @RX1H`  66B`C Lists D E @RX1H`  66B` C Resource D E @RX1H` 66B` C rdf:Property D E @RX1H`  66B` C `Properties D E @RX1H`  66B` C Resource D E @RX1H` 66B`C rdf:Statement D E @RX1H`  66B` C `Statements D E @RX1H`  66B` C Resource D E @RX1H` 66B`C @ D E @RX1H`  66B`C @ D E @RX1H`  66B`C @ D E @RX1H` 66B`C rdf:Alt D E @RX1H`  66B`C `Containers of alternatives D E @RX1H`  66B` C @Container D E @RX1H` 66B`C rdf:Bag D E @RX1H` 66B`C Unordered containers D E @RX1H` 66B` C @Container D E @RX1H` 66B`C rdf:Seq D E @RX1H` 66B`C `Ordered containers D E @RX1H` 66B` C @Container D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 66B`C @ D E @RX1H` 6 6B`!C rdfs:ContainerMembershipProperty D E RX1RX1H` 6 6B` C Container membership properties D E RX1RX1H` 6 6B` C Property D E @RX1H` 66B`C rdf:XMLLiteral D E @RX1H` 66B`C `XML literal values D E @RX1H` 66B`C Literal D E @RX1B`C@(4) RDFS / RDF Properties DE@h,B` C  lbt DE@X ,G lbt#*_MH` v)v)B`C Element D E @RX$H` hhB`C Domain D E @RXH` hhB`C Range D E @RXH` \=\=B` C Description D E @RX8H` v)v)B` C rdfs:domain D E @RX$H` hhB` C Property D E @RXH` hhB`C Class D E @RXH` \=\=B`C `The domain of the resource D E @RX8H` v)bv)B` C `rdfs:range D E @RX$H` hbhB` C Property D E @RXH` hbhB`C Class D E @RXH` \=b\=B`C @The range of the resource D E @RX8H` v) v)B`C `rdfs:subPropertyOf D E @RX$H` h hB` C Property D E @RXH` h hB` C Property D E @RXH` \= \=B`-C The property is a sub property of a property D E RX8RX8H` v)v)B`C @ D E @RX$H` hhB`C @ D E @RXH` hhB`C @ D E @RXH` \=\=B`C @ D E @RX8H` v) v)B`C rdfs:subClassOf D E @RX$H` h hB`C Class D E @RXH` h hB`C Class D E @RXH` \= \=B`&C The resource is a subclass of a class D E RX8RX8H` v)q v)B` C rdfs:comment D E @RX$H` hq hB` C Resource D E @RXH` hq hB`C Literal D E @RXH` \=q \=B`/C The human readable description of the resource D E RX8RX8H` v)V v)B` C `rdfs:label D E @RX$H` hV hB` C Resource D E @RXH` hV hB`C Literal D E @RXH` \=V \=B`1C The human readable label (name) of the resource D E RX8RX8H` v)bv)B`C rdfs:isDefinedBy D E @RX$H` hbhB` C Resource D E @RXH` hbhB` C Resource D E @RXH` \=b\=B`C The definition of the resource D E @RX8H` v) v)B` C rdfs:seeAlso D E @RX$H`  h hB` C Resource D E @RXH`  h hB` C Resource D E @RXH`  \= \=B`.C The additional information about the resource D E RX8RX8H` v)bv)B` C rdfs:member D E @RX$H`  hbhB` C Resource D E @RXH`  hbhB` C Resource D E @RXH`  \=b\=B`C `The member of the resource D E @RX8H` v)v)B`C @ D E @RX$H`  hhB`C @ D E @RXH`  hhB`C @ D E @RXH`  \=\=B`C @ D E @RX8H` v)v)B` C @rdf:first D E @RX$H`  hhB`C List D E @RXH`  hhB` C Resource D E @RXH`  \=\=B`C @ D E @RX8H` v)v)B` C rdf:rest D E @RX$H`  hhB`C List D E @RXH`  hhB`C List D E @RXH`  \=\=B`C @ D E @RX8H` v)- v)B` C rdf:subject D E @RX$H` h- hB` C @Statement D E @RXH` h- hB` C Resource D E @RXH` \=- \=B`0C The subject of the resource in an RDF Statement D E RX8RX8H` v)~v)B`C rdf:predicate D E @RX$H` h~hB` C @Statement D E @RXH` h~hB` C Resource D E @RXH` \=~\=B`2C @The predicate of the resource in an RDF Statement D E RX8RX8(` RX8H` v) v)B` C `rdf:object D E @RX$H` h hB` C `Statement D E @RXH` h hB` C Resource D E @RXH` \= \=B`/C The object of the resource in an RDF Statement D E RX8RX8H` v)9v)B` C @rdf:value D E @RX$H` h9hB` C Resource D E @RXH` h9hB` C Resource D E @RXH` \=9\=B`C The property used for values D E @RX8H` v) v)B` C rdf:type D E @RX$H` h hB` C Resource D E @RXH` h hB`C Class D E @RXH` \= \=B`'C The resource is an instance of a class D E RX8RX8B`C`(5) RDF Attributes DE@h,B` C@ lbt DE@X {y,G lbt#*э _MH` *9*B`C Element D E @RX%H` 9B`C Domain D E @RXLH` 9B`C Range D E @RX0H` OG9OGB` C Description D E @RXBH` **B`C @ D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB`C @ D E @RXBH` * *B` C @rdf:about D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H` OG OGB`%C Defines the resource being described D E RXBRXBH` * *B`C rdf:Description D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H` OG OGB`,C Container for the description of a resource D E RXB#RXBH` * *B` C rdf:resource D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H` OG OGB`*C @Defines a resource to identify a property D E RXB!RXBH` * *B` C rdf:datatype D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H` OG OGB`$C Defines the data type of an element D E RXBRXBH` **B`C rdf:ID D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB`C Defines the ID of an element D E @RXBH` **B`C rdf:li D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB`C Defines a list D E @RXBH` **B`C rdf:_n D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB`C Defines a node D E @RXBH` * *B` C `rdf:nodeID D E @RX%H`   B`C @ D E @RXLH`   B`C @ D E @RX0H`  OG OGB`"C @Defines the ID of an element node D E RXBRXBH` * *B`C rdf:parseType D E @RX%H`   B`C @ D E @RXLH`   B`C @ D E @RX0H`  OG OGB`(C Defines how an element should be parsed D E RXBRXBH` **B`C rdf:RDF D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H`  OGOGB`C The root of an RDF document D E @RXBH` **B` C xml:base D E @RX%H`  B`C @ D E @RXLH`  B`C @ D E @RX0H`  OGOGB`C Defines the XML base D E @RXBH` * *B` C xml:lang D E @RX%H`   B`C @ D E @RXLH`   B`C @ D E @RX0H`  OG OGB`,C Defines the language of the element content D E RXBRXBH` **B`C @ D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB`C @ D E @RXBH` **B`C rdf:aboutEach D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB` C @(removed) D E @RXBH` **B`C rdf:aboutEachPrefix D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB` C @(removed) D E @RXBH` **B` C @rdf:bagID D E @RX%H` B`C @ D E @RXLH` B`C @ D E @RX0H` OGOGB` C @(removed) D E @RXBB`JC@ Elements described as (removed) are removed from the latest RDF standard. DE@R,B`DE@R,B` C8. Introduction to OWL DE@#` ` ,B`2C@OWL is a language for processing web information. DE@cRX,B`DE@RX,B`!C (1) What You Should Already Know D E@8,B`[C` Before you study OWL you should have a basic understanding of XML, XML Namespaces and RDF. DE#RX,RcRX,B`9C If you want to study these subjects first, please visit: DE@RX,B`JC@ klh%W3Schools' XML Tutorialklh and klh%RDF Tutorialklh. D4@E@RX,Gklh%0http\://www.w3schools.com/xml/default.asp;1;0;0;_Gklh%0http\://www.w3schools.com/rdf/default.asp;1;0;0;_B`C (2) What is OWL? DE@8,B`&COWL stands for Web Ontology Language DE@RX t&B`COWL is built on top of RDF DE@RX t&B`.COWL is for processing information on the web DE@@RX t&B`1C OWL was designed to be interpreted by computers DE@ RX t&B`/COWL was not designed for being read by people DE@RX t&B`COWL is written in XML DE@RX t&B`COWL has three sublanguages DE@@RX t&B`COWL is a web standard DE@%RX t&B`DE@+RX tB`C(3) What is Ontology? DE@28,B`KC` Ontology is about the exact description of things and their relationships. DE@(ARX,B`sC`For the web, ontology is about the exact description of web information and relationships between web information. DEPKRX,ZQRX,B` C(4) Why OWL? D E@[8,B`=COWL is a part of the "Semantic Web Vision" - a future where: DE@jRX,B`#C`Web information has exact meaning DE@uRX t&B`/CWeb information can be processed by computers DE@H{RX t&B`2C@Computers can integrate information from the web DE@RX t&B`DE@ȇRX tB`0C(5) OWL was Designed for Processing Information DE@8,B`oC OWL was designed to provide a common way to process the content of web information (instead of displaying it). DE0RX,SpRX,B`JC@ OWL was designed to be read by computer applications (instead of humans). DE@RX,B`C(6) OWL is Different from RDF DE@8,B`wCOWL and RDF are much of the same thing, but OWL is a stronger language with greater machine interpretability than RDF. DERX,T(RX,B`AC OWL comes with a larger vocabulary and stronger syntax than RDF. DE@PRX,B`C(7) OWL Sublanguages DE@x8,B`COWL has three sublanguages: DE@RX,B` C@OWL Lite DE@RX t&B`COWL DL (includes OWL Lite) DE@RX t&B`COWL Full (includes OWL DL) DE@HRX t&B`DE@ RX tB`C@(8) OWL is Written in XML DE@8,B`CBy using XML, OWL information can easily be exchanged between different types of computers using different types of operating system and application languages. DE(RX,QhRX,B`C@(9) OWL Example (Airport) DE@8,B`KC` OWL Resource: klh%http://www.daml.org/2001/10/html/airport-ontklh D BE@.RX,Gpklh%4http\://www.daml.org/2001/10/html/airport-ont;1;0;0;_B` CClass: klh%Airportklh DE@8RX,G klh%ehttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#Airport;0;0;0;_B` CProperties: D E@CRX,B`C`klh%elevationklh DE@0MRX t&G klh%ghttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#elevation;0;0;0;_B`C@klh%iataCodeklh DE@pSRX t&G klh%fhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#iataCode;0;0;0;_B`C@klh%icaoCodeklh DE@YRX t&G klh%fhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#icaoCode;0;0;0;_B`C@klh%latitudeklh DE@_RX t&G klh%fhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#latitude;0;0;0;_B`C@klh%locationklh DE@0fRX t&G klh%fhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#location;0;0;0;_B`C`klh%longitudeklh DE@plRX t&G klh%ghttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#longitude;0;0;0;_B`Cklh%nameklh D E@rRX t&G0 klh%bhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.daml.org/2001/10/html/airport-ont\#name;0;0;0;_B`/C Produced using klh%dumpont2.javaklh D%E@xRX,Gpklh%,http\://www.daml.org/2003/09/dumpont/;1;0;0;_B` C  lbt DE@;X,G lbt#*( _H`8!RB`O C <\> OWL Resource: klh%http://www.daml.org/2001/10/html/airport-ontklh D FE @RXG pklh%4http\://www.daml.org/2001/10/html/airport-ont;1;0;0;_M`H`B B` C <rdf:RDF D E @X,B`;C ` xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" D :E @X,B`5C  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" D 4E @X,B`.C  xmlns:owl="http://www.w3.org/2002/07/owl#" D -E @ X,B`:C @ xml:base="http://www.daml.org/2001/10/html/airport-ont"> D 9E @X,B`D E @X,B`C <owl:Ontology rdf:about=""> D E @X,B`aC <owl:versionInfo>$Id: airport-ont.daml,v 1.1 2002/03/14 06:24:16 mdean Exp $</owl:versionInfo> D `E X,M X,B`'C  <rdfs:comment>Airport</rdfs:comment> D &E @X,B`C </owl:Ontology> D E @(#X,B`D E @&X,B`C <rdfs:Class rdf:ID="Airport"> D E @0*X,B`C  <rdfs:subClassOf> D E @-X,B`C  <owl:Restriction> D E @81X,B`-C  <owl:onProperty rdf:resource="#name"/> D ,E @4X,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> D QE @@8X,B`C  </owl:Restriction> D E @;X,B`C  </rdfs:subClassOf> D E @H?X,B`C  <rdfs:subClassOf> D E @BX,B`C  <owl:Restriction> D E @PFX,B`1C  <owl:onProperty rdf:resource="#iataCode"/> D 0E @IX,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> D QE @XMX,B`C  </owl:Restriction> D E @PX,B`C  </rdfs:subClassOf> D E @`TX,B`C  <rdfs:subClassOf> D E @WX,B`C  <owl:Restriction> D E @h[X,B`1C  <owl:onProperty rdf:resource="#icaoCode"/> D 0E @^X,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> D QE @pbX,B`C  </owl:Restriction> D E @eX,B`C  </rdfs:subClassOf> D E @xiX,B`C  <rdfs:subClassOf> D E @lX,B`C  <owl:Restriction> D E @pX,B`1C  <owl:onProperty rdf:resource="#location"/> D 0E @tX,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> D QE @wX,B`C  </owl:Restriction> D E @ {X,B`C  </rdfs:subClassOf> D E @~X,B`C  <rdfs:subClassOf> D E @X,B`C  <owl:Restriction> D E @X,B`1C  <owl:onProperty rdf:resource="#latitude"/> D 0E @X,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#double"/> D QE @X,B`C  </owl:Restriction> D E @$X,B`C  </rdfs:subClassOf> D E @X,B`C  <rdfs:subClassOf> D E @,X,B`C  <owl:Restriction> D E @X,B`2C @ <owl:onProperty rdf:resource="#longitude"/> D 1E @4X,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSc9999999 9 9 9 9 9999999999999999999 9!9"9#9$9%9&9'9(9)9*9+9,9-9.9/909192939495969798999:9;9<9=9>9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9[9\9]9^9_9`9a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9{9|9}9~999hema#double"/> D QE @X,B`C  </owl:Restriction> D E @<X,B`C  </rdfs:subClassOf> D E @X,B`C  <rdfs:subClassOf> D E @DX,B`C  <owl:Restriction> D E @ȯX,B`2C @ <owl:onProperty rdf:resource="#elevation"/> D 1E @LX,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#double"/> D QE @жX,B`C  </owl:Restriction> D E @TX,B`C  </rdfs:subClassOf> D E @ؽX,B`C </rdfs:Class> D  E @\X,B`D E @X,B`+C `<owl:DatatypeProperty rdf:ID="elevation"/> D E @dX,B`*C @<owl:DatatypeProperty rdf:ID="iataCode"/> D )E @X,B`*C @<owl:DatatypeProperty rdf:ID="icaoCode"/> D )E @lX,B`*C @<owl:DatatypeProperty rdf:ID="latitude"/> D )E @X,B`*C @<owl:DatatypeProperty rdf:ID="location"/> D )E @tX,B`+C `<owl:DatatypeProperty rdf:ID="longitude"/> D *E @X,B`&C <owl:DatatypeProperty rdf:ID="name"/> D %E @|X,B`D E @X,B` C `</rdf:RDF> D  E @X,B`C ` D E @X,B` C  lbt DE@vv>X,G lbt#*(" _H`8!RB` C <\> Class : Airport D E @RXM`H`? B`D E @X,B` C #<klh%rdf:RDFklh xmlns:rdf="klh%http://www.w3.org/1999/02/22-rdf-syntax-ns#klh" xmlns:rdfs="klh%http://www.w3.org/2000/01/rdf-schema#klh" xmlns:owl="klh%http://www.w3.org/2002/07/owl#klh" xml:base="http://www.daml.org/2001/10/html/airport-ont"> D  ,WuE X,mX, X,G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/1999/02/22-rdf-syntax-ns\#RDF;0;0;0;_G p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/1999/02/22-rdf-syntax-ns\#;0;0;0;_G klh%Vhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#;0;0;0;_G klh%Ohttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#;0;0;0;_B`D E @X,B`,C <klh%owl:Ontologyklh rdf:about=""> D  +E @X,G klh%Whttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Ontology;0;0;0;_B`C  <klh%owl:versionInfoklh>$Id: airport-ont.daml,v 1.1 2002/03/14 06:24:16 mdean Exp $</klh%owl:versionInfoklh> D  hwE X,vX,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#versionInfo;0;0;0;_G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#versionInfo;0;0;0;_B`GC  <klh%rdfs:commentklh>Airport</klh%rdfs:commentklh> D  1=E @ X,G klh%]http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#comment;0;0;0;_G klh%]http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#comment;0;0;0;_B` C </klh%owl:Ontologyklh> D  E @X,G klh%Whttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Ontology;0;0;0;_B`D E @(#X,B`&C <klh%rdfs:Class rdf:ID="Airport"> D  E @&X,G P klh%[http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#Class;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  E @0*X,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  E @-X,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`MC <klh%owl:onPropertyklh rdf:resource="klh%#nameklh"/> D <AE @81X,G  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G klh% \#name;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#stringklh"/> D  ?fE @4X,G p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#string;0;0;0;_B`'C  </klh%owl:Restrictionklh> D E @@8X,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  E @;X,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  E @H?X,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  E @BX,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`QC <klh%owl:onPropertyklh rdf:resource="klh%#iataCodeklh"/> D <EE @PFX,G  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G klh%\#iataCode;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#stringklh"/> D  ?fE @IX,G p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#string;0;0;0;_B`'C  </klh%owl:Restrictionklh> D E @XMX,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  E @PX,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  E @`TX,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  E @WX,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`QC <klh%owl:onPropertyklh rdf:resource="klh%#icaoCodeklh"/> D <EE @h[X,G  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G klh%\#icaoCode;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#stringklh"/> D  ?fE @^X,G p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#string;0;0;0;_B`'C  </klh%owl:Restrictionklh> D E @pbX,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  E @eX,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  E @xiX,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  E @lX,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`QC <klh%owl:onPropertyklh rdf:resource="klh%#locationklh"/> D <EE @pX,G  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G klh%\#location;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#stringklh"/> D  ?fE @tX,G p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#string;0;0;0;_B`'C  </klh%owl:Restrictionklh> D E @wX,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  E @ {X,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  E @~X,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  E @X,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`QC <klh%owl:onPropertyklh rdf:resource="klh%#latitudeklh"/> D <EE @X,G  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G klh%\#latitude;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#doubleklh"/> D  ?fE @X,G p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#double;0;0;0;_B`'C  </klh%owl:Restrictionklh> D E @X,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  E @$X,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  E @X,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  E @,X,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`RC @ <klh%owl:onPropertyklh rdf:resource="klh%#longitudeklh"/> D <FE @X,G  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G 0klh%\#longitude;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#doubleklh"/> D  ?fE @4X,G p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#double;0;0;0;_B`'C  </klh%owl:Restrictionklh> D E @X,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  E @<X,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  E @X,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  E @DX,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`RC @ <klh%owl:onPropertyklh rdf:resource="klh%#elevationklh"/> D <FE @ȯX,G  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G 0klh%\#elevation;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#doubleklh"/> D  ?fE @LX,G p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#double;0;0;0;_B`'C  </klh%owl:Restrictionklh> D E @жX,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  E @TX,G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`C </klh%rdfs:Classklh> D  E @ؽX,G P klh%[http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#Class;0;0;0;_B`D E @\X,B`3C `<klh%owl:DatatypeProperty rdf:ID="elevation"/> D  E @X,G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`2C @<klh%owl:DatatypeProperty rdf:ID="iataCode"/> D  E @dX,G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`2C @<klh%owl:DatatypeProperty rdf:ID="icaoCode"/> D  E @X,G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`2C @<klh%owl:DatatypeProperty rdf:ID="latitude"/> D  E @lX,G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`2C @<klh%owl:DatatypeProperty rdf:ID="location"/> D  E @X,G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`3C `<klh%owl:DatatypeProperty rdf:ID="longitude"/> D  E @tX,G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`.C <klh%owl:DatatypeProperty rdf:ID="name"/> D  E @X,G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`D E @|X,B`C `</klh%rdf:RDFklh> D  E @X,G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/1999/02/22-rdf-syntax-ns\#RDF;0;0;0;_B`EC  klhklhklhklhklhklhklhklh D <E @X,B` C  lbt DE@RXG lbt#*(>_H`8!RB` C @<\> dumpont2.java D E @RXM`H` B`D E @\X,B` C "dumpont is a program to display the class and property hierarchies present in an RDF Schema or klh%DAML+OILklh or klh%OWLklh ontology. This implementation, based on klh%Jena 2klh replaces a klh%previous implementationklh based on RDF API. D goE \X,\\X, \X,G klh%%http\://www.daml.org/language/;1;0;0;_G klh%%http\://www.w3.org/TR/owl-ref/;1;0;0;_G klh%.http\://www.hpl.hp.com/semweb/jena2.htm;1;0;0;_G pklh%,http\://www.daml.org/2001/03/dumpont/;1;0;0;_B`D E @\X,B`D E @`\X,B`)C Following is Source Code <dumpont2.java> D E @@\X,B`D E @ \X,B`<C // $Id: dumpont2.java,v 1.2 2003/11/07 14:46:31 mdean Exp $ D E @\X,B`D E @"\X,B`D E @&\X,B`C /** D E @*\X,B`9C * print class and property hierarchies from an ontology. D 8E @.\X,B`C `*/ D E @`2\X,B`C class dumpont2 D E @@6\X,B`C @{ D E @ :\X,B`C static boolean html = true; D E @>\X,B`CC `static String hyperdaml = "http://www.daml.org/cgi-bin/hyperdaml"; D BE @A\X,B` C static boolean verbose = false; D E @E\X,B`D E @I\X,B`6C static java.util.Stack stack = new java.util.Stack(); D 5E @M\X,B`D E @`Q\X,B`DC static java.util.Comparator comparator = new java.util.Comparator() D CE @@U\X,B`C @{ D E @ Y\X,B`1C  H  public int compare(Object o1, Object o2) D 0E @]\X,B` C @ H  { D  E @`\X,B`;C ` H  return o1.toString().compareTo(o2.toString()); D :E @d\X,B` C @ H  } D  E @h\X,B` C  H  D E @l\X,B`1C  H  public boolean equals(Object comparator) D 0E @`p\X,B` C @ H  { D  E @@t\X,B`C @ H  return false; D E @ x\X,B` C @ H  } D  E @|\X,B` C ` H  }; D  E @\X,B`D E @\X,B`D E @\X,B`C /** D E @\X,B`!C * information about a DAML Class D  E @`\X,B`C `*/ D E @@\X,B`C `static class Class D E @ \X,B`C @{ D E @\X,B`NC H  static java.util.TreeMap classes = new java.util.TreeMap(comparator); D ME @\X,B`0C  H  com.hp.hpl.jena.rdf.arp.AResource node; D /E @\X,B`%C  H  boolean restriction = false; D $E @\X,B`>C  H  java.util.Vector subclasses = new java.util.Vector(); D =E @\X,B`@C  H  java.util.Vector superclasses = new java.util.Vector(); D ?E @`\X,B`JC @ H  java.util.TreeSet properties = new java.util.TreeSet(comparator); D IE @@\X,B`IC H  java.util.TreeSet instances = new java.util.TreeSet(comparator); D HE @ \X,B`D E @\X,B`6C  H  Class(com.hp.hpl.jena.rdf.arp.AResource node) D 5E @\X,B` C @ H  { D  E @\X,B`C  H  this.node = node; D E @\X,B`%C  H  classes.put(node, this); D $E @\X,B` C @ H  } D  E @`\X,B`D E @@\X,B`C  H  void print(int depth) D E @ \X,B` C @ H  { D  E @\X,B`3C ` H  if (restriction || node.isAnonymous()) D 2E @\X,B`C  H   return; D E @\X,B`D E @\X,B`3C ` H  String classFragment = fragment(node); D 2E @\X,B`D E @`\X,B`C  H  if (html) D E @@\X,B`C @ H   { D E @ \X,B`0C  H   System.out.println("<li>"); D /E @\X,B`RC @ H   System.out.println("<a name=" + quoted(classFragment) + ">"); D QE @\X,B`C @ H   } D E @\X,B`C  H  else D E @\X,B`0C  H   for (int i = 0; i < depth; i++) D /E @\X,B`.C  H   System.out.println(" "); D -E @\X,B`jC @ H  System.out.print("<a href=" + quoted(hyperdaml + "?" + node) + ">" + classFragment + "</a>"); D iE \X,a \X,B`D E @\X,B` C  H  // check for cycles D E @`\X,B`&C  H  if (stack.contains(this)) D %E @@\X,B`C @ H   { D E @ \X,B`:C @ H   System.out.println(" ... cycle ..."); D 9E @\X,B`C  H   return; D E @"\X,B`C @ H   } D E @&\X,B`C  H  stack.push(this); D E @*\X,B`D E @.\X,B`C @ H  // properties D E @`2\X,B`$C  H  System.out.print(" ("); D #E @@6\X,B`AC  H  java.util.Iterator iterator = properties.iterator(); D @E @ :\X,B`"C @ H  boolean first = true; D !E @>\X,B`'C  H  while (iterator.hasNext()) D &E @A\X,B`C @ H   { D E @E\X,B`7C  H   Object property = iterator.next(); D 6E @I\X,B`!C  H   if (! first) D  E @M\X,B`0C  H    System.out.print(", "); D /E @`Q\X,B`#C ` H   first = false; D "E @@U\X,B`C  H   if (html) D E @ Y\X,B`C @ H    { D E @]\X,B`BC @ H    String fragment = fragment(property); D AE @`\X,B`mC H    System.out.print("<a href=" + quoted("#" + fragment) + ">" + fragment + "</a>"); D lE d\X,dh\X,B`C @ H    } D E @l\X,B`C  H   else D E @`p\X,B`4C  H    System.out.print(property); D 3E @@t\X,B`C  H    D E @ x\X,B`C @ H   } D E @|\X,B`%C  H  System.out.println(")"); D $E @\X,B`D E @\X,B`C  H  // recurse D E @\X,B`.C  H  iterator = subclasses.iterator(); D -E @\X,B`HC H  java.util.Iterator instanceIterator = instances.iterator(); D GE @`\X,B`$C  H  if (iterator.hasNext() D #E @@\X,B`0C  H   || instanceIterator.hasNext()) D /E @ \X,B`C @ H   { D E @\X,B`C  H   if (html) D E @\X,B`4C  H    System.out.println("<ul>"); D 3E @\X,B`/C  H   while (iterator.hasNext()) D .E @\X,B`C @ H    { D E @\X,B`CC ` H    Class child = (Class) iterator.next(); D BE @`\X,B`4C  H    child.print(depth + 1); D 3E @@\X,B`C @ H    } D E @ \X,B`7C  H   while (instanceIterator.hasNext()) D 6E @\X,B`C @ H    { D E @\X,B`YC H    String instanceFragment = fragment(instanceIterator.next()); D XE @\X,B`&C  H    if (html) D %E @\X,B`"C @ H     { D !E @\X,B`@C  H     System.out.println("<li>"); D ?E @`\X,B`eC H     System.out.println("<a name=" + quoted(instanceFragment) + ">"); D dE @\X,_ \X,B`"C @ H     } D !E @\X,B`!C  H    else D  E @\X,B`@C  H     for (int i = 0; i < depth; i++) D ?E @\X,B`>C  H     System.out.println(" "); D =E @\X,B`PC H    System.out.println("instance " + instanceFragment); D OE @\X,B`C @ H    } D E @`\X,B`C  H   if (html) D E @@\X,B`5C  H    System.out.println("</ul>"); D 4E @ \X,B`C @ H   } D E @\X,B`D E @\X,B`C  H  stack.pop(); D E @\X,B` C @ H  } D  E @\X,B`D E @\X,B`AC  H  static Class get(com.hp.hpl.jena.rdf.arp.AResource node) D @E @\X,B` C @ H  { D  E @\X,B`6C  H  Class retval = (Class) classes.get(node); D 5E @ \X,B` C  H  if (retval == null) D E @\X,B`*C @ H   retval = new Class(node); D )E @`\X,B`C ` H  return retval; D E @@\X,B` C @ H  } D  E @ \X,B`C @} D E @\X,B`D E @"\X,B`C /** D E @&\X,B`$C * information about a DAML Property D #E @*\X,B`C `*/ D E @.\X,B`C static class Property D E @`2\X,B`C @{ D E @@6\X,B`QC H  static java.util.TreeMap properties = new java.util.TreeMap(comparator); D PE @ :\X,B`0C  H  com.hp.hpl.jena.rdf.arp.AResource node; D /E @>\X,B`AC  H  java.util.Vector subproperties = new java.util.Vector(); D @E @A\X,B`CC ` H  java.util.Vector superproperties = new java.util.Vector(); D BE @E\X,B`D E @I\X,B`9C  H  Property(com.hp.hpl.jena.rdf.arp.AResource node) D 8E @M\X,B` C @ H  { D  E @`Q\X,B`C  H  this.node = node; D E @@U\X,B`(C  H  properties.put(node, this); D 'E @ Y\X,B` C @ H  } D  E @]\X,B`D E @`\X,B`C  H  void print(int depth) D E @d\X,B` C @ H  { D  E @h\X,B`6C  H  String propertyFragment = fragment(node); D 5E @l\X,B`D E @`p\X,B`C  H  if (html) D E @@t\X,B`C @ H   { D E @ x\X,B`0C  H   System.out.println("<li>"); D /E @|\X,B`UC H   System.out.println("<a name=" + quoted(propertyFragment) + ">"); D TE @\X,B`C @ H   } D E @\X,B`C  H  else D E @\X,B`0C  H   for (int i = 0; i < depth; i++) D /E @\X,B`.C  H   System.out.println(" "); D -E @`\X,B`mC H  System.out.print("<a href=" + quoted(hyperdaml + "?" + node) + ">" + propertyFragment + "</a>"); D lE @\X,d \X,B`D E @\X,B` C  H  // check for cycles D E @\X,B`&C  H  if (stack.contains(this)) D %E @\X,B`C @ H   { D E @\X,B`:C @ H   System.out.println(" ... cycle ..."); D 9E @\X,B`C  H   return; D E @`\X,B`C @ H   } D E @@\X,B`C  H  stack.push(this); D E @ \X,B`D E @\X,B`"C @ H  System.out.println(); D !E @\X,B`D E @\X,B`C  H  // recurse D E @\X,B`DC  H  java.util.Iterator iterator = subproperties.iterator(); D CE @\X,B`%C  H  if (iterator.hasNext()) D $E @`\X,B`C @ H   { D E @@\X,B`C  H   if (html) D E @ \X,B`4C  H    System.out.println("<ul>"); D 3E @\X,B`/C  H   while (iterator.hasNext()) D .E @\X,B`C @ H    { D E @\X,B`IC H    Property child = (Property) iterator.next(); D HE @\X,B`4C  H    child.print(depth + 1); D 3E @\X,B`C @ H    } D E @`\X,B`C  H   if (html) D E @@\X,B`5C  H    System.out.println("</ul>"); D 4E @ \X,B`C @ H   } D E @\X,B`D E @\X,B`C  H  stack.pop(); D E @\X,B` C @ H  } D  E @\X,B`D E @\X,B`!C  H  public String toString() D  E @\X,B` C @ H  { D  E @\X,B`"C @ H  return node.getURI(); D !E @ \X,B` C @ H  } D  E @\X,B`D E @`\X,B`DC  H  static Property get(com.hp.hpl.jena.rdf.arp.AResource node) D CE @@\X,B` C @ H  { D  E @ \X,B`?C  H  Property retval = (Property) properties.get(node); D >E @\X,B` C  H  if (retval == null) D E @"\X,B`-C  H   retval = new Property(node); D ,E @&\X,B`C ` H  return retval; D E @*\X,B` C @ H  } D  E @.\X,B`C @} D E @`2\X,B`D E @@6\X,B`$C static String quoted(String string) D #E @ :\X,B`C @{ D E @>\X,B`#C ` H  return '"' + string + '"'; D "E @A\X,B`C @} D E @E\X,B`D E @I\X,B`&C static String fragment(Object object) D %E @M\X,B`C @{ D E @`Q\X,B`C  H  if (object == null) D E @@U\X,B`C  H  return null; D E @ Y\X,B`(C  H  String uri = object.toString(); D 'E @]\X,B`*C @ H  int pound = uri.lastIndexOf('#'); D )E @`\X,B`AC  H  return (pound == (-1)) ? uri : uri.substring(pound + 1); D @E @d\X,B`C @} D E @h\X,B`D E @l\X,B`'C static void printHeader(String header) D &E @`p\X,B`C @{ D E @@t\X,B`C @ H  if (html) D E @ x\X,B`&C  H  System.out.print("<h2>"); D %E @|\X,B`"C @ H  System.out.print(header); D !E @\X,B`C @ H  if (html) D E @\X,B`'C  H  System.out.print("</h2>"); D &E @\X,B`C  H  System.out.println(); D E @\X,B`C @} D E @`\X,B`D E @@\X,B`!C static void warn(String warning) D  E @ \X,B`C @{ D E @\X,B`C  H  if (verbose) D E @\X,B`)C  H  System.err.println(warning); D (E @\X,B`C @} D E @\X,B`D E @\X,B`C static void usage() D E @`\X,B`C @{ D E @@\X,B`NC H  System.err.println("Usage: [-verbose] [-hyperdaml uri] <daml-uri>"); D ME @ \X,B`C  H  System.exit(1); D E @\X,B`C @} D E @\X,B`D E @\X,B`'C public static void main(String args[]) D &E @\X,B`C  H  throws Exception D E @\X,B`C @{ D E @`\X,B`C ` H  // parse arguments D E @@\X,B`C  H  String daml = null; D E @ \X,B`.C  H  for (int i = 0; i < args.length; i++) D -E @\X,B`C  H  { D  E @\X,B`&C  H   String arg = args[i]; D %E @\X,B`D E @\X,B`*C @ H   if (arg.charAt(0) == '-') D )E @\X,B`C  H   { D E @`\X,B`4C  H    if (arg.equals("-verbose")) D 3E @@\X,B`,C  H    verbose = true; D +E @ \X,B`;C ` H    else if (arg.equals("-hyperdaml")) D :E @\X,B`C  H    { D E @\X,B`9C  H     if ((i+1) > args.length) D 8E @\X,B`-C  H     usage(); D ,E @\X,B`7C  H     hyperdaml = args[++i]; D 6E @\X,B`C  H    } D E @\X,B`C  H    else D E @\X,B`%C  H    usage(); D $E @ \X,B`C  H   } D E @\X,B`C  H   else D E @`\X,B` C rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> D QE @@8X,B`C  </owl:Restriction> D E @;X,B`C  </rdfs:subClassOf> D E @H?X,B`C  <rdfs:subClassOf> D E @BX,B`C  <owl:Restriction> D E @PFX,B`1C  <owl:onProperty rdf:resource="#iataCode"/> D 0E @IX,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> D QE @XMX,B`C  </owl:Restriction> D E @PX,B`C  </rdfs:subClassOf> D E @`TX,B`C  <rdfs:subClassOf> D E @WX,B`C  <owl:Restriction> D E @h[X,B`1C  <owl:onProperty rdf:resource="#icaoCode"/> D 0E @^X,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> D QE @pbX,B`C  </owl:Restriction> D E @eX,B`C  </rdfs:subClassOf> D E @xiX,B`C  <rdfs:subClassOf> D E @lX,B`C  <owl:Restriction> D E @pX,B`1C  <owl:onProperty rdf:resource="#location"/> D 0E @tX,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> D QE @wX,B`C  </owl:Restriction> D E @ {X,B`C  </rdfs:subClassOf> D E @~X,B`C  <rdfs:subClassOf> D E @X,B`C  <owl:Restriction> D E @X,B`1C  <owl:onProperty rdf:resource="#latitude"/> D 0E @X,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#double"/> D QE @X,B`C  </owl:Restriction> D E @$X,B`C  </rdfs:subClassOf> D E @X,B`C  <rdfs:subClassOf> D E @,X,B`C  <owl:Restriction> D E @X,B`2C @ <owl:onProperty rdf:resource="#longitude"/> D 1E @4X,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#double"/> D QE @X,B`C  </owl:Restriction> D E @<X,B`C  </rdfs:subClassOf> D E @X,B`C  <rdfs:subClassOf> D E @DX,B`C  <owl:Restriction> D E @ȯX,B`2C @ <owl:onProperty rdf:resource="#elevation"/> D 1E @LX,B`RC @ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#double"/> D QE @жX,B`C  </owl:Restriction> D E @TX,B`C  </rdfs:subClassOf> D E @ؽX,B`C </rdfs:Class> D  E @\X,B`D E @X,B`+C `<owl:DatatypeProperty rdf:ID="elevation"/> D E @dX,B`*C @<owl:DatatypeProperty rdf:ID="iataCode"/> D )E @X,B`*C @<owl:DatatypeProperty rdf:ID="icaoCode"/> D )E @lX,B`*C @<owl:DatatypeProperty rdf:ID="latitude"/> D )E @X,B`*C @<owl:DatatypeProperty rdf:ID="location"/> D )E @tX,B`+C `<owl:DatatypeProperty rdf:ID="longitude"/> D *E @X,B`&C <owl:DatatypeProperty rdf:ID="name"/> D %E @|X,B`D E @X,B` C `</rdf:RDF> D  E @X,B`C ` D E @X,B` C  lbt DG lbt#*8" _H`8!RB` C <\> Class : Airport D E @RXM`H`? B`D E @X,B` C #<klh%rdf:RDFklh xmlns:rdf="klh%http://www.w3.org/1999/02/22-rdf-syntax-ns#klh" xmlns:rdfs="klh%http://www.w3.org/2000/01/rdf-schema#klh" xmlns:owl="klh%http://www.w3.org/2002/07/owl#klh" xml:base="http://www.daml.org/2001/10/html/airport-ont"> D  ,WuE X,mX, X,G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/1999/02/22-rdf-syntax-ns\#RDF;0;0;0;_G p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/1999/02/22-rdf-syntax-ns\#;0;0;0;_G klh%Vhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#;0;0;0;_G klh%Ohttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#;0;0;0;_B`D E @X,B`,C <klh%owl:Ontologyklh rdf:about=""> D  +E @X,G klh%Whttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Ontology;0;0;0;_B`C  <klh%owl:versionInfoklh>$Id: airport-ont.daml,v 1.1 2002/03/14 06:24:16 mdean Exp $</klh%owl:versionInfoklh> D  hwE X,vX,G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#versionInfo;0;0;0;_G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#versionInfo;0;0;0;_B`GC  <klh%rdfs:commentklh>Airport</klh%rdfs:commentklh> D  1=E @ X,G klh%]http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#comment;0;0;0;_G klh%]http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#comment;0;0;0;_B` C </klh%owl:Ontologyklh> D  E @X,G klh%Whttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Ontology;0;0;0;_B`D E @(#X,B`&C <klh%rdfs:Class rdf:ID="Airport"> D  G P klh%[http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#Class;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`MC <klh%owl:onPropertyklh rdf:resource="klh%#nameklh"/> D <AG  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G klh% \#name;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#stringklh"/> D  ?fG p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#string;0;0;0;_B`'C  </klh%owl:Restrictionklh> D G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`QC <klh%owl:onPropertyklh rdf:resource="klh%#iataCodeklh"/> D <EG  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G klh%\#iataCode;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#stringklh"/> D  ?fG p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#string;0;0;0;_B`'C  </klh%owl:Restrictionklh> D G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`QC <klh%owl:onPropertyklh rdf:resource="klh%#icaoCodeklh"/> D <EG  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G klh%\#icaoCode;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#stringklh"/> D  ?fG p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#string;0;0;0;_B`'C  </klh%owl:Restrictionklh> D G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`QC <klh%owl:onPropertyklh rdf:resource="klh%#locationklh"/> D <EG  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G klh%\#location;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#stringklh"/> D  ?fG p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#string;0;0;0;_B`'C  </klh%owl:Restrictionklh> D G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`QC <klh%owl:onPropertyklh rdf:resource="klh%#latitudeklh"/> D <EG  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G klh%\#latitude;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#doubleklh"/> D  ?fG p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#double;0;0;0;_B`'C  </klh%owl:Restrictionklh> D G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`RC @ <klh%owl:onPropertyklh rdf:resource="klh%#longitudeklh"/> D <FG  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G 0klh%\#longitude;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#doubleklh"/> D  ?fG p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#double;0;0;0;_B`'C  </klh%owl:Restrictionklh> D G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`$C  <klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`&C  <klh%owl:Restrictionklh> D  G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`RC @ <klh%owl:onPropertyklh rdf:resource="klh%#elevationklh"/> D <FG  klh%Yhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#onProperty;0;0;0;_G 0klh%\#elevation;0;0;0;_B`rC @ <klh%owl:allValuesFromklh rdf:resource="klh%http://www.w3.org/2001/XMLSchema#doubleklh"/> D  ?fG p klh%\http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#allValuesFrom;0;0;0;_G klh%Xhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2001/XMLSchema\#double;0;0;0;_B`'C  </klh%owl:Restrictionklh> D G 0 klh%Zhttp\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#Restriction;0;0;0;_B`%C  </klh%rdfs:subClassOfklh> D  G klh%`http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#subClassOf;0;0;0;_B`C </klh%rdfs:Classklh> D  G P klh%[http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2000/01/rdf-schema\#Class;0;0;0;_B`D B`3C `<klh%owl:DatatypeProperty rdf:ID="elevation"/> D  G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`2C @<klh%owl:DatatypeProperty rdf:ID="iataCode"/> D  G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`2C @<klh%owl:DatatypeProperty rdf:ID="icaoCode"/> D  G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`2C @<klh%owl:DatatypeProperty rdf:ID="latitude"/> D  G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`2C @<klh%owl:DatatypeProperty rdf:ID="location"/> D  G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`3C `<klh%owl:DatatypeProperty rdf:ID="longitude"/> D  G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`.C <klh%owl:DatatypeProperty rdf:ID="name"/> D  G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/2002/07/owl\#DatatypeProperty;0;0;0;_B`D B`C `</klh%rdf:RDFklh> D  G klh%_http\://www.daml.org/cgi-bin/hyperdaml\?http\://www.w3.org/1999/02/22-rdf-syntax-ns\#RDF;0;0;0;_B`EC  klhklhklhklhklhklhklhklh D <B` C  lbt DE@RXG lbt#*(>_H`8!RB` C @<\> dumpont2.java D E @RXM`H` B`D E @\X,B` C "dumpont is a program to display the class and property hierarchies present in an RDF Schema or klh%DAML+OILklh or klh%OWLklh ontology. This implementation, based on klh%Jena 2klh replaces a klh%previous implementationklh based on RDF API. D goE \X,\\X, \X,G klh%%http\://www.daml.org/language/;1;0;0;_G klh%%http\://www.w3.org/TR/owl-ref/;1;0;0;_G klh%.http\://www.hpl.hp.com/semweb/jena2.htm;1;0;0;_G pklh%,http\://www.daml.org/2001/03/dumpont/;1;0;0;_B`D E @\X,B`D E @`\X,B`)C Following is Source Code <dumpont2.java> D E @@\X,B`D E @ \X,B`<C // $Id: dumpont2.java,v 1.2 2003/11/07 14:46:31 mdean Exp $ D E @\X,B`D E @"\X,B`D E @&\X,B`C /** D E @*\X,B`9C * print class and property hierarchies from an ontology. D 8E @.\X,B`C `*/ D E @`2\X,B`C class dumpont2 D E @@6\X,B`C @{ D E @ :\X,B`C static boolean html = true; D E @>\X,B`CC `static String hyperdaml = "http://www.daml.org/cgi-bin/hyperdaml"; D BE @A\X,B` C static boolean verbose = false; D E @E\X,B`D E @I\X,B`6C static java.util.Stack stack = new java.util.Stack(); D 5E @M\X,B`D E @`Q\X,B`DC static java.util.Comparator comparator = new java.util.Comparator() D CE @@U\X,B`C @{ D E @ Y\X,B`1C  H  public int compare(Object o1, Object o2) D 0E @]\X,B` C @ H  { D  E @`\X,B`;C ` H  return o1.toString().compareTo(o2.toString()); D :E @d\X,B` C @ H  } D  E @h\X,B` C  H  D E @l\X,B`1C  H  public boolean equals(Object comparator) D 0E @`p\X,B` C @ H  { D  E @@t\X,B`C @ H  return false; D E @ x\X,B` C @ H  } D  E @|\X,B` C ` H  }; D  E @\X,B`D E @\X,B`D E @\X,B`C /** D E @\X,B`!C * information about a DAML Class D  E @`\X,B`C `*/ D E @@\X,B`C `static class Class D E @ \X,B`C @{ D E @\X,B`NC H  static java.util.TreeMap classes = new java.util.TreeMap(comparator); D ME @\X,B`0C  H  com.hp.hpl.jena.rdf.arp.AResource node; D /E @\X,B`%C  H  boolean restriction = false; D $E @\X,B`>C  H  java.util.Vector subclasses = new java.util.Vector(); D =E @\X,B`@C  H  java.util.Vector superclasses = new java.util.Vector(); D ?E @`\X,B`JC @ H  java.util.TreeSet properties = new java.util.TreeSet(comparator); D IE @@\X,B`IC H  java.util.TreeSet instances = new java.util.TreeSet(comparator); D HE @ \X,B`D E @\X,B`6C  H  Class(com.hp.hpl.jena.rdf.arp.AResource node) D 5E @\X,B` C @ H  { D  E @\X,B`C  H  this.node = node; D E @\X,B`%C  H  classes.put(node, this); D $E @\X,B` C @ H  } D  E @`\X,B`D E @@\X,B`C  H  void print(int depth) D E @ \X,B` C @ H  { D  E @\X,B`3C ` H  if (restriction || node.isAnonymous()) D 2E @\X,B`C  H   return; D E @\X,B`D E @\X,B`3C ` H  String classFragment = fragment(node); D 2E @\X,B`D E @`\X,B`C  H  if (html) D E @@\X,B`C @ H   { D E @ \X,B`0C  H   System.out.println("<li>"); D /E @\X,B`RC @ H   System.out.println("<a name=" + quoted(classFragment) + ">"); D QE @\X,B`C @ H   } D E @\X,B`C  H  else D E @\X,B`0C  H   for (int i = 0; i < depth; i++) D /E @\X,B`.C  H   System.out.println(" "); D -E @\X,B`jC @ H  System.out.print("<a href=" + quoted(hyperdaml + "?" + node) + ">" + classFragment + "</a>"); D iE \X,a \X,B`D E @\X,B` C  H  // check for cycles D E @`\X,B`&C  H  if (stack.contains(this)) D %E @@\X,B`C @ H   { D E @ \X,B`:C @ H   System.out.println(" ... cycle ..."); D 9E @\X,B`C  H   return; D E @"\X,B`C @ H   } D E @&\X,B`C  H  stack.push(this); D E @*\X,B`D E @.\X,B`C @ H  // properties D E @`2\X,B`$C  H  System.out.print(" ("); D #E @@6\X,B`AC  H  java.util.Iterator iterator = properties.iterator(); D @E @ :\X,B`"C @ H  boolean first = true; D !E @>\X,B`'C  H  while (iterator.hasNext()) D &E @A\X,B`C @ H   { D E @E\X,B`7C  H   Object property = iterator.next(); D 6E @I\X,B`!C  H   if (! first) D  E @M\X,B`0C  H    System.out.print(", "); D /E @`Q\X,B`#C ` H   first = false; D "E @@U\X,B`C  H   if (html) D E @ Y\X,B`C @ H    { D E @]\X,B`BC @ H    String fragment = fragment(property); D AE @`\X,B`mC H    System.out.print("<a href=" + quoted("#" + fragment) + ">" + fragment + "</a>"); D lE d\X,dh\X,B`C @ H    } D E @l\X,B`C  H   else D E @`p\X,B`4C  H    System.out.print(property); D 3E @@t\X,B`C  H    D E @ x\X,B`C @ H   } D E @|\X,B`%C  H  System.out.println(")"); D $E @\X,B`D E @\X,B`C  H  // recurse D E @\X,B`.C  H  iterator = subclasses.iterator(); D -E @\X,B`HC H  java.util.Iterator instanceIterator = instances.iterator(); D GE @`\X,B`$C  H  if (iterator.hasNext() D #E @@\X,B`0C  H   || instanceIterator.hasNext()) D /E @ \X,B`C @ H   { D E @\X,B`C  H   if (html) D E @\X,B`4C  H    System.out.println("<ul>"); D 3E @\X,B`/C  H   while (iterator.hasNext()) D .E @\X,B`C @ H    { D E @\X,B`CC ` H    Class child = (Class) iterator.next(); D BE @`\X,B`4C  H    child.print(depth + 1); D 3E @@\X,B`C @ H    } D E @ \X,B`7C  H   while (instanceIterator.hasNext()) D 6E @\X,B`C @ H    { D E @\X,B`YC H    String instanceFragment = fragment(instanceIterator.next()); D XE @\X,B`&C  H    if (html) D %E @\X,B`"C @ H     { D !E @\X,B`@C  H     System.out.println("<li>"); D ?E @`\X,B`eC H     System.out.println("<a name=" + quoted(instanceFragment) + ">"); D dE @\X,_ \X,B`"C @ H     } D !E @\X,B`!C  H    else D  E @\X,B`@C  H     for (int i = 0; i < depth; i++) D ?E @\X,B`>C  H     System.out.println(" "); D =E @\X,B`PC H    System.out.println("instance " + instanceFragment); D OE @\X,B`C @ H    } D E @`\X,B`C  H   if (html) D E @@\X,B`5C  H    System.out.println("</ul>"); D 4E @ \X,B`C @ H   } D E @\X,B`D E @\X,B`C  H  stack.pop(); D E @\X,B` C @ H  } D  E @\X,B`D E @\X,B`AC  H  static Class get(com.hp.hpl.jena.rdf.arp.AResource node) D @E @\X,B` C @ H  { D  E @\X,B`6C  H  Class retval = (Class) classes.get(node); D 5E @ \X,B` C  H  if (retval == null) D E @\X,B`*C @ H   retval = new Class(node); D )E @`\X,B`C ` H  return retval; D E @@\X,B` C @ H  } D  E @ \X,B`C @} D E @\X,B`D E @"\X,B`C /** D E @&\X,B`$C * information about a DAML Property D #E @*\X,B`C `*/ D E @.\X,B`C static class Property D E @`2\X,B`C @{ D E @@6\X,B`QC H  static java.util.TreeMap properties = new java.util.TreeMap(comparator); D PE @ :\X,B`0C  H  com.hp.hpl.jena.rdf.arp.AResource node; D /E @>\X,B`AC  H  java.util.Vector subproperties = new java.util.Vector(); D @E @A\X,B`CC ` H  java.util.Vector superproperties = new java.util.Vector(); D BE @E\X,B`D E @I\X,B`9C  H  Property(com.hp.hpl.jena.rdf.arp.AResource node) D 8E @M\X,B` C @ H  { D  E @`Q\X,B`C  H  this.node = node; D E @@U\X,B`(C  H  properties.put(node, this); D 'E @ Y\X,B` C @ H  } D  E @]\X,B`D E @`\X,B`C  H  void print(int depth) D E @d\X,B` C @ H  { D  E @h\X,B`6C  H  String propertyFragment = fragment(node); D 5E @l\X,B`D E @`p\X,B`C  H  if (html) D E @@t\X,B`C @ H   { D E @ x\X,B`0C  H   System.out.println("<li>"); D /E @|\X,B`UC H   System.out.println("<a name=" + quoted(propertyFragment) + ">"); D TE @\X,B`C @ H   } D E @\X,B`C  H  else D E @\X,B`0C  H   for (int i = 0; i < depth; i++) D /E @\X,B`.C  H   System.out.println(" "); D -E @`\X,B`mC H  System.out.print("<a href=" + quoted(hyperdaml + "?" + node) + ">" + propertyFragment + "</a>"); D lE @\X,d \X,B`D E @\X,B` C  H  // check for cycles D E @\X,B`&C  H  if (stack.contains(this)) D %E @\X,B`C @ H   { D E @\X,B`:C @ H   System.out.println(" ... cycle ..."); D 9E @\X,B`C  H   return; D E @`\X,B`C @ H   } D E @@\X,B`C  H  stack.push(this); D E @ \X,B`D E @\X,B`"C @ H  System.out.println(); D !E @\X,B`D E @\X,B`C  H  // recurse D E @\X,B`DC  H  java.util.Iterator iterator = subproperties.iterator(); D CE @\X,B`%C  H  if (iterator.hasNext()) D $E @`\X,B`C @ H   { D E @@\X,B`C  H   if (html) D E @ \X,B`4C  H    System.out.println("<ul>"); D 3E @\X,B`/C  H   while (iterator.hasNext()) D .E @\X,B`C @ H    { D E @\X,B`IC H    Property child = (Property) iterator.next(); D HE @\X,B`4C  H    child.print(depth + 1); D 3E @\X,B`C @ H    } D E @`\X,B`C  H   if (html) D E @@\X,B`5C  H    System.out.println("</ul>"); D 4E @ \X,B`C @ H   } D E @\X,B`D E @\X,B`C  H  stack.pop(); D E @\X,B` C @ H  } D  E @\X,B`D E @\X,B`!C  H  public String toString() D  E @\X,B` C @ H  { D  E @\X,B`"C @ H  return node.getURI(); D !E @ \X,B` C @ H  } D  E @\X,B`D E @`\X,B`DC  H  static Property get(com.hp.hpl.jena.rdf.arp.AResource node) D CE @@\X,B` C @ H  { D  E @ \X,B`?C  H  Property retval = (Property) properties.get(node); D >E @\X,B` C  H  if (retval == null) D E @"\X,B`-C  H   retval = new Property(node); D ,E @&\X,B`C ` H  return retval; D E @*\X,B` C @ H  } D  E @.\X,B`C @} D E @`2\X,B`D E @@6\X,B`$C static String quoted(String string) D #E @ :\X,B`C @{ D E @>\X,B`#C ` H  return '"' + string + '"'; D "E @A\X,B`C @} D E @E\X,B`D E @I\X,B`&C static String fragment(Object object) D %E @M\X,B`C @{ D E @`Q\X,B`C  H  if (object == null) D E @@U\X,B`C  H  return null; D E @ Y\X,B`(C  H  String uri = object.toString(); D 'E @]\X,B`*C @ H  int pound = uri.lastIndexOf('#'); D )E @`\X,B`AC  H  return (pound == (-1)) ? uri : uri.substring(pound + 1); D @E @d\X,B`C @} D E @h\X,B`D E @l\X,B`'C static void printHeader(String header) D &E @`p\X,B`C @{ D E @@t\X,B`C @ H  if (html) D E @ x\X,B`&C  H  System.out.print("<h2>"); D %E @|\X,B`"C @ H  System.out.print(header); D !E @\X,B`C @ H  if (html) D E @\X,B`'C  H  System.out.print("</h2>"); D &E @\X,B`C  H  System.out.println(); D E @\X,B`C @} D E @`\X,B`D E @@\X,B`!C static void warn(String warning) D  E @ \X,B`C @{ D E @\X,B`C  H  if (verbose) D E @\X,B`)C  H  System.err.println(warning); D (E @\X,B`C @} D E @\X,B`D E @\X,B`C static void usage() D E @`\X,B`C @{ D E @@\X,B`NC H  System.err.println("Usage: [-verbose] [-hyperdaml uri] <daml-uri>"); D ME @ \X,B`C  H  System.exit(1); D E @\X,B`C @} D E @\X,B`D E @\X,B`'C public static void main(String args[]) D &E @\X,B`C  H  throws Exception D E @\X,B`C @{ D E @`\X,B`C ` H  // parse arguments D E @@\X,B`C  H  String daml = null; D E @ \X,B`.C  H  for (int i = 0; i < args.length; i++) D -E @\X,B`C  H  { D  E @\X,B`&C  H   String arg = args[i]; D %E @\X,B`D E @\X,B`*C @ H   if (arg.charAt(0) == '-') D )E @\X,B`C  H   { D E @`\X,B`4C  H    if (arg.equals("-verbose")) D 3E @@\X,B`,C  H    verbose = true; D +E @ \X,B`;C ` H    else if (arg.equals("-hyperdaml")) D :E @\X,B`C  H    { D E @\X,B`9C  H     if ((i+1) > args.length) D 8E @\X,B`-C  H     usage(); D ,E @\X,B`7C  H     hyperdaml = args[++i]; D 6E @\X,B`C  H    } D E @\X,B`C  H    else D E @\X,B`%C  H    usage(); D $E @ \X,B`C  H   } D E @\X,B`C  H   else D E @`\X,B` C  H   daml = arg; D E @@\X,B`C  H  } D  E @ \X,B`C @ H  if (daml == null) D E @\X,B`C  H  usage(); D E @"\X,B`D E @&\X,B`#C ` H  // strip form input prefix D "E @*\X,B`%C  H  if (daml.startsWith("uri=")) D $E @.\X,B`BC @ H  daml = java.net.URLDecoder.decode(daml.substring(4)); D AE @`2\X,B`D E @@6\X,B`>C  H  // collect ontology information while streaming input D =E @ :\X,B`DC  H  String rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"; D CE @>\X,B`?C  H  String rdfs = "http://www.w3.org/2000/01/rdf-schema#"; D >E @A\X,B`D E @E\X,B`IC H  final java.util.HashSet propertyTypes = new java.util.HashSet(); D HE @I\X,B`'C  H  propertyTypes.add("Property"); D &E @M\X,B`/C  H  propertyTypes.add("DatatypeProperty"); D .E @`Q\X,B`-C  H  propertyTypes.add("ObjectProperty"); D ,E @@U\X,B`1C  H  propertyTypes.add("TransitiveProperty"); D 0E @ Y\X,B`0C  H  propertyTypes.add("SymmetricProperty"); D /E @]\X,B`2C @ H  propertyTypes.add("UnambiguousProperty"); D 1E @`\X,B`-C  H  propertyTypes.add("UniqueProperty"); D ,E @d\X,B`1C  H  propertyTypes.add("FunctionalProperty"); D 0E @h\X,B`8C  H  propertyTypes.add("InverseFunctionalProperty"); D 7E @l\X,B`1C  H  propertyTypes.add("AnnotationProperty"); D 0E @`p\X,B`/C  H  propertyTypes.add("OntologyProperty"); D .E @@t\X,B`1C  H  propertyTypes.add("DeprecatedProperty"); D 0E @ x\X,B`D E @|\X,B`FC  H  final java.util.HashSet otherTypes = new java.util.HashSet(); D EE @\X,B`$C  H  otherTypes.add("Ontology"); D #E @\X,B` C  H  otherTypes.add("List"); D E @\X,B`%C  H  otherTypes.add("DataRange"); D $E @\X,B`D E @`\X,B`MC H  com.hp.hpl.jena.rdf.arp.ARP arp = new com.hp.hpl.jena.rdf.arp.ARP(); D LE @@\X,B`OC H  arp.setStatementHandler(new com.hp.hpl.jena.rdf.arp.StatementHandler() D NE @ \X,B`C  H  { D  E @\X,B`NC H   public void statem H   daml = arg; D E @@\X,B`C  H  } D  E @ \X,B`C @ H  if (daml == null) D E @\X,B`C  H  usage(); D E @"\X,B`D E @&\X,B`#C ` H  // strip form input prefix D "E @*\X,B`%C  H  if (daml.startsWith("uri=")) D $E @.\X,B`BC @ H  daml = java.net.URLDecoder.decode(daml.substring(4)); D AE @`2\X,B`D E @@6\X,B`>C  H  // collect ontology information while streaming input D =E @ :\X,B`DC  H  String rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"; D CE @>\X,B`?C  H  String rdfs = "http://www.w3.org/2000/01/rdf-schema#"; D >E @A\X,B`D E @E\X,B`IC H  final java.util.HashSet propertyTypes = new java.util.HashSet(); D HE @I\X,B`'C  H  propertyTypes.add("Property"); D &E @M\X,B`/C  H  propertyTypes.add("DatatypeProperty"); D .E @`Q\X,B`-C  H  propertyTypes.add("ObjectProperty"); D ,E @@U\X,B`1C  H  propertyTypes.add("TransitiveProperty"); D 0E @ Y\X,B`0C  H  propertyTypes.add("SymmetricProperty"); D /E @]\X,B`2C @ H  propertyTypes.add("UnambiguousProperty"); D 1E @`\X,B`-C  H  propertyTypes.add("UniqueProperty"); D ,E @d\X,B`1C  H  propertyTypes.add("FunctionalProperty"); D 0E @h\X,B`8C  H  propertyTypes.add("InverseFunctionalProperty"); D 7E @l\X,B`1C  H  propertyTypes.add("AnnotationProperty"); D 0E @`p\X,B`/C  H  propent(com.hp.hpl.jena.rdf.arp.AResource subj, D ME @\X,B`NC H     com.hp.hpl.jena.rdf.arp.AResource pred, D ME @\X,B`MC H     com.hpertyTypes.add("OntologyProperty"); D .E @@t\X,B`1C  H  propertyTypes.add("DeprecatedProperty"); D 0E @ x\X,B`D E @|\X,B`FC  H  final java.util.HashSet otherTypes = new java.util.HashSet(); D EE @\X,B`$C  H  otherTypes.add("Ontology"); D #E @\X,B` C  H  otherTypes.add("List"); D E @\X,B`%C  H  otherTypes.add("Da.hpl.jena.rdf.arp.AResource obj) D LE @\X,B`C @ H   { D E @\X,B`4C  H   String subject = subj.getURI(); D 3E @`\X,B`6C  H   String predicate = pred.getURI(); D 5E @@\X,B`2C @ H   String object = obj.getURI(); D 1E @ \X,B`D E @\X,B`DC  H   String predicateFragmtaRange"); D $E @\X,B`D E @`\X,B`MC H  com.hp.hpl.jena.rdf.arp.ARP arp = new com.hp.hpl.jena.rdf.arp.ARP(); D LE @@\X,B`OC H  arp.setStatementHandler(new com.hp.hpl.jena.rdf.arp.StatementHandler() D NE @ \X,B`C  H  { D  E @\X,B`NC H   public void statement(com.hp.hpl.jena.rdf.arp.AResource subj, D ME @\X,B`NC H     com.hp.hpl.jena.rdf.arp.AResource pred, D ME @\X,B`MC H     com.hp.hpl.jena.rdf.arp.AResource obj) D LE @\X,B`C @ H   { D E @\X,B`4C  H   String subject = subj.getURI(); D 3E @`\X,B`6C  H   String predicate = pred.getURI(); D 5E @@\X,B`2C @ H   String object = obj.getURI(); D 1E @ \X,B`D E @\X,B`DC  H   String predicateFragment = fragment(predicate); D CE @\X,B`>C  H ent = fragment(predicate); D CE @\X,B`>C  H   String objectFragment = fragment(object); D =E @\X,B`D E @\X,B`RC @ H   if (predicateFragment.equals("type")) // XXX - only rdf:type? D QE @\X,B`C @ H    { D E @`\X,B`@C  H    if (objectFragment.equals("Class")) D ?E @@\X,B`"C @ H     { D !E @ \X,B`5C  H     Class.get(subj); D 4E @\X,B`"C @ H     } D !E @\X,B`KC ` H    else if (objectFragment.equals("Restriction")) D JE @\X,B`"C @ H     { D !E @\X,B`@C  H     Class cl  String objectFragment = fragment(object); D =E @\X,B`D E @\X,B`RC @ H   if (predicateFragment.equals("type")) // XXX - only rdf:type? D QE @\X,B`C @ H    { D E @`\X,B`@C  H    if (objectFragment.equals("Class")) D ?E @@\X,B`"C @ H     { D !E @ \X,B`5C  H     Class.get(subj); D 4E @\X,B`"C @ H     } D !E @\X,B`KC ` H    else if (objectFragment.equals("Restriction")) D JE @\X,B`"C @ H     { D !E @\X,B`@C  H     Class cl = Class.get(subj); D ?E @\X,B`;C ` H     cl.restriction = true; D :E @`\X,B`"C @ H     } D !E @@\X,B`MC H    else if (propertyTypes.contains(objectFragment)) D LE @ \X,B`"C @ H     { D !E @\X,B`8C  H     Property.get(subj); D 7E @\X,B`"C @ H     } D  = Class.get(subj); D ?E @\X,B`;C ` H     cl.restriction = true; D :E @`\X,B`"C @ H     } D !E @@\X,B`MC H    else if (propertyTypes.contains(objectFragment)) D LE @ \X,B`"C @ H     { D !E @\X,B`8C  H     Property.get(subj); D 7E @\X,B`"C @ H     } D !E @\X,B`JC @ H    else if (otherTypes.contains(objectFragment)) D IE @\X,B`"C @ H     { D !E @\X,B`/C  H     // nothing D .E @\X,B`"C @ H     } D !E @\X,B`!C  H    else D  E @ \X,B`"C @ H     { D !E @\X,B`?C  H     Class cl = Class.get(obj); D >E @`\X,B`<C  H     cl.instances.add(subj); D ;E @@\X,B`"C @ H     } D !E @ \X,B`C @ H    } D E @\X,B`EC  H   else if (predicateFragment.equals("subClassOf")) D DE @"\X,B`C @ H    { D E @&\X,B`;C ` H    Class parent = Class.get(obj); D :E @*\X,!E @\X,B`JC @ H    else if (otherTypes.contains(objectFragment)) D IE @\X,B`"C @ H     { D !E @\X,B`/C  H     // nothing D .E @\X,B`"C @ H     } D !E @\X,B`!C  H    else D  E @ \X,B`"C @ H     { D !E @\X,B`?C  H     Class cl = Class.get(obj); D >E @`\X,B`<C  H     cl.instances.add(subj); D ;E @@\X,B`"C @ H     } D !E @ \X,B`C @ H    } D E @\X,B`EC  H   else if (predicateFragment.equals("subClassOf")) D DE @"\X,B`;C ` H    Class child = Class.get(subj); D :E @.\X,B`:C @ H    parent.subclasses.add(child); D 9E @`2\X,B`<C  H    child.superclasses.add(parent); D ;E @@6\X,B`C @ H    } D E @ :\X,B`HC H   else if (predicateFragment.equals("subPropertyOf")) D GE @>\X,B`C @ H    { D E @A\X,B`AC  H    Property parent = Property.get(obj); D @E @E\X,B`AC  H    Property child = Property.get(subj); D @E @I\X,B`=C  H    parent.subproperties.add(child); D <E @M\X,B`?C  H    child.superproperties.add(parent); D >E @`Q\X,B`C @ H    } D E @@U\X,B`AC  H   else if (predicateFragment.equals("domain")) D @E @ Y\X,B`C @ H    { D E @]\X,B`7C  H    Class cl = Class.get(obj); D 6E @`\X,B`DC  H    Property property = Property.get(subj); D CE @d\X,B`9C  H    cl.properties.add(property); D 8E @h\X,B`C @ H    } D E @l\X,B`EC  H   else if (predicateFragment.equals("onProperty")) D DE @`p\X,B`C @ H    { D E @@t\X,B`8C  H    Class cl = Class.get(subj); D 7E @ x\X,B`3C ` H    cl.restriction = true; D 2E @|\X,B`CC ` H    Property property = Property.get(obj); D BE @\X,B`9C  H    cl.properties.add(property); D 8E @\X,B`C @ H    } D E @\X,B`C @ H   } D E @\X,B`D E @`\X,B`NC H   public void statement(com.hp.hpl.jena.rdf.arp.AResource subj, D ME @@\X,B`NC H     com.hp.hpl.jena.rdf.arp.AResource pred, D ME @ \X,B`LC H     com.hp.hpl.jena.rdf.arp.ALiteral obj) D KE @\X,B`C @ H   { D E @\X,B`C  H   // nothing D E @\X,B`C @ H   } D E @\X,B`C  H  }); D E @\X,B`JC @ H  java.io.InputStream stream = new java.net.URL(daml).openStream(); D IE @`\X,B` C  H  arp.load(stream, daml); D E @@\X,B`D E @ \X,B`C  H  // sort D E @\X,B`EC  H  java.util.Collection sortedClasses = Class.classes.values(); D DE @\X,B`NC H  java.util.Collection sortedProperties = Property.properties.values(); D ME @\X,B`D E @\X,B`2C @ H  // propagate properties from Restrictions D 1E @\X,B`@C  H  java.util.Iterator iterator = sortedClasses.iterator(); D ?E @`\X,B`#C ` H  while (iterator.hasNext()) D "E @@\X,B`C  H  { D  E @ \X,B`4C  H   Class cl = (Class) iterator.next(); D 3E @\X,B`$C  H   if (cl.restriction) D #E @\X,B`C  H   { D E @\X,B`RC @ H    java.util.Iterator subclasses = cl.subclasses.iterator(); D QE @\X,B`5C  H    while (subclasses.hasNext()) D 4E @\X,B`C  H    { D E @`\X,B`LC H     Class subclass = (Class) subclasses.next(); D KE @@\X,B`D E @ \X,B`KC ` H     subclass.properties.addAll(cl.properties); D JE @\X,B`BC @ H     subclass.superclasses.remove(cl); D AE @\X,B`C  H    } D E @\X,B`C  H   } D E @\X,B`C  H  } D  E @\X,B`D E @\X,B`C  H  // print Classes D E @\X,B`-C  H  iterator = sortedClasses.iterator(); D ,E @ \X,B`(C  H  printHeader("Class Hierarchy"); D 'E @\X,B`C @ H  if (html) D E @`\X,B`C  H  { D  E @@\X,B`,C  H   System.out.println("<ul>"); D +E @ \X,B`C  H  } D  E @\X,B`#C ` H  while (iterator.hasNext()) D "E @"\X,B`C  H  { D  E @&\X,B`4C  H   Class cl = (Class) iterator.next(); D 3E @*\X,B`9C  H   if (cl.superclasses.size() == 0) // root D 8E @.\X,B`!C  H   cl.print(1); D  E @`2\X,B`C  H  } D  E @@6\X,B`C @ H B`C @ H    { D E @&\X,B`;C ` H    Class parent = Class.get(obj); D :E @*\X,B`;C ` H    Class child = Class.get(subj); D :E @.\X,B`:C @ H    parent.subclasses.add(child); D 9E @`2\X,B`<C  H    child.superclasses.add(parent); D ;E @@6\X,B`C @ H    } D E @ :\X,B`HC H   else if (predicateFragment.equals("subPropertyOf")) D GE @>\X,B`C @ H    { D E @A\X,B`AC  H    Property parent = Property.get(obj); D @E @E\X,B`AC  H    Property child = Property.get(subj); D @E @I\X,B`=C  H    parent.subproperties.add(child); D <E @M\X,B`?C  H    child.superproperties.add(parent); D >E @`Q\X,B`C @ H    } D E @@U\X,B`AC  H   else if (predicateFragment.equals("domain")) D @E @ Y\X,B`C @ H    { D E @]\X,B`7C  H    Class cl = Class.get(obj); D 6E @`\X,B`DC  H    Property property = Property.get(subj); D CE @d\X,B`9C  H    cl.properties.add(property); D 8E @h\X,B`C @ H    } D E @l\X,B`EC  H   else if (predicateFragment.equals("onProperty")) D DE @`p\X,B`C @ H    { D E @@t\X,B`8C  H    Class cl = Class.get(subj); D 7E @ x\X,B`3C ` H    cl.restriction = true; D 2E @|\X,B`CC ` H    Property property = Property.get(obj); D BE @\X,B`9C  H    cl.properties.add(property); D 8E @\X,B`C @ H    } D E @\X,B`C @ H   } D E @\X,B`D E @`\X,B`NC H   public void statement(com.hp.hpl.jena.rdf.arp.AResource subj, D ME @@\X,B`NC H     com.hp.hpl.jena.rdf.arp.AResource pred, D ME @ \X,B`LC H     com.hp.hpl.jena.rdf.arp.ALiteral obj) D KE @\X,B`C @ H   { D E @\X,B`C  H   // nothing D E @\X,B`C @ H   } D E @\X,B`C  H  }); D E @\X,B`JC @ H  java.io.InputStream stream = new java.net.URL(daml).openStream(); D IE @`\X,B` C  H  arp.load(stream, daml); D E @@\X,B`D E @ \X,B`C  H  // sort D E @\X,B`EC  H  java.util.Collection sortedClasses = Class.classes.values(); D DE @\X,B`NC H  java.util.Collection sortedProperties = Property.properties.values(); D ME @\X,B`D E @\X,B`2C @ H  // propagate properties from Restrictions D 1E @\X,B`@C  H  java.util.Iterator iterator = sortedClasses.iterator(); D ?E @`\X,B`#C ` H  while (iterator.hasNext()) D "E @@\X,B`C  H  { D  E @ \X,B`4C  H   Class cl = (Class) iterator.next(); D 3E @\X,B`$C  H   if (cl.restriction) D #E @\X,B`C  H   { D E @\X,B`RC @ H    java.util.Iterator subclasses = cl.subclasses.iterator(); D QE @\X,B`5C  H    while (subclasses.hasNext()) D 4E @\X,B`C  H    { D E @`\X,B`LC H     Class subclass = (Class) subclasses.next(); D KE @@\X,B`D E @ \X,B`KC ` H     subclass.properties.addAll(cl.properties); D JE @\X,B`BC @ H     subclass.superclasses.remove(cl); D AE @\X,B`C  H    } D  if (html) D E @ :\X,B`)C  H  System.out.println("</ul>"); D (E @>\X,B`D E @A\X,B`C  H  // print Properties D E @E\X,B`0C  H  iterator = sortedProperties.iterator(); D /E @I\X,B`+C ` H  printHeader("Property Hierarchy"); D *E @M\X,B`C @ H  if (html) D E @`Q\X,B`C  H  { D  E @@U\X,B`,C  H   System.out.println("<ul>"); D +E @ Y\X,B`C  H  } D  E @]\X,B`#C ` H  while (iterator.hasNext()) D "E @`\X,B`C  H  { D  E @d\X,B`@C  H   Property property = (Property) iterator.next(); D ?E @h\X,B`BC @ H   if (property.superproperties.size() == 0) // root D AE @l\X,B`'C  H   property.print(1); D &E @`p\X,B`C  H  } D  E @@t\X,B`C @ H  if (html) D E @ x\X,B`)C  H  System.out.println("</ul>"); D (E @|\X,B`D E @\X,B`C ` H  // trailer D E @\X,B`C @ H  if (html) D E @\X,B`C  H  { D  E @\X,B`,C  H   System.out.println("<hr>"); D +E @`\X,B`1C  H   System.out.println("<address>"); D 0E @@\X,B`6C  H   System.out.println("Produced from "); D 5E @ \X,B`C  H   System.out.println("<a href=" + quoted(daml) + ">" + daml + "</a> using <a href=" + quoted("http://www.daml.org/2003/09/dumpont/") + ">dumpont2</a>.java"); D E \X,d\X,B`2C @ H   System.out.println("</address>"); D 1E @\X,B`C  H  } D  E @\X,B`C @} D E @\X,B`D E @`\X,B`D E @@\X,B`D E @ \X,B`DE@RX,B`C`(10) OWL is a Web Standard DE@:8,B`NC OWL became a W3C (World Wide Web Consortium) Recommendation in February 2004. DE@bRX,B`CA W3C Recommendation is understood by the industry and the web community as a web standard. A W3C Recommendation is a stable specification developed by a W3C Working Group and reviewed by the W3C Membership. DERX,RRX, RX,E @\X,B`C @ H  if (html) D E @\X,B`C  H  { D  E @\X,B`,