Old:
sa: load foaf-example-in-sw.sw sa: table[name,email,works-for] "" |list> +------------------------+----------------------------------+------------------------+ | name | email | works-for | +------------------------+----------------------------------+------------------------+ | Dan | email: danbri@w3.org | organisation: ILRT | | Libby | email: libby.miller@bris.ac.uk | organisation: ILRT | | Craig | email: craig@netgates.co.uk | organisation: Netgates | | Liz | | organisation: Netgates | | Kathleen | | organisation: Netgates | | Damian | | | | Martin | email: m.l.poulter@bristol.ac.uk | | | organisation: ILRT | | | | organisation: Netgates | | | +------------------------+----------------------------------+------------------------+New:
sa: load foaf-example-in-sw.sw sa: table[name,email,works-for] "" |list> +----------+---------------------------+-----------+ | name | email | works-for | +----------+---------------------------+-----------+ | Dan | danbri@w3.org | ILRT | | Libby | libby.miller@bris.ac.uk | ILRT | | Craig | craig@netgates.co.uk | Netgates | | Liz | | Netgates | | Kathleen | | Netgates | | Damian | | | | Martin | m.l.poulter@bristol.ac.uk | | | ILRT | | | | Netgates | | | +----------+---------------------------+-----------+Old:
sa: load early-us-presidents.sw sa: table[name,full-name,president-number,party] "" |early US Presidents: _list> +------------+---------------------------+------------------+------------------------------+ | name | full-name | president-number | party | +------------+---------------------------+------------------+------------------------------+ | Washington | person: George Washington | number: 1 | party: Independent | | Adams | person: John Adams | number: 2 | party: Federalist | | Jefferson | person: Thomas Jefferson | number: 3 | party: Democratic-Republican | | Madison | person: James Madison | number: 4 | party: Democratic-Republican | | Monroe | person: James Monroe | number: 5 | party: Democratic-Republican | | Q Adams | person: John Quincy Adams | number: 6 | party: Democratic-Republican | +------------+---------------------------+------------------+------------------------------+ sa: years-in-office |*> #=> extract-value president-era |_self> sa: table[name,years-in-office] "" |early US Presidents: _list> +------------+------------------------------------------------------+ | name | years-in-office | +------------+------------------------------------------------------+ | Washington | 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797 | | Adams | 1797, 1798, 1799, 1800, 1801 | | Jefferson | 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809 | | Madison | 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817 | | Monroe | 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825 | | Q Adams | 1825, 1826, 1827, 1828, 1829 | +------------+------------------------------------------------------+New (NB: we no longer need to define the "years-in-office" operator which applied "extract-value" to the president-era operator):
sa: table[name,full-name,president-number,party] "" |early US Presidents: _list> +------------+-------------------+------------------+-----------------------+ | name | full-name | president-number | party | +------------+-------------------+------------------+-----------------------+ | Washington | George Washington | 1 | Independent | | Adams | John Adams | 2 | Federalist | | Jefferson | Thomas Jefferson | 3 | Democratic-Republican | | Madison | James Madison | 4 | Democratic-Republican | | Monroe | James Monroe | 5 | Democratic-Republican | | Q Adams | John Quincy Adams | 6 | Democratic-Republican | +------------+-------------------+------------------+-----------------------+ sa: table[name,president-era] "" |early US Presidents: _list> +------------+------------------------------------------------------+ | name | president-era | +------------+------------------------------------------------------+ | Washington | 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797 | | Adams | 1797, 1798, 1799, 1800, 1801 | | Jefferson | 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809 | | Madison | 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817 | | Monroe | 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825 | | Q Adams | 1825, 1826, 1827, 1828, 1829 | +------------+------------------------------------------------------+And I guess that's it. The difference between old and improved should be obvious enough.
Update: another tweak of the table code. Now we can dump everything we know about a given superposition without having to manually specify all the operators. Makes use of the "supported-ops" operator.
eg, consider:
sa: load foaf-example-in-sw.sw sa: supported-ops "" |list> 3.000|op: where-live> + 2.000|op: lives-with> + 4.000|op: email> + 5.000|op: works-for> + |op: wife> + |op: knows-quite-well> + |op: where-lives> + 2.000|op: website> sa: load early-us-presidents.sw sa: supported-ops "" |early US Presidents: _list> 6.000|op: president-number> + 6.000|op: president-era> + 6.000|op: party> + 6.000|op: full-name>Point is, we can now do this (NB: the "*" instead of an operator label, noting also that * is not a valid operator name):
sa: table[name,*] "" |list> +----------+--------------+--------------+---------------------------+-----------+------+---------------------------+-------------+----------------------------+ | name | where-live | lives-with | email | works-for | wife | knows-quite-well | where-lives | website | +----------+--------------+--------------+---------------------------+-----------+------+---------------------------+-------------+----------------------------+ | Dan | Zetland road | Libby, Craig | danbri@w3.org | ILRT | | | | | | Libby | | | libby.miller@bris.ac.uk | ILRT | | | | | | Craig | | | craig@netgates.co.uk | Netgates | Liz | | | | | Liz | Bristol | Kathleen | | Netgates | | | | | | Kathleen | | | | Netgates | | | | | | Damian | London | | | | | | | | | Martin | | | m.l.poulter@bristol.ac.uk | | | Craig, Damian, Dan, Libby | Bristol | | | ILRT | | | | | | | | http://ilrt.org/ | | Netgates | | | | | | | | http://www.netgates.co.uk/ | +----------+--------------+--------------+---------------------------+-----------+------+---------------------------+-------------+----------------------------+ sa: table[name,*] "" |early US Presidents: _list> +------------+------------------+------------------------------------------------------+-----------------------+-------------------+ | name | president-number | president-era | party | full-name | +------------+------------------+------------------------------------------------------+-----------------------+-------------------+ | Washington | 1 | 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797 | Independent | George Washington | | Adams | 2 | 1797, 1798, 1799, 1800, 1801 | Federalist | John Adams | | Jefferson | 3 | 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809 | Democratic-Republican | Thomas Jefferson | | Madison | 4 | 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817 | Democratic-Republican | James Madison | | Monroe | 5 | 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825 | Democratic-Republican | James Monroe | | Q Adams | 6 | 1825, 1826, 1827, 1828, 1829 | Democratic-Republican | John Quincy Adams | +------------+------------------+------------------------------------------------------+-----------------------+-------------------+I suppose I should make a couple of observations.
1) this code highlighted a bug in my foaf-example data-set! Note the "where-lives" instead of "where-live".
2) the "where-live" column shows one example where the auto extract-value on table elements is not ideal. It chomped off the "UK: " prefix. Recall:
where-live |Dan> => |UK: Bristol: Zetland road> where-live |Liz> => |UK: Bristol> where-live |Damian> => |UK: London>I don't think there is much I can do about it though.
I guess that's it. Quite likely I will tweak the table code yet further!
Update: here is a fun, English like, description of supported ops:
sa: load foaf-example-in-sw.sw sa: list-to-words int-coeffs-to-word extract-value supported-ops "" |list> |3 where-live, 2 lives-with, 4 email, 5 works-for, 1 wife, 1 knows-quite-well, 1 where-lives and 2 website>Heh, fun!
No comments:
Post a Comment