The OWLlink told extension provides a way for retrieving previously told KB axioms from an OWLLink reasoner. This document describes the accompanying HTTP/XML Binding of this extension.
This version of the OWLlink structural specification refers to the public OWL 2 working draft as of April 11th 2008 (http://www.w3.org/TR/2008/WD-owl2-syntax-20080411/) and will soon be superseded by an updated specification in order to align with the latest OWL 2 working draft or recommendation.
The OWLlink Working Group seeks public feedback on these Working Drafts. Please send your comments to public-comments@owllink.org or post to the public discussion forum at http://www.owllink.org/forum/.
This extension is being published as one of a set of 2 documents:
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ox="http://www.w3.org/ns/owl2-xml"
xmlns:ol="http://www.owllink.org/owllink-xml"
xmlns:told="http://www.owllink.org/owllink-xml/ext/told-xml"
targetNamespace="http://www.owllink.org/owllink-xml/ext/told-xml"
elementFormDefault="qualified" attributeFormDefault="qualified">
<xsd:import namespace="http://www.w3.org/ns/owl2-xml" schemaLocation="http://www.owllink.org/owl2.xsd"/>
<xsd:import namespace="http://www.owllink.org/owllink-xml" schemaLocation="http://www.owllink.org/owllink-xml.xsd"/>
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<!-- REQUESTS -->
<xsd:element name="GetClassAxioms" type="told:KBRequestWithOneOptionalDescription"/>
<xsd:element name="GetAllGeneralClassAxioms" type="ol:KBRequest"/>
<xsd:element name="GetObjectPropertyAxioms"
type="told:KBRequestWithOneOptionalObjectPropertyExpression"/>
<xsd:element name="GetDataPropertyAxioms"
type="told:KBRequestWithOneOptionalDataPropertyExpression"/>
<xsd:element name="GetAllGeneralObjectPropertyAxioms" type="ol:KBRequest"/>
<xsd:element name="GetToldTypes" type="told:KBRequestWithOneOptionalIndividual"/>
<xsd:element name="GetToldInstance" type="ol:KBRequestWithOneDescription"/>
<xsd:element name="GetToldEquivalentIndividuals"
type="told:KBRequestWithOneOptionalIndividual"/>
<xsd:element name="GetToldObjectPropertyFillers"
type="told:KBRequestWithOneIndividualAndObjectPropertyExprNegativeAttribute"/>
<xsd:element name="GetToldObjectPropertySources"
type="told:KBRequestWithOneIndividualAndObjectPropertyExprNegativeAttribute"/>
<xsd:element name="GetToldObjectPropertyAssertionsForSource"
type="ol:KBRequestWithOneIndividualAndNegativeAttribute"/>
<xsd:element name="GetToldObjectPropertyAssertionsForFiller"
type="ol:KBRequestWithOneIndividualAndNegativeAttribute"/>
<xsd:element name="GetToldObjectPropertyAssertions"
type="told:KBRequestWithOneOptionalObjectPropertyExpressionAndNegativeAttribute"/>
<!-- the first is the source individual and the second is the target individual -->
<xsd:element name="GetToldRelatedIndividuals"
type="told:KBRequestWithTwoIndividualsAndNegativeAttribute"/>
<xsd:element name="GetAnnotationPropertyDeclarations">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:element ref="ox:AnnotationProperty"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetOWLClassDeclarations">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:element ref="ox:OWLClass"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetIndividualDeclarations">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:element ref="ox:Individual"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetObjectPropertyDeclarations">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:element ref="ox:ObjectProperty"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetDataPropertyDeclarations">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:element ref="ox:DataProperty"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetDatatypeDeclarations">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:element ref="ox:Datatype"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetAnnotations">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:group ref="ox:OWLEntity"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetKB">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:attribute name="declarations" type="xsd:boolean" default="true"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<!-- ADDITIONAL REQUEST TYPES NEEDED FOR TOLD QUERIES -->
<xsd:complexType name="KBRequestWithOneOptionalDescription">
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:group ref="ox:Description"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="KBRequestWithOneOptionalObjectPropertyExpression">
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:group ref="ox:ObjectPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="KBRequestWithOneOptionalDataPropertyExpression">
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:group ref="ox:DataPropertyExpression"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="KBRequestWithOneOptionalIndividual">
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:element ref="ox:Individual"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType
name="KBRequestWithOneOptionalObjectPropertyExpressionAndNegativeAttribute">
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence minOccurs="0">
<xsd:group ref="ox:ObjectPropertyExpression"/>
</xsd:sequence>
<xsd:attribute name="negative" type="xsd:boolean" default="false"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="KBRequestWithTwoIndividualsAndNegativeAttribute">
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence>
<xsd:element ref="ox:Individual"/>
<xsd:element ref="ox:Individual"/>
</xsd:sequence>
<xsd:attribute name="negative" type="xsd:boolean" default="false"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="KBRequestWithOneIndividualAndObjectPropertyExprNegativeAttribute">
<xsd:complexContent>
<xsd:extension base="ol:KBRequest">
<xsd:sequence>
<xsd:element ref="ox:Individual" maxOccurs="1" minOccurs="1"/>
<xsd:group ref="ox:ObjectPropertyExpression" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="negative" type="xsd:boolean" default="false"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- the group of told requests -->
<xsd:group name="ToldRequests">
<xsd:choice>
<xsd:element ref="told:GetClassAxioms"/>
<xsd:element ref="told:GetAllGeneralClassAxioms"/>
<xsd:element ref="told:GetObjectPropertyAxioms"/>
<xsd:element ref="told:GetDataPropertyAxioms"/>
<xsd:element ref="told:GetAllGeneralObjectPropertyAxioms"/>
<xsd:element ref="told:GetToldTypes"/>
<xsd:element ref="told:GetToldInstance"/>
<xsd:element ref="told:GetToldEquivalentIndividuals"/>
<xsd:element ref="told:GetToldObjectPropertyFillers"/>
<xsd:element ref="told:GetToldObjectPropertySources"/>
<xsd:element ref="told:GetToldObjectPropertyAssertionsForSource"/>
<xsd:element ref="told:GetToldObjectPropertyAssertionsForFiller"/>
<xsd:element ref="told:GetToldObjectPropertyAssertions"/>
<xsd:element ref="told:GetToldRelatedIndividuals"/>
<xsd:element ref="told:GetAnnotationPropertyDeclarations"/>
<xsd:element ref="told:GetOWLClassDeclarations"/>
<xsd:element ref="told:GetIndividualDeclarations"/>
<xsd:element ref="told:GetObjectPropertyDeclarations"/>
<xsd:element ref="told:GetDataPropertyDeclarations"/>
<xsd:element ref="told:GetDatatypeDeclarations"/>
<xsd:element ref="told:GetAnnotations"/>
<xsd:element ref="told:GetKB"/>
</xsd:choice>
</xsd:group>
<!-- RESPONSES -->
<!-- the group of told requests -->
<xsd:group name="ToldResponses">
<xsd:choice>
<xsd:element ref="told:ToldClassAxioms"/>
<xsd:element ref="told:ToldGeneralClassAxioms"/>
<xsd:element ref="told:ToldObjectPropertyAxioms"/>
<xsd:element ref="told:ToldDataPropertyAxioms"/>
<xsd:element ref="told:ToldGeneralObjectPropertyAxioms"/>
<xsd:element ref="told:ToldClassAssertions"/>
<xsd:element ref="told:ToldEquivalentIndividuals"/>
<xsd:element ref="told:ToldDisjointIndividuals"/>
<xsd:element ref="told:ToldObjectPropertyAssertions"/>
<xsd:element ref="told:ToldDataPropertyAssertions"/>
<xsd:element ref="told:ToldDeclarationAxioms"/>
<xsd:element ref="told:ToldAnnotationAxioms"/>
<xsd:element ref="told:ToldKBAxioms"/>
</xsd:choice>
</xsd:group>
<xsd:element name="ToldClassAxioms">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:choice>
<xsd:element ref="ox:SubClassOf"/>
<xsd:element ref="ox:EquivalentClasses"/>
<xsd:element ref="ox:DisjointClasses"/>
<xsd:element ref="ox:DisjointUnion"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldGeneralClassAxioms">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:choice>
<xsd:element ref="ox:SubClassOf"/>
<xsd:element ref="ox:EquivalentClasses"/>
<xsd:element ref="ox:DisjointClasses"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="xml:specialAttrs"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldObjectPropertyAxioms">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:choice>
<xsd:element ref="ox:ObjectPropertyDomain"/>
<xsd:element ref="ox:ObjectPropertyRange"/>
<xsd:element ref="ox:FunctionalObjectProperty"/>
<xsd:element ref="ox:ReflexiveObjectProperty"/>
<xsd:element ref="ox:InverseFunctionalObjectProperty"/>
<xsd:element ref="ox:IrreflexiveObjectProperty"/>
<xsd:element ref="ox:SymmetricObjectProperty"/>
<xsd:element ref="ox:TransitiveObjectProperty"/>
<xsd:element ref="ox:AsymmetricObjectProperty"/>
<xsd:element ref="ox:EquivalentObjectProperties"/>
<xsd:element ref="ox:DisjointObjectProperties"/>
<xsd:element ref="ox:SubObjectPropertyOf"/>
<xsd:element ref="ox:InverseObjectProperties"/>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldDataPropertyAxioms">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:choice>
<xsd:element ref="ox:DataPropertyDomain"/>
<xsd:element ref="ox:DataPropertyRange"/>
<xsd:element ref="ox:FunctionalDataProperty"/>
<xsd:element ref="ox:EquivalentDataProperties"/>
<xsd:element ref="ox:DisjointDataProperties"/>
<xsd:element ref="ox:SubDataPropertyOf"/>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldGeneralObjectPropertyAxioms">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:choice>
<xsd:element ref="ox:ObjectPropertyDomain"/>
<xsd:element ref="ox:ObjectPropertyRange"/>
<xsd:element ref="ox:FunctionalObjectProperty"/>
<xsd:element ref="ox:ReflexiveObjectProperty"/>
<xsd:element ref="ox:InverseFunctionalObjectProperty"/>
<xsd:element ref="ox:IrreflexiveObjectProperty"/>
<xsd:element ref="ox:SymmetricObjectProperty"/>
<xsd:element ref="ox:TransitiveObjectProperty"/>
<xsd:element ref="ox:AsymmetricObjectProperty"/>
<xsd:element ref="ox:EquivalentObjectProperties"/>
<xsd:element ref="ox:DisjointObjectProperties"/>
<xsd:element ref="ox:SubObjectPropertyOf"/>
<xsd:element ref="ox:InverseObjectProperties"/>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldClassAssertions">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="ox:ClassAssertion"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldEquivalentIndividuals">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<!-- note that there is a typo in the OWL 2 schema as of April 2008
ox:SameIndividual (instead of ox:SameIndividuals) -->
<xsd:element ref="ox:SameIndividual"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldDisjointIndividuals">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="ox:DifferentIndividuals"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldObjectPropertyAssertions">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="ox:ObjectPropertyAssertion"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldDataPropertyAssertions">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="ox:DataPropertyAssertion"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldDeclarationAxioms">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="ox:Declaration"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldAnnotationAxioms">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="ox:EntityAnnotation"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ToldKBAxioms">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ol:KBResponse">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:group ref="ox:Axiom"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ox="http://www.w3.org/ns/owl2-xml"
xmlns:ol="http://www.owllink.org/owllink-xml"
xmlns:ext="http://www.owllink.org/owllink-xml/ext/told-xml"
targetNamespace="http://www.owllink.org/owllink-xml"
elementFormDefault="qualified" attributeFormDefault="qualified">
<xsd:import namespace="http://www.w3.org/ns/owl2-xml" schemaLocation="http://www.owllink.org/owl2.xsd"/>
<xsd:import namespace="http://www.owllink.org/owllink-xml/ext/told-xml" schemaLocation="http://www.owllink.org/ext/told-xml-def.xsd"/>
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xsd:redefine schemaLocation="http://www.owllink.org/owllink-xml.xsd">
<xsd:group name="Request">
<xsd:choice>
<xsd:group ref="ol:Request"/>
<xsd:group ref="ext:ToldRequests"/>
</xsd:choice>
</xsd:group>
<xsd:group name="Response">
<xsd:choice>
<xsd:group ref="ol:Response"/>
<xsd:group ref="ext:ToldResponses"/>
</xsd:choice>
</xsd:group>
</xsd:redefine>
</xsd:schema>