NOTE-rdftm-survey-20060210 123 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
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>A Survey of RDF/Topic Maps Interoperability Proposals</title>
  <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-WG-NOTE" />
</head>

<body>

<!-- HEADER SECTION -->
<div class="head">
<a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72" /></a>

<h1 id="title">A Survey of RDF/Topic Maps Interoperability Proposals</h1>

<h2>W3C Working Group Note 10 February 2006</h2>

<dl>
<dt><b>This version:</b></dt>
<dd><a
href="http://www.w3.org/TR/2006/NOTE-rdftm-survey-20060210">http://www.w3.org/TR/2006/NOTE-rdftm-survey-20060210</a></dd>

<dt><b>Latest version:</b></dt>
<dd><a
href="http://www.w3.org/TR/rdftm-survey">http://www.w3.org/TR/rdftm-survey</a></dd>

<dt><b>Previous version:</b></dt>
<dd><a href="http://www.w3.org/TR/2005/WD-rdftm-survey-20050329"
>http://www.w3.org/TR/2005/WD-rdftm-survey-20050329</a></dd>

<dt><b>Editors:</b></dt>
<dd>Steve Pepper, Ontopia &lt;<a
href="mailto:pepper@ontopia.net">pepper@ontopia.net</a>&gt;<br/>
Fabio Vitali, University of Bologna &lt;<a
href="mailto:fabio@cs.unibo.it">fabio@cs.unibo.it</a>&gt;<br/>
Lars Marius Garshol, Ontopia &lt;<a
href="mailto:larsga@ontopia.net">larsga@ontopia.net</a>&gt;<br/>
Nicola Gessa, University of Bologna &lt;<a
href="mailto:gessa@cs.unibo.it">gessa@cs.unibo.it</a>&gt;<br/>
Valentina Presutti, University of Bologna &lt;<a
href="mailto:presutti@cs.unibo.it">presutti@cs.unibo.it</a>&gt;</dd>
</dl>

<p class="copyright"><a
href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
&#xa9; 2006 <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>
and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
use</a> rules apply.</p>
</div>

<hr/>
<!-- end of head -->

<!-- ABSTRACT SECTION -->
<div class="abstract">

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

<p>The Resource Description Framework (RDF) is a model developed by the
W3C for representing information about resources in the World Wide Web.
Topic Maps is a standard for knowledge integration developed by the ISO.
This document contains a survey of existing proposals for integrating
RDF and Topic Maps data and is intended to be a starting point for
establishing standard guidelines for RDF/Topic Maps
interoperability.</p>
</div>

<!-- STATUS SECTION -->
<div class="section">

<h2><a id="status" name="status"/>Status of this Document</h2>

<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>

<p>This document was created by the RDF/Topic Maps
Interoperability Task Force (RDFTM) of the W3C <a
href="http://www.w3.org/2001/sw/BestPractices/">Semantic
Web Best Practices and Deployment Working Group</a> (SWBPD) with the
support of the ISO Topic Maps committee (ISO/IEC JTC1/SC34).
This work is part of the <a href="http://www.w3.org/2001/sw/Activity">W3C
Semantic Web Activity</a>.</p>

<p>This document is a W3C Working Group Note and the SWBPD does not
currently plan to create further revisions.  This version has no changes
from the previous (Working Draft) version.
Comments are welcome and may be sent to <a
href="mailto:public-swbp-wg@w3.org">public-swbp-wg@w3.org</a>; please
include the text "comment" in the subject line.  All messages received
at this address are viewable in a <a
href="http://lists.w3.org/Archives/Public/public-swbp-wg/"
>public archive</a>.
The patent policy for this document is the <a
href="http://www.w3.org/Consortium/Patent-Policy-20040205/"
>5 February 2004 W3C Patent Policy</a>.
As this is an informational document, <a
href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure"
>W3C patent disclosure requirements</a> do not apply.
</p>

<p>
Publication as a Working Group Note does not imply endorsement by the W3C
Membership. This is a draft document and may be updated, replaced or
obsoleted by other documents at any time. It is inappropriate to cite
this document as other than work in progress.
</p>
</div>

<!-- CONTENTS SECTION -->
<div class="section">

<h2><a id="contents" name="contents"/>Table of Contents</h2>

<blockquote>
<p>
  1 <a href="#introduction">Introduction</a><br />
  &nbsp; &nbsp; 1.1 <a href="#background">Background</a><br />
  &nbsp; &nbsp; 1.2 <a href="#purpose">Purpose and target audience</a><br />
  &nbsp; &nbsp; 1.3 <a href="#overview">Overview of proposals</a><br />
  2 <a href="#criteria">Criteria for evaluating the proposals</a><br />
  &nbsp; &nbsp; 2.1 <a href="#translation_features">Translation features</a><br />
  &nbsp; &nbsp; 2.2 <a href="#test_cases">Test cases</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 2.2.1 <a href="#tm2rdf_test_case">TM2RDF test case</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 2.2.2 <a href="#rdf2tm_test_case">RDF2TM test case</a><br />
  3 <a href="#proposals">Existing translation proposals</a><br />
  &nbsp; &nbsp; 3.1 <a href="#moore">The Moore Proposal</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.1.1 <a href="#moore_description">Description</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.1.2 <a href="#moore_summary">Analysis</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.1.3 <a href="#moore_test_cases">Test cases</a><br />
  &nbsp; &nbsp; 3.2 <a href="#stanford">The Stanford Proposal</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.2.1 <a href="#stanford_description">Description</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.2.2 <a href="#stanford_summary">Analysis</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.2.3 <a href="#stanford_test_cases">Test cases</a><br />
  &nbsp; &nbsp; 3.3 <a href="#ogievetsky">The Ogievetsky Proposal</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.3.1 <a href="#ogievetsky_description">Description</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.3.2 <a href="#ogievetsky_summary">Analysis</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.3.3 <a href="#ogievetsky_test_cases">Test cases</a><br />
  &nbsp; &nbsp; 3.4 <a href="#garshol">The Garshol Proposal</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.4.1 <a href="#garshol_description">Description</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.4.2 <a href="#garshol_summary">Analysis</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.4.3 <a href="#garshol_test_cases">Test cases</a><br />
  &nbsp; &nbsp; 3.5 <a href="#unibo">The Unibo Proposal</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.5.1 <a href="#unibo_description">Description</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.5.2 <a href="#unibo_summary">Analysis</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 3.5.3 <a href="#unibo_test_cases">Test cases</a><br />
  &nbsp; &nbsp; 3.6 <a href="#other_proposals">Other Proposals and Contributions</a><br />
  4 <a href="#analysis">Analysis</a><br />
  &nbsp; &nbsp; 4.1 <a href="#object_mappings_and_semantic_mappings">Object mappings and semantic mappings</a><br />
  &nbsp; &nbsp; 4.2 <a href="#naturalness">The importance of naturalness</a><br />
  &nbsp; &nbsp; 4.3 <a href="#semantic_mapping_issues">Semantic mapping issues</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 4.3.1 <a href="#identity">Identity</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 4.3.2 <a href="#names">Names</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 4.3.3 <a href="#binary_relationships">Binary relationships</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 4.3.4 <a href="#non-binary_relationships">Non-binary relationships</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 4.3.5 <a href="#occurrences">Occurrences</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 4.3.6 <a href="#types_and_subtypes">Types and subtypes</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 4.3.7 <a href="#reification">Reification</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 4.3.8 <a href="#scope">Scope</a><br />
  &nbsp; &nbsp; &nbsp; &nbsp; 4.3.9 <a href="#other_issues">Other issues</a><br />
  5 <a href="#conclusion">Conclusion</a><br />
  <a href="#acknowledgements">Acknowledgements</a><br />
  <a href="#references">References</a>
</p>
</blockquote>
</div>

<!-- INTRODUCTION SECTION -->
<div class="section" >

<h2><a id="introduction" name="introduction"/>1 Introduction</h2>

<h3><a id="background" name="background"/>1.1 Background</h3>

<p>The Resource Description Framework (RDF) is a model developed by the
W3C for representing information about resources in the World Wide Web.
Topic Maps is a standard for knowledge integration developed by the ISO.
The two specifications were developed in parallel during the late 1990's
within their separate organizations for what at first appeared to be
very different purposes. The results, however, turned out to have a lot
in common and this has led to calls for their unification.</p>

<p>While unification has to date not been possible (for a variety of
technical and political reasons), a number of attempts have been made to
uncover the synergies between RDF and Topic Maps and to find ways of
achieving interoperability at the data level. There is now widespread
recognition within the respective user communities that achieving such
interoperability is a matter of some urgency. Work has therefore been
initiated by the Semantic Web Best Practices and Deployment Working
Group of the W3C with the support of the ISO Topic Maps committee to
address this issue. The goal of this work is to provide "guidelines for
users who want to combine usage of the W3C's RDF/OWL family of
specifications and the ISO's family of Topic Maps standards." Two
deliverables are expected to be produced:</p>

<ul>
<li>A Working Group Note containing a <i>Survey</i> of existing
approaches and an analysis of their strengths and weaknesses.</li>
<li>A Working Group Note or Recommendation describing <i>Guidelines</i>
for transforming a topic map into an RDF/OWL representation and vice
versa.</li>
</ul>

<h3><a id="purpose" name="purpose"/>1.2 Purpose and target audience</h3>

<p>This document is the first of those deliverables. It consists of a
summary and analysis of the major existing proposals for achieving data
interoperability between RDF and Topic Maps. Its purpose is to prepare
the ground for a new and definitive proposal based on a synthesis of
previous work.</p>

<p>The primary goal is to achieve interoperability between RDF and
Topic Maps at the <i>data</i> level. This means that it should be
possible to translate data from one form to the other without
unacceptable loss of information or corruption of the semantics. It
should also be possible to query the results of a translation in terms
of the target model and it should be possible to share vocabularies
across the two paradigms.</p>

<p><a href="#RDF-Schema">[RDF-Schema]</a> and <a href="#OWL">[OWL]</a>
are considered relevant to this work to the extent that the classes
and properties they define are supportive of its goals. However, it is
explicity <i>not</i> a goal of the current work to enable the general
use of RDF Schema and OWL with Topic Maps, although this issue may be
addressed later.</p>

<p>This document is aimed at readers with a particularly deep interest
in the problem of RDF/Topic Maps interoperability and a willingness to
acquire the necessary understanding of both paradigms. The reader is
consequently expected to have a level of familiarity with both RDF and
Topic Maps that at least corresponds to the tutorial material in <a
href="#Pepper00">[Pepper 00]</a> and <a
href="#RDF-Primer">[RDF-Primer]</a>. To fully understand this survey,
the reader must in addition be familiar with the models described in
<a href="#TMDM">[TMDM]</a> and <a
href="#RDF-Semantics">[RDF-Semantics]</a>, and the syntaxes described in
<a href="#LTM">[LTM]</a> and <a href="#N3">[N3]</a>.</p>

<h3><a id="overview" name="overview"/>1.3 Overview of proposals</h3>

<p>Five existing proposals are covered in this survey. They have been
chosen as being sufficiently complete and well-documented to be
suitable for detailed examination. They are also representative of the
breadth of approaches that have been taken to date and can all be
considered to be seminal in one way or another. They will be referred
to by the names of their authors or, in the case of multiple authors,
by the name of the organization to which the authors are affiliated.
Each proposal builds upon and references previous work and they are
characterized here in terms of the translation directions that they
cover: i.e., RDF to Topic Maps (RDF2TM), and Topic Maps to RDF
(TM2RDF), respectively. They are, in chronological order:</p>

<dl>
<dt><i>Moore</i></dt>
<dd><p>RDF2TM and TM2RDF proposal described in <a
href="#Moore01">[Moore 01]</a>. Not implemented.</p></dd>

<dt><i>Stanford</i></dt>
<dd><p>TM2RDF proposal described in <a href="#Lacher01">[Lacher 01]</a>.
Implemented.</p></dd>

<dt><i>Ogievetsky</i></dt>
<dd><p>TM2RDF proposal described in <a href="#Ogievetsky01b">[Ogievetsky
01b]</a>. Implemented in the <i>XTM2RDF Translator</i>.</p></dd>

<dt><i>Garshol</i></dt>
<dd><p>RDF2TM and TM2RDF proposal described in <a
href="#Garshol01">[Garshol 01]</a> and <a href="#Garshol03a">[Garshol
03a]</a>. Documented in <a href="#Garshol03b">[Garshol 03b]</a>, <a
href="#Ontopia03a">[Ontopia 03a]</a>, and <a href="#Ontopia03b">[Ontopia
03b]</a>, and implemented in <i>Ontopia Knowledge Suite</i>.</p></dd>

<dt><i>Unibo</i></dt>
<dd><p>RDF2TM and TM2RDF proposal described in <a
href="#Gentilucci02">[Gentilucci 02]</a> and <a
href="#Ciancarini03">[Ciancarini 03]</a>. Implemented in
<i>Meta</i>.</p></dd>
</dl>

<p>The following proposals will only be considered briefly since they
are insufficiently complete to warrant detailed examination:</p>

<ul>
<li><a href="#Prudhommeaux02">[Prudhommeaux 02]</a></li>
<li><a href="#Vlist01">[Vlist 01]</a></li>
</ul>

<p>The following contributions are also recognized as being
relevant:</p>

<ul>
<li><a href="#Garshol02">[Garshol 02]</a>: An RDF Schema for Topic
Maps.</li>
<li><a href="#Kaminsky02">[Kaminsky 02]</a>: A metamodel for XML, RDF,
and Topic Maps.</li>
<li><a href="#Pepper03">[Pepper 03]</a>: An in-depth discussion of the
issue of identifiers in RDF and Topic Maps.</li>
<li><a href="#Vatant04">[Vatant 04]</a>: An investigation into ways in
which OWL may be applied to Topic Maps.</li>
</ul>

<p>This survey describes the five main proposals in chronological
order. Each proposal is summarized and evaluated in terms of criteria
that are described in the next section. In addition, test cases are
applied against each proposal. It is important to note that all five
proposals were published before the respective communities had
formalized their data models (in <a href="#TMDM">[TMDM]</a> and <a
href="#RDF-Semantics">[RDF-Semantics]</a>, respectively). They were also
published before the advent of the <i>Web Ontology Language</i> (<a
href="#OWL">[OWL]</a>). This accounts in part for the immaturity of
some of the proposals; any quoted statements about the limitations of
either paradigm should also be viewed in this light.</p>

<hr/>
</div>

<div class="section" >

<h2><a id="criteria" name="criteria"/>2 Criteria for evaluating the proposals</h2>

<h3><a id="translation_features" name="translation_features"/>2.1 Translation features</h3>

<p>Each translation proposal is evaluated against the following general
criteria:</p>

<dl>
<dt><i>Completeness</i></dt>
<dd><p>The criterion <i>completeness</i> is used to evaluate the extent
to which each proposal is able to handle every semantic construct that
can be expressed in the source model and provide a means to represent it
without loss of information in the target model. A complete translation
will by definition be reversible.</p></dd>

<dt><i>Naturalness</i></dt>
<dd><p>The criterion <i>naturalness</i> expresses the degree to which
the results of a translation correspond to the way in which someone
familiar with the target paradigm would naturally express the
information content in that paradigm. Naturalness normally also
confers improved <i>readability</i> on the result. The importance of
naturalness is discussed in <a href="#naturalness">section
4.2</a>.</p></dd>
</dl>

<hr/>

<h3><a id="test_cases" name="test_cases"/>2.2 Test cases</h3>

<p>This survey uses two simple test cases to enable an initial
evaluation of the criterion "naturalness". These test cases are not
intended to be complete since their purpose is merely to give a feel
for the kind of results produced by the various proposals. A complete
suite of test cases is expected to be created along with the
Guidelines for RDF/Topic Maps interoperability that the SWBPD expects
to produce.</p>

<p>Test cases and the results of translations are given in LTM and
and N3 notation (for Topic Maps and RDF respectively) in order to aid
readability. There is one test case for translations from Topic Maps to
RDF (TM2RDF) and a second for translations from RDF to Topic Maps
(RDF2TM).</p>

<p>In order to aid understanding, the two test cases are basically
identical in terms of their information content, which is taken from
<a href="#Pepper05">[Pepper 05]</a>. They consist of the assertions
that the opera Tosca was premiered on 14th January 1900, has a
synopsis at a location with a certain URL, and was composed by the
composer Giacomo Puccini.</p>

<p>Both test cases are separated into instance data (above the dotted
line comment) and ontology or schema data that might normally be
expected to come from a shared document, such as a topic map ontology or
the RDF namespace document respectively.</p>

<h4><a id="tm2rdf_test_case" name="tm2rdf_test_case"/>2.3.1 TM2RDF test case</h4>

<pre>
[puccini : person   = "Giacomo Puccini"]
[tosca   : opera    = "Tosca"]

{tosca, premiere-date, [[1900-01-14]]}
{tosca, synopsis,      "http://www.azopera.com/learn/synopsis/tosca.shtml"}

composed-by( tosca : work, puccini : composer )

               /* ------------------------------------- */

[person        = "Person"        @"http://psi.ontopia.net/music/#person"]
[composer      = "Composer"      @"http://psi.ontopia.net/music/#composer"]
[opera         = "Opera"         @"http://psi.ontopia.net/music/#opera"]
[work          = "Work"          @"http://psi.ontopia.net/music/#work"]

[premiere-date = "Premi&#232;re date" @"http://psi.ontopia.net/music/#premiere-date"]
[synopsis      = "Synopsis"      @"http://psi.ontopia.net/music/#synopsis"]
[composed-by   = "Composed by"   @"http://psi.ontopia.net/music/#composed-by"]
</pre>

<h4><a id="rdf2tm_test_case" name="rdf2tm_test_case"/>2.3.2 RDF2TM test case</h4>

<pre>
@prefix music: &lt;http://psi.ontopia.net/music/#&gt; .
@prefix rdf:   &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
@prefix rdfs:  &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .

[ rdf:type music:opera;
  rdfs:label "Tosca";
  music:premiere-date "1900-01-14";
  music:synopsis &lt;http://www.azopera.com/learn/synopsis/tosca.shtml&gt;;
  music:composed-by [
    rdf:type music:person;
    rdfs:label "Giacomo Puccini" ]
] .

               # ---------------------------------------

music:person        rdfs:label "Person" .
music:opera         rdfs:label "Opera" .

music:composed-by   rdfs:label "Composed by" .
music:premiere-date rdfs:label "Premi&#232;re date" .
music:synopsis      rdfs:label "Synopsis" .
</pre>

<hr/>
</div>

<div class="section" >

<h2><a id="proposals" name="proposals"/>3 Existing translation proposals</h2>

<h3><a id="moore" name="moore"/>3.1 The Moore Proposal</h3>

<h4><a id="moore_description" name="moore_description"/>3.1.1
Description</h4>

<p><a href="#Moore01">[Moore 01]</a> was the first paper to address
the issue of interoperability between RDF and Topic Maps. The paper
starts out by presenting data models developed by the author that
"capture the isness [sic] of the two paradigms". Having presented the
two models, Moore introduces the distinction between what he calls
"mapping the model" and "modelling the model". The key difference is
that the former is "semantic", whereas the latter "uses each standard
as a tool for describing other models". The two approaches will
hereafter be termed "semantic mapping" and "object mapping",
respectively.</p>

<p>Moore provides examples of both strategies but states clearly that
semantic mapping is preferable to object mapping. The reason for this
is that a goal is to be able to run, say, a TMQL query against an RDF
model and get "expected results" ("i.e. those that would be gained
from running a query against the equivalent topic map"). Moore points
out that this is only possible when a semantic mapping approach is
used.</p>

<h5><a id="an_object_mapping" name="an_object_mapping"/>An object mapping</h5>

<p>Moore's RDF2TM object mapping approach is based on defining PSIs
for every RDF construct in his model (i.e., resource, statement,
property, subject, object, identity, literal, and model) and
expressing RDF statements as ternary associations of type
<tt>rdf-statement</tt> using the role types <tt>rdf-subject</tt>,
<tt>rdf-property</tt> and <tt>rdf-object</tt>. This raises issues with
the handling of literals (since role players in associations cannot be
strings) to which no solution is proposed.</p>

<p>The TM2RDF object mapping approach is based on defining RDF
properties for each TM construct as follows: <tt>topic</tt>,
<tt>topicassoc</tt>, <tt>instanceof</tt>, <tt>topicassocmember</tt>,
<tt>roleplayingtopic</tt>, <tt>roledefiningtopic</tt>,
<tt>topicoccur</tt>, <tt>topicname</tt>, <tt>topicnamevalue</tt>,
<tt>scopeset</tt>, <tt>subjindicatorref</tt>, <tt>resourceref</tt>. An
example of a simple binary association is given that involves five
topics (for the association type and role types, in addition to the
role-playing topics). The RDF equivalent of this requires 22 statements,
three for each of the five topics, and seven for the association
itself.</p>

<h5><a id="a_semantic_mapping" name="a_semantic_mapping"/>A semantic mapping</h5>

<p>Moore concludes that the object mapping approach, while
interesting, is of limited usefulness, and he goes on to describe a
semantic mapping approach (which he calls "mapping the model") based
on the observation that "RDF is concerned with describing the arcs
between entities with identity [whereas] Topic Maps is concerned with
describing typed relationships between entities with identity." A
number of semantic equivalences are defined, as follows:</p>

<table border="1" cellpadding="4">
<tr align="left"><th>RDF</th><th>Topic Maps</th></tr>
<tr><td>RDF model</td><td>Topic Map</td></tr>
<tr><td>Identity</td><td>SubjectIndicatorReference</td></tr>
<tr><td>Resource</td><td>Topic</td></tr>
<tr><td>Statement</td><td>Association (approximate)</td></tr>
</table>

<p>The mapping from RDF statement to association is identified as
being problematic because "RDF has three pieces of information and
Topic Map associations have five", leading the author to suspect that
a "complete" semantic mapping of the models may not be possible. The
remainder of the paper is devoted to examining how to represent RDF
statements as associations and vice versa.</p>

<p>RDF statements are viewed as binary associations whose role-players
correspond to the subject and object of the statement and have the
role types 'subject' and 'object' respectively. The mechanism for
representing the property of the statement is not fully defined, since
the text and the diagram contradict each another. However, both text
and diagram assign some significance to the name of the topic that
represents the subject role.</p>

<p>According to Moore, this approach has a problem in that 'arc' is
"not a first class entity in the TopicMap model". Why this should be a
problem is not made clear, but Moore advocates solving it by extending
the Topic Maps model with the notion of arcs (and association
templates).</p>

<p>A different approach is employed in order to view associations as
RDF statements. An incomplete example shows a binary association
represented as <i>two</i> RDF statements, with the role-playing topics
being the subject and object in the one and the object and subject in
the other. This approach is perhaps motivated by the recognition that
RDF statements have direction whereas associations do not. However
this is not stated explicitly; nor is it clear how the approach would
work with associations that involve more than two role players.</p>

<h4><a id="moore_summary" name="moore_summary"/>3.1.2 Summary</h4>

<p>Moore's object mapping approach is reasonably complete, whereas his
semantic mapping approach is just a sketch that focuses on RDF
statements and associations. Other constructs like names, occurrences
and scope are not covered. Neither approach is reversible. In the case
of the object mapping approach, the assumption is that one is working
in one domain or the other, but not in both. In the case of the
semantic mapping approach, the fact that a statement maps to a single
association whereas an association maps to two statements shows that
translations cannot be reversed.</p>

<p>Semantic mappings are shown to be superior to object mappings in
terms of naturalness. The latter yields unnatural results in both
directions. Whatever the direction, a "natural" source document leads
to an "unnatural" result and achieving a "natural" result is only
possible if the starting point is "unnatural". In the object mapping
example given in the <a href="#Moore01">[Moore 01]</a>, a simple
binary association translates to 22 RDF statements.</p>

<p>Moore's semantic mapping approach, on the other hand, achieves a
more natural result: Going from Topic Maps to RDF, a binary
association requires two RDF statements; going the other way, an RDF
statement maps to a single association.</p>

<h4><a id="moore_test_cases" name="moore_test_cases"/>3.1.3 Test cases</h4>

<h5><a id="moore_tm2rdf" name="moore_tm2rdf"/>TM2RDF</h5>

<p>The following (incomplete) result of Moore's object mapping
approach was constructed by hand, based on the binary association
example given in <a href="#Moore01">[Moore 01]</a>. It does not cover
the two occurrences in the test case since there are no examples of
how this proposal handles occurrences. Lack of clarity in <a
href="#Moore01">[Moore 01]</a> prevents the construction of a
corresponding result of the semantic mapping approach; however, the
latter could be expected to contain significantly fewer RDF
statements.</p>

<pre>
# topic 1: puccini
_:puccini
 &lt;http://www.empolis.com/rdftmmapping#tm-topicname&gt;
  _:topic1 .

_:topic1
 &lt;http://www.empolis.com/rdftmmapping#tm-topicnamevalue&gt;
  "Giacomo Puccini" .

_:puccini
 &lt;http://www.empolis.com/rdftmmapping#tm-instanceof&gt;
  "http://psi.ontopia.net/music/#person" .

# topic 2: tosca
_:tosca
 &lt;http://www.empolis.com/rdftmmapping#tm-topicname&gt;
  _:topic2 .

_:topic2
 &lt;http://www.empolis.com/rdftmmapping#tm-topicnamevalue&gt;
  "Tosca" .

_:tosca
 &lt;http://www.empolis.com/rdftmmapping#tm-instanceof&gt;
  "http://psi.ontopia.net/music/#opera" .

# topic 3: composer
&lt;http://psi.ontopia.net/music/#composer&gt;
 &lt;http://www.empolis.com/rdftmmapping#tm-topicname&gt;
  _:topic3 .

_:topic3
 &lt;http://www.empolis.com/rdftmmapping#tm-topicnamevalue&gt;
  "Composer" .

&lt;http://psi.ontopia.net/music/#composer&gt;
 &lt;http://www.empolis.com/rdftmmapping#tm-subjindicatorref&gt;
  "http://psi.ontopia.net/music/#composer" .

# topic 4: opera
&lt;http://psi.ontopia.net/music/#opera&gt;
 &lt;http://www.empolis.com/rdftmmapping#tm-topicname&gt;
  _:topic4 .

_:topic4
 &lt;http://www.empolis.com/rdftmmapping#tm-topicnamevalue&gt;
  "Opera" .

&lt;http://psi.ontopia.net/music/#opera&gt;
 &lt;http://www.empolis.com/rdftmmapping#tm-subjindicatorref&gt;
  "http://psi.ontopia.net/music/#opera" .

# topic 5: composed-by
&lt;http://psi.ontopia.net/music/#composed-by&gt;
 &lt;http://www.empolis.com/rdftmmapping#tm-topicname&gt;
  _:topic5 .

_:topic5
 &lt;http://www.empolis.com/rdftmmapping#tm-topicnamevalue&gt;
  "Composed by" .

&lt;http://psi.ontopia.net/music/#composed-by&gt;
 &lt;http://www.empolis.com/rdftmmapping#tm-subjindicatorref&gt;
  "http://psi.ontopia.net/music/#composed-by" .

# topic 6: person
&lt;http://psi.ontopia.net/music/#person&gt;
 &lt;http://www.empolis.com/rdftmmapping#tm-topicname&gt;
  _:topic6 .

_:topic6
 &lt;http://www.empolis.com/rdftmmapping#tm-topicnamevalue&gt;
  "Person" .

&lt;http://psi.ontopia.net/music/#person&gt;
 &lt;http://www.empolis.com/rdftmmapping#tm-subjindicatorref&gt;
  "http://psi.ontopia.net/music/#person" .

# topic 7: work
&lt;http://psi.ontopia.net/music/#work&gt;
 &lt;http://www.empolis.com/rdftmmapping#tm-topicname&gt;
  _:topic7 .

_:topic7
 &lt;http://www.empolis.com/rdftmmapping#tm-topicnamevalue&gt;
  "Work" .

&lt;http://psi.ontopia.net/music/#work&gt;
 &lt;http://www.empolis.com/rdftmmapping#tm-subjindicatorref&gt;
  "http://psi.ontopia.net/music/#work" .

# association
_:assoc-1
 &lt;http://www.empolis.com/rdftmmapping#tm-instanceof&gt;
  &lt;http://psi.ontopia.net/music/#composed-by&gt; .
_:assoc-1
 &lt;http://www.empolis.com/rdftmmapping#tm-topicassocmember&gt;
  _:assocmember-1 .
_:assoc-1
 &lt;http://www.empolis.com/rdftmmapping#tm-topicassocmember&gt;
  _:assocmember-2 .
_:assocmember-1
 &lt;http://www.empolis.com/rdftmmapping#tm-roledefiningtopic&gt;
  &lt;http://psi.ontopia.net/music/#composer&gt; .
_:assocmember-1
 &lt;http://www.empolis.com/rdftmmapping#tm-roleplayingtopic&gt;
  _:puccini .
_:assocmember-2
 &lt;http://www.empolis.com/rdftmmapping#tm-roledefiningtopic&gt;
  &lt;http://psi.ontopia.net/music/#work&gt; .
_:assocmember-2
 &lt;http://www.empolis.com/rdftmmapping#tm-roleplayingtopic&gt;
  _:tosca .
</pre>

<p>The main thing to note about this test result is the number of
statements required (28) to represent just a part of the information
content that would naturally be expressed in RDF using just 12
statements. Since associations require seven statements it can be
reasonably assumed that the two occurrences that are not represented
here would require a further 2*7 statements, plus two statements
(each) for the names of the occurrence types. This would bring the
total number of statements to approximately 46.</p>

<p>The verbosity (or "statement bloat") seen here is typical of TM2RDF
translation approaches that are based on object mappings, as will be
confirmed by the accounts of the Stanford and Ogievetsky
proposals.</p>

<h5><a id="moore_rdf2tm" name="moore_rdf2tm"/>RDF2TM</h5>

<p>This test case cannot be represented as a topic map in its entirety
following Moore's object mapping approach because there is no
provision for RDF statements whose objects are literals (which is the
case for eight of the 12 statements in the test case, including all
the names). The four statements whose objects are resources would each
be represented as a ternary association of type <tt>statement</tt>, as
follows:</p>

<pre>
statement( ag0 : subject, composed-by : property, ag1 : object )
</pre>

<p>(This ternary association captures the assertion that Tosca (ag0)
was composed by Puccini (ag1).)</p>

<p>The RDF2TM test case can also not be represented as a topic map in
accordance with Moore's alternative semantic mapping approach due to
insufficient information in <a href="#Moore01">[Moore 01]</a>. Each
RDF statement would in theory be represented by a single binary
association, but once again there is no provision for handling
statements whose objects are literals.</p>

<hr/>

<h3><a id="stanford" name="stanford"/>3.2 The Stanford Proposal</h3>

<h4><a id="stanford_description" name="stanford_description"/>3.2.1 Description</h4>

<p>Lacher and Decker <a href="#Lacher01">[Lacher 01]</a> focus on
making it possible to query Topic Maps using an "RDF-aware
infrastructure" that was co-developed by one of the authors. This
proposal is thus TM2RDF only.</p>

<p>Reference is made to the layered integration model of data
interoperability which separates the data integration problem into
three quasi-independent layers: the syntax layer, the object layer,
and the semantic layer. The idea is to build an RDF representation of
the topic map on the object layer and then perform a "bijective graph
transformation" such that the topic map can be viewed as RDF. Ignoring
the syntax layer means that the approach will work with both the SGML
and the XML serialization syntaxes of Topic Maps. Ignoring the
semantic layer (i.e., adopting what we have termed an object mapping
approach) has the advantage, according to the authors, that all
information is preserved. (The authors point out that a semantic
mapping "could possibly lead to a loss of information".)</p>

<p>Instead of defining their own model for Topic Maps, Lacher and
Decker use PMTM4, the Processing Model for Topic Maps, proposed by
Newcomb and Biezunski in <a href="#PMTM4">[PMTM4]</a>, which has since
been superseded by <a href="#TMDM">[TMDM]</a>.</p>

<p>PMTM4 is a graph model consisting of three node types (for topics,
associations, and scopes), and four arc types: associationMember (aM),
associationScope (aS), associationTemplate (aT), and scopeComponent
(sC). The aM arc is "peculiar" in that it is both typed and labelled
(and thus effectively has three ends) in order to connect the
association with both the role-player and its role (or role type).
Names and occurrences are regarded as specializations of associations;
URIs and strings are not part of the model.</p>

<p>To illustrate their approach Lacher and Decker show a simple
(untyped) association between the country Denmark (which has a name) and
the natural resource petroleum. This is represented as a PMTM4 graph
consisting of eight t-nodes, two a-nodes, four aM arcs, and one aT arc.
The (binary) association between Denmark and petroleum requires two aM
arcs (one for each role), and so does the name "Denmark" (since topic
names are regarded in PMTM4 as a kind of binary association).</p>

<p>Lacher and Decker define RDF classes and properties for each of the
PMTM4 node types and arc types. The transformation consists essentially
of replacing a-, t-, and s-nodes with RDF nodes of corresponding types,
and replacing arcs with corresponding properties. However in order to
handle the "three-legged" aM arcs, reification is necessary, thus
introducing one new RDF node and four new properties
(<tt>rdf:subject</tt>, <tt>rdf:predicate</tt>, <tt>rdf:object</tt> and
<tt>tms:roleLabel</tt>) for each aM arc. The resulting "RDF Topic Map
graph" is shown as a figure consisting of a total of 17 nodes and 20
arcs. (The actual totals should probably be higher since
<tt>rdf:type</tt> is only specified for a few nodes.)</p>

<p>The authors opt to represent each undirected PMTM4 arc by a single,
directed RDF arc (rather than two arcs) in order to avoid consistency
problems, pointing out that while this is not a lossy transformation,
it does require consideration when formulating queries.</p>

<p>No syntax example is given in <a href="#Lacher01">[Lacher 01]</a> to
show the result of the transformation but from the text it is clear that
node identity is either based on source locators (where XML IDs were
specified in the source topic map) or else generated (where no IDs were
specified). Subject identifiers and subject locators are not used
&#8211; presumably because the PMTM4 model does not extend to
identifiers.</p>

<p>Having constructed an RDF graph from the topic map, Lacher and Decker
show how it can be queried, together with native RDF data, by a single
query expressed in F-Logic syntax. The query uses the RDF-encoded topic
map to find all countries that have petroleum as a natural resource and
then extracts links to DMOZ Travel_and_Tourism pages for those countries
from the RDF-encoded Open Directory:</p>

<pre>
FORALL pages &lt;- Country, DMOZCountry Y,X, Z
    Y[tms:roleLabel-&gt;country;rdf:object-&gt;Country]
        @CIA_WORLD_FACTBOOK and
    X[tms:roleLabel-&gt;natural-resource;
      rdf:object-&gt;petroleum;
      rdf:subject-&gt;Z[tms:associationMember-&gt;Country]
        @CIA_WORLD_FACTBOOK]
        @CIA_WORLD_FACTBOOK and
    Country[mapsTo-&gt;DMOZCountry] and
    DMOZCountry[Travel_and_Tourism -&gt;dmozpage[links-&gt;pages]]
        @DMOZ.
</pre>

<h4><a id="stanford_summary" name="stanford_summary"/>3.2.2 Summary</h4>

<p>The Stanford approach is complete with respect to PMTM4, but the
latter is not a complete model for Topic Maps (since is does not handle
URIs and strings). The Stanford proposal itself is therefore not
complete.</p>

<p>The proposal does not score well in terms of naturalness since it
requires upwards of 20 statements to represent information that would
naturally be modelled using two statements in RDF. The TM2RDF test
cases results in approximately 160 statements.</p>

<h4><a id="stanford_test_cases" name="stanford_test_cases"/>3.2.3 Test cases</h4>

<h5><a id="stanford_tm2rdf" name="stanford_tm2rdf"/>TM2RDF</h5>

<p>A test case has been requested from the authors. The following is
an attempt to hand-code parts of the test case. Only the association
and the names of the two role-playing topics are shown. All
occurrences, type-instance relationships, and names of typing topics
are omitted. It is estimated that these would require a further 115
statements (13*2=26; + 12*2=24; + 12*5+5=65) in addition to the 45
statements shown below.</p>

<pre>
@prefix  rdf:   &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
@prefix  tms:   &lt;http://www.standford.edu/rdftmmapping/tm-schema#&gt; .
@prefix  psi1:  &lt;file:psi1.xtm#&gt; .
@prefix  core:  &lt;file:core.xtm#&gt; .

### composed-by association ---------------------------
_:puccini-tosca-assoc
  rdf:type                  tms:association ;
  tms:associationTemplate   _:composed-by .

# reified statement representing composer role
_:puccini-composer-role
  rdf:type          rdf:Statement ;
  rdf:subject       _:puccini-tosca-assoc ;
  rdf:predicate     tms:roleLabel ;
  rdf:object        _:puccini ;
  tms:roleLabel     _:composer .

# reified statement representing work role
_:puccini-work-role
  rdf:type          rdf:Statement ;
  rdf:subject       _:puccini-tosca-assoc ;
  rdf:predicate     tms:roleLabel ;
  rdf:object        _:tosca ;
  tms:roleLabel     _:work .

### topic-basename association for puccini ------------
_:puccini-name-assoc
  rdf:type                  tms:association ;
  tms:associationTemplate   psi1:at-topic-basename .

# reified statement representing topic role
_:puccini-topic-role
  rdf:type          rdf:Statement ;
  rdf:subject       _:puccini-name-assoc ;
  rdf:predicate     tms:roleLabel ;
  rdf:object        _:puccini ;
  tms:roleLabel     core:role-topic .

# reified statement representing basename role
_:puccini-name-role
  rdf:type          rdf:Statement ;
  rdf:subject       _:puccini-name-assoc ;
  rdf:predicate     tms:roleLabel ;
  rdf:object        "Giacomo Puccini" ;
  tms:roleLabel     core:role-basename .

### topic-basename association for tosca --------------
_:tosca-name-assoc
  rdf:type                  tms:association ;
  tms:associationTemplate   psi1:at-topic-basename .

# reified statement representing topic role
_:tosca-topic-role
  rdf:type          rdf:Statement ;
  rdf:subject       _:tosca-name-assoc ;
  rdf:predicate     tms:roleLabel ;
  rdf:object        _:tosca ;
  tms:roleLabel     core:role-topic .

# reified statement representing basename role
_:tosca-name-role
  rdf:type          rdf:Statement ;
  rdf:subject       _:tosca-name-assoc ;
  rdf:predicate     tms:roleLabel ;
  rdf:object        "Tosca" ;
  tms:roleLabel     core:role-basename .

### specification of node types -----------------------
_:puccini                 rdf:type          tms:topic .
_:tosca                   rdf:type          tms:topic .
_:composed-by             rdf:type          tms:topic .
_:composer                rdf:type          tms:topic .
_:opera                   rdf:type          tms:topic .

tms:associationTemplate   rdf:type          tms:topic .
tms:roleLabel             rdf:type          tms:topic .

core:role-topic           rdf:type          tms:topic .
core:role-basename        rdf:type          tms:topic .
</pre>

<hr/>

<h3><a id="ogievetsky" name="ogievetsky"/>3.3 The Ogievetsky Proposal</h3>

<h4><a id="ogievetsky_description" name="ogievetsky_description"/>3.3.1 Description</h4>

<h5><a id="from_xtm_to_rdf" name="from_xtm_to_rdf"/>From XTM to RDF</h5>

<p><a href="#Ogievetsky01b">[Ogievetsky 01b]</a> describes both a
method for transforming topic maps expressed in XTM syntax (<a
href="#XTM1.0">[XTM1.0]</a>) to RDF and the author's XSLT-based
implementation of this approach in the <i>XTM2RDF Translator</i>.
Transformations are described in terms of the processing of XTM
elements and the approach is thus very syntax-oriented. The resulting
RDF conforms to a vocabulary (called RTM) which consists of 11 classes
and 17 properties defined partly in terms of XTM itself and partly in
terms of PMTM4, the "processing model" proposed by Newcomb and
Biezunski and described in the preceding section.</p>

<p>The classes and properties defined by the RTM vocabulary are:</p>

<dl>
<dt><b>rdfs:Class</b></dt>
<dd>t-node, topic, scope, member, association, basename, variantname,
occurrence, class-subclass, class-instance, templaterpc</dd>

<dt><b>rdf:Property</b></dt>
<dd>association-role, validIn, indicatedBy, constitutedBy, name,
templatedBy, role-topic, role-basename, role-variantname,
role-occurrence, role-superclass, role-subclass, role-class,
role-instance, role-template, role-role, role-rpc</dd>
</dl>

<p>Each <tt>&lt;topic&gt;</tt> element results in the creation of an
RDF statement of type <tt>rtm:topic</tt>. The topic's subject locator
(if any) becomes the URI of the subject of the statement, otherwise a
blank node is created. Subject identifiers (if any) result in
properties of type <tt>rtm:indicatedBy</tt>. The purpose of stating
that topics are of type <tt>rtm:topic</tt> seems to be the desire to
use <tt>rtm:topic</tt> as an element type name in order to aid
readability when using the "third RDF basic abbreviated form".</p>

<p>Associations are represented as blank nodes whose type corresponds
to the association type. In addition, for each role in the association
there is one statement whose property corresponds to the role type
(e.g. <tt>ns1:composer</tt> and <tt>ns1:work</tt> in the example
below); its value is a node of type <tt>rtm:member</tt> that
references the role player. Referencing is done through an
<tt>rtm:indicatedBy</tt> property when the role player has a subject
identifier and an <tt>rtm:constitutedBy</tt> property when the role
player has a subject locator. (The text does not state what form the
reference takes when the role player has neither.)</p>

<p>The following example shows how the association between Tosca and
Puccini is represented in RDF/XML in "third RDF basic abbreviated
form":</p>

<pre>
&lt;ns1:composed-by&gt;
  &lt;ns1:composer&gt;
    &lt;rtm:member&gt;
      &lt;rtm:indicatedBy rdf:resource="http://en.wikipedia.org/wiki/Puccini" /&gt;
    &lt;/rtm:member&gt;
  &lt;/ns1:composer&gt;
  &lt;ns1:work&gt;
    &lt;rtm:member&gt;
      &lt;rtm:indicatedBy rdf:resource="http://psi.ontopia.net/opera/#tosca" /&gt;
    &lt;/rtm:member&gt;
  &lt;/ns1:work&gt;
&lt;/ns1:composed-by&gt;
</pre>

<p>In all, seven RDF statements are used to represent the association.
(Normally in RDF, of course, a relationship like this would be
represented by a single statement.)</p>

<p>There is a very obvious similarity between the syntax shown above
and XTM, which could indicate that the desire to output readable
RDF/XML syntax (and perhaps the exigencies of XSLT-based processing)
have influenced the form of RDF chosen for the target model.</p>

<p>In accordance with PMTM4, the approach to handling associations
described above is extended to other Topic Maps constructs. Thus, the
type-instance relationship is regarded as an association of a specific
type; and occurrence, base name, and variant are all regarded as
subtypes of association with fixed pairs of role types
(topic/occurrence, topic/name, and basename/variantname,
respectively).</p>

<p>String values for names and internal occurrences are represented as
the values of <tt>rtm:name</tt> properties of member nodes. The
following example shows the base name of the composer Puccini as
output by the <i>xtm2rdf.xsl</i> XSLT stylesheet. A blank node
represents the topic-basename relationship. Syntactically, the
<tt>rtm:baseName</tt> construct has exactly the same "shape" as the
association shown above:</p>

<pre>
&lt;rtm:baseName rdf:ID="XSLTbaseName122124120120"&gt;
  &lt;rtm:role-topic&gt;
    &lt;rtm:member&gt;
      &lt;rtm:indicatedBy rdf:resource="#puccini" /&gt;
    &lt;/rtm:member&gt;
  &lt;/rtm:role-topic&gt;
  &lt;rtm:role-name&gt;
    &lt;rtm:member&gt;
      &lt;rtm:name&gt;Giacomo Puccini&lt;/rtm:name&gt;
    &lt;/rtm:member&gt;
  &lt;/rtm:role-name&gt;
&lt;/rtm:baseName&gt;
</pre>

<p>As with binary associations, seven RDF statements are required to
represent a single topic name characteristic that would naturally be
modelled using a single statement in RDF.</p>

<h5><a id="ogievetsky_round-tripping" name="ogievetsky_round-tripping"/>Round-tripping RDF to Topic Maps and back</h5>

<p>Having presented the methodology for translating XTM to RDF,
Ogievetsky considers round-tripping from RDF to XTM and back to RDF.
<a href="#Ogievetsky01b">[Ogievetsky 01b]</a> is actually a
continuation of earlier work for which only a set of slides (<a
href="#Ogievetsky01a">[Ogievetsky 01a]</a>) is available. In the
earlier work RDF data was translated into XTM, again using XSLT
stylesheets.</p>

<p>To demonstrate round-tripping <a href="#Ogievetsky01b">[Ogievetsky
01b]</a> shows an example of a Dublin Core fragment in RDF being
translated to XTM according to the methodology in <a
href="#Ogievetsky01a">[Ogievetsky 01a]</a>, and then translated back to
RDF according to the methodology in <a href="#Ogievetsky01b">[Ogievetsky
01b]</a>. The source document contains a single RDF statement asserting
that the resource <tt>ZARA.xml</tt> has the creator "Jane M. Folpe".
This translates to a topic map consisting of six TAOs (five topics and
one association), which in turn translates back to RDF as a set of no
less than 26 RDF statements. "Obviously we accumulated a lot of semantic
luggage during our roundtrip" is Ogievetsky's laconic comment.</p>

<p>The remainder of <a href="#Ogievetsky01b">[Ogievetsky 01b]</a> is
devoted to showing how "RDF Topic Maps" can be queried (using the RDF
query language SquishQL) and constrained (using DAML+OIL). The
following sample query shows how to find all topics that have names in
the scope "taxon":</p>

<pre>
SELECT ?topic, ?name
FROM  http://www.cogx.com/xtm2rdf/seacr.rtm#
WHERE
  (rdf::type ?a ?rtm::basename)
  (rtm::role-topic ?a ?m1) (rtm::indicatedBy ?m1 ?topic)
  (rtm::role-name ?a ?m2)(rtm::name ?m2 ?name)
  (rtm::validIn ?a ?s)(rtm::indicatedBy ?s this::taxon)
USING
  rdf FOR http://www.w3.org/1999/02/22-rdf-syntax-ns#
  rtm FOR http://www.cogx.com/xtm2rdf/rtm.rdf#
  this FOR  http://www.cogx.com/xtm2rdf/seacr.rtm#
</pre>

<h4><a id="ogievetsky_summary" name="analysis"/>3.3.2 Summary</h4>

<p>The proposal appears to be fairly complete in that it covers
more-or-less every aspect of XTM syntax (which requires extending the
underlying PMTM4 model in order to cater for identifiers). The example
of round-tripping shows clearly that this proposal in combination with
the undocumented RDF2TM translation fails the test of reversibility
since a single RDF statement ends up as 26 statements after the
roundtrip.</p>

<p>The proposal requires seven statements to represent information
content that would naturally be modelled using one statement in RDF and
thus rates very low in terms of naturalness. Translating the Topic Maps
test case results in an RDF document containing 125 statements.</p>

<h4><a id="ogievetsky_test_cases" name="ogievetsky_test_cases"/>3.3.3 Test cases</h4>

<h5><a id="ogievetsky_tm2rdf" name="ogievetsky_tm2rdf"/>TM2RDF</h5>

<pre>
@prefix rtm: &lt;http://www.cogx.com/xtm2rdf/rtm.rdf#&gt; .
@prefix ns1: &lt;http://psi.ontopia.net/music/#&gt; .
@prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
@prefix this: &lt;#&gt; .

this:XSLTbaseName121120120120
  rdf:type rtm:baseName;
  rtm:role-name  [
    rdf:type rtm:member;
    rtm:name "Opera" ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:opera ] .

this:XSLTbaseName121121120120
  rdf:type rtm:baseName;
  rtm:role-name  [
    rdf:type rtm:member;
    rtm:name "Composer" ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:composer ] .

this:XSLTbaseName121122120120
  rdf:type rtm:baseName;
  rtm:role-name  [
    rdf:type rtm:member;
    rtm:name "Premi&#232;re date" ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:premiere-date ] .

this:XSLTbaseName121123120120
  rdf:type rtm:baseName;
  rtm:role-name  [
    rdf:type rtm:member;
    rtm:name "Composed by" ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:composed-by ] .

this:XSLTbaseName121126120120
  rdf:type rtm:baseName;
  rtm:role-name  [
    rdf:type rtm:member;
    rtm:name "Synopsis" ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:synopsis ] .

this:XSLTbaseName121127120120
  rdf:type rtm:baseName;
  rtm:role-name  [
    rdf:type rtm:member;
    rtm:name "Work" ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:work ] .

this:XSLTbaseName121126120120
  rdf:type rtm:baseName;
  rtm:role-name  [
    rdf:type rtm:member;
    rtm:name "Person" ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:person ] .

this:XSLTbaseName122124120120
  rdf:type rtm:baseName;
  rtm:role-name  [
    rdf:type rtm:member;
    rtm:name "Giacomo Puccini" ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:puccini ] .

this:XSLTbaseName122125120120
  rdf:type rtm:baseName;
  rtm:role-name  [
    rdf:type rtm:member;
    rtm:name "Tosca" ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:tosca ] .

this:XSLTinstanceOf120124120120
  rdf:type rtm:classInstance;
  rtm:role-class  [
    rdf:type rtm:member;
    rtm:indicatedBy ns1:person ];
  rtm:role-instance  [
    rdf:type rtm:member;
    rtm:indicatedBy this:puccini ] .

this:XSLTinstanceOf120125120120
  rdf:type rtm:classInstance;
  rtm:role-class  [
    rdf:type rtm:member;
    rtm:indicatedBy ns1:opera ];
  rtm:role-instance  [
    rdf:type rtm:member;
    rtm:indicatedBy this:tosca ] .

this:XSLToccurrence123125120120
  rdf:type ns1:premiere-date;
  rtm:role-occurrence  [
    rdf:type rtm:member;
    rtm:name "1900 (14 Jan)" ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:tosca ] .

this:XSLToccurrence124125120120
  rdf:type ns1:synopsis;
  rtm:role-occurrence  [
    rdf:type rtm:member;
    rtm:constitutedBy &lt;http://www.azopera.com/learn/synopsis/tosca.shtml&gt; ];
  rtm:role-topic  [
    rdf:type rtm:member;
    rtm:indicatedBy this:tosca ] .

[ rdf:type ns1:composed-by;
  ns1:composer  [
    rdf:type rtm:member;
    rtm:indicatedBy this:puccini ];
  ns1:work  [
    rdf:type rtm:member;
    rtm:indicatedBy this:tosca ] ].

this:composed-by
  rdf:type rtm:topic;
  rtm:indicatedBy ns1:composed-by .

this:composer
  rdf:type rtm:topic,
           rdf:Property;
  rtm:indicatedBy ns1:composer;
  rdfs:domain ns1:composed-by;
  rdfs:range rtm:member .

this:work
  rdf:type rtm:topic,
           rdf:Property;
  rtm:indicatedBy ns1:work;
  rdfs:domain ns1:composed-by;
  rdfs:range rtm:member .

this:premiere-date
  rdf:type rtm:topic,
           rdfs:Class;
  rtm:indicatedBy ns1:premiere-date;
  rdf:subClassOf rtm:occurrence .

this:synopsis
  rdf:type rtm:topic,
           rdfs:Class;
  rtm:indicatedBy ns1:synopsis;
  rdf:subClassOf rtm:occurrence .

this:opera
  rdf:type rtm:topic,
           rdfs:Class;
  rtm:indicatedBy ns1:opera .

this:person
  rdf:type rtm:topic,
           rdfs:Class;
  rtm:indicatedBy ns1:person .

this:puccini
  rdf:type rtm:topic .

this:tosca
  rdf:type rtm:topic .
</pre>

<hr/>

<h3><a id="garshol" name="garshol"/>3.4 The Garshol Proposal</h3>

<h4><a id="garshol_description" name="garshol_description"/>3.4.1 Description</h4>

<p>This proposal was originally presented in <a
href="#Garshol01">[Garshol 01]</a> as part of a comparative analysis of
the RDF and Topic Maps models. The analysis was further developed (and
extended to partially address OWL) in <a href="#Garshol03a">[Garshol
03a]</a>. The approach has been implemented by the author in the
<i>Ontopia Knowledge Suite</i>.</p>

<p><a href="#Garshol03a">[Garshol 03a]</a> starts by comparing RDF and
Topic Maps through an examination of concepts that are fundamental to
both paradigms: "symbols and things", "assertions", "identity",
"reification", "qualification", and "types and subtypes". For each
concept, Garshol shows how they are expressed in each paradigm and draws
out the similarities and differences.</p>

<h5><a id="comparing_rdf_and_topic_maps" name="comparing_rdf_and_topic_maps"/>Comparing RDF and Topic Maps</h5>

<p>According to Garshol, RDF and Topic Maps are both "identity-based
technologies"; that is, the key concept in both is <i>symbols</i>
representing identifiable <i>things</i> about which <i>assertions</i>
can be made. In Topic Maps, "things" are called "subjects"; in RDF
they are called "resources" and, despite different definitions, they
are essentially the same concept. Subjects are represented by topics;
resources are represented by RDF nodes (or "nodes" for short).
According to Garshol, the correspondence between "topic" and "node" is
close but not exact; he does not explain why, but the reason is
presumably that RDF nodes can be literals, which would be represented
as strings rather than topics in Topic Maps.</p>

<p><i>Assertions</i> express relationships between things and take the
form of "topic characteristics" in Topic Maps and "statements" in RDF.
A topic characteristic can be a name, an occurrence, or an
association. An RDF statement can thus in theory be mapped to any one
of these three kinds of construct. Special attention is paid to
associations since these can be of any arity, whereas all RDF
statements are binary. A binary association maps fairly well to an RDF
statement, but a non-binary association does not.</p>

<p>In addition, RDF statements have direction but associations do not.
Topic Maps uses the notion of "roles" to express the nature of each
subject's involvement in the relationship; in RDF this involvement is
implicit in the subject-predicate-object structure of the statement.</p>

<p>For these reasons, the correspondence between topic characteristics
and statements is considered to be close, but not exact.</p>

<p>The issue of <i>identity</i> is considered to be "quite a thorny
problem for interoperability between topic maps and RDF" since,
although Topic Maps and RDF both use URIs as identifiers, they do so
in different ways. In RDF there is only one kind of identifier and a
node can have at most one of them (blank nodes and literals have
none). In Topic Maps, topics can have any number of identifiers and a
distinction is made between "subject locators" (URIs which identify
the subject directly, formerly called "subject addresses") and
"subject identifiers" (URIs which identify the subject indirectly, via
a subject indicator). Garshol refers the reader to a more in-depth
treatment of the issue in <a href="#Pepper03">[Pepper 03]</a>, which
is discussed in <a href="#other_proposals">section 3.6</a> below.</p>

<p>Garshol's discussion of <i>reification</i> brings out certain
differences between Topic Maps and RDF but does not reach any conclusion
regarding the degree of correspondence between the two, although the
point is made that reification is not a very commonly used feature.
<i>Qualification</i> is seen as being related to reification, since the
built-in Topic Maps feature "scope" is essentially a mechanism for
making certain kinds of assertions about other assertions, but no
proposal is made regarding how to express scope in RDF.</p>

<p>The concept of <i>types and subtypes</i>, on the other hand, is
regarded as being identical in Topic Maps and RDF (except for the fact
that the subClassOf property is part of RDF Schema rather than RDF
itself).</p>

<p>Garshol summarizes his analysis by pointing to three fundamental
differences between RDF and Topic Maps that "make it technically very
difficult to merge" the two paradigms: identity, assertions, and
reification (including qualification). The rest of his paper therefore
focuses on ways to "move data between the two with as little effort as
possible" (rather than on how to unify the two models).</p>

<h5><a id="object_or_semantic" name="object_or_semantic"/>Object mappings or semantic mappings?</h5>

<p>The object mapping approach taken by <a href="#Moore01">[Moore
01]</a>, <a href="#Lacher01">[Lacher 01]</a>, <a
href="#Ogievetsky01b">[Ogievetsky 01b]</a>, and <a
href="#Garshol02">[Garshol 02]</a> is briefly considered and then
rejected as being</p>

<blockquote style="font-style: italic">
<p>both heavy-weight and rather awkward to work with. Any query or
retrieval specified in end-user terms will have to explicitly take into
account topic map model features, and information from topic maps will
not interoperate cleanly with other RDF information.</p>
</blockquote>

<p>Garshol's conclusion is that "although this [object mapping] approach
is easy to use, the results do not meet the criterion of clean
integration with other RDF data."</p>

<p>As an alternative, Garshol proposes to use vocabulary-specific
mappings underpinned by a generic mapping. Statements should in
general be mapped to names, occurrences or associations since this
provides the most "natural" results. However, it is not possible to
know which of these is most appropriate for any given statement
without an understanding of the semantics of the property in question
&#8211; hence the need for vocabulary-specific mappings. For example,
the RDF statement:</p>

<pre>
&lt;http://example.com/X&gt;
  &lt;http://example.com/Y&gt;
    "foo" .
</pre>

<p>could be mapped in Topic Maps to either a name or an internal
occurrence (since the object is a literal). Similarly, the
statement:</p>

<pre>
&lt;http://example.com/X&gt;
  &lt;http://example.com/W&gt;
    &lt;http://example.com/Z&gt; .
</pre>

<p>could be mapped to either an association or an external occurrence
(since the object is a resource). An optimal semantic translation
cannot be performed without knowledge of the semantics of the
properties <tt>Y</tt> and <tt>W</tt>.</p>

<h5><a id="rdf2tm_mapping" name="rdf2tm_mapping"/>RDF2TM mapping</h5>

<p>The solution according to Garshol is to provide additional mapping
information. This is done using an RDF vocabulary called RTM (<a
href="#Ontopia03a">[Ontopia 03a]</a>) which is used to annotate RDF
documents (or their schemas) and thus guide the translation process.
The RTM vocabulary is used for translating from RDF to Topic Maps and
consists of the following RDF properties: <tt>maps-to</tt>,
<tt>type</tt>, <tt>in-scope</tt>, <tt>subject-role</tt>,
<tt>object-role</tt>.</p>

<p>The <tt>maps-to</tt> property can have the following values:</p>

<ul>
<li><tt>rtm:basename</tt>: maps a statement to a base name</li>
<li><tt>rtm:occurrence</tt>: maps a statement to an occurrence</li>
<li><tt>rtm:association</tt>: maps a statement to association</li>
<li><tt>rtm:instance-of</tt>: maps a statement to a class-instance
association</li>
<li><tt>rtm:subject-identifier</tt>: maps the values of a statement to a
subject identifier</li>
<li><tt>rtm:subject-locator</tt>: maps the values of a statement to a
subject locator</li>
<li><tt>rtm:source-locator</tt>: maps the values of a statement to a
source locator</li>
</ul>

<p>Mappings that use <tt>rtm:occurrence</tt> or <tt>rtm:association</tt>
will automatically use the statement's property to type the resulting
Topic Maps
construct, unless <tt>rtm:type</tt> is used to override this behaviour.
The <tt>rtm:in-scope</tt> property can be used to specify scoping topics
for base names, occurrences, and associations. Finally, the
<tt>rtm:subject-role</tt> and <tt>rtm:object-role</tt> properties are
used to specify the types of role played by the subject and object of
an RDF statement when the statement maps to an association.</p>

<p>The vocabulary (and the implementations) go somewhat beyond what is
covered in <a href="#Garshol03a">[Garshol 03a]</a>. For example, it is
recognized that properties may be mapped to various kinds of
identifiers (source locators, subject identifiers, and subject
locators) or to the privileged <i>instance-of</i> relationship, in
addition to names, occurrences, and associations.</p>

<p>In addition, greater provision is made in the implementation for
defaulting. Resource URIs are always mapped to subject identifiers and
RDF statements can be imported as associations in the absence of role
type information, in which case the predefined topics <tt>subject</tt>
and <tt>object</tt> are used as role types.</p>

<h5><a id="tm2rdf_mapping" name="tm2rdf_mapping"/>TM2RDF mapping</h5>

<p>Going from Topic Maps to RDF is shown to require additional
information in order for optimal and/or predictable results to be
achieved. The following problems are identified:</p>

<ol>
<li>Choosing properties when mapping names</li>
<li>Choosing the subject when mapping associations</li>
</ol>

<p>Garshol points out a number of issues that are not addressed in his
analysis, including multiple identifiers, n-ary associations,
reification and scoping, unary associations, variant names, and a number
of (unspecified) "tricky edge cases"; for some of these he sketches
possible solutions which have since been implemented:</p>

<blockquote style="font-style: italic">
<ul>
<li><p>Multiple URIs for the same topic can be handled using the RDF
properties for equivalence found in OWL.</p></li>
<li><p>Associations with more than two roles can be turned into
resources whose type is the association type, and each role can then
be represented as a separate statement with the role type as the
property and the association resource as the subject.</p></li>
<li><p>Reification and scoping can in general be represented by using
RDF reification to represent the statement that would connect the
topic characteristic with the topic. A special property will have to
be defined for representing scope. As for the reification this is done
by simply merging the resource representing the topic characteristic
assignment with that representing the reifying topic.</p></li>
<li><p>Binary non-symmetric associations can be handled by having the
mapping contain one association from the association type to the
preferred subject role.</p></li>
<li><p>Selection of name properties can be done by having the mapping
contain an association from the topic type to a topic representing the
preferred RDF name property.</p></li>
</ul>
</blockquote>

<p>A second vocabulary (called TMR, <a href="#Ontopia03b">[Ontopia
03b]</a>), consisting of six published subjects, addresses many of these
issues. Name mapping is handled by <tt>tmr:name-property</tt>,
<tt>tmr:type</tt>, and <tt>tmr:property</tt>, and the problem of mapping
associations is solved using <tt>tmr:preferred-role</tt>,
<tt>tmr:association-type</tt>, and <tt>tmr:role-type</tt>.</p>

<p>As with the RDF2TM translation, the implementations provide some
level of defaulting. Both subject identifiers and subject locators are
automatically mapped to resource URIs. In addition, associations can be
exported to RDF in the absence of mapping information about roles; in
this case the choice of subject and object for the resulting statement
is arbitrary.</p>

<p>The remainder of <a href="#Garshol03a">[Garshol 03a]</a> is devoted
to a comparison of the respective constraint and query languages of
Topic Maps and RDF and is thus beyond the scope of this analysis.</p>

<h4><a id="garshol_summary" name="garshol_summary"/>3.4.2 Summary</h4>

<p>As currently specified the Garshol proposal provides an almost
complete solution and the author himself identifies most of the
respects in which it is incomplete. Those which are not mentioned
include containers, collections, XML literals and typed literals. A
high degree of reversibility and round-tripping is achievable,
provided appropriate reverse mappings are generated during the
translation. An issue exists with subject locators that end up as
subject identifiers when round-tripping from Topic Maps to RDF and
back to Topic Maps.</p>

<p>The proposal scores well in terms of naturalness. Even when using
default mappings the results are quite natural. The TM2RDF test case
results in an RDF document containing 13 statements. The RDF2TM test
case results in a topic map containing 25 TAOs (19 topic, three
associations, and three occurrences).</p>

<h4><a id="garshol_test_cases" name="garshol_test_cases"/>3.4.3 Test cases</h4>

<p>The test translations were performed using Ontopia's <i>Omnigator
Eight</i> (OKS 2.1.0, build 2004-12-15 #1495) <a
href="#Ontopia05">[Ontopia 05]</a>.</p>

<h5><a id="garshol_tm2rdf" name="garshol_tm2rdf"/>TM2RDF</h5>

<p>The source document was opened in the <i>Omnigator</i> and exported
to RDF with default mappings. The document was then converted to N3
format using the Mindswap RDF Converter <a
href="#Mindswap02">[Mindswap 02]</a>, and finally tidied by hand in
order to ease comparison with the source document.</p>

<p>Note that since default settings were used, the choice of Puccini
as the subject of the <tt>music:composed-by</tt> statement was
entirely abitrary. Using Garshol's mapping mechanism it would be
possible to ensure that Tosca, rather than Puccini, became the subject
of this statement. The result of the translation would then be
identical to the equivalent RDF2TM, except that the role types
'composer' and 'work' would also be present.</p>

<pre>
@prefix : &lt;http://psi.ontopia.net/music/#&gt; .
@prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .

[ rdf:type :person;
  rdfs:label "Giacomo Puccini";
  :composed-by  [
    rdf:type  :opera;
    rdfs:label "Tosca";
    :premiere-date "1900-01-14";
    :synopsis &lt;http://www.azopera.com/learn/synopsis/tosca.shtml&gt; ]].

:composer      rdfs:label "Composer" .
:opera         rdfs:label "Opera" .
:person        rdfs:label "Person" .
:work          rdfs:label "Work" .

:composed-by   rdfs:label "Composed by" .
:premiere-date rdfs:label "Premi&#232;re date" .
:synopsis      rdfs:label "Synopsis" .
</pre>

<h5><a id="garshol_rdf2tm" name="garshol_rdf2tm"/>RDF2TM</h5>

<p>The source document was imported to the <i>Omnigator</i> with
mappings specified using the RDF2TM plug-in. Default mappings were
used for all properties except <tt>rdfs:label</tt>, which was mapped
to a base name instead of an internal occurrence, and
<tt>music:synopsis</tt>, which was mapped to an occurrence instead of
an association. The document was then exported to LTM and tidied by
hand in order to ease comparison with the source document.</p>

<p>Note that Garshol's mapping vocabulary allows for more precise
specification of the subject and object role types, but this
capability was not used here. As a result, the role types 'work' and
'composer become 'subject' and 'object', respectively and a scoping
topic ("Generated name") is added to the names of these topics.</p>

<pre>
@"utf-8"
#VERSION "1.3"

[puccini : person = "Giacomo Puccini"]
[tosca   : opera  = "Tosca"]

{tosca, premiere-date, [[1900-01-14]]}
{tosca, synopsis,      "http://www.azopera.com/learn/synopsis/tosca.shtml"}

composed-by( tosca : subject, puccini : object )

[person = "Person"  @"http://psi.ontopia.net/music/#person"]
[opera  = "Opera"  @"http://psi.ontopia.net/music/#opera"]

[premiere-date = "Premi&#232;re date"  @"http://psi.ontopia.net/music/#premiere-date"]
[synopsis      = "Synopsis"  @"http://psi.ontopia.net/music/#synopsis"]
[composed-by   = "Composed by"  @"http://psi.ontopia.net/music/#composed-by"]

[subject  = ":subject" / gen-name  @"http://psi.ontopia.net/rdf2tm/#subject"]
[object   = ":object" / gen-name  @"http://psi.ontopia.net/rdf2tm/#object"]
[gen-name = "Generated Name"  @"http://psi.ontopia.net/rdf2tm/#gen-name"]
</pre>

<hr/>

<h3><a id="unibo" name="unibo"/>3.5 The Unibo Proposal</h3>

<h4><a id="unibo_description" name="unibo_description"/>3.5.1 Description</h4>

<p>The Unibo proposal is described briefly in <a
href="#Ciancarini03">[Ciancarini 03]</a> and more fully in
<a href="#Gentilucci02">[Gentilucci 02]</a> (in Italian). This
description draws on both sources.</p>

<p>Ciancarini et al cite the work of Moore, Lacher and Decker, and
Ogievetsky, all of which, they claim, suffers from a common drawback,
namely the "rather awkward appearance of the documents coming out of
the conversion." The authors clearly prefer Garshol's approach, which
produces much more "readable" results and which is similar to their
own. The main difference is that Garshol does not utilize the
"standard RDF and RDFS predicates" and thus always requires a mapping
to be specified.</p>

<p>Like earlier authors, Ciancarini et al recognize that there are two
fundamental approaches to tackling the problem of translation,
corresponding to what this survey calls object mapping and semantic
mapping. The first of these is seen to be problematic in that "the
converted document is necessarily very different from the one that
would have been written directly in the destination language, and
hardly readable." The problem with the second one is that it is "not
always possible" to identify semantic equivalences, and that doing so
often requires a case-by-case approach and thus has no general
usefulness.</p>

<p>The authors therefore consider a hybrid approach to be the optimal
solution and their implementation in the Meta Converter combines a
generic mapping, which tries to stay as close as possible to the
original semantics, with the ability to define specific mappings using
an XML vocabulary. Section 3.3 of [Gentilucci 02] provides a fairly
detailed overview of the generic mapping while Chapter 4 describes the
mechanism for specific mappings.</p>

<h5><a id="unibo_identity" name="unibo_identity"/>Identity</h5>

<p>Like Garshol, Ciancarini et al assume a basic equivalence between
<i>topic</i> and <i>resource</i> (although they are less clear on the
distinction between resources and RDF nodes), but they differ in how
identity is expressed. The default behaviour in the Unibo proposal is to
equate subject locators with resource URIs and to represent subject
identifiers using the RDFS property <tt>isDefinedBy</tt>. Examples given
in <a href="#Gentilucci02">[Gentilucci 02]</a> (e.g., 3.8 and 4.2) show
how this leads to resources that clearly represent non-addressable
subjects, such as "Mario Rossi" and "Format", being translated to
addressable subjects (using <tt>&lt;resourceRef&gt;</tt> for
subjectIdentity).</p>

<p>Topics that have no subject locator are translated to blank nodes
whose ID is generated from the topic's base name. When going the other
way, the ID of a blank node becomes a topic name, which is clearly
unnatural (since the ID of a blank node and a topic name have
different semantics).</p>

<h5><a id="unibo_names" name="unibo_names"/>names</h5>

<p>The Unibo proposal is alone in assuming a fundamental equivalence
of semantics between base names and the <tt>rdfs:label</tt> property:
Names that have no variants are thus easy to handle. Variant names are
seen to represent a greater challenge which is solved through the use
of four RDF predicates: baseName, variant, parameter, and variantName.
A base name that has a variant is represented through a blank node
with <tt>rdfs:label</tt> and <tt>tm2rdf:variant</tt> properties: the
former is a literal that corresponds to the value of the topic name
(i.e., the <tt>&lt;baseNameString&gt;</tt> in XTM syntax); the value
of the latter property is another blank node that has variant and
parameter properties. Thus a topic with a base name and sort name:</p>

<pre>
[mario_rossi = "Mario Rossi";"rossi mario"]
</pre>

<p>results in the following statements:</p>

<pre>
_:mario_rossi
  tm2rdf:baseName    _:bn1_mario_rossi .

_:bn1_mario_rossi
  rdfs:label         "Mario Rossi" ;
  tm2rdf:variant     _:v11_mario_rossi .

_:v11_mario_rossi
  tm2rdf:variantName "rossi mario" ;
  tm2rdf:parameter   _:param1 .

_:param1
  rdfs:isDefinedBy   &lt;http://www.topicmaps.org/xtm/1.0/core.xtm#sort&gt; .
</pre>

<h5><a id="unibo_associations_tm2rdf" name="unibo_associations_tm2rdf"/>Associations: TM2RDF</h5>

<p>Predictably, representing associations in RDF is regarded as
difficult because of what the authors term RDF's "more primitive"
(i.e., low level) nature compared to Topic Maps. A generic translation
is possible "at the level of the model," but it is "complex and
artificial" and comes at the price of "abusing the RDF way of
expressing relationships." The basic approach is similar to
Ogievetsky's in that the roles (or "members") are contained in an RDF
bag of blank nodes. However, whereas in Ogievetsky the bag <i>is</i>
the association, the Unibo proposal uses an additional resource to
represent the association; this resource has a
<tt>tm2rdf:association</tt> property, the object of which is the bag
of members. All in all, nine RDF statements are required to represent
a single binary association.</p>

<p>The <tt>tm2rdf:association</tt> property is characterized as a
"supporting predicate" whose purpose is to "add a little legibility" to
the resulting document. A variation on this is also suggested in which
the bag of members and the association become a single node: This is
effectively the same solution as Ogievetsky's.</p>

<p><a href="#Gentilucci02">[Gentilucci 02]</a> also describes two
alternative approaches in which n-ary associations are decomposed into a
number of binary relations. Both of these require six RDF statements in
order to represent a single ternary association. Given the following
association:</p>

<pre>
X( A : rA , B : rB , C : rC )
</pre>

<p>(i.e. an association of type X between topics A, B, and C playing the roles rA, rB, and rC respectively), the first of these alternative approaches results in the following six statements:</p>

<pre>
A X B .   A X C .   B X A .   B X C .   C X A .   C X B .
</pre>

<p>Role types are lost. In addition, the fact that each pair of role
players is related through the same predicate twice (both as subject and
object and as object and subject) means that only symmetrical
relationships would be represented correctly. Finally, the semantic of
A, B, and C all being involved in the <i>same</i> relationship is also
lost; this may or may not involve real loss of information depending on
the nature of the relationship.</p>

<p>The second alternative approach involves predicates that correspond
to role types and results in the following statements:</p>

<pre>
B rA A .   C rA A .   A rB B .   C rB B .  A rC C .   B rC C .
</pre>

<p>While role types are now preserved, the association type is lost
(although it could in theory be preserved through additional statements
relating it to rA, rB, and rC). In addition, it seems doubtful that the
original semantics are correctly preserved. For example: Can it be
assumed to be the case that the relationship between role players B and
A (rA) is the same as that between C and A? Finally, the point made
above about losing the semantic of the involvement of A, B, and C in the
<i>same</i> relationship also pertains here.</p>

<p>Having considered these alternatives, the Unibo proposal comes down
in favour of the approach that uses the <tt>tm2rdf:association</tt>
property, at least in the absence of more specific mapping
information.</p>

<h5><a id="unibo_associations_rdf2tm" name="unibo_associations_rdf2tm"/>Associations: RDF2TM</h5>

<p>When translating in the opposite direction, from RDF to Topic Maps,
the generic solution proposed by Unibo is to translate RDF statements
to associations. The example given in <a
href="#Gentilucci02">[Gentilucci 02]</a> results in a typed binary
association with untyped roles and does not take into consideration
the case in which the object of the RDF statement is a literal.
However, it is conceded that "it might be preferable, in certain
contexts, to apply other types of conversion" and this leads into a
discussion of "attributes" and the role of schema information.</p>

<p>The Unibo proposal recognizes that certain RDF statements are more
appropriately mapped to either internal or external occurrences, with
the occurrence type corresponding to the property of the statement,
but knowing when to do this requires some kind of schema information.
This is essentially the same as Garshol's approach, except for the
fact that Unibo uses an XML vocabulary rather than an RDF vocabulary
to specify the mapping information.</p>

<h5><a id="unibo_scope" name="unibo_scope"/>Scope</h5>

<p>In this context a proposal is put forward for representing scoped
occurrences in RDF: An <tt>rdfs:seeAlso</tt> property has a blank node
as its object; the blank node has an <tt>rdfs:isDefinedBy</tt> property
(whose object is the URI of an external occurrence) and one or more
<tt>tm2rdf:scope</tt> properties. This results in a construct whose
"shape" is very different from that of an unscoped occurrence. In
addition, given that the range of the <tt>rdfs:isDefinedBy</tt> property
is <tt>rdf:Resource</tt>, it is unclear how this approach would work
with internal occurrences.</p>

<p>A "not very elegant" way to represent scoped names is suggested that
involves defining a property, whose <tt>rdf:type</tt> is
<tt>tm2rdf:baseName</tt>, that corresponds either directly or
indirectly (it is not clear which) to each scoping topic. In addition
to being inelegant, this would not work with scopes comprised of
multiple scoping topics. The alternative is the same as that proposed
by Garshol: i.e., to qualify reified statements. To do this, Unibo
defines the <tt>tm2rdf:scope</tt> property.</p>

<p>For scoped associations, reification in the RDF sense is not
necessary since associations are already represented as resources (at
least in the default mapping). Thus, all that is required is to assign
one or more <tt>tm2rdf:scope</tt> properties to that resource. The
downside to this is that scoping is now handled in three different
ways (for generically mapped associations, for occurrences, and for
names and specifically mapped associations, respectively).</p>

<h5><a id="unibo_reification_typing_subtyping" name="unibo_reification_typing_subtyping"/>Reification, typing, and subtyping</h5>

<p>Neither reification, typing, or subtyping are regarded by Unibo as
posing problems since both RDF and Topic Maps support all three
concepts in essentially the same way: <tt>instanceOf</tt> equates to
<tt>rdf:type</tt>; the supertype-subtype relationship (represented in
Topic Maps using an association with a predefined type) equates to
<tt>rdfs:subClassOf</tt>, and reification is essentially the same in
Topic Maps and RDF.</p>

<h5><a id="specific_mappings" name="specific_mappings"/>Specific mappings</h5>

<p>The description above has focused on the Unibo proposal's approach
to generic translations. However, it is recognized that a generic
approach will not always produce optimal results and so a method is
provided for "guiding" the translation process. This consists of a
simple XML vocabulary that allows the user to specify how to translate
a (binary) association to a single RDF statement (and vice versa). As
in the Garshol proposal, this involves specifying correspondences
between association role types and the statement's subject and object.
In addition, a user can specify which RDF properties should be mapped
to occurrences rather than to associations. The following extract
shows how mappings for the TM2RDF test case would be specified:</p>

<pre>
&lt;?xml version="1.0"?&gt;
&lt;xtm2rdf&gt;
  &lt;property_associations&gt;
    &lt;li id="composed-by"&gt;
      &lt;domain_role id="work"/&gt;
      &lt;range_role id="composer"/&gt;
    &lt;/li&gt;
  &lt;/property_associations&gt;
  &lt;property_occurrences&gt;
    &lt;li id="premiere-date"/&gt;
    &lt;li id="synopsis"/&gt;
  &lt;/property_occurrences&gt;
&lt;/xtm2rdf&gt;
</pre>

<p>These mappings would cause the <tt>composed-by</tt> association to be
represented as a single statement in RDF, with Tosca ("work" = domain)
as the subject and Puccini ("composer" = range) as object. In addition,
the mapping contains information that would cause properties of type
<tt>premiere-date</tt> and <tt>synopsis</tt> to be mapped to occurrences
when going from RDF to Topic Maps. (Although not stated explicitly, this
information is presumably not required when going the other way.)</p>

<h4><a id="unibo_summary" name="unibo_summary"/>3.5.2 Summary</h4>

<p>The Unibo proposal is fairly complete but some features, e.g.,
language tags and data typing in RDF, and reification of roles and
topic maps, are not covered explicitly. The proposal permits some
degree of reversibility, but the result of a roundtrip may not always
be the same as the starting point. For example, using the generic
mappings, most RDF statements would be translated to typed
associations with untyped roles, each of which would result in several
statements when translated back to RDF.</p>

<p>The approach produces somewhat natural results in both directions
provided mapping information is supplied. Generic translations are far
less satisfactory, with a single binary association resulting in nine
RDF statements.</p>

<h4><a id="unibo_test_cases" name="unibo_test_cases"/>3.5.3 Test cases</h4>

<h5><a id="unibo_tm2rdf" name="unibo_tm2rdf"/>TM2RDF</h5>

<p>The source document was translated using the tool Meta (<a
href="#Gentilucci02">[Gentilucci 02]</a>) with the default settings.
The resulting document was then converted to N3 format using the
Mindswap RDF Converter <a href="#Mindswap02">[Mindswap 02]</a>, and
finally tidied by hand in order to ease comparison with the source
document.</p>

<pre>
@prefix : &lt;#&gt; .
@prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
@prefix s: &lt;http://cs.unibo.it/meta/tmschema.rdf#&gt; .

# tosca: type, name, occurrences
:tosca rdf:type :opera;
  rdfs:label "Tosca";
  rdfs:seeAlso :dataOccurrence_7a34558a,
               :dataOccurrence_d5a519a2 .

:dataOccurrence_7a34558a rdf:type :premiere-date;
  rdfs:label "1900-01-14" .

:dataOccurrence_d5a519a2 rdf:type :synopsis;
  rdfs:isDefinedBy &lt;http://www.azopera.com/learn/synopsis/tosca.shtml&gt; .

# puccini: type, name
:puccini rdf:type :person;
  rdfs:label "Giacomo Puccini" .

# association
:x1ko2ljned-b rdf:type :composed-by;
  s:association :members_x1ko2ljned-b .
:members_x1ko2ljned-b rdf:type rdf:Bag;
  rdf:_1 :x1ko2ljned-b_1;
  rdf:_2 :x1ko2ljned-b_2 .
:x1ko2ljned-b_1 rdf:type :composer;
  rdfs:isDefinedBy :puccini .
:x1ko2ljned-b_2 rdf:type :work;
  rdfs:isDefinedBy :tosca .

# typing topics
:opera rdf:type rdfs:Class;
  rdfs:isDefinedBy &lt;http://psi.ontopia.net/music/#opera&gt;;
  rdfs:label "Opera" .

:person rdf:type rdfs:Class;
  rdfs:isDefinedBy &lt;http://psi.ontopia.net/music/#person&gt;;
  rdfs:label "Person" .

:composed-by rdf:type rdfs:Class;
  rdfs:isDefinedBy &lt;http://psi.ontopia.net/music/#composed-by&gt;;
  rdfs:label "Composed by" .

:premiere-date rdf:type rdfs:Class;
  rdfs:isDefinedBy &lt;http://psi.ontopia.net/music/#premiere-date&gt;;
  rdfs:label "Premiere date" .

:synopsis rdf:type rdfs:Class;
  rdfs:isDefinedBy &lt;http://psi.ontopia.net/music/#synopsis&gt;;
  rdfs:label "Synopsis" .

:composer rdfs:isDefinedBy &lt;http://psi.ontopia.net/music/#composer&gt;;
  rdfs:label "Composer" .

:work rdfs:isDefinedBy &lt;http://psi.ontopia.net/music/#work&gt;;
  rdfs:label "Work" .
</pre>

<p>38 statements are required to represent what would naturally be
expressed as 12 statements in RDF. Much of the additional baggage is
due to the use of nine statements to represent the association between
Tosca and Puccini; specifying that the five typing topics are
instances of <tt>rdfs:Class</tt>; requiring an additional statement
for each subject identifier; and expressing occurrences via a blank
node.</p>

<p>The amount of additional baggage would be reduced somewhat
(although not completely) if Meta's ability to express additional
mapping information were used.</p>

<h5><a id="unibo_rdf2tm" name="unibo_rdf2tm"/>RDF2TM</h5>

<p>The result of this test case as delivered by the developers of Meta
seems to be in error. Among other things, the topic Puccini is missing
altogether. The editors have reported this to the developers and if
their assumption is correct the test case will be updated in the next
draft of this Survey.</p>

<pre>
[ass-ins_1 : opera = "Tosca"]
{ass-ins_1, premiere-date, "1900-01-14"}

[tosca @"http://www.azopera.com/learn/synopsis/tosca.shtml"]

synopsis( ass-ins_1, tosca )

[opera : class = "Opera" @"http://psi.ontopia.net/music/#opera"]
[composer : class = "Composer" @"http://psi.ontopia.net/music/#composer"]
[premiere-date : occurrence = "Premiere date" @"http://psi.ontopia.net/music/#premiere-date"]
[synopsis : association = "Synopsis" @"http://psi.ontopia.net/music/#synopsis"]
[composed-by : association = "Composed by" @"http://psi.ontopia.net/music/#composed-by"]

[class @"http://www.topicmaps.org/xtm/1.0/core.xtm#class"]
[association @"http://www.topicmaps.org/xtm/1.0/core.xtm#association"]
[occurrence @"http://www.topicmaps.org/xtm/1.0/core.xtm#occurrence"]
</pre>

<hr/>

<h3><a id="other_proposals" name="other_proposals"/>3.6 Other Proposals and Contributions</h3>

<p>The preceding sections have described the five most relevant
proposals for RDF/TM interoperability. A number of other proposals and
contributions have also been considered:</p>

<p>Both <a href="#Vlist01">[Vlist 01]</a> and <a
href="#Prudhommeaux02">[Prudhommeaux 02]</a> are early "first cuts"
(produced "before breakfast" and as "an evening's work" respectively).
Both are very incomplete and have been superseded by later work; they
are mentioned here for the sake of completeness.</p>

<p><a href="#Garshol02">[Garshol 02]</a> is a complete RDF Schema for
Topic Maps based on an early version of <a href="#TMDM">[TMDM]</a>. It
is similar to the Stanford and Ogievetsky proposals in that it models
Topic Maps in RDF and falls therefore into the general category of
object mappings which the author himself has since rejected. Its
principal interest lies in the fact that it is based on a more
complete and consistent model than that of PMTM4 and it will therefore
be used to illustrate the difference between object mappings and
semantic mappings in the next section.</p>

<p><a href="#Kaminsky02">[Kaminsky 02]</a> presents a conceptual
metamodel called <i>Braque</i> that is characterized by the author as
being a "superset of the most popular proposed semantic web
metamodels" (viz. XML, RDF, and Topic Maps), and defines
transformations from each of these into <i>Braque</i>. Kaminsky's work
is clearly of great interest to anyone seeking to <i>unify</i> RDF and
Topic Maps into a single model. However, that is not the mandate of
the RDFTM task force. Kaminsky's proposal cannot be considered as
a solution to the more immediate problem of interchanging RDF and
Topic Maps data, since no transformations <i>out</i> of <i>Braque</i>
are defined. <a href="#Kaminsky02">[Kaminsky 02]</a> is therefore
considered to be out of scope for the current work.</p>

<p><a href="#Pepper03">[Pepper 03]</a> provides an in-depth discussion
of identifiers in RDF and Topic Maps and is thus relevant to the issue
of identity discussed below. The authors' main goal is to clarify the
distinction between direct and indirect identification of subjects,
and to pinpoint the lack of an ontological distinction between
"resources" (in general) and "information resources" (which are a
subset of "resources"). Direct identification is possible only for
information resources; indirect identification is possible for any
kind of resource (including information resources). With the
publication of <a href="#TAG">[TAG]</a>, and the introduction of the
formal concept of <i>information resource</i> in the architecture of
the World Wide Web, these distinctions have now been recognized and
this could pave the way to solving the issue of identity, at least as
far as RDF and Topic Maps interoperability is concerned.</p>

<p><a href="#Vatant04">[Vatant 04]</a> investigates how OWL (Web
Ontology Language) may be used to constrain topic maps and has
relevance for the expression of additional information that may be
used to guide a translation. This will be more pertinent to the
Guidelines to be developed on this basis of the current survey.</p>

<hr/>
</div>

<div class="section" >

<h2><a id="analysis" name="analysis"/>4 Analysis</h2>

<p>This chapter provides a general analysis based on the preceding
discussion of existing proposals for translating data between RDF and
Topic Maps.</p>

<p>The first point to be noted is that all of the major proposals
suffer from the fact that neither Topic Maps nor RDF had stable,
formalized data models at the time they were written. PMTM4 never had
any official standing and has since been superseded by the <a
href="#TMDM">[TMDM]</a>, part 2 of the forthcoming revised Topic Maps
standard. In the case of RDF, <a
href="#RDF-Semantics">[RDF-Semantics]</a> and <a href="#OWL">[OWL]</a>
first appeared in 2004. Now that these formal models exist, it should
be possible to define complete and correct mappings at either the
object or the semantic level.</p>

<h3><a id="object_mappings_and_semantic_mappings" name="object_mappings_and_semantic_mappings"/>4.1 Object mappings and semantic mappings</h3>

<p>All the existing approaches fall into two distinct categories that
Moore originally termed "modelling the model" and "mapping the model".
Following the terminology of Lacher and Decker these might be more
appropriately termed "object mappings" and "semantic mappings"
respectively. The basic difference between the two approaches can be
summed up as follows:</p>

<ul>
<li><p>Object mappings use the low-level building blocks of one
language to describe the <i>object model</i> of the other. For
example, assuming for now that the structure of a simple binary
associations data model is a quintuple, consisting of one
(a)ssociation, two (r)oles, and two role (p)layers (p-r-a-r-p), that
association would be represented using an object mapping as four
statements that relate five resources.</p></li>

<li><p>Semantic mappings start from higher level concepts that carry
the semantics of each model and attempt to find equivalences between
them. A binary association in Topic Maps would be seen to represent
the same kind of "thing" that is often represented by an RDF statement
(i.e., a relationship between two entities) and would therefore be
represented using a single RDF statement. Where no direct semantic
equivalent can be found, the missing semantics are defined using the
facilities available in one of the two paradigms, i.e., classes,
properties, or published subjects.</p></li>
</ul>

<p>The advantage of an object mapping is that it is easy to make it
generic (provided, of course, that the object model on which it is
based is complete) and this ensures completeness without any
additional effort. The disadvantage is the unnaturalness of the
result. Semantic mappings yield much more natural results but suffer
from the disadvantage that genericity is much harder to ensure and may
in some cases require additional information not always present in the
source document.</p>

<p>Of the existing proposals, Stanford and Ogievetsky both use object
mappings based on <a href="#PMTM4">[PMTM4]</a>. Moore discusses both
an object mapping (based on his own inaccurate models) and a semantic
mapping. Garshol dismisses object mappings and concentrates solely on
semantic mappings. Unibo attempts to combine both approaches in order
to achieve the dual goals of a default, generic mapping that can be
used without additional information, and a method for providing
specific mapping information in cases where a more natural translation
is required.</p>

<h3><a id="naturalness" name="naturalness"/>4.2 The importance of naturalness</h3>

<p>The notion of "naturalness" was defined in <a
href="#translation_features">section 2.1</a> as follows:</p>

<blockquote>
<p>The criterion <i>naturalness</i> expresses the degree to which the
results of a translation correspond to the way in which someone
familiar with the target paradigm would naturally express the
information content in that paradigm. Naturalness normally also
confers improved <i>readability</i> on the result.</p>
</blockquote>

<p>Naturalness is extremely important because the result of an
"unnatural" translation is <i>structurally different</i> from data
that was originally created in the target model. This has the
following consequences, all of which lead to reduced
interoperability:</p>

<ul>
<li>the result will not merge cleanly with data originating in the
target model,</li>
<li>the result will not conform to vocabularies created in the target
model, and</li>
<li>queries written against the target model will not work with
translated data.</li>
</ul>

<p>Object mappings generally rate very low on naturalness and are
therefore subject to all three of these failings. As an example,
consider the following topic map:</p>

<pre>
{tosca, music:premiere-date, [[1900-01-14]]}
</pre>

<p>This defines an occurrence of type <tt>music:premiere-date</tt> whose
value is "1900-01-14". A semantic mapping to RDF would result in the
following translation:</p>

<pre>
_:a0  music:premiere-date  "1900-01-14" .
</pre>

<p>An object mapping would look as follows:</p>

<pre>
_:a1, rdf:type, tm:Topic .
_:a1, tm:occurrence, _:a2 .
_:a2, rdf:type: tm:Occurrence .
_:a2, tm:occurrence-type, _:a3 .
_:a3, tm:subject-identifier, music:premiere-date .
_:a2, tm:resource, "1900-01-14" .
</pre>

<p>This example uses the vocabulary defined in <a
href="#Garshol02">[Garshol 02]</a> that is based on <a
href="#TMDM">[TMDM]</a>, in order to conform to the most standard data
model for Topic Maps. It serves to illustrate the fact that object
mappings are inherently more verbose than semantic mappings. They also
involve a significant amount of indirection and can thus be expected
to lead to a lot of processing overhead. Even more important is that
the <i>semantics</i> are actually different. The result of an object
mapping consists of constructs that carry Topic Maps semantics (such
as "topic", "occurrence", "occurrence type", etc.) which RDF
processors are required to understand in order to be able to process
the result correctly.</p>

<p>As an example, consider merging the results of semantic and object
mappings respectively with native RDF data that includes the following
statement:</p>

<pre>
_:b0  music:premiere-date  "1900-11-10" .
</pre>

<p>This statement asserts that some resource had its premiere date on
1900-11-10. A merged result that used the semantic mapping would look as
follows:</p>

<pre>
_:a0  music:premiere-date  "1900-01-14" .
_:b0  music:premiere-date  "1900-11-10" .
</pre>

<p>This would be easily queryable (for example for all premi&#232;res that
took place in the year 1900) in terms of the <tt>music</tt> vocabulary
alone. Contrast this with the following result of merging where one of
the components is based on an object mapping:</p>

<pre>
_:a1, rdf:type, tm:Topic .
_:a1, tm:occurrence, _:a2 .
_:a2, rdf:type: tm:Occurrence .
_:a2, tm:occurrence-type, _:a3 .
_:a3, tm:subject-identifier, music:premiere-date .
_:a2, tm:resource, "1900-01-14" .
_:b0  music:premiere-date  "1900-11-10" .
</pre>

<p>This would clearly be much harder to query and would require
knowledge of the <tt>tm</tt> vocabulary in addition to the
<tt>music</tt> vocabulary. The very complexity of the queries given by
Lacher and Decker, and Ogievetsky, respectively, speaks volumes in
this regard.</p>

<p>Given the importance of naturalness it would seem to make sense to
prefer a semantic mapping, provided that a sufficient degree of
completeness can be achieved. The following section therefore looks at
the issues involved in defining semantic mappings with a particular
emphasis on determining whether the existence of formal data models
for Topic Maps and RDF now makes it possible to ensure completeness as
well as naturalness.</p>

<h3><a id="semantic_mapping_issues" name="semantic_mapping_issues"/>4.3 Semantic mapping issues</h3>

<h4><a id="identity" name="identity"/>4.3.1 Identity</h4>

<p>Although both RDF and Topic Maps use URIs as identifiers, they
differ crucially in that Topic Maps offers <i>two</i> modes of
identification, direct (using subject locators) and indirect (using
subject identifiers), whereas RDF offers only one. This prompts the
question, which Topic Maps construct(s) should be regarded as being
semantically equivalent to the URI of an RDF resource? Subject
identifiers, subject locators, ... or both?</p>

<p>Since identifiers are not part of the PMTM4 model, this issue is
simply ignored in the Stanford proposal. Moore's position is not
stated explicitly, but the examples he gives indicate that subject
identifiers, at least, are regarded as equivalents. Both Ogievetsky
and Unibo favour subject locators and define a separate property for
handling subject identifiers. Garshol translates URIs to subject
identifiers when going from RDF to Topic Maps, but is more agnostic
when going the other way, translating <i>both</i> subject identifiers
<i>and</i> subject locators to URIs.</p>

<p>There are problems with all of these approaches. Clearly,
identifiers have to be mapped somehow, otherwise there will be loss of
information. Equating URIs in RDF with subject locators is problematic
in several ways. Firstly it leads to incorrect semantics (as the
description of the Unibo proposal shows). Secondly, the result is less
natural (since the identifier of a non-addressable subject like
Puccini will not be treated as the URI of the corresponding resource,
as would be most natural in RDF). Finally, the identifiers of
occurrence types and association types (which are typically subject
identifiers) could not be used as the URIs of RDF properties.</p>

<p>Equating URIs with subject identifiers rather than subject locators
also yields unnatural results, since the identifier of an addressable
subject (i.e., an information resource) will not become the URI of the
corresponding resource, as would be most natural in RDF. However, this
alternative does not exhibit the other problems that result from
favouring subject locators.</p>

<p>There is a dilemma here and Garshol's agnosticism is in some ways a
recognition of it. As a result, his TM2RDF translations exhibit the
highest degree of naturalness as far as identity is concerned.
Unfortunately he loses the information about whether the URI
originated in a subject identifier or a subject locator and is thus
reduced to translating every URI to a subject identifier when going
the other way. This leads to problems with round-tripping, as noted
above.</p>

<p>The ideal solution would be to allow <i>either</i> subject
identifiers <i>or</i> subject locators to be regarded as URIs (and
vice versa), but at the same time to retain sufficient information
when going from Topic Maps to RDF to be able to perform
round-tripping. The recognition in <a href="#TAG">[TAG]</a> of the
distinction between resources in general and information resources,
and the insights in <a href="#Pepper03">[Pepper 03]</a>, may provide
the foundation for such a solution.</p>

<p>The issue of multiple identifiers is treated explicitly by Garshol
only. For those proposals that regard the subject locator as the
semantic equivalent of a resource's URI and define a custom property
for subject identifiers (Ogievetsky and Unibo), this was a non-issue
as long as topics could only have one subject locator. However, in the
forthcoming version of ISO 13250 multiple subject locators will be
allowed and then the issue will have to be faced explicitly. Garshol's
proposal to use equivalence properties defined in OWL (i.e.,
<tt>owl:sameAs</tt>, <tt>owl:equivalentClass</tt>, and
<tt>owl:equivalentProperty</tt>) should clearly be investigated in more
detail since such an approach is likely to lead to increased
interoperability between RDF and Topic Maps.</p>

<h4><a id="names" name="names"/>4.3.2 Names</h4>

<p>In RDF the name of a resource is usually represented by a single
statement. ("Name" is here defined to mean a label used by a human to
name a subject.) RDF Schema defines a property for this purpose
(<tt>rdfs:label</tt>) but many vocabularies define their own
properties (e.g., <tt>dc:title</tt>, <tt>foaf:name</tt>, etc.). An
accurate semantic mapping from Topic Maps can be achieved by
translating base names to such properties.</p>

<p>Both Garshol and Unibo take this approach, differing only in that
Unibo always maps a base name to <tt>rdfs:label</tt> (and vice versa),
while Garshol allows base names (including scoped base names) to be
mapped to other properties. It should be noted that both proposals were
written before the introduction of typed names in the Topic Maps model
so neither can be considered a complete solution today.</p>

<p>In Topic Maps a base name can have variants. These are alternative
forms of a name that are intended to be used in specific processing
contexts, such as sorting and display. Of the semantic mapping
proposals, only Unibo provides a solution for handling variant names;
this is done by representing names that have variants as complex
objects, an approach that seems sound enough, except for the
introduction of what appears to be a superfluous blank node as the
value of the <tt>tm2rdf:parameter</tt> property.</p>

<h4><a id="binary_relationships" name="binary_relationships"/>4.3.3 Binary relationships</h4>

<p>Representations of binary relationships have somewhat different
topographies in RDF and Topic Maps. RDF uses a single statement (or
sometimes two statements that are the inverse of each other), in which
the subject and object represent the two resources that participate in
the relationship. The nature of those two resources' involvement in
the relationship can be adduced from their positions as subject and
object.</p>

<p>In Topic Maps there is no concept of subject and object in a binary
association because the association has no direction. The nature of
the two participating topics' involvement in the relationship is
stated explicitly through their <i>role types</i>.</p>

<p>The challenge when translating from Topic Maps to RDF is to know
which role-playing topic should become the subject of the resulting
statement and how to preserve the role types. When going from RDF to
Topic Maps, the challenge is to know which role types to assign to the
subject and object of the statement respectively and how to preserve
knowledge of what the subject and object were.</p>

<p>Both Garshol and Unibo solve this by allowing additional information
to be provided that allows the RDF subject and object to be connected
with their respective role types. Unibo uses a single XML vocabulary
that is external to the document being translated. Garshol uses an RDF
vocabulary for going from RDF to Topic Maps, and a set of Published
Subjects for going from Topic Maps to RDF. Garshol's approach has the
advantage of allowing source documents to be self-describing (the
mappings can be included in the source documents or their schemas). The
disadvantage of Garshol is the use of two different vocabularies, one
for each direction. A cleaner solution would be to use a single
vocabulary.</p>

<p>In the absence of additional information, Unibo falls back to an
object mapping that requires nine RDF statements to represent a single
binary association. Garshol, on the other hand, performs a semantic
mapping anyway, using the predefined classes <tt>subject</tt> and
<tt>object</tt> when going from RDF to Topic Maps, and selecting a
role-player at random to be the subject of the resulting statement
when going from Topic Maps to RDF. As currently implemented this leads
to loss of information and the inability to perform round-tripping.
However, it is perfectly feasible for the latter translation to retain
the information necessary to perform round-tripping (in the form of an
annotation to the schema using Garshol's own RTM vocabulary).</p>

<h4><a id="non-binary_relationships" name="non-binary_relationships"/>4.3.4 Non-binary relationships</h4>

<p>One major difference between the models of RDF and Topic Maps is
that the latter permits non-binary relationships to be expressed
directly: An association may have one, two, or more role players. In
RDF on the other hand the base model permits only binary
relationships.</p>

<p>Most of the existing proposals for translating associations with
more than two role-players are unsatisfactory, since they result in a
large number of RDF statements. <a href="#Noy04">[Noy 04]</a> proposes
patterns for representing n-ary relations in RDF in which the relation
is "re-represented" as a class rather than a property. Each such
pattern requires <i>n</i> statements in order to express the
relationship. Using the example given in <a href="#unibo_description">section
3.5.1</a> the result would be one of the following, depending on the
pattern used (<tt>P</tt> stands for the re-represented relation):</p>

<pre>
P rdf:type X .   P rA A .   P rB B .   P rC C .   # Pattern 2
P rdf:type X .   A rA P .   P rB B .   P rC C .   # Pattern 1
</pre>

<p>The first of these (labelled "Pattern 2") is identical to Garshol's
proposal for n-ary associations. If such patterns are adopted in the
RDF community it would seem to be advisable, in the interest of
compatibility, to follow them as closely as possible when translating
n-ary associations from Topic Maps to RDF.</p>

<p>Topic Maps also permits unary associations, i.e. "relationships"
that only involve a single role player. Although seldom used, they do
occur occasionally in order to express the equivalent of boolean
properties (which might be regarded as binary relationships in which
one of the role players is the subject "true"). The following example
from <a href="#Pepper05">[Pepper 05]</a> asserts that the opera
<i>Turandot</i> is unfinished:</p>

<pre>
unfinished( turandot : work )
</pre>

<p>None of the existing semantic mapping proposals caters explicitly
for unary associations.</p>

<h4><a id="occurrences" name="occurrences"/>4.3.5 Occurrences</h4>

<p>Both Garshol and Unibo recognize that occurrences are most naturally
represented as single RDF statements where the property corresponds to
the occurrence type. Internal and external occurrences correspond to
statements whose objects are literals and resources respectively. Going
from Topic Maps to RDF presents no problems at all; going the other way
seems to require additional information in order to distinguish an
internal occurrence from a name, and an external occurrence from an
association or identifier.</p>

<p>It is unclear how Unibo behaves in the absence of additional mapping
information. The default in Garshol (at least as implemented in the
<i>Omnigator</i> is to translate statements whose objects are literals
to internal occurrences and statements whose objects are resources to
associations.</p>

<h4><a id="types_and_subtypes" name="types_and_subtypes"/>4.3.6 Types and subtypes</h4>

<p>Garshol and Unibo agree on the fundamental semantic equivalence
between the concept of type-instance in <a href="#TMDM">[TMDM]</a> and
<tt>rdf:type</tt>, on the one hand; and between supertype-subtype and
<tt>rdfs:subClassOf</tt> on the other. In addition, association types
and occurrence types are regarded as equivalent to RDF properties.
Role types present particular problems, as discussed above, and name
types, as already noted, did not exist at the time the proposals were
written.</p>

<h4><a id="reification" name="reification"/>4.3.7 Reification</h4>

<p>Only Garshol and Unibo mention reification and neither proposal
regards it as being problematic. In actual fact, Unibo only talks
explicitly about the reification of associations, while Garshol
mentions reified names, occurrences, and associations. Neither
proposal covers the reification of topic maps and association
roles.</p>

<h4><a id="scope" name="scope"/>4.3.8 Scope</h4>

<p>The concept of scope is peculiar to Topic Maps and has been
regarded as one of the major stumbling blocks for RDF/Topic Maps
interoperability. All the existing proposals discuss the issue in one
form or another but only Garshol and Unibo do so in terms of its
semantics, i.e., as a way to express the contextual validity of an
assertion. Garshol makes the point that scope is most properly
regarded as a special kind of assertion made about another assertion.
Since assertions about assertions are handled through reification in
both paradigms, and reification translates rather easily, Garshol
proposes to translate scope using reification together with a property
that captures the semantics of contextual validity.</p>

<p>Garshol treats scoped base names as a special case, however, and
allows a base name in a particular scope to be translated to a
specific property. For example, a base name in the scope 'nickname'
might be translated using the <tt>foaf:nick</tt> property. While this
undoubtedly yields more natural results (much more natural than
translating to, say, a reified <tt>rdfs:label</tt> statement with an
<tt>rdftm:scoped-by</tt> property), such special-casing introduces a
degree of inconsistency in the handling of scope. Why should only base
names be treated in this way? Why not associations and occurrences as
well?</p>

<p>The answer may be that associations and occurrences have types
whereas names do not (or did not, until recently). It could be argued
that the lack of typed names in Topic Maps has led to scoped names
being used in ways that distort the semantics of scope. Or, to put it
another way: Given that the forthcoming revised Topic Maps standard
will permit typed names, would it be more appropriate to represent a
nickname as a name of type 'nickname' (or <tt>foaf:nick</tt>) rather
than a name in the scope 'nickname'? If so, it would be possible to
avoid treating scoped names as a special case and still obtain natural
results.</p>

<p>Unibo handles scope in three different ways (one of which involves
reification) depending on the kind of construct in question. This is
clearly even more inconsistent, and it is probably also unnecessary
since the reification approach seems to be usable for scoping any kind
of topic characteristic.</p>

<h4><a id="other_issues" name="other_issues"/>4.3.9 Other issues</h4>

<p>None of the existing proposals discuss how to represent RDF
containers and collections, language tags, XML literals or typed
literals in Topic Maps. Of these issues, the latter two are addressed
by recent datatyping extensions to the Topic Maps model. Language
tagging can be seen as a kind of contextual information akin to scope
and treated accordingly. Containers and collections may or may not
require special treatment: Since they are expressed using the
fundamental building blocks of RDF (nodes and arcs), they may be
represented using associations in Topic Maps. The semantics would not
be lost and could be recovered when round-tripping. However, they would
not be "visible" in terms of some equivalent Topic Maps construct.</p>

<hr/>
</div>

<div class="section" >

<h2><a id="conclusion" name="conclusion"/>5 Conclusion</h2>

<p>The main result of this document is the identification and
comparison of five different proposals addressing a number of issues
related to data interoperability and translation between RDF and Topic
Maps.</p>

<p>Among the several possible criteria for evaluating these proposals,
two, completeness and naturalness, have been selected as the most
relevant and appropriate for evaluating the qualities and limitations
of each proposal. <i>Completeness,</i> defined as the extent to which
any semantic structure in the source model is correctly (i.e., without
losing or adding information) translated into the destination model,
provides a clear indication of the semantic power of each translation
approach. <i>Naturalness,</i> defined as the extent to which a
translated model resembles in structure and content an equivalent
model expressed directly in the target paradigm, provides an
indication of the level of integration that each approach offers for
the translated result to merge and interact with other models
expressed in the same paradigm.</p>

<p>The analysis of the proposals identified two main approaches
towards translation, which we dubbed "object mapping" (providing a
translation of every structural component of the source paradigm) and
"semantic mapping" (providing a structure corresponding to every
conceptual structure of the source model). Although it is not the
purpose of this document to provide suggestions and guidelines for
translation paths between RDF and Topic Maps, the relative merits of
semantic mapping over object mapping are clearly apparent and strongly
imply that further guidelines pursue semantic mapping as the basis of
any recommended approach to translation.</p>

<p>A number of outstanding issues need to be considered when providing
a semantic mapping of the two paradigms, including identity,
non-binary associations, roles, etc. Furthermore, semantic mapping has
constraints in its applicability when the source model uses constructs
that are not directly mappable into the target paradigm. In this case,
two possible approaches can be foreseen, each championed by one of the
two most recent proposals: Each asks the user for additional
information for disambiguating these structures, but Garshol
<i>requires</i> this to be provided (at least when going from RDF to
Topic Maps), while Unibo falls back to object mapping in this
case.</p>

<p>The analysis of the options and solutions provided in literature,
therefore, clearly shows the advantages of semantic mapping, but at
the same time lists the issues that need to be addressed and solved in
any future translation approach. However, now that both RDF and Topic
Maps have formal data models, and with the help of RDF Schema and OWL,
it seems likely that most, if not all, of the issues we have listed
here can be resolved without resorting to the restricted
interoperability offered by object mapping.</p>

<hr/>
</div>

<!-- ACKNOWLEDGEMENTS SECTION -->
<div class="section" >

<h2><a id="acknowledgements" name="acknowledgements"/>Acknowledgements</h2>

<p>The editors wish to thank Nikita Ogievetsky for providing the test
case result in <a href="#ogievetsky">section 3.3</a>, and
Natasha Noy, Mike Uschold, David Wood, and Ralph Swick of the Semantic
Web Best Practices and Deployment Working Group for reviewing earlier
versions of this document.</p>

<hr/>
</div>

<!-- REFERENCES SECTION -->
<div class="section" >

<h2><a id="references" name="references"/>References</h2>

<dl>
<dt id="Ciancarini03"><b>[Ciancarini 03]</b></dt>
<dd>Ciancarini, Paolo; Gentilucci, Riccardo; Pirruccio, Marco; Presutti, Valentina; Vitali, Fabio: <i>Metadata on the Web: On the integration of RDF and Topic Maps</i>, <a href="http://www.idealliance.org/papers/extreme03/html/2003/Presutti01/EML2003Presutti01.html">http://www.idealliance.org/papers/extreme03/html/2003/Presutti01/EML2003Presutti01.html</a> (2003)</dd>

<dt id="Garshol01"><b>[Garshol 01]</b></dt>
<dd>Garshol, Lars Marius: <i>Topic maps, RDF, DAML, OIL: A comparison</i>, <a href="http://www.ontopia.net/topicmaps/materials/tmrdfoildaml.html">http://www.ontopia.net/topicmaps/materials/tmrdfoildaml.html</a> (2001)</dd>

<dt id="Garshol02"><b>[Garshol 02]</b></dt>
<dd>Garshol, Lars Marius: <i>An RDF Schema for topic maps</i>, <a href="http://psi.ontopia.net/rdf/">http://psi.ontopia.net/rdf/</a> (2002)</dd>

<dt id="Garshol03a"><b>[Garshol 03a]</b></dt>
<dd>Garshol, Lars Marius: <i>Living with Topic Maps and RDF</i>, <a href="http://www.ontopia.net/topicmaps/materials/tmrdf.html">http://www.ontopia.net/topicmaps/materials/tmrdf.html</a> (2003)</dd>

<dt id="Garshol03b"><b>[Garshol 03b]</b></dt>
<dd>Garshol, Lars Marius: <i>The RTM RDF to topic maps mapping: Definition and introduction</i>, <a href="http://www.ontopia.net/topicmaps/materials/rdf2tm.html">http://www.ontopia.net/topicmaps/materials/rdf2tm.html</a> (2003)</dd>

<dt id="Gentilucci02"><b>[Gentilucci 02]</b></dt>
<dd>Gentilucci, Riccardo; Pirruccio, Marco: <i>Metainformazioni sul World Wide Web: Conversione di formato e navigazione</i>, University of Bologna, Masters Thesis, (2002; in print; in Italian)</dd>

<dt id="Kaminsky02"><b>[Kaminsky 02]</b></dt>
<dd>Kaminsky, Piotr: <i>Integrating Information on the Semantic Web Using Partially Ordered Multi Hypersets</i>, <a href="http://www.ideanest.com/braque/Thesis-web.pdf">http://www.ideanest.com/braque/Thesis-web.pdf</a> (2002)</dd>

<dt id="Lacher01"><b>[Lacher 01]</b></dt>
<dd>Lacher, Martin S.; Decker, Stefan: <i>On the Integration of Topic Maps and RDF Data</i>, <a href="http://www.idealliance.org/papers/extreme03/html/2001/Lacher01/EML2001Lacher01-toc.html">http://www.idealliance.org/papers/extreme03/html/2001/Lacher01/EML2001Lacher01-toc.html</a> (2001)</dd>

<dt id="LTM"><b>[LTM]</b></dt>
<dd>Garshol, Lars Marius: <i>The Linear Topic Map Notation: Definition and introduction, version 1.2</i>, <a href="http://www.ontopia.net/download/ltm.html">http://www.ontopia.net/download/ltm.html</a> (2002)</dd>

<dt id="Mindswap02"><b>[Mindswap 02]</b></dt>
<dd>MindSwap: <i>RDF Converter</i>, <a href="http://www.mindswap.org/2002/rdfconvert/">http://www.mindswap.org/2002/rdfconvert/</a> (2002)</dd>

<dt id="Moore01"><b>[Moore 01]</b></dt>
<dd>Moore, Graham: <i>RDF and Topic Maps: An exercise in convergence</i>, <a href="http://xml.coverpages.org/moore-topicmapsrdf200105.pdf">http://xml.coverpages.org/moore-topicmapsrdf200105.pdf</a> (2001)</dd>

<dt id="N3"><b>[N3]</b></dt>
<dd>Berners-Lee, Tim: <i>Notation 3</i>, <a href="http://www.w3.org/DesignIssues/Notation3.html">http://www.w3.org/DesignIssues/Notation3.html</a> (2001)</dd>

<dt id="Noy04"><b>[Noy 04]</b></dt>
<dd>Noy, Natasha; Rector, Alan: <i>Defining N-ary Relations on the Semantic Web: Use With Individuals</i>, <a href="http://www.w3.org/TR/swbp-n-aryRelations/">http://www.w3.org/TR/swbp-n-aryRelations/</a> (2004)</dd>

<dt id="Ogievetsky01a"><b>[Ogievetsky 01a]</b></dt>
<dd>Ogievetsky, Nikita: <i>Harvesting XML Topic Maps from RDF</i>, <a href="http://www.cogx.com/kt2001">http://www.cogx.com/kt2001</a> (2001)</dd>

<dt id="Ogievetsky01b"><b>[Ogievetsky 01b]</b></dt>
<dd>Ogievetsky, Nikita: <i>XML Topic Maps through RDF glasses</i>,
<a href="http://www.cogx.com/?si=urn:cogx:resource:rdfglasses"
>http://www.cogx.com/?si=urn:cogx:resource:rdfglasses</a> (2001)</dd>

<dt id="Ogievetsky02"><b>[Ogievetsky 02]</b></dt>
<dd>Ogievetsky, Nikita: <i>DAML and Quantum Topic Maps</i>, <a href="http://www.cogx.com/kt2002/">http://www.cogx.com/kt2002/</a> (2002)</dd>

<dt id="Ontopia03a"><b>[Ontopia 03a]</b></dt>
<dd>Ontopia: <i>RTM: An RDF-to-TM mapping</i>, <a href="http://psi.ontopia.net/rdf2tm/">http://psi.ontopia.net/rdf2tm/</a> (2003)</dd>

<dt id="Ontopia03b"><b>[Ontopia 03b]</b></dt>
<dd>Ontopia: <i>TMR: A TM-to-RDF mapping</i>, <a href="http://psi.ontopia.net/tm2rdf/">http://psi.ontopia.net/tm2rdf/</a> (2003)</dd>

<dt id="Ontopia04"><b>[Ontopia 04]</b></dt>
<dd>Ontopia: <i>tolog: Language tutorial</i>, <a href="http://www.ontopia.net/omnigator/docs/query/tutorial.html">http://www.ontopia.net/omnigator/docs/query/tutorial.html</a> (2004)</dd>

<dt id="Ontopia05"><b>[Ontopia 05]</b></dt>
<dd>Ontopia: <i>Omnigator Eight</i>, <a href="http://www.ontopia.net/omnigator/">http://www.ontopia.net/omnigator/</a> (2005)</dd>

<dt id="OWL"><b>[OWL]</b></dt>
<dd>Smith, Michael K.; Welty, Chris; McGuiness, Deborah L.: <i>OWL Web Ontology Language Guide</i>, <a href="http://www.w3.org/TR/owl-guide/">http://www.w3.org/TR/owl-guide/</a> (W3C Recommendation, 2004)</dd>

<dt id="Pepper00"><b>[Pepper 00]</b></dt>
<dd>Pepper, Steve: <i>The TAO of Topic Maps: Finding the Way in the Age of Infoglut</i>, <a href="http://www.ontopia.net/topicmaps/materials/tao.html">http://www.ontopia.net/topicmaps/materials/tao.html</a> (2000)</dd>

<dt id="Pepper03"><b>[Pepper 03]</b></dt>
<dd>Pepper, Steve; Schwab, Sylvia: <i>Curing the Web's Identity Crisis: Subject Indicators for RDF</i>, <a href="http://www.ontopia.net/topicmaps/materials/identitycrisis.html">http://www.ontopia.net/topicmaps/materials/identitycrisis.html</a> (2003)</dd>

<dt id="Pepper05"><b>[Pepper 05]</b></dt>
<dd>Pepper, Steve: <i>Italian Opera Topic Map</i>, <a href="http://www.ontopia.net/omnigator/docs/navigator/opera.hytm">http://www.ontopia.net/omnigator/docs/navigator/opera.hytm</a> (2005)</dd>

<dt id="PMTM4"><b>[PMTM4]</b></dt>
<dd>Biezunski, Michel; Newcomb, Steven R.: <i>Topicmaps.net's Processing Model for XTM 1.0, version 1.0.2</i>, <a href="http://topicmaps.net/pmtm4.htm">http://topicmaps.net/pmtm4.htm</a> (2001)</dd>

<dt id="Prudhommeaux02"><b>[Prudhommeaux 02]</b></dt>
<dd>Prud'hommeaux, Eric; Moore, Graham: <i>RDF Topic Map Mapping</i>, <a href="http://www.w3.org/2002/06/09-RDF-topic-maps/">http://www.w3.org/2002/06/09-RDF-topic-maps/</a> (2002)</dd>

<dt id="RDF-Primer"><b>[RDF-Primer]</b></dt>
<dd>Manola, Frank; Miller, Eric: <i>RDF Primer</i>, <a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">http://www.w3.org/TR/2004/REC-rdf-primer-20040210/</a> (W3C Recommendation, 2004)</dd>

<dt id="RDF-Schema"><b>[RDF-Schema]</b></dt>
<dd>Brickley, Dan; Guha, R.V.: <i>RDF Schema</i>, <a
href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210/">http://www.w3.org/TR/2004/REC-rdf-schema-20040210/</a> (W3C Recommendation, 2004)</dd>

<dt id="RDF-Semantics"><b>[RDF-Semantics]</b></dt>
<dd>Hayes, Patrick: <i>RDF Semantics</i>, <a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210/">http://www.w3.org/TR/2004/REC-rdf-mt-20040210/</a> (W3C Recommendation, 2004)</dd>

<dt id="TAG"><b>[TAG]</b></dt>
<dd>Jacobs, Ian; Walsh, Norman: <i>Architecture of the World Wide Web, Volume One</i>, <a href="http://www.w3.org/TR/webarch/">http://www.w3.org/TR/webarch/</a> (W3C Recommendation, 2004)</dd>

<dt id="TMDM"><b>[TMDM]</b></dt>
<dd>Garshol, Lars Marius; Moore, Graham: <i>ISO/IEC 13250: Topic Maps &#8212; Data Model</i>, <a href="http://www.isotopicmaps.org/sam/sam-model/">http://www.isotopicmaps.org/sam/sam-model/</a> (Final Committee Draft, 2005)</dd>

<dt id="TMRM"><b>[TMRM]</b></dt>
<dd>Durusau, Patrick; Newcomb, Steven R.: <i>ISO/IEC 13250: Topic Maps &#8212; Reference Model</i>, <a href="http://www.isotopicmaps.org/tmmm/TMMM-4.6/TMMM-4.6.html">http://www.isotopicmaps.org/tmmm/TMMM-4.6/TMMM-4.6.html</a> (Working Draft, 2004)</dd>

<dt id="Vatant04"><b>[Vatant 04]</b></dt>
<dd>Vatant, Bernard: <i>Ontology-driven topic maps</i>, <a href="http://www.idealliance.org/europe/04/call/xmlpapers/03-03-03.91/.03-03-03.html">http://www.idealliance.org/europe/04/call/xmlpapers/03-03-03.91/.03-03-03.html</a> (2004)</dd>

<dt id="Vlist01"><b>[Vlist 01]</b></dt>
<dd>Vlist, Eric van der: <i>Representing XML Topic Maps as RDF</i>, <a href="http://lists.w3.org/Archives/Public/www-rdf-interest/2001Mar/0050.html">http://lists.w3.org/Archives/Public/www-rdf-interest/2001Mar/0050.html</a> (2001)</dd>

<dt id="XTM1.0"><b>[XTM1.0]</b></dt>
<dd>Pepper, Steve; Moore, Graham: <i>XML Topic Maps (XTM) 1.0</i>, <a href="http://www.topicmaps.org/xtm/1.0/">http://www.topicmaps.org/xtm/1.0/</a> (2001)</dd>

<dt id="XTM1.1"><b>[XTM1.1]</b></dt>
<dd>Garshol, Lars Marius; Moore, Graham: <i>ISO/IEC 13250: Topic Maps &#8212; XML Syntax</i>, <a href="http://www.isotopicmaps.org/sam/sam-xtm/">http://www.isotopicmaps.org/sam/sam-xtm/</a> (Final Committee Draft, 2005)</dd>
</dl>
</div>

<p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>

</body>
</html>