Lab: OWL 1
Topics
Basic OWL ontology programming with RDFlib and owlrl.
WebVOWL visualisation.
RDF and RDFS might be relevant too.
Classes/Vocabularies
Vocabulary:
- OWL (sameAs, equivalentClass, equivalentProperty, differentFrom, disjointWith, inverseOf)
- OWL (SymmetricProperty, AsymmetricProperty, ReflexiveProperty, IrreflexiveProperty, TransitiveProperty, FunctionalProperty, InverseFunctionalProperty, AllDifferent)
Tasks
Task 1
Write OWL triples that corresponds to the following text. .If you can, try to build on your example from labs 1 and 2, or extend the triples at the bottom of the page. OWL terms can be imported from rdflib in the same way as RDF and RDFS terms.
- Donald Trump and Robert Mueller are two different persons.
- Actually, all the names mentioned in connection with the Muelle investigation refer to different people.
- All these people are foaf:Persons as well as schema:Persons (they are http://xmlns.com/foaf/0.1/Person and http://schema.org/Person).
- Tax evation is a kind of bank and tax fraud.
- The Donald Trump involved in the Mueller investigation is dbpedia:Donald_Trump and not dbpedia:Donald_Trump_Jr. .
- Congress, FBI and the Mueller investigation are foaf:Organizations.
- Nothing can be both a person and an organization.
- Leading an organization is a way of being involved in an organization.
- Being a campaign manager or an advisor for is a way of supporting someone.
- Donald Trump is a politician and a Republican.
- A Republican politician is both a politician and a Republican.
- Harder: Someone who supports a Republican politician is a Republican.
Task 2
g.add((ex:Paul_Manafort, ex:hasBusinessPartner ex:Rick_Gates))
g.add((ex:Michael_Flynn ex:adviserTo ex:Donald_Trump))
g.add((ex:Rick_Gates_Lying ex:wasLyingTo ex:FBI))
g.add((ex:Donald_Trump ex:presidentOf ex:USA))
g.add((ex:USA ex:hasPpresident ex:Donald_Trump))
Look through the predicates (properties) above and add new triples for each one that describes them as any of the following: a reflexive , irreflexive, symmetric, asymmetric, transitive, functional, or an inverse functional property. e.g
g.add((ex.wasLyingTo, RDF.type, OWL.IrreflexiveProperty))
Task 3
Print/Serialize the ontology. Then use owlrl as below to infer additional triples. Can you spot the many inferences?
DeductiveClosure(OWLRL_Semantics).expand(graph)
Finally write the ontology to a XML file, and visualise it using https://service.tib.eu/webvowl/. The purpose of WebVOWL is to visualise classes and their properties, so the individuals may not show.
Useful Reading
Triples you can extend for the tasks
Turtle
@prefix ex: <http://example/org#> .
ex:Mueller_Investigation ex:involved ex:George_Papadopoulos,
ex:Michael_Cohen,
ex:Michael_Flynn,
ex:Paul_Manafort,
ex:Rick_Gates,
ex:Roger_Stone ;
ex:leadBy ex:Robert_Mueller .
ex:Michael_Cohen ex:attorneyFor ex:Donald_Trump ;
ex:pleadedGuilty ex:Michael_Cohens_Lying .
ex:Michael_Cohens_Lying a ex:Lying ;
ex:wasLyingAbout ex:Trump_RealEstateDeal ;
ex:wasLyingTo ex:Congress .
ex:Michael_Flynn ex:adviserTo ex:Donald_Trump ;
ex:negotiatedAgreement ex:PleaAgreement ;
ex:pleadedGuilty ex:Michael_Flynns_Lying .
ex:Michael_Flynns_Lying a ex:Lying ;
ex:wasLyingTo ex:FBI .
ex:Paul_Manafort ex:campaignManager ex:Donald_Trump ;
ex:chargedWith ex:ForeignLobbying,
ex:MoneyLaundering,
ex:TaxEvasion ;
ex:convictedFor ex:BankAndTaxFraud ;
ex:hasBusinessPartner ex:Rick_Gates ;
ex:negotiatedAgreement ex:PleaAgreement ;
ex:pleadedGuilty ex:Conspiracy ;
ex:sentencedTo ex:Prison .
ex:Rick_Gates_Lying a ex:Lying ;
ex:wasLyingTo ex:FBI .
ex:Rick_Gates ex:chargedWith ex:ForeignLobbying,
ex:MoneyLaundering,
ex:TaxEvasion ;
ex:pleadedGuilty ex:Conspiracy,
ex:Rick_Gates_Lying .