This document discusses ZING, which is presented as the next generation of the Z39.50 protocol. It describes some problems with Z39.50, such as its complexity and lack of popularity with the web community. ZING aims to simplify Z39.50 while keeping its strengths, and consists of protocols like SRW, SRU, CQL and others. SRW is described as an XML-oriented search protocol that retains concepts from Z39.50 like result sets and abstract access points, but is simplified. CQL is presented as a common query language that can range from simple to complex, and includes features like context sets and relations.
Simplicity, ease of use, clean syntax and clear semantics are the characteristics of a good DSL that enable the users to focus on the problem. It is non-trivial to define, develop and maintain a DSL, especially using traditional compiler techniques. The Ruby programming language solves this issue to a certain extent.
Topics Covered
* Fundamentals of DSLs.
* Introduction of Ruby features for writing DSLs.
* Writing a DSL - The speakers' experience, with examples.
* Challenges and Issues.
Speaker Profiles:
Harshal Hayatnagarkar is a researcher at Tata Research Development and Design Centre, Pune (a division of TCS) with many years of experience in writing large-scale trading systems, DSLs and high performance machine learning systems. Currently he is writing a DSL for information visualization using Ruby.
Rohan Kini: is a Senior Developer at ThoughtWorks. He has been working with Ruby since 2005 on one of the earliest Ruby projects in India. He specializes in development of large-scale, web-based applications and scripting languages.
Presentación en PowerPoint que explica cómo añadir un servidor Z39.50 a su computadora para que pueda utilizarse con Horizon 74. Explica cómo conseguir el archivo y copiarlo a la computadora local y cómo utilizar la conexión para bajar registros bibliográficos a la base de datos.
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStackSaltStack
This talk will demonstrate how to use Salt Mine leveraging Salt grains to create several environments (parallel universes) that decide how to run the same Salt formulas with different outcomes. "Roles” will be defined in an OpenStack Marconi (queuing as a service) deployment and a few formulas will be shared to demonstrate the concept.
From Java to Parellel Clojure - Clojure South 2019Leonardo Borges
Java still ranks at the top of the TIOBE index. The JVM is a trusted platform which has stood the test of time and is used widely to develop complex, reliable and high performing systems. By choosing to target the JVM, Clojure can leverage all of its power while bringing new ways of writing reliable software into the mix. But why should a Java developer care?
In this talk we will examine the main differences between Java and Clojure, pointing out new patterns and tools and finally ending with a discussion of the concurrency and parallelism abstractions provided by Clojure.
By the end of this talk you will have developed an understanding of Clojure’s fundamental building blocks for writing concurrent applications.
Quick trip around the Cosmos - Things every astronaut supposed to knowRafał Hryniewski
Slides for my talk which overviews new(ish) product of Microsoft - multi-model, cloud database known as CosmosDB.
Recorded talk (in Polish) is available here: https://youtu.be/ZWpJne0kcds?t=1h52m45s
Simplicity, ease of use, clean syntax and clear semantics are the characteristics of a good DSL that enable the users to focus on the problem. It is non-trivial to define, develop and maintain a DSL, especially using traditional compiler techniques. The Ruby programming language solves this issue to a certain extent.
Topics Covered
* Fundamentals of DSLs.
* Introduction of Ruby features for writing DSLs.
* Writing a DSL - The speakers' experience, with examples.
* Challenges and Issues.
Speaker Profiles:
Harshal Hayatnagarkar is a researcher at Tata Research Development and Design Centre, Pune (a division of TCS) with many years of experience in writing large-scale trading systems, DSLs and high performance machine learning systems. Currently he is writing a DSL for information visualization using Ruby.
Rohan Kini: is a Senior Developer at ThoughtWorks. He has been working with Ruby since 2005 on one of the earliest Ruby projects in India. He specializes in development of large-scale, web-based applications and scripting languages.
Presentación en PowerPoint que explica cómo añadir un servidor Z39.50 a su computadora para que pueda utilizarse con Horizon 74. Explica cómo conseguir el archivo y copiarlo a la computadora local y cómo utilizar la conexión para bajar registros bibliográficos a la base de datos.
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStackSaltStack
This talk will demonstrate how to use Salt Mine leveraging Salt grains to create several environments (parallel universes) that decide how to run the same Salt formulas with different outcomes. "Roles” will be defined in an OpenStack Marconi (queuing as a service) deployment and a few formulas will be shared to demonstrate the concept.
From Java to Parellel Clojure - Clojure South 2019Leonardo Borges
Java still ranks at the top of the TIOBE index. The JVM is a trusted platform which has stood the test of time and is used widely to develop complex, reliable and high performing systems. By choosing to target the JVM, Clojure can leverage all of its power while bringing new ways of writing reliable software into the mix. But why should a Java developer care?
In this talk we will examine the main differences between Java and Clojure, pointing out new patterns and tools and finally ending with a discussion of the concurrency and parallelism abstractions provided by Clojure.
By the end of this talk you will have developed an understanding of Clojure’s fundamental building blocks for writing concurrent applications.
Quick trip around the Cosmos - Things every astronaut supposed to knowRafał Hryniewski
Slides for my talk which overviews new(ish) product of Microsoft - multi-model, cloud database known as CosmosDB.
Recorded talk (in Polish) is available here: https://youtu.be/ZWpJne0kcds?t=1h52m45s
Serverless is a new framework that allows developers to easily harness AWS Lambda and Api Gateway to build and deploy full fledged API services without needing to deal with any ops level overhead or paying for servers when they're not in use. It's kinda like Heroku on-demand for single functions.
Understanding Oracle RAC 12c Internals as presented during Oracle Open World 2013 with Mark Scardina.
This is part two of the Oracle RAC 12c "reindeer series" used for OOW13 Oracle RAC-related presentations.
Code Examples: https://github.com/nolanerck/modern-cfml-demos
The recent versions of ColdFusion have added many new language features. We’ve now got closures, functional programming constructs, QueryExecute, the safe navigation operator, the Elvis operator, and even more coming in future releases. For people new to functional programming or object oriented programming, it can be hard to see where these features can be beneficial. Let’s fix that!
In this talk we’ll discuss many of the new language enhancements in CFML. But rather than stopping with an “x = 1” example, we’ll look at blocks of code that are more real-world in nature. The code demos will all be based on scenarios you’ll run across in your daily development. That's right, we'll run real live code! You'll get to see these language features in action, right before your very eyes!
Netflix's Transition to High-Availability Storage (QCon SF 2010)Sid Anand
This talk focuses on Netflix's transition from Oracle to SimpleDB -- a cloud-hosted, key-value store -- during Netflix's transition to the cloud (i.e. AWS). Stay tuned for future talks as Netflix evaluates more technologies, e.g. Cassandra.
Overview of "how to hack SAML" from a security conference - KazHackStan https://kazhackstan.com/en/
In this talk, we will figure out how to break Single Sign On(SSO) based on SAML. Let's look at the components of SAML and the associated attack vectors, current vulnerabilities and methods of their exploitation. Everything a pentester needs to pohakat SAML without soiling the fur.
DASP Top10 for OWASP Thailand Chapter by s111s s111s object
Decentralized Appliaction Security Project Top 10 (DASP Top 10) by s111s
cover 10 topic in DASP Top 10 2018
- Reentrancy
- Access Control
- Arithmetic
- Unchecked Low Level Calls
- Denial of Services
- Bad Randomness
- Front Running
- Time Manipulation
- Short Addresses
- Unknown Unknows
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypseTomasz Kowalczewski
Computation is increasingly constrained by power. With each advancement in the manufacturing process, a decreasing percentage of the CPU can operate at full capacity, leading to the emergence of the term 'dark silicon'. This trend necessitates techniques that utilize chip area to optimize power efficiency through specialized accelerators.
The presentation will outline key concepts that led to the dark silicon such as Moore’s law and breakdown of Dennard scaling, followed by an overview of current and upcoming CPU accelerators. The focus will then shift to vector units and the specifics of vector programming. Attendees will be introduced to registers, a range of vector operations, and methods to develop branchless algorithms such as sorting networks. The session will conclude with an overview of the new Java Vector API and how it was already picked up by projects to do AI inference (Llama 2) and vector search (AstraDB and Cassandra).
A szemantikus web és a könyvtárak, különös tekintettel a BIBFRAME formátumrahorvadam
A szemantikus web ismertetése. A szemantikus web jelenléte a könyvtárakban. A BIBFRAME formátum ismertetése. BIBFRAME a Magyar Nemzeti Múzeum Központi Könyvtárában. Másolásás katalogizálás jövője. A webnek fogunk közvetlenül katalogizálni.
Serverless is a new framework that allows developers to easily harness AWS Lambda and Api Gateway to build and deploy full fledged API services without needing to deal with any ops level overhead or paying for servers when they're not in use. It's kinda like Heroku on-demand for single functions.
Understanding Oracle RAC 12c Internals as presented during Oracle Open World 2013 with Mark Scardina.
This is part two of the Oracle RAC 12c "reindeer series" used for OOW13 Oracle RAC-related presentations.
Code Examples: https://github.com/nolanerck/modern-cfml-demos
The recent versions of ColdFusion have added many new language features. We’ve now got closures, functional programming constructs, QueryExecute, the safe navigation operator, the Elvis operator, and even more coming in future releases. For people new to functional programming or object oriented programming, it can be hard to see where these features can be beneficial. Let’s fix that!
In this talk we’ll discuss many of the new language enhancements in CFML. But rather than stopping with an “x = 1” example, we’ll look at blocks of code that are more real-world in nature. The code demos will all be based on scenarios you’ll run across in your daily development. That's right, we'll run real live code! You'll get to see these language features in action, right before your very eyes!
Netflix's Transition to High-Availability Storage (QCon SF 2010)Sid Anand
This talk focuses on Netflix's transition from Oracle to SimpleDB -- a cloud-hosted, key-value store -- during Netflix's transition to the cloud (i.e. AWS). Stay tuned for future talks as Netflix evaluates more technologies, e.g. Cassandra.
Overview of "how to hack SAML" from a security conference - KazHackStan https://kazhackstan.com/en/
In this talk, we will figure out how to break Single Sign On(SSO) based on SAML. Let's look at the components of SAML and the associated attack vectors, current vulnerabilities and methods of their exploitation. Everything a pentester needs to pohakat SAML without soiling the fur.
DASP Top10 for OWASP Thailand Chapter by s111s s111s object
Decentralized Appliaction Security Project Top 10 (DASP Top 10) by s111s
cover 10 topic in DASP Top 10 2018
- Reentrancy
- Access Control
- Arithmetic
- Unchecked Low Level Calls
- Denial of Services
- Bad Randomness
- Front Running
- Time Manipulation
- Short Addresses
- Unknown Unknows
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypseTomasz Kowalczewski
Computation is increasingly constrained by power. With each advancement in the manufacturing process, a decreasing percentage of the CPU can operate at full capacity, leading to the emergence of the term 'dark silicon'. This trend necessitates techniques that utilize chip area to optimize power efficiency through specialized accelerators.
The presentation will outline key concepts that led to the dark silicon such as Moore’s law and breakdown of Dennard scaling, followed by an overview of current and upcoming CPU accelerators. The focus will then shift to vector units and the specifics of vector programming. Attendees will be introduced to registers, a range of vector operations, and methods to develop branchless algorithms such as sorting networks. The session will conclude with an overview of the new Java Vector API and how it was already picked up by projects to do AI inference (Llama 2) and vector search (AstraDB and Cassandra).
Similar to ZING: the Next Generation of Z39.50 (20)
A szemantikus web és a könyvtárak, különös tekintettel a BIBFRAME formátumrahorvadam
A szemantikus web ismertetése. A szemantikus web jelenléte a könyvtárakban. A BIBFRAME formátum ismertetése. BIBFRAME a Magyar Nemzeti Múzeum Központi Könyvtárában. Másolásás katalogizálás jövője. A webnek fogunk közvetlenül katalogizálni.
First steps towards publishing library data on the semantic webhorvadam
First steps towards publishing library data on the semantic web. Implementing:
CoolUri
RDFDC
SKOS
RDF database and SPARQL interface
Content negotiation
Introduction to semantic web. The first results in publication of library data into the semantic web at the National Széchényi Libary (National Library of Hungary)
Catalogue enrichment in LibriVision
Link service based on OpenUrl
Bookmark service
Permalink
Google Cover Page
Map integration
Cover pages produced by NSZL
Permalink is now a Cool URI
Linked Data at the National Széchényi Library : road to the publicationhorvadam
National Széchényi Library (National Library of Hungary) published its entire catalog and the thesaurus and the name authority file into the semantic web.ű
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
ZING: the Next Generation of Z39.50
1.
2. ZING: the Next Generation ofZING: the Next Generation of
Z39.50Z39.50
ADLUG Users Group MeetingADLUG Users Group Meeting
San Sebastian, 8-10 September, 2004San Sebastian, 8-10 September, 2004
ÁdámÁdám HorváthHorváth
NSZLNSZL
3. 3 ZING: the Next
ContentsContents
Why does Z39.50 need renewalWhy does Z39.50 need renewal
What is ZINGWhat is ZING
Technical aspectsTechnical aspects
Social contextSocial context
Amicus/LibriVision and ZINGAmicus/LibriVision and ZING
Experimental SRW client of NSZLExperimental SRW client of NSZL
4. 4 ZING: the Next
Why does Z39.50 need renewalWhy does Z39.50 need renewal
There are problems with Z39.50There are problems with Z39.50
Not popular with the web communityNot popular with the web community
– Connection-based sessionsConnection-based sessions
– Binary encodingBinary encoding
– Transmitted directly over TCP/IPTransmitted directly over TCP/IP
ComplicatedComplicated
6. 6 ZING: the Next
The complexity of Z39.50The complexity of Z39.50
A 156 page standardA 156 page standard
Vocabulary from the OSI communityVocabulary from the OSI community
– Target, Origin, APDU, A-association, Z-Target, Origin, APDU, A-association, Z-
association...association...
Records described with ASN.1Records described with ASN.1
Attribute SetsAttribute Sets
7. 7 ZING: the Next
Strengths of Z39.50Strengths of Z39.50
Result SetsResult Sets
AbstractionAbstraction
– Abstract Access Points (Attribute Sets)Abstract Access Points (Attribute Sets)
– Abstract Record SchemasAbstract Record Schemas
ExplainExplain
8. 8 ZING: the Next
ContentsContents
Why does Z39.50 need renewalWhy does Z39.50 need renewal
What is ZINGWhat is ZING
Technical aspectsTechnical aspects
Social contextSocial context
Amicus/LibriVision and ZINGAmicus/LibriVision and ZING
Experimental SRW client of NSZLExperimental SRW client of NSZL
9. 9 ZING: the Next
What is ZING?What is ZING?
ZING:ZING:
ZZ39.5039.50 IInternational:nternational: NNextext GGenerationeneration
New web based Search and RetrieveNew web based Search and Retrieve
protocol familyprotocol family
Keeps the strengths of Z39.50Keeps the strengths of Z39.50
Eliminates the complexity of Z39.50Eliminates the complexity of Z39.50
10. 10 ZING: the Next
What is ZING?What is ZING?
Protocol familyProtocol family
– SRW - Search/Retrieve Web ServiceSRW - Search/Retrieve Web Service
– SRU - Search and Retrieve URL ServiceSRU - Search and Retrieve URL Service
– CQL - Common Query LanguageCQL - Common Query Language
– ZeeRex - Z39.50 Explain, Explained and Re-ZeeRex - Z39.50 Explain, Explained and Re-
Engineered in XMLEngineered in XML
– ZOOM : the Z39.50 Object Orientation ModelZOOM : the Z39.50 Object Orientation Model
– ez3950 : simple implementation over SOAPez3950 : simple implementation over SOAP
using XERusing XER
Protocol familyProtocol family
– SRW - Search/Retrieve Web ServiceSRW - Search/Retrieve Web Service
– SRU - Search and Retrieve URL ServiceSRU - Search and Retrieve URL Service
– CQL - Common Query LanguageCQL - Common Query Language
– ZeeRex - Z39.50 Explain, Explained and Re-ZeeRex - Z39.50 Explain, Explained and Re-
Engineered in XMLEngineered in XML
– ZOOM : the Z39.50 Object Orientation ModelZOOM : the Z39.50 Object Orientation Model
– ez3950 : simple implementation over SOAPez3950 : simple implementation over SOAP
using XERusing XER
11. 11 ZING: the Next
SRWSRW Search/Retrieve Web ServiceSearch/Retrieve Web Service
What is SRWWhat is SRW
– XML oriented protocolXML oriented protocol
– Performs searches and other informationPerforms searches and other information
retrieval operationsretrieval operations
12. 12 ZING: the Next
SRW and Z39.50SRW and Z39.50
Z39.50 concepts retained in SRWZ39.50 concepts retained in SRW
– Result setsResult sets
– Abstract access pointsAbstract access points
– Abstract record schemasAbstract record schemas
– ExplainExplain
– DiagnosticsDiagnostics
13. 13 ZING: the Next
SRW and Z39.50SRW and Z39.50
SRW differences from Z39.50SRW differences from Z39.50
– Result sets named by serverResult sets named by server
– No explicit concept of connection, sessionNo explicit concept of connection, session
or stateor state
– No distinction between server and databaseNo distinction between server and database
– Single record syntax: XMLSingle record syntax: XML
• Schemas are XML schemas: DC, MODS,Schemas are XML schemas: DC, MODS,
MarcXMLMarcXML
– Simplified explainSimplified explain
16. 16 ZING: the Next
SRW sample search requestSRW sample search request
<SOAP:Envelope<SOAP:Envelope
xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body><SOAP:Body>
<SRW:searchRetrieveRequest<SRW:searchRetrieveRequest
xmlns:SRW="http://www.loc.gov/zing/srw/">xmlns:SRW="http://www.loc.gov/zing/srw/">
<SRW:version>1.1</SRW:version><SRW:version>1.1</SRW:version>
<SRW:query>(dc.author exact "jones" and dc.title >=<SRW:query>(dc.author exact "jones" and dc.title >=
"smith")</SRW:query>"smith")</SRW:query>
<SRW:startRecord>1</SRW:startRecord><SRW:startRecord>1</SRW:startRecord>
<SRW:maximumRecords>10</SRW:maximumRecords><SRW:maximumRecords>10</SRW:maximumRecords>
<SRW:recordSchema>info:srw/schema/1/mods-<SRW:recordSchema>info:srw/schema/1/mods-
v3.0</SRW:recordsSchema>v3.0</SRW:recordsSchema>
</SRW:searchRetrieveRequest></SRW:searchRetrieveRequest>
</SOAP:Body></SOAP:Body>
</SOAP:Envelope></SOAP:Envelope>
17. 17 ZING: the Next
SRUSRU Search/Retrieve URL ServiceSearch/Retrieve URL Service
Search requestSearch request
– Coded in the URL and sent as HTTP GETCoded in the URL and sent as HTTP GET
ResponseResponse
– SRW without the SOAP wrapperSRW without the SOAP wrapper
Example for a search requestExample for a search request
http://www.loc.gov/sru.cgi?http://www.loc.gov/sru.cgi?
operation=searchRetrieve&query=dc.title=cat&maximumRecordsoperation=searchRetrieve&query=dc.title=cat&maximumRecords
=10&recordSchema=DC&sortKeys=title,dc&startRecord=1=10&recordSchema=DC&sortKeys=title,dc&startRecord=1
18. 18 ZING: the Next
CQL - Common Query LanguageCQL - Common Query Language
Loosely based on CCL searchLoosely based on CCL search
Can be simple for every day useCan be simple for every day use
– This is a valid query:This is a valid query: programming languageprogramming language
Can be very complexCan be very complex
– dc.author=(kern* or ritchie) and (bath.titledc.author=(kern* or ritchie) and (bath.title
exact "the c programming language" orexact "the c programming language" or
dc.title=elements prox///4dc.title=elements prox///4
dc.title=programming) and subjectdc.title=programming) and subject
any/relevant "style design analysis"any/relevant "style design analysis"
19. 19 ZING: the Next
CQL - Common Query LanguageCQL - Common Query Language
Many shortcutsMany shortcuts
– Index and relation can be omittedIndex and relation can be omitted
• E.g.:E.g.: “bird dog”“bird dog”
• Full version:Full version: cql.serverChoice scr “bird dog”cql.serverChoice scr “bird dog”
– Relationship typesRelationship types
• allall
– E.g.:E.g.: dc.title all “bird dog”dc.title all “bird dog”
– Full version:Full version: dc.title = “bird”dc.title = “bird” andand dc.title = “dog”dc.title = “dog”
• anyany
– E.g.:E.g.: dc.title any “bird dog”dc.title any “bird dog”
– Full version:Full version: dc.title = “bird”dc.title = “bird” oror dc.title = “dog”dc.title = “dog”
20. 20 ZING: the Next
CQL - Common Query LanguageCQL - Common Query Language
Context setsContext sets
– Contexts may be applied to indexes,Contexts may be applied to indexes,
relations, relation modifiers and booleanrelations, relation modifiers and boolean
modifiers. They are of the formmodifiers. They are of the form prefix.valueprefix.value,,
where prefix is a short name for a uniquewhere prefix is a short name for a unique
context set identifier, defined either in thecontext set identifier, defined either in the
query or by the server.query or by the server.
– PurposePurpose
• Make a distinction between two identical indexMake a distinction between two identical index
names:names: dc.titledc.title,, foo.titlefoo.title
21. 21 ZING: the Next
CQL - Common Query LanguageCQL - Common Query Language
RelationsRelations
– <, >, <=,<, >, <=, andand >=>=
retain their regular meaningsretain their regular meanings
– ==
• For word adjacency, when the term is a list ofFor word adjacency, when the term is a list of
words.words.
• Otherwise, for exact equality of valueOtherwise, for exact equality of value
– allall,, anyany
• ““all of these items" or "any of these items”all of these items" or "any of these items”
• E.g.:E.g.: dc.title all “bird dog” dc.title any “bird dog”dc.title all “bird dog” dc.title any “bird dog”
22. 22 ZING: the Next
CQL - Common Query LanguageCQL - Common Query Language
Relations (cont’d)Relations (cont’d)
– exactexact
• is used for exact string matchingis used for exact string matching
– scrscr
• is used to mean "server choice relation”is used to mean "server choice relation”
– withinwithin
• may be used with a search term that has multiplemay be used with a search term that has multiple
dimensionsdimensions
– enclosesencloses
• database's term fully encloses the search termdatabase's term fully encloses the search term
23. 23 ZING: the Next
CQL - Common Query LanguageCQL - Common Query Language
Pattern matchingPattern matching
– ?? matches any single charactermatches any single character
– ** matches any sequence of charactersmatches any sequence of characters
E.g.:E.g.: ?in?s*r?in?s*r
– ^^ word anchoringword anchoring
• ^bird^bird must be the first in fieldmust be the first in field
• bird^bird^ must be the last in fieldmust be the last in field
• ^bird^^bird^ must be the only word in fieldmust be the only word in field
24. 24 ZING: the Next
ContentsContents
Why does Z39.50 need renewalWhy does Z39.50 need renewal
What is ZINGWhat is ZING
Technical aspectsTechnical aspects
Social contextSocial context
Amicus/LibriVision and ZINGAmicus/LibriVision and ZING
Experimental SRW client of NSZLExperimental SRW client of NSZL
25. 25 ZING: the Next
Bath profile in context setBath profile in context set
Defines indexesDefines indexes
– It uses the DC context set when appropriateIt uses the DC context set when appropriate
– Creates some bath indexes: bath.issnCreates some bath indexes: bath.issn
Defines relationsDefines relations
– exact, =,exact, =, <, <=, >=, >,<, <=, >=, >, withinwithin
Defines usage of wildcards and anchorsDefines usage of wildcards and anchors
Defines schemasDefines schemas
– MarcXML, DCMarcXML, DC
26. 26 ZING: the Next
DevelopersDevelopers
Principal Editor of the SRW 1.1Principal Editor of the SRW 1.1
SpecificationSpecification
– Rob SandersonRob Sanderson
WSDL/Schema EditorWSDL/Schema Editor
– Matthew DoveyMatthew Dovey
27. 27 ZING: the Next
DevelopersDevelopers
Additional Contributors to Version 1.1:Additional Contributors to Version 1.1:
– Eliot ChristianEliot Christian
– Ray DenenbergRay Denenberg
– Adam DickmeissAdam Dickmeiss
– Janifer GatenbyJanifer Gatenby
– Ralph LeVanRalph LeVan
– Mike TaylorMike Taylor
– Theo Van VeenTheo Van Veen
28. 28 ZING: the Next
DevelopersDevelopers
Additional Contributors to theAdditional Contributors to the
Intellectual Development of SRW:Intellectual Development of SRW:
– Larry DixsonLarry Dixson
– Sebastian HammerSebastian Hammer
– Poul Henrik JorgensenPoul Henrik Jorgensen
– Alan KentAlan Kent
– Bill MoenBill Moen
– Pat StevensPat Stevens
29. 29 ZING: the Next
Early implementersEarly implementers
Library of CongressLibrary of Congress
Koninklijke BibliotheekKoninklijke Bibliotheek
OCLC/PICAOCLC/PICA
OCLC ResearchOCLC Research
Index DataIndex Data
The European Library projectThe European Library project
National Széchényi LibraryNational Széchényi Library
30. 30 ZING: the Next
ToolsTools
CQL-JavaCQL-Java
– CQL parser for JavaCQL parser for Java
Python CQL ParserPython CQL Parser
– A Python Library for parsing CQL andA Python Library for parsing CQL and
XCQL. Includes CQL to RPN transformationXCQL. Includes CQL to RPN transformation
for PyZ3950for PyZ3950
YAZ Proxy from IndexdataYAZ Proxy from Indexdata
– SRU/SRW server to allow any Z39.50 serverSRU/SRW server to allow any Z39.50 server
to also support the ZING protocolsto also support the ZING protocols
31. 31 ZING: the Next
InformationInformation
http://www.loc.gov/zinghttp://www.loc.gov/zing
32. 32 ZING: the Next
ContentsContents
Why does Z39.50 need renewalWhy does Z39.50 need renewal
What is ZINGWhat is ZING
Technical aspectsTechnical aspects
Social contextSocial context
Amicus/LibriVision and ZINGAmicus/LibriVision and ZING
Experimental SRW client of NSZLExperimental SRW client of NSZL
33. 33 ZING: the Next
ZING compliant AmicusZING compliant Amicus
Developing a ZING server for AmicusDeveloping a ZING server for Amicus
– It could be fully ZING compliantIt could be fully ZING compliant
The use of a YAZ ProxyThe use of a YAZ Proxy
– The proxy translates SRW/SRU into Z39.50The proxy translates SRW/SRU into Z39.50
– LicenseLicense
• Amicus users can use it freely (Amicus users can use it freely (GPL license)GPL license)
• LibriCore would need special agreementLibriCore would need special agreement
– Problems in matching CQL and attributeProblems in matching CQL and attribute
setssets
34. 34 ZING: the Next
CQL and attribute setsCQL and attribute sets
RelationsRelations
– ““all” and “any” have no equivalent relationall” and “any” have no equivalent relation
attributeattribute
Relation modifiersRelation modifiers
– fuzzy has no equivalent relation attributefuzzy has no equivalent relation attribute
35. 35 ZING: the Next
CQL and attribute setsCQL and attribute sets
IndexesIndexes
– CQL is based on DC indexesCQL is based on DC indexes
– Not all of them have USE attribute equivalentsNot all of them have USE attribute equivalents
• E.g.: dc.coverage, dc.rights, etc.E.g.: dc.coverage, dc.rights, etc.
Pattern matchingPattern matching
– AnchorsAnchors
• ‘‘Position last’ has no equivalent position attributePosition last’ has no equivalent position attribute
– WildcardWildcard **
• CQL search terms likeCQL search terms like b*db*d cannot be expressed bycannot be expressed by
truncation attributestruncation attributes
36. 36 ZING: the Next
LibriVision as a ZING clientLibriVision as a ZING client
LibriVision was designed as aLibriVision was designed as a
multiprotocol productmultiprotocol product
It might be easy to incorporate the SRWIt might be easy to incorporate the SRW
or SRU protocolor SRU protocol
Tools are availableTools are available
It could be developed by LibriCoreIt could be developed by LibriCore
37. 37 ZING: the Next
ContentsContents
Why does Z39.50 need renewalWhy does Z39.50 need renewal
What is ZINGWhat is ZING
Technical aspectsTechnical aspects
Social contextSocial context
Amicus/LibriVision and ZINGAmicus/LibriVision and ZING
Experimental SRW client of NSZLExperimental SRW client of NSZL
38. 38 ZING: the Next
Experimental SRW client of NSZLExperimental SRW client of NSZL
Web based clientWeb based client
Tools usedTools used
– YAZ Proxy, PHP, Sablotron, Expat, Java,YAZ Proxy, PHP, Sablotron, Expat, Java,
SaxonSaxon
PlatformsPlatforms
– WindowsWindows
– LinuxLinux
39. 39 ZING: the Next
Experimental SRW client of NSZLExperimental SRW client of NSZL
Flow of informationFlow of information
WebclientWebclient
YAZProxyYAZProxy
Z39.50serverZ39.50server
SRW SearchRetrieve RequestSRW SearchRetrieve Request Z39.50 Search RequestZ39.50 Search Request
SRW SearchRetrieve ResponseSRW SearchRetrieve Response
Z39.50 Present RequestZ39.50 Present Request
Z39.50 Search ResponseZ39.50 Search Response
Z39.50 Present ResponseZ39.50 Present Response
40. 40 ZING: the Next
Experimental SRW client of NSZLExperimental SRW client of NSZL
The target databaseThe target database
– AmicusAmicus
• The Z server used to be ZEDLIB made byThe Z server used to be ZEDLIB made by
CrossnetCrossnet
– Anonymous login (solved)Anonymous login (solved)
– Present problem (solved)Present problem (solved)
41. 41 ZING: the Next
Experimental SRW client of NSZLExperimental SRW client of NSZL
Extra featureExtra feature
– FRBR display is integrated into the clientFRBR display is integrated into the client
Main purposeMain purpose
– To learn about this new protocol in depthTo learn about this new protocol in depth
Live demoLive demo
– http://w3.oszk.hu/zingamicus/index.phphttp://w3.oszk.hu/zingamicus/index.php
42. 42 ZING: the Next
adam@oszk.huadam@oszk.hu
Thank you for your attentionThank you for your attention
Editor's Notes
First I would like to speak about the concept
Then I will highlight the various aspects of this network.
After that I will demonstrate the tool which is essential to build a network
And finally I would like to mention some other tools that we would also need in the near future.
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
First I would like to speak about the concept
Then I will highlight the various aspects of this network.
After that I will demonstrate the tool which is essential to build a network
And finally I would like to mention some other tools that we would also need in the near future.
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
HKN
Alberta Health Knowledge Network
http://www.ucalgary.ca/HKN/index.html
University of Calgary, University of Alberta
Delivers databases to desktops
of members of University
community and health care
professionals in Alberta,
Canadian Territories and
Saskatchewan
For example: xxx.dateRange encloses 2002
they may be arbitrarily mixed
First I would like to speak about the concept
Then I will highlight the various aspects of this network.
After that I will demonstrate the tool which is essential to build a network
And finally I would like to mention some other tools that we would also need in the near future.
For example: xxx.dateRange encloses 2002
For example: xxx.dateRange encloses 2002
For example: xxx.dateRange encloses 2002
For example: xxx.dateRange encloses 2002
For example: xxx.dateRange encloses 2002
For example: xxx.dateRange encloses 2002
For example: xxx.dateRange encloses 2002
First I would like to speak about the concept
Then I will highlight the various aspects of this network.
After that I will demonstrate the tool which is essential to build a network
And finally I would like to mention some other tools that we would also need in the near future.
For example: xxx.dateRange encloses 2002
For example: xxx.dateRange encloses 2002
For example: xxx.dateRange encloses 2002
For example: xxx.dateRange encloses 2002
First I would like to speak about the concept
Then I will highlight the various aspects of this network.
After that I will demonstrate the tool which is essential to build a network
And finally I would like to mention some other tools that we would also need in the near future.