
Thomas Schmidt schmidt@informatik. haw-hamburg.de Semantic Web Technologies: Examples • Representing Knowledge: Modelling Thesauri and such • Web Ontology Language for Services (OWL-S) • The Semantic of Hyperlinks Thomas Schmidt schmidt@informatik. Representing Knowledge haw-hamburg.de • In the Semantic Web we want to discover and apply knowledge … • More specifically: we want to built ontologies from existing knowledge and use these for inference … • Practical approach: - Take available taxonomies, thesauri, etc. and formulate them in OWL - Use reasoner to apply OWL model • Inject knowledge into applications Thomas Schmidt schmidt@informatik. haw-hamburg.de Example: ACM Computing Classification System Thomas Schmidt schmidt@informatik. Simple RDFS Approach: haw-hamburg.de ACM (XML): <node id="B." label="Hardware"> <isComposedBy> Hardware <node id="B.0" label="GENERAL" /> <node id="B.1" label="CONTROL STRUCTURES "> rdfs:subClassOF <isComposedBy> <node id="B.1.1" label="Control Design Styles"> Control OWL: Structures <owl:Class rdf:ID=“CONTROL STRUCTURES"> rdfs:subClassOF <rdfs:subClassOf rdf:resource=“#Hardware”/> </owl:Class> … Control Design Styles Thomas Schmidt schmidt@informatik. ACM Relations haw-hamburg.de Hardware <node id="B." label="Hardware"> <isComposedBy> <node id="B.0" label="GENERAL" /> rdfs:subClassOF <node id="B.1" label="CONTROL STRUCTURES "> <isRelatedTo> <node id="D.3.2" label=“Languages" /> Control </isRelatedTo> Structures <isComposedBy> <node id="B.1.1" label="Control Design Styles"> rdfs:subClassOF Control Languages ACM:isRelatedTo Design Styles Thomas Schmidt schmidt@informatik. Additional Property: “Relation” haw-hamburg.de • Not expressible in a class hierarchy • Can be characterised in OWL & applied • transitive, symmetric … • But: class-valued (≠ rdf:type …) ⇒ OWL Full needed ⇒ Expression of simple thesauri problematic in OWL Thomas Schmidt schmidt@informatik. A Simpler Example haw-hamburg.de Books on Lions: :TheAfricanLionBook Typical problem: a :Book ; :bookTitle "The African Lion" ; dc:subject :AfricanLion :BookAboutAnimals a owl:Class ; rdfs:subClassOf :AfricanLion [ a owl:Restriction ; a owl:Class; owl:someValuesFrom :AnimalClass ; rdfs:subClassOf :Lion owl:onProperty dc:subject ] Thomas Schmidt schmidt@informatik. OWL DL Approaches (I) haw-hamburg.de Individuals in parallel Now: :LionsLifeInThePrideBook :BookAboutAnimals a :Book ; a owl:Class ; :bookTitle "Lions: Life in the Pride" ; rdfs:subClassOf dc:subject :LionSubject [ a owl:Restriction ; owl:someValuesFrom :Animal ; owl:onProperty dc:subject ] Thomas Schmidt schmidt@informatik. OWL DL Approaches (II) haw-hamburg.de Unspecified class members :LionsLifeInThePrideBook a :BookAboutAnimals ; [ a owl:Restriction ; owl:onProperty dc:subject ; Now: owl:someValuesFrom :Lion ]; BookAboutAnimals predefined :bookTitle "Lions: Life in the Pride" ; http://www.w3.org/TR/swbp-classes-as-values/ Thomas Schmidt Use case: schmidt@informatik. haw-hamburg.de ACM Computing Classification System A. • ACMCCS 1998 (latest version) General Literature http://www.acm.org/class A.0 • Widely used in classification of General conference papers and articles in A.0.0 computer sciences. Biographies/ autobiographies • Structure: A.0.1 Conference Proceedings – 11 first level nodes A.0.2 – Each list of children for a first or General literary works second level node contains at A.1 least one General (0) node and Introductory and Survey one Miscellaneous (m) node. A.2 – Contains ‘see also’ references Reference between certain nodes A.m Miscellaneous • Represent in processable Ontology (not OWL Full) Thomas Schmidt schmidt@informatik. Use case: Scenario haw-hamburg.de Idea • Classify content according to ACMCCS98 • Enhance search mechanisms by using ACMCCS98 scheme to discover related information ToDo • Add classifier to content • Build ontology representation of ACMCCS98 • Implement application logic ☺ Thomas Schmidt schmidt@informatik. SKOS haw-hamburg.de • SKOS = Simple Knowledge Organisation Systems (http://www.w3.org/2004/02/skos/) • Outcome of the European SWAD project • Meta Model for representing thesauri a.s. • Built as RDF Schema with OWL property characteristics • Semantic of ‘Concepts’ less restrictive than OWL classes • Provides association of (several) words or phrases to concepts Thomas Schmidt schmidt@informatik. SKOS haw-hamburg.de • OWL complaint framework for building concept schemes • Basic constructs: – skos:ConceptScheme – skos:Concept – skos:narrower – skos:broader – skos:related • Knowledge Entities are Concepts, grouped in a Concept Scheme http://www.w3.org/2001/sw/Europe/reports/thes/1.0/guide/ Thomas Schmidt schmidt@informatik. Expressing ACMCCS98 in SKOS haw-hamburg.de <skos:Concept rdf:about=“C.2.6"> <skos:externalID>C.2.6</skos:externalID> <skos:prefLabel xml:lang="en"> Internetworking </skos:prefLabel> <skos:inScheme rdf:resource=“." /> <skos:narrower rdf:resource="C.2.6.1" /> <skos:narrower rdf:resource="C.2.6.2" /> <skos:related rdf:resource="C.2.2" /> </skos:Concept> Thomas Schmidt schmidt@informatik. ☺ A part of the RDF data model haw-hamburg.de Thomas Schmidt Code Fragments: schmidt@informatik. haw-hamburg.de Obtaining an Inference Model 1. Load SKOS schema (from the web): Model schema = ModelLoader.loadModel( "http://www.w3.org/2004/02/skos/core.rdf"); 2. Load data (ACM instances of SKOS from local file): Model data = ModelLoader.loadModel("acmskos.rdf“); 3. Obtain reasoner (SKOS is build upon OWL, so we need an OWL- capable reasoner): Reasoner reasoner = ReasonerRegistry.getOWLReasoner(); 4. Binding schema: reasoner = reasoner.bindSchema(schema); 5. Creating Inference Model: InfModel infModel = ModelFactory.createInfModel(reasoner, data); Thomas Schmidt schmidt@informatik. Getting the non-obvious haw-hamburg.de //get subject we want information on Resource subject = infModel.getResource( “http://www.acm.org/class/1998/B.8”); //get type of information (only ‘related’ concepts) Property predicate = infModel.getProperty( "http://www.w3.org/2004/02/skos/core#related"); //get iterator to all statements matching the given conditions StmtIterator it = infModel.listStatements(subject, predicate, null); //get perfLabel of the first statement returned String label = it.nextStatement().getProperty( “http://www.w3.org/2004/02/skos/core#prefLabel”).getString() Thomas Schmidt Use Case: schmidt@informatik. haw-hamburg.de eLearning Objects content augmentation Idea • LOM relations expressing connection between eLOs • Relations are qualified • Use LOM relations to suggest further content to the learner ToDo • Map LOM relations into an ontology • Implement application logic Thomas Schmidt Simple scheme schmidt@informatik. haw-hamburg.de representing LOM Relations • Relations referencing other eLearning Objects owl:ObjectProperties • All relation qualifiers have an inverse equivalent (eg. isBasisFor isBasedOn) owl:inverseOf • Qualifiers could be declared as being transitive owl:TransitivProperty <owl:ObjectProperty rdf:ID="isBasedOn"> <rdf:type rdf:resource="&owl;TransitiveProperty"/> <rdfs:range rdf:resource="#LearningObject"/> <rdfs:domain rdf:resource="#LearningObject"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="isBasisFor"> <owl:inverseOf rdf:resource="#isBasedOn" /> </owl:ObjectProperty> Thomas Schmidt schmidt@informatik. Sample Instances haw-hamburg.de <LearningObject rdf:about="&hylos;DexteReferModel/DexteReferModel.xml"> <title>Dexter</title> <isBasedOn rdf:resource="&hylos;MemexVBush1945/MemexVBush1945.xml"/> <hasPart rdf:resource="&hylos;DexteDefic/DexteDefic.xml" /> </LearningObject> <LearningObject rdf:about="&hylos;DexteStora/DexteStora.xml"> <title>Dexter Storage</title> <isPartOf rdf:resource="&hylos;DexteReferModel/DexteReferModel.xml" /> </LearningObject> <LearningObject rdf:about="&hylos;AmsteHyperModel/AmsteHyperModel.xml"> <title>Amsterdam Hypermedia Model</title> <isBasedOn rdf:resource="&hylos;DexteReferModel/DexteReferModel.xml"/> </LearningObject> Thomas Schmidt schmidt@informatik. Comfortable Vocabularies haw-hamburg.de • Use the Jena tool schemagen to build vocabulary (java) classes from OWL files (http://jena.sourceforge.net/how-to/schemagen.html) <owl:ObjectProperty rdf:ID="isBasisFor"> <owl:inverseOf rdf:resource="#isBasedOn" /> <rdfs:comment rdf:datatype="&xsd;string"> LOM.Relations.kind is basis for </rdfs:comment> </owl:ObjectProperty> /**<p>The ontology model that holds the vocabulary terms</p>*/ private static OntModel m_model = ModelFactory.createOntologyModel(ProfileRegistry.OWL_LANG ); /** <p>LOM.Relations.kind is basis for</p> */ public static final ObjectProperty isBasisFor = m_model.createObjectProperty( "http://hylos.fhtw-berlin.de/HylosLOM#isBasisFor" ); Thomas Schmidt schmidt@informatik. Getting something out of the Inference Modelhaw-hamburg.de 1. Create Inference Model: Model schema = ModelFactory.loadModel(“hylosLOM.owl”); Model data = ModelFactory.loadModel(“lomData.rdf”); Reasoner reasoner = ReasonerRegistry.createOWLReasoner(); reasoner = reasoner.bindSchema(schema); InfModel infModel = ModelFactory.createInfModel(reasoner, data); 2. Querying the model: Resource s = infModel.getResource(“…AmsteHyperModel.xml”); for( StmtIterator it = infModel.listStatements(s, HylosLOMVocab.isBasedOn, null); it.hasNext(); ) { System.out.println(PrintUtil.print(it.nextStatement()); } Thomas Schmidt schmidt@informatik. Rules – Basis for inference haw-hamburg.de • OWL reasoner is based upon specific rules which model the OWL assertions and constraints • Applied ruleset could be obtained from FBRuleReasoner
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages41 Page
-
File Size-