<?xml version="1.0" encoding='utf-8'?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://rollerweblogger.org/roller-ui/styles/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom">
    <title type="html">Blogging Roller</title>
    <subtitle type="html">Dave Johnson on open web technologies, social software and software development</subtitle>
    <id>https://rollerweblogger.org/roller/feed/entries/atom</id>
        <link rel="self" type="application/atom+xml" href="https://rollerweblogger.org/roller/feed/entries/atom?tags=links" />
    <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/" />
    <updated>2026-04-19T12:36:21+00:00</updated>
    <generator uri="http://roller.apache.org" version="6.1.5">Apache Roller</generator>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/wip_links</id>
        <title type="html">WIP: Links</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/wip_links"/>
        <published>2011-03-21T06:49:23+00:00</published>
        <updated>2012-11-03T23:35:28+00:00</updated> 
        <category term="Web Development" label="Web Development" />
        <category term="atompub" scheme="http://roller.apache.org/ns/tags/" />
        <category term="html" scheme="http://roller.apache.org/ns/tags/" />
        <category term="linkeddata" scheme="http://roller.apache.org/ns/tags/" />
        <category term="links" scheme="http://roller.apache.org/ns/tags/" />
        <category term="rdf" scheme="http://roller.apache.org/ns/tags/" />
        <category term="wip" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p style=&quot;font-style:italic;&quot;&gt;This is the first in my series of Web Integration Patterns. Check out the intro at this URL &lt;a href=&quot;http://rollerweblogger.org/roller/entry/web_integration_patterns&quot;&gt;http://rollerweblogger.org/roller/entry/web_integration_patterns&lt;/a&gt;&lt;/p&gt;

&lt;p style=&quot;font-weight:bold;&quot;&gt;Synopsis&lt;/p&gt;
&lt;p&gt;Use links as a way to integrate web sites &amp;amp; applications via navigation and relationships between resources.&lt;/p&gt;</summary>
        <content type="html">&lt;p style=&quot;font-style:italic;&quot;&gt;This is the first in my series of Web Integration Patterns. Check out the intro at this URL &lt;a href=&quot;http://rollerweblogger.org/roller/entry/web_integration_patterns&quot;&gt;http://rollerweblogger.org/roller/entry/web_integration_patterns&lt;/a&gt;&lt;/p&gt;

&lt;p style=&quot;font-weight:bold;&quot;&gt;Synopsis&lt;/p&gt;
&lt;p&gt;Use links as a way to integrate web sites &amp;amp; applications via navigation and relationships between resources.&lt;/p&gt;

&lt;p style=&quot;font-weight:bold;&quot;&gt;Motivations&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provide navigation between integrated web sites &amp;amp; applications&lt;/li&gt;
&lt;li&gt;Create meaningful relationships between web resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;font-weight:bold;&quot;&gt;Related patterns&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://rollerweblogger.org/roller/entry/wip_common_navigation&quot;&gt;Common Navigation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rollerweblogger.org/roller/entry/wip_embedded_properties_in_html&quot;&gt;Embedded Properties in HTML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rollerweblogger.org/roller/entry/wip_resource_preview&quot;&gt;Resource Preview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delegated Selection &amp;amp; Creation&lt;/li&gt;
&lt;li&gt;Linked Data &amp; REST&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href=&quot;http://en.wikipedia.org/wiki/World_Wide_Web&quot;&gt;web&lt;/a&gt; is the web and &lt;a href=&quot;http://en.wikipedia.org/wiki/Hypertext&quot;&gt;hypertext&lt;/a&gt; is hyper because of links. Links allow for the most deep and also the most shallow forms of integration. Links enable navigation and with some discipline, links can also express relationships between resources. There are a variety of ways to express links; the standard and most popular way is to use HTML, but there are others and I&#146;ll cover them below.&lt;/p&gt;

&lt;h4&gt;Links enable navigation&lt;/h4&gt;

&lt;p&gt;With links, you can provide navigation between web applications at the application, or the feature level. One example is providing a link from the blog application of a social software suite to the wiki, forums and other component applications. Another is providing a link from one application to one specific part or feature of another application. This type of linking is easy to implement but fairly shallow. It&#146;s convenience and not much more.&lt;/p&gt;

