Skip to main content
Engineering LibreTexts

5.4: OWL in Context

  • Page ID
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    OWL was designed for the World Wide Web, and has a place there, which is outlined in the next subsection. A different notion of ‘positioning’ OWL is with respect to the language features, or: options to link OWL to more expressive languages, which is described afterward.

    OWL and the Semantic Web

    OWL does not exist in isolation, but is part of the Semantic Web stack—also called the (in)famous ‘layer cake’—to make the Semantic Web work. This layer cake is shown in Figure 4.3.1. Stepwise working our way up from the bottom layer, there is XML, which is a surface syntax that has no semantics, and then XML Schema, which describes structure of XML documents.

    RDF is intended for describing data and facilitating data exchange; it is a data model for “relations” between “things”, which also has a RDF Schema and an RDF Vocabulary Definition Language. RDF data can be queried with the SPARQL query language (one can draw an analog with SQL for relational databases, but then tailored to the Internet). At the time of writing, RDF with its Linked Data— be it open or not—is quite popular. One of the central nodes in the Linked Data cloud is DBpedia [BLK+09], an RDF-ised version of Wikipedia’s info boxes. Such systems may be users of lightweight ontologies or structured controlled vocabularies. The reason for lightweight is because the RDF store tends to be large with a lot of data stored in triples.

    On top of that, we have the ontology language for the Web, OWL, to handle the knowledge and reasoning, and rules (RIF). RIF does not seem to be used much.

    There are many user interfaces for the whole range of Semantic Web applications. The details of the “trust” and “crypto”, on the other hand, are still sketchy. Perhaps the “crypto” will receive more attention with the increasing popularity of BlockChain. There are, at the time of writing, some preliminary explorations on using RDF with BlockChain. Also, as there are several BlockChain systems, and they will need to interoperate at some point, so perhaps there is a job for ontologies there as well in the near future.

    Finally, several directions for extensions to OWL proposed. These include the ‘leftover’ from OWL 1’s “Future extensions”, such as the unique name assumption,

    Screenshot (72).png

    Figure 4.3.1: The Semantic Web layer cake.

    closed world assumption, making parthood a primitive object property alike subsumption is, syntactic sugar for, e.g., ‘macros’ and ‘n-aries’, a better integration with rules (RIF, DL-safe rules, SBVR), some orthogonal dimensions such as temporal, fuzzy, rough, and/or probabilistic, and better support for multilingual ontologies. Most of these desires were known during the standardization of OWL 2. At the time of writing, it does not seem likely that a version 2.5 or even 3 will be started any time soon (but that does not mean there are no such extensions or solutions proposed for them; in fact, we will see some of them pass the revue later in the book). Perhaps this is a sign that realizing the ‘Semantic Web’ may not happen after all. Regardless, OWL itself has a life of its own, were OWL files are integrated into a wide range of applications on and off the Web in standalone ‘intelligent’ applications anyway.

    The Distributed Ontology, Model, and Specification Language DOL

    A few limitations of OWL 2 DL were illustrated in Example 4.2.1, showing that entirely reasonable combinations of features, like asymmetry of hasMother and inferring who has whom as aunt, are not possible within that framework. There are alternatives, but they do come at the cost of scalability. If one needs scalability as well, one could choose to first develop the more precise ontology that has a higher precision and coverage, check that all is consistent and satisfiable, and then simplify it to the profile needed for the application.

    One option is to use the Distributed ontology, model, and specification language (DOL), which has been approved as a standard of the Object Management Group

    Screenshot (73).png

    Figure 4.3.2: A sub-graph of logics currently supported by DOL/Ontohub, linked with a variety of logic translations; the arrow shapes indicate some technical differences in translation from one logic to another and the different colours of the boxes give a ballpark figure of the expressivity/complexity of that language. (Source: [KK17b])

    (OMG) in 20166. DOL is not yet a new language for representing the axioms, but provides a unified metalanguage where one can slot in one’s logic of choice— including OWL—as one pleases (roughly), and put the axioms that violate the OWL 2 DL restrictions in another ontology module that is then linked to the OWL file. The system can treat them both as one larger ontology and reason over it (that will take a bit more time to complete, if at all). It comes with a tool for realizing reasoning over the combination of ontologies (the Heterogeneous ToolSet7) and the OntoHub repository to store heterogeneous ontologies [CKK+17].

    How this is achieved behind the scenes is not trivial; the general theoretical background of DOL is described in [KML10], with a detailed description in [MCNK15]. It uses the notion of institutions (in the mathematical sense) to tie the logics together, which were first introduced in [GB92]. Institutions capture commonalities across logics—like FOL and DLs both using a model-theoretic semantics, the overlap in constructors—and therewith provide a means of interoperability across logics.

    The orchestration of languages DOL supports currently is depicted in Figure 4.3.2, which is organised along two dimensions: the quality of logic translation (the different shapes of the arrows) and expressivity of the logic (coloured boxes). The expressivity ranges from the Semantic Web languages RDF and the OWL species all the way up to (variants of) first- and second-order logic, so as to cater for a wide range of requirements from the different communities that use models in one way or another.

    DOL has many more features that, at this stage in the book, may not make a lot of sense or seem not really needed, but they probably will be perceived useful as one advances in ontology engineering and/or are facing a concrete ontology development and maintenance project in government or industry. This for the simple reason that ontologies ‘out there’ are definitely not as small and simple as the African Wildlife Ontology. For instance, one could create a network of ontologies rather than a monolithic one, which can be useful if several groups at different locations contribute to the ontology, or create mappings between elements in ontologies once one has imported one for reuse. We will see such scenarios in Block II. In addition, or, perhaps: moreover, besides being able to represent the aforementioned expressiveness example with the cake and the aunts (Example 4.2.1), one can also do other things that are still in the ‘future extensions’ list for OWL, such as playing with open vs. closed world semantics and declare n-ary relations fully.

    Common Logic

    Ontology development does not need to occur with OWL. The main other logic that has been serialized is Common Logic (CL) [CLs07], which has been standardized by the ISO. It is a family of first-order logics that share a common abstract syntax, have a model-theoretic semantics, and it uses XML as well. It has three “dialects” (syntaxes): 1) the Common Logic Interchange Format CLIF (one textual notation); 2) the Conceptual Graph Interchange Format (diagrams), CGIF; and 3) eXtended Common Logic Markup Language (XCL), based on XML (another textual notation).

    It had its own design goals, which wasn’t concerned with computability. More specifically8, and in comparison the there earlier listed design goals of OWL, they were: 1) Common interlingua for variety of KR notations; 2) Syntactically as unconstrained as possible; 3) Semantically as simple and conventional as possible; 4) Full first-order logic with equality, at least; 5) web-savvy, up-to-date; 6) Historical origins in Knowledge Interchange Format (KIF).

    Because CL is more expressive, the Semantic Web languages (including the OWL species) all can map into CL. Further, since DOL, it need not be ‘self standing’, as the DOL framework as well as the tooling with Hets do provide support for CL; see also the “CL” and “CL” boxes in the right-bottom corner in Figure 4.3.2.

    This page titled 5.4: OWL in Context is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Maria Keet via source content that was edited to the style and standards of the LibreTexts platform.

    • Was this article helpful?