Chapter 6. What Do You Mean, “Ontology”?

We stated in Chapter 1 that the role of semantics was to communicate enough meaning to result in an action. Over the last few chapters we have shown how to represent and transmit knowledge in a formal, machine-readable way. Throughout our exploration of triples and graphs, we have relied on existing sets of predicates or simply invented new ones, using our intuitions and shared experiences about subject and object relations to guide us.

This informal approach to modeling our data has served us well, and is frequently sufficient for small, independent projects. We can write programs that respond to predicates like foaf:knows or fb:film.film.starring in reliable ways, and from the actions of those programs we might state that our program “knows what it means to star in a film.” But our definition of “film” is murky at best. Should our set of films include made-for-TV movies? Does a movie being included in our set of films mean it was eligible for an Academy Award? These questions may seem pedantic, but as projects grow and information is distributed more widely, having a precise way to represent and transmit this understanding becomes increasingly important.

In this chapter we examine how to build more complete models of relationships and how to express the models in RDF itself. In later chapters, when we are building larger and more sophisticated programs, we will leverage these formal models not only to define data relationships, but also to ...

Get Programming the Semantic Web now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.