&lt;h4&gt;Links can express relationships&lt;/h4&gt;

&lt;p&gt;What&#146;s more useful and powerful, is using links to create meaningful relationships between the resources provided by web applications. For example, there&amp;#39;s obvious value linking a defect in a bug tracking system to the source code changes that fixed the bug in a source code management system. Or, you might link a Requirement resource to the Work-Item resources that implement it. By the way, those example are drawn from the &lt;a href=&quot;http://open-services.net/&quot;&gt;OSLC specs&lt;/a&gt; for &lt;a href=&quot;http://en.wikipedia.org/wiki/Application_lifecycle_management&quot;&gt;ALM&lt;/a&gt; / &lt;a href=&quot;http://en.wikipedia.org/wiki/Product_lifecycle_management&quot;&gt;PLM&lt;/a&gt; integration.&lt;/p&gt;

&lt;p&gt;If you want to use links to establish relationships, then you do have to have some discipline about the URLs you offer and the URLs you link to. You have to treat links with the same rigor and respect you&#146;d give primary and foreign keys in a relational database. For example, if you make a resource available in different formats, and each at a different URL, one that ends in &#147;.html&#148; and one with &#147;.xml&#148; and one with &#147;.json&#148; then you&#146;ve got three URLs that refer same resource. In this case, it&#146;s better to use Content Negotiation so you can offer one URL that others can use to link to the resource. &lt;/p&gt;

&lt;p&gt;One way to get yourself some link discipline is to adopt &lt;a href=&quot;http://www.w3.org/DesignIssues/LinkedData.html&quot;&gt;Linked Data&lt;/a&gt; and the &lt;a href=&quot;http://www.w3.org/RDF/&quot;&gt;RDF&lt;/a&gt; data model, which &#148;extends the linking structure of the Web to use URIs to name the relationship between things as well as the two ends of the link.&#148; See also the Web Annotations and Linked Data &amp;amp; REST pattern.&lt;/p&gt;

&lt;h4&gt;Links can be expressed in standard formats&lt;/h4&gt;

&lt;p&gt;The standard way to represent links on the web is through HTML and in HTML, links are expressed in a variety of ways, via anchor tags, via image tags, the link tag and others. There are other standard ways to express links, but none as popular as HTML. &lt;/p&gt;

&lt;p style=&quot;font-weight:bold;&quot;&gt;HTML&lt;/p&gt;

&lt;p&gt;In HTML, links can be expressed via the &lt;code&gt;&lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/#the-a-element&quot;&gt;&amp;lt;a&amp;gt;&lt;/a&gt;&lt;/code&gt; element, for expressing a hyperlink in text, and the &lt;code&gt;&lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/#the-link-element&quot;&gt;&amp;lt;link&amp;gt;&lt;/a&gt;&lt;/code&gt; element, for expressing a link to a resource associated with the page.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; links can specify not only the URL of the link but also the relationship type of the link, as well as content-type and language for the resource that lies at the other end of the link. For example, a link type of &lt;code&gt;rel=&#148;next&#148;&lt;/code&gt; indicates that a link points to the next page in a series of pages, or multi-page article. A link type of &lt;code&gt;rel=&#148;stylesheet&#148;&lt;/code&gt; indicates that the link is to style-sheet to be applied to the current page. There are a standard set of &lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#linkTypes&quot;&gt;link relationship types in the HTML spec&lt;/a&gt;. Here&amp;#39;s an example from this very blog page, the link to this blogs Atom feed:&lt;/p&gt;

&lt;pre&gt;


&amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;Recent Entries (Atom)&amp;quot;     
   href=&amp;quot;http://rollerweblogger.org/roller/feed/entries/atom&amp;quot; /&amp;gt; 


&lt;/pre&gt;

&lt;p style=&quot;font-weight:bold;&quot;&gt;Atom&lt;/p&gt;

