Download presentation
Presentation is loading. Please wait.
Published byHoward Rose Modified over 8 years ago
1
1 State of the Semantic Web Ivan Herman, W3C (Last update: 19 August 2009)
2
2 WARNING TO THE READER! This is an evolving slide set. This means: it changes frequently there may be bugs, inconsistencies it may try to reflect the latest view of technology evolution but that is often a moving target (eg, in the areas of OWL, RIF,...) “Frozen” versions are instantiated for a specific presentation, and those become stable
3
3 Introduction: what is the overall status of the Semantic Web?
4
4 We have the basic technologies Stable specifications for the basics since 2004: RDF, OWL Work is being done to properly incorporate rules We have a standard for query since 2008: SPARQL We have some additional technologies to access/create RDF data: GRDDL, RDFa, POWDER, … Some fundamental vocabularies became pervasive (FOAF, Dublin Core,…)
5
5 Lots of Tools (not an exhaustive list!) Categories: Triple Stores Inference engines Converters Search engines Middleware CMS Semantic Web browsers Development environments Semantic Wikis … Some names: Jena, AllegroGraph, Mulgara, Sesame, flickurl, … TopBraid Suite, Virtuoso environment, Falcon, Drupal 7, Redland, Pellet, … Disco, Oracle 11g, RacerPro, IODT, Ontobroker, OWLIM, Tallis Platform, … RDF Gateway, RDFLib, Open Anzo, DartGrid, Zitgist, Ontotext, Protégé, … Thetus publisher, SemanticWorks, SWI- Prolog, RDFStore… …
6
6 Lots of tools (cont.) Significant speed, store capacity, etc; improvements are reported every day Some of the tools are open source, some are not; some are very mature, some are not: it is the usual picture of software tools, nothing special any more! We still need more “middleware” tools to properly combine what is already available… Anybody can start developing RDF-based applications today
7
7 There is a great community There are lots of tutorials, overviews, and books around again, some of them good, some of them bad, just as with any other areas… Active developers’ communities blogs, IRC channels, mailing lists, various fora: more than what one person can oversee… Some measures claim that there are over 10 7 Semantic Web documents on the Web
8
8 Great community… From a presentation given by David Norheim, Computas AS, ESTC2008, Vienna, Austria
9
9 Some deployment communities Major communities pick the technology up: digital libraries, defense, eGovernment, energy sector, financial services, health care, oil and gas industry, life sciences … Health care and life science sector is now very active also at W3C, in the form of an Interest Group Semantic Web also appears in the “Web 2.0/Web 3.0” world (whatever that means ) exchange of social data personal “space” applications multimedia asset management (video, photos, audio, …) etc
10
10 So what is the Semantic Web?
11
11 There is a growing number of application patterns referring to the Semantic Web: data integration using RDF, SKOS, OWL, … knowledge engineering with complex ontologies using, eg, OWL and/or rule based reasoning better data management, archiving, cataloging, etc eg, digital library applications managing, coordinating, combining Web services intelligent software agents improving search (usually using domain specific vocabularies…) etc
12
12 Is this where we are?
13
13 Maybe, but being an elephant is not necessary bad! it shows that the Semantic Web is a mature technology that there is lots of interest, applications various application areas pick what they need… e.g., some need sophisticated knowledge management, so they go for complex ontologies… some concentrate on semantically simpler vocabularies but large volume of data …and that is fine, there is room for many!
14
14 But it is good to (re-)emphasize some principles The Semantic Web: extends the principles of the Web from documents to data; create a Web of data
15
15 It is the Semantic Web, and not only Semantics! data, ontologies, vocabularies, etc, can (and should!) be shared, reused, potentially on Web scale the “network effect” on data one can use the Web infrastructure to denote “things”… Eg: http://www.ivan-herman/me denotes, well, me (not my home page, not my foaf file, but me!) … and add relationships for those, too! The major importance of RDF is that it provides an abstract integration layer for data on the Web
16
16 How do I get data out?
17
17 Public datasets are accumulating IgentaConnect bibliographic metadata storage: over 200 million triplets IgentaConnect RDFS/OWL Representation of WordNet: also downloadable as 150MB of RDF/XML RDFS/OWL Representation of WordNet “Département/canton/commune” structure of France published by the French Statistical InstituteDépartement/canton/commune Geonames Ontology and Data: 6 million (and growing) geographical features Geonames Ontology and Data “dbpedia”: infobox data of Wikipedia into RDFdbpedia Note the “Billion Triple Challenge 2008”!Billion Triple Challenge 2008
18
18 How to provide RDF data? Of course, one could create RDF data manually… … but that is unrealistic on a large scale Goal is to generate RDF data automatically when possible and “fill in” by hand only when necessary Various data formats should be considered databases (relational or otherwise) data in XML, HTML, in pictures, videos, etc Details of the process is still subject of very active R&D!
19
19 Bridge to relational databases Huge amount of data are stored in (relational) databases “RDFying” them is impossible “Bridges” are being defined: a layer between RDF and the relational data RDB tables are “mapped” to RDF graphs, possibly on the fly a number of systems can be used as database as well as triple stores (eg, Oracle, OpenLink, …) Work for a standard mapping language may start at W3C soon
20
20 Linking Open Data Project Goal: “expose” open datasets in RDF Set RDF links among the data items from different datasets Set up query endpoints Altogether billions of triples, millions of links…
21
21 Example data source: DBpedia DBpedia is a community effort to extract structured (“infobox”) information from Wikipedia provide a query endpoint to the dataset interlink the DBpedia dataset with other datasets on the Web
22
22 Extracting structured data from Wikipedia @prefix dbpedia. @prefix dbterm. dbpedia:Amsterdam dbterm:officialName “Amsterdam” ; dbterm:longd “4” ; dbterm:longm “53” ; dbterm:longs “32” ;... dbterm:leaderTitle “Mayor” ; dbterm:leaderName dbpedia:Job_Cohen ;... dbterm:areaTotalKm “219” ;... dbpedia:ABN_AMRO dbterm:location dbpedia:Amsterdam ;... @prefix dbpedia. @prefix dbterm. dbpedia:Amsterdam dbterm:officialName “Amsterdam” ; dbterm:longd “4” ; dbterm:longm “53” ; dbterm:longs “32” ;... dbterm:leaderTitle “Mayor” ; dbterm:leaderName dbpedia:Job_Cohen ;... dbterm:areaTotalKm “219” ;... dbpedia:ABN_AMRO dbterm:location dbpedia:Amsterdam ;...
23
23 Automatic links among open datasets owl:sameAs ;... owl:sameAs ;... owl:sameAs wgs84_pos:lat “52.3666667” ; wgs84_pos:long “4.8833333” ; geo:inCountry ;... owl:sameAs wgs84_pos:lat “52.3666667” ; wgs84_pos:long “4.8833333” ; geo:inCountry ;... Processors can switch automatically from one to the other…
24
24 The LOD “cloud”, March 2008
25
25 The LOD “cloud”, September 2008
26
26 The LOD “cloud”, March 2009
27
27 The LOD “cloud”, July 2009
28
28 Application specific portions of the cloud Eg, “bio” related datasets done, partially, by the “Linking Open Drug Data” task force of the HCLS IG at W3C
29
29 Data may be around already… Part of the (meta)data information is present in tools … but thrown away at output e.g., a business chart can be generated by a tool: it “knows” the structure, the classification, etc. of the chart, but, usually, this information is lost storing it in web data would be easy! “SW-aware” tools are around (even if you do not know it…), though more would be good: Photoshop CS stores metadata in RDF in, say, jpg files (using XMP) …
30
30 Generate (meta)data from unstructured data An emerging approach: use Natural Language Processing (NLP) to analyse text generate “meta” data (eg, tags) automatically (eg, Faviki) some systems do it behind the scenes (eg, Twine) some offer public web services (eg, Reuter’s Open Calais and Tagaroo, MOAT, Zemanta)
31
31 Generate (meta)data from unstructured data Not all these systems are geared directly at Semantic Web But they can be used to define some sort of controlled vocabulary (ontology, taxonomy, etc) without being heavy on users
32
32 Data may be extracted (a.k.a. “scraped”) Different tools, services, etc, come to the fore: services to get RDF data from images’ XMP data, from Flickr… scripts to convert spreadsheets to RDF etc Many of these tools are still individual “hacks”, but show a general tendency Hopefully more tools will emerge there is a separate wiki page collecting references to existing ones
33
33 Getting structured data to RDF: GRDDL Access structured data in XML/XHTML and turn it into RDF: defines XML attributes to bind a suitable script to transform (part of) the data into RDF script is usually XSLT but not necessarily has a variant for XHTML a “GRDDL Processor” runs the script and produces RDF on–the– fly A way to access existing structured data and “bring” it to RDF eg, a possible link to microformats exposing data from large XML use bases, like XBRL
34
34 GRDDL example: Dan’s homepage…
35
35 … behind the scenes …
36
36 …yielding, through the GRDDL transform a ; ; "Tools of Change (TOC)"; "2008-02-10"^^ ; "2008-02-14"^^ ; ; "New York, NY". a ; ; "Tools of Change (TOC)"; "2008-02-10"^^ ; "2008-02-14"^^ ; ; "New York, NY".
37
37 Getting structured data to RDF: RDFa Extends XHTML with a set of attributes to include structured data into XHTML Makes it easy to “bring” existing RDF vocabularies into XHTML uses namespaces for an easy mix of terminologies It can also be used with GRDDL but: no need to implement a separate transformation per vocabulary
38
38 RDFa example: Ivan’s homepage…
39
39 … behind the scenes …
40
40 …yielding, by extracting RDF from XHTML a foaf:Person; foaf:currentProject ; foaf:workInfoHomepage, ; foaf:pastProject ;... dc:title "W3C Offices". a foaf:Person; foaf:currentProject ; foaf:workInfoHomepage, ; foaf:pastProject ;... dc:title "W3C Offices".
41
41 Such data can be SPARQL-ed SELECT DISTINCT ?name ?home ?orgRole ?orgName ?orgHome # Get RDFa from my home page: FROM # GRDDL-ing http://www.w3.org/Member/Mail: FROM WHERE { ?foafPerson foaf:mbox ?mail; foaf:homepage ?home. ?individual contact:mailbox ?mail; contact:fullName ?name. ?orgUnit ?orgRole ?individual; org:name ?orgName; contact:homePage ?orgHome. } SELECT DISTINCT ?name ?home ?orgRole ?orgName ?orgHome # Get RDFa from my home page: FROM # GRDDL-ing http://www.w3.org/Member/Mail: FROM WHERE { ?foafPerson foaf:mbox ?mail; foaf:homepage ?home. ?individual contact:mailbox ?mail; contact:fullName ?name. ?orgUnit ?orgRole ?individual; org:name ?orgName; contact:homePage ?orgHome. }
42
42 How to “assign” RDF data to resources? This is important when the RDF data is used as “metadata” Some examples: copyright information for your photographs is a Web page usable on a mobile phone and how? bibliographical data for a publication annotation of the data resulting from a scientific experiment etc The issue: if I have the URI of the resource (photograph, publication, etc), how do I find the relevant RDF data?
43
43 The data might be embedded Some data formats allow the direct inclusion of (RDF) metadata: SVG (Scalable Vector Graphics) XHTML+RDFa microformats+GRDDL JPG files using the comment area and, eg, Adobe’s XMP technology That can include all the information, or link to further data
44
44 Simple linkage Some formats have special link statements. Eg, in (X)HTML:...... Similar facilities might exist in other formats (eg, SMIL)
45
45 POWDER POWDER (Protocol for Web Description Resources) provides for more elaborate scenarios With POWDER: 1define a set of resources by constraints on the URIs; eg URIs must begin with http://www.example.com/bla/ the port number in the URI-s should be XYZW 2define description resources, binding each resource in the set to additional information ● this must be attributed and may be open to authentication 3get such description resources, eg, via a link statements, via HTTP, via SPARQL from a depository, …
46
46 A POWDER scenario: copyright for photos
47
47 The gory details… The “description resource” is an XML file: <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:cc="http://creativecommons.org/ns#"> www.ex2.org /img/ <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:cc="http://creativecommons.org/ns#"> www.ex2.org /img/
48
48 The gory details… Powder processors may then return direct RDF triples, eg: or can transform this XML file into an OWL file for more generic processors a canonical processing of the XML file is defined by the POWDER specification cc:license.
49
49 POWDER Services Online POWDER service can be set up: a Web service with submit a URI and a resource description file return the RDF statements for that URI such service should be set up at W3C A GRDDL transform is also defined
50
50 But there is a hidden “hiccup” RDF makes a strong separation between URI as an ID for a resource URI as a datatype ( xsd:anyURI ) there is no “bridge” between the two POWDER includes a small extension to the formal semantics of RDF for two properties: wdrs:matchregex and wdrs:notmatchregex such that (R wdrs:matchregex Regex) holds iff the URI of R matches Regex
51
51 If you want to see the OWL version… <> wdrs:issuedBy. _:iriset_1 a owl:Class; owl:intersectionOf ( [ a owl:Restriction; owl:onProperty wsdr:matchregex ; owl:hasValue "..ugly regex for ex2.org"^^xsd:string ] [ a owl:Restriction; owl:onProperty wsdr:matchregex ; owl:hasValue "..ugly regex for /img"^^xsd:string ] ). _:desc_1 a owl:Restriction; owl:onProperty cc:license; owl:hasValue. _:iriset_1 rdfs:subClassOf _:desc_1. <> wdrs:issuedBy. _:iriset_1 a owl:Class; owl:intersectionOf ( [ a owl:Restriction; owl:onProperty wsdr:matchregex ; owl:hasValue "..ugly regex for ex2.org"^^xsd:string ] [ a owl:Restriction; owl:onProperty wsdr:matchregex ; owl:hasValue "..ugly regex for /img"^^xsd:string ] ). _:desc_1 a owl:Restriction; owl:onProperty cc:license; owl:hasValue. _:iriset_1 rdfs:subClassOf _:desc_1.
52
52 Consequences of the “hiccup” In practice this means that only “POWDER aware” agents can fully handle the description files note that the extension is fairly easy to add, so it is not a big implementation issue… Existence of the services to provide the triplets automatically relieve the pain…
53
53 Other POWDER features There are a number of additional features: built in authentication: description resources must be attributed and this is open for authentication assignments may carry validity dates packaging several resource descriptions in one, possibly control their processing order using tags to identify resources instead of URI patterns
54
54 Status Last technical discussions on some IRI vs. URI issues Hopefully this issue will be settled soon (and POWDER can go to PR…)
55
55 Simple Knowledge Organization System Goal: represent and share classifications, glossaries, thesauri for example: Dewey Decimal Classification, Art and Architecture Thesaurus, ACM classification of keywords and terms, library subject indices classification of Web 2.0 tags allow for a quick port of this traditional data, combine it with other data This is where SKOS comes in: define classes and properties to add those structures to an RDF universe
56
56 Example: entries in a glossary (from the RDF Semantics Glossary) Assertion (i) Any expression which is claimed to be true. (ii) The act of claiming something to be true. Class A general concept, category or classification. Something used primarily to classify or categorize other things. Resource (i) An entity; anything in the universe. (ii) As a class name: the class of everything; the most inclusive category possible. Assertion (i) Any expression which is claimed to be true. (ii) The act of claiming something to be true. Class A general concept, category or classification. Something used primarily to classify or categorize other things. Resource (i) An entity; anything in the universe. (ii) As a class name: the class of everything; the most inclusive category possible.
57
57 Example: entries in a glossary in SKOS
58
58 A more complex structure (on Dbpedia terms)
59
59 SKOS Reference overview Classes and Properties: Basic description ( Concept, ConceptScheme, …) Labeling ( prefLabel, altLabel, …) Documentation ( definition, historyNote, …) Semantic relations ( broader, narrower, related,… ) Collections ( Collection, OrderedCollection, …) Concept mappings ( broadMatch, narrowMatch,…)
60
60 SKOS and digital libraries SKOS plays an important role in “bridging” to digital libraries a huge community with its own traditions, style… … but huge amount of data to be “linked” to the Semantic Web! Major library metadata standards are being re- defined in terms of RDF (and SKOS), eg, “Resource Description and Access” (RDA) a major cataloging rule set for librarians potentially, all major library catalogs around the globe could be translated into RDF and, eg, linked as an Open Linked Data…
61
61 SKOS and OWL SKOS is geared towards some specific (though large) use cases, like taxonomies, glossaries, … annotations of complex structures (including ontologies) SKOS is a based on a very simple usage of OWL roughly on the rule based level the emphasis is on organization and not on logical inferences
62
62 Conclusions on data access There are many different data sources around Making them available on the Web and interlinking them is essential “Give your raw data” — Tim Berners-Lee There are number of technologies to do that: mapping from databases, GRDDL, RDFa, SKOS, POWDER, conversion tools
63
63 Querying Data
64
64 Querying RDF: SPARQL Is a W3C Standard since January 2008 it has already become one of the absolutely essential technologies on the SW SPARQL is a query language based on graph patterns a protocol layer to use SPARQL over, eg, HTTP an XML return format for the query results
65
65 SPARQL (cont.) There are also SPARQL “endpoints” on the Web: send a query and a reference to data over HTTP GET, receive the result in XML or JSON some of those can be easily installed on any machine big datasets often offer “SPARQL endpoints” to their local data applications may not need any direct RDF programming any more, just use a SPARQL processor
66
66 SPARQL as a unifying point!
67
67 The power of CONSTRUCT CONSTRUCT { ?p1 ?o1. ?s2 ?p2. } WHERE { ?p1 ?o1. ?s2 ?p2. } CONSTRUCT { ?p1 ?o1. ?s2 ?p2. } WHERE { ?p1 ?o1. ?s2 ?p2. } SELECT * FROM WHERE { ?author_of dbpedia:author res:Amitav_Ghosh. res:Amitav_Ghosh dbpedia:reference ?homepage; rdf:type ?type; foaf:name ?foaf_name. FILTER regex(str(?type),"foaf") } SELECT * FROM WHERE { ?author_of dbpedia:author res:Amitav_Ghosh. res:Amitav_Ghosh dbpedia:reference ?homepage; rdf:type ?type; foaf:name ?foaf_name. FILTER regex(str(?type),"foaf") } - SPARQL endpoint - returns RDF/XML - Data reused in a query elsewhere…
68
68 A word of warning on SPARQL… Some features are missing control and/or description on the entailment regimes of the triple store (RDFS? OWL-DL? …) modify the triple store querying collections or containers may be complicated no functions for sum, average, min, max, … ways of aggregating queries …
69
69 New SPARQL WG: Goals To define a small set of extensions to SPARQL No complex change, backward compatibility Listen to user and implementation experiences of the past few years Group started in February 2009
70
70 Just starting A request for features has been issued to the community collected on a Wiki page closed on the week of the 10 th of March; 35 entries these have to be categorized, possibly merged the group has to come up with a final list early May
71
71 Taste of some requested features Update, ie, ability to change the RDF store Accessing RDF containers and collections Nested queries in the WHERE and/or SELECT clauses Control of inference (RDFS, Rules, OWL XX…) Explicit negation (“UNSAID”) Aggregate functions in SELECT COUNT, MIN, MAX, AVG, … Path expressions ( ?x foaf:knows+ ?y ) …
72
72 Ontologies (OWL)
73
73 Ontologies: OWL This is also a stable specification since 2004 Separate layers have been defined, balancing expressibility vs. implementability (OWL-Lite, OWL- DL, OWL-Full) Looking at the tool list on W3C’s wiki again: a number programming environments include OWL reasoners stand-alone reasoners (downloadable or on the Web) ontology editors come to the fore OWL-DL and OWL-Lite relies on Description Logic, ie, uses a large body of accumulated knowledge
74
74 Ontologies Large ontologies are being developed (converted from other formats or defined in OWL). For example: 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; or UniProt for protein sequence and annotation terminology and data BioPAX: for biological pathway data ISO 15926: “Integration of life-cycle data for process plants including oil and gas production facilities”
75
75 OWL in applications An increasing number of applications rely on OWL (Pfizer, Nasa, Eli Lilly, Elsevier, FAO, …) it is worth looking at the yearly OWLED workshop proceedings Not all use complex reasoning; in many cases a small fraction of OWL is used
76
76 OWL Working Group A new Working Group started on the revision of OWL (a.ka. OWL 2) The goal of the group: 1.add a few extensions to current OWL that are useful, and is known to be implementable many things happened in research since 2004 features should (if possible) be valid both in the DL and OWL Full world 2.define “profiles” of OWL that are: smaller, easier to implement and deploy cover important application areas and are easily understandable to non-expert users
77
77 Some new features in OWL 2 Syntactic sugars New constructs for properties Extended datatype facilities Profiles Additional exchange syntaxes
78
78 But: the overall structure has not changed
79
79 Syntactic sugars Shorthands for disjoint union of classes definition of a series of mutually disjoint classes negative property assertions: a specific assertion is not valid
80
80 New constructs for properties Disjoint properties Reflexive, irreflexive, asymmetric properties Self restriction (a.k.a. local reflexivity): collect of individual for which the (x p x) holds Qualified cardinality restrictions eg, “class instance must have two black cats”
81
81 New constructs for properties: chains Properties, when applied one after the other, may be subsumed by yet another one: “if a person «P» was born in city «A» and «A» is in country «B» then «P» was born in country «B»” more formally: ex:born_in_country owl:propertyChainAxiom (ex:born_in_city ex:city_in_country). ex:born_in_country owl:propertyChainAxiom (ex:born_in_city ex:city_in_country). More than two constituents can be used There are some restrictions to avoid “circular” specifications
82
82 New constructs for properties: keys Inverse functional properties are important for identification of individuals But… identification based on one property may not be enough
83
83 Keys Identification is based on the identical values of two properties The rule applies to persons only “if two persons have the same emails and the same homepages then they are identical” “if two persons have the same emails and the same homepages then they are identical”
84
84 Previous rule in OWL 2 :Person rdf:type owl:Class; owl:hasKey (:email :homepage). :Person rdf:type owl:Class; owl:hasKey (:email :homepage).
85
85 Extended datatypes facilities OWL 1 just takes over RDF datatypes, but that is it But we might want datatypes “restrictions” in a more complex way; eg, numeric intervals “I am interested in a price range between €5 and €15” In OWL 1, one has to use XML Schema datatypes but it is very complex, and reasoners would have to understand a whole different syntax
86
86 OWL 2 datatype facets For each datatype one may have restrictions “facets” (min, max, length, etc) New datatypes can be defined as datatype ranges These can be used via the usual restriction mechanisms
87
87 Definition of a numeric interval in OWL 2 :AllowedPrice rdf:type rdfs:Datatype; owl:onDatatype xsd:float; owl:withRestriction ( [ xsd:minInclusive 5.0 ] [ xsd:maxExclusive 15.0 ] ). :AllowedPrice rdf:type rdfs:Datatype; owl:onDatatype xsd:float; owl:withRestriction ( [ xsd:minInclusive 5.0 ] [ xsd:maxExclusive 15.0 ] ). The possible facets depend on the datatype: xsd:pattern, xsd:length, xsd:maxLength, …
88
88 Typical usage of OWL 2 datatype restrictions :Affordable_book rdf:type owl:Class; rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty p:price_value; owl:allValuesFrom [ rdf:type rdfs:Datatype; owl:onDatatype xsd:float; owl:withRestriction ( [ xsd:minInclusive 5.0 ] [ xsd:maxExclusive 15.0 ] ) ] ]. :Affordable_book rdf:type owl:Class; rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty p:price_value; owl:allValuesFrom [ rdf:type rdfs:Datatype; owl:onDatatype xsd:float; owl:withRestriction ( [ xsd:minInclusive 5.0 ] [ xsd:maxExclusive 15.0 ] ) ] ]. ie: an affordable book has a price between 5.0 and 15.0
89
89 Profiles OWL 2 has the same duality with Full and DL But, for a number of applications, but even OWL Lite is too much There is a need for “light” versions of OWL: just a few extra possibilities added to RDFS
90
90 OWL 2 defines “profiles” Further restrictions on how terms can be used and what inferences can be expected The semantic approaches are identical, but restrictions may ensure even more manageable implementations
91
91 OWL 2 profiles Classification and instance queries in polynomial time: OWL-EL Implementable on top of conventional relational database engines: OWL-QL Implementable on top of traditional rule engines: OWL-RL
92
92 An example: OWL-RL Goal: to be implementable through rule engines Usage follows a similar approach to RDFS: 1) merge the ontology and the instance data into a bit RDF graph 2) use the rule engine to add new triples (as long as it is possible) 3) then, for example, use SPARQL to query the resulting (expanded) graph This application model is very important for RDF based applications
93
93 What can be done in OWL RL? Many features are available: identity of classes, instances, properties subproperties, subclasses, domains, ranges union and intersection of classes (though with some restrictions) property characterizations (functional, symmetric, etc) property chains keys some property restrictions (but not all inferences are possible)
94
94 What cannot be done in OWL RL? There are restrictions on what can be a sub and superclass. Eg, the following is not manageable: B rdf:type owl:Class; owl:unionOf (P Q R). A rdfs:subClassOf B. B rdf:type owl:Class; owl:unionOf (P Q R). A rdfs:subClassOf B. Some features are not available or are restricted: not all datatypes are available no datatype restrictions no minimum or exact cardinality restrictions maximum cardinality only with 0 and 1
95
95 What cannot be done in OWL RL? Some “natural” conclusions cannot be drawn, eg: A rdf:type owl:Class; owl:intersectionOf (U V S). A rdf:type owl:Class; owl:intersectionOf (U V S). does not yield: A rdfs:subClassOf U.
96
96 Another profile example: OWL QL Close to a subset of RL Cannot handle keys, functional, transitive, etc, properties essentially, handles classification of terms, class and property equivalence, etc Cannot handle owl:sameAs But… queries can be translated to SQL directly ie, there is no need to modify/extend the graph like in RL just have a conceptual mapping to a RDB, and off you go…
97
97 Alternative syntaxes for OWL 2 OWL constructs in RDF can be fairly verbose There are alternative syntaxes to express ontologies direct XML encoding of ontologies (OWL/XML) “functional” syntax “Manchester” syntax The official exchange syntax is RDF (RDF/XML) all other syntaxes are optional for tools
98
98 OWL 2 Functional syntax example Declaration(NamedIndividual(my:pound)) Declaration(NamedIndividual(my:euro)) Declaration(NamedIndividual(my:dollar)) Declaration(Class(:Currency)) EquivalentClasses(:Currency OneOf(my:euro my:pound my:dollar)) SubClassOf(my:Listed_Price AllValuesFrom(p:currency my:Currency)) Declaration(NamedIndividual(my:pound)) Declaration(NamedIndividual(my:euro)) Declaration(NamedIndividual(my:dollar)) Declaration(Class(:Currency)) EquivalentClasses(:Currency OneOf(my:euro my:pound my:dollar)) SubClassOf(my:Listed_Price AllValuesFrom(p:currency my:Currency)) my:pound rdf:type owl:Thing. my:euro rdf:type owl:Thing. my:dollar rdf:type owl:Thing. my:Currency rdf:type owl:Class; owl:oneOf (my:euro my:pound my:dollar). my:Listed_Price rdf:type owl:Class; rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty p:currency; owl:allValuesFrommy:Currency ]. my:pound rdf:type owl:Thing. my:euro rdf:type owl:Thing. my:dollar rdf:type owl:Thing. my:Currency rdf:type owl:Class; owl:oneOf (my:euro my:pound my:dollar). my:Listed_Price rdf:type owl:Class; rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty p:currency; owl:allValuesFrommy:Currency ]. is equal to:
99
99 Manchester syntax example Individual: my:euro Individual: my:pound Individual: my:dollar Class: my:Currency EquivalentTo {my:euro my:pound my:dollar} Class: my:Listed_Price that p:currency only my:Currency Individual: my:euro Individual: my:pound Individual: my:dollar Class: my:Currency EquivalentTo {my:euro my:pound my:dollar} Class: my:Listed_Price that p:currency only my:Currency my:pound rdf:type owl:Thing. my:euro rdf:type owl:Thing. my:dollar rdf:type owl:Thing. my:Currency rdf:type owl:Class; owl:oneOf (my:euro my:pound my:dollar). my:Listed_Price rdf:type owl:Class; rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty p:currency; owl:allValuesFrommy:Currency ]. my:pound rdf:type owl:Thing. my:euro rdf:type owl:Thing. my:dollar rdf:type owl:Thing. my:Currency rdf:type owl:Class; owl:oneOf (my:euro my:pound my:dollar). my:Listed_Price rdf:type owl:Class; rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty p:currency; owl:allValuesFrommy:Currency ]. is equal to:
100
100 Rules
101
101 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 (from mail filters to expert systems) Hundreds of niche markets
102
102 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 A different way of thinking — people may feel more familiar in one or the other
103
103 Things you may want to express An example: “a novel with over 500 pages and costing less than €5 is a cheap book” something like (in an ad-hoc syntax): If { ?x rdf:type p:Novel; p:page_number ?p; p:price [ p:currency p:€; rdf:value ?z ]. ?p > "500"^^xsd:integer. ?z < "5.0"^^xsd:double. } then { ?x rdf:type p:CheapBook } If { ?x rdf:type p:Novel; p:page_number ?p; p:price [ p:currency p:€; rdf:value ?z ]. ?p > "500"^^xsd:integer. ?z < "5.0"^^xsd:double. } then { ?x rdf:type p:CheapBook }
104
104 A new requirement: exchange of rules Applications may want to exchange their rules: negotiate eBusiness contracts across platforms: supply vendor- neutral representation of your business rules so that others may find you describe privacy requirements and policies, and let clients “merge” those (e.g., when paying with a credit card) Hence the name of the working group: Rule Interchange Format goal is a language that expresses the rules a bit like a rule language can be used to exchange rules among engines
105
105 Notes on RIF RIF does not concentrate on RDF only ie, certain constructions go beyond what RDF can express But there is a “subset” that is RDF and also OWL related For the coming few slides, forget about RDF We will come back to it. Promise!
106
106 In an ideal World
107
107 In the real World… Rule based systems can be very different different rule semantics (based on various type of model theories, on proof systems, etc) production rule systems, with procedural references, state transitions, etc Such universal exchange format is not feasible The idea is to define “cores” for a family of languages with “variants”
108
108 RIF “core”: only partial interchange
109
109 RIF “dialects” Possible dialects: F-logic, production rules, fuzzy or probabilistic logic, …
110
110 Role of dialects
111
111 Role of dialects
112
112 Role of dialects
113
113 Role of dialects
114
114 However… Even this model does not completely work The gap between production rules and “traditional” logic systems is too large A hierarchy of cores is necessary: a Basic Logic Dialect and Production Rule Dialect as “cores” for families of languages a common RIF Core binding these two
115
115 Schematically… The “BLD (Basic Logic Dialect)” is of the form: “ if condition true then this is true ” conditions may include functions, hierarchies The “PLD (Production Logic Dialect)” is of the form: “ if condition is true then do something ” The “Core”: shared subset of major languages technically: positive Horn without function terms, with some simple datatypes
116
116 Hierarchy of cores
117
117 Current status There is a fairly final draft for the BLD The work on the PLD Core is also on its way The Core is defined as an abstraction from BLD and PLD
118
118 RIF BLD RIF BLD is the closest to the needs of the RDF world BLD defines a “presentation syntax”, which is really to… present the constructions (is not necessarily implemented in tools) a formal XML syntax to encode and exchange the rules
119
119 RIF BLD example Document( Prefix(cpt http://example.com/concepts#) Prefix(ppl http://example.com/people#) Prefix(bks http://example.com/books#) Group ( Forall ?Buyer ?Item ?Seller ( cpt:buy(?Buyer ?Item ?Seller):- cpt:sell(?Seller ?Item ?Buyer) ) cpt:sell(ppl:John bks:LeRif ppl:Mary) ) Document( Prefix(cpt http://example.com/concepts#) Prefix(ppl http://example.com/people#) Prefix(bks http://example.com/books#) Group ( Forall ?Buyer ?Item ?Seller ( cpt:buy(?Buyer ?Item ?Seller):- cpt:sell(?Seller ?Item ?Buyer) ) cpt:sell(ppl:John bks:LeRif ppl:Mary) ) infers the following relationship: cpt:buy(ppl:Mary bks:LeRif ppl:John)
120
120 Additional RIF BLD features RIF BLD includes some extra features built-in datatypes and predicates notion of “local names”, a bit like RDF’s blank nodes a “frame-based” syntax (beyond predicates and functions): p[prop1->v1 prop2->v2] built-in abstractions for classes, subclassing, and typing: m # C, C1 ## C2 RIF BLD’s semantics follows the “usual” approach in logic
121
121 What about RDF(S), OWL, and BLD? Typical scenario: applications exchange rules that refer to RDF data To make that work: RDF facts/triples have to be representable in BLD harmonization on the concepts is necessary (eg, classes) the formal semantics of the two worlds should also be aligned There is a separate document that brings these together
122
122 What about RDF(S), OWL, and BLD? Triples can be expressed in BLD using the frame syntax: (s p o) is written as s[p->o] subclassing and typing of BLD are equivalent to their RDFS counterpart the datatypes are (almost…) identical to OWL 2
123
123 Rewrite of our earlier example Group ( Forall ?Buyer ?Item ?Seller ( ?Buyer[cpt:buy->?Item cpt:from->?Seller] :- ?Seller[cpt:sell->?Item cpt:to->?Buyer] ) Group ( Forall ?Buyer ?Item ?Seller ( ?Buyer[cpt:buy->?Item cpt:from->?Seller] :- ?Seller[cpt:sell->?Item cpt:to->?Buyer] ) We describe/exchange the rules:
124
124 Rewrite of our earlier example Group ( Forall ?Buyer ?Item ?Seller ( ?Buyer[cpt:buy->?Item cpt:from->?Seller] :- ?Seller[cpt:sell->?Item cpt:to->?Buyer] ) Group ( Forall ?Buyer ?Item ?Seller ( ?Buyer[cpt:buy->?Item cpt:from->?Seller] :- ?Seller[cpt:sell->?Item cpt:to->?Buyer] ) We describe/exchange the rules: ppl:Mary cpt:sell bks:LeRif; cpt:to ppl:John. ppl:Mary cpt:sell bks:LeRif; cpt:to ppl:John. We then import the RDF data
125
125 Rewrite of our earlier example Group ( Forall ?Buyer ?Item ?Seller ( ?Buyer[cpt:buy->?Item cpt:from->?Seller] :- ?Seller[cpt:sell->?Item cpt:to->?Buyer] ) Group ( Forall ?Buyer ?Item ?Seller ( ?Buyer[cpt:buy->?Item cpt:from->?Seller] :- ?Seller[cpt:sell->?Item cpt:to->?Buyer] ) We describe/exchange the rules: ppl:Mary cpt:sell bks:LeRif; cpt:to ppl:John. ppl:John cpt:buy bks:LeRif; cpt:from ppl:Mary. ppl:Mary cpt:sell bks:LeRif; cpt:to ppl:John. ppl:John cpt:buy bks:LeRif; cpt:from ppl:Mary. We then import the RDF data, and infer:
126
126 Remember the what we wanted from Rules? @prefix p:. @prefix rdf:. If { ?x rdf:type p:Novel; p:page_number ?p; p:price [ p:currency :€; rdf:value ?z ]. ?p > "500"^^xsd:integer. ?z < "5.0"^^xsd:double. } then { ?x rdf:type p:CheapBook } @prefix p:. @prefix rdf:. If { ?x rdf:type p:Novel; p:page_number ?p; p:price [ p:currency :€; rdf:value ?z ]. ?p > "500"^^xsd:integer. ?z < "5.0"^^xsd:double. } then { ?x rdf:type p:CheapBook }
127
127 The same with RIF BLD Presentation syntax Prefix(p http://www.example.org/bookterms#) Prefix(rdf http://www.w3.org/1999/02/22-rdf-syntax-ns#) Prefix(pred http://www.w3.org/2007/rif-builtin-predicate#) Forall ?x ?p ?z ( ?x # p:CheapBook :- And( ?x # p:Novel ?x[p:page_numper->?p p:price->_abc] _abc[p:currency->€ rdf:value->?z] External( pred:numeric-greater-than(?p 500) ) External( pred:numeric-less-than(?z 5.0) ) ) Prefix(p http://www.example.org/bookterms#) Prefix(rdf http://www.w3.org/1999/02/22-rdf-syntax-ns#) Prefix(pred http://www.w3.org/2007/rif-builtin-predicate#) Forall ?x ?p ?z ( ?x # p:CheapBook :- And( ?x # p:Novel ?x[p:page_numper->?p p:price->_abc] _abc[p:currency->€ rdf:value->?z] External( pred:numeric-greater-than(?p 500) ) External( pred:numeric-less-than(?z 5.0) ) )
128
128 A word on the syntax The RIF BLD Presentation syntax is… only syntax It can express more than what RDF needs Hopefully, a syntax will emerge with close to one of the RDF syntaxes with a better integration of rules only the relevant subset of BLD note: there is a syntax called n3 that is very close… can be mapped on BLD implementations as they come
129
129 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
130
130 Miscellaneous
131
131 Everything has not been solved… There are a number of issues, problems missing functionalities: encryption/signatures, fuzzy reasoning, … misconceptions, messaging problems need for more applications, deployment, acceptance etc
132
132 Other items… Security, trust, provenance combining cryptographic techniques with the RDF model, sign a portion of the graph, etc trust models Quality constraints on graphs “may I be sure that certain patterns are present in a graph?” Ontology merging, alignment, term equivalences, versioning, development, … etc
133
133 Other items: uncertainty Fuzzy logic look at alternatives of DL based on fuzzy logic alternatively, extend RDF(S) with fuzzy notions Probabilistic statements have an OWL class membership with a specific probability combine reasoners with Bayesian networks A W3C Incubator Group issued a report on the current status, possibilities, directions, etc report published in April 2008 Possible RIF dialect for fuzzy logic, for example?
134
134 Other items: naming The SW infrastructure relies on unique naming of “things” via URI-s Lots of discussions are happening that also touch upon general Web architecture: HTTP URI-s or other URN-s? using non-HTTP unnecessarily complicates the general infrastructure URI-s for “informational resources” and “non informational resources” how to ensure that URI-s used on the SW are dereferencable what inferences can be drawn upon an HTTP session? etc
135
135 Other items: naming (cont) A different aspect of naming: what is the URI for a specific entity (regardless of the technical details) what is the unique URI for, eg, Bach’s Well-Tempered Clavier? obviously important for, eg, music ontologies and data who has the authority or the means to define and maintain such URI-s? should we define characterizing properties for these and use owl:sameAs instead of a URI? the traditional library community may be of a big help in this area what is the URI of time-dependent entity (e.g., a specific point within a video)?
136
136 Revision of the RDF model? Some restrictions in RDF may be unnecessary (bNodes as predicates, literals as subject, …) Issue of “named graph”: possibility to give a URI to a set of triplets and make statements on those Syntax issues in RDF/XML (eg, QNames in properties) Add a time tag to statements? Internationalization issues with literals (how do I set “bidi” writing?) …
137
137 A major problem: messaging Some of the messaging on Semantic Web has gone terribly wrong over the years This has created lots of (unnecessary) controversies
138
138 Some of the frequent misconceptions… The Semantic Web is simply Artificial Intelligence on the Web It is just an ugly application of XML One has to add metadata to all Web pages, convert all databases and XML data to use the Semantic Web which is obviously unrealistic… One has to learn formal logic, knowledge representation techniques, etc, to use it (ie, it has nothing to do with the Web) The Semantic Web is simply Artificial Intelligence on the Web It is just an ugly application of XML One has to add metadata to all Web pages, convert all databases and XML data to use the Semantic Web which is obviously unrealistic… One has to learn formal logic, knowledge representation techniques, etc, to use it (ie, it has nothing to do with the Web)
139
139 … and some more … It relies on a centrally controlled super-ontology for “meaning” and this is impossible, because people will never agree on all terms as opposed to a democratic, bottom-up control of terms It is, essentially, an academic project, of no interest to industry and the real World It relies on a centrally controlled super-ontology for “meaning” and this is impossible, because people will never agree on all terms as opposed to a democratic, bottom-up control of terms It is, essentially, an academic project, of no interest to industry and the real World
140
140 RDF ≠ RDF/XML! RDF is a model, and RDF/XML is only one possible serialization thereof lots of people prefer, for example, Turtle a good percentage of the tools have Turtle parsers, too! The model is, after all, simple: interchange format for Web resources. That is it!
141
141 RDF ≠ RDF/XML! (cont.) RDF/XML is indeed a very complex serialization format Certainly not the nicest possible XML application good to know that it was created when XML was not yet final… Again: it is only syntactic sugar! One has to emphasize: RDF is not an XML application!
142
142 RDF is not that complex… Of course, the formal semantics of RDF is complex But the average user should not care, it is all “under the hood” how many users of SQL have ever read its formal semantics? it is not much simpler than RDF… People should “think” in terms of graphs, the rest is syntactic sugar!
143
143 Semantic Web ≠ Ontologies on the Web! Large, formal ontologies (like OWL) are important general applications patterns indeed rely on them But: use complex ontologies only when necessary you can be a perfectly decent citizen of the Semantic Web if you do not use OWL, or not even RDFS… Some of the ontologies may not be that complex this is the essence of the development of “profiles” in the current OWL Working Group just a small set of suitable terms to discover new relationships
144
144 SW Ontologies ≠ a central, big ontology! The “ethos” of the Semantic Web is on sharing, ie, sharing ontologies (small or large) A huge, central ontology would be unmanageable The practice: SW applications using ontologies always mix large number of ontologies and vocabularies (FOAF, DC, and others) the real advantage comes from this mix: that is also how new relationships may be discovered
145
145 A good example… Courtesy of Joanne Luciano, Mitre, and the W3C HCLS IG
146
146 Web 2.0 and SW are no enemies… Web 2.0 recognized the importance of data to be processed, mashed-up, mixed this is at the heart of the Semantic Web SW provides a set of consistent tools and definitions to achieve that
147
147 Web 2.0 and SW are no enemies… (cont.) Sometimes the simplicity of Web 2.0 (eg, in tagging, microformats) pays off… …sometimes more rigour is necessary in which case Semantic Web technologies come to the fore GRDDL is a good example for a “bridge” SPARQL can be used for more complex mash-ups Let us forget about a turf/ego war; it is unnecessary and counter-productive
148
148 It is not about SW vs. RDB vs. Web Services Each technology has its place and role Relational databases and SQL are here to stay forever… The goal is integration and not replacement
149
149 Semantic Web ≠ academic research only! SW has indeed a strong foundation in research results For a list of applications, see separate slide setseparate slide set
150
150 Thank you for your attention! These slides are publicly available on: http://www.w3.org/People/Ivan/CorePresentations/State_of_SW/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.