@prefix rdfs:	<http://www.w3.org/2000/01/rdf-schema#> .
@prefix ns1:	<http://www.openlinksw.com/schemas/graphql#> .
ns1:Map	rdfs:comment	"The root object of GraphQL/SPARQL bridge annotation properties" ;
	rdfs:label	"Map"@en ;
	rdfs:isDefinedBy	ns1:schema .
@prefix rdf:	<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl:	<http://www.w3.org/2002/07/owl#> .
ns1:Map	rdf:type	owl:Class .
ns1:MappingObject	rdfs:comment	"\n        This is a core mapping class, all objects representing GraphQL objects and fields are instance of this class. \n        All instance denotations MUST be scoped to the namespace prefix `gql: <http://www.openlinksw.com/schemas/graphql#>`. \n        Example: query { planet { order_num } } will use `gql:planet` and `gql:order_num` to find associated RDF class and property. \n        RDF terms mappings should be defined using the form:  `gql:planet gql:rdfClass ex:Planet` and `ex:planetOrder gql:field gql:order_num`. \n        " ;
	rdfs:label	"MappingObject"@en ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:Class .
ns1:schemaObjects	rdfs:comment	"List of mappings between GraphQL and RDF objects and fields." ;
	rdfs:label	"schemaObjects"@en ;
	rdfs:domain	ns1:Map ;
	rdfs:range	ns1:MappingObject ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:ObjectProperty .
ns1:dataGraph	rdfs:comment	"The IRI of graph containing the RDF Dataset." ;
	rdfs:label	"dataGraph"@en ;
	rdfs:domain	ns1:Map ;
	rdfs:range	rdf:Resource ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:DatatypeProperty .
ns1:schemaGraph	rdfs:comment	"The IRI of the schema (`self`)." ;
	rdfs:label	"schemaGraph"@en ;
	rdfs:domain	ns1:Map ;
	rdfs:range	rdfs:Resource ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:DatatypeProperty .
ns1:inferenceName	rdfs:comment	"The label of RDF inference rule used to query RDF data" ;
	rdfs:label	"inferenceName"@en ;
	rdfs:domain	ns1:Map .
@prefix dt:	<http://www.w3.org/2001/XMLSchema#> .
ns1:inferenceName	rdfs:range	dt:string ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:DatatypeProperty .
ns1:iriPattern	rdfs:comment	"A `sprintf` format string that denotes instances of `this` class" ;
	rdfs:label	"iriPattern"@en ;
	rdfs:domain	owl:Class ;
	rdfs:range	dt:string ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:DatatypeProperty .
ns1:mutationType	rdfs:comment	"Type of operation used to perform basic mutation operations on instances of `this` class, `INSERT` or `DELETE`" ;
	rdfs:label	"mutationType"@en ;
	rdfs:domain	owl:Class ;
	rdfs:range	dt:string ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:DatatypeProperty .
ns1:sparqlQuery	rdfs:comment	"`SPARQL` query text for `gql:Function` field types" ;
	rdfs:label	"sparqlQuery"@en ;
	rdfs:domain	owl:Class ;
	rdfs:range	dt:string ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:DatatypeProperty .
ns1:rdfClass	rdfs:comment	"Mapping between an OWL/RDF class and GraphQL mapping object listed in `schemaObjects` " ;
	rdfs:label	"rdfClass"@en ;
	rdfs:domain	rdfs:MappingObject ;
	rdfs:range	owl:Class ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:ObjectProperty .
ns1:field	rdfs:comment	"Mapping of a RDF property to a GraphQL field name.\n     This property is used to match a given input field from a GraphQL query \n     to a property associated with matching OWL/RDF class" ;
	rdfs:label	"field"@en ;
	rdfs:domain	owl:DatatypeProperty ,
		owl:ObjectProperty ;
	rdfs:range	rdfs:MappingObject ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:ObjectProperty .
ns1:type	rdfs:comment	"Mapping of a RDF property to `SCALAR`, `OBJECT` and `LIST` GraphQL types. \n    This property is used in output serialisation (for ex. `JSON`) to represent nodes and leafs in the results tree" ;
	rdfs:label	"type"@en ;
	rdfs:domain	owl:DatatypeProperty ,
		owl:ObjectProperty ;
	rdfs:range	ns1:Object ,
		ns1:Scalar ,
		ns1:Array ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	owl:ObjectProperty .
ns1:Function	rdfs:comment	"Class representing `SPARQL` query" ;
	rdfs:label	"Function"@en ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	ns1:MappingObject .
ns1:Scalar	rdfs:comment	"Common object for all scalar types e.g. String, Int, Float etc., if a field is not present defaults to `null`" ;
	rdfs:label	"Scalar"@en ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	ns1:MappingObject .
ns1:Boolean	rdfs:comment	"Object for scalar type `Boolean`, when a field is not present defaults to `false`" ;
	rdfs:label	"Boolean"@en ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	ns1:MappingObject .
ns1:Object	rdfs:comment	"Class representing GraphQL type `OBJECT`" ;
	rdfs:label	"Object"@en ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	ns1:MappingObject .
ns1:Array	rdfs:comment	"Class representing GraphQL type `LIST`" ;
	rdfs:label	"Array"@en ;
	rdfs:isDefinedBy	ns1:schema ;
	rdf:type	ns1:MappingObject .
@prefix dcterms:	<http://purl.org/dc/terms/> .
ns1:schema	dcterms:created	"2022-07-03"^^dt:date .
@prefix wdrs:	<http://www.w3.org/2007/05/powder-s#> .
ns1:schema	wdrs:describedby	<http://www.openlinksw.com/DAV/data/turtle/graphql-schema.ttl> ;
	dcterms:modified	"2022-07-14"^^dt:date ;
	rdfs:comment	"\n    This ontology descibe terms for annotating classes and properties that inform the behavior of our GraphQL/SPARQL bridge.\n    These annotations can be used with a dataset-specific OWL/RDF ontology to enabled data access using GraphQL payloads via HTTP.\n    " ;
	rdfs:label	"RDF Ontology to GraphQL mappings schema" .
@prefix openvocab:	<http://open.vocab.org/terms/> .
ns1:schema	openvocab:defines	ns1:Map ,
		ns1:MappingObject ,
		ns1:schemaObjects ,
		ns1:dataGraph ,
		ns1:sparqlQuery ,
		ns1:rdfClass ,
		ns1:field ,
		ns1:type ,
		ns1:schemaGraph ,
		ns1:inferenceName ,
		ns1:iriPattern ,
		ns1:mutationType ,
		ns1:Array ,
		ns1:Function ,
		ns1:Scalar ,
		ns1:Boolean ,
		ns1:Object ;
	rdf:type	owl:Ontology .