&lt;p&gt;The Atom Syndication Format defines a &lt;code&gt;&lt;a href=&quot;http://tools.ietf.org/html/rfc4287#page-21&quot;&gt;&amp;lt;link&amp;gt;&lt;/a&gt;&lt;/code&gt; element, modeled on the one in HTML. Atom adds a length attribute, the size in bytes of the resource at the other end of the link. Atom defines some new links types, alternate, related, self and enclosure. Atom also allows new links to be added and a Atom &lt;a href=&quot;http://www.iana.org/assignments/link-relations/link-relations.xml&quot;&gt;link-type registry&lt;/a&gt; is maintained at IANA.org.  Here&#146;s an example link from the Atom comments feed for this blog:&lt;/p&gt;

&lt;pre&gt;


&amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;text/html&amp;quot; href=
&amp;quot;http://rollerweblogger.org/roller/entry/apache_roller_5_0_rc3#comment-12941523&amp;quot; /&amp;gt;


&lt;/pre&gt;

&lt;p style=&quot;font-weight:bold;&quot;&gt;RDF&lt;/p&gt;

&lt;p&gt;Another standard way to express links is RDF, using any of the RDF serializations: RDF/XML, Turtle, N3 and soon, there will be a &lt;a href=&quot;http://www.w3.org/QA/2010/12/new_rdf_working_group_rdfjson.html&quot;&gt;W3C standard for RDF/JSON&lt;/a&gt;. Yes, there will be a standard way to express links in JSON and that&amp;#39;s good news. For now, we&amp;#39;re stuck with RDF/XML. In RDF/XML a link is expressed via the &lt;code&gt;rdf:resource&lt;/code&gt; attribute, so for example a link from a Requirement to the user that created the requirement might look like this:&lt;/p&gt;

&lt;pre&gt;


&amp;lt;dc:creator rdf:resource=&amp;quot;https://localhost:9443/user/676&amp;quot; /&amp;gt;


&lt;/pre&gt;

&lt;p&gt;&lt;a href=&quot;http://www.w3.org/RDF/&quot;&gt;RDF&lt;/a&gt; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Resource_Description_Framework&quot;&gt;Wikipedia page&lt;/a&gt;) goes way beyond the couple dozen link attributes and relationship types provided by HTML and Atom. RDF provides ways to specify property values about any linked resource, and property values of each link.  RDF also provides ways to define &lt;a href=&quot;http://www.w3.org/TR/rdf-concepts/&quot;&gt;vocabularies&lt;/a&gt; of properties.&lt;/p&gt;

&lt;h4&gt;Wrapping up &lt;/h4&gt;

&lt;p&gt;It&amp;#39;s time to wrap-up. For better or worse, I&#146;ve written more than I expected to write and I&#146;m nowhere near done with the topic of links. I hope I&#146;ve covered the important parts. Comments are open so please correct me and make suggestions if you got some. This is the first pattern that I&#146;ve written up, so I&#146;m also interested in comments about the format, level of abstraction, value, etc. as well. &lt;/p&gt;

