Download presentation
Presentation is loading. Please wait.
1
Introduction to Web Science
Maintaining Information on the Web
2
Six challenges of the Knowledge Life Cycle
Acquire Model Reuse Retrieve Publish Maintain
3
Prediction Ontology maintenance will become the significant problem as ontologies become more mainstream High quality ontologies are easier to maintain
4
What makes a good quality ontology?
Coverage Correctness Consistency Richness Organisation Relation to reality Making meaning clear
5
Common modelling pitfalls
Instantiation Constitution Composition Disjunction Polysemy
6
Instantiation (1) Which one is correct? PDA IPAQ PDA My PDA
7
Instantiation (2) Question Answer What PDA model do you sell?
My PDA is not a PDA model! So you wouldn’t sell your PDA!
8
Composition (1) What’s incorrect with this? Computer Disk Drive Memory
Micro Drive Memory
9
Composition (2) Question Answer What computers do you sell?
Definitely not disk drives and memory is the answer!
10
Disjunction (1) Computer Part Disk Drive Micro Drive Memory
11
Disjunction (2) Computer Has part Computer Part Camera Has part
Flashcard 110
12
Disjunction (2) Computer Has part Computer Part Camera Has part
Flashcard 110
13
Disjunction (3) Computer Has part Computer Part Camera Has part
14
Polysemy (1) Words with more than one meaning … What is a book?
A physical object “The DaVinci Code” An abstract entity A Book by Dan Brown
15
Polysemy (2) Book The DaVinci Code Dan Brown Book
We must be consistent with what is a book! Book The DaVinci Code Dan Brown Book
16
Constitution (1) Computer should not form part of the hierarchy, different level of constitution Entity Matter Metal Clay Physical Object Computer
17
Constitution (2) What kind of matter conducts electricity?
Answer should not be computer
18
Making Meaning Clear Part-of relates parts to their wholes
E.g. part-of(engine,car) Part-of is irreflexive Part-of is anti-symmetric Nothing can have only one part
19
Requirement for Ontology Management(1/2)
Stored, aligned, evolution need to be managed Alignment the ontologies either need to be integrated Because, re-used Ontology alignment is very relevant in a Semantic Web context separate ontologies should be aligned and linked
20
Requirement for Ontology Management(2/2)
Support for evolving ontologies change in the real world (E.g. Car engines) adaptations to different tasks (E.g. Wine and food) alignments to other ontologies (E.g. Travel and food) Ontology library systems grouping, reorganizing ontologies for further re-use integration, maintenance, mapping, versioning
21
Aligning Ontologies (1)
Why is Aligning Needed created to link different terminologies (E.g. books) modeling styles used in these domain specific ontologies creating bridges between separated pieces of knowledge
22
Aligning Ontologies (2)
Aligning Annotated XML Documents (The alignments)
23
Supporting Ontology Change (1)
Ontologies specific Not static, evolution is need Reasons of changes in ontologies Changes in the domain Change in the real world Domain to be modified Changes in the conceptualization Different perspective E.g. Pet shop vrs Reptile Ontology Changes in the specification Translation – retain the semantics
24
Supporting Ontology Change (2)
Changes in ontologies involve Several Problems Effects of Ontology Change Different interpretation or may use unknown terms Changes to the source ontology Applications that use the ontology may also be hampered
25
Supporting Ontology Change (3)
Change Management Comparing Ontologies Logical definition change Non-logical change Identifier change Addition of definitions Deletion of definitions Specification of Change Transformation or actual change Conceptual relation Descriptive meta-data like date, author, and reason of the update Valid context
26
Organising Ontologies (1)
Different ontologies increasing Task of storing Maintaining and re-organizing Ontology library system Tool in grouping and re-organizing ontologies Re-use, integration, maintenance and versioning
27
Organising Ontologies (2)
Sesame Open storage, identification and versioning of ontologies Smooth access to existing ontologies and advanced support in adapting ontologies to certain domain and task-specific circumstances Fully employing the power of standardization and providing access to upper-layer ontologies and standard representation languages
28
Organising Ontologies (3)
Sesame Requirements (Aspects of an ontology library system)
29
Organising Ontologies (4)
Functionality of an Ontology Storage System Management Storage easily accessible Ontologies classified Stored in modules (because ontology re-use) Identification Unique identifier Versioning Ensuring consistency
30
Organising Ontologies (5)
Functionality of an Ontology Storage System Adaptation Searching how to search ontology Editing how to add, delete and edit specific ontologies Reasoning How to derive consequences from an ontology
31
Organising Ontologies (6)
Functionality of an Ontology Storage System Standardization Language Kind of standard ontology language used in the ontology library system E.g. RDFS, XMLS, DAML+OIL Upper-level Ontologies
32
Organising Ontologies (7)
Current storage systems Adaptation Searching Access through the Internet or World Wide Web Offer Simple browsing only SQL-based searching Editing Simple editing function Reasoning Very simple reasoning function E.g. WebOnto(rule-based reasoning), Ontolingua (ontology testing), SHOE(ontology revision)
33
Organising Ontologies (8)
Requirement for a Storage System Other requirements Ontology scalability Maintenance facility Explicit documentation
34
Translating between Ontologies
XSLT stands for Extensible Stylesheet Language Transformations XSLT is used to transform XML documents into other kinds of documents--usually, but not necessarily, XHTML XSLT uses two input files: The XML document containing the actual data The XSL document containing both the “framework” in which to insert the data, and XSLT commands to do so
35
Very simple example File data.xml: File render.xsl:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="render.xsl"?> <message>Howdy!</message> File render.xsl: <?xml version="1.0"?> <xsl:stylesheet version="1.0” xmlns:xsl=" <!-- one rule, to transform the input root (/) --> <xsl:template match="/"> <html><body> <h1><xsl:value-of select="message"/></h1> </body></html> </xsl:template> </xsl:stylesheet>
36
The .xsl file An XSLT document has the .xsl extension
The XSLT document begins with: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl=" XSL/Transform"> Contains one or more templates, such as: <xsl:template match="/"> ... </xsl:template> And ends with: </xsl:stylesheet>
37
Finding the message text
The template <xsl:template match="/"> says to select the entire file You can think of this as selecting the root node of the XML tree Inside this template, <xsl:value-of select="message"/> selects the message child Alternative Xpath expressions that would also work: ./message /message/text() (text() is an XPath function) ./message/text()
38
Putting it together The XSL was: <xsl:template match="/"> <html><body> <h1><xsl:value-of select="message"/></h1> </body></html> </xsl:template> The <xsl:template match="/"> chooses the root The <html><body> <h1> is written to the output file The contents of message is written to the output file The </h1> </body></html> is written to the output file The resultant file looks like: <html><body> <h1>Howdy!</h1> </body></html>
39
How XSLT works The XML text document is read in and stored as a tree of nodes The <xsl:template match="/"> template is used to select the entire tree The rules within the template are applied to the matching nodes, thus changing the structure of the XML tree Unmatched parts of the XML tree are not changed After the template is applied, the tree is written out again as a text document
40
Where XSLT can be used With an appropriate program, such as Xerces, XSLT can be used to read and write files A server can use XSLT to change XML files into HTML files before sending them to the client A modern browser can use XSLT to change XML into HTML on the client side Most users seldom update their browsers If you want “everyone” to see your pages, do any XSL processing on the server side Otherwise, think about what best fits your situation
41
xsl:value-of <xsl:value-of select="XPath expression"/> selects the contents of an element and adds it to the output stream The select attribute is required Example (from an earlier slide): <h1> <xsl:value-of select="message"/> </h1>
42
xsl:for-each xsl:for-each is a kind of loop statement
The syntax is <xsl:for-each select="XPath expression"> Text to insert and rules to apply </xsl:for-each> Example: to select every book element irrespective of where it is (//book) and make an unordered list (<ul>) of their titles (title), use: <ul> <xsl:for-each select="//book"> <li> <xsl:value-of select="title"/> </li> </xsl:for-each> </ul> // means any ancestor / means just the parent
43
Filtering output You can filter (restrict) output by adding a criterion to the select attribute’s value: <ul> <xsl:for-each select="//book"> <li> <xsl:value-of select="title[../author=‘Dan Brown']"/> </li> </xsl:for-each> </ul>
44
Filter details Here is the filter we just used: <xsl:value-of select="title[../author=‘Dan Brown'"]/> author is a sibling of title, so from title we have to go up to its parent, book, then back down to author This filter requires a quote within a quote, so we need both single quotes and double quotes Legal filter operators are: = != < >
45
But it doesn’t work right!
Here’s what we did: <xsl:for-each select="//book"> <li> <xsl:value-of select="title[../author=‘Dan Brown']"/> </li> </xsl:for-each> This will output <li> and </li> for every book, so we will get empty bullets for authors other than Dan Brown There is no obvious way to solve this with just xsl:value-of
46
xsl:if xsl:if allows us to include content if a given condition (in the test attribute) is true Example: <xsl:for-each select="//book"> <xsl:if test="author=‘Dan Brown'"> <li> <xsl:value-of select="title"/> </li> </xsl:if> </xsl:for-each> This does work correctly!
47
xsl:choose The xsl:choose ... xsl:when ... xsl:otherwise construct is XML’s equivalent of Java’s switch ... case ... default statement The syntax is: <xsl:choose> <xsl:when test="some condition"> some code </xsl:when> <xsl:otherwise> some code </xsl:otherwise> </xsl:choose>
48
xsl:sort You can place an xsl:sort inside an xsl:for-each
The attribute of the sort tells what field to sort on Example: <ul> <xsl:for-each select="//book"> <xsl:sort select="author"/> <li> <xsl:value-of select="title"/> by <xsl:value-of select="author"> </li> </xsl:for-each> </ul> This example creates a list of titles and authors, sorted by author
49
xsl:text <xsl:text>...</xsl:text> helps deal space related problems: XSL isn’t very careful with whitespace in the document This doesn’t matter much for HTML, which collapses all whitespace anyway (though the HTML source may look ugly) <xsl:text> gives you much better control over whitespace; it acts like the <pre> element in HTML
50
Creating tags from XML data
Suppose the XML contains <name>Dr. Dave's Home Page</name> <url> And you want to turn this into <a href=" Dr. Dave's Home Page</a> We need additional tools to do this
51
Creating tags Suppose the XML contains <name>Dr. Dave's Home Page</name> <url> <xsl:attribute name="..."> adds the named attribute to the enclosing tag The value of the attribute is the content of this tag Example: <a> <xsl:attribute name="href"> <xsl:value-of select="url"/> </xsl:attribute> <xsl:value-of select="name"/> </a> Result: <a href=" Dr. Dave's Home Page</a>
52
Modularization Modularization--breaking up a complex program into simpler parts--is an important programming tool In programming languages modularization is often done with functions or methods In XSL we can do something similar with xsl:apply-templates For example, suppose we have a DTD for book with parts titlePage, tableOfContents, chapter, and index We can create separate templates for each of these parts
53
Book example <xsl:template match="/"> <html> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="tableOfContents"> <h1>Table of Contents</h1> <xsl:apply-templates select="chapterNumber"/> <xsl:apply-templates select="chapterName"/> <xsl:apply-templates select="pageNumber"/> </xsl:template> Etc.
54
xsl:apply-templates The <xsl:apply-templates> element applies a template rule to the current element or to the current element’s child nodes If we add a select attribute, it applies the template rule only to the child that matches If we have multiple <xsl:apply-templates> elements with select attributes, the child nodes are processed in the same order as the <xsl:apply-templates> elements
55
Applying templates to children
<book> <title>XML</title> <author>Gregory Brill</author> </book> <xsl:template match="/"> <html> <head></head> <body> <b><xsl:value-of select="/book/title"/></b> <xsl:apply-templates select="/book/author"/> </body> </html> </xsl:template> <xsl:template match="/book/author"> by <i><xsl:value-of select="."/></i> </xsl:template> With this line: XML by Gregory Brill Without this line: XML
56
Calling named templates
You can name a template, then call it, similar to the way you would call a method in Java The named template: <xsl:template name="myTemplateName"> body of template </xsl:template> A call to the template: <xsl:call-template name="myTemplateName"/> Or: <xsl:call-template name="myTemplateName"> parameters </xsl:call-template>
57
Templates with parameters
Parameters, if present, are included in the content of xsl:template, but are the only content of xsl:call-template Example call: <xsl:call-template name="doOneType"> <xsl:with-param name="header" select="'Lectures'"/> <xsl:with-param name="nodes" select="//lecture"/> </xsl:call-template> Single quotes inside double quotes make this a string This parameter is a typical XPath expression
58
Thoughts on XSL XSL is a programming language--and not a particularly simple one These slides have been an introduction to XSL and XSLT--there’s a lot more of it we haven’t covered As with any programming, it’s a good idea to start simple and build it up incrementally: “Write a little, test a little” This is especially a good idea for XSLT, because you don’t get a lot of feedback about what went wrong
59
FYI There exists also Formatting Objects Processors
Task is to transform XML into other formats Not just other XML type documents But also PDF, PS, PNG, etc
60
Automatic Ontologies Maintenance
Use IE + WWW search to identify them New Domain Word identification Biocomputation Abbreviations (OWL) Aliases (BSE also known as “Mad Cow Disease”) Spelling Errors Anesthesia > Anaesthesia Orthographic Variances Audio/Visual > Audio-visual Morphological Variances CD ROM > CD ROMs
61
Related Concepts A term G is related to term T if
T and G share some words Ballistic missile -- medium-range ballistic missile T and G often appear together in same sentences Select a set of semantically related terms with higher domain specificity
62
Relation Extraction Structurally Suggested ISA Relation
Position defense. The type of defense in which …. Hyperspectral imagery. A term used to describe the imagery derived from .. Lexically Suggested ISA Relation guided rocket-powered delivery vehicle ---ISA--- delivery vehicle
63
Automatic Ontology Construction (1)
Agroterrorism. Terrorist attacks aimed at reducing the food supply by destroying crops using natural pests such as the potato beetle, animal diseases such as hoof and mouth disease and anthrax, molds and other plant diseases.
64
Automatic Ontology Construction (2)
Food Supply Potato Beatle Attack IS A reduce Crop Hoof IS A IS A destroy Terrorist Attack Natural Pest Mouth Disease IS A IS A use Animal Disease Anthrax Agroterrorism IS A use Plant Disease Mold IS A use
65
Conclusion Ontology maintenance is a critical problem Need support
Tools help Theories help Text analysis helps
66
Questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.