@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
: a owl:Ontology;
:Agent a owl:Class;
rdfs:subClassOf foaf:Agent;
rdfs:subClassOf dcterms:Agent;
rdfs:subClassOf common:Agent;
rdfs:label "Agent"^^xsd:string;
rdfs:comment "Represents a person, role, or other principal to be granted access control rights"^^xsd:string.
:Person a owl:Class;
rdfs:subClassOf foaf:Person;
rdfs:subClassOf :Agent;
rdfs:subClassOf common:Person;
rdfs:label "Person"^^xsd:string;
rdfs:comment "Represents a person acting as an authenticated user of the repository"^^xsd:string.
:hasPrincipalName a owl:DatatypeProperty;
rdfs:comment "Indicates the authenticated login principal bound to this Person or Agent"^^xsd:string;
rdfs:label "login principal"^^xsd:string;
rdfs:domain :Person.
:isImplicit a owl:DatatypeProperty;
rdfs:comment "When true the role is implicit, that is, automatically assigned to the relevant users, invisible to admins."^^xsd:string;
rdfs:label "is an implicit role"^^xsd:string;
rdfs:domain :Person.
:Role a owl:Class;
rdfs:subClassOf :Agent;
rdfs:label "Role"^^xsd:string;
rdfs:comment "Represents an access-control role granted to an Agent"^^xsd:string.
:hasRole a owl:ObjectProperty;
rdfs:comment "Subject is entitled to the access privilegs of this role"^^xsd:string;
rdfs:label "has role"^^xsd:string;
rdfs:range :Role.
:hasAnyAccess a owl:ObjectProperty;
rdfs:comment "has*Access superproperty"^^xsd:string;
rdfs:label "has*Access superproperty"^^xsd:string.
:hasAddAccess a owl:ObjectProperty;
rdfs:comment "Grants ADD access on subject resource to a principal"^^xsd:string;
rdfs:label "has add access"^^xsd:string;
rdfs:subPropertyOf :hasAnyAccess;
rdfs:range :Agent.
:hasRemoveAccess a owl:ObjectProperty;
rdfs:comment "Grants remove access on subject resource to a principal"^^xsd:string;
rdfs:label "has remove access"^^xsd:string;
rdfs:subPropertyOf :hasAnyAccess;
rdfs:range :Agent.
:hasReadAccess a owl:ObjectProperty;
rdfs:comment "Grants read and query access on subject resource to a principal"^^xsd:string;
rdfs:label "has read access"^^xsd:string;
rdfs:subPropertyOf :hasAnyAccess;
rdfs:range :Agent.
:hasAdminAccess a owl:ObjectProperty;
rdfs:comment "Grants administrative access on subject resource to a principal"^^xsd:string;
rdfs:label "has administrative access"^^xsd:string;
rdfs:subPropertyOf :hasAnyAccess;
rdfs:range :Agent.
:NamedGraph a owl:Class;
rdfs:label "Named Graph"^^xsd:string;
rdfs:comment "Collection of metadata about named graph in the repository."^^xsd:string.
:NamedGraphType a owl:Class;
rdfs:label "Named Graph Type";
rdfs:comment "Purpose of a NamedGraph, indicates whether it should be included in certain query datasets"^^xsd:string .
:ngType a owl:FunctionalProperty;
rdfs:label "named graph type"^^xsd:string;
rdfs:comment "Describes type of contents and purpose of this named graph"^^xsd:string;
rdfs:range :NamedGraphType.
:hasEditToken a owl:ObjectProperty;
rdfs:comment "Relates eagle-i Resource Instance to a URI marking an update in progress with associated metadata."^^xsd:string;
rdfs:label "Edit Token"^^xsd:string.
:hasWorkflowState a owl:ObjectProperty;
rdfs:comment "Current workflow state of this instance"^^xsd:string;
rdfs:label "workflow state"^^xsd:string;
rdfs:range :WorkflowState.
:WorkflowState a owl:Class;
rdfs:label "Workflow State"^^xsd:string;
rdfs:comment "Controlled vocabulary describing workflow state."^^xsd:string.
:hasWorkflowOwner a owl:ObjectProperty;
rdfs:comment "Current owner (claimant) of the workflow state of this instance"^^xsd:string;
rdfs:label "workflow owner"^^xsd:string;
rdfs:range :Agent.
:WorkflowTransition a owl:Class;
rdfs:label "Workflow Transition";
rdfs:comment "Describes one of the possible transitions from one workflow state to another"^^xsd:string.
:workspace a owl:ObjectProperty;
rdfs:comment "Home workspace of resources capable of using this transition"^^xsd:string;
rdfs:label "Workspace"^^xsd:string;
rdfs:domain :WorkflowTransition;
rdfs:range :NamedGraph.
:initial a owl:ObjectProperty, owl:FunctionalProperty;
rdfs:comment "Initial (Starting) workflow state"^^xsd:string;
rdfs:label "Initial Workflow state"^^xsd:string;
rdfs:domain :WorkflowTransition;
rdfs:range :WorkflowState.
:final a owl:ObjectProperty, owl:FunctionalProperty;
rdfs:comment "Final (Ending) workflow state"^^xsd:string;
rdfs:label "Final Workflow State"^^xsd:string;
rdfs:domain :WorkflowTransition;
rdfs:range :WorkflowState.
:action a owl:DatatypeProperty;
rdfs:comment "fully qualified class name of Java class implementing action"^^xsd:string;
rdfs:label "action"^^xsd:string;
rdfs:domain :WorkflowTransition.
:actionParameter a owl:DatatypeProperty;
rdfs:comment "Transition-specific parameter to give action method"^^xsd:string;
rdfs:label "action parameter"^^xsd:string;
rdfs:domain :WorkflowTransition.
#------------------------------------------------
:NGType_Ontology a :NamedGraphType;
rdfs:comment "Contains Ontology applicable to data objects"^^xsd:string;
rdf:value "ontology"^^xsd:string;
rdfs:label "Ontology"^^xsd:string.
:NGType_Published a :NamedGraphType;
rdfs:label "Published resource instances"^^xsd:string;
rdf:value "published"^^xsd:string;
rdfs:comment "Data objects meant to be visible to the public"^^xsd:string.
:NGType_Workspace a :NamedGraphType;
rdfs:label "Workspace"^^xsd:string;
rdf:value "workspace"^^xsd:string;
rdfs:comment "Data objects meant to be invisible to the public"^^xsd:string.
:NGType_Metadata a :NamedGraphType;
rdfs:label "Administrative Metadata "^^xsd:string;
rdf:value "metadata"^^xsd:string;
rdfs:comment "Administrative Metadata for the repository"^^xsd:string.
:NGType_Internal a :NamedGraphType;
rdfs:label "Internal Use Only"^^xsd:string;
rdf:value "internal"^^xsd:string;
rdfs:comment "Contains data that is only to be used internally by repository, such as administrative metadata"^^xsd:string.
#---------------------
:MatchAnything
rdfs:comment "Wildcard URI for delete statements request, matches any predicate and/or object"^^xsd:string.
#---------------------
:LabelProperties a rdf:Seq;
rdfs:comment "Properties to check for label in eagle-i data model ontology, in order of preference"^^xsd:string;
rdf:_1 <http://eagle-i.org/ont/app/1.0/preferredLabel> ;
rdf:_2 <http://purl.obolibrary.org/obo/IAO_0000111> ;
rdf:_3 rdfs:label .
#----------------------------------------------------------------
:WFS_New a :WorkflowState;
rdfs:comment "New instance in the process of creation"^^xsd:string;
rdfs:label "New"^^xsd:string;
:order "10"^^xsd:integer.
:WFS_Draft a :WorkflowState;
rdfs:comment "Data collection and preparation"^^xsd:string;
rdfs:label "Draft"^^xsd:string;
:order "20"^^xsd:integer;
:hasWriter :Role_RNAV;
:hasWriter :Role_Curator.
:WFS_Curation a :WorkflowState;
rdfs:comment "Awaiting approval by a curator and possible editing"^^xsd:string;
rdfs:label "In Curation"^^xsd:string;
:order "30"^^xsd:integer;
:hasWriter :Role_Curator.
:WFS_Published a :WorkflowState;
rdfs:comment "Finished and available to the public"^^xsd:string;
rdfs:label "Published"^^xsd:string;
:order "40"^^xsd:integer;
:hasWriter :Role_Curator.
:WFS_Withdrawn a :WorkflowState;
rdfs:comment "Withdrawn from public access"^^xsd:string;
rdfs:label "Withdrawn"^^xsd:string;
:order "50"^^xsd:integer;
:hasWriter :Role_Curator.