Created
June 20, 2015 15:39
-
-
Save stetro/5266c9d020bd11025e08 to your computer and use it in GitHub Desktop.
Jena Reasoning
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apply plugin: 'java' | |
version = '1.0' | |
repositories { | |
mavenCentral() | |
} | |
dependencies { | |
compile('org.apache.jena:apache-jena:2.13.0') | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package de.fhkoeln.stetro.reasoning; | |
import com.hp.hpl.jena.rdf.model.*; | |
import com.hp.hpl.jena.reasoner.Reasoner; | |
import com.hp.hpl.jena.reasoner.ReasonerRegistry; | |
import com.hp.hpl.jena.reasoner.ValidityReport; | |
import com.hp.hpl.jena.util.FileManager; | |
import com.hp.hpl.jena.vocabulary.RDFS; | |
public class JenaMain { | |
public static final String NAMESPACE = "example.org/"; | |
public static final String TRAVEL_NAMESPACE = "http://www.owl-ontologies.com/travel.owl#"; | |
public static void main(String[] args) { | |
simpleJenaReasoningExample(); | |
extendedJenaReasoningExample(); | |
} | |
private static void extendedJenaReasoningExample() { | |
Model ontology = FileManager.get().loadModel("file:travel.owl"); | |
Resource fourSeasons = ontology.getResource(TRAVEL_NAMESPACE + "FourSeasons"); | |
Property hasRating = ontology.getProperty(TRAVEL_NAMESPACE + "hasRating"); | |
System.out.println(fourSeasons.getProperty(hasRating)); | |
Reasoner reasoner = ReasonerRegistry.getOWLReasoner(); | |
InfModel infOntology = ModelFactory.createInfModel(reasoner, ontology); | |
Resource infFourSeasons = infOntology.getResource(TRAVEL_NAMESPACE + "FourSeasons"); | |
Property infHasRating = infOntology.getProperty(TRAVEL_NAMESPACE + "hasRating"); | |
System.out.println(infFourSeasons.getProperty(infHasRating)); | |
} | |
private static void simpleJenaReasoningExample() { | |
// Build a trivial example data set | |
Model ontology = ModelFactory.createDefaultModel(); | |
Resource person = ontology.createResource(NAMESPACE + "Person"); | |
Resource cat = ontology.createResource(NAMESPACE + "Cat"); | |
Property hasPet = ontology.createProperty(NAMESPACE, "has_pet"); | |
Property likes = ontology.createProperty(NAMESPACE, "likes"); | |
ontology.add(hasPet, RDFS.subPropertyOf, likes); | |
person.addProperty(hasPet, cat); | |
ontology.write(System.out, "Turtle"); | |
System.out.println(); | |
System.out.println("Statement: " + person.getProperty(likes)); | |
System.out.println("Statement: " + person.getProperty(hasPet)); | |
System.out.println(); | |
Reasoner reasoner = ReasonerRegistry.getOWLReasoner(); | |
InfModel infOntology = ModelFactory.createInfModel(reasoner, ontology); | |
ValidityReport validate = infOntology.validate(); | |
System.out.println("Valide?: " + (validate.isValid() ? "Yes" : "No")); | |
System.out.println("Clean?: " + (validate.isClean() ? "Yes" : "No")); | |
Resource infPerson = infOntology.getResource(NAMESPACE + "Person"); | |
System.out.println(); | |
System.out.println("Statement: " + infPerson.getProperty(likes)); | |
System.out.println("Statement: " + infPerson.getProperty(hasPet)); | |
System.out.println(); | |
infOntology.write(System.out,"Turtle"); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" ?> | |
<rdf:RDF | |
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" | |
xmlns:owl="http://www.w3.org/2002/07/owl#" | |
xmlns:daml="http://www.daml.org/2001/03/daml+oil#" | |
xmlns:dc="http://purl.org/dc/elements/1.1/" | |
xmlns="http://www.owl-ontologies.com/travel.owl#" | |
xml:base="http://www.owl-ontologies.com/travel.owl"> | |
<owl:Ontology rdf:about=""> | |
<owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string" | |
>1.0 by Holger Knublauch (holger@smi.stanford.edu)</owl:versionInfo> | |
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string" | |
>An example ontology for tutorial purposes.</rdfs:comment> | |
</owl:Ontology> | |
<owl:Class rdf:ID="Sunbathing"> | |
<rdfs:subClassOf> | |
<owl:Class rdf:about="#Relaxation"/> | |
</rdfs:subClassOf> | |
</owl:Class> | |
<owl:Class rdf:ID="Accommodation"> | |
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string" | |
>A place to stay for tourists.</rdfs:comment> | |
</owl:Class> | |
<owl:Class rdf:ID="QuietDestination"> | |
<owl:equivalentClass> | |
<owl:Class> | |
<owl:intersectionOf rdf:parseType="Collection"> | |
<owl:Class rdf:ID="Destination"/> | |
<owl:Class> | |
<owl:complementOf> | |
<owl:Class rdf:about="#FamilyDestination"/> | |
</owl:complementOf> | |
</owl:Class> | |
</owl:intersectionOf> | |
</owl:Class> | |
</owl:equivalentClass> | |
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string" | |
>A destination that is not frequented by noisy families.</rdfs:comment> | |
</owl:Class> | |
<owl:Class rdf:ID="BackpackersDestination"> | |
<owl:equivalentClass> | |
<owl:Class> | |
<owl:intersectionOf rdf:parseType="Collection"> | |
<owl:Class rdf:about="#Destination"/> | |
<owl:Restriction> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasAccommodation"/> | |
</owl:onProperty> | |
<owl:someValuesFrom> | |
<owl:Class rdf:about="#BudgetAccommodation"/> | |
</owl:someValuesFrom> | |
</owl:Restriction> | |
<owl:Restriction> | |
<owl:someValuesFrom> | |
<owl:Class> | |
<owl:unionOf rdf:parseType="Collection"> | |
<owl:Class rdf:about="#Sports"/> | |
<owl:Class rdf:about="#Adventure"/> | |
</owl:unionOf> | |
</owl:Class> | |
</owl:someValuesFrom> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasActivity"/> | |
</owl:onProperty> | |
</owl:Restriction> | |
</owl:intersectionOf> | |
</owl:Class> | |
</owl:equivalentClass> | |
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string" | |
>A destination that provides budget accommodation and offers sport or adventure activities.</rdfs:comment> | |
</owl:Class> | |
<owl:Class rdf:ID="Sports"> | |
<owl:disjointWith> | |
<owl:Class rdf:about="#Adventure"/> | |
</owl:disjointWith> | |
<owl:disjointWith> | |
<owl:Class rdf:about="#Relaxation"/> | |
</owl:disjointWith> | |
<owl:disjointWith> | |
<owl:Class rdf:about="#Sightseeing"/> | |
</owl:disjointWith> | |
<rdfs:subClassOf> | |
<owl:Class rdf:ID="Activity"/> | |
</rdfs:subClassOf> | |
</owl:Class> | |
<owl:Class rdf:ID="Yoga"> | |
<rdfs:subClassOf> | |
<owl:Class rdf:about="#Relaxation"/> | |
</rdfs:subClassOf> | |
</owl:Class> | |
<owl:Class rdf:ID="BudgetAccommodation"> | |
<owl:equivalentClass> | |
<owl:Class> | |
<owl:intersectionOf rdf:parseType="Collection"> | |
<owl:Class rdf:about="#Accommodation"/> | |
<owl:Restriction> | |
<owl:someValuesFrom> | |
<owl:Class> | |
<owl:oneOf rdf:parseType="Collection"> | |
<AccommodationRating rdf:ID="OneStarRating"> | |
<owl:differentFrom> | |
<AccommodationRating rdf:ID="ThreeStarRating"> | |
<owl:differentFrom> | |
<AccommodationRating rdf:ID="TwoStarRating"> | |
<owl:differentFrom rdf:resource="#OneStarRating"/> | |
<owl:differentFrom rdf:resource="#ThreeStarRating"/> | |
</AccommodationRating> | |
</owl:differentFrom> | |
<owl:differentFrom rdf:resource="#OneStarRating"/> | |
</AccommodationRating> | |
</owl:differentFrom> | |
<owl:differentFrom rdf:resource="#TwoStarRating"/> | |
</AccommodationRating> | |
<AccommodationRating rdf:about="#TwoStarRating"/> | |
</owl:oneOf> | |
</owl:Class> | |
</owl:someValuesFrom> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasRating"/> | |
</owl:onProperty> | |
</owl:Restriction> | |
</owl:intersectionOf> | |
</owl:Class> | |
</owl:equivalentClass> | |
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string" | |
>Accommodation that has either one or two star rating.</rdfs:comment> | |
</owl:Class> | |
<owl:Class rdf:ID="LuxuryHotel"> | |
<rdfs:subClassOf> | |
<owl:Class rdf:about="#Hotel"/> | |
</rdfs:subClassOf> | |
<rdfs:subClassOf> | |
<owl:Restriction> | |
<owl:hasValue rdf:resource="#ThreeStarRating"/> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasRating"/> | |
</owl:onProperty> | |
</owl:Restriction> | |
</rdfs:subClassOf> | |
</owl:Class> | |
<owl:Class rdf:ID="FamilyDestination"> | |
<owl:equivalentClass> | |
<owl:Class> | |
<owl:intersectionOf rdf:parseType="Collection"> | |
<owl:Class rdf:about="#Destination"/> | |
<owl:Restriction> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasAccommodation"/> | |
</owl:onProperty> | |
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int" | |
>1</owl:minCardinality> | |
</owl:Restriction> | |
<owl:Restriction> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasActivity"/> | |
</owl:onProperty> | |
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int" | |
>2</owl:minCardinality> | |
</owl:Restriction> | |
</owl:intersectionOf> | |
</owl:Class> | |
</owl:equivalentClass> | |
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string" | |
>A destination with at least one accommodation and at least 2 activities.</rdfs:comment> | |
</owl:Class> | |
<owl:Class rdf:ID="Beach"> | |
<rdfs:subClassOf rdf:resource="#Destination"/> | |
</owl:Class> | |
<owl:Class rdf:ID="Hotel"> | |
<owl:disjointWith> | |
<owl:Class rdf:about="#BedAndBreakfast"/> | |
</owl:disjointWith> | |
<owl:disjointWith> | |
<owl:Class rdf:about="#Campground"/> | |
</owl:disjointWith> | |
<rdfs:subClassOf rdf:resource="#Accommodation"/> | |
</owl:Class> | |
<owl:Class rdf:ID="Museums"> | |
<rdfs:subClassOf> | |
<owl:Class rdf:about="#Sightseeing"/> | |
</rdfs:subClassOf> | |
</owl:Class> | |
<owl:Class rdf:ID="BudgetHotelDestination"> | |
<owl:equivalentClass> | |
<owl:Class> | |
<owl:intersectionOf rdf:parseType="Collection"> | |
<owl:Class rdf:about="#Destination"/> | |
<owl:Restriction> | |
<owl:someValuesFrom> | |
<owl:Class> | |
<owl:intersectionOf rdf:parseType="Collection"> | |
<owl:Class rdf:about="#BudgetAccommodation"/> | |
<owl:Class rdf:about="#Hotel"/> | |
</owl:intersectionOf> | |
</owl:Class> | |
</owl:someValuesFrom> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasAccommodation"/> | |
</owl:onProperty> | |
</owl:Restriction> | |
</owl:intersectionOf> | |
</owl:Class> | |
</owl:equivalentClass> | |
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string" | |
>A destination with a hotel that is also a budget accommodation.</rdfs:comment> | |
</owl:Class> | |
<owl:Class rdf:ID="City"> | |
<rdfs:subClassOf> | |
<owl:Class rdf:about="#UrbanArea"/> | |
</rdfs:subClassOf> | |
<rdfs:subClassOf> | |
<owl:Restriction> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasAccommodation"/> | |
</owl:onProperty> | |
<owl:someValuesFrom rdf:resource="#LuxuryHotel"/> | |
</owl:Restriction> | |
</rdfs:subClassOf> | |
</owl:Class> | |
<owl:Class rdf:ID="AccommodationRating"> | |
<owl:equivalentClass> | |
<owl:Class> | |
<owl:oneOf rdf:parseType="Collection"> | |
<AccommodationRating rdf:about="#OneStarRating"/> | |
<AccommodationRating rdf:about="#TwoStarRating"/> | |
<AccommodationRating rdf:about="#ThreeStarRating"/> | |
</owl:oneOf> | |
</owl:Class> | |
</owl:equivalentClass> | |
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string" | |
>Consists of exactly three individuals.</rdfs:comment> | |
</owl:Class> | |
<owl:Class rdf:ID="BedAndBreakfast"> | |
<owl:disjointWith rdf:resource="#Hotel"/> | |
<rdfs:subClassOf rdf:resource="#Accommodation"/> | |
<owl:disjointWith> | |
<owl:Class rdf:about="#Campground"/> | |
</owl:disjointWith> | |
</owl:Class> | |
<owl:Class rdf:ID="Campground"> | |
<rdfs:subClassOf> | |
<owl:Restriction> | |
<owl:hasValue rdf:resource="#OneStarRating"/> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasRating"/> | |
</owl:onProperty> | |
</owl:Restriction> | |
</rdfs:subClassOf> | |
<owl:disjointWith rdf:resource="#BedAndBreakfast"/> | |
<rdfs:subClassOf rdf:resource="#Accommodation"/> | |
<owl:disjointWith rdf:resource="#Hotel"/> | |
</owl:Class> | |
<owl:Class rdf:ID="Safari"> | |
<rdfs:subClassOf> | |
<owl:Class rdf:about="#Adventure"/> | |
</rdfs:subClassOf> | |
<rdfs:subClassOf> | |
<owl:Class rdf:about="#Sightseeing"/> | |
</rdfs:subClassOf> | |
</owl:Class> | |
<owl:Class rdf:ID="RuralArea"> | |
<rdfs:subClassOf rdf:resource="#Destination"/> | |
<owl:disjointWith> | |
<owl:Class rdf:about="#UrbanArea"/> | |
</owl:disjointWith> | |
</owl:Class> | |
<owl:Class rdf:ID="RetireeDestination"> | |
<owl:equivalentClass> | |
<owl:Class> | |
<owl:intersectionOf rdf:parseType="Collection"> | |
<owl:Class rdf:about="#Destination"/> | |
<owl:Restriction> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasAccommodation"/> | |
</owl:onProperty> | |
<owl:someValuesFrom> | |
<owl:Restriction> | |
<owl:hasValue rdf:resource="#ThreeStarRating"/> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasRating"/> | |
</owl:onProperty> | |
</owl:Restriction> | |
</owl:someValuesFrom> | |
</owl:Restriction> | |
<owl:Restriction> | |
<owl:someValuesFrom> | |
<owl:Class rdf:about="#Sightseeing"/> | |
</owl:someValuesFrom> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasActivity"/> | |
</owl:onProperty> | |
</owl:Restriction> | |
</owl:intersectionOf> | |
</owl:Class> | |
</owl:equivalentClass> | |
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string" | |
>A destination with at least one three star accommodation and sightseeing opportunities.</rdfs:comment> | |
</owl:Class> | |
<owl:Class rdf:ID="Relaxation"> | |
<owl:disjointWith rdf:resource="#Sports"/> | |
<owl:disjointWith> | |
<owl:Class rdf:about="#Sightseeing"/> | |
</owl:disjointWith> | |
<owl:disjointWith> | |
<owl:Class rdf:about="#Adventure"/> | |
</owl:disjointWith> | |
<rdfs:subClassOf rdf:resource="#Activity"/> | |
</owl:Class> | |
<owl:Class rdf:ID="Capital"> | |
<rdfs:subClassOf> | |
<owl:Restriction> | |
<owl:someValuesFrom rdf:resource="#Museums"/> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasActivity"/> | |
</owl:onProperty> | |
</owl:Restriction> | |
</rdfs:subClassOf> | |
<rdfs:subClassOf rdf:resource="#City"/> | |
</owl:Class> | |
<owl:Class rdf:ID="Hiking"> | |
<rdfs:subClassOf rdf:resource="#Sports"/> | |
</owl:Class> | |
<owl:Class rdf:ID="UrbanArea"> | |
<owl:disjointWith rdf:resource="#RuralArea"/> | |
<rdfs:subClassOf rdf:resource="#Destination"/> | |
</owl:Class> | |
<owl:Class rdf:ID="BunjeeJumping"> | |
<rdfs:subClassOf> | |
<owl:Class rdf:about="#Adventure"/> | |
</rdfs:subClassOf> | |
</owl:Class> | |
<owl:Class rdf:ID="Adventure"> | |
<owl:disjointWith rdf:resource="#Sports"/> | |
<rdfs:subClassOf rdf:resource="#Activity"/> | |
<owl:disjointWith> | |
<owl:Class rdf:about="#Sightseeing"/> | |
</owl:disjointWith> | |
<owl:disjointWith rdf:resource="#Relaxation"/> | |
</owl:Class> | |
<owl:Class rdf:ID="Contact"/> | |
<owl:Class rdf:ID="NationalPark"> | |
<rdfs:subClassOf rdf:resource="#RuralArea"/> | |
<rdfs:subClassOf> | |
<owl:Restriction> | |
<owl:someValuesFrom rdf:resource="#Campground"/> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasAccommodation"/> | |
</owl:onProperty> | |
</owl:Restriction> | |
</rdfs:subClassOf> | |
<rdfs:subClassOf> | |
<owl:Restriction> | |
<owl:someValuesFrom rdf:resource="#Hiking"/> | |
<owl:onProperty> | |
<owl:ObjectProperty rdf:about="#hasActivity"/> | |
</owl:onProperty> | |
</owl:Restriction> | |
</rdfs:subClassOf> | |
</owl:Class> | |
<owl:Class rdf:ID="Town"> | |
<rdfs:subClassOf rdf:resource="#UrbanArea"/> | |
</owl:Class> | |
<owl:Class rdf:ID="Sightseeing"> | |
<owl:disjointWith rdf:resource="#Sports"/> | |
<rdfs:subClassOf rdf:resource="#Activity"/> | |
<owl:disjointWith rdf:resource="#Relaxation"/> | |
<owl:disjointWith rdf:resource="#Adventure"/> | |
</owl:Class> | |
<owl:Class rdf:ID="Farmland"> | |
<rdfs:subClassOf rdf:resource="#RuralArea"/> | |
</owl:Class> | |
<owl:Class rdf:ID="Surfing"> | |
<rdfs:subClassOf rdf:resource="#Sports"/> | |
</owl:Class> | |
<owl:ObjectProperty rdf:ID="isOfferedAt"> | |
<rdfs:range rdf:resource="#Destination"/> | |
<rdfs:domain rdf:resource="#Activity"/> | |
<owl:inverseOf> | |
<owl:ObjectProperty rdf:about="#hasActivity"/> | |
</owl:inverseOf> | |
</owl:ObjectProperty> | |
<owl:ObjectProperty rdf:ID="hasRating"> | |
<rdfs:range rdf:resource="#AccommodationRating"/> | |
<rdfs:domain rdf:resource="#Accommodation"/> | |
</owl:ObjectProperty> | |
<owl:ObjectProperty rdf:ID="hasActivity"> | |
<owl:inverseOf rdf:resource="#isOfferedAt"/> | |
<rdfs:range rdf:resource="#Activity"/> | |
<rdfs:domain rdf:resource="#Destination"/> | |
</owl:ObjectProperty> | |
<owl:ObjectProperty rdf:ID="hasContact"> | |
<rdfs:range rdf:resource="#Contact"/> | |
<rdfs:domain rdf:resource="#Activity"/> | |
</owl:ObjectProperty> | |
<owl:ObjectProperty rdf:ID="hasAccommodation"> | |
<rdfs:range rdf:resource="#Accommodation"/> | |
<rdfs:domain rdf:resource="#Destination"/> | |
</owl:ObjectProperty> | |
<owl:ObjectProperty rdf:ID="hasPart"> | |
<rdfs:range rdf:resource="#Destination"/> | |
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/> | |
<rdfs:domain rdf:resource="#Destination"/> | |
</owl:ObjectProperty> | |
<owl:DatatypeProperty rdf:ID="hasCity"> | |
<rdfs:domain rdf:resource="#Contact"/> | |
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> | |
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> | |
</owl:DatatypeProperty> | |
<owl:DatatypeProperty rdf:ID="hasEMail"> | |
<rdfs:domain rdf:resource="#Contact"/> | |
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> | |
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> | |
</owl:DatatypeProperty> | |
<owl:FunctionalProperty rdf:ID="hasZipCode"> | |
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/> | |
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> | |
<rdfs:domain rdf:resource="#Contact"/> | |
</owl:FunctionalProperty> | |
<owl:FunctionalProperty rdf:ID="hasStreet"> | |
<rdfs:domain rdf:resource="#Contact"/> | |
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> | |
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> | |
</owl:FunctionalProperty> | |
<RuralArea rdf:ID="Woomera"/> | |
<Town rdf:ID="Coonabarabran"/> | |
<LuxuryHotel rdf:ID="FourSeasons"/> | |
<NationalPark rdf:ID="BlueMountains"/> | |
<Capital rdf:ID="Canberra"/> | |
<Beach rdf:ID="BondiBeach"/> | |
<Beach rdf:ID="CurrawongBeach"/> | |
<NationalPark rdf:ID="Warrumbungles"/> | |
<RuralArea rdf:ID="CapeYork"/> | |
<Capital rdf:ID="Sydney"> | |
<hasAccommodation rdf:resource="#FourSeasons"/> | |
<hasPart rdf:resource="#BondiBeach"/> | |
<hasPart rdf:resource="#CurrawongBeach"/> | |
</Capital> | |
<City rdf:ID="Cairns"/> | |
</rdf:RDF> | |
<!-- Created with Protege (with OWL Plugin 1.2 beta, Build 146) http://protege.stanford.edu --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment