Semantic search in OGC Catalog Services for the Web

Web Ontology Language & CSW/ebRIM

Heikki Doeleman & Jose Garcia

GeoNetwork opensource

in this presentation

index

  • Introduction
  • OGC CSW/ebRIM
  • W3C Web Ontology Language (OWL)
  • OWL in ebRIM
  • Related work
  • Future work
  • Demo
  • Questions

introduction

introduction
Juliet Gwenzi's thesis
Juliet Gwenzi: "Enhancing Spatial web search with Semantic Web Technology and Metadata Visualisation", MA thesis Universiteit Twente, the Netherlands, March 2010
  • a method for integrating Semantic Web technology in existing GEO catalogs
  • richer discovery of data and services

semantic search vs. free text search

introduction
semantic search
  • domain model of meaning
  • hierarchical structure
  • relations: equivalence, inverse, domain-specific
  • knowledge-based
free text search
  • relevance ranking
  • fuzziness
  • typo recovery ("did you mean..")
  • based on structure and statistics
both styles are complimentary

index

  • Introduction
  • OGC CSW/ebRIM
  • W3C Web Ontology Language (OWL)
  • OWL in ebRIM
  • Related work
  • Future work
  • Demo
  • Questions

OASIS ebRIM

OASIS ebRIM

OGC CSW: Catalog Services for the Web

OGC CSW/ebRIM
  • CSW/ebRIM ISO Metadata Application Profile: ebRIM registry describes ISO19139 metadata
  • implemented in GeoNetwork opensource for European Space Agency's HMA program
  • discover, query metadata: GetRecords

index

  • Introduction
  • OGC CSW/ebRIM
  • W3C Web Ontology Language (OWL)
  • OWL in ebRIM
  • Related work
  • Future work
  • Demo
  • Questions

W3C Web Ontology Language (OWL)

Web Ontology Language
  • W3C standard
  • Vocabulary to describe a model of a domain
  • Classes, properties, individuals, relationships
  • Based on RDF
  • increasingly expressive sublanguages:
    • OWL Lite: Classification hierarchy and simple constraints
    • OWL DL: Description Logic: greater expressiveness, without losing computational completeness
    • OWL Full: Classes as instances, greater vocabulary, no computational guarantees

OWL example fragment

OWL example
<owl:Class rdf:about="#Storm"/>

<owl:Class rdf:about="#Flooding">
  <rdfs:subClassOf>
    <owl:Class rdf:about="#Threat"/>
  </rdfs:subClassOf>
  <owl:equivalentClass>
    <owl:Class rdf:ID="Floods"/>
  </owl:equivalentClass>
</owl:Class>

<owl:Class rdf:about="#Thunderstorm">
  <rdfs:subClassOf>
    <owl:Restriction>
	  <owl:onProperty>
	    <owl:ObjectProperty rdf:ID="associatedWith"/>
	  </owl:onProperty>
	  <owl:someValuesFrom>
	    <owl:Class rdf:ID="Flooding"/>
	  </owl:someValuesFrom>
    </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf rdf:resource="#Storm"/>
</owl:Class>
					

OWL and ebRIM

Web Ontology Language
  • Registry Extension Package
  • Add vocabulary: classifications, associations
  • Transform OWL document into Registry Package
  • Apply vocab to ebRIM ISO RegistryObjects
  • Enhance search using OWL vocab

OWL and ebRIM

OWL Registry Package
					
<rim:ClassificationNode code="#Storm" objectType="urn:owl:severe-weather:ebrim:ObjectType:#Storm" 
  lid="urn:owl:severe-weather:ebrim:ObjectType:#Storm" id="urn:owl:severe-weather:ebrim:ObjectType:#Storm" 
  parent="urn:owl:def:ebRIM-ClassificationScheme:SevereWeather">
  <rim:Name>
    <rim:LocalizedString value="#Storm"/>
  </rim:Name>
  <rim:Description>
    <rim:LocalizedString xml:lang="en" value="No description available"/>
  </rim:Description>
</rim:ClassificationNode>

<rim:ClassificationNode code="#Thunderstorm" objectType="urn:owl:severe-weather:ebrim:ObjectType:#Thunderstorm" 
  lid="urn:owl:severe-weather:ebrim:ObjectType:#Thunderstorm" 
  id="urn:owl:severe-weather:ebrim:ObjectType:#Thunderstorm" parent="urn:owl:def:ebRIM-ClassificationScheme:SevereWeather">
  <rim:Name>
    <rim:LocalizedString value="#Thunderstorm"/>
  </rim:Name>
  <rim:Description>
	<rim:LocalizedString xml:lang="en" value="No description available"/>
  </rim:Description>
</rim:ClassificationNode>

<rim:Association id="urn:owl:def:ebRIM-AssociationType:IsSubClassOf-#Thunderstorm-#Storm" sourceObject="#Thunderstorm" 
  associationType="urn:owl:def:ebRIM-AssociationType:IsSubClassOf" 
  targetObject="urn:owl:severe-weather:ebrim:ObjectType:#Storm"/>
					

