Distributed Enterprise Systems (CO3409) Lab 17: Semantic Interoperability

17.1 Schema.org

Schema.org is a semantic artefact supported by a community that includes Google, Microsoft, and Yahoo, and that organizes itself through the W3C. Explore schema.org from its online index. Additionally you could also load the ontology in TTL format into Protégé or WebProtégé; however, schema.org should already be perfectly intelligible through its web-based documentation.

In the knowledge graph example (JSON-LD, TTL) from last week, we were using concepts and relations from a namespace with the abbreviation "uni". These concepts were made up for a single purpose, they were not defined clearly, and do not facilitate interoperability with any existing digital enterprise architecture.

What definitions does schema.org provide that we could reuse to describe our scenario? Rewrite the JSON-LD or the TTL file using concepts and relations from schema.org instead of the "uni" namespace. (For the individuals, continue to use the "scenario" namespace.)

How to begin:

Let us assume that you are working on the JSON-LD file. (It is not much different for the TTL file.) The context definition

"uni": "http://home.bawue.de/~horsch/teaching/co3409/semantics/uni#"

will need to be removed, and a namespace for schema.org needs to be added, e.g.:

"schema": "https://schema.org/"

Then all occurrences of "uni" need to be replaced with an appropriate entry from "schema". Assume that you begin with uni:teachesAt. What relation from schema.org would it be best to use instead - could it be schema:affiliation, schema:member, schema:memberOf, or something different? Once you are done replacing all the concepts and relations, you will have a semantically interoperable knowledge graph that could be understood by many pre-existing digital platforms, including Google.

17.2 Semantically interoperable annotation of websites

The HTML code of the course website (https://home.bawue.de/~horsch/teaching/co3409/index.html) contains a rudimentary schema.org based JSON-LD annotation. You can find it between the tags:

<script type="application/ld+json">
   …
</script>

How would you propose to modify and/or extend the annotation? Use the Google Rich Results Test to make sure that your revised annotation is processed by Google in accordance with your intentions.

If you are interested in feedback on your work, send an email to Aaron Bryant and Martin Horsch.