@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ds: <http://inference-web.org/2.0/ds.owl#> .

<http://inference-web.org/2.0/ds.owl> a owl:Ontology ;
	rdfs:label "Data Structure Ontology (v 0.1.1)"@en ;
	rdfs:comment """This ontology offers OWL-Lite definition for object list. It is a restricted version of OWL-S ObjectList (http://www.daml.org/services/owl-s/1.1/generic/ObjectList.owl). 
  It is compatible to rdf:List with the following differences: (i) OWL individuals as list members and (ii) appropriate property cardinality restriction. The range of first will specified by the subclasses."""@en .

ds:List a owl:Class ;
	rdfs:label "List"@en ;
	rdfs:comment "A template for defining typed-list. It functions like rdf:List with object members."@en ;
	rdfs:subClassOf _:node17o9mat1mx1 .

_:node17o9mat1mx1 a owl:Restriction ;
	owl:onProperty ds:first ;
	owl:cardinality "1"^^<http://www.w3.org/2001/XMLSchema#int> .

ds:List rdfs:subClassOf _:node17o9mat1mx2 .

_:node17o9mat1mx2 a owl:Restriction ;
	owl:onProperty ds:rest ;
	owl:maxCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int> .

ds:nil a ds:List ;
	rdfs:label "nil"@en ;
	rdfs:comment "The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it."@en .

ds:first a owl:ObjectProperty ;
	rdfs:label "first"@en ;
	rdfs:comment "The first item in the subject RDF list."@en ;
	rdfs:domain ds:List .

ds:rest a owl:ObjectProperty ;
	rdfs:label "rest"@en ;
	rdfs:comment "The rest of the subject RDF list after the first item."@en ;
	rdfs:domain ds:List ;
	rdfs:range ds:List .

ds:List rdfs:subClassOf _:node17o9mat1mx3 .

_:node17o9mat1mx3 a owl:Restriction ;
	owl:onProperty ds:first ;
	owl:cardinality "1"^^<http://www.w3.org/2001/XMLSchema#int> .

ds:List rdfs:subClassOf _:node17o9mat1mx4 .

_:node17o9mat1mx4 a owl:Restriction ;
	owl:onProperty ds:rest ;
	owl:maxCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int> .
