intro to linked data: data modeling

96
An Introduction to Linked Data David Hyland-Wood University of Mary Washington Part 2 of 5 Data Modeling Monday, May 16, 2011

Upload: david-wood

Post on 31-Aug-2014

1.734 views

Category:

Education


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Intro to Linked Data: Data Modeling

An Introduction

toLinked Data

David Hyland-WoodUniversity of Mary Washington

Part 2 of 5Data Modeling

Monday, May 16, 2011

Page 2: Intro to Linked Data: Data Modeling

Data modeling without context

Monday, May 16, 2011

Page 3: Intro to Linked Data: Data Modeling

Modeling without Context

Monday, May 16, 2011

Page 4: Intro to Linked Data: Data Modeling

Modeling without Context• Model the Real World

Monday, May 16, 2011

Page 5: Intro to Linked Data: Data Modeling

Modeling without Context• Model the Real World

• Look for objects of interest

Monday, May 16, 2011

Page 6: Intro to Linked Data: Data Modeling

Modeling without Context• Model the Real World

• Look for objects of interest

• Put aside the immediate needs of any application

Monday, May 16, 2011

Page 7: Intro to Linked Data: Data Modeling

Modeling without Context• Model the Real World

• Look for objects of interest

• Put aside the immediate needs of any application

• Investigate how others are already modeling similar or related data

Monday, May 16, 2011

Page 8: Intro to Linked Data: Data Modeling

Modeling without Context• Model the Real World

• Look for objects of interest

• Put aside the immediate needs of any application

• Investigate how others are already modeling similar or related data

• These techniques allow for re-use and merging

Monday, May 16, 2011

Page 9: Intro to Linked Data: Data Modeling

Modeling without Context

Monday, May 16, 2011

Page 10: Intro to Linked Data: Data Modeling

Modeling without Context• Look for duplication (normalise)

Monday, May 16, 2011

Page 11: Intro to Linked Data: Data Modeling

Modeling without Context• Look for duplication (normalise)

• Think about time and events, as well as things

Monday, May 16, 2011

Page 12: Intro to Linked Data: Data Modeling

Modeling without Context• Look for duplication (normalise)

• Think about time and events, as well as things

• Consider how the data will change over time

Monday, May 16, 2011

Page 13: Intro to Linked Data: Data Modeling

Modeling without Context• Look for duplication (normalise)

• Think about time and events, as well as things

• Consider how the data will change over time

• Separate real-world (non-information resources) and online (information resources)

Monday, May 16, 2011

Page 19: Intro to Linked Data: Data Modeling

URIs:Naming Things

on the WebMonday, May 16, 2011

Page 20: Intro to Linked Data: Data Modeling

Naming Things on the Web• Use http:// URIs

There are other URIs, but http URIs can be used to get more information quickly and easily

• Use clean, stable URIsAbstract away implementation detailsEnsure they are reliable

• There are two types of resource, both require URIsInformation Resources — Web pages, images, CSS files etc.Non-Information Resources — People, places, events, concepts etc.

Monday, May 16, 2011

Page 21: Intro to Linked Data: Data Modeling

Distinguishing Resourceshttp://example.com/1969-059A ← Thing

http://example.com/1969-059A.rdf ← RDF data

http://example.com/1969-059A.html ← HTML page

http://example.com/1969-059A ← Thing

http://example.com/1969-059A/rdf ← RDF data

http://example.com/1969-059A/html ← HTML page

http://example.com/resource/1969-059A ← Thing

http://example.com/data/1969-059A ← RDF data

http://example.com/page/1969-059A ← HTML page

Monday, May 16, 2011

Page 22: Intro to Linked Data: Data Modeling

http://.../topics/physicsURIs provide names for resourcesYou can say things about resources

"Physics"Literal values are displayable labelsYou can't say more things about "Physics"

Use URIs

Monday, May 16, 2011

Page 23: Intro to Linked Data: Data Modeling

http://yours.com/spacecraft/1959-059AI own the domain, so I can control the meaning of the URII can also commit to its permanence and provide data at this address

http://theirs.com/spacecraft/1959-059AI don't own this domain, so I can't put any data thereThe domain owner may choose to use this URI to mean something different to me

Use Your Own Domain

Monday, May 16, 2011

Page 24: Intro to Linked Data: Data Modeling

http://.../spacecraft/1959-059AThe URI contains meaningful, natural or system-neutral keys.I can route these URIs to any implementation, meaning they can live foreverBonus: I'm not advertising my technology choices

http://.../index.aspx?id=3Nobody wants to know that you're using ASP.Net, reallyHow will you keep URIs the same when you change or upgrade your technology?

Use Neutral URIs

Monday, May 16, 2011

Page 25: Intro to Linked Data: Data Modeling

http://.../spacecraft/1969-059Aeveryone know what to do with http:// URIshttp:// URIs provide a quick, easy and scalable lookup mechanism

info:space/1969-059Ahttp://info-uri.infoinfo URIs require specialised knowledgeinfo URIs provide no lookup mechanism

Use http:// URIs

Monday, May 16, 2011

Page 26: Intro to Linked Data: Data Modeling

http://.../spacecraft/1969-059AAnyone working with the original data can 'guess' your URIsYou can visually debug, and remember, your own URIs

http://.../809c6eNobody can guess this

Use Natural Keys

Monday, May 16, 2011

Page 27: Intro to Linked Data: Data Modeling

http://.../spacecraft/1969-059AContainers help keep natural keys separateContainers provide a natural place to put lists

http://.../1969-059AWhat URI do I put a list of all the spacecraft at now?

Use Containers (sparingly)

Monday, May 16, 2011

Page 28: Intro to Linked Data: Data Modeling

http://.../statistics/2010/agenciesDates provide a way to show data from a period in timeMost useful for things like statistics, samples or readings

http://.../statistics/agenciesWhere am I going to put next year's statistics?

Use Dates (sparingly)

Monday, May 16, 2011

Page 29: Intro to Linked Data: Data Modeling

Distinguishing Resourceshttp://example.com/1969-059A.html#self ← Thing

http://example.com/1969-059A.html ← HTML page

Monday, May 16, 2011

Page 30: Intro to Linked Data: Data Modeling

Fragment Identifiers #• Useful, with caution

• Fragment identifiers are not sent to the server

• Limits server-side decision making

• Limits granularity of the response

• Sometimes used with schema when terms link to human-readable documentation on the Web.

Monday, May 16, 2011

Page 31: Intro to Linked Data: Data Modeling

Turtle:Terse RDF Triple

Language Monday, May 16, 2011

Page 32: Intro to Linked Data: Data Modeling

Turtle• Terse Triple Language (TTL)

http://www.w3.org/2007/02/turtle/primer/

• A human-readable notation for RDF

• Provides useful syntax for quickly hand-writing RDF

• Forms the basis of patterns in SPARQL

Monday, May 16, 2011

Page 34: Intro to Linked Data: Data Modeling

Monday, May 16, 2011

Page 40: Intro to Linked Data: Data Modeling

http://.../1969-059A

http://.../Spacecraft

a

Apollo 11 Command and Service Modulename

16 July 1969launched

28801.0mass

<http://example.com/spacecraft/1969-059A>

a space:Spacecraft ;

space:name "Apollo 11 Command and Service Module" ;

space:launched "1969-07-16"^^xsd:date ;

space:mass 28801.0 .

@prefix space: <http://example.com/space-schema/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

Monday, May 16, 2011

Page 41: Intro to Linked Data: Data Modeling

Example Turtle@prefix space: <http://example.com/space-schema/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://example.com/spacecraft/1969-059A> a space:Spacecraft ; space:name "Apollo 11 Command and Service Module" ; space:launched "1969-07-16"^^xsd:date ; space:mass 28801.0 .

Monday, May 16, 2011

Page 42: Intro to Linked Data: Data Modeling

http://.../1969-059A

http://.../Spacecraft

a

Apollo 11 Command and Service Modulename

16 July 1969launched

28801.0mass

<http://example.com/spacecraft/1969-059A>

a space:Spacecraft ;

space:name "Apollo 11 Command and Service Module" ;

space:launched "1969-07-16"^^xsd:date ;

@prefix space: <http://example.com/space-schema/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

space:mass 28801.0 .

Monday, May 16, 2011

Page 44: Intro to Linked Data: Data Modeling

http://.../1969-059A

http://.../Spacecraft

a

Apollo 11 Command and Service Modulename

16 July 1969launched

28801.0mass

http://.../cape+cana...

Cape Canaveral, United States name

launchsite

<http://example.com/spacecraft/1969-059A>

a space:Spacecraft ;

space:name "Apollo 11 Command and Service Module" ;

space:launched "1969-07-16"^^xsd:date ;

@prefix space: <http://example.com/space-schema/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

space:launchsite <http://.../cape+cana...> .

space:mass 28801.0 . space:mass 28801.0 ;

Monday, May 16, 2011

Page 45: Intro to Linked Data: Data Modeling

http://.../1969-059A

http://.../Spacecraft

a

Apollo 11 Command and Service Modulename

16 July 1969launched

28801.0mass

http://.../cape+cana...

Cape Canaveral, United States name

launchsite

<http://example.com/spacecraft/1969-059A>

a space:Spacecraft ;

space:name "Apollo 11 Command and Service Module" ;

space:launched "1969-07-16"^^xsd:date ;

@prefix space: <http://example.com/space-schema/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://.../cape+cana...> space:name "Cape Canaveral, United States"@en-us .

space:launchsite <http://.../cape+cana...> .

space:mass 28801.0 . space:mass 28801.0 ;

Monday, May 16, 2011

Page 46: Intro to Linked Data: Data Modeling

Example Turtle@prefix space: <http://example.com/space-schema/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://example.com/spacecraft/1969-059A> a space:Spacecraft ; space:name "Apollo 11 Command and Service Module" ; space:launched "1969-07-16"^^xsd:date ; space:mass 28801.0 ; space:launchsite <http://.../cape+cana...> .

<http://.../cape+cana...> space:name "Cape Canaveral, United States"@en-us .

Monday, May 16, 2011

Page 47: Intro to Linked Data: Data Modeling

RDF/XMLMonday, May 16, 2011

Page 48: Intro to Linked Data: Data Modeling

Example Turtle@prefix space: <http://example.com/space-schema/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://example.com/spacecraft/1969-059A> a space:Spacecraft ; space:name "Apollo 11 Command and Service Module" ; space:launched "1969-07-16"^^xsd:date ; space:mass 28801.0 ; space:launchsite <http://.../cape+cana...> .

<http://.../cape+cana...> space:name "Cape Canaveral, United States"@en-us .

Monday, May 16, 2011

Page 51: Intro to Linked Data: Data Modeling

Example RDF/XML<?xml version="1.0"?><rdf:RDF xmlns:space="http://example.com/space-schema/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description rdf:about="http://example.com/spacecraft/1969-059A"> <rdf:type rdf:resource="http://example.com/space-schema/Spacecraft"> <space:name> Apollo 11 Command and Service Module </space:name> <space:launched rdf:datatype="http://www.w3.org/2001/XMLSchema#date"> 1969-07-16 </space:launched> <space:mass rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"> 28801 </space:mass> <space:launchsite rdf:resource="http://.../cape+cana..." /> </rdf:Description> <rdf:Description rdf:about="http://.../cape+cana..."> <space:name xml:lang="en-us"> Cape Canaveral, United States </space:name> </rdf:Description>

</rdf:RDF>

Monday, May 16, 2011

Page 52: Intro to Linked Data: Data Modeling

Example RDF/XML

subject .

value .

property .

value .

property .

value .

property .

value .

property .

value .

property .

subject .

value .

property .

<?xml version="1.0"?><rdf:RDF xmlns:space="http://example.com/space-schema/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description rdf:about="http://example.com/spacecraft/1969-059A"> <rdf:type rdf:resource="http://example.com/space-schema/Spacecraft"> <space:name> Apollo 11 Command and Service Module </space:name> <space:launched rdf:datatype="http://www.w3.org/2001/XMLSchema#date"> 1969-07-16 </space:launched> <space:mass rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"> 28801 </space:mass> <space:launchsite rdf:resource="http://.../cape+cana..." /> </rdf:Description> <rdf:Description rdf:about="http://.../cape+cana..."> <space:name xml:lang="en-us"> Cape Canaveral, United States </space:name> </rdf:Description>

</rdf:RDF>

Monday, May 16, 2011

Page 53: Intro to Linked Data: Data Modeling

Example RDF/XML<?xml version="1.0"?><rdf:RDF xmlns:space="http://example.com/space-schema/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description rdf:about="http://example.com/spacecraft/1969-059A"> <rdf:type rdf:resource="http://example.com/space-schema/Spacecraft"> <space:name> Apollo 11 Command and Service Module </space:name> <space:launched rdf:datatype="http://www.w3.org/2001/XMLSchema#date"> 1969-07-16 </space:launched> <space:mass rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"> 28801 </space:mass> <space:launchsite rdf:resource="http://.../cape+cana..." /> </rdf:Description> <rdf:Description rdf:about="http://.../cape+cana..."> <space:name xml:lang="en-us"> Cape Canaveral, United States </space:name> </rdf:Description>

</rdf:RDF>

Monday, May 16, 2011

Page 54: Intro to Linked Data: Data Modeling

Example RDF/XML<?xml version="1.0"?><rdf:RDF xmlns:space="http://example.com/space-schema/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<space:Spacecraft rdf:about="http://example.com/spacecraft/1969-059A"> <rdf:type rdf:resource="http://example.com/space-schema/Spacecraft"> <space:name> Apollo 11 Command and Service Module </space:name> <space:launched rdf:datatype="http://www.w3.org/2001/XMLSchema#date"> 1969-07-16 </space:launched> <space:mass rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"> 28801 </space:mass> <space:launchsite rdf:resource="http://.../cape+cana..." /> </space:Spacecraft> <rdf:Description rdf:about="http://.../cape+cana..."> <space:name xml:lang="en-us"> Cape Canaveral, United States </space:name> </rdf:Description>

</rdf:RDF>

Monday, May 16, 2011

Page 55: Intro to Linked Data: Data Modeling

Example RDF/XML<?xml version="1.0"?><rdf:RDF xmlns:space="http://example.com/space-schema/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<space:Spacecraft rdf:about="http://example.com/spacecraft/1969-059A">

<space:name> Apollo 11 Command and Service Module </space:name> <space:launched rdf:datatype="http://www.w3.org/2001/XMLSchema#date"> 1969-07-16 </space:launched> <space:mass rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"> 28801 </space:mass> <space:launchsite> <rdf:Description rdf:about="http://.../cape+cana..."> <space:name xml:lang="en-us"> Cape Canaveral, United States </space:name> </rdf:Description> </space:launchsite> </space:Spacecraft>

</rdf:RDF>

Monday, May 16, 2011

Page 56: Intro to Linked Data: Data Modeling

Other RDF FormatsMonday, May 16, 2011

Page 57: Intro to Linked Data: Data Modeling

Writing RDF• Turtle

Easily human readable, to become a W3C Recommendation (standard)

• RDF/XMLMachine to Machine Transfer, W3C Recommendation (standard)

• N-TriplesOne statement per line, subset of Turtle, grep compatible

• RDF/JSONUseful for AJAX Applications and anything with else JSON support

• RDFaWriting RDF within HTML pages

Monday, May 16, 2011

Page 58: Intro to Linked Data: Data Modeling

Example Turtle@prefix space: <http://example.com/space-schema/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://example.com/spacecraft/1969-059A> a space:Spacecraft ; space:name "Apollo 11 Command and Service Module" ; space:launched "1969-07-16"^^xsd:date ; space:mass 28801.0 ; space:launchsite <http://.../cape+cana...> .

<http://.../cape+cana...> space:name "Cape Canaveral, United States"@en-us .

Monday, May 16, 2011

Page 59: Intro to Linked Data: Data Modeling

