Domain Modeling
Semantic web domain modeling lets you reuse globally accepted domain models such as FOAF and extend them with application-specific modeling. In
Figure 2 a new
class—
BuildingProject—is created by subclassing
foaf:Project and three new properties added.
Clarifying Concepts
Concepts defined in Linked Data datasets such as
Dbpedia can be linked to concepts used in CDMS
(using constructs such as
<rdfs:seeAlso rdf:resource="http://dbpedia.org/resource/Category:Building"/>) to provide
additional context, making it easier for different audiences (different languages, different countries, different
skills, different trades) to understand. As shown in Figure 3
the Dbpedia concept of Building provides additional context for the CDMS definition of
BuildingProject.

Figure 2. Domain Modeling: BuildingProject is created by subclassing foaf:Project. |
|

Figure 3. Linked Data: Linked data supports domain concepts. |
Augmenting Location Data
Locations, landmarks, and other well-known buildings already described in Linked Data datasets can also be used to
augment location information about a building project. In
Figure 4 the
foaf:based_near property
is used to indicate that Breaker Bay is near
Wellington. Dereferencing the Wellington link
provides information about Wellington along with links to additional information from the Dbpedia dataset.
 |
|
|
Figure 4. Locations Based Services: Linked data is good for location based services. |
Project Collaboration
The publication of project information (in particular project status information) as Linked Data makes it available
to a number of different parties to include in their own systems.
Inferences and Reasoning
The inference capabilities of OWL may assist with handling the layers of government standards, laws,
regulations plus industry and manufacturer standards. This integrates with location based services. Initial steps in
this direction are proposed in
this blog entry.
Using Jena
The example RDF model was created using
TopBraid Composer, a commercial
ontology editor. This RDF model can be used
to generate the beginnings of a semantic web application, in this case using
Jena.
Jena already contains the static constants for FOAF. The
schemagen tool was used to generate the Building.java class, which contains static constants for the new "Building Project" terms defined in http://3kbo.com/examples/building.rdf.
The downloadable maven pom.xml file contains the repository and dependencies needed to build a Jena based Java application.
With the basic domain model defined, you can create a simple application App.java with a
helper class Architects to illustrate creating a new building project.
In the main method from App.java you nominate the
architect and builder and create a new property to link to the legislation the
approved building complies with (see Listing 1).
The Architects helper method Architects.findArchitect uses a SPARQL query to find by name an architect in the Architects group.
The method Architects.getRecommendedBuilder also uses a SPARQL query to navigate through the
list of builders the nominated architect knows. (In this simple example, use the last builder in the list).
This article describes only a few of the benefits and features associated with using semantic web technologies over
HTML applications. The next article in this series will delve into the requirements—and how to select—a
semantic web framework.