CSW Discovery: GetRecords

OWL ebRIM Discovery
<csw:GetRecords ..namespaces omitted.. >
  <csw:Query typeNames="rim:ExtrinsicObject">
    <csw:ElementSetName>full</csw:ElementSetName>
    <csw:Constraint>
      <ogc:Filter>
        <ogc:And>
          <ogc:PropertyIsEqualTo>
            <ogc:PropertyName>/rim:ExtrinsicObject/@objectType</ogc:PropertyName>
            <ogc:Literal>urn:ogc:def:ebRIM-ObjectType:OGC:DataMetadata</ogc:Literal>
          </ogc:PropertyIsEqualTo>
          <ogc:And>
            <ogc:Or>
              <ogc:PropertyIsEqualTo>
                <ogc:PropertyName>/rim:ExtrinsicObject/rim:Classification/@classificationNode</ogc:PropertyName>
                <ogc:Literal>urn:owl:severe-weather:ebrim:ObjectType:#Storm</ogc:Literal>
              </ogc:PropertyIsEqualTo>
            </ogc:Or>
          </ogc:And>
        </ogc:And>
      </ogc:Filter>
    </csw:Constraint>
  </csw:Query>
</csw:GetRecords>
			

OWL-enhanced CSW Discovery: GetRecords with subclasses

OWL ebRIM Discovery
<csw:GetRecords ..namespaces omitted.. ">
  <csw:Query typeNames="rim:ExtrinsicObject">
    <csw:ElementSetName>full</csw:ElementSetName>
     lt;csw:Constraint>
      <ogc:Filter>
        <ogc:And>
          <ogc:PropertyIsEqualTo>
            <ogc:PropertyName>/rim:ExtrinsicObject/@objectType</ogc:PropertyName>
            <ogc:Literal>urn:ogc:def:ebRIM-ObjectType:OGC:DataMetadata</ogc:Literal>
          </ogc:PropertyIsEqualTo>
          <ogc:And>
            <ogc:Or>
              <ogc:PropertyIsEqualTo>
                <ogc:PropertyName>/rim:ExtrinsicObject/rim:Classification/@classificationNode</ogc:PropertyName>
                <ogc:Literal>urn:owl:severe-weather:ebrim:ObjectType:#Storm</ogc:Literal>
              </ogc:PropertyIsEqualTo>
              <ogc:PropertyIsEqualTo>
                <ogc:PropertyName>/rim:ExtrinsicObject/rim:Classification/@classificationNode</ogc:PropertyName>
                <ogc:Literal>urn:owl:severe-weather:ebrim:ObjectType:#Thunderstorm</ogc:Literal>
              </ogc:PropertyIsEqualTo>
              <ogc:PropertyIsEqualTo>
                <ogc:PropertyName>/rim:ExtrinsicObject/rim:Classification/@classificationNode</ogc:PropertyName>
                <ogc:Literal>urn:owl:severe-weather:ebrim:ObjectType:#Threat</ogc:Literal>
              </ogc:PropertyIsEqualTo>
              <ogc:PropertyIsEqualTo>
                <ogc:PropertyName>/rim:ExtrinsicObject/rim:Classification/@classificationNode</ogc:PropertyName>
                <ogc:Literal>urn:owl:severe-weather:ebrim:ObjectType:#TropicalCyclone</ogc:Literal>
              </ogc:PropertyIsEqualTo>
            </ogc:Or>
          </ogc:And>
        </ogc:And>
      </ogc:Filter>
     lt;/csw:Constraint>
  </csw:Query>
</csw:GetRecords>
			

index

  • Introduction
  • OGC CSW/ebRIM
  • W3C Web Ontology Language (OWL)
  • OWL in ebRIM
  • Related work
  • Future work
  • Demo
  • Questions

Related work

CSW ebRIM OWL: related work
  • Dogac et al.: Enriching ebXML Registries with OWL Ontologies
  • OASIS ebXML RegRep Profile for Web Ontology Language (draft)
  • OGC 09-010: OWL Application Profile of CSW (draft)

index

  • Introduction
  • OGC CSW/ebRIM
  • W3C Web Ontology Language (OWL)
  • OWL in ebRIM
  • Related work
  • Future work
  • Demo
  • Questions

Future work

CSW ebRIM OWL: related work
  • GeoNetwork OWL/CSW/ebRIM compliant to OASIS ebRIM OWL specification
  • Thesaurus Widget enhancements
  • Integration of CSW/ebRIM (and OWL/CSW/ebRIM) in standard GeoNetwork GUI

index

  • Introduction
  • OGC CSW/ebRIM
  • W3C Web Ontology Language (OWL)
  • OWL in ebRIM
  • Related work
  • Future work
  • Demo
  • Questions

Demo

Demo
Coming soon to http://geonetwork.tv/owl

index

  • Introduction
  • OGC CSW/ebRIM
  • W3C Web Ontology Language (OWL)
  • OWL in ebRIM
  • Related work
  • Future work
  • Demo
  • Questions

Questions

thank you !