Example N-Triples<http://example.com/spacecraft/1969-059A> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/space-schema/Spacecraft> .<http://example.com/spacecraft/1969-059A> <http://example.com/space-schema/name> "Apollo 11 Command and Service Module" .<http://example.com/spacecraft/1969-059A> <http://example.com/space-schema/launched> "1969-07-16"^^<http://www.w3.org/2001/XMLSchema#date> .<http://example.com/spacecraft/1969-059A> <http://example.com/space-schema/mass> "28801"^^<http://www.w3.org/2001/XMLSchema#integer> .<http://example.com/spacecraft/1969-059A> <http://example.com/space-schema/launchsite> <http://.../cape+cana...> .<http://.../cape+cana...> <http://example.com/space-schema/name> "Cape Canaveral, United States"@en-us .

Monday, May 16, 2011

Page 60: Intro to Linked Data: Data Modeling

Example N-Triples<http://example.com/spacecraft/1969-059A> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/space-schema/Spacecraft> .<http://example.com/spacecraft/1969-059A> <http://example.com/space-schema/name> "Apollo 11 Command and Service Module" .<http://example.com/spacecraft/1969-059A> <http://example.com/space-schema/launched> "1969-07-16"^^<http://www.w3.org/2001/XMLSchema#date> .<http://example.com/spacecraft/1969-059A> <http://example.com/space-schema/mass> "28801"^^<http://www.w3.org/2001/XMLSchema#integer> .<http://example.com/spacecraft/1969-059A> <http://example.com/space-schema/launchsite> <http://.../cape+cana...> .<http://.../cape+cana...> <http://example.com/space-schema/name> "Cape Canaveral, United States"@en-us .

Monday, May 16, 2011

Page 61: Intro to Linked Data: Data Modeling

Example RDF/JSON{ "http://example.com/spacecraft/1969-059A" : { "http://example.com/space-schema/launched" : [ { "value" : "1969-07-16", "datatype" : "http://www.w3.org/2001/XMLSchema#date", "type" : "literal" } ], "http://example.com/space-schema/launchsite" : [ { "value" : "http://.../cape+cana...", "type" : "uri" } ], "http://example.com/space-schema/mass" : [ { "value" : "28801", "datatype" : "http://www.w3.org/2001/XMLSchema#integer", "type" : "literal" } ], "http://example.com/space-schema/name" : [ { "value" : "Apollo 11 Command and Service Module", "type" : "literal" } ], "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" : [ { "value" : "http://example.com/space-schema/Spacecraft", "type" : "uri" } ] }, "http://.../cape+cana..." : { "http://example.com/space-schema/name" : [ { "value" : "Cape Canaveral, United States", "lang" : "en-us", "type" : "literal" } ] }}

Monday, May 16, 2011

Page 62: Intro to Linked Data: Data Modeling

RDF SchemaMonday, May 16, 2011

Page 63: Intro to Linked Data: Data Modeling

Who has written a schema before?

Monday, May 16, 2011

Page 64: Intro to Linked Data: Data Modeling

Step 1.Forget what you think you know about schema

Monday, May 16, 2011

Page 65: Intro to Linked Data: Data Modeling

Differences• In a relational database:

• the schema is external to the data

• the schema comes first

• you must know the schema to query

• In RDF:

• the schema is in the data

• you may query at any time

Monday, May 16, 2011

Page 66: Intro to Linked Data: Data Modeling

The Open World• RDF Schema follow the Open World

assumption

• This model assumes that you may not have all of the information — that more things may be said elsewhere

• This means that missing isn't necessarily broken

• RDF Schema are not used for validation

Monday, May 16, 2011

Page 67: Intro to Linked Data: Data Modeling

If RDF Schema aren't for

validation, then what are they for?

Monday, May 16, 2011

Page 68: Intro to Linked Data: Data Modeling

RDF Validation• The Web of Data is about modeling for

re-use

• Reusability is provided by modeling outside of any one application's context

• Validation is specific to an application's context

Monday, May 16, 2011

Page 69: Intro to Linked Data: Data Modeling

RDF Schema• RDF Schema are descriptive

• They add additional information to the graph, through inference

• They add labels to properties and classes that make dynamic interfaces possible

• They provide human-readable descriptions to support schema re-use

• RDF Schema are written as RDF

Monday, May 16, 2011

Page 70: Intro to Linked Data: Data Modeling

Important• Properties are first class citizens

they're not hung off classes

• Classes are not OO classesthey do not have any behavior (methods)or properties...

Monday, May 16, 2011

Page 73: Intro to Linked Data: Data Modeling

Schema Re-use• RDF & RDFS

rdfs:label — labels for UI use

• Dublin CoreBibliographic Metadata — title, creator

• FOAFFriend of a Friend — people, organisations, creations, topics

• SIOCOnline communities — users, accounts, forums, blogs, microblogs

• GeoGeographical locations — latitude, longitude

• SKOSExisting taxonomies, thesauri and classification schemes

Monday, May 16, 2011

Page 74: Intro to Linked Data: Data Modeling

Schema Re-useProperty Schemaname (on Spacecraft)

launched

mass

launchsite

name (on Launchsite)

Monday, May 16, 2011

Page 75: Intro to Linked Data: Data Modeling

FOAF

Monday, May 16, 2011

Page 76: Intro to Linked Data: Data Modeling

Schema Re-useProperty Schemaname (on Spacecraft) foaf:name

launched space:launched

mass space:mass

launchsite space:launchsite

name (on Launchsite) foaf:name

Monday, May 16, 2011

Page 77: Intro to Linked Data: Data Modeling

RDF Schema@prefix owl: <http://www.w3.org/2002/07/owl#> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

@prefix space: <http://example.com/space-schema/> .

space:launchsite a rdf:Property ; rdfs:label "Launch Site"@en ; rdfs:description "The site from which something was launched, examples would be the launch site of a spacecraft, rocket or ship"@en ; rdfs:isDefinedBy space: .

space:mass a rdf:Property ; rdfs:label "Mass"@en ; rdfs:description "The mass of an object, measured in Kg" ; rdfs:isDefinedBy space: .

Monday, May 16, 2011

Page 80: Intro to Linked Data: Data Modeling

RDF Schema@prefix owl: <http://www.w3.org/2002/07/owl#> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

@prefix space: <http://example.com/space-schema/> .

space:launchsite a rdf:Property ; rdfs:label "Launch Site"@en ; rdfs:description "The site from which something was launched, examples would be the launch site of a spacecraft, rocket or ship"@en ; rdfs:isDefinedBy space: .

space:mass a rdf:Property ; rdfs:label "Mass"@en ; rdfs:description "The mass of an object, measured in Kg" ; rdfs:isDefinedBy space: .

space:Spacecraft a rdfs:Class ; rdfs:label "Spacecraft"@en ; rdfs:description "A Spacecraft is any man-made object intentionally launched into space" ; rdfs:isDefinedBy space: .

Monday, May 16, 2011

Page 81: Intro to Linked Data: Data Modeling

Typing with Ranges and Domains

• Properties can add class information to the subject and value either side of them

• A domain adds type information to the subject

• A range adds type information to the value

• Domains and ranges add type information from the schema to the instance data

Monday, May 16, 2011

Page 82: Intro to Linked Data: Data Modeling

A Launch Site is any place where something was

launched

Monday, May 16, 2011

Page 83: Intro to Linked Data: Data Modeling

RDF Schema@prefix owl: <http://www.w3.org/2002/07/owl#> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

@prefix space: <http://example.com/space-schema/> .

space:launchsite a rdf:Property ; rdfs:label "Launch Site"@en ; rdfs:description "The site from which something was launched, examples would be the launch site of a spacecraft, rocket or ship"@en ; rdfs:range space:Launchsite ; rdfs:isDefinedBy space: .

space:mass a rdf:Property ; rdfs:label "Mass"@en ; rdfs:description "The mass of an object, measured in Kg" ; rdfs:isDefinedBy space: .

space:Spacecraft a rdfs:Class ; rdfs:label "Spacecraft"@en ; rdfs:description "A Spacecraft is any man-made object intentionally launched into space" ; rdfs:isDefinedBy space: .

