Ontology Specification Draft
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.
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.
Namespaces Used in DREAM-KG
| Prefix | Namespace URI | Use |
|---|---|---|
: | https://purl.org/okn/frink/kg/dreamkg/ | DREAM-KG resources |
schema | http://schema.org/ | Service, Place, ContactPoint, Review, Rating, category, name, telephone, etc. |
geo | http://www.opengis.net/ont/geosparql# | Geometry and WKT literals |
kwgo | http://stko-kwg.geog.ucsb.edu/lod/ontology/ | Spatial relation vocabulary |
kwgr | http://stko-kwg.geog.ucsb.edu/lod/resource/ | External ZIP-code area resources |
skos | http://www.w3.org/2004/02/skos/core# | External links such as exact language matches |
owl | http://www.w3.org/2002/07/owl# | Ontology and class/property declarations |
rdf | http://www.w3.org/1999/02/22-rdf-syntax-ns# | RDF typing |
rdfs | http://www.w3.org/2000/01/rdf-schema# | Labels, comments, subclass relationships |
xsd | http://www.w3.org/2001/XMLSchema# | String, decimal, URI, and typed literals |
DREAM-KG Ontology Overview
Classes
Major Property Groups
schema:identifier
schema:name
schema:sameAs
schema:url
schema:category
schema:codeValue
schema:inCodeSet
skos:exactMatch
schema:conditionsOfAccess
schema:areaServed
schema:hoursAvailable
schema:opens
schema:closes
schema:availableChannel
schema:serviceUrl
schema:servicePhone
schema:telephone
schema:serviceLocation
schema:containedInPlace
kwgo:sfWithin
geo:asWKT
schema:review
schema:reviewBody
schema:reviewRating
schema:ratingValue
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.
Aunt Bertha / Provider
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.
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 group | Source table/view | Generated RDF pattern |
|---|---|---|
| Services | aunt_bertha, ab_ids | :service/{service_id} a schema:Service |
| Main / other service categories | main_services, other_services | schema:category :category/service/main/{name} |
| Language categories | languages, language_codes | schema:category :category/language/{language}, plus Lexvo links |
| Audience categories | serving | schema:category :category/audience/{audience} |
| Cost and availability | aunt_bertha | schema:category :category/cost/{cost}, :category/availability/{availability} |
| Description and eligibility | eligibility, aunt_bertha | schema:TextObject with schema:text and schema:conditionsOfAccess |
| Channels and phone | ab_ids, aunt_bertha | schema:ServiceChannel and schema:ContactPoint |
| Location and geometry | aunt_bertha, ab_ids | schema:Place, ZIP-code links, and geo:Geometry |
| Reviews and ratings | google_reviews, review_service_ids | schema:Review, schema:Rating, schema:reviewBody |
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.
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 .