240 likes | 442 Views
Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema. Jeen Broekstra, Arjohn Kampman, and Frank van Harmelen 정홍석 2005.01.20. Introduction. Sesame : architecture for storage and querying of RDF and RDFS information allows persistent storage of RDF and RDFS
E N D
Sesame:A Generic Architecture for Storing and Querying RDF and RDF Schema Jeen Broekstra, Arjohn Kampman, and Frank van Harmelen 정홍석 2005.01.20
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 Sesame: 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 Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema
참고: XML과 RDF의 차이 Sesame: 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. Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema
Querying at the Syntactic Level(2/3) • example <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 worksFor hasName legalName “Hans Ottosson” “Enersearch AB” Sesame: 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 Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema
domain range Employee worksFor Company subClassOf VicePresident SCHEMA DATA type type worksFor …/hohome.html …/enersearch.html 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) Sesame: 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 Sesame: 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} Sesame: 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 Sesame: 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 Sesame: 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 Sesame: 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 Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema
3.The SAIL API(1/3) • 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 Sesame: 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 Sesame: 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 Sesame: 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 Sesame: 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 Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema
4.3 PostgreSQL and SAIL • PostgreSQL • object-relationalDBMS support sub-table relations between its tables • ‘resources’ map all resources, literal values and ID • difficult to add table • caching Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema
4.3 MySQL • MySQL • the database schema does not change when the RDFS changes advantage where RDFS is unstable Sesame: 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 Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema
Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema
Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema