157 lines
4.8 KiB
HTML
157 lines
4.8 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||
|
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Online SWI-Prolog RDF parser demo</title>
|
||
|
</head>
|
||
|
<body>
|
||
|
|
||
|
<h1 align=center>Online SWI-Prolog RDF parser demo</h1>
|
||
|
|
||
|
<p>
|
||
|
This page provides an online demonstration of an RDF parser written in
|
||
|
<a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/">SWI-Prolog</a>.
|
||
|
This RDF parser has a couple of attractive properties:
|
||
|
|
||
|
<dl>
|
||
|
<dt><b>Small</b><dd>
|
||
|
Both in terms of source-code (< 700 lines) and executable.
|
||
|
<dt><b>Fast</b><dd>
|
||
|
Parses about 400 Kbytes/sec on a Pentium-II/450.
|
||
|
<dt><b>Conforming</b><dd>
|
||
|
This parser conforms to <a href="http://www.w3.org/TR/REC-rdf-syntax">
|
||
|
http://www.w3.org/TR/REC-rdf-syntax</a>.
|
||
|
<dt><b>Prolog based</b><dd>
|
||
|
Many people regard the Prolog programming language a good vehicle to
|
||
|
reason about RDF statements. Having a simple and fast Prolog-based RDF
|
||
|
parser makes life easier.
|
||
|
<dt><b>Portability</b><dd>
|
||
|
The RDF parser itself is written in ISO Prolog. The XML parser is
|
||
|
written in ANSI-C. There is no standard for interfacing Prolog and C,
|
||
|
but the interface is relatively small.
|
||
|
</dl>
|
||
|
|
||
|
A more detailed description of this packages is available in <a
|
||
|
href="rdf2pl.html">in this document</a>. The sources of the parser are
|
||
|
included into the <a
|
||
|
href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/packages/sgml/">sgml</a>
|
||
|
packages for SWI-Prolog. The individual source files can also be
|
||
|
examined through the <a
|
||
|
href="http://gollem.swi.psy.uva.nl/cgi-bin/pl-cvsweb/packages/sgml/RDF">
|
||
|
cvsweb service</a>, which also provides access to the most recent
|
||
|
<a
|
||
|
href="http://gollem.swi.psy.uva.nl/cgi-bin/pl-cvsweb/packages/sgml/RDF/ChangeLog">
|
||
|
changes</a>
|
||
|
|
||
|
<p>
|
||
|
<hr>
|
||
|
Please write your RDF description into the text-area below or select a
|
||
|
local file using the <b>File:</b> item and submit it. If anything goes
|
||
|
wrong, please mail <a href="mailto:jan@swi.psy.uva.nl">Jan
|
||
|
Wielemaker</a>.
|
||
|
|
||
|
<p>
|
||
|
<em>The RDF-data submitted is kept <b>anonymously</b> on our server and
|
||
|
might be used by us to examine problems with our RDF parser. We do not
|
||
|
publish this material.</em> The result-page provides a form for
|
||
|
attaching a comment to the stored RDF statement.
|
||
|
|
||
|
<!-- enctype="multipart/form-data" -->
|
||
|
|
||
|
|
||
|
<p>
|
||
|
<form
|
||
|
name=rdf
|
||
|
method=get
|
||
|
action="http://localhost:8000/rdf">
|
||
|
<table align=center>
|
||
|
<tr><td colspan=2>
|
||
|
<textarea name=rdf rows=15 cols=72 wrap=off></textarea>
|
||
|
<tr><td>File: <input name=attachment type=file>
|
||
|
<td align=right>
|
||
|
<input type=button value='Example 1' onClick="ex1()">
|
||
|
<input type=button value='Example 2' onClick="ex2()">
|
||
|
<input type=button value='Example 3' onClick="ex3()">
|
||
|
<tr><td align=left><input type=reset value="Clear Text">
|
||
|
<td align=right><input type=submit value="Parse RDF">
|
||
|
</table>
|
||
|
</form>
|
||
|
|
||
|
<h4><hr>Notes<hr></h4
|
||
|
|
||
|
<dl>
|
||
|
<dt><b><em>rdf:</em>resource, etc.</b><dd>
|
||
|
The specification and discussion on the rdf interest group yielded no
|
||
|
satisfactory solution how to deal with RDF attributes that are not in
|
||
|
the RDF namespace such as <b>ID</b>, <b>resource</b>, etc. This parser
|
||
|
interprets such attributes in the namespace of the element, so the
|
||
|
statement below is not interpreted as a <b>propertyElt</b> with value
|
||
|
<code>me</code> but as a <b>typedNode</b> with predicate
|
||
|
<code>resource</code> and value <b>literal(</b>me<b>)</b>.
|
||
|
|
||
|
<pre>
|
||
|
<s:Creator resource="#me">
|
||
|
</pre>
|
||
|
</dl>
|
||
|
|
||
|
<!---------------------------------------------------------------->
|
||
|
<!-- EXAMPLES -->
|
||
|
<!---------------------------------------------------------------->
|
||
|
|
||
|
<script language="JavaScript">
|
||
|
|
||
|
function ex1()
|
||
|
{ document.rdf.rdf.value='<?xml version="1.0"?>\
|
||
|
\
|
||
|
<!-- Example from REC-rdf-syntax -->\
|
||
|
\
|
||
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\
|
||
|
xmlns:s="http://description.org/schema/">\
|
||
|
<rdf:Description about="http://www.w3.org/Home/Lassila">\
|
||
|
<s:Creator>Ora Lassila</s:Creator>\
|
||
|
</rdf:Description>\
|
||
|
</rdf:RDF>';
|
||
|
}
|
||
|
|
||
|
function ex2()
|
||
|
{ document.rdf.rdf.value='<?xml version="1.0"?>\
|
||
|
\
|
||
|
<!-- Example from REC-rdf-syntax, demonstrating reification -->\
|
||
|
\
|
||
|
<rdf:RDF\
|
||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\
|
||
|
xmlns:s="http://description.org/schema/">\
|
||
|
<rdf:Description about="http://www.w3.org/Home/Lassila" bagID="D_001">\
|
||
|
<s:Creator>Ora Lassila</s:Creator>\
|
||
|
<s:Title>Ora\'s Home Page</s:Title>\
|
||
|
</rdf:Description>\
|
||
|
</rdf:RDF>';
|
||
|
}
|
||
|
|
||
|
function ex3()
|
||
|
{ document.rdf.rdf.value='<?xml version="1.0"?>\
|
||
|
\
|
||
|
<!-- Example from REC-rdf-syntax, non-binary relations -->\
|
||
|
\
|
||
|
<RDF\
|
||
|
xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\
|
||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"\
|
||
|
xmlns:n="http://www.nist.gov/units/">\
|
||
|
<Description about="John_Smith">\
|
||
|
<n:weight rdf:parseType="Resource">\
|
||
|
<rdf:value>200</rdf:value>\
|
||
|
<n:units rdf:resource="http://www.nist.gov/units/Pounds"/>\
|
||
|
</n:weight>\
|
||
|
</Description>\
|
||
|
</RDF>';
|
||
|
}
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|