Over a million developers have joined DZone.

The Case for a More Semantic Architecture

Creating a more semantic information technology means deciding how our interests are best served: what should we build, for whom, to which end?

Visually compose APIs with easy-to-use tooling. Learn how IBM API Connect provides near-universal access to data and services both on-premises and in the cloud, brought to you in partnership with IBM.

Part of the present difficulty over discussing how to create more semantic information technology is deciding (or distinguishing) on which level our concerns rest: what should we build, for whom (humans or machines), to which end (front- or back-), and where do the last two suffer disjunction or become united?

Semantic, in the context of computer science, applies to two distinct but related attempts to enrich machine-human or machine-to-machine interaction with intelligible meaning; one the Semantic Web and the next, Semantic Architecture.

For the sake of simplicity, I’ll define the Semantic Web as the shared data environment characterized by structured data like that of RDF* and variants like Open Graph. Other microformats, microdata, and Linked Data belong in the same category, of annotation schemes implemented by tagging (or other additive attribute chains). The goal of this construction is to identify meaningful datums, and more recently, to create relationships among various meaningful constituents.

Semantic Architecture is usually discussed in two separate but potentially coincidental senses: one use identifies those architectural choices of back-end development that enable the Semantic Web (for example, an RDF* technology stack), and the second is from the domain of software engineering and implies architectures which are capable of exchanging meaningful data about their structures and components with each other for the purpose of interoperability.

As it stands, for both the web and its architecture, and the architecture of software in general, semanticity describes a desired state rather than one that’s been reached.

A More Semantic Web

When we invoke the web as a metaphor, do we mean to be the spider traversing our own creation with ease, or the human who unwittingly walks into a seemingly random and invisible set of strands?

As users, the web today holds qualities of the latter: its structure of nodes and relationships is not obvious. Structure and meaning don’t coincide, and for us, its strands don’t answer to the context of our query.

In terms of data authorship, semanticity means publishing to a greater context and linking that data to a wider set of knowledge. In its beginning, HTML was limited to expressing very little about the semantic character of the data that it represented. For example, as I write, my words are captured at a very coarse semantic level in an HTML element, <p>, which does very little to expose the relationships inherit in the information. Properly speaking, the meaning of the content is un-inferable, without a human reader, from its position within a DOM hierarchy, and relationship to other members of that hierarchy.

In contrast, semantic markup and objects, because they are verbose and explicit, allow machines to interpret the relationships among data, and also maintain a human-readable version of structured data separated from represented information.

Semantic Architecture

Recent developments have begun linking markup data together in meaningful ways. The common ground between the goals of a semantic web architecture and a more general semantic software architecture should be evident. The tools necessary to do this, however, lie within the purview of infrastructure developers, where the question of interoperability is traditionally one of syntactics i.e., enforcing rules about the structure of data, rather than semantics.

If humans need data that can be related to a broader informational context, then the thinking of architecture—both of the web and software more generally—needs to agree on the way data about their structures and components is encoded, structured, and represented.

If we are to consider the web from the point of view of the spider, we must construct a web to have a regular and logical attachments between nodes, and the ability to conduct a spider through an obvious structure by strands that identifiably use ontological relationships to link datums (that is, vibrations on the web) throughout its entirety. 

The problem of information discovery—the need for information coupled with an inability to identify who may have it and how to ask for it—arose simultaneously as challenges to associate that data grow, and even as popularity of web technologies and the inter-connectedness of a modern life demands more, more quickly. As boundaries between services isolate each from each and encourage independent trajectories, disconnection amid complexity becomes more prevalent.

To date efforts by, on one hand groups influenced by the culture of research that large organizations can support, and on the other hand, groups under pressure to deliver products, haven't converged into a vision.

Semantic Architecture could then be defined as the hope of spinning the strands of a more generalized semantic environment together. Maximally, its aim is to build not only an interconnected infrastructure to exchange data, but also data that is structured in inter-related manner.

Where do you think the future of web inter-operability and shared data will go? Do you have any thoughts about approaches and technologies your're using? 

We look forward to your comments!

Visually compose APIs with easy-to-use tooling. Learn how IBM API Connect provides near-universal access to data and services both on-premises and in the cloud, brought to you in partnership with IBM.

information architecture,ontology,semantic elements,rdf,information technology

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}