@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix : <http://www.lingvoj.org/olca#> .
@prefix lingvo: <http://www.lingvoj.org/ontology#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix voaf: <http://purl.org/vocommons/voaf#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix schema: <http://schema.org/> .
@prefix lode: <http://linkedevents.org/ontology/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .

@base <http://www.lingvoj.org/olca> .

### Vocabulary metadata ###

<http://www.lingvoj.org/olca> 
	a owl:Ontology;
	a voaf:Vocabulary ;
	rdfs:label "Ontology Loose Coupling Annotation"@en ;
	dcterms:title "Ontology Loose Coupling Annotation"@en ;
	rdfs:comment "A vocabulary defining annotations enabling loose coupling between classes and properties in ontologies. Those annotations define with some accuracy the expected use of properties, in particular across vocabularies, without the formal constraints entailed by the use of OWL or RDFS constructions"@en ;
	vann:preferredNamespacePrefix "olca" ;
	vann:preferredNamespaceUri <http://www.lingvoj.org/olca#> ;
	dcterms:creator <http://data.semanticweb.org/person/bernard-vatant> ;
	dcterms:contributor <http://data.semanticweb.org/person/carlos-tejo-alonso> ;
	dcterms:issued "2013-02-07";
	owl:versionIRI <http://www.lingvoj.org/olca_v1.0.ttl> ;
	owl:versionInfo "v1.0" ;
	rdfs:seeAlso <http://www.w3.org/wiki/WebSchemas/SchemaDotOrgMetaSchema>.
	
### Loose coupling of classes ###

:similarClass
	a owl:AnnotationProperty;
	rdfs:label "similar class"@en ;
	rdfs:comment "A loose similarity of classes, typically across ontologies . This annotation is to be used when one does not want to enforce formally the coupling by owl:equivalentClass. "@en ;
	:domainIncludes rdfs:Class;
	:domainIncludes owl:Class;
	:rangeIncludes rdfs:Class;
	:rangeIncludes owl:Class.
	
### Loose coupling of properties ###

:similarProperty
	a owl:AnnotationProperty ;
	rdfs:label "similar property"@en ;
	rdfs:comment "A loose similary of properties, typically across ontologies . This annotation is to be used when one does not want to enforce formally the coupling by owl:equivalentProperty. "@en ;
	:domainIncludes rdf:Property;
	:domainIncludes owl:ObjectProperty;
	:domainIncludes owl:DatatypeProperty;
	:domainIncludes owl:AnnotationProperty;
	:rangeIncludes rdf:Property;
	:rangeIncludes owl:ObjectProperty;
	:rangeIncludes owl:DatatypeProperty;
	:rangeIncludes owl:AnnotationProperty.
	
### Loose coupling of properties to classes ###

:domainIncludes
	a owl:AnnotationProperty;
	rdfs:label "domain includes"@en ;
	rdfs:comment "A loose coupling of a property to possible or expected class it can describe. This annotation is to be used when one does not want to enforce formally the coupling by rdfs:domain or some owl:Restriction constraint. "@en ;
	:domainIncludes rdf:Property;
	:domainIncludes owl:ObjectProperty;
	:domainIncludes owl:DatatypeProperty;
	:domainIncludes owl:AnnotationProperty;
	:rangeIncludes rdfs:Class;
	:rangeIncludes owl:Class.
	
:rangeIncludes
	a owl:AnnotationProperty;
	rdfs:label "range includes"@en ;
	rdfs:comment "A loose coupling of a property to possible or expected values. This annotation is to be used when one does not want to enforce formally the coupling by rdfs:range or some owl:Restriction constraint."@en ;
	:domainIncludes rdf:Property;
	:domainIncludes owl:ObjectProperty;
	:domainIncludes owl:DatatypeProperty;
	:domainIncludes owl:AnnotationProperty;
	:rangeIncludes rdfs:Class;
	:rangeIncludes owl:Class.
	
:expectedProperty
	a owl:AnnotationProperty;
	rdfs:label "expected property"@en ;
	rdfs:comment "A loose coupling of a class to possible or expected properties. This annotation is to be used when one does not want to enforce formally the coupling using rdfs:range or some owl:Restriction."@en ;
	:domainIncludes rdfs:Class;
	:domainIncludes owl:Class;
	:rangeIncludes rdf:Property;
	:rangeIncludes owl:ObjectProperty;
	:rangeIncludes owl:DatatypeProperty;
	:rangeIncludes owl:AnnotationProperty.
	
### Example 1: use of domainIncludes in Lingvoj Ontology ###

lingvo:officialLanguage 
	a owl:ObjectProperty ;                
	rdfs:label "official language"@en ;   	
	rdfs:comment "An official language of a country, project, organization or event."@en ;
	rdfs:range lingvo:Lingvo ;
	:domainIncludes foaf:Organization;
	:domainIncludes foaf:Project;
	:domainIncludes lode:Event;
	:domainIncludes schema:Country.
	
### Example2: possible loose coupling between SKOS, Dublin Core Terms and FOAF ###

dcterms:subject a  rdf:Property;
	:domainIncludes foaf:Document;
	:rangeIncludes skos:Concept.