<%@page contentType="text/html" import="java.util.*" import="java.io.*" import="wowg.*" import="com.hp.hpl.jena.rdf.model.*" %> <%-- Links to RDF and OWL specs --%> <%! // Date on the OWL and RDF documents (including this one) // Note months counts from 0, e.g. 7 is August, 0 is January GregorianCalendar owlPubDate = new GregorianCalendar(2099,11,31); GregorianCalendar rdfPubDate = new GregorianCalendar(2099,11,31); // levels of OWL and RDF docs - one of "WD", "CR", "PR", "REC" String owlStatus = "REC"; String rdfStatus = "REC"; String owlStatusLong = "W3C " + TRdesc(owlStatus) + " " + TRdate(owlPubDate); // + "."; String rdfStatusLong = "W3C " + TRdesc(rdfStatus) + " " + TRdate(rdfPubDate);// + "."; // URIs of specific documents (used before the reference section) String sasURI = //"http://www-db.research.bell-labs.com/user/pfps/owl/semantics/"; TRuri("owl-semantics"); String concepTRuri = TRuri("rdf-concepts"); String rdfTestURI = TRuri("rdf-testcases"); %> <%! String TRuri(String shortname) { if (shortname.startsWith("owl")) return "http://www.w3.org/2001/sw/WebOnt/TR/STAGE-"+shortname+"/"; //TRuri(shortname,owlStatus,owlPubDate); if (shortname.startsWith("rdf")) return "http://www.w3.org/2001/sw/RDFCore/TR/staging/"+shortname+"/"; //TRuri(shortname,rdfStatus, new GregorianCalendar(2003,11,15)); return "http://error.org/BadRefTo/" + shortname; } String TRuri(String shortname, String stat,GregorianCalendar pubDate ) { return "http://www.w3.org/TR/" + pubDate.get(Calendar.YEAR) + "/" + stat + "-" + shortname + "-" + pubDate.get(Calendar.YEAR) + format10(pubDate.get(Calendar.MONTH)+1) + format10(pubDate.get(Calendar.DAY_OF_MONTH)) + "/"; } static boolean w3cIsDown = false; static String months[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; static String format10(int i) { return i<10? ("0"+i):(""+i); } static String TRdesc(String shortDesc) { if (shortDesc.equals("WD")) return "Working Draft"; if (shortDesc.equals("CR")) return "Candidate Recommendation"; if (shortDesc.equals("PR")) return "Proposed Recommendation"; if (shortDesc.equals("REC")) return "Recommendation"; else return shortDesc; } static String TRdate(Calendar cal) { return format10(cal.get(Calendar.DAY_OF_MONTH)) + " " + months[cal.get(Calendar.MONTH)] + " " + cal.get(Calendar.YEAR); } %> <% boolean editorsDraft = !Zipper.getParameter(request,"editorsDraft").equals("false"); String sz = Zipper.getParameter(request,"size"); int size = sz.startsWith("X") ? 2 : sz.startsWith("M") ? 0 : 1 ; GregorianCalendar cal = editorsDraft?new GregorianCalendar():owlPubDate; %> OWL Web Ontology Language Test Cases <% if (! w3cIsDown ) { %> <% } %>
<% if (! w3cIsDown ) { %> W3C <% } %>

OWL Web Ontology Language
Test Cases

<%=editorsDraft?"Editors":"W3C"%> <%=TRdesc(owlStatus)%> <%=format10(cal.get(Calendar.DAY_OF_MONTH))%> <%=months[cal.get(Calendar.MONTH)]%> <%=cal.get(Calendar.YEAR)%> (alternative version)

PRE-PUBLICATION DRAFT. This document is being prepared for possible publication by the W3C, but it may change, be delayed, or never be published. The "Version" URIs and "Status of this Document" section may reflect its planned location and status, not present reality.

This version:
<%if (editorsDraft) { %>
No URI
Latest editors snapshot:
http://www.w3.org/2002/03owlt/editors-draft/draft/
<%} else { String versionURI=TRuri("owl-test"); /* "http://www.w3.org/TR/" + cal.get(Calendar.YEAR) + "/WD-owl-test-" + cal.get(Calendar.YEAR) + format10(cal.get(Calendar.MONTH)+1) + format10(cal.get(Calendar.DAY_OF_MONTH)) + "/"; */ %>
<%=versionURI%>
<%}%>
Latest version:
http://www.w3.org/TR/owl-test/
Previous version:
http://www.w3.org/TR/2003/PR-owl-test-20031215/
Editors:
Jeremy J. Carroll, HP <jjc@hpl.hp.com>
Jos De Roo, AGFA,<jos.deroo@agfa.com>

The normative version of this document is a compound document. Non-normative versions consisting of a single HTML file are available in three sizes: medium<%=size==0?" (this version)":""%>, large<%=size==1?" (this version)":""%>, and extra large<%=size==2?" (this version)":""%>. The tests of this document are also available in these non-normative formats: Zip archive of approved tests, <%-- Zip archive of proposed tests, --%> the test Web site.


Abstract

This document contains and presents test cases for the Web Ontology Language (OWL) approved by the Web Ontology Working Group. Many of the test cases illustrate the correct usage of the Web Ontology Language (OWL), and the formal meaning of its constructs. Other test cases illustrate the resolution of issues considered by the Working Group. Conformance for OWL documents and OWL document checkers is specified.

