Ontology Documentation

DREAM-KG Ontology

A lightweight documentation page for the DREAM-KG semantic model, describing how homeless-service data, service locations, languages, costs, availability, reviews, and geospatial information are represented as RDF triples.

Metadata

Ontology Specification Draft

Ontology URI

https://purl.org/okn/frink/kg/dreamkg/

Primary vocabulary

Schema.org, GeoSPARQL, SKOS, OWL, RDF, RDFS, XSD

Knowledge graph focus

Homeless services, service categories, access conditions, location, reviews, and community context.

Abstract

Abstract

The DREAM-KG ontology provides a semantic layer for integrating public and provider-facing information about services for people experiencing homelessness. It models each service as a schema:Service and links it to categories, audiences, languages, costs, availability, contact channels, textual descriptions, locations, reviews, ratings, and geospatial geometries.

The ontology is intentionally lightweight: rather than creating a large custom vocabulary, DREAM-KG wraps and reuses widely adopted terms from Schema.org and GeoSPARQL. This makes the graph easier to publish, query, extend, and connect with external resources such as ZIP-code areas, language identifiers, and civic datasets.

Introduction

Motivation and Goals

Homeless-service information is scattered across provider websites, service directories, map records, reviews, eligibility descriptions, and local civic datasets. DREAM-KG organizes these heterogeneous records into a connected knowledge graph so that users and downstream AI systems can reason over service type, access constraints, location, language support, operating hours, and surrounding community context.

The ontology is designed around four goals:

  • Service discovery: represent services, names, categories, contact methods, and websites.
  • Accessibility reasoning: encode eligibility, cost, availability, language support, and operating hours.
  • Spatial grounding: connect services to places, coordinates, ZIP-code areas, and GeoSPARQL geometries.
  • Trust and context: attach reviews, rating values, social links, and local civic context such as crime data.
Namespace declarations

Namespaces Used in DREAM-KG

PrefixNamespace URIUse
:https://purl.org/okn/frink/kg/dreamkg/DREAM-KG resources
schemahttp://schema.org/Service, Place, ContactPoint, Review, Rating, category, name, telephone, etc.
geohttp://www.opengis.net/ont/geosparql#Geometry and WKT literals
kwgohttp://stko-kwg.geog.ucsb.edu/lod/ontology/Spatial relation vocabulary
kwgrhttp://stko-kwg.geog.ucsb.edu/lod/resource/External ZIP-code area resources
skoshttp://www.w3.org/2004/02/skos/core#External links such as exact language matches
owlhttp://www.w3.org/2002/07/owl#Ontology and class/property declarations
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#RDF typing
rdfshttp://www.w3.org/2000/01/rdf-schema#Labels, comments, subclass relationships
xsdhttp://www.w3.org/2001/XMLSchema#String, decimal, URI, and typed literals
Overview

DREAM-KG Ontology Overview

16Main reused or local classes
18+Object properties used in mappings
24+Data properties used for service attributes
30+OBDA mappings from relational tables/views

Classes

  • schema:Service
  • schema:CategoryCode
  • schema:ServiceChannel
  • schema:ContactPoint
  • schema:Place
  • schema:TextObject
  • schema:Review
  • schema:Rating
  • schema:Audience
  • schema:Organization
  • schema:OpeningHoursSpecification
  • schema:AdministrativeArea
  • schema:Question
  • schema:Answer
  • :ServiceGeometry
  • geo:Geometry

Major Property Groups

Identity
schema:identifier schema:name schema:sameAs schema:url
Classification
schema:category schema:codeValue schema:inCodeSet skos:exactMatch
Access
schema:conditionsOfAccess schema:areaServed schema:hoursAvailable schema:opens schema:closes
Contact and channel
schema:availableChannel schema:serviceUrl schema:servicePhone schema:telephone
Spatial
schema:serviceLocation schema:containedInPlace kwgo:sfWithin geo:asWKT
Reputation
schema:review schema:reviewBody schema:reviewRating schema:ratingValue
Description

Conceptual Model

The central node is schema:Service. Each service is connected to structured category nodes, description nodes, service channels, contact points, location nodes, review nodes, and geometry nodes.

CategoryCode
service, cost, availability, language
schema:Service
ServiceChannel
Aunt Bertha / Provider
TextObject
description + eligibility
Review + Rating
ServiceChannel
Aunt Bertha / Provider
Place + Geometry
address, ZIP, WKT
Language / Audience
accessibility categories
Cross-reference

Classes, Object Properties, and Data Properties