&lt;p&gt;Next up: Common Navigation.&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/latest_links11</id>
        <title type="html">Latest links: 2007 predictions edition</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/latest_links11"/>
        <published>2007-01-05T17:07:47+00:00</published>
        <updated>2007-01-06T01:09:54+00:00</updated> 
        <category term="Links" label="Links" />
        <category term="links" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;http://rc3.org/2007/01/predictions_for.php&quot;&gt;rc3.org: Predictions for 2007&lt;/a&gt;&lt;br&gt; Web applications, spam, web advertising, decentralized communication for weblogs&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.wired.com/news/columns/0,72394-0.html?tw=rss.index&quot;&gt;Wired News: Legal Predictions for 2007&lt;/a&gt;&lt;br&gt; &amp;quot;Courts will finally have to deal with the growing use of licenses and terms of service that change default computer access, free speech and copyright rules&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blogs.zdnet.com/Hinchcliffe/?p=76&quot;&gt;Enterprise 2.0: Ten Predictions for 2007&lt;/a&gt;&lt;br&gt; &amp;quot;web applications like blogs and wikis are just the beginning of the Enterprise 2.0 story...&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.oreillynet.com/onjava/blog/2006/12/2006_java_technology_winners_a.html&quot;&gt;Steve Anglin: 2006 Java Technology Winners and Losers&lt;/a&gt;&lt;br&gt; In the comments: Eclipse is &amp;quot;leaking air and marketshare to increasingly popular NetBeans&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://southeastvc.blogs.com/southeast_vc/2006/12/noro_moseley_pa.html&quot;&gt;Southeast VC: Predictions 2007 - 1/2&lt;/a&gt;&lt;br&gt; &amp;quot;The Year of Apple; Investment Opportunities Emerge Around Search and Filtering Tools&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://southeastvc.blogs.com/southeast_vc/2007/01/sigma_partners_.html&quot;&gt;Southeast VC: Predictions 2007 - 2/2&lt;/a&gt;&lt;br&gt; &amp;quot;Tech IPO Market Returns; Web 2.0 Takes on Real Definition and the Internet Emerges as a Replacement for TV&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://billives.typepad.com/portals_and_km/2007/01/enterprise_20_p.html&quot;&gt;Portals and KM: Enterprise 2.0 Predictions for 2007&lt;/a&gt;&lt;br&gt; &amp;quot;platforms that deliver apps for blogging, wiki creation, and social networking within a single framework&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.kbcafe.com/rss/?guid=20070101144441&quot;&gt;Web 2.0 Predictions for 2007 - The RSS Blog&lt;/a&gt;&lt;br&gt; Randy&amp;#39;s list of 2007 predictions and links to some some other interesting lists&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.wired.com/news/technology/0,72370-0.html&quot;&gt;Wired News: Wild Predictions for a Wired 2007&lt;/a&gt;&lt;br&gt; 25 predictions from the Wired News Staff&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.informationweek.com/news/showArticle.jhtml?articleID=196800208&quot;&gt;5 Disruptive Technologies To Watch In 2007 - InformationWeek&lt;/a&gt;&lt;br&gt; &amp;quot;including RFID, advanced graphics, and virtualization&amp;quot;&lt;/li&gt;
&lt;/ul&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/today_s_links_july_15</id>
        <title type="html">Today&amp;#39;s links - July 15, 2006</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/today_s_links_july_15"/>
        <published>2006-07-15T18:59:06+00:00</published>
        <updated>2007-03-16T07:37:23+00:00</updated> 
        <category term="Links" label="Links" />
        <category term="links" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://weblogs.java.net/blog/mhadley/archive/2006/05/mapping_wadl_to.html&quot;&gt;Marc Hadley: Mapping WADL to Java&lt;/a&gt;&lt;br&gt; Using WADL to generate &amp;quot;strongly-typed client-side stubs layered on JAX-WS and JAXB&amp;quot; for REST based web services&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.secretary.state.nc.us/Corporations/Corp.aspx?PitemId=7999137&quot;&gt;The Codehaus Foundation, Inc.&lt;/a&gt;&lt;br&gt; Articles of incorporation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.fnokd.com/2006/07/14/codehaus-basement/#comments&quot;&gt;Codehaus Foundation: Bob McWhirter&lt;/a&gt;&lt;br&gt; &amp;quot;Iâ&#128;&#153;m just the smiling face on the front of the cereal box&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://weblogs.java.net/blog/johnreynolds/archive/2006/07/why_use_a_datab.html&quot;&gt;Java DB in Java SE: John Reynolds&lt;/a&gt;&lt;br&gt; &amp;quot;Data is really important, and an RDBMS is a really good tool for handling data&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://weblogs.java.net/blog/javakiddy/archive/2006/07/what_romain_did.html&quot;&gt;Java DB in Java SE: Simon Morris&lt;/a&gt;&lt;br&gt; &amp;quot;a lopsided enterprise-heavy Java community is having a detrimental effect on Java&amp;#39;s desktop efforts?&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jroller.com/page/gfx/?anchor=javadb_derby_in_java_se&quot;&gt;Java DB in Java SE: Romain Guy&lt;/a&gt;&lt;br&gt; &amp;quot;Adding a DB in the JDK is a good move from Sun&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://newsvote.bbc.co.uk/2/hi/uk_news/magazine/4954856.stm?dynamic_vote=ON#vote_4954732&quot;&gt;BBC News: What if...&lt;/a&gt;&lt;br&gt; &amp;quot;These &amp;#39;thought experiments&amp;#39; help philosophers clarify their understanding&amp;quot;&lt;/li&gt;
&lt;/ul&gt;</content>
    </entry>
</feed>