<% synchronized ( this ) { refs = new HashSet(); %> <%if (editorsDraft) { %>

Status below is fictitious.

<% } %>

Status of this document

<% if ( size != 2 ) { %>

See the normative compound HTML document for document status.

<% } else { %>

This text not yet prepared. It will include a link to the list of changes since PR

<%--

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

Publication as a Proposed Recommendation does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This draft is one of six parts of the Proposed Recommendation (PR) for OWL, the Web Ontology Language. It has been developed by the Web Ontology Working Group as part of the W3C Semantic Web Activity (Activity Statement, Group Charter) for publication on 9 December 2003.

The design of OWL expressed in earlier versions of these documents has been widely reviewed and satisfies the Working Group's technical requirements. The Working Group has addressed all comments received, making changes as necessary. During Candidate Recommendation, many implementations were reported, covering among them all features of the language. Changes to this document since the Candidate Recommendation version are detailed in the change log.

This document is subsidiary to the normative definition of the Web Ontology Language <%=ref("OWL Semantics and Abstract Syntax")%>).

The Working Group now hopes for review and, where appropriate, endorsement of OWL by Consortium members, prior to possible advancement to Recommendation status. Everyone with comments is welcome to send them to public-webont-comments@w3.org (archive) by 8 January 2004. General discussion of related technology is welcome at www-rdf-logic@w3.org (archive).

The W3C maintains a list of any patent disclosures related to this work.

--%> <% } %>
<%! String named(String foo) { return ""+foo +"NNN.rdf"; } %> <%! Map keyToIndexDisplayName = new HashMap(); Set getSubIndex( Map fromHere, String key, String displayName ) { Set rslt = (Set)fromHere.get(key); if ( rslt == null ) { keyToIndexDisplayName.put(key,displayName); rslt = new TreeSet(); fromHere.put(key,rslt); } return rslt; } %> <%String pattern = request.getParameter("pattern"); Manifest approved = new Manifest("APPROVED",pattern); Manifest proposed = new Manifest("PROPOSED",pattern); Map featureIndex = new TreeMap(); Map issueIndex = new TreeMap(); Map miscIndex = new TreeMap(); Map dlIndex = new TreeMap(); Map extraIndex = new TreeMap(); Set currentSubIndex = null; %> <%-- Test --%> <%! boolean toc; String tocContent; int levels[]; int lastLevel=-1; int _lvl; String _anch; String _text; int _i; int appendix; Set simpleAnchors; %> <%! void closeToc(int lvl) { if ( lvl == lastLevel+1 ) { tocContent += "\n"; tocContent += c; } String head(int lvl,String anch,String text) { boolean nonumber = lvl == 0; lvl--; if ( lvl <= lastLevel && lvl >= 0 ) { levels[lvl]++; } else if ( lvl == lastLevel+1 ) { levels[lvl]=1; } else if ( lvl == -1 ) { lvl = 0; } else { return "SCREW UP IN HEADER LEVELS: " + lastLevel + "; " + lvl + ""; } if ( anch.startsWith("approved") && anch.length() > "approved".length() ) { String anch1 = anch.substring("approved".length()+1 ); String first = anch.substring("approved".length(),"approved".length()+1); if ( first.equals("-") ) anch = anch1; else anch = first.toLowerCase() + anch1; } if ( toc ) { closeToc(lvl); lastLevel = lvl; String rslt = "\n
  • "; if (!nonumber) { if ( appendix > 0 ) rslt += ((char)(levels[0]-appendix + 'A')) + "."; else rslt += levels[0] + "."; for (int i=1; i<=lvl; i++) rslt += levels[i]+"."; } rslt += " "+ text + ""; tocContent += rslt; return ""; } else { simpleAnchors.add(anch); lastLevel = lvl; String rslt = ""; if (!nonumber) { if ( appendix > 0 ) rslt += ((char)(levels[0]-appendix + 'A')) + "."; else rslt += levels[0] + "."; for (int i=1; i<=lvl; i++) rslt += levels[i]+"."; } rslt += " "+ text + ""; return rslt; } } Set refs; String repl(String s) { return s.replace(' ','_').replace('/','_').replace('+','_'); } String ref(String sss) { refs.add(sss); return "["+sss+"]"; } String defref(String sss) { String rslt = "
    [" +sss+"]
    "; if ( !refs.contains(sss) ) { rslt = rslt + "Not referenced. "; } else { refs.remove(sss); } return rslt; } String internal(String anch, String sss) { return ""+sss+""; } %> <%levels = new int[5]; lastLevel=-1; appendix = -1; %>

    Table of Contents

    <%//
      // Variables used during test case output. // Setup variables Manifest tests; // The test we select from. boolean useRDFXML; // or NTriple boolean byFunction; // or byIssue boolean areNormative; String prefix; // used in fragment identifiers String testTag = null; boolean showRDFXML; boolean showTriples; // utility variables Iterator it; Map testsBy; simpleAnchors = new HashSet(); %> <% //if ( true ) //{ final PrintWriter out = new PrintWriter(new OutputStreamWriter(new OutputStream(){ // public void write(int i) {} //})); // BodyContext ctxt = pageContext.pushBody(); out = pageContext.pushBody(); tocContent = ""; toc = true; %> <%@ include file="body.jsp" %> <% closeToc(0); toc = false; out = pageContext.popBody(); // } %> <%=tocContent%> <%-- <%=ctxt.getString()%> --%> <%levels = new int[5]; lastLevel=-1; appendix = -1; simpleAnchors = new HashSet(); %>

    <%@ include file="body.jsp" %> <% } /* end synchronized block */ %>

    Normative

    <%=defref("OWL Semantics and Abstract Syntax")%> ">OWL Web Ontology Language Semantics and Abstract Syntax, Peter F. Patel-Schneider, Patrick Hayes, and Ian Horrocks, Editors, <%=owlStatusLong%>, <%=TRuri("owl-semantics")%> . Latest version available at http://www.w3.org/TR/owl-semantics/ .
    <%=defref("RDF Concepts")%> "> RDF Concepts and Abstract Syntax, Graham Klyne and Jeremy J. Carroll, Editors, <%=rdfStatusLong%>, <%=TRuri("rdf-concepts")%> . Latest version available at http://www.w3.org/TR/rdf-concepts/ . <%=defref("RDF Syntax")%> "> RDF/XML Syntax Specification (Revised). Dave Beckett, Editor, <%=rdfStatusLong%>, <%=TRuri("rdf-syntax-grammar")%> . Latest version available at http://www.w3.org/TR/rdf-syntax-grammar/ . <%=defref("RDF Semantics")%> "> RDF Semantics. Patrick Hayes, Editor, <%=rdfStatusLong%>, <%=TRuri("rdf-mt")%> . Latest version available at http://www.w3.org/TR/rdf-mt/ . <%=defref("RFC 2119")%> RFC 2119 - Key words for use in RFCs to Indicate Requirement Levels . S. Bradner, IETF. March 1997. This document is http://www.ietf.org/rfc/rfc2119.txt. <%=defref("RDF Schema for OWL")%> http://www.w3.org/2002/07/owl. Mike Dean, ed. World Wide Web Consortium. <%=defref("XML Schema Datatypes")%> XML Schema Part 2: Datatypes.. Paul V. Biron and Ashok Malhotra, eds. W3C Recommendation 02 May 2000. Latest version is available at http://www.w3.org/TR/xmlschema-2/.

    Informative

    <%=defref("RDF Tests")%> ">RDF Test Cases, Jan Grant and Dave Beckett, Editors, <%=rdfStatusLong%>, <%=TRuri("rdf-testcases")%> . Latest version available at http://www.w3.org/TR/rdf-testcases/ . <%=defref("OWL Guide")%> "> OWL Web Ontology Language Guide. Michael K. Smith, Chris Welty, Deborah L. McGuinness, Editors, <%=owlStatusLong%>, <%=TRuri("owl-guide")%> . Latest version available at http://www.w3.org/TR/owl-guide/ . <%=defref("OWL Overview")%> "> OWL Web Ontology Language Overview . Deborah L. McGuinness and Frank van Harmelen, Editors, <%=owlStatusLong%>, <%=TRuri("owl-features")%> . Latest version available at http://www.w3.org/TR/owl-features/ . <%=defref("DAML+OIL")%> DAML+OIL (March 2001) Reference Description. Dan Connolly, Frank van Harmelen, Ian Horrocks, Deborah L. McGuinness, Peter F. Patel-Schneider, and Lynn Andrea Stein. W3C Note 18 December 2001. Latest version is available at http://www.w3.org/TR/daml+oil-reference. <%=defref("Dublin Core")%> http://dublincore.org/documents/ <%=defref("N3")%> Primer: Getting into RDF & Semantic Web using N3 Tim Berners-Lee, Dan Connolly <%=defref("OWL Issues")%> Web Ontology Issue Status. Michael K. Smith, ed. 26 Feb 2003. <%=defref("W3C CVS")%> Use of CVS in W3C (member-only link). Henrik Frystyk Nielsen, Gerald Oskoboiny. 2002. <%=defref("XHTML")%> XHTML 1.0: The Extensible HyperText Markup Language, W3C Recommendation, S. Pemberton et al., 26 January 2000.
    Available at: http://www.w3.org/TR/2000/REC-xhtml1-20000126 <%=defref("XMLBASE")%> XML Base, J. Marsh, Editor, W3C Recommendation. World Wide Web Consortium, 27 June 2001. This version of XML Base is http://www.w3.org/TR/2001/REC-xmlbase-20010627/. The latest version of XML Base is at http://www.w3.org/TR/xmlbase/. <%=defref("Practical Reasoning")%> Practical reasoning for expressive description logics, I. Horrocks, U. Sattler, and S. Tobies, 1999, in Proc. of LPAR'99, vol. 1705 of LNAI. <%=defref("XP")%> Extreme Programming Explained: Embrace Change, Kent Beck. 5 Oct 1999. Addison-Wesley. ISBN 0201616416. <%=defref("Heinsohn et al.")%> AI 68 (1994) pp367-397. <%=defref("DIMACS")%> Satisfiability Suggested Format challenge@dimacs.rutgers.edu Found at ftp://dimacs.rutgers.edu/pub/challenge/satisfiability/doc/satformat.tex May 8, 1993. <%=defref("DL 98 Systems Comparison")%> DL Systems Comparison at 1998 International Workshop on Description Logics (DL 98). Peter F. Patel-Schneider, Ian Horrocks. June, 1998.
    <% Iterator axit = refs.iterator(); if ( axit.hasNext() ) { %>

    The following refs were not defined:

    <% } %>