Monday, May 16, 2011

Page 86: Intro to Linked Data: Data Modeling

http://.../1969-059A

http://.../Spacecraft

a

http://.../cape+cana...

Cape Canaveral, United States name

launchsite

http://.../Launchsite

http://.../launchsite

Each property

is a resource

range

Monday, May 16, 2011

Page 87: Intro to Linked Data: Data Modeling

http://.../1969-059A

http://.../Spacecraft

a

http://.../cape+cana...

Cape Canaveral, United States name

launchsite

http://.../Launchsite

ahttp://.../launchsite

Each property

is a resource

range

http://.../cape+cana...

Monday, May 16, 2011

Page 88: Intro to Linked Data: Data Modeling

Property and Class Hierarchies

• Properties and classes can be more specialised versions of others

• This is done through rdfs:subPropertyOf and rdfs:subClassOf

Monday, May 16, 2011

Page 89: Intro to Linked Data: Data Modeling

LODE

Monday, May 16, 2011

Page 90: Intro to Linked Data: Data Modeling

RDF Schema@prefix lode: <http://linkedevents.org/ontology/> .@prefix owl: <http://www.w3.org/2002/07/owl#> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

@prefix space: <http://example.com/space-schema/> .

space:launchsite a rdf:Property ; rdfs:label "Launch Site"@en ; rdfs:description "The site from which something was launched, examples would be the launch site of a spacecraft, rocket or ship"@en ; rdfs:range space:Launchsite ; rdfs:subPropertyOf lode:atPlace ; rdfs:isDefinedBy space: .

space:mass a rdf:Property ; rdfs:label "Mass"@en ; rdfs:description "The mass of an object, measured in Kg" ; rdfs:isDefinedBy space: .

space:Spacecraft a rdfs:Class ; rdfs:label "Spacecraft"@en ; rdfs:description "A Spacecraft is any man-made object intentionally launched into space" ; rdfs:isDefinedBy space: .

Monday, May 16, 2011

Page 92: Intro to Linked Data: Data Modeling

http://.../1969-059A

http://.../Spacecraft

a

http://.../cape+cana...

Cape Canaveral, United States name

launchsite

http://.../Launchsite

ahttp://.../launchsite

range

http://.../atPlace

subPropertyOf

Monday, May 16, 2011

Page 93: Intro to Linked Data: Data Modeling

http://.../1969-059A

http://.../Spacecraft

a

http://.../cape+cana...

Cape Canaveral, United States name

launchsite

http://.../Launchsite

ahttp://.../launchsite

range

http://.../atPlace

subPropertyOf

atPlace

Each property

is a resource

Monday, May 16, 2011

Page 94: Intro to Linked Data: Data Modeling

Naming Convention• Properties are generally in camel-case

name; launchDate; launchVehicle; crewMember

• RDF Class names are usually in title casePerson; Spacecraft; Discipline

• Properties use the simplest name they canlaunch; time; destination

• Inverse properties often use 'of'name & nameOf; crewMember & crewMemberOf

Monday, May 16, 2011

Page 95: Intro to Linked Data: Data Modeling

Thanks to

• Rob Styles, Talis Group Ltd for his CC-BY licensed “Two Day Introduction to the Web of Data” slides and spacecraft example data.

Monday, May 16, 2011

Page 96: Intro to Linked Data: Data Modeling

This work is Copyright © 2010 David Hyland-WoodBased partially on CC-BY licensed content Copyright © 2010 Talis Systems Limited by Rob Styles. It is licensed under the Creative Commons Attribution 3.0 Unported License.Full details at: http://creativecommons.org/licenses/by/3.0/

You are free:

to Share — to copy, distribute and transmit the work

to Remix — to adapt the work

Under the following conditions:

Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).

• For any reuse or distribution, you must make clear to others the license terms of this work.• Any of the above conditions can be waived if you get permission from the copyright holder.• Nothing in this license impairs or restricts the author's moral rights.• Some Content in the work may be licensed under different terms, this is noted separately.

Monday, May 16, 2011