Originally appeared on Nodalities Blog: http://blogs.talis.com/nodalities
Looking at the world through a closed metaphor, like a walled garden, actually stops you from expanding the scope of possibilities available to the software you develop. This is because closed-world perspectives on data and meaning preclude the ability for further questioning. The answer to the question: “What don’t we know yet?” is not possible to answer. It’s capped at what you already know. The cause of this limit is the assumption that everything you don’t know is false, and it’s common to most software development.
This is a concept fundamentally at conflict with a ‘web’ metaphor or perspective. The idea of networked information (connected, accessible, linkable) could not get very far if the software logic balked at any new data, or any data which didn’t fit its pre-existing definitions.
A well-used example of this is asking a question about a person’s details which the system cannot know. So, if it is known that John is a citizen of the US; and you ask the system: “Is it true that John is a UK citizen?” a closed-world software solution will answer: “No.” However, an open-world perspective cannot definitively answer “no”, because it doesn’t know the answer–John might, for example, have dual-nationality.
Asking: “What else is there? Where can I find it? What can I do with it?” are fundamental to the Semantic Web, and to the way in which we go about creating it. Applications written for a limited data set can only ever answer questions asked about their data. In this sense, the current software development model exists within self-created walled gardens whose perimeters are set by the limit of software’s inquisitiveness.
Opening-up the limits could lead to a fundamental shift in metaphor for software. At the moment, all software agents are called ‘applications’. They ‘apply’ a logic to a set of data and spit out an answer. We think of them as automated beings like robots. They live in a world of data and work with what you feed them.
Perhaps if we move more toward a metaphor of a ‘perspective’, the open data web will begin to make more sense. Instead of designing robots to do tasks with your data, engineers can begin creating views on the data. Essentially, instead of designing, using and selling a robot to do something, they’d be creating, utilizing, and selling their perspective. Software would create a contextualized view on the data. It can manipulate the results by re-focusing the context and by including other aspects from other datasets into its calculations, but it doesn’t forget that the data it is using exists outside it’s computations.
Imagine opening up your laptop and clicking on the ‘perspectives’ folder to open up a PIM (Personal Information Manager like Thunderbird or Outlook). This PIM Perspective can look at the data about you, and apply a context to it. Allows you to view the data from a particular perspective. Finding the answer to ‘Am I free on Tuesday?” becomes a matter of ‘viewing’ the available information about your schedule on Tuesday within the context of events you have accepted to attend. This ‘view’ could then be further contextualized by adding further aspects to the Perspective: location/travel time, likelihood of proceeding events running over etc… Each aspect determines the ultimate view you have on the data for ‘Tuesday’. Instead of applying one bit of data (an event) on another bit of data (a date) and seeing if the data conflict, you get to ‘see’ the answer to your questions using existing data. The openness in this metaphor could include the fact that the data for an event lies outside the application’s resources. Say the event is a meeting organized by a company. If the company has published the event data, your PIM Application needs to import this information (you can either enter it, or accept an invitation) before adding it to its calculations. What then happens if the company cancels or moves the event location or meeting time? They have to re-send the information to all the attendees, who then have to modify their PIMs’ data. In an open-world, the data exists outside the PIM, so if the published information changes, the PIM’s Perspective changes accordingly.