Presentation Transcript
Introduction to RDF: Introduction to RDF Jonathan Borden
The Open Healthcare Group
www.openhealth.org the 'Resource Description Framework'
RDF: RDF Subject Object predicate
WWW c. 1989: WWW c. 1989
Model: Model A model is a set of statements
Statement := (predicate,subject,object)
Predicate is a resource
Subject is a resource
Object is either a resource or a literal
Object = Predicate(Subject)
Resource: Resource From RFC 2396:
Resource A resource can be anything that has identity. Familiar examples include an electronic document, an image, a service (e.g., 'today's weather report for Los Angeles'), and a collection of other resources. Not all resources are network 'retrievable'; e.g., human beings, corporations, and bound books in a library can also be considered resources. The resource is the conceptual mapping to an entity or set of entities, not necessarily the entity which corresponds to that mapping at any particular instance in time. Thus, a resource can remain constant even when its content---the entities to which it currently corresponds---changes over time, provided that the conceptual mapping is not changed in the process.
Resource: Resource A resource is identified by a URI
The resource identified by a URI may be abstract - I.e. not network retrievable
Resource is distinct from entity resolved at any particular time
http://www.openhealth.org/RDF/
URI reference: URI reference [absoluteURI | relativeURI] ['#' fragment-id]
Edge Labeled Directed Graphs: Edge Labeled Directed Graphs foo bar baz bop bing isa has wants plays (isa, foo, bar)
(has, bar, baz)
(plays, baz, bop)
(wants, baz, bing)
Node labeled Directed Graph: Node labeled Directed Graph root foo bar baz href x y x z element element element attribute attribute attribute attribute attribute andlt;rootandgt;
andlt;foo href='…' x='1' /andgt;
andlt;bar x='2' y='3'andgt;
andlt;baz z='aaa'/andgt;
andlt;/barandgt; aaa 1 3
RDF is...: RDF is... A standard syntax to represent (edge labeled) directed graphs in XML
RDF Model can be thought of as ..: RDF Model can be thought of as .. … a simplified XML Infoset
Semantic Networks: Semantic Networks A way to represent natural language circa 1970s
A format for organizing statements in a way that can be queries by computers
Semantic Networks: Semantic Networks vertebrate mammal bird canary ostrich heart spine hair fly wings walk doesn’t fly yellow isa isa isa has can freddie hugo isa
Semantic Networks: Semantic Networks 'Can freddy fly?'
'Does hugo have wings?'
'Does freddy have a spine?'
'Of all the canaries, how many live in cages?'
RDF Schemas: RDF Schemas Semantic networks on the Web
Nodes are identified by URIs
rdfs:Class
rdfs:Property
rdfs:subClassOf
rdf:type
Simplified Healthcare Schema: Simplified Healthcare Schema andlt;rdfs:Class rdf:ID='Provider'andgt;
andlt;rdfs:subClassOf rdf:resource='#Person'/andgt;
andlt;/rdfs:Classandgt;
Simplified Healthcare Schema: Simplified Healthcare Schema
Healthcare Schema: Healthcare Schema
Describing things with RDF: Describing things with RDF andlt;rdf:Description about='http://www.openhealth.org/RDF/rdfExtractify.xsl'andgt;
andlt;dc:authorandgt;Jonathan Bordenandlt;/dc:authorandgt;
andlt;dc:descriptionandgt;An XSLT based parser which converts an arbitrary XML document into RDF Statementsandlt;/dc:descriptionandgt;
andlt;/rdf:Descriptionandgt;
Describing things with RDF: Describing things with RDF http://www.openhealth.org/RDF/rdfExtractify.xsl An XSLT based ... Jonathan Borden description author
RDF Statements: RDF Statements andlt;rdf:Statementandgt;
andlt;rdf:subject resource='http://www.openhealth.org/RDF/rdfExtractify.xsl'andgt;
andlt;rdf:predicate resource='http://www.purl.org/dublin-core#author'andgt;
andlt;rdf:objectandgt;Jonathan Bordenandlt;/rdf:objectandgt;
andlt;/rdf:Statementandgt;
RSS: RDF Typed nodes: RSS: RDF Typed nodes andlt;rdf:RDFandgt;
andlt;channel rdf:about='http://www.xml.com/xml/news.rss'andgt;
andlt;titleandgt;The xml.com siteandlt;/titleandgt;
andlt;linkandgt;http://xml.com/pubandlt;/linkandgt;
andlt;descriptionandgt; XML.com features a rich mix of information and services for the XML community. andlt;/descriptionandgt;
andlt;/channelandgt;
andlt;/rdf:RDFandgt;
Typed nodes: Typed nodes http://www.xml.com/xml/news.rss rss:channel Class subClassOf type rss:title Property The xml.com site title domain
Rich/RDF Site Summary 1.0: Rich/RDF Site Summary 1.0 andlt;item rdf:about='http://xml.com/pub/2000/08/09/xslt/xslt.html' position='1'andgt;
andlt;inchannel rdf:resource='http://www.xml.com/xml/news.rss'/andgt;
andlt;titleandgt;Processing Inclusions with XSLTandlt;/titleandgt;
andlt;linkandgt;http://xml.com/pub/2000/08/09/xslt/xslt.htmlandlt;/linkandgt;
andlt;descriptionandgt;
Processing document inclusions with general XML tools can be problematic. This article proposes a way of preserving inclusion information through SAX-based processing.
andlt;/descriptionandgt;
andlt;/itemandgt;
RDF Collections: RDF Collections rdf:Bag - an unordered collection that may have repeated members
rdf:Seq - an ordered collection
rdf:Alt - a collection of alternates
rdf:Bag: rdf:Bag andlt;rdf:Bag ID='foo'andgt;
andlt;rdf:liandgt;The first memberandlt;/rdf:liandgt;
andlt;rdf:li rdf:resource='http://foo.org' /andgt;
andlt;rdf:liandgt;The third memberandlt;/rdf:liandgt;
andlt;/rdf:Bagandgt;
The Bag: The Bag foo The first member The third member http://foo.org _1 _2 _3
Xlink and RDF: Xlink and RDF Simple Xlink
xlink:arcrole := predicate
xlink:href := object
xlink:role := rdf:type of object
Resource Directory Description Language (RDDL): Resource Directory Description Language (RDDL) andlt;rddl:resource
id='example'
xlink:arcrole='…#schema-validation'
xlink:role='http://www.w3.org/2001/XMLSchema'
xlink:href='…myschema.xsd'andgt;
andlt;/rddl:resourceandgt;
Xlink as RDF: Xlink as RDF #example myschema.xsd XMLSchema rdf:type rddl:resource #schema rdf:type
XML Namespaces: XML Namespaces RDF and RDDL
XML Namespaces: XML Namespaces W3C Recommendation
Namespace name is a URI reference
Namespace URI might be dereferencable but what should it reference?
Namespace: Namespace Traditionally defined as a set of names
W3C recommendation defines a partition but no set
Resource Directory Description Language (RDDL): Resource Directory Description Language (RDDL) Proposed as a solution to what a namespace name URI ought reference
Both human and machine readable
XHTML Basic + XLink resources
Parsers available two weeks after initial proposal
An XML-DEV project
RDDL: RDDL Proposed January 2001
Adopted by namespaces such as XML Schema, Schematron, RSS, Examplotron, XSLT Extension framework, SWAG
http://www.rddl.org/
RDDL resource: RDDL resource andlt;rddl:resource
id='myschema'
xl:role='http://www.w3.org/2001/XMLSchema'
xl:arcrole='http://www.rddl.org/purposes#schema-validation' -- Purpose
xl:title='My XML Schema' -- Nature
andgt;
andlt;pandgt;This is my XML Schemaandlt;/pandgt;
andlt;/rddl:resourceandgt;
RDDL: RDDL Displays in popular HTML browsers
Defines a namespace as a formal set of terms (id='foo')
Referenced resource described by its intrinsic nature and purpose within the namespace
XSLT resource: XSLT resource andlt;rddl:resource
xl:role='http://www.w3.org/1999/XSL/Transform'
xl:arcrole='http://purl.org/rss/1.0'
xl:href='toRSS.xsl'
andgt;
Java resources: Java resources andlt;rddl:resource
xl:role='…application/java-archive'
xl:arcrole='…purposes/software#xslt-extension'
xl:href='thisNS-xslt-extension.jar'
andgt;andlt;pandgt;The xslt extensions bound to this namespace are packaged in a JARandlt;/pandgt;
andlt;/rddl:resourceandgt;
RDDL: RDDL Defines XML namespace as a set of resources
Simple model and syntax
namespace documentation is readable by people and programs
easy conversion to RDF
A simple 'Semantic Web' application
Warning!!: Warning!! Slightly advanced topics ahead. This is your last chance to exit.
Extracting RDF from Colloquial XML: Extracting RDF from Colloquial XML rdfExtractify.xsl
ID and about name subject nodes
rdf:resource names object nodes
Using XPointer to name anonymous nodes
‘Colloquial XML’: ‘Colloquial XML’ andlt;patient ID='Patient12345'andgt;
andlt;person.nameandgt;
andlt;givenandgt;Jonathanandlt;/givenandgt;
andlt;familyandgt;Bordenandlt;/familyandgt;
andlt;person.nameandgt;
andlt;primary.care.physicianandgt;
andlt;provider ...
RDF Graph: ‘anonymous’ nodes: RDF Graph: ‘anonymous’ nodes Person12345 Jonathan Borden person.name given family value value PersonName Literal Person
Using XPointer to name: Using XPointer to name Person12345 /1/1 /1/1/1 /1/1/2 Jonathan Borden person.name given family value value PersonName Literal Person
Using XPointer for collections: Using XPointer for collections #foo/1
#foo/2
#foo/3
RDF: RDF Model, XML Syntax and Schema
A semantic metadata framework
Everything has a URI
uses: uses good simple way to represent complex data (healthcare)
newsfeeds (RSS)
shared calendars
collaboration (RDFIG, ePinions)
ontologies (wordnet, UMLS)
'Semantic Web' stuff