Download presentation
Presentation is loading. Please wait.
Published byEarl Holmes Modified over 7 years ago
1
COMP9321 Web Application Engineering Semester 2, 2016
Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 5 COMP9321, 16s2, Week 5
2
Semantic Web COMP9321, 16s2, Week 5
3
Semantic Web It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. COMP9321, 16s2, Week 5
4
Semantic Web It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. Web of Data beyond the Web of Documents! COMP9321, 16s2, Week 5
5
Semantic Web It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. Web of Data beyond the Web of Documents! Human Readable COMP9321, 16s2, Week 5 un-typed Links
6
Semantic Web It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. Web of Data beyond the Web of Documents! Human Readable Are two documents talking about the same “thing”? Sydney COMP9321, 16s2, Week 5 un-typed Links
7
Semantic Web It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. Web of Data beyond the Web of Documents! Human Readable Are two documents talking about the same “thing”? Sydney Sydney: A city in Australia? A city in Canada? A person? COMP9321, 16s2, Week 5 un-typed Links
8
(typed Links among THINGS)
Semantic Web It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. Web of Data beyond the Web of Documents! Machine Readable (typed Links among THINGS) COMP9321, 16s2, Week 5
9
(typed Links among THINGS)
Semantic Web It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. Web of Data beyond the Web of Documents! M. Turnbull Machine Readable (typed Links among THINGS) was-born-in Prime-Minister-of city-in Sydney Australia COMP9321, 16s2, Week 5
10
(typed Links among THINGS)
Semantic Web It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. Web of Data beyond the Web of Documents! M. Turnbull Machine Readable (typed Links among THINGS) was-born-in Prime-Minister-of Degree of Structure: High (based on RDF data model) city-in Sydney Australia e.g. Google KG COMP9321, 16s2, Week 5
11
W3C's "Semantic Web Vision“
Web information has exact meaning! e.g. automatic airline reservation Knows about your preferences: builds up a knowledge-base using your past activities COMP9321, 16s2, Week 5
12
W3C's "Semantic Web Vision“
Web information has exact meaning! e.g. automatic airline reservation Knows about your preferences: builds up a knowledge-base using your past activities Combines the local knowledge with remote services: social networks airline preferences Hospital Information Systems dietary requirements Linkedin Jobs and Calendaring information … COMP9321, 16s2, Week 5
13
W3C's "Semantic Web Vision“
Web information has exact meaning Web information can be understood and processed by computers Provide a common way to describe information: so it can be read and understood by computer applications e.g. Describing : properties for publications, such as Author and Title information about web pages such as content, author, and creation date content and rating for web pictures content for search engines electronic libraries … COMP9321, 16s2, Week 5
14
W3C's "Semantic Web Vision“
Web information has exact meaning Web information can be understood and processed by computers Data should be available for machines for further processing: It is important as tasks often require to combine data on the Web: hotel and travel information may come from different sites Information should easily be exchanged between different platforms. searches in different digital libraries … Provide a common way to describe information: so it can be read and understood by computer applications e.g. Describing : properties for publications, such as Author and Title information about web pages such as content, author, and creation date content and rating for web pictures content for search engines electronic libraries … COMP9321, 16s2, Week 5
15
W3C's "Semantic Web Vision“
Web information has exact meaning Web information can be understood and processed by computers Computers can integrate information from the web Map the various data onto an abstract data representation Merge the resulting representations Start making queries on the whole! queries that could not have been done on the individual data sets COMP9321, 16s2, Week 5
16
W3C's "Semantic Web Vision“
Web information has exact meaning Web information can be understood and processed by computers Computers can integrate information from the web Map the various data onto an abstract data representation Merge the resulting representations Start making queries on the whole! queries that could not have been done on the individual data sets COMP9321, 16s2, Week 5
17
3A. Map the various data onto an abstract data representation
Example: A simplified bookstore data (dataset “A”) ID Author-id Title Publisher-id Year ISBN-13: id-BHO The Audacity of Hope id-1954 2008 ID Author-Name Home Page id-BHO Barack Obama ID Pub-Name Headquarter Location id-1954 Vintage Books New York COMP9321, 16s2, Week 5
18
3A. Map the various data onto an abstract data representation
Example: A simplified bookstore data (dataset “A”) A:Title ISBN-13: The Audacity of Hope A:Year 2008 A:Publisher A:Pub-Name Vintage Books A: Author A:hq-Location New York A: Author-Name Barack Obama A: Homepage COMP9321, 16s2, Week 5
19
3A. Map the various data onto an abstract data representation
Example: A simplified Knowledge Base (dataset “B”) A knowledge base (KB) typically consists of a set of concepts organized into a taxonomy, instances for each concept, and relationships among the concepts. Examples: Freebase, DBpedia , YAGO, Wikidata ~ Chai, Xiaoyong, et al. "Social Media Analytics: The Kosmix Story." IEEE Data Eng. Bull. 36.3 (2013): 4-12. COMP9321, 16s2, Week 5
20
3A. Map the various data onto an abstract data representation
Example: A simplified Knowledge Base (dataset “B”) Barak Obama B: BirthPlace Hawaii B: BirthDate B: Spouse B: Name Michelle Obama B: Profession Lawyer B: GraduateFrom Harvard Law School COMP9321, 16s2, Week 5
21
3A. Map the various data onto an abstract data representation
Example: A simplified Knowledge Base (dataset “B”) same-as COMP9321, 16s2, Week 5
22
W3C's "Semantic Web Vision“
Web information has exact meaning Web information can be understood and processed by computers Computers can integrate information from the web Map the various data onto an abstract data representation Merge the resulting representations Start making queries on the whole! queries that could not have been done on the individual data sets COMP9321, 16s2, Week 5
23
3B. Merge the resulting representations
Example: A simplified Knowledge Base (dataset “B”) A: Author A: Author-Name A: Homepage COMP9321, 16s2, Week 5
24
W3C's "Semantic Web Vision“
Web information has exact meaning Web information can be understood and processed by computers Computers can integrate information from the web Map the various data onto an abstract data representation Merge the resulting representations Start making queries on the whole! queries that could not have been done on the individual data sets COMP9321, 16s2, Week 5
25
3C. Start making queries on the whole!
Queries that could not have been done on the individual data sets : Give me list of the books whose : author was born in Hawaii. author was born in 1961. author is married. author’s spouse was graduated from Harvard … More? We could add extra knowledge to the merged datasets, e.g.: Full classification of various types of library data; Geographical information, maps; Images; Social Media Accounts; … COMP9321, 16s2, Week 5
26
3C. Start making queries on the whole!
Queries that could not have been done on the individual data sets : Give me list of the books whose : author was born in Hawaii. author was born in 1961. author is married. author’s spouse was graduated from Harvard … More? We could add extra knowledge to the merged datasets, e.g.: Full classification of various types of library data; Geographical information, maps; Images; Social Media Accounts; … Even more powerful queries can be asked as a result COMP9321, 16s2, Week 5
27
Semantic Web It is a collection of standard technologies to realize a Web of Data! RDF, OWL, SPARQL, etc. COMP9321, 16s2, Week 5
28
Resource Description Framework (RDF)
COMP9321, 16s2, Week 5
29
Resource Description Framework (RDF)
RDF is a framework for describing resources on the web. e.g. Web documents concepts from the real world (e.g. people, organisations, topics, things) COMP9321, 16s2, Week 5
30
Resource Description Framework (RDF)
RDF is a framework for describing resources on the web. RDF uses Web identifiers (URIs) to identify resources. e.g. Web documents concepts from the real world (e.g. people, organisations, topics, things) URIs (Uniform Resource Identifiers) are very important, providing both the core of the framework itself and the link between RDF and the Web. COMP9321, 16s2, Week 5
31
Resource Description Framework (RDF)
On the Semantic Web, URIs identify not just Web documents, but also real-world objects like people and cars. Example (Web Documents): The company “Example Inc.” has a Web site at Part of the site is a white-pages service listing the names and contact details of the employees. Alice and Bob both work at Example Inc. The structure of the Web site might thus be: each of the pages mentioned above are Web documents. COMP9321, 16s2, Week 5
32
Resource Description Framework (RDF)
On the Semantic Web, URIs identify not just Web documents, but also real-world objects like people and cars. Example (objects): The company “Example Inc.” wants to publish contact data of their employees on the Semantic Web. Business partners can import this data into their address books. Hash URIs 303 URIs FOAF (an acronym of Friend of a friend) is a machine-readable ontology describing persons, their activities and their relations to other people and objects. COMP9321, 16s2, Week 5
33
RDF Resource, Property, and Property Value
anything that can have a URI e.g. Property: a Resource that has a name, such as “author”… Property Value: the value of a Property, such as “Barack Obama" a property value can be another resource Statement: The combination of a Resource, a Property, and a Property value forms a Statement. COMP9321, 16s2, Week 5
34
RDF Resource, Property, and Property Value
Statement known as the subject, predicate and object Predicate Subject Object Example: Statement: The author of “ is Barack Obama. Subject: Predicate: author Object: Barack Obama COMP9321, 16s2, Week 5
35
RDF (DBLP Example) <?xml version="1.0" encoding="US-ASCII"?>
<rdf:RDF xmlns:dblp=" xmlns:rdf=" <dblp: Description rdf:about=" <dblp:title>Web Services - Concepts, Architectures and Applications</dblp:title> <dblp:bibtexType rdf:resource=" /> <dblp:publicationType rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:publishedInSeries>Data-Centric Systems and Applications</dblp:publishedInSeries> <dblp:yearOfPublication>2004</dblp:yearOfPublication> <dblp:publishedBy>Springer</dblp:publishedBy> <dblp:isbn13> </dblp:isbn13> </dblp: Description > </rdf:RDF> COMP9321, 16s2, Week 5
36
RDF (DBLP Example) <?xml version="1.0" encoding="US-ASCII"?> <rdf:RDF xmlns:dblp=" xmlns:rdf=" <dblp: Description rdf:about=" <dblp:title>Web Services - Concepts, Architectures and Applications</dblp:title> <dblp:bibtexType rdf:resource=" /> <dblp:publicationType rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:publishedInSeries>Data-Centric Systems and Applications</dblp:publishedInSeries> <dblp:yearOfPublication>2004</dblp:yearOfPublication> <dblp:publishedBy>Springer</dblp:publishedBy> <dblp:isbn13> </dblp:isbn13> </dblp: Description > </rdf:RDF> The xmlns:rdf namespace, specifies that elements with the rdf prefix are from the namespace The xmlns:dblp namespace, specifies that elements with the cd prefix are from the namespace The <rdf:Description> element contains the description of the resource identified by the rdf:about attribute. Other elements are the properties of the resource. COMP9321, 16s2, Week 5
37
RDF (DBLP Example) Properties as Resources Properties as Attributes
<?xml version="1.0" encoding="US-ASCII"?> <rdf:RDF xmlns:dblp=" xmlns:rdf=" <dblp: Description rdf:about=" <dblp:title>Web Services - Concepts, Architectures and Applications</dblp:title> <dblp:bibtexType rdf:resource=" /> <dblp:publicationType rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:authoredBy rdf:resource=" /> <dblp:publishedInSeries>Data-Centric Systems and Applications</dblp:publishedInSeries> <dblp:yearOfPublication>2004</dblp:yearOfPublication> <dblp:publishedBy>Springer</dblp:publishedBy> <dblp:isbn13> </dblp:isbn13> </dblp: Description > </rdf:RDF> Properties as Resources Properties as Attributes COMP9321, 16s2, Week 5
38
RDF (DBLP Example) Google(“triple store”) COMP9321, 16s2, Week 5
Beheshti et. al.: Extending SPARQL to Support Entity Grouping and Path Queries. (2012) COMP9321, 16s2, Week 5
39
RDF Schema (RDFS) COMP9321, 16s2, Week 5
40
RDF Schema (RDFS) RDF Schema provides a data-modelling vocabulary for RDF data. RDF Schema is an extension of the basic RDF vocabulary. RDF Schema provides the framework to describe application-specific classes and properties. Classes in RDF Schema are much like classes in object oriented programming languages. “classes” are also resources, but… they are also a collection of possible resources <?xml version="1.0"?> <rdf:RDF xmlns:rdf=" xmlns:rdfs=" xml:base=" <rdfs:Class rdf:ID=“human" /> <rdfs:Class rdf:ID=“student"> <rdfs:subClassOf rdf:resource="#human"/> </rdfs:Class> </rdf:RDF> COMP9321, 16s2, Week 5
41
RDF Schema (RDFS) RDF Schema provides a data-modelling vocabulary for RDF data. RDF Schema is an extension of the basic RDF vocabulary. RDF Schema provides the framework to describe application-specific classes and properties. Classes in RDF Schema are much like classes in object oriented programming languages. “classes” are also resources, but… they are also a collection of possible resources Dublin Core Metadata Initiative (DCMI) is an open organization supporting innovation in metadata design and best practices across the metadata ecology. DCMI has created some predefined properties for describing documents. <?xml version="1.0"?> <rdf:RDF xmlns:rdf=" xmlns:rdfs=" xml:base=" <rdfs:Class rdf:ID=“human" /> <rdfs:Class rdf:ID=“student"> <rdfs:subClassOf rdf:resource="#human"/> </rdfs:Class> </rdf:RDF> COMP9321, 16s2, Week 5
42
Web Ontology Language (OWL)
COMP9321, 16s2, Week 5
43
Web Ontology Language (OWL)
Ontology is about the exact description of things (web information) and their relationships. OWL was designed to provide a common way to process the content of web information OWL and RDF are much of the same thing, but OWL is a stronger language with greater machine interpretability than RDF. OWL provides additional vocabulary along with a formal semantics OWL making it easier for machines to automatically process and integrate information available on the Web. OWL has three sublanguages OWL Lite OWL DL OWL Full OWL is complex: OWL is a large set of additional terms COMP9321, 16s2, Week 5
44
OWL: Term equivalences
For classes: owl:equivalentClass: two classes have the same individuals owl:disjointWith: no individuals in common For properties: owl:equivalentProperty owl:propertyDisjointWith For individuals: owl:sameAs: two URIs refer to the same concept (“individual”) owl:differentFrom: negation of owl:sameAs COMP9321, 16s2, Week 5
45
OWL: Term equivalences
For classes: owl:equivalentClass: two classes have the same individuals owl:disjointWith: no individuals in common For properties: owl:equivalentProperty owl:propertyDisjointWith For individuals: owl:sameAs: two URIs refer to the same concept (“individual”) owl:differentFrom: negation of owl:sameAs Example: Connecting to French… COMP9321, 16s2, Week 5
46
OWL: Ontology development
The hard work is to create the ontologies requires a good knowledge of the area to be described OWL is just a tool to formalize ontologies large scale ontologies are often developed in a community process Ontologies should be shared and reused can be via the simple namespace mechanisms… …or via explicit import COMP9321, 16s2, Week 5
47
Ontologies Examples eClassOwl: eBusiness ontology for products and services, 75,000 classes and 5,500 properties National Cancer Institute’s ontology: about 58,000 classes Open Biomedical Ontologies Foundry: a collection of ontologies, including the Gene Ontology to describe gene and gene product attributes in any organism or protein sequence and annotation terminology and data (UniProt) BioPAX: for biological pathway data COMP9321, 16s2, Week 5
48
Rules Rule Interchange Format (RIF)
COMP9321, 16s2, Week 5
49
Rules There is a long history of rule languages and rule-based systems
eg: logic programming (Prolog), production rules Lots of small and large rule systems E.g. from mail filters to expert systems Why rules on the Semantic Web? There are conditions that ontologies (ie, OWL) cannot express a well known example is Horn rules: (P1 ∧ P2 ∧ …) → C COMP9321, 16s2, Week 5
50
Rules Example a novel with over 500 pages and costing less than $5 is a cheap book. If { ?x rdf:type p:Novel; p:page_number ?p; p:price rdf:value ?z ?p > "500"^^xsd:integer. ?z < "5.0"^^xsd:double. } then { ?x rdf:type p:CheapBook COMP9321, 16s2, Week 5
51
A new requirement: exchange of rules
Applications may want to exchange their rules: e.g. negotiate eBusiness contracts across platforms e.g. describe privacy requirements and policies Rule Interchange Format (RIF): Goals: expresses the rules a bit like a rule language can be used to exchange rules among engines Challenges: Rule based systems can be very different different rule semantics A universal exchange format is not feasible COMP9321, 16s2, Week 5
52
A new requirement: exchange of rules
Rule Interchange Format (RIF): The idea is to define “cores” for a family of languages with “variants” Introduction to the Semantic Web (tutorial), Ivan Herman, W3C COMP9321, 16s2, Week 5
53
A new requirement: exchange of rules
Rule Interchange Format (RIF): The idea is to define “cores” for a family of languages with “variants” Possible dialects: F-logic, production rules, fuzzy or probabilistic logic, … Introduction to the Semantic Web (tutorial), Ivan Herman, W3C COMP9321, 16s2, Week 5
54
A new requirement: exchange of rules
Rule Interchange Format (RIF): The idea is to define “cores” for a family of languages with “variants” Introduction to the Semantic Web (tutorial), Ivan Herman, W3C COMP9321, 16s2, Week 5
55
Rules vs OWL? In a SW application, should I use RIF, OWL, or both?
The two approaches are complimentary there are things that rules cannot really express or infer eg, inferencing complex relationships among classes there are things that ontologies cannot really express or in only a very complicated manner eg, complex Horn rules Often, applications require both Interesting paper: Paul Suganthan, G. C., et al. "Why Big Data Industrial Systems Need Rules and What We Can Do About It." (SIGMOD’2015). Introduction to the Semantic Web (tutorial), Ivan Herman, W3C COMP9321, 16s2, Week 5
56
Linking Open Data (LOD)
COMP9321, 16s2, Week 5
57
Linking Open Data (LOD)
- Goal: “expose” open datasets in RDF - Set RDF links among the data items from different datasets - Set up query endpoints - Result: billions of triples and millions of links… - The important point here is that : the data becomes available to the World via a unified format (ie, RDF). the various datasets are interlinked together e.g. DBpedia project COMP9321, 16s2, Week 5
58
Linking Open Data (LOD)
COMP9321, 16s2, Week 5
59
Linking Open Data (LOD)
Linked Data: … exposing, sharing, and connecting pieces of data, information, and knowledge on the Semantic Web using URIs and RDF COMP9321, 16s2, Week 5
60
More? The Google Knowledge Graph is a system that Google launched in May 2012 that understands facts about people, places and things and how these entities are all connected. COMP9321, 16s2, Week 5
61
Query RDF Data (SPARQL)
COMP9321, 16s2, Week 5
62
Query RDF Data (SPARQL)
RDF is a directed, labelled graph data format for representing information in the Web. COMP9321, 16s2, Week 5
63
Query RDF Data (SPARQL)
SPARQL Protocol And RDF Query Language, is an RDF query language. This specification defines the syntax and semantics of the SPARQL query language for RDF. SPARQL can be used to express queries across diverse data sources. SPARQL contains capabilities for querying required and optional graph patterns The results of SPARQL queries can be results sets or RDF graphs. COMP9321, 16s2, Week 5
64
Query RDF Data (SPARQL)
The (subject,?p,?o) is a pattern for what we are looking for with ?p and ?o as “unknowns” SPARQL query: SELECT ?p ?o WHERE { subject ?p ?o } The triples in WHERE define the graph pattern The query returns all p,o pairs COMP9321, 16s2, Week 5
65
SPARQL: Simple Query Data: Query: Result:
COMP9321, 16s2, Week 5
66
SPARQL: Simple Query SPARQL is not based on XML Data:
Names beginning with a ? or a $ are variables. Graph patterns are given as a list of triple patterns enclosed within braces {} The variables named after the SELECT keyword are the variables that will be returned as results. Data: Query: Result: COMP9321, 16s2, Week 5
67
SPARQL: Multiple Matches
Data: Query: Result: COMP9321, 16s2, Week 5
68
SPARQL: Constraints SPARQL FILTER functions like regex can test RDF literals. Data: Query: Result: COMP9321, 16s2, Week 5
69
SPARQL: Constraints SPARQL FILTERs can restrict on arithmetic expressions. Data: Query: Result: COMP9321, 16s2, Week 5
70
SPARQL usage in practice
SPARQL is usually used over the network separate documents define the protocol and the result format SPARQL Protocol for RDF with HTTP and SOAP bindings SPARQL results in XML or JSON formats Big datasets usually offer “SPARQL endpoints” using this protocol typical example: SPARQL endpoint to DBpedia COMP9321, 16s2, Week 5
71
SPARQL usage in practice
SPARQL is usually used over the network separate documents define the protocol and the result format SPARQL Protocol for RDF with HTTP and SOAP bindings SPARQL results in XML or JSON formats Big datasets usually offer “SPARQL endpoints” using this protocol typical example: SPARQL endpoint to DBpedia COMP9321, 16s2, Week 5
72
Apache Jena https://jena.apache.org/
COMP9321, 16s2, Week 5
73
Apache Jena A free and open source Java framework for building Semantic Web and Linked Data applications. The framework is composed of different APIs interacting together to process RDF data. COMP9321, 16s2, Week 5
74
Apache Jena Main Java packages: oaj -> org.apache.jena
COMP9321, 16s2, Week 5
75
Apache Jena ARQ - A SPARQL Processor for Jena
ARQ is a query engine for Jena that supports the SPARQL RDF Query language. ARQ - Application API The application API is in the package org.apache.jena.query Key Classes Query - a class that represents the application query. QueryExecution - represents one execution of a query. QueryExecutionFactory - a place to get QueryExecution instances. DatasetFactory - a place to make datasets. COMP9321, 16s2, Week 5
76
Apache Jena SELECT queries:
A query is created from a string using the QueryFactory. The query and model or RDF dataset to be queried are then passed to QueryExecutionFactory to produce an instance of a query execution. QueryExecution objects are java.lang.AutoCloseable and can be used in try-resource. Result are handled in a loop and finally the query execution is closed. COMP9321, 16s2, Week 5
77
Graphs https://neo4j.com/blog/oscon-twitter-graph/
COMP9321, 16s2, Week 5
78
Graphs Graph is a fundamental data structure that captures relationships between different data entities. Graphs are widely used for modelling complicated data in different application domains such as: social networks, protein networks, transportation networks, bibliographical networks, knowledge bases, many more. COMP9321, 16s2, Week 5
79
Graphs Graphs with millions and billions of nodes and edges have become very common For example, in 2012, Facebook has reported that its social network graph contains more than a billion users (nodes) and more than 140 billion friendship relationships (edges). The enormous growth in graph sizes requires huge amounts of computational power to analyze. Graph analytics is an important and effective discovery tool. For example, it enables identifying influential persons in a social network and inspecting fraud operations in a complex interaction network. COMP9321, 16s2, Week 5
80
Graphs Graphs with millions and billions of nodes and edges have become very common For example, in 2012, Facebook has reported that its social network graph contains more than a billion users (nodes) and more than 140 billion friendship relationships (edges). The enormous growth in graph sizes requires huge amounts of computational power to analyze. Graph analytics is an important and effective discovery tool. For example, it enables identifying influential persons in a social network and inspecting fraud operations in a complex interaction network. Large scale graph processing systems: survey and an experimental evaluation. Cluster Computing 18(3): (2015) COMP9321, 16s2, Week 5
81
Twitter Example https://neo4j.com/blog/oscon-twitter-graph/
COMP9321, 16s2, Week 5
82
Twitter Example Now: Live Demo
COMP9321, 16s2, Week 5
83
References http://www.w3.org/
Introduction to the Semantic Web (tutorial), Ivan Herman, W3C COMP9321, 16s2, Week 5
84
COMP9321, 16s2, Week 5
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.