This document discusses improving the performance of semantic web applications by indexing RDF datasets with Lucene, SIREn, and RDF. It begins with an overview of SPARQL and its limitations for querying large datasets. It then introduces Lucene as a way to index and search text fields from RDF triples for improved query performance. Finally, it discusses how SIREn can be used to extend Lucene indexing to support semi-structured data from RDF triples beyond just text fields.
Customizing the list control - Sencha Touch mobile web applicationJoseph Khan
A tutorial from my blog http://jbkflex.wordpress.com on how to customize the look and feel of the default Sencha Touch List control and give it something of your own.
In a real life almost any project deals with the
tree structures. Different kinds of taxonomies,
site structures etc require modeling of
hierarchy relations.
Typical approaches used
● Model Tree Structures with Child References
● Model Tree Structures with Parent References
● Model Tree Structures with an Array of Ancestors
● Model Tree Structures with Materialized Paths
● Model Tree Structures with Nested Sets
Customizing the list control - Sencha Touch mobile web applicationJoseph Khan
A tutorial from my blog http://jbkflex.wordpress.com on how to customize the look and feel of the default Sencha Touch List control and give it something of your own.
In a real life almost any project deals with the
tree structures. Different kinds of taxonomies,
site structures etc require modeling of
hierarchy relations.
Typical approaches used
● Model Tree Structures with Child References
● Model Tree Structures with Parent References
● Model Tree Structures with an Array of Ancestors
● Model Tree Structures with Materialized Paths
● Model Tree Structures with Nested Sets
Explains DOM and Events. HTML-Only DOM is explained and Form elements.
Events handling using element properties and event listeners is explained too.
A quick review on Cookies and referrer is briefed too
The data widgets in Ext GWT3 have been completely rewritten. Rather than using renderers in 2.x, the new data widgets are GWT Cell-based. In this session you will learn about the changes and how to use the new API.
Colin Alworth has been a member of the Ext GWT community for a number of years, and has joined the team to contribute to 3.0’s successful release. With several years of Javascript, GWT, and Ext GWT experience, he brings real-world knowledge and use cases to Sencha’s next generation of GWT tools and components.
My presentation for Scala Days Amsterdam.
How to make a compile time string interpolator for a language you have? Use case and step by step code examples.
Presents:
Introduction and Using jQuery
Selectors and Attributes
Events
Height and Width
DOM Manipulation and Modification
Effects and Animation
Store arbitrary data and add your functions.
Ajax
The Role of the Intangibles Information Gap in the Financialization of the A...Smarter-Companies
Short-term thinking and financialization of the American corporation has be fueled and enabled by the intangibles information gap. Closing this gap is imperative to enable longer-term thinking about the future capacity of our corporations.
Explains DOM and Events. HTML-Only DOM is explained and Form elements.
Events handling using element properties and event listeners is explained too.
A quick review on Cookies and referrer is briefed too
The data widgets in Ext GWT3 have been completely rewritten. Rather than using renderers in 2.x, the new data widgets are GWT Cell-based. In this session you will learn about the changes and how to use the new API.
Colin Alworth has been a member of the Ext GWT community for a number of years, and has joined the team to contribute to 3.0’s successful release. With several years of Javascript, GWT, and Ext GWT experience, he brings real-world knowledge and use cases to Sencha’s next generation of GWT tools and components.
My presentation for Scala Days Amsterdam.
How to make a compile time string interpolator for a language you have? Use case and step by step code examples.
Presents:
Introduction and Using jQuery
Selectors and Attributes
Events
Height and Width
DOM Manipulation and Modification
Effects and Animation
Store arbitrary data and add your functions.
Ajax
The Role of the Intangibles Information Gap in the Financialization of the A...Smarter-Companies
Short-term thinking and financialization of the American corporation has be fueled and enabled by the intangibles information gap. Closing this gap is imperative to enable longer-term thinking about the future capacity of our corporations.
Lessons learned from early innovators in the field of intellectual capital. The field of IC is at risk of getting caught in the marketing chasm described by Geoffrey Moore in Crossing the Chasm. Presentation by Mary Adams and Peder Hofman-Bang at the European Conference on Intellectual Capital in April, 2009.
What do you mean, Backwards Compatibility?Trisha Gee
Lessons learnt developing the new Java driver for MongoDB. This is a totally different version of my backwards compatibility talk, delivered at JFokus.
Do you know what’s happening each time you use the @ (at) symbol to decorate a function or class?
In this talk we are going to see how Python’s decorators syntactic sugar works under the hood.
Slide de ma présentation au Voxxed Days Luxembourg 2017.
http://cfp-voxxed-lux.yajug.org/2017/talk/KMC-5325/Documentation_as_code:_controler_la_qualite_!
"Document as code" consiste à utiliser toutes les bonnes pratiques que nous utilisons pour notre source code et de les appliquer à la documentation. Les points clés sont :
* Utiliser un outil de gestion des sources (git) et de préférence le même que pour les sources.
* Un format de texte simple (pas de XML) comme AsciiDoc.
* Mettre en place des outils d'intégration continu et déploiement continu
Lorsque cette bonne pratique est en place, se pose une seconde catégorie de problème. Comment garantir la qualité :
* Faciliter la barrière à l’entrée en proposant un lien pour éditer la documentation sur chaque page et pour soumettre une pull request.
* Test systématique des exemples de code
* Respect des conventions de documentation
* Métriques et dashboard pour garantir la qualité
* Partage de bonnes pratiques/revue de documentation.
Cette présentation est un retour d’expérience et donne quelques bonnes pratiques de documentation. C'est un aperçu de ce qui peut être mis en place pour s’assurer de la qualité de la doc.
In this presentation, Amit explains querying with MongoDB in detail including Querying on Embedded Documents, Geospatial indexing and Querying etc.
The tutorial includes a recap of MongoDB, the wrapped queries, queries which are using modifiers, Upsert (saving/ updating queries), updating multiple documents at once, etc. Moreover, it gives a brief explanation about specifying which keys to return, the AND/OR queries, querying on embedded documents, cursors and Geospatial indexing. The tutorial begins with a section about MongoDB which includes steps to install and start MongoDB, to show and select Database, to drop collection and database, steps to insert a document and get up to 20 matching documents. Furthermore, it also includes steps to store and use Javascript functions on the server side.
The next section after the MongoDB section is about wrapped queries and queries using modifiers which includes the types of wrapped queries which are used like LikeQuery, SortQuery, LimitQuery, SkipQuery. It also includes the types of queries using modifiers like NotEqualModifier, Greater/Lesser modifier, Increment Modifier, Set Modifier, Unset Modifier, Push Modifier etc. Then comes the section about Upsert (Save or update). There are steps mentioned for saving or updating queries in this section.
At the same time, there are steps to update multiple documents altogether. The next section which is called “specifying which keys to return” talks about ways to specify the keys the user wants. After this section comes OR/AND query. It informs us about the general steps to do an OR query. Also, it includes the general steps to do an AND query. After this section comes another section called “querying on embedded document” which tells the user about ways of querying for an embedded document.
One of the important sections of this tutorial is about cursors, uses of a cursor and also methods to chain additional options onto a query before it is performed. Following is a section about indexing which talks about indexing as a term and how indexing helps in improving the query’s speed. At the end is a section which gives a brief explanation on geospatial indexing which is another type of query that became common with the emergence of mobile devices. Also, it includes the ways geospatial queries can be performed.
Slides to the Hands On Spring Data lab, presented in Paris on Dec 10th, 2012. Code exercises are here: https://github.com/ericbottard/hands-on-spring-data
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
39. Document
field value
ID 2
name “Mike Hugo”
company “Entagen”
“lorem ipsum
bio
dolor sum etc...”
40. Index
field
field value
value
field
field value
value
field
field value
name
name field “mike value
value
hugo”
“mike hugo”
name
name “mike hugo”
“mike hugo”
name
nameid “mike hugo”
“mike 2hugo”
company
company “Entagen”
“Entagen”
company
company
name “Entagen”
“Entagen”
“Mike Hugo”
company
company “Entagen”
“Entagen”
“Entagen” Indexed
company “lorem ipsum
“lorem ipsum
bio
bio “lorem ipsum
“lorem etc...”
bio
bio “loremipsum
dolorsum ipsum
dolor“loremetc...” not
bio
bio sum ipsum
dolorsum etc...””
dolor sum etc... ”
bio dolor sum ipsum”
“lorem etc...
dolor sum etc... Stored
dolor sum etc...”
51. arqlQueryService.executeForEach(reposito
String uri = it.uri.stringValue()
String label = it.label.stringValue()
Document doc = new Document()
doc.add(new Field(SUBJECT_URI_FIELD,
uri, Instantiate a
new Lucene
Field.Store.YES,
Document
Field.Index.ANALYZED))
doc.add(new Field(LABEL_FIELD,
label,
Field.Store.NO,
Field.Index.ANALYZED))
writer.addDocument(doc)
52. key
Document doc = new Document()
doc.add(new Field(SUBJECT_URI_FIELD,
value uri,
Field.Store.YES,
Field.Index.ANALYZED))
doc.add(new Field(LABEL_FIELD,
label, Add the Subject
Field.Store.NO, URI to the
Document
Field.Index.ANALYZED))
writer.addDocument(doc)
lly {
53. Field.Store.YES,
Field.Index.ANALYZED))
doc.add(new Field(LABEL_FIELD, key
value label,
Field.Store.NO,
Field.Index.ANALYZED))
Add the Label field
writer.addDocument(doc) document
to the
(but don’t store it)
lly {
iter.close() // Close index
54. doc.add(new Field(LABEL_FIELD, labe
Field.Store.NO,
Field.Index.ANALYZED))
writer.addDocument(doc)
}
inally {
writer.close() // Closethe document
Add index
to the Index
56. f query = {
Query query = new QueryParser(
Version.LUCENE_CURRENT,
LABEL_FIELD, query this field
new StandardAnalyzer())
.parse(params.query);
for this value
def s Create a Lucene
= new Date().time
Query from user
List results = executeQuery(query)
input
def e = new Date().time
render(view: 'index', model: [results:
57. IndexSearcher searcher = luceneSearche
ScoreDoc[] scoreDocs =
searcher.search(query, 10).scoreDo
List results = [] Search the index
(limit 10) for
def connection = repository.connection
scoreDocs.each { matching
documents
Document doc = searcher.doc(it.doc
String uri = doc[SUBJECT_URI_FIELD
Map labelAndType = sparqlQueryServ
results << [uri: uri, type: labelA
}
connection.close()
return results
58. List results = []
def connection = repository.connection
scoreDocs.each {
Document doc = searcher.doc(it.doc)
String uri = doc[SUBJECT_URI_FIELD]
Map labelAndType =
For each matching
sparqlQueryService.
document, get the
getLabelAndType(uri, connection)
doc and extract the
results.add([
Subject URI
uri: uri,
type: labelAndType.type,
label: labelAndType.label])
}
connection.close()
return results
59. List results = []
def connection = repository.connection
scoreDocs.each {
Document doc = searcher.doc(it.doc)
String uri = doc[SUBJECT_URI_FIELD]
Map labelAndType =
sparqlQueryService.
getLabelAndType(uri, connection)
results.add([
uri: uri, Using the Subject
URI, load properties
type: labelAndType.type,
from the triplestore
label: labelAndType.label])
}
connection.close()
return results
68. Connection connection = repository.conn
y {
String subjectUris = """
SELECT distinct ?uri
WHERE {
?uri ?p ?o .
}
"""
sparqlQueryService.executeForEach(rep
def doc = new Select all Subject
Document()
URIs from the
triplestore
String subjectUri = it.uri.string
doc.add(new Field(SUBJECT_URI_FIE
subjectUri,
69. """
sparqlQueryService.executeForEach(
repository, subjectUris) {
def doc = new Document()
String subjectUri = it.uri.stringV
doc.add(new Field(SUBJECT_URI_FIEL
subjectUri,
Field.Store.YES,
Execute the Sparql Query
Field.Index.ANALYZED))
For each URI, create a
new Document
StringWriter triplesStringWriter =
NTriplesWriter nTriplesWriter =
new NTriplesWriter(triplesStri
70. epository, subjectUris) {
def doc = new Document()
String subjectUri = it.uri.stringValue
doc.add(new Field(SUBJECT_URI_FIELD,
subjectUri,
Field.Store.YES,
Field.Index.ANALYZED))
StringWriter triplesStringWriter = new
NTriplesWriter nTriplesWriter =URI
Add the Subject
to the Document
new NTriplesWriter(triplesStringWr
connection.exportStatements(
new URIImpl(subjectUri),
null, null, false,
71. Field.Index.ANALYZED))
StringWriter triplesStringWriter = new
NTriplesWriter nTriplesWriter =
new NTriplesWriter(triplesStringWr
connection.exportStatements(
new URIImpl(subjectUri),
null, null, false,
nTriplesWriter)
Get an NTriples
doc.add(new Field(TRIPLES_FIELD,
string from the
triplesStringWriter.toString()
Field.Store.NO, triplestore
Field.Index.ANALYZED))
72. new URIImpl(subjectUri),
null, null, false,
nTriplesWriter)
doc.add(new Field(TRIPLES_FIELD,
triplesStringWriter.toString()
Field.Store.NO,
Field.Index.ANALYZED))
Add the NTriples
writer.addDocument(doc)
string to the
document
73. doc.add(new Field(TRIPLES_FIELD,
triplesStringWriter.toString()
Field.Store.NO,
Field.Index.ANALYZED))
writer.addDocument(doc)
Add the document
to the index
75. SirenCellQuery predicate =
new SirenCellQuery(
new SirenTermQuery(
new Term(TRIPLES_FIELD,
RDFS.LABEL.stringValue())));
predicate.constraint = PREDICATE_CELL
SirenCellQuery object =
query the Triples
new SirenCellQuery(
new SirenTermQuery( field
new Term(TRIPLES_FIELD,
params.query.toLowerCase()))
object.constraint = OBJECT_CELL
76. SirenCellQuery predicate =
new SirenCellQuery(
new SirenTermQuery(
new Term(TRIPLES_FIELD,
RDFS.LABEL.stringValue())));
predicate.constraint = PREDICATE_CELL
SirenCellQuery object =
new SirenCellQuery( a predicate
for
new SirenTermQuery(
new Term(TRIPLES_FIELD,
params.query.toLowerCase()))
object.constraint = OBJECT_CELL
77. SirenCellQuery predicate =
new SirenCellQuery(
new SirenTermQuery(
new Term(TRIPLES_FIELD,
RDFS.LABEL.stringValue())));
predicate.constraint = PREDICATE_CELL
of rdfs:label *
SirenCellQuery object =
new SirenCellQuery(
new SirenTermQuery(
new Term(TRIPLES_FIELD,
params.query.toLowerCase()))
* note: could be any predicate!
object.constraint = OBJECT_CELL
78. SirenCellQuery object =
new SirenCellQuery(
new SirenTermQuery(
new Term(TRIPLES_FIELD,
params.query.toLowerCase())
object.constraint = OBJECT_CELL
Query query = new SirenTupleQuery()
query the Triples
query.add(predicate,
field
SirenTupleClause.Occur.MUST)
query.add(object,
SirenTupleClause.Occur.MUST)
79. SirenCellQuery object =
new SirenCellQuery(
new SirenTermQuery(
new Term(TRIPLES_FIELD,
params.query.toLowerCase())
object.constraint = OBJECT_CELL
Query query = new SirenTupleQuery()
query.add(predicate,
for an object
SirenTupleClause.Occur.MUST)
query.add(object,
SirenTupleClause.Occur.MUST)
80. SirenCellQuery object =
new SirenCellQuery(
new SirenTermQuery(
new Term(TRIPLES_FIELD,
params.query.toLowerCase())
object.constraint = OBJECT_CELL
Query query = new SirenTupleQuery()
query.add(predicate, matching the
user input
SirenTupleClause.Occur.MUST)
query.add(object,
SirenTupleClause.Occur.MUST)