Linked Data and Linked APIs: Similarities, Differences, and Challenges
In an often retweeted Twitter post, entrepreneur and software architect Inge Henriksen described the relation of Web 1.0 to Web 3.0 as: “Web 1.0 connected humans with machines. Web 2.0 connected humans with humans. Web 3.0 connects machines with machines.” On the one hand, an incredible amount of valuable data is described by billions of triples, machine-accessible and interconnected thanks to the promises of Linked Data. On the other hand, rest is a scalable, resource-oriented architectural style that, like the Linked Data vision, recognizes the importance of links between resources. Hypermedia apis are resources, too—albeit dynamic ones—and unfortunately, neither Linked Data principles, nor the rest-implied self-descriptiveness of hypermedia apis sufficiently describe them to allow for long-envisioned realizations like automatic service discovery and composition. We argue that describing inter-resource links—similarly to what the Linked Data movement has done for data—is the key to machine-driven consumption of apis. In this paper, we explain how the description format restdesc captures the functionality of apis by explaining the effect of dynamic interactions, effectively complementing the Linked Data vision.
KeywordsLink Data Restful Service Blank Node Automate Agent Link Open Data Cloud
1.1 The Web api Simplification Movement
The number of Web apis has increased at a tremendous rate during the past few years. ProgrammableWeb, a major catalog of Web apis and services, consisted of 6,000 entries as of May 2012 , twice the amount compared to the year before . More than 4,000 of those entries carry the label “rest”, meaning they are light-weight Web apis, also called http interfaces, as opposed to the more heavy-weight rpc-style Web services, often using soap. While there are certainly different viewpoints to take into account—especially when comparing enterprise soa architects and mash-up developers—Web developers in general welcome this simplification movement on the dynamic side of the Web. It is common practice to intermix Web apis from different sources and, in the sense of emergence, create something new (commonly called mashup applications), where the whole is greater than the sum of its parts. If Web application development today was compared to the world of toys, the lego figures would ride the Playmobil horses and fight with Star Wars collectibles swords. However, a lot of manual plumbing is required to make this work: while Web apis bare the potential to be composed straightforwardly, they lack the semantics to do this in an automated way .
In the past, we have introduced the Web api description method restdesc , which aims to provide the semantics necessary to enable automated api consumption and composition, in the same way that ontologies provide the semantics to static data. In this paper, we want to look at Web apis from a Semantic Web perspective: investigating how apis differ from data, what they have in common, and how they could work together on the Web. An important piece of the puzzle is to realize that the resource-oriented way of looking at apis is similar to the Linked Data vision on data.
1.2 Linked Data Explains the Static Side, restdesc the Dynamic Side
To clarify what we mean with this statement, we need to take a step back and think about the Web in its most abstract form. What we see are resources, with an unparalleled variety, and an ever increasing number of links between them . Resources and their representations make up the essence of the Web , while the Linked Data vision made us all realize again the crucial role that links play therein. Indeed, links have been the catalysts of the success of the human Web, and they continue to prove their strengths on the Semantic Web . The representations of resources—and therefore data—are given meaning by links, corresponding to well-defined rdf predicates.
Given the importance of links, one can wonder why they seem absent on the service-side of the Web, where interactions are mostly driven by static controls such as message templates and uri construction rules. These controls have to be known in advance, unlike Linked Data controls (i.e., the links between resources), which are consumed at runtime. When Fielding redesigned the http specification , he had a resource-oriented model in mind where hypermedia drives Web applications: Representational State Transfer (rest, ). He later clarified that the hypermedia constraint imposed by rest demands that representations of a resource should contain controls that guide hypermedia consumers to possible next steps or resources . Consequently, modeling Web apis the rest way leads to the same resources-and-links paradigm that is at the core of the human Web, which has html links and forms, and the Semantic Web, which has rdf links between resources.
In all fairness, rest apis—as defined by Fielding—are scarce. While many apis carry the “rest” label, few actually obey the hypermedia constraint, and, even worse, some of them do not correctly adhere to the defined http semantics . Hypermedia-driven apis are vastly outnumbered by plain http and rpc interfaces. However, this can be compared to the larger presence of unstructured and unlinked data on the Web compared to Linked Data. Therefore, the scarceness doesn’t change the status of resource- and link-orientedness as well-suited model for automated agents to perform static and dynamic interactions.
Currently, the main obstacle for automated agents that want to consume Web apis is that they cannot predict what effect a state-changing operation will have. Linked Data gives the answer for information-retrieving operations, known as dereferencing. Performing a GET operation on a resource’s uri will provide the agent with information about that resource. But what happens when the agent performs a POST operation on the same resource? Reference  Since Fielding suggests the controls (e.g., links and forms) should point to possible next steps or resources, it is obvious how the state change happens. However, what this state change will bring might be obvious to humans, but is still unknown to machines. Therefore, in this paper, we zoom in on how the description format restdesc explains to agents what will happen if state-changing operations are performed on a resource, complementary to the Linked Data principles that explain the same for static operations.
This paper starts with a description of related work in Sect. 2, then highlights the differences and similarities of Linked Data and hypermedia apis in Sect. 3, zooming in on the gaps that need to be bridged. Section 4 continues with an illustration of the role restdesc can play herein by formally expressing the relationship between resources in a hypermedia api. Finally, Sect. 5 looks back on the discussed topics and ends by indicating the importance of hypermedia-driven apis on the Web for autonomous agents.
2 Related Work
Description of Web services or apis for automated use has been on the Web since before the advent of the Semantic Web (notably wsdl ), and played an important part during the beginning of the Semantic Web’s inception. Several of the first initiatives are well-known: owl-s , which evolved from daml-s , and the conceptually different wsmo [24, 32]. These formats target what are called “Big” Web services , which function in a message-passing or Remote Procedure Call (rpc) paradigm. While these models use Semantic Web elements such as ontologies, they predate the Linked Data vision and the recent revaluation of rest apis. Neither owl-s nor wsmo have stood the test of time, as extensive Web searches did not reveal substantial real-world usage. We therefore focus on more recent research projects that have design goals similar to restdesc, e.g., a focus on functionality and/or hypermedia apis.
Several methods aim to enhance existing technologies to deliver annotations of Web apis. html for restful Services (hrests, ) is a microformat to annotate html descriptions of Web apis in a machine-processable way. sa-rest  provides an extension of hrests that describes other facets such as data formats and programming language bindings. Microwsmo [22, 25], an extension to sawsdl that enables the annotation of restful services, supports the discovery, composition, and invocation of Web apis. The Semantic Web sErvices Editing Tool (sweet, ) is an editor that supports the creation of mashups through semantic annotations with Microwsmo and other technologies. A shared api description model, providing common grounds for enhancing apis with semantic annotations to overcome the current heterogeneity, has been proposed in the context of the soa4all project .
The Resource Linking Language (rell, ) features media types, resource types, and link types as first class citizens for descriptions. It offers a metamodel and an associated xml Schema to capture these aspects formally. The restler crawler  finds restful services based on rell descriptions. The authors also propose a method for rell api composition  using Petri nets to describe the machine-client navigation.
Linked Open Services (los, ) have an http api approach, in which sparql graph patterns identify the offered functionality. Part of the project’s scope concerns the lifting and lowering of existing services, since many of them do not expose their data in a semantic format yet. A difference with restdesc is that los apis are not committed to the hypermedia constraint, whereas the hypermedia-driven consumption of apis is a central concept in restdesc.
Linked Data Services (lids, ) have a similar notion of input and output graphs. They use the input data to construct a resource’s uri, as opposed to los, which sends input data in the request body. The result is an api whose interactions are thus in a sense solely form-based—the form structure being defined by the unbound variables in the input graph pattern. In addition to forms (not discussed in this paper), restdesc also aims to support the link part of the hypermedia control set.
3 A Joint Future for Linked Data and Hypermedia APIS
Striking parallels between Linked Data and hypermedia apis exist—and this is not a coincidence, since both are closely tied to the original visions and architecture of the Web. One of the common elements are resources: concepts in Linked Data are identified by one or multiple uris, which, when requested through http GET, lead to information about that concept. Hypermedia apis are similarly structured as concepts or resources, with the constraints that every uri should identify a resource and that the http methods should be used conform to the http specification . The semantics of the GET method have therein been defined as “obtaining the information identified by the uri”, which, unsurprisingly, matches the Linked Data purpose .
The other common element are links: as the name implies, they play a vital role in Linked Data, and they are at the heart of the Semantic Web. Links give a concept’s data meaning beyond its own context. More concretely, if an agent does not understand what a data property means, it can look up that property because its link is an http uri. The same applies to hypermedia apis: the controls, telling us how other resources relate to the current resource, can be links. Details on the nature of the relation are conveyed by link types, which can have the same uris as Linked Data properties .
In essence, one could see the whole Linking Open Data Cloud  as a large, distributed hypermedia application. This is in fact how its usage is encouraged: an agent starts from one resource and can make its way through the whole cloud, just by “following its nose”, thanks to the links. However, it only provides a subset of the possibilities of what we expect from a hypermedia api: merely retrieval operations are supported. Yet, the role of links here remains important: browsing billions of triples in billions of resources would otherwise prove difficult.
An interesting aspect of rest is that it does not matter whether the resources and triples already exist. They can either be part of documents, or be the result of a service invocation—but the agent does not have to know and does not have to care. For example, a huge dataset of natural numbers has been made available as Linked Data , yet the information of each number is not static, but instead generated dynamically when an agent dereferences its uri. This dataset is thus what we would traditionally consider a “service”, but thanks to the rest principles, it manifests itself as just another set of linked resources.
Nevertheless, we often associate the concept of services additionally with action-driven behavior, for example, allowing us to post a comment or order tickets. In a rest architectural model, these actions are captured by the modification or creation of resources, linked to existing resources. While these and similar actions are very common on the human Web and on the Web of services, the Semantic Web still struggles with state-changing operations . Several mechanisms are there (e.g., sparql UPDATE ), but issues such as authorization and security still impede wide adoption. Consequently, the Linked Data vision must in the meantime assume that the publisher and consumer sides are distinct, i.e., that consumers of Linked Data will not need to perform write operations. This simplifying assumption has its benefits—just look at the overwhelming amount of data—but will not be sufficient for the vision of autonomous agents that require actions in the real world. Indeed, as the comment and ticket examples indicate, many interactions we perform on a daily basis involve write actions. Therefore, in the next section, we will look at the requirements of agents for browsing full hypermedia apis, which offer both information-retrieving and state-changing operations.
4 restdesc Describes Hypermedia Links
4.1 Example Scenario
GET a representation of the index resource at /.
Find a hasBook link in this representation titled “The Catcher in the Rye”.
GET a representation of this linked resource at /books/443.
Find a hasReview link in this representation.
GET a representation of this linked resource at /books/443/reviews/7.
This way of working is hypermedia-driven, because the agent only follows the representation-supplied controls (e.g., links) to go from one step to the next.
4.2 Understanding the GET Operations
Below, we discuss some important aspects of this description.
Firstly, the explicit quantification makes agent understand that the book in the antecedent and the conclusion are the same. The ?book variable can be instantiated with a concrete instance. For example, if an agent finds a hasBook link from the store / to the book /books/443/, it can instantiate the description of Listing 1 into the rdf fragment in Listing 2. This fragment details the instructions an agent needs to execute. Since this request in these instructions has not been executed, the resulting values are not known yet. However, the reasoner has instantiated them with blank nodes (title1, author1, and review1). After a successful execution of the request, these blank nodes can be substituted by the actual data received from the server.
Thirdly, restdesc does not specify what representations should look like. This is a central part of the restphilosophy. While restdesc describes the relations between resources and the result of actions performed on them, the selection of the right representation should happen at runtime by making use of the content negotiation mechanism of the http protocol. For example, Listing 1 states that the retrieved resource will have a title and an author. The description does, however, not imply that this information will be supplied in rdf or any other format. While it seems logical that an agent would ask for an rdf representation (since the agent uses Semantic Web technologies internally), this is by no means a requirement. The actual representation could be in xml, json, html, or any other format. This opens possibilities to work with non-textual data, such as images and video . However, the major benefit of rdf representations is that their contents are self-describing and can therefore be automatically interpreted by machines.
4.3 Understanding POST Requests
The situation is completely different for POST requests because, unlike with GET and other safe requests, the agent cannot carelessly issue a POST request in one of the steps, since (a) it cannot predict what the result will be and (b) testing what the result is can have unwanted consequences, as POST is unsafe . Furthermore, it cannot determine what body it should send along with the POST request. Although some representation formats provide forms (e.g., html and Atom), others lack form functionality (e.g., rdf, although proposals exist ), but in either case, it is unclear how the result relates to the submitted data.
This enables agents to understand what data they can send along with a POST request and how this data will influence the outcome of the request.
Note how, in this example, the precondition is more restricting: the agent needs to have access to a review before the request can be executed. Also, this review is necessary to construct the request: it should be placed inside the http request’s POST body. Again, the exact representation of this body is not detailed, because agents and servers should be able to agree on the best representation at runtime. We do, however, get a suggestion of properties that should be present in the representation: an author, a rating, and a review text.
Now that the agent understands each of the steps, it is able to chain them together and actually execute each of the requests in the process.
4.4 Executing the Requests
GET the restdesc description of hasBook.2
GET a representation of the index resource at /.
Find a hasBook link in this representation titled “The Catcher in the Rye”.
Instantiate the description with the review and found link.
POST the review, as instructed by the description, at /books/443.
Note again how only hypermedia controls are used to get from one step to the next. The added value of restdesc here is to explain the agent in advance what effect the POST request will have, so it can decide whether to execute this request. In real-world applications, restdesc descriptions can be used for goal-driven api compositions . For instance, the user can supply the review parameters as input, and ask that it is submitted to a certain book.
The Linked Data vision strives to connect data on the Web, making it available in a machine-processable format. Hypermedia apis similarly strive for connectedness of resources, but also consider the write side of interactions. Their goals are similar, and so are their tools: both make automated consumption of the Web available using the core principles of the http architecture, featuring resources, representations, and links. However, dealing with state-changing operations requires automated agents to have expectations of what consequences their actions will have.
restdesc shows how existing Semantic Web technologies can be combined to explain the functionality of a Web api to those agents. It enables us to apply the Linked Data vision to hypermedia apis by describing the meaning of links for state-changing operations. In that sense, it is a plea for more hypermedia apis on the Web, as they beautifully incorporate the controls that future autonomous agents will need to browse the Web. Therefore, we believe it is time to transition today’s services towards hypermedia apis by adding the missing links.
Hypermedia apis are synonymous to “rest apis or services, in the sense as defined by Fielding” . This last clarification is important, since many apis that were given a “rest” label do not, or only partially, adhere to Fielding’s definition, which is why we use the term “hypermedia api” to distinguish the intended meaning .
restdesc discovery, i.e., how to obtain restdesc descriptions, has been discussed earlier . The agent could for example dereference the hasBook link.
The described activities were funded by Ghent University, the Interdisciplinary Institute for Broadband Technology (ibbt), the Institute for the Promotion of Innovation by Science and Technology in Flanders (iwt), the Fund for Scientific Research Flanders (fwo), and the European Union.
This work was partially supported by the European Commission under Grant No. 248296 FP7 (i-search project). Joaquim Gabarró is partially supported by TIN-2007-66523 (formalism), and SGR 2009-2015 (alcom).
- 1.Alarcón, R., Wilde, E.: restler: crawling restful services. In: Proceedings of the 19th International Conference on World Wide Web, pp. 1051–1052. ACM (2010). http://doi.acm.org/10.1145/1772690.1772799
- 2.Alarcon, R., Wilde, E., Bellido, J.: Hypermedia-driven RESTful service composition. In: Maximilien, E.M., Rossi, G., Yuan, S.-T., Ludwig, H., Fantinato, M. (eds.) ICSOC 2010. LNCS, vol. 6568, pp. 111–120. Springer, Heidelberg (2011). http://dx.doi.org/10.1007/978-3-642-19394-1_12 CrossRefGoogle Scholar
- 3.Ankolekar, A., et al.: DAML-S: web service description for the semantic web. In: Horrocks, I., Hendler, J. (eds.) ISWC 2002. LNCS, vol. 2342, pp. 348–363. Springer, Heidelberg (2002). http://eprints.soton.ac.uk/257342/1/ISWC2002-DAMLS.pdf CrossRefGoogle Scholar
- 4.Baker, M.: rdf forms, 2003–2005. http://www.markbaker.ca/2003/05/RDF-Forms/
- 5.Berners-Lee, T., Connolly, D.: Notation3 (n3): A readable rdf syntax. w3c Team Submission (2011). http://www.w3.org/TeamSubmission/n3/
- 7.Berners-Lee, T., Cyganiak, R., Hausenblas, M., Presbrey, J., Seneviratne, O., Ureche, O.: Realising a read-write Web of Data, June 2009. http://web.mit.edu/presbrey/Public/rw-wod.pdf
- 8.Berners-Lee, T., Hendler, J., Lassila, O.: The semantic web. Sci. Am. 284(5), 34–43 (2001). http://www.scientificamerican.com/article.cfm?id=the-semantic-web CrossRefGoogle Scholar
- 9.Bizer, C.: The emerging Web of Linked Data. Intell. Syst. 24(5), 87–92 (2009). IEEE. http://lpis.csd.auth.gr/mtpx/sw/material/IEEE-IS/IS-24-5.pdf CrossRefGoogle Scholar
- 10.Bizer, C., Heath, T., Berners-Lee, T.: Linked Data - the story so far. Int. J. Semant. Web Inf. Syst. 5(3), 1–22 (2009). http://tomheath.com/papers/bizer-heath-berners-lee-ijswis-linked-data.pdf CrossRefGoogle Scholar
- 11.Curbera, F., Duftler, M., Khalaf, R., Nagy, W., Mukhi, N., Weerawarana, S.: Unraveling the Web services Web: an introduction to soap, wsdl, and uddi. Internet Computing 6(2), 86–93 (2002). IEEE. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=991449 CrossRefGoogle Scholar
- 12.DuVander, A.: 3,000 Web apis: Trends from a quickly growing directory, March 2011. http://blog.programmableweb.com/2011/03/08/3000-web-apis/
- 13.DuVander, A.: 6,000 apis: It’s business, it’s social and it’s happening quickly, May 2012. http://blog.programmableweb.com/2012/05/22/6000-apis-its-business-its-social-and-its-happening-quickly/
- 14.Fielding, R.T.: rest apis must be hypertext-driven. Untangled - Musings of Roy T. Fielding, October 2008. http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
- 15.Fielding, R.T., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., Berners-Lee, T.: Hypertext Transfer Protocol - http/1.1. Request for Comments: 2616, June 1999. http://tools.ietf.org/html/rfc2616
- 17.Gearon, P., Passant, A., Polleres, A.: sparql 1.1 Update. w3c Working Draft, January 2012. http://www.w3.org/TR/sparql11-update/
- 18.Gomadam, K., Ranabahu, A., Sheth, A.: sa-rest: Semantic Annotation of Web Resources. w3c Member Submission. http://www.w3.org/Submission/SA-REST/
- 19.Hartig, O., Zhao, J.: Publishing and consuming provenance metadata on the web of linked data. In: McGuinness, D.L., Michaelis, J.R., Moreau, L. (eds.) IPAW 2010. LNCS, vol. 6378, pp. 78–90. Springer, Heidelberg (2010). http://www2.informatik.hu-berlin.de/ hartig/files/HartigZhao_Provenance_IPAW2010_Preprint.pdf CrossRefGoogle Scholar
- 20.Klabnik, S.: rest is over, February 2012. http://blog.steveklabnik.com/posts/2012-02-23-rest-is-over
- 21.Kopecký, J., Gomadam, K., Vitvar, T.: hrests: an html microformat for describing restful Web services. In: Proceedings of the International Conference on Web Intelligence and Intelligent Agent Technology, pp. 619–625. IEEE Computer Society (2008). http://dx.doi.org/10.1109/WIIAT.2008.379
- 22.Kopecký, J., Vitvar, T.: Microwsmo. wsmo Working Draft, February 2008. http://www.wsmo.org/TR/d38/v0.1/
- 23.Krummenacher, R., Norton, B., Marte, A.: Towards linked open services and processes. In: Berre, A.J., Gómez-Pérez, A., Tutschku, K., Fensel, D. (eds.) FIS 2010. LNCS, vol. 6369, pp. 68–77. Springer, Heidelberg (2010). http://www.linkedopenservices.org/publications/FIS2010.pdf CrossRefGoogle Scholar
- 24.Lara, R., Roman, D., Polleres, A., Fensel, D.: A conceptual comparison of WSMO and OWL-S. In: (LJ) Zhang, L.-J., Jeckle, M. (eds.) ECOWS 2004. LNCS, vol. 3250, pp. 254–269. Springer, Heidelberg (2004). http://www.wsmo.org/2004/d4/d4.1/v0.1/20050106/d4.1v0.1_20050106.pdf CrossRefGoogle Scholar
- 25.Maleshkova, M., Kopecký, J., Pedrinaci, C.: Adapting SAWSDL for semantic annotations of RESTful services. In: Meersman, R., Herrero, P., Dillon, T. (eds.) OTM 2009 Workshops. LNCS, vol. 5872, pp. 917–926. Springer, Heidelberg (2009). http://dx.doi.org/10.1007/978-3-642-05290-3_110 CrossRefGoogle Scholar
- 26.Maleshkova, M., Pedrinaci, C., Domingue, J.: Investigating Web on the World Wide Web. In: Proceedings of the 8th European Conference on Web Services, pp. 107–114. IEEE (2010). http://sweet-dev.open.ac.uk/war/Papers/mmaWebAPISurvey.pdf
- 27.Maleshkova, M., Pedrinaci, C., Domingue, J. Semantic annotation of web with apis with sweet, May 2010. http://oro.open.ac.uk/23095/
- 28.Maleshkova, M., Pedrinaci, C., Li, N., Kopecky, J., Domingue, J.: Lightweight semantics for automating the invocation of Web apis. In: Proceedings of the 2011 IEEE International Conference on Service-Oriented Computing and Applications, December 2011. http://sweet.kmi.open.ac.uk/pub/SOCA.pdf
- 30.Nottingham, M.: Web Linking. Request for Comments: 5988, October 2010. http://tools.ietf.org/html/rfc5988
- 31.Pautasso, C., Zimmermann, O., Leymann, F.: restful Web services vs. “Big” Web services: making the right architectural decision. In: Proceedings of the 17th International Conference on World Wide Web, pp. 805–814. ACM, New York (2008). http://www.jopera.org/files/www2008-restws-pautasso-zimmermann-leymann.pdf
- 32.Roman, D., Keller, U., Lausen, H., de Bruijn, J., Lara, R., Stollberg, M., Polleres, A., Feier, C., Bussler, C., Fensel, D.: Web service modeling ontology. Appl. Ontol., 1:77–106, January 2005. http://dl.acm.org/citation.cfm?id=1412350.1412357
- 33.Speiser, S., Harth, A.: Taking the shape lids off data silos. In: Proceedings of the 6th International Conference on Semantic Systems, i-semantics 2010, pp. 44:1–44:4. ACM, New York (2010). http://www.aifb.kit.edu/images/4/4a/Triplify-2010-ssp-aha-taking-the-lids-off-data-silos.pdf
- 34.Verborgh, R., Steiner, T., Van de Walle, R., Vallés, J.G.: The missing links - how the description format restdesc applies the linked data vision to connect hypermedia apis. In: Proceedings of the First Linked workshop at the Ninth Extended Semantic Web Conference, May 2012. http://lapis2012.linkedservices.org/papers/3.pdf
- 35.Verborgh, R., Steiner, T., Van Deursen, D., Coppens, S., Vallés, J.G., Van de Walle, R.: Functional descriptions as the bridge between hypermedia apisand the Semantic Web. In: Proceedings of the Third International Workshop on restful Design. ACM, April 2012. http://www.ws-rest.org/2012/proc/a5-9-verborgh.pdf
- 36.Verborgh, R., Steiner, T., Van Deursen, D., De Roo, J., Van de Walle, R., Gabarro, J.: Capturing the functionality of Web services with functional descriptions. Multimedia Tools and Applications (2012). http://rd.springer.com/article/10.1007/s11042-012-1004-5
- 37.Verborgh, R., Van Deursen, D., Mannens, E., Poppe, C., Van de Walle, R.: Enabling context-aware multimedia annotation by a novel generic semantic problem-solving platform. Multimedia Tools and Applications (2012). http://rd.springer.com/article/10.1007/s11042-010-0709-6
- 38.Vrandečić, D., Krötzsch, M., Rudolph, S., Lösch, U.; Leveraging non-lexical knowledge for the Linked Open Data Web. In: 5th Review of April Fool’s day Transactions, pp. 18–27 (2010). http://km.aifb.kit.edu/projects/numbers/linked_open_numbers.pdf