Research Object ontology
type: Ontology
version IRI: ro.owl
imports: ore-owl.owl
imports: metadata.owl
version info: 1.0.0-SNAPSHOT
issued: 2016-01-28T15:46:00Z
modified: 2016-01-28T15:46:00Z
description: This ontology shows how OA and ORE ontologies can be used together to define a ResearchObject.
backward compatible with: ro.owl
preferred namespace prefix: ro
preferred namespace uri: http://purl.org/wf4ever/ro#
usage note: primer
creator: Daniel Garijo
creator: Stian Soiland-Reyes
creator: Graham Klyne
creator: Khalid Belhajjame
creator: Oscar Corcho
creator: Raul Palma
creator: Sean Bechhofer
creator: Esteban García Cuesta
creator: esteban-garcia-cuesta
creator: http://orcid.org/0000-0001-6938-0820
creator: http://orcid.org/0000-0001-9842-9718
creator: http://orcid.org/0000-0002-0323-0093
creator: http://orcid.org/0000-0002-5872-3573
creator: http://orcid.org/0000-0002-9260-0753
creator: http://orcid.org/0000-0003-0454-7145
creator: http://orcid.org/0000-0003-4289-4922
license: http://creativecommons.org/licenses/by/4.0/
publisher: researchobject.org
rights: This ontology is distributed under Creative Commons Attribution 4.0 License - http://creativecommons.org/licenses/by/4.0

annotatesResource
type: ObjectProperty
equivalent property: hasTarget
comment: This property is deprecated. Use oa:hasTarget instead.
deprecated: true

body
type: ObjectProperty
equivalent property: hasBody
comment: This property is deprecated. Use oa:hasBody instead.
deprecated: true

annotatesAggregatedResource
type: ObjectProperty
sub property of: hasTarget
comment: This property is deprecated. Use oa:hasTarget instead.
deprecated: true

rootFolder
type: ObjectProperty
sub property of: aggregates
type: FunctionalProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: ResearchObject
range: Folder
comment: The suggested root ro:Folder for the ro:ResearchObject. This folder should not be aggregated within other ro:Folders and can be seen as the top level folder for other ro:Folders in this RO. This folder structure, if stated, is the RO creator's preferred view of organizing the RO resources. Note that the content of any folder directly or indirectly below the ro:rootFolder (including subfolders) MUST also be aggregated by the ro:ResearchObject itself.

entryName
type: DatatypeProperty
type: FunctionalProperty
domain: Folder Entry
range: string
comment: This functional property specifies the name of a ro:FolderEntry within an ro:Folder. This name must be case-sensitively unique within the ro:Folder, similar to a filename in a directory. TODO: Need a functional property to specify the top level folder structure of an {{ro:ResearchObject}}?

Aggregated Annotation
type: Class
subclass of: AggregatedResource
subclass of: Annotation
subclass of: Restriction
  on property: creator
  some values from: Agent
subclass of: Restriction
  on property: isAggregatedBy
  some values from: ResearchObject
subclass of: Restriction
  on property: hasTarget
  some values from: Class
    union of: ResearchObject
    union of: AggregatedResource
    union of: Proxy
subclass of: Restriction
  on property: created
  some values from: dateTime
comment: An annotation aggregated within an ro:ResearchObject. Instances of this class are used to annotated resources aggregated within the aggregating research object, proxies of these resources, or the research object itself. In other words, if :ro is the ro:ResearchObject this annotation has been ore:isAggregatedBy, then the annotation should have at least one oa:hasTarget which is an ore:AggregatedResource which is ore:isAggregatedBy :ro, or the annotated resource is an ore:Proxy which ore:proxyIn :ro, or the annotated resource is :ro. It is possible for the annotation to also annotate non-aggregated resources, but as above, at least one of them needs to be part of the RO or the RO itself. For semantic annotations, the oa:hasBody SHOULD point to an trig:Graph which contains the actual annotation.

Folder
type: Class
subclass of: Resource
subclass of: Aggregation
comment: An ro:Folder is a special kind of ore:Aggregation where every ro:AggregatedResource must have a ro:FolderEntry proxy with a unique ro:entryName within that folder. Note that all resources which are aggregated within an (potentially nested) ro:Folder SHOULD also be aggregated by the same ro:ResearchObject this ro:Folder is aggregated within. Such folders can be nested and (optionally) used to organize the resources of the research object into a file-like structure. All such resources should also be aggregated by the ro:ResearchObject

Folder Entry
type: Class
equivalent class: Restriction
  on property: proxyIn
  some values from: Folder
equivalent class: Restriction
  on property: entryName
  some values from: string
subclass of: Proxy
has key: proxyIn
has key: entryName
comment: An ro:FolderEntry is any ore:Proxy instance that associates a resources aggregated within an ro:Folder with a ro:entryName. This name is (case-sensitive) unique within a given folder.

Manifest
type: Class
equivalent class: Restriction
  on property: describes
  some values from: ResearchObject
subclass of: ResourceMap
comment: The ro:Manifest is used to describe an ro:ResearchObject. This identifies the resource for the manifest which lists all the aggregations of the research object, typically called ".ro/manifest.rdf" relative to the research object this manifest ore:describes.

ResearchObject
type: Class
equivalent class: Restriction
  on property: isDescribedBy
  some values from: Manifest
subclass of: Aggregation
subclass of: Restriction
  on property: creator
  some values from: Agent
subclass of: Restriction
  on property: created
  some values from: dateTime
comment: A research object aggregates a number of resources. A resource can be a workflow, web service, document, data item, data set, workflow run, software or a research object.

Resource
type: Class
subclass of: AggregatedResource
subclass of: Restriction
  on property: isAggregatedBy
  some values from: ResearchObject
subclass of: Restriction
  on property:
    inverse of: proxyFor
  some values from: Restriction
    on property: proxyIn
    some values from: ResearchObject
comment: An ro:Resource is an ore:AggregatedResource which ore:isAggregatedBy an ro:ResearchObject. This specialisation requires that there exists an ore:Proxy which is ore:proxyFor this resource, and which is ore:proxyIn the same ro:ResearchObject the resource ore:isAggregatedBy. Any annotations on such a proxy will descrive the ro:Resource within that particular ro:ResearchObject, in particular dct:creator and dct:created on the proxy will specify who added the resource to the aggregation at what time. Note that annotations (ro:Annotation) can be added to both the ro:Resource and the ore:Proxy - depending on if the annotation is seen to be globally true (such as the provenance of how the resource was created) or locally true within the Research Object (such as the the resource playing the role of a wf4ever:Dataset). Not all resources aggregated by an ro:ResearchObject are ro:Resource instances, in particular ro:Annotations will also be aggregated, but are not required to also be ro:Resources (needing their own ore:Proxy). Aggregated resources MAY also be organised in (potentially nested) ro:Folders to reflect a file-system like structure. Note that any such resources SHOULD also be aggregated in the "mother" ro:ResearchObject.