SlideShare a Scribd company logo
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
David Meibusch & Nathan Hawes
Oracle Labs Australia
June 2016
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases
Querying and managing
evolving code dependency graphs
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Safe	Harbour
The	following	is	intended	to	provide	some	insight	into	a	line	of	research	in	Oracle	
Labs.	It	is	intended	for	information	purposes	only,	and	may	not	be	incorporated	
into	any	contract.
It	is	not	a	commitment	to	deliver	any	material,	code,	or	functionality,	and	should	
not	be	relied	upon	in	making	purchasing	decisions.	Oracle	reserves	the	right	to	
alter	its	development	plans	and	practices	at	any	time,	and the	development,	
release,	and	timing	of	any	features	or	functionality	described	in	connection	with	
any	Oracle	product	or	service	remains	at	the	sole	discretion	of	Oracle.
Any	views	expressed	in	this	presentation	are	my	own	and	do	not	necessarily	reflect	
the	views	of	Oracle.
Frappé:	querying	the	Linux	kernel	dependency	graph 2
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
The	Truth	is	in	the	Source!
But	the	source	is	often	complicated,	multi-language	and	really	really	big
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 3
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Frappé:	code	as	a	property	graph
• Graph	natural	in	this	domain
– Call	graph,	directory	hierarchy,	type	hierarchy,	data/control	flow	graphs
• Overlay	data	from	different	spaces
– File	system,	build,	preprocessor,	AST,	cross-language
• Lets	users	specify	queries	in	terms	of	this	graph
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 4
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
How	it works
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 5
EXTRACTOR IMPORTER
EDITOR	PLUGINS
CLI	SCRIPTS
Source	Code .fo Server User
WEB	UI
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Graph	model	example
Frappé:	querying	the	Linux	kernel	dependency	graph 6
prog
module
main.c
file
foo.o
module
foo.c
source_file
foo.h
source_file
bar
function_decl
bar
function
main
function
argc
parameter
argv
parameter
input
parameter
int
primitive
char
primitive
compiled_from
compiled_from
includes
linked_from
includes
file_contains
file_contains
calls
has_param
has_param
is_type is_type
compiled_from
file_contains
has_param
is_type
declares
int bar(int); foo.h
#include “foo.h”
int bar(int *input) {
return *input * 2;
}
foo.c
#include “foo.h”
int main(int argc, char **argv) {
return bar(&argc);
}
main.c
gcc foo.c –c –o foo.o
gcc main.c foo.o –o prog
build
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
How	it works
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 7
EXTRACTOR IMPORTER
EDITOR	PLUGINS
CLI	SCRIPTS
Source	Code IR Server User
WEB	UI
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Use	cases
• Code	search
• Code	navigation
– Go	to	definition
– Find	references
• Code	comprehension
– Visualization
– Transitive	closure	calls,	includes,	etc.
– Shortest	path	queries
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 8
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
How	it	looks
• dddd • Web	UI	Xref • Code	Map	with	impact	
overlay
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 9
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Use	cases
• Code	search
• Code	navigation
– Go	to	definition
– Find	references
• Code	comprehension
– Visualization
– Transitive	closure	calls,	includes,	etc.
– Reachability	queries
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 10
Queries	and	Neo4j	performance	
detailed	in	GRADES’15	paper:
”Frappé:	Querying	 the	Linux	Kernel	
dependency	graph”
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Code	search
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 11
foo.c
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Code	search
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 12
foo.c
(n with name=‘foo.c’)
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Code	search
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 13
foo.c
(n with name=‘foo.c’)
struct foo {
int c;
}
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Code	search
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 14
foo.c
(c with name=‘foo’)
-[:contains]->
(n with name=‘c’)
UNION
(n with name=‘foo.c’)
struct foo {
int c;
}
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Code	search
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 15
foo.c
(c with name=‘foo’)
-[:contains]->
(n with name=‘c’)
UNION
(n with name=‘foo.c’)
struct bar {
int c;
}
typedef struct bar foo;
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Code	search
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 16
foo.c
(c with name ‘foo’)
-[:aliases*]->()-[:contains]->
(n with name=‘c’)
UNION
(n with name=‘foo.c’)
struct bar {
int c;
}
typedef struct bar foo;
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Code	search
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 17
foo.c
(c with name ‘foo’)
-[:aliases*]->()-[:contains]->
(n with name=‘c’)
UNION
(n with name=‘foo.c’)
struct bar {
int c;
}
typedef struct bar foo;
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Use	cases
• Code	search
• Code	navigation
– Go	to	definition
– Find	references
• Code	comprehension
– Visualization
– Transitive	closure	calls,	includes,	etc.
– Reachability	queries
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 18
Queries	and	Neo4j	performance	
detailed	in	GRADES’15	paper:
”Frappé:	Querying	 the	Linux	Kernel	
dependency	graph”
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Use	cases
• Code	search
• Code	navigation
– Go	to	definition
– Find	references
• Code	comprehension
– Visualization
– Transitive	closure	calls,	includes,	etc.
– Reachability	queries
• Custom	user	queries
– (Anti)	pattern	detection
– Expose	query	language
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 19
Queries	and	Neo4j	performance	
detailed	in	GRADES’15	paper:
”Frappé:	Querying	 the	Linux	Kernel	
dependency	graph”
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dependency	cycle
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 20
source_file
file_contains
source_file
file_contains
source_file
file_contains file_contains file_contains file_contains
references references
references
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dependency	cycle
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 21
source_file
file_contains
source_file
file_contains
source_file
file_contains file_contains file_contains file_contains
references references
references
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dependency	cycle
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 22
references
()-[
:includes | uses_namespace | expands | interrogates | undefined | aliases |
uses_enumerator | has_friend | isa_type | extends | uses_type | throws |
has_ret_type | has_param_type | calls | may_call | overridden_by | declares
| reads | writes | dereferences | address_of | type_of | size_of | align_of
| casts_to
]->()
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
BUT
Developers	working	off	of	different	
versions	of	the	code
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 23
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Target	Scenario
• 1000s	of	developers	working	from	
main	branch
• Changes	merged	regularly
• Most	developers	working	off	of	
versions	from	the	past	30 days
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 24
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Current	Deployment
• Separate	Neo4j	instance	for	the	most	
recent	5 versions	of	the	code
• New	graph	generated	in	nightly	
regression
• Script	on	the	client	to	determine	which	
server	to	connect	to
• Deployment	effort	and	complexity
• Inefficient	use	of	resources
– Redundant	data
– Memory	requirements
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 25
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Current	Deployment
• Separate	Neo4j	instance	for	the	most	
recent	5 versions	of	the	code
• New	graph	generated	in	nightly	
regression
• Script	on	the	client	to	determine	which	
server	to	connect	to
• Deployment	effort	and	complexity
• Inefficient	use	of	resources
– Redundant	data
– Memory	requirements
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 26
Single	logical	server
with	multiple	versions
and	efficient	storage
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Use	cases	for	multiple	versions
• Single	version	use	cases	per	version
• Code	review:	2	versions
– Are	there	any	architectural	constraints	being	newly	violated?
– Are	there	any	new	usages	of	deprecated	methods?
– Are	any	methods	now	unused?
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 27
Select	version
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Version	selection
SELECT path
FROM freebsd@1013
WHERE path =
(:function WITH name='source') -/:calls*/-> (:function WITH name='sink')
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 28
PATH vcalls := () -[:call WITH 1013 between fromV and toV]-> ()
SELECT path
FROM freebsd
WHERE path =
(:function WITH name='source’, 1013 between fromV and toV)
-/:vcalls*/->
(:function WITH name='sink’, 1013 between fromV and toV)
VS
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Use	cases	for	multiple	versions
• Single	version	use	cases	per	version
• Code	review:	2	versions
– Are	there	any	architectural	constraints	being	newly	violated?
– Are	there	any	new	usages	of	deprecated	methods?
– Are	any	methods	now	unused?
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 29
Match	in	each	version
+
Compare	results
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Compare	results
SELECT DIFFERENCE path
FROM freebsd@1013, freebsd@1014
WHERE path =
(:function WITH name='source') -/:calls*/-> (:function WITH name='sink')
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 30
SELECT path
FROM freebsd@1013
WHERE path =
(:function WITH name='source') -/:calls*/-> (:function WITH name='sink')
DIFFERENCE
SELECT path
FROM freebsd@1014
WHERE path =
(:function WITH name='source') -/:calls*/-> (:function WITH name='sink')
VS
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Open	Questions
• Node/Edge	identity
– Supplied	or	derived	using	graph	information
• Query	language	expressiveness
– Regular	path	expressions
– Multiple	edge	labels
• Efficient	storage	and	querying	for	multiple	graph	versions:
– List	or	ideally	DAG	of	versions
– Union,	intersection,	difference	of	results	from	different	versions
– Query	language	that	abstracts	away	versioning
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 31
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
FreeBSD	dataset	available	on	OTN
• Includes	graphs	of	10.1,	10.2,	10.3	
kernel	+	documentation
• Each	graph
– Extracted	from	10M	LOC
– 2	million	vertices
– 10	million	edges
• Try	it	out	and get	in	touch:
– nathan.hawes@oracle.com
david meibusch@oracle.com
ben.barham@oracle.com
Frappé:	a	code	comprehension	 tool	for	large	C/C++	codebases 32
http://www.oracle.com/technetwork/oracle-
labs/datasets/downloads/index.html
8th TUC Meeting - David Meibusch, Nathan Hawes (Oracle Labs Australia). Frappé: Querying and managing evolving code dependency graphs.
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Graph	model	example
Frappé:	querying	the	Linux	kernel	dependency	graph 34
main.c
file
bar
function
main
function
name_start_line
name_start_column
use_start_line
use_end_line
name_start_line
name_start_column
use_start_line
use_end_line
#include “foo.h”
int bar(int *input) {
return *input * 2;
}
foo.c
#include “foo.h”
int main(int argc, char **argv) {
return bar(&argc);
}
main.c
file_containscalls
name	location
use	location
name	location
use	location
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Graph	model	example
Frappé:	querying	the	Linux	kernel	dependency	graph 35
main.c
file
bar
function
main
function
name_start_line
name_start_column
use_start_line
use_end_line
name_start_line
name_start_column
use_start_line
use_end_line
#include “foo.h”
int main(int argc, char **argv) {
return BAR(&argc);
}
main.c
file_containscalls
#define BAR(A) bar(A)
int bar(int);
foo.h
#include “foo.h”
int bar(int *input) {
return *input * 2;
}
foo.c
Copyright	©	2015 Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Graph	model	example
Frappé:	querying	the	Linux	kernel	dependency	graph 36
main.c
file
bar
function
main
function
name_file_id
name_start_line
name_start_column
use_file_id
use_start_line
use_end_line
name_file_id
name_start_line
name_start_column
use_file_id
use_start_line
use_end_line
#include “foo.h”
int main(int argc, char **argv) {
return BAR(&argc);
}
main.c
file_containscalls
#define BAR(A) bar(A)
int bar(int);
foo.h
#include “foo.h”
int bar(int *input) {
return *input * 2;
}
foo.c
name	location
use	location

More Related Content

Similar to 8th TUC Meeting - David Meibusch, Nathan Hawes (Oracle Labs Australia). Frappé: Querying and managing evolving code dependency graphs. (20)

PDF
Fishing Graphs in a Hadoop Data Lake
DataWorks Summit/Hadoop Summit
 
PDF
Fishing Graphs in a Hadoop Data Lake by Jörg Schad and Max Neunhoeffer at Big...
Big Data Spain
 
PDF
GraphTech Ecosystem - part 2: Graph Analytics
Linkurious
 
PDF
Presentation distro recipes-2013
olberger
 
PDF
Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...
Anne Nicolas
 
PDF
Fishing Graphs in a Hadoop Data Lake
ArangoDB Database
 
PDF
IJSRED-V2I3P43
IJSRED
 
PPTX
Apache Jena Elephas and Friends
Rob Vesse
 
PDF
Introduction to the source{d} Stack
source{d}
 
PPT
Graph db
Gagan Agrawal
 
PPTX
Repository for data crawled from multiple social networks
Constantinos Christofilos
 
PDF
RDF_API_Java_Stefan_Apostoaie
iosstef
 
PDF
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Martin Junghanns
 
PDF
Morpheus - SQL and Cypher in Apache Spark
Henning Kropp
 
PDF
Diagnose Your Microservices
Marcus Hirt
 
PPTX
Aleksandr Kutsan "Managing Dependencies in C++"
LogeekNightUkraine
 
PDF
Frappe framework
eurosigdoc acm
 
PDF
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
Shane Coughlan
 
PDF
Comparative Study That Aims Rdf Processing For The Java Platform
Computer Science
 
Fishing Graphs in a Hadoop Data Lake
DataWorks Summit/Hadoop Summit
 
Fishing Graphs in a Hadoop Data Lake by Jörg Schad and Max Neunhoeffer at Big...
Big Data Spain
 
GraphTech Ecosystem - part 2: Graph Analytics
Linkurious
 
Presentation distro recipes-2013
olberger
 
Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...
Anne Nicolas
 
Fishing Graphs in a Hadoop Data Lake
ArangoDB Database
 
IJSRED-V2I3P43
IJSRED
 
Apache Jena Elephas and Friends
Rob Vesse
 
Introduction to the source{d} Stack
source{d}
 
Graph db
Gagan Agrawal
 
Repository for data crawled from multiple social networks
Constantinos Christofilos
 
RDF_API_Java_Stefan_Apostoaie
iosstef
 
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Martin Junghanns
 
Morpheus - SQL and Cypher in Apache Spark
Henning Kropp
 
Diagnose Your Microservices
Marcus Hirt
 
Aleksandr Kutsan "Managing Dependencies in C++"
LogeekNightUkraine
 
Frappe framework
eurosigdoc acm
 
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
Shane Coughlan
 
Comparative Study That Aims Rdf Processing For The Java Platform
Computer Science
 

More from LDBC council (20)

PDF
8th TUC Meeting - Juan Sequeda (Capsenta). Integrating Data using Graphs and ...
LDBC council
 
PDF
8th TUC Meeting - Zhe Wu (Oracle USA). Bridging RDF Graph and Property Graph...
LDBC council
 
PDF
8th TUC Meeting – Yinglong Xia (Huawei), Big Graph Analytics Engine
LDBC council
 
PDF
8th TUC Meeting – George Fletcher (TU Eindhoven), gMark: Schema-driven data a...
LDBC council
 
PDF
8th TUC Meeting – Marcus Paradies (SAP) Social Network Benchmark
LDBC council
 
PDF
8th TUC Meeting - Sergey Edunov (Facebook). Generating realistic trillion-edg...
LDBC council
 
PDF
Weining Qian (ECNU). On Statistical Characteristics of Real-Life Knowledge Gr...
LDBC council
 
PDF
8th TUC Meeting - Peter Boncz (CWI). Query Language Task Force status
LDBC council
 
PDF
8th TUC Meeting | Lijun Chang (University of New South Wales). Efficient Subg...
LDBC council
 
PDF
8th TUC Meeting - Eugene I. Chong (Oracle USA). Balancing Act to improve RDF ...
LDBC council
 
PDF
8th TUC Meeting -
LDBC council
 
PDF
8th TUC Meeting - Martin Zand University of Rochester Clinical and Translatio...
LDBC council
 
PDF
8th TUC Meeting - Tim Hegeman (TU Delft). Social Network Benchmark, Analytics...
LDBC council
 
PDF
LDBC 8th TUC Meeting: Introduction and status update
LDBC council
 
PDF
LDBC 6th TUC Meeting conclusions
LDBC council
 
PDF
Parallel and incremental materialisation of RDF/DATALOG in RDFOX
LDBC council
 
PDF
MODAClouds Decision Support System for Cloud Service Selection
LDBC council
 
PDF
E-Commerce and Graph-driven Applications: Experiences and Optimizations while...
LDBC council
 
PDF
LDBC SNB Benchmark Auditing
LDBC council
 
PDF
Social Network Benchmark Interactive Workload
LDBC council
 
8th TUC Meeting - Juan Sequeda (Capsenta). Integrating Data using Graphs and ...
LDBC council
 
8th TUC Meeting - Zhe Wu (Oracle USA). Bridging RDF Graph and Property Graph...
LDBC council
 
8th TUC Meeting – Yinglong Xia (Huawei), Big Graph Analytics Engine
LDBC council
 
8th TUC Meeting – George Fletcher (TU Eindhoven), gMark: Schema-driven data a...
LDBC council
 
8th TUC Meeting – Marcus Paradies (SAP) Social Network Benchmark
LDBC council
 
8th TUC Meeting - Sergey Edunov (Facebook). Generating realistic trillion-edg...
LDBC council
 
Weining Qian (ECNU). On Statistical Characteristics of Real-Life Knowledge Gr...
LDBC council
 
8th TUC Meeting - Peter Boncz (CWI). Query Language Task Force status
LDBC council
 
8th TUC Meeting | Lijun Chang (University of New South Wales). Efficient Subg...
LDBC council
 
8th TUC Meeting - Eugene I. Chong (Oracle USA). Balancing Act to improve RDF ...
LDBC council
 
8th TUC Meeting -
LDBC council
 
8th TUC Meeting - Martin Zand University of Rochester Clinical and Translatio...
LDBC council
 
8th TUC Meeting - Tim Hegeman (TU Delft). Social Network Benchmark, Analytics...
LDBC council
 
LDBC 8th TUC Meeting: Introduction and status update
LDBC council
 
LDBC 6th TUC Meeting conclusions
LDBC council
 
Parallel and incremental materialisation of RDF/DATALOG in RDFOX
LDBC council
 
MODAClouds Decision Support System for Cloud Service Selection
LDBC council
 
E-Commerce and Graph-driven Applications: Experiences and Optimizations while...
LDBC council
 
LDBC SNB Benchmark Auditing
LDBC council
 
Social Network Benchmark Interactive Workload
LDBC council
 
Ad

Recently uploaded (20)

PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Ad

8th TUC Meeting - David Meibusch, Nathan Hawes (Oracle Labs Australia). Frappé: Querying and managing evolving code dependency graphs.