Classes

  • schema:Service — community service.
  • schema:CategoryCode — controlled category.
  • schema:ServiceChannel — access channel.
  • schema:ContactPoint — phone contact.
  • schema:Place — service location.
  • schema:TextObject — description text.
  • schema:Review — user review.
  • schema:Rating — rating value.
  • schema:Audience — target users.
  • schema:Organization — service provider.
  • schema:OpeningHoursSpecification — opening hours.
  • schema:AdministrativeArea — geographic area.
  • schema:Question — FAQ question.
  • schema:Answer — FAQ answer.
  • geo:Geometry — spatial geometry.
  • :ServiceGeometry — service point geometry.

Object Properties

  • schema:category — links services to category codes.
  • schema:availableChannel — links services to access channels.
  • schema:serviceLocation — links provider channel to location.
  • schema:servicePhone — links provider channel to phone contact.
  • schema:description — links a service to a text object.
  • schema:review — links a service to reviews.
  • geo:hasGeometry — attach geometry to a place.
  • geo:defaultGeometry — attach geometry to a place.

Data Properties

  • schema:abstract — Brief summary.
  • schema:address — Street address.
  • schema:areaServed — Service area.
  • schema:audienceType — Audience type.
  • schema:closes — Closing time.
  • schema:codeValue — Category value.
  • schema:conditionsOfAccess — Access rules.
  • schema:dayOfWeek — Service day.
  • schema:disambiguatingDescription — Source label.
  • schema:hasMap — Map URL.
  • schema:identifier — Service ID.
  • schema:isAccessibleForFree — Free access.
  • schema:latitude — Latitude.
  • schema:longitude — Longitude.
  • schema:name — Display name.
  • schema:opens — Opening time.
  • schema:ratingValue — Rating score.
  • schema:reviewBody — Review text.
  • schema:sameAs — External link.
  • schema:serviceUrl — Service URL.
  • schema:subjectOf — Related content.
  • schema:telephone — Phone number.
  • schema:text — Text content.
  • schema:url — Web URL.
  • geo:asWKT — WKT geometry.
  • geo:lat — Geo latitude.
  • geo:long — Geo longitude.
OBDA Mappings

Relational-to-RDF Mapping Summary

DREAM-KG uses Ontop-style OBDA mappings to transform relational tables and SQL views into RDF triples. The most important mappings are summarized below.

Mapping groupSource table/viewGenerated RDF pattern
Servicesaunt_bertha, ab_ids:service/{service_id} a schema:Service
Main / other service categoriesmain_services, other_servicesschema:category :category/service/main/{name}
Language categorieslanguages, language_codesschema:category :category/language/{language}, plus Lexvo links
Audience categoriesservingschema:category :category/audience/{audience}
Cost and availabilityaunt_berthaschema:category :category/cost/{cost}, :category/availability/{availability}
Description and eligibilityeligibility, aunt_berthaschema:TextObject with schema:text and schema:conditionsOfAccess
Channels and phoneab_ids, aunt_berthaschema:ServiceChannel and schema:ContactPoint
Location and geometryaunt_bertha, ab_idsschema:Place, ZIP-code links, and geo:Geometry
Reviews and ratingsgoogle_reviews, review_service_idsschema:Review, schema:Rating, schema:reviewBody
Data Sources

Source Tables and SQL Views

aunt_bertha

Main service directory table containing service names, URLs, descriptions, contact information, location fields, languages, cost, availability, hours, ratings, and service type.

ab_ids

Extracts Aunt Bertha service IDs from service URLs and serves as the central join key for RDF resource IRIs.

main_services

Normalize list-like service category fields into one row per service-category pair.

other_services

Normalize list-like service category fields into one row per service-category pair.

languages

Normalizes language values and connects them to ISO-639 identifiers and optional NCIT codes.

google_reviews

Stores review IDs, stars, review text, author IDs, and service names for reputation-related triples.

phila_crime

Stores Philadelphia crime incidents with time, category, coordinate, and ZIP-code attributes for future neighborhood-safety integration.

Examples

Example RDF Patterns

The following Turtle-style examples show the intended shape of DREAM-KG triples.

:service/12345 a schema:Service ;
    schema:identifier "12345"^^xsd:string ;
    schema:name "Example Shelter Service"^^xsd:string ;
    schema:category :category/service/main/Shelter,
                    :category/language/English,
                    :category/cost/Free ;
    schema:availableChannel :service/channel/AB-12345,
                            :service/channel/P-12345 ;
    schema:description :service/description/12345 ;
    schema:ratingValue "4.5"^^xsd:decimal .
:service/location/12345 a schema:Place ;
    schema:address "123 Main St, Philadelphia, PA"^^xsd:string ;
    schema:latitude "39.9526"^^xsd:decimal ;
    schema:longitude "-75.1652"^^xsd:decimal ;
    schema:containedInPlace kwgr:zipCodeArea.19104 ;
    geo:hasGeometry :service/geometry/12345 .

:service/geometry/12345 a geo:Geometry ;
    geo:asWKT "POINT(-75.1652 39.9526)"^^geo:wktLiteral .