sesame: a generic architecture for storing and querying rdf and rdf schema jeen broekstra, arjohn...

24
Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema Jeen Broekstra, Arjohn Kampman, and Frank van Harmelen 정정정 2005.01.20

Upload: alison-charles

Post on 13-Dec-2015

236 views

Category:

Documents


0 download

TRANSCRIPT

Sesame:A Generic Architecture for Storing and Querying RDF and RDF Schema

Jeen Broekstra, Arjohn Kampman, and Frank van Harmelen

정홍석2005.01.20

2Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

Introduction

Sesame: architecture for storage and querying of RDF and RDFS information

allows persistent storage of RDF and RDFS provides access methods to export and

querying modules

3Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

1. The Need for an RDFS Query Language consideration for querying

at the syntactic level XML documents

not necessarily true non-XML syntaxes for RDF exist

at the structure level consist of a set of triples

at the semantic level constitute one or more graphs with partially

predefined semantics

4Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

참고 : XML 과 RDF 의 차이

XML 기반 RDF 기반중심 연구

방향웹에서 정보를 작성하고 교환하기 위한 문서 포맷 (문법중심 )

웹에서 정보에 관한 의미와 추론을 기술하기 위한 모델 (의미중심 )

활용을 위한연구방안

XML에 의미를 부여하기 위한 연구다양한 소스로부터 데이터 통합예 ) 도메인 온톨로지 (표준화 )

컴퓨터가 처리할 수 있도록 의미를 문법으로 표현하기 위한 연구예 ) RDF의 XML

serialization

두 언어의차이

Ordered Not ordered

클래스와 프로퍼티 구분이 있음예 ) 회사는 클래스에 회사이름은

회사에 대한 속성에 들어감

클래스와 프로퍼티가 혼용되어 사용됨예 ) 회사 , 회사 이름이 모두

엘리먼트에 나타날 수 있음

트리구조 그래프 구조관련 표준 XML 스키마 , XQuery RDF 스키마 , RQL

5Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

Querying at the Syntactic Level(1/3) RDF is kind of XML

any RDF model can be written down in XML notation. can query RDF using an XML query language

But RDF data model is different from the XML

tree structure very hard to query.

6Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

Querying at the Syntactic Level(2/3)

<rdf:Description rdf:about=http://www.enersearch.se/corporate/organisation/hohome.html><s:hasName>Hans Ottosson</s:hasName><s:worksFor rdf:resource=http://www.enersearch.com/>

</rdf:Description>

<rdf:Description rdf:about=http://www.enersearch.com><s:legalName>EnersearchAB</s:legalName><rdf:type rdf:resource=http://www.description.org/schema#Consortium/>

</rdf:Description>

…/hohome.html …/enersearch.html

“Hans Ottosson” “Enersearch AB”

worksFor

legalNamehasName

example

7Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

Querying at the Syntactic Level(3/3) RDF query language

graph: edges and nodes are labeled query

‘Give me all the relationships that exist between Hans Ottosson and Enersearch AB’

XML query language tree: nodes are labeled query: cannot query relation

Give me all the elements nested in a Description element with an about attribute with value “http://www.enersearch.../hohome.html”, of which the value of its resource attribute occurs elsewhere as the about attribute value of a Description element that has a nested element title with the value “Enersearch AB”

not unique syntax

8Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

1.2 Querying at the Structure Level RDF document represents a set of triples

query using triple SELECT ?x FROM somesource WHERE

(rdf::type ?x VicePresident) is this query possible?

SELECT ?x FROM somesource WHERE (rdf::type ?x Employee)

Employee Company

…/hohome.html …/enersearch.htmlworksFor type

subClassOf

VicePresident

worksFor

type

domain range

SCHEMADATA

9Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

1.3 Querying at the Semantic Level(1/2)

Means to query at the semantic level querying the full knowledge that a RDFS

description entails not just the explicitly asserted statements Compute and store the closure of the given graph

as a basis for querying Let a query processor infer new statements as

needed per query

10Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

1.3 Querying at the Semantic Level(2/2)

RQL(the RDF Query Language) defined by

core queries: Class, Property, subClassOf… basic filters: select-from-where Functional composition of queries

additional function query the structure of the subclass hierarchy

ex) subClassOf(Employee), subClassOf^(Employee) specify a path expression

ex) select Y, $Y from VicePresident{X}.worksFor{Y:$Y}

11Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

2. Sesame Architecture

Overview DBMS-independent

SAIL API different ways to

communicate protocol handler module

Query Module Admin Module Export Module

12Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

2.1 The RQL Query module

The Sesame version of RQL features better compliance to W3C specifications support for optional domain and range

restrictions Query parsing and optimization

13Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

2.2 The Admin Module

Two main functions incrementally adding RDF data/schema

information clearing a repository

partial delete function is not yet available

14Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

2.3 The RDF Export Module

Export the contents of a repository formatted in RDF

Able to selectively export the schema, the data, or both

15Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

A set of Java interfaces between three modules and repository

Main design principles Define a basic interface

storing, retrieving, deleting Abstract from the actual storage mechanism Be usable on low-end hardware like PDAs

but also offer enterprise level capability Be extendable to other RDF-based languages

like DAML+OIL

3.The SAIL API(1/3)

16Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

3.The SAIL API(2/3)

Other proposals under development share characteristics with

Jena toolkit Redland Application Framework

Weighted on the retrieval side offers methods

querying class property subsumption domain and range restriction

17Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

3.The SAIL API(3/3)

Sesame offers several implementations of the SAIL API SQL92SAIL

aim: to be able to connect to any RDBMS inference module for RDFS

concurrency handling support concurrency control for any type of

repository

18Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

4. Experiences

URL: http://www.openrdf.org Database platforms

PostgreSQL, MySQL Protocol

HTTP SAIL

SQL92SAIL, PostgreSQL SAIL, MySQL SAIL

19Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

4.2 RDFS in Practice

Ambiguity Formal Model Theory for RDF

the RDF Core Working Group specify model and schema semantics more

precisely and include a formal procedure for computing

20Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

4.3 PostgreSQL and SAIL

PostgreSQL object-relational DB

MS support sub-table relations between its tables

‘resources’ map all resources, literal values and ID

difficult to add table caching

21Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

4.3 MySQL

MySQL the database s

chema does not change when the RDFS changes advantage where RDFS is unstable

22Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

5. Future Work

Transaction Rollback Support support rollback when error occurs

Versioning Support support various platforms

Adding and Extending Functional Modules updating, partial deleting, visualization …

DAML+OIL Support

23Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema

24Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema