index.html 165 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
  <title>OWL Web Ontology Language Guide</title>

<!-- TODO: Replace STAGED url and 10 February 2004.
           Currently using http://www.w3.org/2001/sw/WebOnt/TR/STAGE-*

-->
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <style type="text/css">
SPAN.note      { BACKGROUND-COLOR: #ffb1f1 }
SPAN.highlight { BACKGROUND-COLOR: #dddddd }
SPAN.red       { BACKGROUND-COLOR: #ffaaaa }

pre      { MARGIN-LEFT: 2em; 
           MARGIN-RIGHT: 2em; FONT-FAMILY: monospace }

table.propositions { MARGIN-LEFT: 2em; BORDER: 1pt }
table.small { FONT: 80% sans-serif}
table.info  { MARGIN-LEFT: 2em }

td.index    { FONT: 80% sans-serif; VERTICAL-ALIGN: top}
  </style>
  <style type="text/css">.PrePublicationWarning {
	BORDER-RIGHT: black double; PADDING-RIGHT: 1em; BORDER-TOP: black double; PADDING-LEFT: 1em; FONT-WEIGHT: bold; BACKGROUND: yellow; PADDING-BOTTOM: 1em; MARGIN: 1em 0em; BORDER-LEFT: black double; PADDING-TOP: 1em; BORDER-BOTTOM: black double
}
  </style>

  <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-REC" /> 

</head>
<body lang="EN" xml:lang="EN">
  <div class="head">
    <a href="http://www.w3.org/">
      <img height="48" alt="W3C" src="http://www.w3.org/Icons/w3c_home" width="72"  />
    </a> 
    <h1 id="mainTitle">OWL Web Ontology Language<br />
        Guide</h1>
    <h2><a id="w3c-doctype" name="w3c-doctype"></a>
        W3C Recommendation 10 February 2004</h2>

      <div id="owl_2_notice" style="border: solid black 1px; padding: 0.5em; background: #FFB;">

	<p style="margin-top: 0; font-weight: bold;">New Version
        Available: OWL 2 <span style="padding-left: 2em;"></span>
        (Document Status Update, 12 November 2009)</p>

	<p style="margin-bottom: 0;">The OWL Working Group has produced
	a W3C Recommendation for a new version of OWL which adds
	features to this 2004 version, while remaining compatible.
	Please see <a href="http://www.w3.org/TR/owl2-overview">OWL 2
	Document Overview</a> for an introduction to OWL 2 and a guide
	to the OWL 2 document set.</p>

      </div>

	

    <dl>
      <dt>This version: </dt>
      	<dd><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/">
            http://www.w3.org/TR/2004/REC-owl-guide-20040210/
	    </a>
        </dd>
      <dt>Latest version: </dt>
      	<dd><a href="http://www.w3.org/TR/owl-guide/">
            http://www.w3.org/TR/owl-guide/
	    </a>
        </dd>
      <dt>Previous version:</dt>
      	<dd><a href="http://www.w3.org/TR/2003/PR-owl-guide-20031215/">
            http://www.w3.org/TR/2003/PR-owl-guide-20031215/
	    </a>
	</dd>
      <dt>Editors:</dt>
      	<dd>
      	  Michael K. Smith, Electronic Data Systems, 
          <img align="middle" src="Email.Michael.K.Smith.gif"
	       alt="Michael dot Smith at e d s dot com"/> <br />
      	  Chris Welty, IBM Research,
	  <img align="middle" src="Email.Chris.Welty.gif"
	       alt="Chris dot Welty at u s dot ibm dot com"/> <br />
      	  Deborah L. McGuinness, Stanford University, 
          <img align="middle" src="Email.Deborah.McGuinness.gif"
	       alt="d l m at k s l dot stanford dot edu"/> <br />
      	</dd>
   </dl>
   

<p>Please refer to the <a
href="http://www.w3.org/2001/sw/WebOnt/errata#owl-guide"><strong>errata</strong></a>
for this document, which may include some normative corrections.</p>

<p>See also <a href="http://www.w3.org/2001/sw/RDFCore/translation/owl-guide">translations</a>.</p>

<p class="copyright"><a
      href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
      Copyright</a> &#xa9; 2004 <a
      href="http://www.w3.org/"><acronym
      title="World Wide Web Consortium">W3C</acronym></a><sup>&#xae;</sup>
      (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>,
      <a href="http://www.ercim.org/">
      <acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>
      </a>, <a href="http://www.keio.ac.jp/">Keio</a>),
      All Rights Reserved. W3C
      <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">
      liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">
      trademark</a>, <a href="http://www.w3.org/Consortium/Legal/copyright-documents">
      document use</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-software">
      software licensing</a> rules apply.</p>

    <hr title="Separator for header" />
  </div>

<h2><a id="Abstract" name="Abstract">Abstract</a></h2> 

<p>
The World Wide Web as it is currently constituted resembles a poorly
mapped geography.  Our insight into the documents and capabilities
available are based on keyword searches, abetted by clever use of
document connectivity and usage patterns.  The sheer mass of this data
is unmanageable without powerful tool support.  In order to map this
terrain more precisely, computational agents require machine-readable
descriptions of the content and capabilities of Web accessible
resources.  These descriptions must be in addition to the
human-readable versions of that information.
</p>

<p>
The OWL Web Ontology Language is intended to provide a language that
can be used to describe the classes and relations between them that
are inherent in Web documents and applications.  
</p>

<p>
This document demonstrates the use of the OWL language to 
</p>

<ol>
<li>formalize a domain by defining classes and properties of those classes,</li>
<li>define individuals and assert properties about them, and</li>
<li>reason about these classes and individuals to the degree permitted
by the formal semantics of the OWL language.</li>
</ol> 

<p>
The sections are organized to present an incremental definition of a
set of classes, properties and individuals, beginning with the
fundamentals and proceeding to more complex language components.
</p>


<hr />

<h2><a id="Status" name="Status"></a>Status of This Document</h2>
<div class="status">
<!-- Start Status-Of-This-Document Text -->

<p>This document has been reviewed by W3C Members and other interested
parties, and it has been endorsed by the Director as a <a
href="http://www.w3.org/2003/06/Process-20030618/tr.html#RecsW3C">W3C
Recommendation</a>.  W3C's role in making the Recommendation is to
draw attention to the specification and to promote its widespread
deployment. This enhances the functionality and interoperability of
the Web.</p>

<p>This is one of <a
href="http://www.w3.org/TR/2004/REC-owl-features-20040210/#s1.1">six
parts</a> of the W3C Recommendation for OWL, the Web Ontology
Language.  It has been developed by the <a
href="http://www.w3.org/2001/sw/WebOnt/">Web Ontology Working
Group</a> as part of the <a href="http://www.w3.org/2001/sw/">W3C
Semantic Web Activity</a> (<a
href="http://www.w3.org/2001/sw/Activity">Activity Statement</a>, <a
href="http://www.w3.org/2001/sw/WebOnt/charter">Group Charter</a>) for
publication on 10 February 2004.  </p>

<p>The design of OWL expressed in earlier versions of these documents
has been widely reviewed and satisfies the Working Group's <a
href="http://www.w3.org/TR/webont-req/"> technical requirements</a>.
The Working Group has addressed <a
href="http://lists.w3.org/Archives/Public/public-webont-comments/">
all comments received</a>, making changes as necessary.  Changes to
this document since <a
href="http://www.w3.org/TR/2003/PR-owl-guide-20031215/">the Proposed
Recommendation version</a> are detailed in the <a
href="./#changes-since-PR">change log</a>.</p>

<p>Comments are welcome at <a
href="mailto:public-webont-comments@w3.org">public-webont-comments@w3.org</a>
(<a
href="http://lists.w3.org/Archives/Public/public-webont-comments/">archive</a>)
and general discussion of related technology is welcome at <a
href="mailto:www-rdf-logic@w3.org">www-rdf-logic@w3.org</a> (<a
href="http://lists.w3.org/Archives/Public/www-rdf-logic/"
shape="rect">archive</a>).
</p>

<p>A list of <a href="http://www.w3.org/2001/sw/WebOnt/impls">
implementations</a> is available.</p>

<p>The W3C maintains a list of <a
href="http://www.w3.org/2001/sw/WebOnt/discl" rel="disclosure">any
patent disclosures related to this work</a>.
</p>

<p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at http://www.w3.org/TR/.</em></p>

<!-- End Status-Of-This-Document Text -->
</div>

<hr />

<!-- tag syntax.  Drop initial 'the', delete all spaces. 
     Truncate at any other punctuation or 'and'. Disambiguate with 1, 2, ... -->

<h1><a id="Contents" name="Contents">Contents</a></h1>

<ul>
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Abstract">Abstract</a></li> 
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Status">Status of This Document</a></li> 
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Contents">Contents</a></li> 
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Introduction">1. Introduction</a>
    <ul>
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OwlVarieties">1.1. The Species of OWL</a></li>
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#StructureOfDoc">1.2. Structure of the Document</a></li> 
    </ul></li> 
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#StructureOfOntologies">2. The Structure of Ontologies</a>
    <ul>
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Namespaces">2.1. Namespaces </a></li> 
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OntologyHeaders">2.2. Ontology Headers</a></li>
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Privacy">2.3. Data Aggregation and Privacy</a></li>
    </ul></li>
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#BasicDefinitions">3. Basic Elements</a>
    <ul>
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#SimpleClasses">3.1. Simple Classes and Individuals</a>
      	<ul>
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DefiningSimpleClasses">3.1.1. Simple Named Classes </a></li>
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DefiningIndividuals">3.1.2. Individuals </a></li>
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DesignForUse">3.1.3. Design for Use</a></li>
      	</ul></li> 
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#SimpleProperties">3.2. Simple Properties </a>
      	<ul>
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DefiningProperties">3.2.1. Defining Properties </a> </li>
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Datatypes1">3.2.2. Properties and Datatypes</a></li>
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#PropertiesOfIndividuals">3.2.3. Properties of Individuals</a></li>
      	</ul></li> 
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#PropertyCharacteristics">3.3. Property Characteristics</a>
      	<ul>
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#TransitiveProperty">3.3.1. TransitiveProperty</a></li>
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#SymmetricProperty">3.3.2. SymmetricProperty</a></li> 
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#FunctionalProperty">3.3.3. FunctionalProperty</a></li> 
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#inverseOf">3.3.4. inverseOf</a></li> 
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#InverseFunctionalProperty">3.3.5. InverseFunctionalProperty</a></li> 
      	</ul></li> 
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#PropertyRestrictions">3.4. Property Restrictions</a>
      	<ul>
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#allValuesFrom">3.4.1. allValuesFrom, someValuesFrom </a></li>
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#simpleCardinality">3.4.2. Cardinality </a></li> 
      	  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#hasValue">3.4.3. hasValue</a></li> 
      	</ul></li> 
    </ul></li>  
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OntologyMapping">4. Ontology Mapping </a>
    <ul>
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#equivalentClass1">4.1. Equivalence between Classes and Properties</a></li>
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#sameAs">4.2. Identity between Individuals</a></li> 
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#differentFrom">4.3. Different Individuals</a></li> 
    </ul></li>  
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#ComplexClasses">5. Complex Classes</a>
    <ul>
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#SetOperators">5.1. Set Operators</a></li> 
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#EnumeratedClasses">5.2. Enumerated Classes</a></li> 
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DisjointClasses">5.3. Disjoint Classes</a></li>
    </ul>
  </li> 
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OntologyVersioning">6. Ontology Versioning</a></li>

  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Usage">7. Usage Examples</a>
    <ul>
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#WinePortal">7.1. Wine Portal</a></li>
      <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#WineAgent">7.2. Wine Agent</a></li>
    </ul>
  </li>
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Acknowledgements">Acknowledgements</a></li>
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OWLGlossary">OWL Glossary</a></li> 
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#TermIndex">Term Index and Cross Reference</a></li> 
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#References">References</a></li> 
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#AppendixA">Appendix A: XML + RDF Basics</a></li> 
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#AppendixB">Appendix B: History</a></li> 
  <li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#changes-since-PR">Appendix C: Change Log Since Last Call Release</a></li> 
</ul>

<hr />

<h1><a name="Introduction">1. Introduction</a></h1>
  
<p class="quote">
"Tell me what wines I should buy to serve with each course of the
following menu.  And, by the way, I don't like Sauternes."</p>

<p>
It would be difficult today to construct a Web agent that would be
capable of performing a search for wines on the Web that satisfied
this query.  Similarly, consider actually assigning a software agent
the task of making a coherent set of travel arrangements.  (For more
use cases see the <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Requirements">OWL requirements document</a>.)
</p>

<p>
To support this sort of computation, it is necessary to go beyond
keywords and specify the meaning of the resources described on
the Web. This additional layer of interpretation captures the
<em>semantics</em> of the data.
</p>

<p>
<a id="term_ontology" name="term_ontology"></a>
The OWL Web Ontologoy Language is a language for defining and instantiating <em>Web
ontologies</em>.  <em>Ontology</em> is a term borrowed from philosophy
that refers to the science of describing the kinds of entities in the
world and how they are related.  An 
<a id="Owl_Ontology_definition" name="Owl_Ontology_definition">
<em>OWL ontology</em></a> may include
descriptions of <i>classes</i>, <i>properties</i> and their instances.
Given such an ontology, the 
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/"> 
OWL formal semantics</a> specifies how to derive its logical
consequences, i.e. facts not literally present in the ontology, but
<a id="term_entailed" name="term_entailed"></a><em>entailed</em> by the 
semantics.  These entailments may be based on
a single document or multiple distributed documents that have been
combined using defined <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#import">OWL mechanisms</a>.
</p>

<p>
This document is one component of the description of OWL, the Web Ontology
Language, being produced by the W3C Web Ontology Working Group (WebOnt).
The <a href="http://www.w3.org/TR/2004/REC-owl-features-20040210/#s1.1">
Document Roadmap</a>
section of the Overview (<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#FeatureList">[Overview]</a>, 1.1) 
describes each of the different parts and how they fit together.
</p>

<p> 
One question that comes up when describing yet another XML/Web 
standard is "What does this buy me that XML and XML Schema don't?"  
<!-- An operational consensus can always be developed over the meaning of a
set of XML tags and their contents.  There is furious ongoing
standards activity doing exactly this. 
</p>
<p> -->
There are two answers to this question.  
</p>
<ul>
<li>
An ontology differs from an XML schema in that it is a knowledge
representation, not a message format.  Most industry based Web
standards consist of a combination of message formats and protocol
specifications.  These formats have been given an operational
semantics, such as,  "Upon receipt of this <tt>PurchaseOrder</tt> message,
transfer <tt>Amount</tt> dollars from <tt>AccountFrom</tt> to
<tt>AccountTo</tt> and ship <tt>Product</tt>."  But the specification
is not designed to support reasoning outside the transaction context.
For example, we won't in general have a mechanism to conclude that
because the <tt>Product</tt> is a type of Chardonnay it must also be a
white wine.  <br /><br />
</li>

<li>
One advantage of OWL ontologies will be the availability of tools that
can reason about them.  Tools will provide <em>generic</em> support
that is not specific to the particular subject domain, which would be
the case if one were to build a system to reason about a specific
industry-standard XML schema.  Building a sound and useful reasoning
system is not a simple effort.  Constructing an ontology is much more
tractable.  It is our expectation that many groups will embark on
ontology construction.  They will benefit from third party tools based
on the formal properties of the OWL language, tools that will deliver
an assortment of capabilities that most organizations would be hard
pressed to duplicate.  <br />
</li>
</ul>


<h2><a name="OwlVarieties">1.1. The Species of OWL</a></h2>

<p>
The OWL language provides three increasingly expressive sublanguages
designed for use by specific communities of implementers and users.
</p>
<ul>
<li>
<p><a id="term_OWLLite" name="term_OWLLite"></a><em>OWL Lite</em> supports those users primarily needing a classification
  hierarchy and simple constraint features.   For example, while OWL Lite
  supports cardinality constraints, it only permits cardinality values
  of 0 or 1. It should be simpler to provide tool support for
  OWL Lite than its more expressive relatives, and provide a quick migration path
  for thesauri and other taxonomies.   </p>
</li>

<li>
<p><a id="term_OWLDL" name="term_OWLDL"></a><em>OWL DL</em> supports those users
who want the maximum expressiveness without losing computational
completeness (all entailments are guaranteed to be computed) and decidability (all 
computations will finish in finite time) of reasoning systems.  
OWL DL includes all OWL language constructs
with restrictions such as type separation (a class can not also be an individual or
property, a property can not also be an individual or class).  
OWL DL is so named due to its correspondence with
  <em>description logics</em> <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DescriptionLogics">[Description Logics]</a>, 
  a field of research that has studied a particular decidable fragment of 
  first order logic.  OWL DL was designed to support the existing Description Logic 
  business segment and has desirable computational properties 
  for reasoning systems.
</p>
</li>

<li>
<p><a id="term_OWLFull" name="term_OWLFull"></a><em>OWL Full</em> is meant for
users who want maximum expressiveness and the syntactic freedom of RDF with 
no computational guarantees.  For example, in OWL Full a class
  can be treated simultaneously as a collection of individuals 
  and as an individual in its own right.  Another significant difference from
  OWL DL is that a <tt>owl:DatatypeProperty</tt> can be marked as
  an <tt>owl:InverseFunctionalProperty</tt>.  OWL Full allows an ontology to
  augment the meaning of the pre-defined (RDF or OWL) vocabulary.  It is 
unlikely that any reasoning software will be able to support every feature of
OWL Full.  
<!-- DELETED
Some communities may find it useful 
to create other subsets of OWL Full than OWL DL that
have desireable computational properties while requiring 
a different set of constraints. -->
</p>
</li>
</ul>

<p>
Each of these sublanguages is an extension of its simpler predecessor, both
in what can be legally expressed and in what can be validly concluded.
The following set of relations hold. Their inverses do not.
</p>
<ul>
<li>Every legal OWL Lite ontology is a legal OWL DL ontology. </li>
<li>Every legal OWL DL ontology is a legal OWL Full ontology. </li>
<li>Every valid OWL Lite conclusion is a valid OWL DL conclusion.</li>
<li>Every valid OWL DL conclusion is a valid OWL Full conclusion.</li>
</ul>

<p>
  Ontology developers adopting OWL should consider which species best
  suits their needs.  The choice between OWL Lite and OWL DL 
  depends on the extent to which users require the more expressive
  restriction constructs provided by OWL DL.  Reasoners for OWL
  Lite will have desirable computational properties.  Reasoners for
  OWL DL, while dealing with a decidable sublanguage, will be subject to
  higher worst-case complexity.
  The choice between OWL DL and OWL Full mainly
  depends on the extent to which users require the
  meta-modelling facilities of RDF Schema (i.e. defining classes of
  classes). 
  When using OWL Full as compared to OWL
  DL, reasoning support is less predictable. 
  For more information about this issue see the
  <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#FormalModel">OWL semantics document</a>.
</p>
<p>

Users migrating from RDF to OWL DL or OWL Lite need to take care to
ensure that the original RDF document complies with the constraints
imposed by OWL DL and OWL Lite. The details of these constraints are
explained in
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#app-DLinRDF">
Appendix E</a> of the OWL Reference.

</p>
<p>
<a name="OWL_DL_tag"></a>
<a name="OWL_Full_tag"></a>
When we introduce constructs that are only permitted in OWL DL or
OWL Full, they are marked by "[OWL DL]".  
</p>

<h2><a name="StructureOfDoc">1.2. Structure of the Document</a></h2>

<p> 
In order to provide a consistent set of examples throughout the
guide, we have created a <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine.rdf">wine</a> and 
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food.rdf">food</a> ontology.  This
is an OWL DL ontology.  Some of our discussion will
focus on OWL Full capabilities and is so marked.  

The wine and food ontology is a significant modification of an <a
href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#wine1">element</a> of the DAML ontology library with a long
history.  It was originally developed by McGuinness as a CLASSIC
description logic <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#wine3">example</a>, expanded to a 
description logic <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#wine4">tutorial</a>, and expanded to an ontology
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#wine2">tutorial</a>.
</p>

<p>
In this document we present examples using the 
<a href="http://www.w3.org/TR/REC-rdf-syntax/#grammar">RDF/XML syntax</a>
(<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#RDF1">[RDF]</a>, 5), 
assuming XML will be familiar
to the largest audience.  The normative OWL exchange syntax is RDF/XML.
Note that OWL has been designed for maximal compatibility
with RDF and RDF Schema.  These XML and RDF formats are part of the
OWL standard. 
</p>

<!--
Notes indicating expected changes pending clarification are marked
with '@@', e.g. [@@ Note].
-->

<p> 
All of the examples presented in this document are taken from the
ontologies contained in <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine.rdf">wine.rdf</a> and <a
href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food.rdf">food.rdf</a>, except those marked with <span
class="red">&nbsp;&not;&nbsp;</span> in the bottom right corner.
</p>

<hr />

<h1><a name="StructureOfOntologies">2. The Structure of Ontologies</a>
</h1>

<p>
OWL is a component of the <a
href="http://www.w3.org/2001/sw/"><i>Semantic Web</i></a>
activity. This effort aims to make Web resources more readily
accessible to automated processes by adding information about the resources
that describe or provide Web content.  
As the Semantic Web is inherently distributed, OWL must allow for information to be
gathered from distributed sources.  This is partly done by allowing
ontologies to be related, including explicitly importing
information from other ontologies.
</p>
<p>
In addition, OWL makes an <a id="term_openworld"
name="term_openworld"></a><em>open world</em> assumption.  That is,
descriptions of resources are not confined to a single file or scope.
While class <tt>C1</tt> may be defined originally in ontology O1, it
can be extended in other ontologies.  The consequences of these
additional propositions about <tt>C1</tt> are <a id="term_monotonic"
name="term_monotonic"></a><em>monotonic</em>.  New information cannot
retract previous information.  New information can be contradictory,
but facts and entailments can only be <em>added</em>, never
<em>deleted</em>.
</p>
<p>
The possibility of such contradictions is something the designer of an
ontology needs to take into consideration.  It is expected that tool
support will help detect such cases.
</p>

<p>
In order to write an ontology that can be interpreted
unambiguously and used by software agents we require a syntax and formal semantics for
OWL.   OWL is a vocabulary extension 
<a href="http://www.w3.org/TR/rdf-mt/">[RDF Semantics]</a> of RDF.
The OWL semantics are defined in
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#FormalModel"><i>OWL Web Ontology Language Semantics and Abstract Syntax</i></a>.
</p>


<h2><a name="Namespaces">2.1. Namespaces</a></h2>

<p>
Before we can use a set of terms, we need a precise indication of what
specific vocabularies are being used.  
A standard initial component of an ontology includes a set of
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#XMLNS"><em>XML namespace</em></a> declarations
enclosed in an opening <tt>rdf:RDF</tt> tag. 

These provide a means to unambiguously interpret identifiers and make
the rest of the ontology presentation much more readable.  A typical
OWL ontology begins with a <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#XMLNS">namespace declaration</a>
similar to the following.   Of course, the URIs of the defined
ontologies will not usually be w3.org references.
</p>


<pre>
&lt;rdf:RDF 
    xmlns     ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" 
    xmlns:vin ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#"       
    xml:base  ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#"       
    xmlns:food="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#"    
    xmlns:owl ="http://www.w3.org/2002/07/owl#"
    xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:xsd ="http://www.w3.org/2001/XMLSchema#"&gt; 
</pre>

<p>
The first two declarations identify the namespace associated with this
ontology.  The first makes it the <em>default</em> namespace, stating that
unprefixed qualified names refer to the current
ontology.  The second identifies the namespace of the current ontology
with the prefix <tt>vin:</tt>. The third identifies the base URI for
this document (see 
<a href="#owl_imports">
below </a>). The fourth identifies the namespace of
the supporting food ontology with the prefix <tt>food:</tt>. 
</p>

<p>
The fifth namespace declaration says that in this document, elements
prefixed with <tt>owl:</tt> should be understood as referring to
things drawn from the namespace called
<code>http://www.w3.org/2002/07/owl#</code>.  This is a conventional
OWL declaration, used to introduce the OWL vocabulary.
</p>

<p>
OWL depends on constructs defined by RDF, RDFS, and XML Schema datatypes.  
In this document, the <tt>rdf:</tt> prefix refers to things drawn from
the namespace called
<code>http://www.w3.org/1999/02/22-rdf-syntax-ns#</code>. The next two
namespace declarations make similar statements about the RDF Schema
(<tt>rdfs:</tt>) and XML Schema datatype (<tt>xsd:</tt>) namespaces.
</p>

<p>
As an aid to writing lengthy URLs it can often be
useful to provide a set of entity definitions in a document type
declaration (DOCTYPE) that precedes the ontology definitions.  The names defined by the namespace
declarations only have significance as parts of XML tags.  Attribute
values are <em>not</em> namespace sensitive.  But in OWL we frequently
reference ontology identifiers using attribute values.  They can be
written down in their fully expanded form, for
example "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#merlot".  Alternatively,
abbreviations can be defined using an ENTITY definition, for example:
</p>
<pre>
&lt;!DOCTYPE rdf:RDF [
    &lt;!ENTITY vin  "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" &gt;
    &lt;!ENTITY food "http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#" &gt; ]&gt;
</pre>
<p>
After this pair of ENTITY declarations, we could write the value
"&amp;vin;merlot" and it would expand to
"http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#merlot".
</p>
<p>
Perhaps more importantly, the <tt>rdf:RDF</tt> namespace declarations
can then be simplified so that changes made to the
entity declarations will propagate through the ontology consistently.
</p>
<pre>
&lt;rdf:RDF 
    xmlns     ="&amp;vin;" 
    xmlns:vin ="&amp;vin;" 
    xml:base  ="&amp;vin;" 
    xmlns:food="&amp;food;"
    xmlns:owl ="http://www.w3.org/2002/07/owl#"
    xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:xsd ="http://www.w3.org/2001/XMLSchema#"&gt; 
</pre>

<h2><a id="OntologyHeaders" name="OntologyHeaders">2.2. Ontology Headers</a></h2>

<p><a id="owl_Ontology" name="owl_Ontology"></a>
Once namespaces are established we normally include a 
collection of  assertions about the ontology grouped under 
an <tt>owl:Ontology</tt> tag.  These tags support
such critical housekeeping tasks as comments, version control and
inclusion of other ontologies. 
</p>

<pre>
&lt;owl:Ontology rdf:about=""&gt; 
  &lt;rdfs:comment&gt;An example OWL ontology&lt;/rdfs:comment&gt;
  &lt;owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine"/&gt; 
  &lt;owl:imports rdf:resource="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food"/&gt; 
  &lt;rdfs:label&gt;Wine Ontology&lt;/rdfs:label&gt; 
  ...
</pre>

<p> 
Note that we use '...' to indicate that there is additional text that
has been elided for purposes of the example.
</p>

<p>
The <tt>owl:Ontology</tt> element is a place to collect much of
the OWL meta-data for the document.  It does not guarantee that the
document describes an ontology in the traditional sense.  
In some communities, ontologies
are not about individuals but only the classes and properties that define a domain.
When using OWL to describe a collection of instance data
the <tt>owl:Ontology</tt> tag may be needed in order to record version
information and to import the definitions that the document depends on.
Thus, in OWL the term <em>ontology</em> has been broadened to include
instance data (<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Owl_Ontology_definition">see above</a>).
</p>

<p>
<a id="owl_imports" name="owl_imports"></a>
<a id="rdfs_comment" name="rdfs_comment"></a>
The <tt>rdf:about</tt> attribute provides a name or reference for the ontology.
Where the value of the attribute is "", the standard case, the 
name of the ontology is the base URI of the <tt>owl:Ontology</tt> element.  
Typically, this is the URI of the document containing the ontology.
An exception to this is a context that makes use of <tt>xml:base</tt> 
which may set the base URI for an element to something other than the 
URI of the current document.
</p>

<p>
<tt>rdfs:comment</tt> provides the obvious needed capability
to annotate an ontology.
</p>

<p>
<tt>owl:priorVersion</tt> is a standard tag intended to provide
hooks for version control systems working with ontologies.  Ontology
versioning is discussed further <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OntologyVersioning">below.</a>
</p>

<p>
<a id="term_import" name="term_import"></a>
<a id="import" name="import"><tt>owl:imports</tt></a>
provides an include-style mechanism.  
<tt>owl:imports</tt>
takes a single argument, identified by the <tt>rdf:resource</tt> attribute.
</p>

<p>
Importing another ontology brings the entire set of assertions 
provided by that ontology into the current ontology.
In order to make best use of this imported ontology it would normally
be coordinated with a namespace declaration.  Notice the distinction
between these two mechanisms.  The namespace declarations provide
a convenient means to <em>reference</em> names defined in other OWL
ontologies.

Conceptually, <tt>owl:imports</tt> is provided to indicate your
intention to <em>include</em> the assertions of the target ontology.
Importing another ontology, <em>O2</em>, will also import all of the
ontologies that <em>O2</em> imports.
</p>

<p>
Note that <tt>owl:imports</tt> may not always succeed.  As you would
expect when dealing with the Semantic Web, access to resources
distributed across the Web may not always be possible.  Tools will
respond to this situation in an implementation defined manner.
</p>

<p>
Note that in order to use the OWL vocabulary you do not need to
import the <a href="http://www.w3.org/2002/07/owl">owl.rdf</a>
ontology.  In fact, such an import is not recommended.
</p>

<p>
One common set of additional tags that could reasonably be included
here are some of the standard <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DublinCore">Dublin
Core</a> metadata tags.  The subset includes those that take simple
types or strings as values.  Examples include Title, Creator,
Description, Publisher, and Date (see 
<a href="http://purl.org/dc/elements/1.1/">RDF declarations</a>).
</p>

<p>
Properties that are used as annotations should be declared using 
<a id="owl_AnnotationProperty" name="owl_AnnotationProperty"></a>
<tt>owl:AnnotationProperty</tt>.  E.g.
</p>
<pre>
&lt;owl:AnnotationProperty rdf:about="&amp;dc;creator" /&gt;
</pre>

<p>
OWL provides several other mechanisms to tie the current ontology and
imported ontologies together (see <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OntologyMapping">ontology
mapping</a>).
</p>
<p>
We also include an <tt>rdfs:label</tt> to
support a natural language label for our ontology.
</p>

<p>The ontology header definition is closed with
the following tag.
</p>
<pre>
&lt;/owl:Ontology&gt;
</pre>
<p>
This prelude is followed by the actual definitions that 
make up the ontology and is ultimately closed by 
</p>
<pre>
&lt;/rdf:RDF&gt;
</pre>
    
<h2><a id="Privacy" name="Privacy">2.3. Data Aggregation and Privacy</a></h2>

<p>
OWL's ability to express ontological information about instances
appearing in multiple documents supports linking of data from diverse
sources in a principled way.  The underlying semantics provides
support for inferences over this data that may yield unexpected
results.  In particular, the ability to express equivalences using
<tt>owl:sameAs</tt> can be used to state that seemingly
different individuals are actually the same.
<tt>Owl:InverseFunctionalProperty</tt> can also be used to link
individuals together.
For example, if a property such as "SocialSecurityNumber" is an
<tt>owl:InverseFunctionalProperty</tt>, then two separate individuals
could be inferred to be identical based on having the same value of
that property.  When individuals are determined to be the same by such
means, information about them from different sources can be
merged. This <i>aggregation</i> can be used to determine facts that
are not <i>directly</i> represented in any one source.
</p>

<p> 
The ability of the Semantic Web to link information from multiple
sources is a desirable and powerful feature that can be used in many
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#IntegratingApplications">applications</a>.
However, the capability to merge data from multiple sources, combined
with the inferential power of OWL, does have potential for abuse.
Users of OWL should be alert to the potential privacy implications.

Detailed security solutions were considered out of scope for the
Working Group.  A number of organizations are addressing these
issues with a variety of security and preference solutions. 
See for example
<a href="http://www.oasis-open.org/committees/security/charter.php">
SAML</a> and 
<a href="http://www.w3.org/P3P/">P3P</a>.
</p>

<hr />

<h1><a name="BasicDefinitions">3. Basic Elements</a></h1>

<p>
Most of the elements of an OWL ontology concern classes, properties,
instances of classes, and relationships between these instances.
This section presents the language components essential to introducing
these elements.
</p>

<h2><a name="SimpleClasses">3.1. Simple Classes and Individuals</a></h2>

<p>
Many uses of an ontology will depend on the ability to reason
about individuals.  In order to do this in a useful fashion we need to
have a mechanism to describe the classes that individuals belong to
and the properties that they inherit by virtue of class membership.
We can always assert specific properties about individuals, but much
of the power of ontologies comes from class-based reasoning.
</p>
<p>
Sometimes we want to emphasize the distinction between a class as an
object and a class as a set containing elements.  
We call the set of individuals that are members of a class 
the <a id="term_extension" name="term_extension"></a><em>extension</em> of the class.
</p>


<h3><a name="DefiningSimpleClasses">3.1.1. Simple Named Classes</a><br />
<tt>Class, rdfs:subClassOf</tt></h3>

<p>
<a id="owl_Thing" name="owl_Thing"></a>
<a id="owl_Nothing" name="owl_Nothing"></a>
The most basic concepts in a domain should correspond
to classes that are the roots of various 
taxonomic trees.  Every individual in the OWL world is a member of
the class
<tt>owl:Thing</tt>.  Thus each user-defined class 
is implicitly a subclass of <tt>owl:Thing</tt>.  Domain specific root classes are
defined by simply declaring a named class.
OWL also defines the empty class, <tt>owl:Nothing</tt>.
</p>

<p><a id="owl_Class" name="owl_Class"></a>
For our sample wines domain, we create three root classes: <tt>Winery</tt>,
<tt>Region</tt>, and <tt>ConsumableThing</tt>.  
</p>

<pre>
&lt;owl:Class rdf:ID="Winery"/&gt; 
&lt;owl:Class rdf:ID="Region"/&gt; 
&lt;owl:Class rdf:ID="ConsumableThing"/&gt; 
</pre>

<p>
Note that we have only said that there exist classes that have been 
given these names, indicated by the '<tt>rdf:ID=</tt>' syntax.  Formally, we
know almost nothing about these classes other than their existence,
despite the use of familiar English terms as labels.  And while the
classes exist, they may have no members.  For all we know at the
moment, these classes might as well have been called <tt>Thing1</tt>,
<tt>Thing2</tt>, and <tt>Thing3</tt>.
</p>
<p>
It is important to remember that definitions may be incremental and distributed.  
In particular, we will have more to say about <tt>Winery</tt> later.
</p>

<p>
The syntax <tt>rdf:ID="Region"</tt> is used to introduce a
name, as part of its definition. This is the
<a href="http://www.w3.org/TR/rdf-syntax-grammar/#idAttr">rdf:ID
attribute</a> (<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#RDF1">[RDF]</a>, 7.2.22) that is like the familiar ID attribute defined by XML.
Within this document, the <tt>Region</tt> class can now be referred to using 
<tt>#Region</tt>, e.g. <tt>rdf:resource="#Region"</tt>.  
Other ontologies may reference this
name using its complete form, 
<tt>"http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Region"</tt>.
</p>

<p>
Another form of reference
uses the syntax <tt>rdf:about="#Region"</tt> to <a
href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DefiningIndividuals"><em>extend</em></a> the definition of a
resource.
This use of the <tt>rdf:about="&amp;ont;#x"</tt> syntax is a critical element
in the creation of a distributed ontology.  It permits the extension
of the imported definition of <tt>x</tt> without modifying the
original document and supports the incremental construction of a larger ontology.  
</p>
<p>
It is now possible to refer to the classes we defined in other OWL
constructs using their given identifier.  For the first class, within
this document, we can use the relative identifier, <tt>#Winery</tt>.
Other documents may need to reference this class as well.  The most
reasonable way to do so is to provide namespace and entity definitions
that include the defining document as a source:
</p>
<pre>
...
&lt;!ENTITY vin  "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" &gt;
&lt;!ENTITY food "http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#" &gt;
...
&lt;rdf:RDF xmlns:vin ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#"
         xmlns:food="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#" ... &gt;
...
</pre>
<p>
Given these definitions we can refer to the winery class either
using the XML tag <tt>vin:Winery</tt> or the attribute value <tt>&amp;vin;Winery</tt>.
More literally, it is always possible to reference a resource using its full URI,
here <code>http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Winery</code>.
</p>

<p>
The fundamental taxonomic constructor for
classes is <tt>rdfs:subClassOf</tt>.
It relates a more specific class to a more general
class.  If X is a subclass of Y, then every instance of X is also
an instance of Y.  
The <tt>rdfs:subClassOf</tt> relation is transitive.  If X is a subclass of Y
and Y a subclass of Z then X is a subclass of Z.  
</p>

<pre>
&lt;owl:Class rdf:ID="PotableLiquid"&gt; 
  &lt;rdfs:subClassOf rdf:resource="#ConsumableThing" /&gt;
  ...
&lt;/owl:Class&gt; 
</pre>

<p>
We define <tt>PotableLiquid</tt> (liquids suitable for drinking) to
be a subclass of <tt>ConsumableThing</tt>.  
</p>
<p>
In the world of Web-based ontologies, both of these classes
can be defined in a separate ontology that would provide the basic
building blocks for a wide variety of food and drink ontologies, which
is what we have done - they are defined in the
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food.rdf">food</a> ontology, which 
is <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#import">imported</a> into the wine ontology.  
The food ontology includes a number of classes, for example
<tt>Food</tt>, <tt>EdibleThing</tt>, <tt>MealCourse</tt>, and
<tt>Shellfish</tt>, that do not belong in a collection of wine facts,
but must be connected to the wine vocabulary if we are going to
perform useful reasoning.  Food and wine are mutually
dependent, in order to satisfy our need to identify wine/food matches.
</p>

<p>
A class definition has two parts: a name introduction or reference 
and a list of restrictions.  Each of the immediate contained
expressions in the class definition further restricts the instances of
the defined class.  Instances of the class belong to the intersection of
the restrictions.  (Though see the details of <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_equivalentClass">
<tt>owl:equivalentClass</tt></a>.)
So far we have only seen examples that include a single restriction,
forcing the new class to be a subclass of some other named class.
</p>

<p>
<a id="rdfs_subClassOf" name="rdfs_subClassOf"></a>
<a id="rdfs_label" name="rdfs_label"></a>
At this point it is possible to create a simple (and incomplete)
definition for the class <tt>Wine</tt>.  <tt>Wine</tt> is a
<tt>PotableLiquid</tt>.  We also define <tt>Pasta</tt> as an 
<tt>EdibleThing</tt>.
</p>

<pre>
&lt;owl:Class rdf:ID="Wine"&gt; 
  &lt;rdfs:subClassOf rdf:resource="&amp;food;PotableLiquid"/&gt; 
  &lt;rdfs:label xml:lang="en"&gt;wine&lt;/rdfs:label&gt; 
  &lt;rdfs:label xml:lang="fr"&gt;vin&lt;/rdfs:label&gt; 
  ...  
&lt;/owl:Class&gt; 

&lt;owl:Class rdf:ID="Pasta"&gt;
  &lt;rdfs:subClassOf rdf:resource="#EdibleThing" /&gt;
  ...
&lt;/owl:Class&gt;
</pre>

<p>
The <tt>rdfs:label</tt> entry provides an optional human readable
name for this class.  Presentation tools can make use of it.
The "lang" attribute provides support for multiple languages.  A label
is like a comment and contributes nothing to the logical
interpretation of an ontology. </p>

<p>
Our wine definition is still very incomplete. We know nothing about
wines except that they are things and potable liquids, but we have
sufficient information to create and reason about individuals.
</p>

<h3><a name="DefiningIndividuals">3.1.2. Individuals</a></h3>

<p>
In addition to classes, we want to be able to describe their members.
We normally think of these as individuals in our universe of things.
An individual is minimally introduced by declaring it to be a member
of a class.
</p>
<pre>
&lt;Region rdf:ID="CentralCoastRegion" /&gt; 
</pre>

<p>
Note that the following is identical in meaning to the 
example above.  
<a id="rdf_type" name="rdf_type"></a>
</p>

<pre>
&lt;owl:Thing rdf:ID="CentralCoastRegion" /&gt; 

&lt;owl:Thing rdf:about="#CentralCoastRegion"&gt; 
   &lt;rdf:type rdf:resource="#Region"/&gt; 
&lt;/owl:Thing&gt;
</pre>

<p>
<tt>rdf:type</tt> is an RDF property that ties an individual to a class
   of which it is a member.
</p>

<p>
There are a couple of points to be made here. First,
we have decided that <tt>CentralCoastRegion</tt> (a specific area) is
member of <tt>Region</tt>, the class containing all geographical regions.   
Second, there is no requirement in the two-part example that the two
elements need to be adjacent to one another, or even in the same
file (though the names would need to be extended with a URI in such a
case).  We design Web ontologies to be distributed.  They can be
imported and augmented, creating derived ontologies.
</p>

<p>
In order to have available a few more classes for the
properties introduced in the next sections, we define a branch
of the <tt>Grape</tt> taxonomy, with an individual denoting the
Cabernet Sauvignon grape varietal.  Grapes are defined in the food ontology:
</p>
<pre>
&lt;owl:Class rdf:ID="Grape"&gt;
  ...
&lt;/owl:Class&gt;
</pre>
<p>
And then in the wine ontology we have:
</p>
<pre>
&lt;owl:Class rdf:ID="WineGrape"&gt;
  &lt;rdfs:subClassOf rdf:resource="&amp;food;Grape" /&gt;
&lt;/owl:Class&gt;

&lt;WineGrape rdf:ID="CabernetSauvignonGrape" /&gt;
</pre>

<p>
<!-- this means that we have in some sense limited our ontology
for specific purposes.  Because it is itself an individual,
we cannot create an instance of <tt>CabernetSauvignonGrape</tt>. 
If we needed to talk about individual grapes or specific bunches of grapes, we would have
designed the ontology differently. -->

As discussed in the next section,
<tt>CabernetSauvignonGrape</tt> is an individual because it denotes a
single grape varietal. 
</p>

<h3><a name="DesignForUse">3.1.3. Design for Use</a></h3>

<p>
<a id="term_class" name="term_class"></a>
<a id="term_individual" name="term_individual"></a>
There are important issues regarding the distinction between a <i>class</i> and
an <i>individual</i> in OWL.  A class is simply a name and collection of properties
that describe a set of individuals. Individuals are the members of those sets.
Thus classes should correspond to naturally occurring sets of things in a domain
of discourse, and individuals should correspond to actual entities that can be grouped
into these classes.
</p>
<p>
In building ontologies, this distinction is frequently blurred in two ways:
</p>

<ul>
  <li>
  <i>Levels of representation:</i> In certain contexts something 
  that is obviously a class can itself be considered an instance of something else.  For
  example, in the wine ontology we have the notion of a <tt>Grape</tt>, which is 
  intended to denote the set of all <i>grape varietals.</i>   
  <tt>CabernetSauvingonGrape</tt> is
  an example instance of this class, as it denotes the actual grape varietal 
  called Cabernet Sauvignon.
  However, <tt>CabernetSauvignonGrape</tt> could itself be considered a class, the set of all
  actual Cabernet Sauvignon grapes.  
  <br />
  <br />
</li>

<li>
<a id="instance-of" name="instance-of"></a>
<a id="term_instanceOf" name="term_instanceOf"></a>
<i>Subclass vs. instance:</i> It is very easy to confuse the 
instance-of relationship with the subclass relationship.  
For example, it may seem arbitrary to choose to make <tt>CabernetSauvignonGrape</tt>
an individual that is an instance of <tt>Grape,</tt> as opposed to a subclass of <tt>Grape</tt>.
This is not an arbitrary
decision.  The <tt>Grape</tt>  class denotes the set of all
<i>grape varietals</i>, and therefore any subclass of <tt>Grape</tt>  should denote a subset of these
varietals. Thus, CabernetSauvignonGrape should be considered an
<a id="term_instance" name="term_instance"></a><em>instance of</em> Grape, and not a subclass. It does not
describe a subset of Grape varietals, it <em>is</em> a grape varietal.
</li>
</ul>

<p>
Note that the same distinction arises with the treatment of the
<tt>Wine</tt> class.  The <tt>Wine</tt> class actually denotes the set
of all <em>varieties</em> of wine, not the set of actual bottles that
someone may purchase.

In an alternate ontology, each instance of <tt>Wine</tt> in the current
ontology could instead designate a class
consisting of all the bottles of wine of that type.  It is easy to
imagine an information system, such as an inventory system for a wine
merchant, that needs to consider individual bottles of wine.  

The wine ontology as it currently exists would require the ability to
treat classes as instances in order to support such an interpretation.

Note that OWL Full permits such expressivity, 
allowing us to treat an instance of a wine variety simultaneously 
as a class whose instances are bottles of wine.

</p>

<p>
In a similar vein, the wines produced by wineries in specific years
are considered vintages.  In order to represent the notion of a
vintage, we must determine where it fits in the current ontology.  An
instance of the <tt>Wine</tt> class, as discussed above, represents a
single variety of wine produced by a single winery, for example
<tt>FormanChardonnay.</tt>
</p>

<p>
Adding that the wine produced in the year 2000 is considered a 
<a id="vintageIntro" name="vintageIntro">vintage</a>
poses a challenge, because we don't have the ability to represent a
subset of a given wine individual.  This vintage is not a new
variety of wine, it is a special subset of the wine - that produced in
the year 2000.  

An option would be to use OWL Full and treat the wine instances as
classes with subclasses (subsets) denoting vintages. Another option is
to use a workaround and to consider <tt>Vintage</tt> as a separate class whose
instances have a relationship to the Wine they are a vintage of.

For example, <tt>FormanChardonnay2000</tt> is an
individual <tt>Vintage</tt> with a <tt>vintageOf</tt> property whose value is
the <tt>Wine</tt>, <tt>FormanChardonnay.</tt> We define the 
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#vintage"><tt>Vintage</tt></a> class below.
</p>

<p>
The point of this
discussion is to note that the development of an ontology should be
firmly driven by the intended usage.  These issues also underlie
one major difference between OWL Full and OWL DL. OWL Full
allows the use of classes as instances and OWL DL does not.
The wine ontology is designed to work in OWL DL, and
as a result individuals like <tt>FormanChardonnay</tt> are not 
simultaneously treated as classes.
</p>


<h2><a name="SimpleProperties">3.2. Simple Properties </a></h2>

<p>This world of classes and individuals would be pretty uninteresting
if we could only define taxonomies.  
<a id="term_Properties" name="term_Properties"></a><em>Properties</em> let us assert
general facts about the members of classes and specific facts about
individuals. 
</p>

<h3><a name="DefiningProperties">3.2.1. Defining Properties</a><br /> 
<tt>ObjectProperty, DatatypeProperty, rdfs:subPropertyOf, <br />
rdfs:domain, rdfs:range</tt></h3>

<p>A property is a binary relation. 
Two types of properties are distinguished:
</p>

<ul>
<li>
<a id="term_datatypeproperties" name="term_datatypeproperties"></a><em>datatype properties</em>, 
relations between instances of
classes and RDF literals and XML Schema datatypes</li>

<li><a id="term_objectproperties" name="term_objectproperties"></a><em>object properties</em>, 
relations between instances of two classes.
Note that the name <i>object</i> property is not intended to reflect a
connection with the <a href="http://www.w3.org/RDF/">RDF</a> term <a
href="http://www.w3.org/TR/rdf-schema/#ch_object">rdf:object</a>
(<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#RDF1">[RDF]</a>, 5.3.4).
</li>
</ul>

<p>
<a id="owl_ObjectProperty" name="owl_ObjectProperty"></a>
<a id="term_domain" name="term_domain"></a>
<a id="term_range" name="term_range"></a>
<a id="rdfs_domain" name="rdfs_domain"></a>
<a id="rdfs_range" name="rdfs_range"></a>
When we define a property
there are a number of ways to restrict the relation.
The domain and range can be specified.  The property can be defined to
be a specialization (subproperty) of an existing property.  More elaborate
restrictions are possible and are described  
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#PropertyCharacteristics">later</a>. 
</p>

<pre>
&lt;owl:ObjectProperty rdf:ID="madeFromGrape"&gt; 
  &lt;rdfs:domain rdf:resource="#Wine"/&gt;
  &lt;rdfs:range rdf:resource="#WineGrape"/&gt; 
&lt;/owl:ObjectProperty&gt; 

&lt;owl:ObjectProperty rdf:ID="course"&gt;
  &lt;rdfs:domain rdf:resource="#Meal" /&gt;
  &lt;rdfs:range rdf:resource="#MealCourse" /&gt;
&lt;/owl:ObjectProperty&gt;
</pre>

<p>
<a id="rdfs_subPropertyOf" name="rdfs_subPropertyOf"></a>
In OWL, a sequence of elements without an explicit operator
represents an implicit conjunction.   
The property <tt>madeFromGrape</tt> has a domain of <tt>Wine</tt>
<em>and</em> a range of <tt>WineGrape</tt>.  That is, it relates
instances of the class <tt>Wine</tt> to instances of the class
<tt>WineGrape</tt>.   Multiple domains mean that the 
domain of the property is the intersection of
the identified classes (and similarly for range). 
</p>
<p>
Similarly, the property <tt>course</tt> ties a <tt>Meal</tt> to a <tt>MealCourse</tt>.
</p>
<p>
Note that the use of range and domain information in OWL is different
from type information in a programming language.  Among other things, types
are used to check consistency in a programming language.  In OWL, a range may be
used to infer a type.  For example, given:
</p>
<pre>
&lt;owl:Thing rdf:ID="LindemansBin65Chardonnay"&gt;
  &lt;madeFromGrape rdf:resource="#ChardonnayGrape" /&gt;
&lt;/owl:Thing&gt;                                             <span class="red">&nbsp;&not;&nbsp;</span>
</pre>
<p>
we can infer that <tt>LindemansBin65Chardonnay</tt> is a wine because
the domain of <tt>madeFromGrape</tt> is <tt>Wine</tt>.
</p>
<p>
Properties, like classes, can be arranged in a hierarchy.
</p>
<pre>
&lt;owl:Class rdf:ID="WineDescriptor" /&gt;

&lt;owl:Class rdf:ID="WineColor"&gt;
  &lt;rdfs:subClassOf rdf:resource="#WineDescriptor" /&gt;
  ...
&lt;/owl:Class&gt;

&lt;owl:ObjectProperty rdf:ID="hasWineDescriptor"&gt;
  &lt;rdfs:domain rdf:resource="#Wine" /&gt;
  &lt;rdfs:range  rdf:resource="#WineDescriptor" /&gt;
&lt;/owl:ObjectProperty&gt;

&lt;owl:ObjectProperty rdf:ID="hasColor"&gt;
  &lt;rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" /&gt;
  &lt;rdfs:range rdf:resource="#WineColor" /&gt;
  ...
&lt;/owl:ObjectProperty&gt;
</pre>
<p>
<tt>WineDescriptor</tt> properties relate wines to their color and components of their
taste, including sweetness, body, and flavor.  <tt>hasColor</tt>  is a
subproperty of the <tt>hasWineDescriptor</tt> property, with its range 
further restricted to <tt>WineColor</tt>.  The <tt>rdfs:subPropertyOf</tt>
relation in this case means that anything with a <tt>hasColor</tt>
property with value X also has a <tt>hasWineDescriptor</tt> property
with value X.
</p>

<p>
Next we introduce the <tt>locatedIn</tt> property, which relates things to
the regions they are located in.  
</p>
<pre>
&lt;owl:ObjectProperty rdf:ID="locatedIn"&gt;
  ...
  &lt;rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing" /&gt;
  &lt;rdfs:range rdf:resource="#Region" /&gt;
&lt;/owl:ObjectProperty&gt;
</pre>
<p>
Notice how the domain and range of <tt>locatedIn</tt> are defined.
The domain permits anything to be located in a region, including
regions themselves.  And the 
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_TransitiveProperty">transitive</a> 
composition of this relation
essentially creates a network of geographically included subregions
and things.  Those things that have nothing located in them
can be of any class, while those that contain others must be
regions.
</p>

<p>
It is now possible to expand the definition of <tt>Wine</tt> to
include the notion that a wine is 
made from at least one <tt>WineGrape</tt>.
As with property definitions, class definitions have multiple subparts that are
implicitly conjoined.
</p>

<pre>
&lt;owl:Class rdf:ID="Wine"&gt; 
  &lt;rdfs:subClassOf rdf:resource="&amp;food;PotableLiquid"/&gt; 
  &lt;rdfs:subClassOf&gt;
<span class="highlight">    &lt;owl:Restriction&gt; 
      &lt;owl:onProperty rdf:resource="#madeFromGrape"/&gt;
      &lt;owl:minCardinality rdf:datatype="&amp;xsd;nonNegativeInteger"&gt;1&lt;/owl:minCardinality&gt;
    &lt;/owl:Restriction&gt; </span>
  &lt;/rdfs:subClassOf&gt;
  ...  
&lt;/owl:Class&gt;
</pre>
<p>
The highlighted subclass restriction above
</p>
<pre>
    &lt;owl:Restriction&gt; 
      &lt;owl:onProperty rdf:resource="#madeFromGrape"/&gt;
      &lt;owl:minCardinality rdf:datatype="&amp;xsd;nonNegativeInteger"&gt;1&lt;/owl:minCardinality&gt;
    &lt;/owl:Restriction&gt; 
</pre>
<p>
defines an unnamed class that represents the set of things
with at least one <tt>madeFromGrape</tt> property.   
We call these <a id="term_anonymousClass" name="term_anonymousClass"></a><em>anonymous</em>
classes.  Including this restriction in the <tt>Wine</tt>
class definition body states that things that are wines are also
members of this anonymous class.  That is, every individual wine must participate
in at least one <tt>madeFromGrape</tt> relation.  
</p>

<p>
<a id="vintage" name="vintage" />
We can now describe the class of <tt>Vintage</tt>s, discussed <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#vintageIntro">previously</a>.
</p>

<pre>
&lt;owl:Class rdf:ID="Vintage"&gt; 
  &lt;rdfs:subClassOf&gt;
    &lt;owl:Restriction&gt; 
      &lt;owl:onProperty rdf:resource="#vintageOf"/&gt;
      &lt;owl:minCardinality rdf:datatype="&amp;xsd;nonNegativeInteger"&gt;1&lt;/owl:minCardinality&gt;
    &lt;/owl:Restriction&gt;
  &lt;/rdfs:subClassOf&gt;
&lt;/owl:Class&gt;                                             <span class="red">&nbsp;&not;&nbsp;</span>
</pre>

<p>
The property <tt>vintageOf</tt> ties a <tt>Vintage</tt> to a
<tt>Wine</tt>.
</p>

<pre>
&lt;owl:ObjectProperty rdf:ID="vintageOf"&gt;
  &lt;rdfs:domain rdf:resource="#Vintage" /&gt;
  &lt;rdfs:range  rdf:resource="#Wine" /&gt;
&lt;/owl:ObjectProperty&gt;                                    <span class="red">&nbsp;&not;&nbsp;</span>
</pre>
<p>
We relate <tt>Vintage</tt>s to their years in the next section.
</p>

<h3><a name="rdfs_Datatype"></a>
<a id="term_datatype" name="term_datatype"></a>
<a name="Datatypes1">3.2.2. Properties and Datatypes</a></h3>

<p>
We distinguish
properties according to whether they relate individuals to individuals
(object properties) or individuals to datatypes (datatype properties). 
Datatype properties may range over RDF literals or
simple types defined in accordance with 
<a href="http://www.w3.org/TR/xmlschema-2/">XML Schema datatypes</a>.
</p>

<p>
<a id="owl_DatatypeProperty" name="owl_DatatypeProperty"></a>
OWL uses most of the built-in XML
Schema datatypes.  References to these datatypes are by 
means of the URI reference for the datatype,
<tt>http://www.w3.org/2001/XMLSchema</tt>. The following datatypes are
<em>recommended</em> for use with OWL: 
</p>

<table class="info">
  <tbody>
<tr><td>xsd:string</td><td>xsd:normalizedString</td><td>xsd:boolean</td></tr> 
<tr><td>xsd:decimal</td><td>xsd:float</td><td>xsd:double</td></tr>
<tr><td>xsd:integer</td><td>xsd:nonNegativeInteger</td><td>xsd:positiveInteger</td></tr> 
<tr><td>xsd:nonPositiveInteger</td><td>xsd:negativeInteger</td></tr> 

<tr><td>xsd:long</td><td>xsd:int</td><td>xsd:short</td><td>xsd:byte</td></tr> 
<tr><td>xsd:unsignedLong</td><td>xsd:unsignedInt</td><td>xsd:unsignedShort</td><td>xsd:unsignedByte</td></tr> 
<tr><td>xsd:hexBinary</td><td>xsd:base64Binary</td></tr> 
<tr><td>xsd:dateTime</td><td>xsd:time</td><td>xsd:date</td><td>xsd:gYearMonth</td></tr> 
<tr><td>xsd:gYear</td><td>xsd:gMonthDay</td><td>xsd:gDay</td><td>xsd:gMonth</td></tr>
<tr><td>xsd:anyURI</td><td>xsd:token</td><td>xsd:language</td></tr> 
<tr><td>xsd:NMTOKEN</td><td>xsd:Name</td><td>xsd:NCName</td></tr>
  </tbody>
</table>
<p>
The above datatypes, plus <tt>rdfs:Literal</tt>, form the built-in OWL datatypes. 
All OWL reasoners are required to support the <tt>xsd:integer</tt>
and <tt>xsd:string</tt> datatypes.
</p>

<p>
Other built-in XML Schema datatypes may
be used in OWL Full, but with caveats described in the 
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/syntax.html">
OWL Semantics and Abstract Syntax</a> documentation.  
</p>

<pre>
&lt;owl:Class rdf:ID="VintageYear" /&gt;

&lt;owl:DatatypeProperty rdf:ID="yearValue"&gt;
  &lt;rdfs:domain rdf:resource="#VintageYear" /&gt;    
  &lt;rdfs:range  rdf:resource="&amp;xsd;positiveInteger"/&gt;
&lt;/owl:DatatypeProperty&gt; 
</pre>

<p>
The <tt>yearValue</tt> property relates <tt>VintageYear</tt>s to positive
integer values.  
We introduce the <tt>hasVintageYear</tt> property, which relates a <tt>Vintage</tt> to a
<tt>VintageYear</tt> <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#FunctionalProperty">below.</a>
</p> 

<p>
The <a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#EnumeratedDatatype">
OWL Reference</a> ([Reference], 6.2) describes the use of <tt>owl:oneOf</tt> and
<tt>rdf:List</tt> and <tt>rdf:rest</tt> to define an enumerated
datatype.  The example shows how to construct the <tt>owl:DatatypeProperty</tt>,
<tt>tennisGameScore</tt>, with a range equal to the elements of the list of integer 
values {0, 15, 30, 40}. 
</p>

<h3><a name="PropertiesOfIndividuals">3.2.3. Properties of Individuals</a></h3>

<p>
First we describe <tt>Region</tt> and <tt>Winery</tt> individuals, and then
we define our first wine, a Cabernet Sauvignon. 
</p>

<pre>
&lt;Region rdf:ID="SantaCruzMountainsRegion"&gt;
  &lt;locatedIn rdf:resource="#CaliforniaRegion" /&gt;
&lt;/Region&gt;

&lt;Winery rdf:ID="SantaCruzMountainVineyard" /&gt;

&lt;CabernetSauvignon
  rdf:ID="SantaCruzMountainVineyardCabernetSauvignon" &gt;<a id="CabernetSauvignon" name="CabernetSauvignon" />
  &lt;locatedIn   rdf:resource="#SantaCruzMountainsRegion"/&gt;  
  &lt;hasMaker    rdf:resource="#SantaCruzMountainVineyard" /&gt;   
&lt;/CabernetSauvignon&gt;  
</pre>

<p>
This is still incomplete.  There are other aspects of the wine flavor
that are defined in the full ontology.  But the pieces are falling
together.  We could begin reasoning about what menu items in our food
ontology this wine might
accompany.  We know from the definition above that the Santa Cruz
Mountain Vineyard makes it.
Because it is a Cabernet Sauvignon (see <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine.rdf">wine.rdf</a>),
we know it is a dry, red wine. 
</p>

<p>
Datatype properties can be added to individuals in a similar
fashion. Below we describe an instance of <tt>VintageYear</tt> and tie it to a
specific value of type <tt>&amp;xsd:positiveInteger</tt>.
</p>

<pre>
&lt;VintageYear rdf:ID="Year1998"&gt;
  &lt;yearValue rdf:datatype="&amp;xsd;positiveInteger"&gt;1998&lt;/yearValue&gt;
&lt;/VintageYear&gt; 
</pre>

<h2><a id="PropertyCharacteristics" name="PropertyCharacteristics">
3.3. Property Characteristics</a></h2>

<p>
The next few sections describe the mechanisms used to further specify
properties.  It is possible to specify property
<a id="term_characteristics" name="term_characteristics"></a><em>characteristics</em>, which provides a powerful mechanism for enhanced
reasoning about a property.
</p>

<h3>
<a id="TransitiveProperty" name="TransitiveProperty"></a> 
<a id="owl_TransitiveProperty" name="owl_TransitiveProperty"></a> 
3.3.1. TransitiveProperty
</h3>

<p>
If a property, P, is specified as transitive then for any x, y, and z:
</p> 

<pre>
P(x,y) and P(y,z) implies P(x,z)
</pre>

<p> 
The property <tt>locatedIn</tt> is transitive.
</p> 

<pre>
&lt;owl:ObjectProperty rdf:ID="locatedIn"&gt;
  &lt;rdf:type rdf:resource="&amp;owl;TransitiveProperty" /&gt;
  &lt;rdfs:domain rdf:resource="&amp;owl;Thing" /&gt;
  &lt;rdfs:range rdf:resource="#Region" /&gt;
&lt;/owl:ObjectProperty&gt;

&lt;Region rdf:ID="SantaCruzMountainsRegion"&gt;
  &lt;locatedIn rdf:resource="#CaliforniaRegion" /&gt;
&lt;/Region&gt;

&lt;Region rdf:ID="CaliforniaRegion"&gt;
  &lt;locatedIn rdf:resource="#USRegion" /&gt;
&lt;/Region&gt;
</pre>

<p> 
Because the <tt>SantaCruzMountainsRegion</tt> is <tt>locatedIn</tt> the
<tt>CaliforniaRegion</tt>, then it must also be <tt>locatedIn</tt> the 
<tt>USRegion</tt>, since <tt>locatedIn</tt> is transitive.
</p>

<h3>
<a id="SymmetricProperty" name="SymmetricProperty"></a> 
<a id="owl_SymmetricProperty" name="owl_SymmetricProperty"></a> 
3.3.2. SymmetricProperty
</h3>

<p>
If a property, P, is tagged as
symmetric then for any x and y: 
</p>
<pre>
P(x,y) iff P(y,x)
</pre> 
<p>
The property <tt>adjacentRegion</tt> is symmetric, while <tt>locatedIn</tt> is not.  
To be more precise, <tt>locatedIn</tt> is not intended to be
symmetric.  Nothing in the wine ontology at present prevents it from being symmetric.

</p>
<pre>
&lt;owl:ObjectProperty rdf:ID="adjacentRegion"&gt;
  &lt;rdf:type rdf:resource="&amp;owl;SymmetricProperty" /&gt;
  &lt;rdfs:domain rdf:resource="#Region" /&gt;
  &lt;rdfs:range rdf:resource="#Region" /&gt;
&lt;/owl:ObjectProperty&gt;

&lt;Region rdf:ID="MendocinoRegion"&gt;
  &lt;locatedIn rdf:resource="#CaliforniaRegion" /&gt;
  &lt;adjacentRegion rdf:resource="#SonomaRegion" /&gt;
&lt;/Region&gt;
</pre>  
<p>
The <tt>MendocinoRegion</tt> is adjacent to the <tt>SonomaRegion</tt>
and vice-versa.  The <tt>MendocinoRegion</tt> is located in the
<tt>CaliforniaRegion</tt> but not vice versa.
</p>

<h3>
<a id="FunctionalProperty" name="FunctionalProperty"></a> 
<a id="owl_FunctionalProperty" name="owl_FunctionalProperty"></a> 
3.3.3. FunctionalProperty
</h3>

<p>
If a property, P, is tagged as functional then for all x, y, and z:
</p>
<pre>
P(x,y) and P(x,z) implies y = z 
</pre>
<p>
In our wine ontology, <tt>hasVintageYear</tt>
is functional.  A wine has a unique vintage year.
That is, a given individual <tt>Vintage</tt> can only be associated with a
single year using the <tt>hasVintageYear</tt> property.
It is not a requirement of a <tt>owl:FunctionalProperty</tt>
that all elements of the domain have values. See the discussion of 
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#simpleCardinality"><tt>Vintage</tt> cardinality</a>. 
</p>
<pre>
&lt;owl:Class rdf:ID="VintageYear" /&gt;

&lt;owl:ObjectProperty rdf:ID="hasVintageYear"&gt;
  &lt;rdf:type rdf:resource="&amp;owl;FunctionalProperty" /&gt;
  &lt;rdfs:domain rdf:resource="#Vintage" /&gt;
  &lt;rdfs:range  rdf:resource="#VintageYear" /&gt;
&lt;/owl:ObjectProperty&gt;
</pre>

<h3>
<a id="inverseOf" name="inverseOf"></a> 
<a id="owl_inverseOf" name="owl_inverseOf"></a> 
3.3.4. inverseOf
</h3>

<p>If a property, P1, is tagged as the <tt>owl:inverseOf</tt> P2, then for
all x and y:
</p>

<pre>
P1(x,y) iff P2(y,x)
</pre>

<p>
Note that the syntax for <tt>owl:inverseOf</tt> takes a property name as an argument.
<tt>A iff B</tt> means <tt>(A implies B) and (B implies A)</tt>.
</p>

<pre>
&lt;owl:ObjectProperty rdf:ID="hasMaker"&gt;
  &lt;rdf:type rdf:resource="&amp;owl;FunctionalProperty" /&gt;
&lt;/owl:ObjectProperty&gt;
  
&lt;owl:ObjectProperty rdf:ID="producesWine"&gt;
  &lt;owl:inverseOf rdf:resource="#hasMaker" /&gt;
&lt;/owl:ObjectProperty&gt;
</pre>

<p>
<tt>Wine</tt>s have makers, which in the definition of <tt>Wine</tt>
are restricted to <tt>Winery</tt>s.  Then each 
<tt>Winery</tt> produces the set of wines that identify it as maker.
</p>

<h3>
<a id="InverseFunctionalProperty" name="InverseFunctionalProperty"></a> 
<a id="owl_InverseFunctionalProperty" name="owl_InverseFunctionalProperty"></a> 
3.3.5. InverseFunctionalProperty
</h3>

<p> 
If a property, P, is tagged as InverseFunctional then for all x, y and z:
</p>

<pre>
P(y,x) and P(z,x) implies y = z 
</pre>

<p>
Notice that <tt>producesWine</tt> in the preceding section is inverse
functional.  The reason is that the inverse of a functional property
must be inverse functional.  We could have defined <tt>hasMaker</tt>
and <tt>producesWine</tt> as follows and achieved the identical
effect as the preceding example.
</p>

<pre>
&lt;owl:ObjectProperty rdf:ID="hasMaker" /&gt;
  
&lt;owl:ObjectProperty rdf:ID="producesWine"&gt;
  &lt;rdf:type rdf:resource="&amp;owl;InverseFunctionalProperty" /&gt;
  &lt;owl:inverseOf rdf:resource="#hasMaker" /&gt;
&lt;/owl:ObjectProperty&gt;                                    <span class="red">&nbsp;&not;&nbsp;</span>
</pre>

<p>
Think of the elements of the range in an inverse functional property
as defining a unique key in the database sense.  
<tt>owl:InverseFunctional</tt> implies that the elements of the range
provide a unique identifier for each element of the domain.
</p>
<p>
<a id="rdfs_Literal" name="rdfs_Literal" />
In OWL Full, we can tag a <tt>DatatypeProperty</tt> as
inverseFunctional.  This permits us to identify a string as 
a unique key.  In OWL DL literals are disjoint from owl:Thing, which
is why OWL DL does not permit <tt>InverseFunctional</tt> to be applied to
<tt>DatatypeProperty</tt>.
</p>

<h2>
<a id="PropertyRestrictions" name="PropertyRestrictions"></a>
<a id="restrictions" name="restrictions"></a>
3.4. Property Restrictions</h2>

<p>
<a id="owl_Restriction" name="owl_Restriction"></a>
<a id="owl_onProperty" name="owl_onProperty"></a>
In addition to designating property characteristics, it is possible to
further constrain the range of a property in specific contexts in a
variety of ways.
We do this with <i>property restrictions</i>.  The various 
forms described below can only be used within the context of an <tt>owl:Restriction</tt>. 
The <tt>owl:onProperty</tt> element indicates the restricted property.   
</p>
<h3>
<a id="allValuesFrom" name="allValuesFrom"></a> 
<a id="someValuesFrom" name="someValuesFrom"></a>
<a id="owl_allValuesFrom" name="owl_allValuesFrom"></a> 
<a id="term_restriction_class" name="term_restriction_class"></a>
3.4.1. allValuesFrom, someValuesFrom</h3>

<p>
We have already seen one way to restrict the types of the elements that
make up a property.  The mechanisms to
date have been <em>global</em> in that they apply to all
instances of the property.  These next two, <tt>allValuesFrom</tt> and
<tt>someValuesFrom</tt>, are <em>local</em> to their containing class definition.
</p>
<p>
<!-- The <tt>owl:allValuesFrom</tt> restriction means that every instance of
the class must have an instance of the specified property with 
values that are all instances of the specified restriction class. -->

The <tt>owl:allValuesFrom</tt> restriction requires that for every instance of
the class that has instances of the specified property, the 
values of the property are all members of the class indicated by the
<tt>owl:allValuesFrom</tt> clause.
</p>
<pre>
&lt;owl:Class rdf:ID="Wine"&gt;
  &lt;rdfs:subClassOf rdf:resource="&amp;food;PotableLiquid" /&gt;
  ...
  &lt;rdfs:subClassOf&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#hasMaker" /&gt;
      &lt;owl:allValuesFrom rdf:resource="#Winery" /&gt;
    &lt;/owl:Restriction&gt;
  &lt;/rdfs:subClassOf&gt;
  ...
&lt;/owl:Class&gt;
</pre>

<p>
The maker of a <tt>Wine</tt> must be a <tt>Winery</tt>.
The <tt>allValuesFrom</tt> restriction is on the <tt>hasMaker</tt> property of
this <tt>Wine</tt> class <em>only</em>.  Makers of <tt>Cheese</tt> are
not constrained by this local restriction.
</p>

<p>
<a id="owl_someValuesFrom" name="owl_someValuesFrom"></a>
<tt>owl:someValuesFrom</tt> is similar.   If we
replaced <tt>owl:allValuesFrom</tt> with <tt>owl:someValuesFrom</tt>
in the example above, it would mean that at least <em>one</em> of the
<tt>hasMaker</tt> properties of a <tt>Wine</tt> must point to an
individual that is a <tt>Winery</tt>.  
</p>

<pre>
&lt;owl:Class rdf:ID="Wine"&gt;
  &lt;rdfs:subClassOf rdf:resource="&amp;food;PotableLiquid" /&gt;
  &lt;rdfs:subClassOf&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#hasMaker" /&gt;
      &lt;owl:someValuesFrom rdf:resource="#Winery" /&gt;
    &lt;/owl:Restriction&gt;
  &lt;/rdfs:subClassOf&gt;
  ...
&lt;/owl:Class&gt;                                            <span class="red">&nbsp;&not;&nbsp;</span>
</pre>

<p>
The difference between the two formulations is the difference between
a universal and existential quantification.
</p>

<table class="propositions">
  <tbody>
<tr><th>Relation</th><th>Implications</th></tr>
<tr><td>allValuesFrom</td><td>For all wines, if they have
makers, all the makers are wineries.</td></tr>
<tr><td>someValuesFrom&nbsp;&nbsp;</td><td>For all wines, they have at least one maker that is a winery.</td></tr>
  </tbody>
</table>

<p>
The first does not require a wine to have a maker.  If it does have one or more, they
must all be wineries.  The second requires that there be at least one maker
that is a winery, but there may be makers that are not wineries.
</p>

<h3><a id="simpleCardinality" name="simpleCardinality">3.4.2. Cardinality</a></h3>

<p>
<a id="owl_cardinality" name="owl_cardinality"></a>
<a id="term_cardinality" name="term_cardinality"></a>
We have already seen examples of cardinality constraints.  To date, 
they have been assertions about minimum cardinality.  Even more
straight-forward is <tt>owl:cardinality</tt>, which permits the
specification of <em>exactly</em> the number of elements in a relation.
For example, we specify <tt>Vintage</tt> to be a class  with 
exactly one <tt>VintageYear</tt>. 
</p>

<pre>
&lt;owl:Class rdf:ID="Vintage"&gt; 
  &lt;rdfs:subClassOf&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#hasVintageYear"/&gt;  
      &lt;owl:cardinality rdf:datatype="&amp;xsd;nonNegativeInteger"&gt;1&lt;/owl:cardinality&gt;
    &lt;/owl:Restriction&gt;
  &lt;/rdfs:subClassOf&gt;
&lt;/owl:Class&gt;
</pre>

<p>
We specified <tt>hasVintageYear</tt> to be a functional property, which 
is the same as saying that every Vintage has at most one VintageYear. 
This application of that property to <tt>Vintage</tt> using the
cardinality restriction asserts
something stronger, that <em>every</em> <tt>Vintage</tt> has
<em>exactly</em> one <tt>VintageYear</tt>.
</p>
<!--
<p>
As another example, the following asserts that a <tt>Meal</tt> has at least
two <tt>course</tt>s.
</p>
<pre>
&lt;owl:Class rdf:ID="Meal"&gt;
  &lt;rdfs:subClassOf rdf:resource="#ConsumableThing" /&gt;
  &lt;rdfs:subClassOf&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#course" /&gt;
      &lt;owl:minCardinality rdf:datatype="&amp;xsd;nonNegativeInteger"&gt;1&lt;/owl:minCardinality&gt;
    &lt;/owl:Restriction&gt;
  &lt;/rdfs:subClassOf&gt;
  ...
&lt;/owl:Class&gt;
</pre>
-->
<p>
<a id="owl_minCardinality" name="owl_minCardinality"></a>
<a id="owl_maxCardinality" name="owl_maxCardinality"></a>
Cardinality expressions with values limited to 0 or 1 are part of OWL Lite.
This permits the user to indicate 'at least one', 'no more than one',
and 'exactly one'.
Positive integer values other than 0 and 1 are permitted in OWL DL.
<tt>owl:maxCardinality</tt> can be used to specify an <em>upper</em> bound. 
<tt>owl:minCardinality</tt> can be used to specify a <em>lower</em> bound. 
In combination, the two can be used to limit the property's cardinality to 
a numeric interval.
</p>

<!-- 
<p>
MinCardinality defaults to 0. 
There is no default value for cardinality or maxCardinality. 
</p>
-->

<h3><a id="hasValue" name="hasValue">3.4.3. hasValue</a> <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OWL_DL_tag">[OWL DL]</a></h3>

<p>
<a id="owl_hasValue" name="owl_hasValue"></a>
<tt>hasValue</tt> allows us to specify classes based on the
existence of <em>particular</em> property values. Hence,
an individual will be a member of such a class whenever at least <em>one</em>
of its property values is equal to the hasValue resource.
</p>

<pre>
&lt;owl:Class rdf:ID="Burgundy"&gt;
  ...
  &lt;rdfs:subClassOf&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#hasSugar" /&gt;
      &lt;owl:hasValue rdf:resource="#Dry" /&gt;
    &lt;/owl:Restriction&gt;
  &lt;/rdfs:subClassOf&gt;
&lt;/owl:Class&gt;
</pre>

<p>
Here we declare that all <tt>Burgundy</tt> wines are dry.  That is, their
<tt>hasSugar</tt> property must have at least one value that is equal
to <tt>Dry</tt>.
</p>

<p>
As for <tt>allValuesFrom</tt> and
<tt>someValuesFrom</tt>, this is a local restriction.  It holds for
<tt>hasSugar</tt> as applied to <tt>Burgundy</tt>.
</p>

<h1><a name="OntologyMapping">4. Ontology Mapping </a></h1>

<p>
In order for ontologies to have the maximum impact, they need to be
widely shared.  In order to minimize the intellectual effort involved
in developing an ontology they need to be re-used.  In the best of all
possible worlds they need to be composed.  For example, you might adopt
a date ontology from one source and a physical location ontology from
another and then extend the notion of location to include the time
period during which it holds.
</p>
<p>
It is important to realize that much of the effort of developing an
ontology is devoted to hooking together classes and properties in
ways that maximize implications.  We want simple assertions about
class membership to
have broad and useful implications.  This is the hardest part of
ontology development.  If you can find an existing ontology that has
already undergone extensive use and refinement, it makes sense to
adopt it.
</p>
<p>
It will be challenging to merge a collection of ontologies.  Tool
support will almost certainly be required to maintain consistency.
</p>

<h2><a id="equivalentClass1" name="equivalentClass1">
4.1. Equivalence between Classes and Properties<br />
<tt>equivalentClass</tt>, <tt>equivalentProperty</tt></a></h2>

<p>To tie together a set of component ontologies as part of a
third it is frequently useful to be able to indicate that a particular
class or property in one ontology is equivalent to a class or property
in a second
ontology.  This capability must be used with care.
If the combined ontologies are contradictory (all A's
are B's vs. all A's are not B's) there will be no extension (no
individuals and relations) that satisfies the resulting combination.
</p>


<p>
<a id="owl_equivalentClass" name="owl_equivalentClass"></a>
<a id="owl_sameClassAs" name="owl_sameClassAs"></a>
In the food ontology we want to link wine features in the descriptions
of dining courses back to the wine ontology.  One way to do this is by
defining a class in the food ontology (&amp;food;Wine) and then 
declaring it equivalent to an existing wine class in the wine ontology.
</p>
<pre>
&lt;owl:Class rdf:ID="Wine"&gt;
  &lt;owl:equivalentClass rdf:resource="&amp;vin;Wine"/&gt;
&lt;/owl:Class&gt;
</pre>
<p>
The property <tt>owl:equivalentClass</tt> is used to indicate that two classes have
precisely the same instances.  Note that in OWL DL, classes simply denote sets
of individuals, and are not individuals themselves.  In OWL Full, however, 
we can use <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_sameAs"><tt>owl:sameAs</tt></a> 
between two classes to indicate that
they are identical in every way.
</p>

<p>
Of course the example above is somewhat contrived, since we can always
use <tt>&amp;vin;Wine</tt> anywhere we would use <tt>#Wine</tt> and get
the same effect without redefinition.  A more likely use would be in a
case were we depend on two independently developed ontologies, and
note that they use the URI's <tt>O1:foo</tt> and <tt>O2:bar</tt> to
reference the same class.  <tt>owl:equivalentClass</tt> could be used to
collapse these together so that the entailments from the two
ontologies are combined.
</p>

<p>
We have already seen that class expressions can be the targets
of <tt>rdfs:subClassOf</tt> constructors.  They can also be the target of
<tt>owl:equivalentClass</tt>.  Again, this avoids the need to
contrive names for every class expression and provides a powerful
definitional capability based on satisfaction of a property.  
</p>
<pre>
&lt;owl:Class rdf:ID="TexasThings"&gt; 
  &lt;owl:equivalentClass&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#locatedIn" /&gt;
      &lt;owl:someValuesFrom rdf:resource="#TexasRegion" /&gt;
    &lt;/owl:Restriction&gt;
  &lt;/owl:equivalentClass&gt;
&lt;/owl:Class&gt;                                               <span class="red">&nbsp;&not;&nbsp;</span>
</pre>
<p>

<tt>TexasThings</tt> are <em>exactly</em> those things located in the
Texas region.  The difference between using <tt>owl:equivalentClass</tt> here
and using <tt>rdfs:subClassOf</tt> is the difference between a necessary
condition and a necessary and sufficient condition.  With
<tt>subClassOf</tt>, things that are located in Texas are not
necessarily <tt>TexasThings</tt>.  But, using <tt>owl:equivalentClass</tt>, if
something is located in Texas, then it must be in the class of
<tt>TexasThings</tt>.
</p>
<table class="propositions">
  <tbody>
<tr><th>Relation</th><th>Implications</th></tr>
<tr><td>subClassOf</td><td>TexasThings(x) implies locatedIn(x,y) and TexasRegion(y)</td></tr>
<tr><td>equivalentClass&nbsp;&nbsp;</td><td>TexasThings(x) implies
locatedIn(x,y) and TexasRegion(y)<br />locatedIn(x,y) and
TexasRegion(y) implies TexasThings(x)</td></tr>
  </tbody>
</table>

<p>
<a id="owl_equivalentProperty" name="owl_equivalentProperty"></a>
<a id="owl_samePropertyAs" name="owl_samePropertyAs"></a>
To tie together properties in a similar fashion, we use
<tt>owl:equivalentProperty</tt>.
</p>

<h2>
<a id="owl_sameAs" name="owl_sameAs"></a>
<a id="sameAs" name="sameAs">
4.2. Identity between Individuals<br />
<tt>sameAs</tt></a></h2>

<p>This mechanism is similar to that for classes, but declares two
individuals to be identical.  An example would be:
</p>
<pre>
&lt;Wine rdf:ID="MikesFavoriteWine"&gt; 
  &lt;owl:sameAs rdf:resource="#StGenevieveTexasWhite" /&gt; 
&lt;/Wine&gt;                                                 <span class="red">&nbsp;&not;&nbsp;</span>
</pre>
<p>
This example does not have great utility.  About all we learn from this is
that Mike likes an inexpensive local wine.  A more typical use of
<tt>sameAs</tt> would be to equate individuals defined in
different documents to one another, as part of unifying two ontologies.
</p>

<p>
This brings up an important point.  OWL does not have a 
<a id="term_uniqueName" name="term_uniqueName"></a><em>unique
name</em> assumption.  Just because two names are different does not
mean they refer to different individuals.  
</p>

<p>
In the example above, we <em>asserted</em> identity between two distinct
names.  But it is just as possible for this sort of identity to be
inferred.
Remember the implications that can be derived from a functional
property.  Given that <tt>hasMaker</tt> is functional, the following
is not necessarily a conflict.   
</p>
<pre>
&lt;owl:Thing rdf:about="#BancroftChardonnay"&gt;
  &lt;hasMaker rdf:resource="#Bancroft" /&gt;
  &lt;hasMaker rdf:resource="#Beringer" /&gt;
&lt;/owl:Thing&gt;                                            <span class="red">&nbsp;&not;&nbsp;</span>
</pre>
<p>
Unless this conflicts with other information in our ontology, it simply means
that <tt>Bancroft</tt> = <tt>Beringer</tt>.
</p>

<p>
Note that using <tt>sameAs</tt> to equate two classes
is <b>not</b> the same as equating them with <tt>equivalentClass</tt>; instead, it causes the 
the classes to be interpreted as individuals, and is therefore sufficient 
to categorize an ontology as OWL Full.
In OWL Full <tt>sameAs</tt> may be used to equate 
anything: a class and an individual, a property and a class, etc., and causes both
arguments to be interpreted as individuals.
</p>

<h2><a name="differentFrom">4.3. Different Individuals<br />
<tt>differentFrom</tt>, <tt>AllDifferent</tt></a></h2>

<p>
<a id="owl_differentFrom" name="owl_differentFrom"></a>
This mechanism provides the opposite effect from sameAs.
</p>
<pre>
&lt;WineSugar rdf:ID="Dry" /&gt;

&lt;WineSugar rdf:ID="Sweet"&gt;  
  &lt;owl:differentFrom rdf:resource="#Dry"/&gt;  
&lt;/WineSugar&gt; 

&lt;WineSugar rdf:ID="OffDry"&gt;
  &lt;owl:differentFrom rdf:resource="#Dry"/&gt; 
  &lt;owl:differentFrom rdf:resource="#Sweet"/&gt; 
&lt;/WineSugar&gt;
</pre> 

<p>
This is one way to assert that these three values are mutually distinct.
There will be cases where it is important to ensure such distinct
identities.  Without these assertions we could describe a wine that was
both <tt>Dry</tt> and <tt>Sweet</tt>.  We have
stated that the <tt>hasSugar</tt> property applied to a wine has no more than
one value.  If we erred, and asserted that a wine was both <tt>Dry</tt> and
<tt>Sweet</tt>, without the <tt>differentFrom</tt> elements above,
this would imply that <tt>Dry</tt> and <tt>Sweet</tt> are identical.
With the elements above, we would instead get a contradiction.
</p>

<p>
<a id="owl_AllDifferent" name="owl_AllDifferent"></a>
<a id="owl_distinctMembers" name="owl_distinctMembers"></a>
A more convenient mechanism exists to define a set of mutually
distinct individuals.  The following asserts that <tt>Red</tt>,
<tt>White</tt>, and <tt>Rose</tt> are pairwise distinct.
</p>
<pre>
&lt;owl:AllDifferent&gt;
  &lt;owl:distinctMembers rdf:parseType="Collection"&gt;
    &lt;vin:WineColor rdf:about="#Red" /&gt;
    &lt;vin:WineColor rdf:about="#White" /&gt;
    &lt;vin:WineColor rdf:about="#Rose" /&gt;
  &lt;/owl:distinctMembers&gt;
&lt;/owl:AllDifferent&gt;
</pre>
<p>Note that <tt>owl:distinctMembers</tt> can only be used 
in combination with <tt>owl:AllDifferent</tt>
</p>
<p>
In the wine ontology we provide an <tt>owl:AllDifferent</tt> assertion
for all of the <tt>WineDescriptor</tt>s.  We also state that 
the <tt>Winery</tt>s are all different.  If we wanted to add a new
winery in some other ontology and assert that it was disjoint from all
of those that have already been defined, we would need to cut and
paste the original <tt>owl:AllDifferent</tt> assertion and add the new
maker to the list.  There is not a simpler way to extend an
<tt>owl:AllDifferent</tt> collection in OWL DL.  In OWL Full, using
RDF triples and the rdf:List constructs, other approaches are possible.
</p>

<hr />

<h1><a name="ComplexClasses">5. Complex Classes</a>
 <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OWL_DL_tag">[OWL DL]</a></h1>
    
<p>
OWL provides additional constructors with which to form classes. These
constructors can be used to create so-called <em>class
expressions</em>. OWL supports the basic set operations, namely
union, intersection and complement.  These are named 
<tt>owl:unionOf</tt>, <tt>owl:intersectionOf</tt>, and <tt>owl:complementOf</tt>, 
respectively. Additionally, classes can be 
<a id="term_enumerated" name="term_enumerated"></a><em>enumerated</em>.  
Class extensions can be stated explicitly by means of the
<tt>oneOf</tt> constructor.  
And it is possible to assert that class extensions must be disjoint.
</p>

<p>
Note that Class expressions can be nested without requiring the creation
of names for every intermediate class.  
This allows the use of set operations to build up complex classes
from anonymous classes or classes with value restrictions.  
</p>


<h2><a id="SetOperators" name="SetOperators">5.1. Set Operators</a><br />
<tt>intersectionOf, unionOf, complementOf</tt>
</h2>

<p>
Remember that OWL class extensions are sets consisting of the individuals
that are members of the class. OWL provides the means to
manipulate class extensions using basic set operators.
</p>

<h3><a id="owl_intersectionOf" name="owl_intersectionOf">5.1.1. Intersection</a>
 <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OWL_DL_tag">[some uses of OWL DL]</a></h3>

<p>

The following examples demonstrate the use of the
<a id="term_intersection" name="term_intersection"></a><em>intersectionOf</em> construct.  
</p>
<pre>
&lt;owl:Class rdf:ID="WhiteWine"&gt;
  &lt;owl:intersectionOf rdf:parseType="Collection"&gt;
    &lt;owl:Class rdf:about="#Wine" /&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#hasColor" /&gt;
      &lt;owl:hasValue rdf:resource="#White" /&gt;
    &lt;/owl:Restriction&gt;
  &lt;/owl:intersectionOf&gt;
&lt;/owl:Class&gt;
</pre>
<p>
Classes constructed using the set operations are more like
definitions than anything we have seen to date. 
The members of the class are completely specified by
the set operation.
The construction above states that <tt>WhiteWine</tt> is <em>exactly</em> the
intersection of the class <tt>Wine</tt> and the set of things that are
white in color.  This means that if something is white and a wine,
then it is an instance of <tt>WhiteWine</tt>.  Without such a definition
we can know that white wines are wines and white, but not vice-versa.
This is an important tool for categorizing individuals.
(Note that 'rdf:parseType="Collection"' is a required syntactic element.)

</p>
<pre>
&lt;owl:Class rdf:about="#Burgundy"&gt;
  &lt;owl:intersectionOf rdf:parseType="Collection"&gt;
    &lt;owl:Class rdf:about="#Wine" /&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#locatedIn" /&gt;
      &lt;owl:hasValue rdf:resource="#BourgogneRegion" /&gt;
    &lt;/owl:Restriction&gt;
  &lt;/owl:intersectionOf&gt;
&lt;/owl:Class&gt;
</pre>

<p>
Here we define <tt>Burgundy</tt> to include exactly those wines that have
at least one <tt>locatedIn</tt> relation to the Bourgogne Region.  
We could have declared a new class
<tt>ThingsFromBourgogneRegion</tt> and used it as a class in the
<tt>owl:intersectionOf</tt> construct.  Since we do not have any other
use for <tt>ThingsFromBourgogneRegion</tt>, the declaration above is
shorter, clearer and doesn't require the creation of a contrived name.
</p>

<pre>
&lt;owl:Class rdf:ID="WhiteBurgundy"&gt;
  &lt;owl:intersectionOf rdf:parseType="Collection"&gt;
    &lt;owl:Class rdf:about="#Burgundy" /&gt;
    &lt;owl:Class rdf:about="#WhiteWine" /&gt;
  &lt;/owl:intersectionOf&gt; 
&lt;/owl:Class&gt;
</pre>
<p>
Finally, the class <tt>WhiteBurgundy</tt> is exactly the intersection of 
white wines and Burgundies.  Burgundies in turn are grown in the
French region of Bourgogne and are dry wines.  Accordingly all
individual wines that meet these criteria are part of the class
extension of <tt>WhiteBurgundy</tt>.
</p>

<h3><a id="owl_unionOf" name="owl_unionOf">5.1.2. Union</a> <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OWL_DL_tag">[OWL DL]</a></h3>

<p>

The following example demonstrates the use of the
<a id="term_union" name="term_union"></a><em>unionOf</em> construct. It is used exactly like the
<em>intersectionOf</em> construct:
</p>

<pre>
&lt;owl:Class rdf:ID="Fruit"&gt;
  &lt;owl:unionOf rdf:parseType="Collection"&gt;
    &lt;owl:Class rdf:about="#SweetFruit" /&gt;
    &lt;owl:Class rdf:about="#NonSweetFruit" /&gt;
  &lt;/owl:unionOf&gt;
&lt;/owl:Class&gt;
</pre> 

<p>
The class <tt>Fruit</tt> includes <em>both</em>
the extension of <tt>SweetFruit</tt> and the extension of 
<tt>NonSweetFruit</tt>. 
</p>

<p>
Note how completely different this union type construct is from the following.
</p>

<pre>
&lt;owl:Class rdf:ID="Fruit"&gt;
  &lt;rdfs:subClassOf rdf:resource="#SweetFruit" /&gt;
  &lt;rdfs:subClassOf rdf:resource="#NonSweetFruit" /&gt;
&lt;/owl:Class&gt;                                            <span class="red">&nbsp;&not;&nbsp;</span>
</pre> 

<p>
This says that the instances of <tt>Fruit</tt> are a subset of the
<em>intersection</em> of sweet and non-sweet fruit, which we would
expect to be the empty set.
</p>

<h3><a id="owl_complementOf" name="owl_complementOf">
5.1.3. Complement</a> <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OWL_DL_tag">[OWL DL]</a></h3>

<p>
The <a id="term_complement" name="term_complement"></a><em>complementOf</em> construct selects all individuals from
the domain of discourse that do not belong to a certain
class. Usually this refers to a very large set of individuals:
</p>
<pre>
  &lt;owl:Class rdf:ID="ConsumableThing" /&gt;

  &lt;owl:Class rdf:ID="NonConsumableThing"&gt;
    &lt;owl:complementOf rdf:resource="#ConsumableThing" /&gt;
  &lt;/owl:Class&gt;
</pre>

<p>
The class of <tt>NonConsumableThing</tt> includes as its members
all individuals that do not belong to the extension
of <tt>ConsumableThing</tt>.  This set includes all
<tt>Wine</tt>s, <tt>Region</tt>s, etc.  It is literally the set
difference between <tt>owl:Thing</tt> and  <tt>ConsumableThing</tt>. 
Therefore, a typical usage pattern for
<em>complementOf</em> is in combination with other set
operators:
</p>
<pre>
&lt;owl:Class rdf:ID="NonFrenchWine"&gt;
  &lt;owl:intersectionOf rdf:parseType="Collection"&gt;
    &lt;owl:Class rdf:about="#Wine"/&gt;
    &lt;owl:Class&gt;
      &lt;owl:complementOf&gt;
        &lt;owl:Restriction&gt;
          &lt;owl:onProperty rdf:resource="#locatedIn" /&gt;
          &lt;owl:hasValue rdf:resource="#FrenchRegion" /&gt;
        &lt;/owl:Restriction&gt;
      &lt;/owl:complementOf&gt;
    &lt;/owl:Class&gt;
  &lt;/owl:intersectionOf&gt;
&lt;/owl:Class&gt;                                            <span class="red">&nbsp;&not;&nbsp;</span>
</pre> 

<p>
<!-- From Guide comments:
The example at the end is very complex because it uses the 
TransitiveProperty feature of locatedIn for warranting that whatever 
is declared to be in, say, Bourgogne, will also be locatedIn 
FrenchRegion. I could add a couple of sentences to explain it.
-->

This defines the class <tt>NonFrenchWine</tt> to be the
intersection of <tt>Wine</tt> with the set of all
things <em>not</em> located in France.
</p>

<h2><a name="EnumeratedClasses">5.2. Enumerated Classes</a><br />
<tt>oneOf</tt> <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OWL_DL_tag">[OWL DL]</a></h2>

<p>
OWL provides the means to specify a class via a direct enumeration of its
members. This is done using the <em>oneOf</em> construct. Notably,
this definition completely specifies the class extension, so that no other
individuals can be declared to belong to the class.
</p>

<p>
<a id="owl_oneOf" name="owl_oneOf"></a>
The following defines a class <tt>WineColor</tt> whose
members are the individuals <tt>White</tt>, <tt>Rose</tt>, and
<tt>Red</tt>.
</p>

<pre>
&lt;owl:Class rdf:ID="WineColor"&gt;
  &lt;rdfs:subClassOf rdf:resource="#WineDescriptor"/&gt;
  &lt;owl:oneOf rdf:parseType="Collection"&gt;
    &lt;owl:Thing rdf:about="#White"/&gt;
    &lt;owl:Thing rdf:about="#Rose"/&gt;
    &lt;owl:Thing rdf:about="#Red"/&gt;
  &lt;/owl:oneOf&gt;
&lt;/owl:Class&gt;
</pre> 

<p>
The first thing to understand here is that no other individuals can be
a valid <tt>WineColor</tt> since the class has been defined by
enumeration.
</p>

<p>
Each element of the <tt>oneOf</tt> construct must be a validly declared
individual. An individual has to belong to some class. In the above
example, each individual was referenced by name.  We used
<tt>owl:Thing</tt> as a simple clich&eacute; to introduce the reference.
Alternatively, we could have referenced the elements of the set
according to their specific type, <tt>WineColor</tt>, by:
</p>

<pre>
&lt;owl:Class rdf:ID="WineColor"&gt;
  &lt;rdfs:subClassOf rdf:resource="#WineDescriptor"/&gt;
  &lt;owl:oneOf rdf:parseType="Collection"&gt;
    &lt;WineColor rdf:about="#White" /&gt;
    &lt;WineColor rdf:about="#Rose" /&gt;
    &lt;WineColor rdf:about="#Red" /&gt;
  &lt;/owl:oneOf&gt;
&lt;/owl:Class&gt;
</pre>

<p>
Other, more complex descriptions of individuals are also valid
elements of the <em>oneOf</em> construct, for example:
</p>

<pre>
&lt;WineColor rdf:about="#White"&gt;
  &lt;rdfs:label&gt;White&lt;/rdfs:label&gt;
&lt;/WineColor&gt;                                            <span class="red">&nbsp;&not;&nbsp;</span>
</pre>

<p>
For additional examples of the use of <tt>oneOf</tt>, see the 
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#EnumeratedDatatype">
Reference</a>.
</p>

<h2><a id="DisjointClasses" name="DisjointClasses">5.3. Disjoint Classes</a> <br />
<tt>disjointWith</tt> <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OWL_DL_tag">[OWL DL]</a></h2>

<p>
<a id="owl_disjointWith" name="owl_disjointWith"></a>
The disjointness of a set of classes can be expressed using the
<tt>owl:disjointWith</tt> constructor. It guarantees that an
individual that is a member of one class cannot simultaneously be an
instance of a specified other class.  
</p>

<pre>
&lt;owl:Class rdf:ID="Pasta"&gt;
  &lt;rdfs:subClassOf rdf:resource="#EdibleThing"/&gt;
  &lt;owl:disjointWith rdf:resource="#Meat"/&gt;
  &lt;owl:disjointWith rdf:resource="#Fowl"/&gt;
  &lt;owl:disjointWith rdf:resource="#Seafood"/&gt;
  &lt;owl:disjointWith rdf:resource="#Dessert"/&gt;
  &lt;owl:disjointWith rdf:resource="#Fruit"/&gt;
&lt;/owl:Class&gt;
</pre>

<p>
The <tt>Pasta</tt> example demonstrates multiple disjoint classes.
Note that this only asserts that <tt>Pasta</tt> is disjoint from all
of these other classes.  It does not assert, for example, that
<tt>Meat</tt> and <tt>Fruit</tt> are disjoint.  In order to assert
that a set of classes is mutually disjoint, there must be an
<tt>owl:disjointWith</tt> assertion for every pair.
</p>

<p>
A common requirement is to define
a class as the union of a set of mutually disjoint subclasses.
</p>
<pre>
&lt;owl:Class rdf:ID="SweetFruit"&gt;
  &lt;rdfs:subClassOf rdf:resource="#EdibleThing" /&gt;
&lt;/owl:Class&gt;

&lt;owl:Class rdf:ID="NonSweetFruit"&gt;
  &lt;rdfs:subClassOf rdf:resource="#EdibleThing" /&gt;
  &lt;owl:disjointWith rdf:resource="#SweetFruit" /&gt;
&lt;/owl:Class&gt;

&lt;owl:Class rdf:ID="Fruit"&gt;
  &lt;owl:unionOf rdf:parseType="Collection"&gt;
    &lt;owl:Class rdf:about="#SweetFruit" /&gt;
    &lt;owl:Class rdf:about="#NonSweetFruit" /&gt;
  &lt;/owl:unionOf&gt;
&lt;/owl:Class&gt;
</pre>

<p>
Here we define <tt>Fruit</tt> to be exactly the union of
<tt>SweetFruit</tt> and <tt>NonSweetFruit</tt>.  And we know that
these subclasses exactly partition <tt>Fruit</tt> into two distinct subclasses
because they are disjoint.  
As the number of mutually disjoint classes
grows, the number of disjointness assertions grows proportionally to
n<sup>2</sup>.  However, in the use cases we have seen, n is typically
small.
</p>
<p>
When n is large, alternate approaches can be used to avoid quadratic
growth in the number of assertions.  One such method is illustrated in
the
<a href="http://www.w3.org/TR/2004/REC-owl-test-20040210/byIssue#I5.21-002">
OWL test suite
</a>
</p>
<p>
The illustrated method works as follows.  We describe a parent class
whose elements have a property with cardinality equal to one.  That
is, each instance must have one and only one value for this property.
Then, for every subclass of the parent we require that its instances
must have a particular unique value for the property.  In which case
none of the distinct subclasses can have members in common.
</p>

<hr />

<h1><a id="OntologyVersioning" name="OntologyVersioning"></a>
<a id="term_version" name="term_version"></a>
6. Ontology Versioning</h1>

<p>
<a id="owl_priorVersion" name="owl_priorVersion"></a>
Ontologies are like software, they will be maintained and thus will change 
over time.  
Within an <tt>owl:Ontology</tt> element
(discussed <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OntologyHeaders">above</a>), it is possible to link to a previous
version of the ontology being defined.  The <tt>owl:priorVersion</tt> property
is intended to provide this link, and can be used to track the
version history of an ontology.
</p>
<pre>
&lt;owl:Ontology rdf:about=""&gt; 
  ...
  &lt;owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine"/&gt; 
  ...
&lt;/owl:Ontology&gt;
</pre>
<p>
The indicated ontology is a previous version of the one being defined.  
</p>

<p>
<a id="owl_backwardCompatibleWith" name="owl_backwardCompatibleWith"></a>
<a id="owl_incompatibleWith" name="owl_incompatibleWith"></a>
Ontology versions may not be compatible with each other.  For example, a 
prior version of an ontology may contain statements that contradict the current
version.    Within an <tt>owl:Ontology</tt> element, 
we use the tags <tt>owl:backwardCompatibleWith</tt>
and <tt>owl:incompatibleWith</tt> to indicate compatibility or the
lack thereof with previous ontology versions.  
If <tt>owl:backwardCompatibleWith</tt> is not declared, then
compatibility should not be assumed.   
<a id="owl_versionInfo" name="owl_versionInfo"></a>
In addition, <tt>owl:versionInfo</tt> 
provides a hook suitable for use by versioning systems.  As opposed to the previous three tags, 
the object of <tt>owl:versionInfo</tt> is a literal and the tag can be used 
to annotate classes and properties in addition to ontologies.
</p>
<p>
<a id="owl_DeprecatedClass" name="owl_DeprecatedClass"></a>
<a id="owl_DeprecatedProperty" name="owl_DeprecatedProperty"></a>
For many purposes, doing version tracking at the granularity of
an entire ontology is not enough.  Maintainers may wish to keep
version information for classes, properties, and individuals - and 
even that may not be sufficient.  The incremental nature of class expressions
in OWL implies that one ontology may add restrictions to a (named) class defined
in another ontology, and 
these additional restrictions themselves may require version information.
</p>
<p>
OWL Full provides the expressive power to make any sort of assertion about a class,
i.e. that it is an instance of another class, or that it (and not its instances) has
a property and a value for that property.  This framework can be used
to build an ontology of classes and properties for tracking version information.
The OWL namespace includes two pre-defined classes that can be used for this purpose:
<tt>owl:DeprecatedClass</tt>
and <tt>owl:DeprecatedProperty</tt>.
They are intended to indicate that the class or property will likely be changing in an
incompatible manner in a forthcoming release:
</p>
<pre>
...
  &lt;owl:DeprecatedClass rdf:ID="&amp;vin;JugWine" /&gt;
  &lt;owl:DeprecatedProperty rdf:ID="&amp;vin;hasSeeds" /&gt;
...                                                           <span class="red">&nbsp;&not;&nbsp;</span>
</pre>
<p>
It is important to note that <tt>owl:DeprecatedClass</tt>
and <tt>owl:DeprecatedProperty</tt>
have no additional semantics and it is up to tool
developers and OWL users to ensure they are used as intended.
</p>

<!--
<li>They should provide a useful starting point for defining a more
extensive ontology of versioning properties and classes.</li>

<li>Using these classes in an ontology makes it an OWL Full ontology.
However, users who need versioning and who wish their ontologies to
remain in OWL DL or OWL Lite can do so by separating these versioning
statements into another ontology that imports the one for which
versioning information is needed.</li> 
</ul>
-->

<hr />


<h1><a id="Usage" name="Usage">7. Usage Examples</a></h1>

<p>
Once an initial domain ontology is available, a 
large number of applications can be developed that exploit the
ontology.  In this section, we describe some
sample uses in the domain of wines.  

</p>

<h2><a id="WinePortal" name="WinePortal">7.1. Wine Portal</a></h2>

<p>
A number of sites exist today that call themselves wine portals.
Google for example, provides 152,000 matches for the query "wine
portal".  One of the top matches, a site called 
<a href="http://www.wine-portal.com/">"Wine-Portal.com"</a>,
provides access to a number of sites.  Many sites
claiming to be wine portals are mostly informational sites.  For
example, wine-portal.com's first featured site, called 'cork cuisine'
(<a href="http://www.corkcuisine.com/">www.corkcuisine.com/</a>),
provides information about matching
wines and foods, wines as gifts, etc.
</p>

<p>
Perusing any of the topic areas, one finds a collection of pages
containing information and sometimes services related to the topic.
For example, 'accessories and gifts' contains information about what to
look for when buying particular wine items and also contains a
significant number of online retailers.  Another top level area called
'shopping' has a subarea called 'wine shopping' from which a user can find
online (or 'street shopping') stores (categorized by country).
These two sites are just two of the many examples
today and are representative of the general notion of a wine portal providing
a collection of information and services connected to a particular topic
area.
</p>
<p>
When looking at these sites in some detail, it is not clear how much
they depend on ontologies today.  For example, viewing the source
for the html does not reveal evidence of ontological usage.  However,
it is clear that the sites could exploit ontologies had some wine ontologies
been available.
</p>
<p>
One simple use of ontologies in portal sites is for organization and
browsing.  The listing of categories above could be generated from
the top few levels of wine related classes.  Queries could exploit
wine ontologies to <i>retrieve</i> wine relevant information. 
If one did a search for a term contained in the ontology, the query could
be expanded with subclass information in order to find more relevant answers. 

Portals could be made to automatically update themselves with (candidate) information
in topic areas.  With very powerful reasoning 
capabilities they could even identify likely wine sales sites and
negotiate to include them as part of the portal.

</p>


<h2><a id="WineAgent" name="WineAgent">7.2. Wine Agent</a></h2>

<p>
We have started a <a href="http://www.ksl.stanford.edu/people/dlm/webont/wineAgent/">
wine agent</a> for expository purposes. In our initial design,
the wine agent's goal is to recommend wines to accompany meal courses.
This application exploits the ontology used as the basis of this guide. 
This wine ontology is available in the DAML ontology library and is entitled
<a href="http://www.daml.org/ontologies/76">wines.</a>
</p>

<p>A personalized wine agent can provide a number of services for a human.
<br />The agent may be used to recommend wines given a set of constraints
(such as a meal being served),  the agent may find information about
a particular wine or a particular class of wines, it may look for appropriate
accessories for a wine (such as a particular kind of glass suited for that
wine varietal, etc.).
</p>

<p>Below, we describe an example in a simple prototype system that is being
written as a student project.
</p>

<p>Consider the following scenario:<br /><br />
Someone is planning a dinner party and at least one of the guests is
wine knowledgeable.  The host would like to serve wine that is well
matched to the course(s) on the menu.  The host would also like to
appear knowledgeable about the wines served at the event.  The host
would also like to have appropriate accessories at the dinner. The host
may have decided to serve a special tomato based pasta sauce with fresh
pasta as the main course.
</p>

<p>In order to serve wines appropriate to the meal, the host needs information
concerning wine and food pairings.  In order to appear knowledgeable
about wines, the host would benefit from having access to wine information
relevant to the event.  In order to have appropriate wine accessories,
the host would need to have information about what accessories are relevant
to the situation (and are within the host's price range).
</p>

<p>
With a background wine ontology, given a description of a meal, a wine
agent can suggest the type of wine to serve with the meal.  The wine
agent may suggest a zinfandel as the varietal of choice for the meal. 
Additionally, given a background ontology, the wine agent may suggest a
particular zinfandel, possibly Marietta Zinfandel. Given the information
that the wine should be a zinfandel, a wine agent may look for a place
to acquire either a selection of zinfandels or it may look for a particular
zinfandel wine, such as Marietta.  Given a background ontology containing
appropriate sources for wine purchases (possibly filtered by the location
of the host and the location of the wine seller), the wine agent could
go to a site such as <a href="http://www.wine.com/">wine.com</a> and do
a search for 'zinfandels' returning a listing
of zinfandels for sale on that site.  The wine agent could attempt
to find <a href="http://www.b-21.com/marietta/">Marietta</a> <a href="http://www.mariettacellars.com/welcome.html">Zinfandel</a>
either from the winery itself or from other resellers.  It could,
for example, find (by a search on Google or a structured search of selected
Web sites) that winelibrary.com has a sale on Marietta Zinfandel 1999 vintage
for a discounted price of $13.99.    The wine agent could
use additional filtering information such as price ranges provided either
by the consumer or as suggestions based on varietal.
</p>

<p>
The wine agent may now attempt to provide information concerning
zinfandel in general or Marietta Zinfandel in particular.  It could
use a background ontology of wine sites to find information about
particular wines.  For example, the winery <a href="http://www.mariettacellars.com/welcome.html">description</a> of
their most recent Zinfandel may be of use.  
Additionally reviews from respected sources such as the <a
href="http://www.winespectator.com/Wine/Home">Wine Spectator</a> may
be of use.  If no review of Marietta Zinfandel is available on a
favorite wine review site, it may be useful to look for related
information such as reviews on zinfandels from the same region, in
this case zinfandels from Sonoma County, California.
</p>

<p>
General background information may also be of use.  The host may
also want to do some reading and may be interested in books on wine in
general or zinfandels in particular.  For example, the host may be
interested in the books that Amazon.com has for <a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-keywords=zinfandel&amp;search-type=ss&amp;bq=1/103-2905386-5649420">sale</a>
on zinfandel.   The host may also be interested in information
concerning wines from the same region, and thus may be interested in Sonoma
zinfandels.  A wine agent may have typical background information
available that is related to its main knowledge areas.  For example,
this wine agent is concerned with matching foods and wines, so it may have
both free and purchasable information on this topic such as the Wine Spectator's
article on <a href="http://www.winespectator.com/Wine/Wine_Basics/Wine_Basics_Template/0,1199,17,00.html">matching
food and wine</a>.
</p>

<p>
The dinner host  may also want to acquire appropriate wine accessories
prior to the event.  Wine is served in wine glasses and different
wine varietals are best served in different kinds of glasses.  For
example, if the host has chosen a meal course  for which a zinfandel
is appropriate, the host may want to know that <a href="http://www.riedelcrystal.com/index.htm">Riedel</a>
is a well-known manufacturer of wine glassware.  The host may also
want to be linked to the Wine Enthusiast (a well respected supplier of
wine merchandise) and be told that the Wine Enthusiast has <a href="http://www.wineenthusiast.com/shopping/prod_detail/main.asp?cat=GW&amp;catID=2&amp;sl=0&amp;productID=4099&amp;uid=8E539ACF-42AF-4EE4-BB3E-5BB42C28A8BC">Riedel's
Vinum Zinfandel glass</a> for sale as a set of 4 for $63.95 (with a discount
to $59.95 if you buy two sets of 4 glasses).   The host may also
be interested to know that Amazon.com has <a href="http://www.amazon.com/exec/obidos/tg/detail/-/B00006E9SS/qid=1033070213/sr=8-2/ref=sr_8_2/103-2905386-5649420?v=glance&amp;s=home-garden&amp;n=507846">Reidel's
Sommelier Zinfandel single stem glass</a> available for $49.99 (and claims
a list price of $65.00).    Amazon also has the same Vinum
glass for sale in sets of 6 (instead of 4 on the wine enthusiast) for $79.99
(and claims a list price of $119.40).  A wine agent could provide
a comparison listing of glassware that is matched to the meal (i.e., is
appropriate to be used to serve zinfandel) and then is compared by price
or other criteria chosen from a list of properties in the ontology.
</p>

<p>
The dinner host may want to consider other wine accessories.  From
the ontology, we know that corkscrews are wine accessories.  The background
ontology may encode subclasses of corkscrews or such information could
be found from relevant wine sites as well.     The
Wine Enthusiast has a set of <a href="http://www.wineenthusiast.com/content/gateway/gateway.asp?cat=CS&amp;uid=8E539ACF-42AF-4EE4-BB3E-5BB42C28A8BC">corkscrews</a>
they <a href="http://www.wineenthusiast.com/templates/recommend.asp?cat=EE&amp;uid=8E539ACF-42AF-4EE4-BB3E-5BB42C28A8BC">recommend</a>
(with descriptions of the types and price ranges).  They also distinguish
corkscrews by type (level, waiter, stationary, twist, and pump) and the
dinner host may want to get information about those styles.
</p>

<p>
The wine agent may be taken to many levels of sophistication depending
upon background ontology knowledge of the domain and information and services
sites.    In this example, we only exploited information
concerning wines, varietal type, food and wine combinations, some wine
accessories and their related properties.  We could of course expand
this to include more information and more constraints by the customer.
</p> 

<p>An evolving example of this wine agent is <a href="http://www.ksl.stanford.edu/people/dlm/webont/wineAgent/">available.</a>
</p>

<hr />

<h1><a id="Acknowledgements" name="Acknowledgements"></a>
Acknowledgements
</h1>

    <p>
      This document is the result of extensive discussions within
      the <a href="http://www.w3.org/2001/sw/WebOnt/">Web Ontology
      Working Group</a> as a whole. The participants in this
      Working Group included: Yasser alSafadi, Jean-Fran&#231;ois
      Baget, James Barnette, Sean Bechhofer, Jonathan Borden,
      Frederik Brysse, Stephen Buswell, Jeremy Carroll, Dan
      Connolly, Peter Crowther, Jonathan Dale, Jos De Roo, David De
      Roure, Mike Dean, Larry Eshelman, J&#233;r&#244;me Euzenat,
      Tim Finin, Nicholas Gibbins, Sandro Hawke, Patrick Hayes,
      Jeff Heflin, Ziv Hellman, James Hendler, Bernard Horan,
      Masahiro Hori, Ian Horrocks, Jane Hunter, Francesco
      Iannuzzelli, R&#252;diger Klein, Natasha Kravtsova, Ora
      Lassila, Massimo Marchiori, Deborah McGuinness, Enrico Motta,
      Leo Obrst, Mehrdad Omidvari, Martin Pike, Marwan Sabbouh,
      Guus Schreiber, Noboru Shimizu, Michael Sintek, Michael K.
      Smith, John Stanton, Lynn Andrea Stein, Herman ter Horst,
      David Trastour, Frank van Harmelen, Bernard Vatant, Raphael
      Volz, Evan Wallace, Christopher Welty, Charles White, and
      John Yanosy.
    </p>

<p> 
Some critical early text on complex restrictions was written by 
<a href="http://www.aifb.uni-karlsruhe.de/WBS/rvo/">Raphael Volz</a>, 
Forschungszentrum Informatik (FZI).
Substantial insight was provided by the 
<a href="http://www.w3.org/TR/daml+oil-walkthru/"><em>DAML+OIL Walkthru</em></a>. 
Jeremy Carroll, Jerome Euzenat, Jeff Heflin, Kevin Page and 
Peter F. Patel-Schneider provided extensive reviews. 
At the WG Face to Face, 8 October 2002, Stephen Buswell, 
Ruediger Klein, Enrico Motta, and Evan Wallace provided a detailed review of the 
ontology resulting in substantial changes. 
At the WG Face to Face, 10 January 2003, Jonathan Dale, Bernard Horan, 
Guus Schreiber, and Jeff Heflin provided detailed reviews of the 
Guide resulting in changes.
The 
<a href="http://lists.w3.org/Archives/Public/public-webont-comments/">
public reviews
</a>
provided numerous helpful suggestions and corrections.
</p>

<!--
<h1><a id="Notes" name="Notes">Notes</a></h1>

<dl>
  <dt><a id="Note-1" name="Note-1"></a>Note 1</dt>
  <dd>Text.</dd>

</dl>

<hr />
-->

<hr />

<h1><a id="Glossary" name="Glossary"></a>
<a id="OWLGlossary" name="OWLGlossary">OWL Glossary</a></h1>

<dl>

<dt>Attribute</dt><dd>as in XML</dd>
<dt>Class Definition</dt><dd>informal term for an owl:Class element</dd>
<dt>Class Description</dt><dd>describes an OWL class, either by a class name or
by specifying a class extension of an unnamed anonymous class
</dd>
<dt>Class name</dt><dd>informal term for an owl:Class rdf:ID attribute value.</dd>
<dt>Class</dt><dd>as in RDF</dd>
<dt>Component</dt><dd>for parts of a definition e.g. the arguments to intersection-of in a class definition</dd>
<dt>Concept</dt><dd>informal term for the abstractions "in the world" that ontologies describe</dd>
<dt>Constraint</dt><dd>informal term for discussing the effect of a restriction</dd>
<dt>Data-valued Property</dt><dd>alternative term for DataType Property</dd>
<dt>Datatype Property</dt><dd>an OWL property that relates individuals to data values</dd>
<dt>Datatype</dt><dd>an RDFS datatype, almost always one of the built-in non-list XML Schema datatypes </dd>
<dt>Element</dt><dd>(1) as in XML</dd><dd>(2) an element of a set</dd>
<dt>Entity</dt><dd>as in XML</dd>
<dt>Imports Closure</dt><dd>the information in an ontology document, plus the information in the imports closure of ontology documents that are imported by the document</dd>
<dt>Individual-valued Property</dt><dd>alternative term for Object Property </dd>
<dt>Individual</dt><dd>an instance of an OWL class, i.e., a resource that belongs to the class extension of an OWL class</dd>
<dt>Instance Of</dt><dd>the relation between an individual and a class</dd>
<dt>Instance</dt><dd>a member of the class extension of an OWL class</dd>
<dt>Name</dt><dd>as in XML Namespaces</dd>
<dt>Named Class</dt><dd>an OWL class with an associated identifier</dd>
<dt>Node</dt><dd>as in RDF Graphs</dd>
<dt>OWL Class</dt><dd>an RDFS class that belongs to the class extension of owl:Class</dd>
<dt>Object Property</dt><dd>an OWL property that relates individuals to other individuals</dd>
<dt>Object</dt><dd>(1) the object of an RDF triple</dd> <dd>(2) an alternative term for individual (used for historical reasons)</dd>
<dt>Ontology Document</dt><dd>a Web document that contains an ontology, generally indicated by the presence of an owl:Ontology element in the document</dd>
<dt>Ontology</dt><dd>(1) collection of information, generally including information about classes and properties</dd><dd>(2) the information contained in an ontology document </dd>
<dt>Property Definition</dt><dd>informal term for an
owl:ObjectProperty element and or owl:DatatypeProperty element </dd>
<dt>Resource</dt><dd>an element of the RDF domain of discourse</dd>
<dt>Restriction, global</dt><dd>reserved for discussions of the <tt>domain</tt> and <tt>range</tt> of properties</dd>
<dt>Restriction, local</dt><dd>[see above]</dd>
<dt>Restriction</dt><dd>usually a piece of a class expression, a statement that expresses a constraint, local by default</dd>
<dt>Set</dt><dd>a mathematical set</dd>
<dt>Statement</dt><dd>as in RDF Graphs</dd>
<dt>Type</dt><dd>as in RDF (rdf:type)</dd>
<dt>URI reference</dt><dd>as in RDF </dd>
<dt>Unnamed Class</dt><dd>an OWL class without an associated identifier, normally components of restrictions.</dd>
<dt>Vocabulary</dt><dd>a set of URI references</dd>

</dl>

<br /><br />

<hr />

<h1><a id="TermIndexAndCrossReference" name="TermIndexAndCrossReference">
Term Index and Cross Reference</a></h1>

<h2><a id="TermIndex" name="TermIndex">Term Index</a></h2>

<table width="50%">
  <tbody>
<tr><th>Term</th><th>Section</th></tr>

<tr><td class="index">anonymous class</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_anonymousClass">3.2.1. </a></td></tr>
<tr><td class="index">class</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_class">3.1.3. </a></td></tr>
<tr><td class="index">cardinality</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_cardinality">3.4.2. </a></td></tr>
<tr><td class="index">complement</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_complement">5.1.3. </a></td></tr>
<tr><td class="index">datatype</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_datatype">3.2.1. </a></td></tr>
<tr><td class="index">datatype property</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_datatypeproperties">3.2.1. </a></td></tr>
<tr><td class="index">domain</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_domain">3.2.1. </a></td></tr>
<tr><td class="index">entailed</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_entailed">1. </a></td></tr>
<tr><td class="index">enumerated</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_enumerated">5. </a></td></tr>
<tr><td class="index">extension</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_extension">3.1. </a></td></tr>
<tr><td class="index">instance of</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_instance">3.1.3. </a></td></tr>
<tr><td class="index">intersectionOf</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_intersection">5.1.1. </a></td></tr>
<tr><td class="index">imports</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_import">2.2. </a></td></tr>
<tr><td class="index">individual</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_individual">3.1.3. </a></td></tr>
<tr><td class="index">instance</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_instanceOf">3.1.3. </a></td></tr>
<tr><td class="index">monotonic</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_monotonic">2. </a></td></tr>
<tr><td class="index">object properties</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_objectproperties">3.2.1. </a></td></tr>
<tr><td class="index">ontology</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_ontology">1. </a></td></tr>
<tr><td class="index">open world</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_openworld">2. </a></td></tr>
<tr><td class="index">OWL DL</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_OWLDL">1.1. </a></td></tr>
<tr><td class="index">OWL Full</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_OWLFull">1.1. </a></td></tr>
<tr><td class="index">OWL Lite</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_OWLLite">1.1. </a></td></tr>
<tr><td class="index">property</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_Properties">3.2.1. </a></td></tr>
<tr><td class="index">range</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_range">3.2.1. </a></td></tr>

<tr><td class="index">restriction class</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_restriction_class">3.4.1. </a></td></tr>

<tr><td class="index">union</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_union">5.1.2. </a></td></tr>
<tr><td class="index">unique names</td>
    <td class="index"><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#term_uniqueName">4.2. </a></td></tr>
  </tbody>
</table>
<br /><br />

<h2><a id="CrossReference" name="CrossReference">
Guide, Reference and Semantics Cross Reference</a>
</h2>

<table>
  <tbody>
<tr><th>OWL Guide</th><th>OWL Reference</th><th>OWL Semantics</th></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_AllDifferent">owl:AllDifferent / 4.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#AllDifferent-def">owl:AllDifferent</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/rdfs.html#owl_AllDifferent_rdf">owl:AllDifferent</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_allValuesFrom">owl:allValuesFrom / 3.4.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#allValuesFrom-def">owl:allValuesFrom</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_allValuesFrom_semantics">owl:allValuesFrom</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_AnnotationProperty">owl:AnnotationProperty / 2.2. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#AnnotationProperty-def">owl:AnnotationProperty</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_AnnotationProperty_semantics">owl:AnnotationProperty</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_backwardCompatibleWith">owl:backwardCompatibleWith / 6. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#backwardCompatibleWith-def">owl:backwardCompatibleWith</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/mapping.html#owl_backwardCompatibleWith_mapping">owl:backwardCompatibleWith</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_cardinality">owl:cardinality / 3.4.2. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#cardinality-def">owl:cardinality</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_cardinality_semantics">owl:cardinality</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_Class">owl:Class / 3.1.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#Class-def">owl:Class</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_Class_semantics">owl:Class</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_complementOf">owl:complementOf / 5.1.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#complementOf-def">owl:complementOf</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_complementOf_semantics">owl:complementOf</a></td></tr>

<tr>
<td class="index">&nbsp;</td>
<td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#EnumeratedDatatype">owl:DataRange</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_DataRange_semantics">owl:DataRange</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_DatatypeProperty">owl:DatatypeProperty / 3.2.2. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#DatatypeProperty-def">owl:DatatypeProperty</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_DatatypeProperty_semantics">owl:DatatypeProperty</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_DeprecatedClass">owl:DeprecatedClass / 6. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#DeprecatedClass-def">owl:DeprecatedClass</a></td><td class="index">
&nbsp;</td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_DeprecatedProperty">owl:DeprecatedProperty / 6. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#DeprecatedProperty-def">owl:DeprecatedProperty</a></td><td class="index">
&nbsp;</td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_differentFrom">owl:differentFrom / 4.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#differentFrom-def">owl:differentFrom</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_differentFrom_semantics">owl:differentFrom</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_disjointWith">owl:disjointWith / 5.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#disjointWith-def">owl:disjointWith</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_disjointWith_semantics">owl:disjointWith</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_distinctMembers">owl:distinctMembers / 4.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#distinctMembers-def">owl:distinctMembers</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/rdfs.html#owl_distinctMembers_rdf">owl:distinctMembers</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_equivalentClass">owl:equivalentClass / 4.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#equivalentClass-def">owl:equivalentClass</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_equivalentClass_semantics">owl:equivalentClass</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_equivalentProperty">owl:equivalentProperty / 4.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#equivalentProperty-def">owl:equivalentProperty</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_equivalentProperty_semantics">owl:equivalentProperty</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_FunctionalProperty">owl:FunctionalProperty / 3.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#FunctionalProperty-def">owl:FunctionalProperty</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_FunctionalProperty_semantics">owl:FunctionalProperty</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_hasValue">owl:hasValue / 3.4.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#hasValue-def">owl:hasValue</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_hasValue_semantics">owl:hasValue</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_imports">owl:imports / 2.2. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#imports-def">owl:imports</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_imports_semantics">owl:imports</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_incompatibleWith">owl:incompatibleWith / 6. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#incompatibleWith-def">owl:incompatibleWith</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/mapping.html#owl_incompatibleWith_mapping">owl:incompatibleWith</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_intersectionOf">owl:intersectionOf / 5.1.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#intersectionOf-def">owl:intersectionOf</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_intersectionOf_semantics">owl:intersectionOf</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_InverseFunctionalProperty">owl:InverseFunctionalProperty / 3.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#InverseFunctionalProperty-def">owl:InverseFunctionalProperty</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_InverseFunctionalProperty_semantics">owl:InverseFunctionalProperty</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_inverseOf">owl:inverseOf / 3.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#inverseOf-def">owl:inverseOf</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_inverseOf_semantics">owl:inverseOf</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_maxCardinality">owl:maxCardinality / 3.4.2. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#maxCardinality-def">owl:maxCardinality</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_maxCardinality_semantics">owl:maxCardinality</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_minCardinality">owl:minCardinality / 3.4.2. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#minCardinality-def">owl:minCardinality</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_minCardinality_semantics">owl:minCardinality</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_Nothing">owl:Nothing / 3.1.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#Nothing-def">owl:Nothing</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_Nothing_semantics">owl:Nothing</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_ObjectProperty">owl:ObjectProperty / 3.2.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#ObjectProperty-def">owl:ObjectProperty</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_ObjectProperty_semantics">owl:ObjectProperty</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_oneOf">owl:oneOf / 5.2. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#oneOf-def">owl:oneOf</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_oneOf_semantics">owl:oneOf</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_onProperty">owl:onProperty / 3.4. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#onProperty-def">owl:onProperty</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_onProperty_semantics">owl:onProperty</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_Ontology">owl:Ontology / 2.2. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#Ontology-def">owl:Ontology</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_Ontology_semantics">owl:Ontology</a></td></tr>

<tr><td class="index">
&nbsp;</td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#OntologyProperty-def">owl:OntologyProperty</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_OntologyProperty_semantics">owl:OntologyProperty</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_priorVersion">owl:priorVersion / 6. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#priorVersion-def">owl:priorVersion</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/mapping.html#owl_priorVersion_mapping">owl:priorVersion</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_Restriction">owl:Restriction / 3.4. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#Restriction-def">owl:Restriction</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_Restriction_semantics">owl:Restriction</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_sameAs">owl:sameAs / 4.2. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#sameAs-def">owl:sameAs</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_sameAs_semantics">owl:sameAs</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_someValuesFrom">owl:someValuesFrom / 3.4.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#someValuesFrom-def">owl:someValuesFrom</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_someValuesFrom_semantics">owl:someValuesFrom</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_SymmetricProperty">owl:SymmetricProperty / 3.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#SymmetricProperty-def">owl:SymmetricProperty</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_SymmetricProperty_semantics">owl:SymmetricProperty</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_Thing">owl:Thing / 3.1.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#Thing-def">owl:Thing</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_Thing_semantics">owl:Thing</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_TransitiveProperty">owl:TransitiveProperty / 3.3. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#TransitiveProperty-def">owl:TransitiveProperty</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_TransitiveProperty_semantics">owl:TransitiveProperty</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_unionOf">owl:unionOf / 5.1.2. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#unionOf-def">owl:unionOf</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#owl_unionOf_semantics">owl:unionOf</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_versionInfo">owl:versionInfo / 6. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#versionInfo-def">owl:versionInfo</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/mapping.html#owl_versionInfo_mapping">owl:versionInfo</a></td></tr>

<tr><td class="index">
&nbsp;</td><td class="index">
&nbsp;</td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/rdfs.html#rdf_List_rdf">rdf:List</a></td></tr>

<tr><td class="index">
&nbsp;</td><td class="index">
&nbsp;</td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/rdfs.html#rdf_nil_rdf">rdf:nil</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#rdf_type">rdf:type</a></td><td class="index">
&nbsp;</td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#rdf_type_semantics">rdf:type</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#rdfs_comment">rdfs:comment / 2.2. </a></td><td class="index">
&nbsp;</td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/mapping.html#rdfs_comment_mapping">rdfs:comment</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#rdfs_Datatype">rdfs:Datatype / 3.2.2. </a></td><td class="index">
&nbsp;</td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/rdfs.html#rdfs_Datatype_rdf">rdfs:Datatype</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#rdfs_domain">rdfs:domain / 3.2.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#domain-def">rdfs:domain</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#rdfs_domain_semantics">rdfs:domain</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#rdfs_label">rdfs:label / 3.1.1. </a></td><td class="index">
&nbsp;</td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/mapping.html#rdfs_label_mapping">rdfs:label</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#rdfs_Literal">rdfs:Literal / 3.3. </a></td><td class="index">
&nbsp;</td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/rdfs.html#rdfs_Literal_rdf">rdfs:Literal</a></td></tr>

<!--
<tr><td class="index">
rdf:Property</td><td class="index">
rdf:Property</td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/rdfs.html#owl_Property_rdf">rdf:Property</a></td></tr>
-->
<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#rdfs_range">rdfs:range / 3.2.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#range-def">rdfs:range</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#rdfs_range_semantics">rdfs:range</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#rdfs_subClassOf">rdfs:subClassOf / 3.1.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#subClassOf-def">rdfs:subClassOf</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#rdfs_subClassOf_semantics">rdfs:subClassOf</a></td></tr>

<tr><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#rdfs_subPropertyOf">rdfs:subPropertyOf / 3.2.1. </a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/#subPropertyOf-def">rdfs:subPropertyOf</a></td><td class="index">
<a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/direct.html#rdfs_subPropertyOf_semantics">rdfs:subPropertyOf</a></td></tr>
  </tbody>
</table>

<hr />

<h1><a name="References">References</a></h1>
  
<h2><a name="RelatedOWL">OWL</a></h2>

<dl>
  <dt><a id="FormalModel" name="FormalModel">[OWL Semantics and Abstract Syntax]</a></dt>
  <dd>
    <a href="http://www.w3.org/TR/2004/REC-owl-semantics-20040210/">
     <cite>OWL Web Ontology Language Semantics and Abstract Syntax</cite>
   </a>, 
   Peter F. Patel-Schneider, Patrick Hayes, and Ian Horrocks, Editors.
   W3C Recommendation, 10 February 2004,<br />
   http://www.w3.org/TR/2004/REC-owl-semantics-20040210/.<br />
   <a href="http://www.w3.org/TR/owl-semantics/">Latest version</a>
   available at http://www.w3.org/TR/owl-semantics/.
 </dd>

  <dt><a id="FeatureList" name="FeatureList">[OWL Overview]</a></dt>
  <dd>
    <a href="http://www.w3.org/TR/2004/REC-owl-features-20040210/">
      <cite>OWL Web Ontology Language Overview</cite>
    </a>, 
    Deborah L. McGuinness and Frank van Harmelen, Editors.
    W3C Recommendation, 10 February 2004,<br />
    http://www.w3.org/TR/2004/REC-owl-features-20040210/. 
    <br />
    <a href="http://www.w3.org/TR/owl-features/">Latest version</a>
    available at http://www.w3.org/TR/owl-features/.
    <br />
  </dd> 

  <dt><a name="Reference" id="Reference">[OWL Reference]</a></dt>
  <dd>
    <a href="http://www.w3.org/TR/2004/REC-owl-ref-20040210/">
      <cite>OWL Web Ontology Language Reference</cite>
    </a>,  
    Mike Dean and Guus Schreiber, Editors.
    W3C Recommendation, 10 February 2004,<br />
    http://www.w3.org/TR/2004/REC-owl-ref-20040210/.<br />
    <a href="http://www.w3.org/TR/owl-ref/">Latest version</a>
    available at http://www.w3.org/TR/owl-ref/.
    <br />
  </dd> 

  <dt><a id="Requirements" name="Requirements">[OWL Requirements]</a></dt>
  <dd>
    <a href="http://www.w3.org/TR/2004/REC-webont-req-20040210/">
    <cite>OWL Web Ontology Language Use Cases and Requirements</cite>
    </a>,
    Jeff Heflin, Editor.
    W3C Recommendation, 10 February 2004,<br />
    http://www.w3.org/TR/2004/REC-webont-req-20040210/.<br />
    <a href="http://www.w3.org/TR/webont-req/">Latest version</a>
    available at http://www.w3.org/TR/webont-req/.
    <br /> 
  </dd> 

  <dt><a id="TestCases" name="TestCases">[OWL Test Cases]</a></dt>
  <dd>
    <a href="http://www.w3.org/TR/2004/REC-owl-test-20040210/">
      <cite>OWL Web Ontology Language Test Cases</cite>
    </a>, 
    Jeremy J. Carroll and Jos De Roo, Editors.
    W3C Recommendation, 10 February 2004,<br />
    http://www.w3.org/TR/2004/REC-owl-test-20040210/.<br />
    <a href="http://www.w3.org/TR/owl-test/">Latest version</a>
    available at http://www.w3.org/TR/owl-test/.
  </dd>

</dl>

<h2><a name="RelatedStandards">Related W3C Standards</a></h2>
    
<dl>
 
  <dt><a id="RDF1" name="RDF1">[RDF]</a></dt>
  <dd>
    <a href="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/">
      <cite>Resource Description Framework (RDF) Model and Syntax Specification</cite>
    </a>, 
    Ora Lassila, Ralph R. Swick, Editors.
    World Wide Web Consortium Recommendation, 1999, <br />
    http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/.<br />
    <a href="http://www.w3.org/TR/REC-rdf-syntax/">Latest version</a>
    available at http://www.w3.org/TR/REC-rdf-syntax/.
  </dd>
 
  <dt>
    <a id="RDFS" name="RDFS">[RDFS]</a>
  </dt>
  <dd>
      <a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210/">
        <cite>RDF Vocabulary Description Language 1.0: RDF Schema</cite>
      </a>,
      Dan Brickley and R.V. Guha, Editors.
      W3C Recommendation, 10 February 2004,<br />
      http://www.w3.org/TR/2004/REC-rdf-schema-20040210/ .<br />
      <a href="http://www.w3.org/TR/rdf-schema/">Latest version</a>
      available at http://www.w3.org/TR/rdf-schema/.
    </dd>

    <dt><a id="ref-rdf-concepts" name="ref-rdf-concepts">[RDF Concepts]</a></dt>
    <dd><cite>
      <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">
      Resource Description Framework (RDF):  Concepts and Abstract Syntax</a></cite>,
      Graham Klyne and Jeremy J. Carroll, Editors.
      W3C Recommendation, 10 February 2004,<br />
      http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/.<br />
      <a href="http://www.w3.org/TR/rdf-concepts/">Latest version</a>
      available at http://www.w3.org/TR/rdf-concepts/.
    </dd>

  <dt><a id="RDFSemantics" name="RDFSemantics">[RDF Semantics]</a></dt>
  <dd>
    <a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210/">
      <cite>RDF Semantics</cite>
    </a>,
    Patrick Hayes, Editor.
W3C Recommendation, 10 February 2004,<br />
    http://www.w3.org/TR/2004/REC-rdf-mt-20040210/. <br />
    <a href="http://www.w3.org/TR/rdf-mt/">Latest version</a>
    available at http://www.w3.org/TR/rdf-mt/.

</dd>
 
  <dt><a id="RDFSyntax" name="RDFSyntax">[RDF Syntax]</a></dt>
  <dd>
    <a href="http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/">
      <cite>RDF/XML Syntax Specification (Revised)</cite>
    </a>,
    Dave Beckett, Editor.
    W3C Recommendation, 10 February 2004,<br />
    http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/.<br />
    <a href="http://www.w3.org/TR/rdf-syntax-grammar/">Latest version</a>
    available at http://www.w3.org/TR/rdf-syntax-grammar.
  </dd>


  <dt><a id="URI1" name="URI1">[URI]</a></dt>
  <dd>
    <a href="http://www.ietf.org/rfc/rfc2396.txt">
      <cite>Uniform Resource Identifiers (URI): Generic Syntax</cite>
    </a>,
    T. Berners-Lee, R. Fielding, and L. Masinter,
    IETF Draft Standard August, 1998 (RFC 2396).
  </dd>

  <dt><a id="XMLBase" name="XMLBase">[XML Base]</a></dt>
  <dd>
    <a href="http://www.w3.org/TR/xmlbase/">XML Base</a>,
    Jonathan Marsh, Editor. W3C Recommendation, 27 June 2001,<br />
    http://www.w3.org/TR/2001/REC-xmlbase-20010627/.<br />
    <a href="http://www.w3.org/TR/xmlbase/">Latest version</a>
    available at http://www.w3.org/TR/xmlbase/.
  </dd>

  <dt>
  <a id="XMLNS" name="XMLNS">[XML Namespaces]</a></dt>
  <dd>
    <a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/"> 
      <cite>Namespaces in XML</cite>
    </a>,
    Tim Bray, Dave Hollander, Andrew Layman, Editors.
    W3C Recommendation, Jan 1999, <br />
    http://www.w3.org/TR/1999/REC-xml-names-19990114/.<br />
    <a href="http://www.w3.org/TR/REC-xml-names/">Latest version</a>
    available at http://www.w3.org/TR/REC-xml-names.
  </dd>

  <dt>
    <a id="XML1" name="XML1">[XML]</a>
  </dt>
  <dd>
    <a href="http://www.w3.org/TR/1998/REC-xml-19980210">
      <cite>Extensible Markup Language (XML) 1.0</cite>
    </a>,
    Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Editors.
    W3C Recommendation, 10 February 1998,<br />
    http://www.w3.org/TR/1998/REC-xml-19980210.<br />
    <a href="http://www.w3.org/TR/REC-xml">Latest version</a>
    available at http://www.w3.org/TR/REC-xml.
  </dd>
  
  <dt>
    <a id="XMLSCHEMA-1" name="XMLSCHEMA-2">[XML Schema 1]</a>
  </dt>
  <dd>
    <a href="http://www.w3.org/TR/xmlschema-1/">
      <cite>XML Schema Part 1: Structures</cite></a>,
      Henry S. Thompson, David Beech, Murray Maloney, and Noah Mendelsohn, Editors.
      W3C Recommendation, 2 May 2001, <br />
      http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/.<br />
      <a href="http://www.w3.org/TR/xmlschema-1/">Latest version</a> available at 
      http://www.w3.org/TR/xmlschema-1/.
  </dd>
  <dt>
    <a id="XMLSCHEMA-2" name="XMLSCHEMA-2">[XML Schema 2]</a>
  </dt>
  <dd>
    <a href="http://www.w3.org/TR/xmlschema-2/">
      <cite>XML Schema Part 2: Datatypes</cite></a>,
      Paul V. Biron, Ashok Malhotra, Editors.
      W3C Recommendation, 2 May 2001, <br />
      http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/.<br />
      <a href="http://www.w3.org/TR/xmlschema-2/">Latest version</a> available at 
      http://www.w3.org/TR/xmlschema-2/.
  </dd>

</dl>
<br />


<h2>
  <a id="SampleOntology" name="SampleOntology">
  Sample Ontologies and Applications
  </a>
</h2>

<dl>
  <dt>
    <a id="IntegratingApplications"
    name="IntegratingApplications">[Integrating Applications]</a>
  </dt>
  <dd>
    <a href="http://www.w3.org/2002/07/swint">
      <cite> Integrating Applications on the Semantic Web</cite>
    </a>, James Hendler, Tim Berners-Lee, and Eric Miller.
    <em>Journal of the Institute of
    Electrical Engineers of Japan</em>, Vol 122(10), October, 2002, p. 676-680.
  </dd>

  <dt><a id="VerticalNet" name="VerticalNet">[VerticalNet]</a></dt>
  <dd>
    <a href="http://www.ksl.stanford.edu/people/dlm/papers/ontologyBuilderVerticalNet-abstract.html">
      <cite>Industrial Strength Ontology Management</cite>
    </a>,
    Aseem Das, Wei Wu, and
    Deborah L. McGuinness. Stanford Knowledge Systems Laboratory Technical
    Report KSL-01-09 2001. In the <em>Proceedings of the International
    Semantic Web Working Symposium</em>, Stanford, CA, July 2001.
  </dd>

  <dt><a id="wine1" name="wine1">[Wine Ontology From Daml.org]</a></dt>
  <dd>
    <a href="http://www.daml.org/ontologies/76">http://www.daml.org/ontologies/76</a>
  </dd>

  <dt><a id="wine4" name="wine4">[Wine Ontology / CLASSIC Tutorial]</a></dt>
  <dd>
    <a href="http://www.bell-labs.com/project/classic/papers/ClassTut/ClassTut.html">
      <cite>Classic Knowledge Representation System Tutorial</cite>
    </a>,
    Deborah L. McGuinness, Peter F. Patel-Schneider, Richmond
    H. Thomason, Merryll K. Abrahams, Lori Alperin Resnick, 
    Violetta Cavalli-Sforza, and Cristina Conati.
    AT&amp;T Bell Laboratories and University of Pittsburgh, 1994.
  </dd>

  <dt><a id="wine2" name="wine2">[Wine Ontology Tutorial]</a></dt>
  <dd>
    <a href="http://www.ksl.stanford.edu/people/dlm/papers/ontology-tutorial-noy-mcguinness-abstract.html">
      <cite>Ontology Development 101: A Guide to Creating Your First Ontology</cite>,
    </a>
    Natalya Fridman Noy and Deborah L. McGuinness.
    Stanford Knowledge Systems Laboratory Technical
    Report KSL-01-05 and Stanford Medical Informatics Technical Report
    SMI-2001-0880, March 2001.
  </dd>

  <dt><a id="wine3" name="wine3">[Wine Ontology in CLASSIC]</a></dt>
  <dd>
    <a href="http://www.ksl.stanford.edu/people/dlm/papers/living-with-classic-abstract.html">
      <cite> Living with CLASSIC: When and How to Use a KL-ONE-Like Language</cite>
    </a>, Ronald J. Brachman, Deborah L. McGuinness , Peter
    F. Patel-Schneider , Lori Alperin Resnick , and Alex
    Borgida. In 
    <em>Principles of Semantic Networks: Explorations in the
    representation of knowledge</em>, John Sowa, Editor.
    Morgan-Kaufmann, San Mateo, California, 1991, pages 401--456.
  </dd>

</dl>

<br />

<h2><a name="RelatedKR">Related KR Language Research</a></h2>

<dl>
  <dt><a id="DAMLPlusOIL" name="DAMLPlusOIL">[DAML+OIL]</a></dt>
  <dd>
    <a id="DAMLPlusOIL-submission" name="DAMLPlusOIL-submission" />
    <a href="http://www.w3.org/Submission/2001/12/">DAML+OIL W3C
    Submission</a>, Includes reference description, both model theoretic
    and axiomatic semantics, annotated walkthrough and examples.
  </dd>
  <dd> 
    <a id="DAMLPlusOIL-walkthrough" name="DAMLPlusOIL-walkthrough" />
    <a href="http://www.w3.org/TR/daml+oil-walkthru/">
      <cite>Annotated DAML+OIL Ontology Markup</cite>
    </a>,
    Dan Connolly, Frank van Harmelen, Ian Horrocks, Deborah McGuinness,
    Peter F. Patel-Schneider, Lynn Andrea Stein. December 2001.  
  </dd>

  <dt>
    <a id="DAML-ONT" name="DAML-ONT">[DAML-ONT]</a>
  </dt>
  <dd>
    <a href="http://www.daml.org/2000/10/daml-ont.html">DAML-ONT initial release</a>
    at http://www.daml.org/2000/10/daml-ont.html.
  </dd>

  <dt><a id="DAML-ONT-KIF" name="DAML-ONT-KIF">[DAML-ONT KIF]</a></dt>
  <dd>
    <a href="http://www.daml.org/2000/10/DAML-Ont-kif-axioms-001107.html">
    Partial DAML-ONT axiomatization
    </a>
    at http://www.daml.org/2000/10/DAML-Ont-kif-axioms-001107.html.<br />
    Defined in <a href="http://logic.stanford.edu/kif/kif.html">KIF</a>
    (http://logic.stanford.edu/kif/kif.html).
  </dd>

  
  <dt>
    <a id="DescriptionLogics" name="DescriptionLogics">[Description
    Logics]</a>
  </dt>
  <dd>
    <a id="dl1" name="dl1"></a>
    <a href="http://titles.cambridge.org/catalogue.asp?isbn=0521781760">
      <cite>
      The Description Logic Handbook: Theory, Implementation and
      Application
      </cite>,
    </a>
    Franz Baader, Diego Calvanese, Deborah
    L. McGuinness, Daniele Nardi, and Peter F. Patel-Schneider, Editors.
    Cambridge University Press, 2002.
  </dd>

  <dt><a id="MCF" name="MCF">[MCF]</a></dt>

  <dd>
    <a href="http://www.w3.org/TR/NOTE-MCF-XML/">
    Meta Content Framework Using XML
    </a>,
    R.V. Guha and Tim Bray. Netscape Communications, 6 June 1997.
  </dd>

  <dt><a id="PartWhole" name="PartWhole">[Part Whole]</a></dt>
  <dd>
  A Taxonomy of Part-Whole
  Relations. M. Winston, R. Chaffin &amp; D. Herrmann. 
    <em>Cognitive Science</em>,
    11:417-444, 1987.
  </dd>

  <dt><a id="XOL" name="XOL">[XOL]</a></dt>
  <dd> 
    <a href="http://www.ai.sri.com/pubs/full.php?id=676">XOL: An XML-Based
    Ontology Exchange Language</a>,
    Peter D. Karp, Vinay K. Chaudhri, and Jerome F. Thomere.
    Technical Report 559. AI Center, SRI 
    International, 333 Ravenswood Ave., Menlo Park, CA 94025, Jul 1999. 
  </dd>

</dl>

<h2><a id="General" name="General">Background Information and Home Pages</a></h2>

<dl> 
  <dt><a id="DublinCore" name="DublinCore">[Dublin Core]</a></dt>
  <dd>
    <a href="http://dublincore.org/">Dublin Core
    Metadata</a> at home page, http://dublincore.org/.
  </dd>

  <dt><a id="DublinCoreXML" name="DublinCoreXML">[Dublin Core XML]</a></dt>
  <dd>
    <a href="http://dublincore.org/documents/2001/11/28/dcmes-xml/">
      <cite>Expressing Dublin Core in RDF/XML</cite>,
    </a>
    Dave Beckett, Eric Brickley, and Dan Brickley.<br />
    Dublin Core Metadata Initiative. July 31, 2002, <br />
    http://dublincore.org/documents/2001/11/28/dcmes-xml/.
  </dd>

  <dt><a id="KAON" name="KAON">[KAON]</a></dt>
  <dd>
    <a href="http://kaon.semanticweb.org/">
    The Karlsruhe Ontology and Semantic Web Tool Suite
    </a>
    at http://kaon.semanticweb.org.
  </dd>

  <dt><a id="OIL" name="OIL">[OIL]</a></dt>
  <dd>
    <a href="http://oil.semanticweb.org/">OIL Home Page</a> at http://oil.semanticweb.org/.
  </dd>

  <dt><a id="Ontobroker" name="Ontobroker">[Ontobroker]</a></dt>
  <dd><a href="http://ontobroker.aifb.uni-karlsruhe.de/index_ob.html">The
  Ontobroker home page</a> at http://ontobroker.aifb.uni-karlsruhe.de/index_ob.html.<br />
  Institute AIFB, University of Karlsruhe.
  </dd>

  <dt><a id="Ontoknowledge" name="Ontoknowledge">[Ontoknowledge]</a></dt>
  <dd>
    <a href="http://www.ontoknowledge.org/">
    Ontoknowledge Home Page
    </a> at http://www.ontoknowledge.org/.
  </dd>

 <dt><a id="RDFHome" name="RDFHome">[RDF Home]</a></dt>
 <dd>
    <a href="http://www.w3.org/RDF/">RDF: Resource Description Framework</a>. 
    Background information at http://www.w3.org/RDF/. 
  </dd>
 
  <dt><a id="SHOE" name="SHOE">[SHOE]</a></dt>
  <dd>
    <a href="http://www.cs.umd.edu/projects/plus/SHOE/">
    Simple HTML Ontology Extensions (SHOE) home page
    </a>
    at http://www.cs.umd.edu/projects/plus/SHOE/.
    University of Maryland.
  </dd>

  <dt><a id="KR" name="KR">[KR]</a></dt>
  <dd>
    <a href="http://kr.org/">KR Home Page</a> at http://kr.org/.
  </dd>

</dl>

<br />  
<hr />
  
<h1><a id="AppendixA" name="AppendixA">Appendix A</a>: XML + RDF Basics</h1>
  
<div class="description">
    This appendix provides links to introductions to the standards that
    OWL depends on.</div>
  
<p>
    To fully understand the OWL syntax and semantics you should be
    familiar with the basics of the  related W3C and IETF standards listed
    below. A minimal guide to XML and RDF is provided by the first two
    links below.
</p>
  
<ul>
  <li><a href="http://www.daml.org/2001/03/daml+oil-walkthru.html#xml-guide"> 
        Appendix</a> to the <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DAMLPlusOIL-walkthrough">
      <em>DAML+OIL Walkthru</em></a><br /><br /></li>
  
  <li><a href="http://www.ietf.org/rfc/rfc2396.txt">URI - Uniform Resource Identifier</a> </li>
  <li><a href="http://www.w3.org/XML/">XML - eXtensible Markup Language</a></li>
  <li><a href="http://www.w3.org/TR/REC-xml-names/">XML Namespaces</a> </li>
  <li><a href="http://www.w3.org/XML/Schema">XML Schema</a></li>
  <li><a href="http://www.w3.org/TR/REC-rdf-syntax/">RDF - Resource Description Framework</a> </li>
  <li><a href="http://www.w3.org/TR/rdf-schema/">RDF Schema</a> </li>
</ul>

<hr />

<h1><a id="AppendixB" name="AppendixB">Appendix B</a>: History</h1>

<p>
<a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#RDF1">The Resource Description Framework (RDF)</a> was the
first language specified by the W3C for representing semantic
information about arbitrary resources.  <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#RDFS">RDF Schema
(RDFS)</a> is a W3C candidate recommendation for an extension to RDF
to describe RDF vocabularies.  RDFS can be used to create ontologies,
but it is purposefully lightweight, with less expressive power than
OWL.  
</p>

<p>
Like OWL, RDFS includes classes and properties, as well as range and
domain constraints on properties.  It provides inheritance hierarchies
for both classes and properties.  Upon its release users began
requesting additional features, including data types, enumerations and
the ability to define properties more rigorously.
</p>

<p>
Other efforts in the research community were already examining exactly
these sorts of features.  For those who wish to delve more deeply into
this background, a partial list of projects and languages includes:
</p>

<ul>
<li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DAMLPlusOIL">DAML - DARPA Agent Markup Language</a></li>
<li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DAML-ONT">DAML-ONT</a>  </li>
<li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#MCF">MCF - Meta Content Framework</a>.</li>
<li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Ontobroker">Ontobroker</a></li>
<li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#Ontoknowledge">On-To-Knowledge</a></li>
<li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OIL">OIL - Ontology Inference Layer</a></li>
<li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#SHOE">SHOE - Simple HTML Ontology Extensions</a></li>
<li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#XOL">XOL</a></li>
</ul>

<p>
Instead of continuing with separate ontology languages for the
Semantic Web, a group of researchers, including many of the main
participants in both the OIL and DAML-ONT efforts, got together in the
<a href="http://www.daml.org/committee/">Joint US/EU ad hoc Agent
Markup Language Committee</a> to create a new Web ontology language.
This language <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DAMLPlusOIL">DAML+OIL</a> built on both OIL and
DAML-ONT, was <a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DAMLPlusOIL-submission">submitted</a> to the
W3C as a proposed basis for OWL, and was subsequently selected as the
starting point for OWL.
</p>

<p>
In addition to ontology languages, various taxonomies and existing
ontologies are already in use commercially. In
e-Commerce sites they facilitate machine-based
communication between buyer and seller, enable vertical integration of
markets and allow descriptions to be reused in different marketplaces.
Examples of sites that are actually making commercial use ontologies
include:
</p>

<ul>
<li><a href="http://www.w3.org/TR/2004/REC-owl-guide-20040210/#VerticalNet">VerticalNet</a>
     Vertical Net currently hosts 59 industry-specific e-marketplaces
     that span diverse industries such as manufacturing,
     communications, energy, and healthcare.</li>
</ul>

<p>
Various medical or drug-related ontologies have been developed to help
manage the overwhelming mass of current medical and biochemical research data
that can be difficult to tie together into a cohesive whole.
One major resource is the <a href="http://www.geneontology.org/">Gene
Ontology Consortium</a> which is defining ontologies for
</p>

<ul>
<li>Molecular Function,</li>
<li>Biological Process, and</li>
<li>Cellular Components.</li>
</ul>

<p>
That site also has pointers to ontologies for
</p>

<ul>
<li> sequence attributes, </li>
<li> gene product attributes, </li>
<li> chemical substances,</li>
<li> pathways, </li>
<li> anatomies, </li>
<li> pathology, </li>
<li> physical characteristics, </li>
<li> experiment attributes, </li>
<li> classification, and </li>
<li> pathology. </li>
</ul>

<p> There exist large taxonomies in use today that would be ripe for
extension into the OWL space.  For example, the North American
Industry Classification System (NAICS) defines a hierarchy of over
1900 items that identify industry types.  
NAICS is also tied to the International Standard Industrial
Classification System (ISIC, Revision 3), developed and maintained by
the United Nations. 
</p>

<hr />

<h1>
<a id="changes-since-PR" name="changes-since-PR">
Appendix C: Change Log Since Proposed Recommendation, 15 December 2003
</a>
</h1>

<ul>
 <li>Corrected a typo (allValuesFrom to someValuesFrom) in the TexasThings example in 4.1.</li>
 <li>Added anchor for owl:AnnotationProperty.</li>
 <li>In 3.1.1. added explicit ontology prefix for 'about' syntax example.</li>
 <li>Added a cross reference to the description of the use of <tt>owl:oneOf</tt> in the
     <i>Reference</i> at the end of 5.2.</li>
 <li>Made a number of minor corrections suggested by
     a <a href="http://lists.w3.org/Archives/Public/public-webont-comments/2004Jan/0011.html">
     message</a> to public-webont-comments.
  </li>
 <li>Modified citations for consistency with other OWL documents.</li>
 <li>Fixed typos related to numbering in namespace references.</li>
</ul>

</body>
</html>