<?xml version='1.0' encoding="UTF-8"?>
<!--
	RDF Query and Rule languages and systems use cases RDF Schema 
	by Andy Seaborne <andy.seaborne@hp.com> and Alberto Reggiori <areggiori@webweaving.org>

	Changes:
		2002-08-29
			- updated rdfs:subPropertyOf of emailArchiveURL to use dc namespace and not dcq for property 
			  source as reported by Nick Bassiliades <nbassili@csd.auth.gr>
		2002-09-02
			- made qucs:Example a rdfs:subClassOf of qucs:UseCase to properly allow the use of qucs:label property inside qucs:Example instances; bug
			  kindly reported by Nick Bassiliades <nbassili@csd.auth.gr>.
		2003-01-16
			- start adding some RDF Query tests stuff (see http://lists.w3.org/Archives/Public/www-rdf-rules/2003Jan/0000.html)
-->

<!DOCTYPE rdf:RDF [
  <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
  <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#"> 
  <!ENTITY dc "http://purl.org/dc/elements/1.1/">
  <!ENTITY dcq "http://purl.org/dc/terms/">
  <!ENTITY qucs "http://www.hpl.hp.com/semweb/query/usecases-1.rdfs#"> 
]>

<rdf:RDF
	xmlns:rdf='&rdf;'
	xmlns:rdfs='&rdfs;'
	xmlns:dc='&dc;'
	xmlns:dcq='&dcq;'
	xml:base='&qucs;'>

<rdf:Description rdf:about="">
	<rdfs:comment>This is a namespace for describing RDF Query and Rule languages and systems use cases</rdfs:comment>
	<dc:creator rdf:resource="mailto:andy.seaborne@hp.com" />
	<dc:creator rdf:resource="mailto:areggiori@webweaving.org" />
</rdf:Description>

<!-- A single Use Case description -->
<rdfs:Class rdf:about='&qucs;UseCase'>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdfs:Class>

<rdf:Property rdf:about='&qucs;emailArchiveURL'>
	<rdfs:subPropertyOf rdf:resource='&dc;source' />
	<rdfs:domain rdf:resource='&qucs;UseCase'/>
	<rdfs:range  rdf:resource='&rdfs;Resource'/>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdf:Property>

<rdf:Property rdf:about='&qucs;description'>
	<rdfs:subPropertyOf rdf:resource='&dc;description' />
	<rdfs:domain rdf:resource='&qucs;UseCase'/>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdf:Property>

<rdf:Property rdf:about='&qucs;name'>
	<rdfs:subPropertyOf rdf:resource='&dc;title' />
	<rdfs:range  rdf:resource='&rdfs;Literal'/>
	<rdfs:domain rdf:resource='&qucs;UseCase'/>
	<rdfs:comment>Single line descriptive text for this query use case</rdfs:comment>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdf:Property>

<rdf:Property rdf:about='&qucs;label'>
	<rdfs:subPropertyOf rdf:resource='&dc;identifier'/>
	<rdfs:domain rdf:resource='&qucs;UseCase'/>
	<rdfs:comment>Unique index string</rdfs:comment>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdf:Property>

<!-- A specific Example of a Use Case using a specific implementation -->
<rdfs:Class rdf:about='&qucs;Example'>
	<rdfs:subClassOf rdf:resource="&qucs;UseCase" />
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdfs:Class>

<rdf:Property rdf:about='&qucs;example'>
	<rdfs:domain rdf:resource='&qucs;UseCase'/>
        <rdfs:range  rdf:resource='&qucs;Example'/>
</rdf:Property>

<rdf:Property rdf:about='&qucs;queryLanguage'>
	<rdfs:domain rdf:resource='&qucs;Example'/>
	<rdfs:range  rdf:resource='&rdfs;Literal'/>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdf:Property>

<rdf:Property rdf:about='&qucs;query'>
	<rdfs:domain rdf:resource='&qucs;Example'/>
	<rdfs:range  rdf:resource='&rdfs;Literal'/>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdf:Property>

<rdf:Property rdf:about='&qucs;software'>
	<rdfs:domain rdf:resource='&qucs;Example'/>
	<rdfs:range  rdf:resource='&rdfs;Resource'/>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
	<rdfs:comment>URL of the software project actually implementing the example; this might directly picked up from Art Barstow &lt;barstow@w3.org&gt; Data Store survey for example</rdfs:comment>
</rdf:Property>

<rdf:Property rdf:about='&qucs;expectedInput'>
	<rdfs:domain rdf:resource='&qucs;Example'/>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
	<rdfs:comment>URL or text of the input syntax expected by the query processor; it might be a pointer to one of the RDF Test Cases at http://www.w3.org/TR/rdf-testcases/ </rdfs:comment>
</rdf:Property>

<rdf:Property rdf:about='&qucs;expectedOutput'>
	<rdfs:domain rdf:resource='&qucs;Example'/>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
	<rdfs:comment>URL or text of the output syntax containing the results of the query as generated by the query processor; it might be even N-triples, N3 or XML/RDF</rdfs:comment>
</rdf:Property>

<!-- end Example objects -->

<rdf:Property rdf:about='&qucs;notes'>
	<rdfs:subPropertyOf rdf:resource='&rdfs;comment'/>
	<rdfs:range  rdf:resource='&rdfs;Literal'/>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdf:Property>

<rdf:Property rdf:about='&qucs;author'>
	<rdfs:subPropertyOf rdf:resource='&dc;creator' />
	<rdfs:comment>The name of the person or organization that provided the information about the use case or example query</rdfs:comment>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdf:Property>

<rdf:Property rdf:about='&qucs;submissionDate'>
	<rdfs:subPropertyOf rdf:resource='&dcq;issued' />
	<rdfs:range  rdf:resource='&rdfs;Literal'/>
	<rdfs:comment>Date of publication of the RDF Query and Rules Use Case or Example</rdfs:comment>
	<rdfs:isDefinedBy rdf:resource="&qucs;" />
</rdf:Property>

</rdf:RDF>
