software
type: Ontology
version info: 0.95
comment: Ontosoft is an ontology to describe software

isRequiredProperty
type: AnnotationProperty
comment: This property annotation indicates if a property is a required property or not
range: boolean

searchConfig
type: AnnotationProperty
comment: This property annotation provides information to be handed over to search engines (like Solr) to explain how to tokenize and index the property values

uiConfig
type: AnnotationProperty
comment: This property annotation provides UI specific information for the property like positioning, special UI interface, etc

Accessibility
type: ObjectProperty
sub property of: RUN

UNDERSTAND
type: ObjectProperty

CONTRIBUTE
type: ObjectProperty

Domain Knowledge
type: ObjectProperty
sub property of: UNDERSTAND

RUN
type: ObjectProperty

Run with other data
type: ObjectProperty
sub property of: DO RESEARCH

Run with other software
type: ObjectProperty
sub property of: DO RESEARCH

Scientific Publications
type: ObjectProperty
sub property of: DO RESEARCH

Quality
type: ObjectProperty
sub property of: UNDERSTAND

Execution Requirements
type: ObjectProperty
sub property of: RUN

DO RESEARCH
type: ObjectProperty

Software Evolution
type: ObjectProperty
sub property of: CONTRIBUTE

Support and Community
type: ObjectProperty
sub property of: CONTRIBUTE

Test
type: ObjectProperty
sub property of: RUN

domainKeywords
type: ObjectProperty
is required property: true
ui config: {position:4}
description: Mention any domain specific keywords for this software
sub property of: Domain Knowledge
domain: Software
range: TextValue

hasActiveDevelopment
type: ObjectProperty
is required property: true
ui config: {position:1}
description: How is the software being developed or maintained ?
domain: Software
sub property of: Support and Community
range: TextValue

hasAverageRunTime
type: ObjectProperty
type: FunctionalProperty
description: Do you know how long it takes to run this software on average ?
ui config: {position:5}
range: Measurement
sub property of: Execution Requirements
domain: Software

hasBenchmarkInformation
type: ObjectProperty
description: Is there any benchmark information about the software ?
ui config: {position:6}
sub property of: Quality
domain: Software
range: TextValue

hasCodeLocation
type: ObjectProperty
type: FunctionalProperty
is required property: true
description: What is the URL for the code ?
ui config: {position: 2}
sub property of: Accessibility
range: Location
domain: Software

hasCompatibleSoftware
type: ObjectProperty
description: What other software can this software be composed with (in a workflow) ?
domain: Composition
sub property of: Run with other software
range: TextValue

hasCompositionDescription
type: ObjectProperty
type: FunctionalProperty
is required property: true
ui config: {position:3}
description: Is this software typically used with other software in a workflow ? (eg: for visualization, preprocessing, postprocessing, etc)
range: Composition
sub property of: Run with other software
domain: Software

hasCreator
type: ObjectProperty
is required property: true
description: Who created this software ?
ui config: {position:1}
range: Person
sub property of: Quality
domain: Software

hasDependency
type: ObjectProperty
is required property: true
description: What other software does the software require to be installed ?
ui config: {position:4}
sub property of: Execution Requirements
domain: Software
range: SoftwareVersion

hasDocumentation
type: ObjectProperty
type: FunctionalProperty
description: Is there any on-line documentation about the software ?
ui config: {position: 7}
sub property of: Accessibility
range: Location
domain: Software

hasDoi
type: ObjectProperty
description: What is the DOI for this software (or software version) ?
ui config: {position:1}
sub property of: Scientific Publications
domain: software DOI
range: TextValue

hasDoiVersionId
type: ObjectProperty
ui config: {position:2}
description: Is this DOI associated with a particular version ?
sub property of: Scientific Publications
domain: software DOI
range: TextValue

hasFileId
type: ObjectProperty
description: What is the id for the file ?
domain: File
sub property of: Run with other software
range: TextValue

hasFileType
type: ObjectProperty
description: What is the file type ?
domain: File
sub property of: Run with other software
range: TextValue

hasInputFile
type: ObjectProperty
is required property: true
description: What input files that the software require ?
ui config: {position:1}
range: File
sub property of: Run with other software
domain: Software

hasInstallationInstructions
type: ObjectProperty
is required property: true
ui config: {position:3}
description: How can one install the software ?
sub property of: Execution Requirements
domain: Software
range: TextValue

hasLanguage
type: ObjectProperty
is required property: true
ui config: {position:1}
description: What languages is the program written in ?
range: Language
sub property of: Execution Requirements
domain: Software

hasLicense
type: ObjectProperty
is required property: true
ui config: {position: 3}
description: What license is the code released under ?
sub property of: Accessibility
range: License
domain: Software

hasMajorContributor
type: ObjectProperty
is required property: true
ui config: {position:2}
description: Are there any major contributors of note for this software ?
range: Person
sub property of: Quality
domain: Software

hasName
type: ObjectProperty
type: FunctionalProperty
is required property: true
ui config: {position: 1}
description: What is it called ?
sub property of: Accessibility
domain: Software
range: TextValue

hasOtherImplementationDetails
type: ObjectProperty
type: FunctionalProperty
description: Are there any other important details about the implementation of this code (parallelization, special hardware, etc) ?
ui config: {position:7}
sub property of: Execution Requirements
domain: Software
range: TextValue

hasOutputFile
type: ObjectProperty
is required property: true
ui config: {position:2}
range: File
sub property of: Run with other software
domain: Software

hasPersonIdentifier
type: ObjectProperty
is required property: true
description: Provide a Twitter handle, ORCID Id, email address, github URL, home page, or any other unique identifier for this person
domain: Person
sub property of: Quality
range: TextValue

hasPreferredCitation
type: ObjectProperty
type: FunctionalProperty
is required property: true
ui config: {position:1}
description: Is there a preferred publication for citing this software ?
range: Location
sub property of: Scientific Publications
domain: Software

hasProjectWebsite
type: ObjectProperty
type: FunctionalProperty
description: Is there a project website for the software ?
ui config: {position: 6}
sub property of: Accessibility
range: Location
domain: Software

hasRelevantDataSources
type: ObjectProperty
is required property: true
description: Are there any relevant data sources to conduct an experiment with ?
sub property of: Run with other data
domain: Software
range: TextValue

hasSalientQualities
type: ObjectProperty
is required property: true
description: What other useful features of this software are worth highlighting ?
ui config: {position:3}
sub property of: Quality
domain: Software
range: TextValue

hasShortDescription
type: ObjectProperty
type: FunctionalProperty
description: Would you like to provide a short description for this software ?
ui config: {position: 5}
sub property of: Accessibility
domain: Software
range: TextValue

hasSoftwareCommunity
type: ObjectProperty
is required property: true
description: Is there any on-line resource for accessing the software community ? (eg. Mailing-list, discussion board, wiki, etc)
ui config: {position:3}
domain: Software
sub property of: Support and Community
range: TextValue

hasSoftwareDoi
type: ObjectProperty
ui config: {position:2}
description: Is there a DOI for this software or any of its versions ?
sub property of: Scientific Publications
domain: Software
range: software DOI

hasSoftwareSupport
type: ObjectProperty
ui config: {position:2}
description: How can a user get support for the software ? (eg. Report bugs, request features and extensions, etc)
domain: Software
sub property of: Support and Community
range: TextValue

hasSoftwareTag
type: ObjectProperty
is required property: true
ui config: {position: 4}
description: What category tags are associated with the software ?
sub property of: Accessibility
domain: Software
range: SoftwareTag

hasTestData
type: ObjectProperty
is required property: true
description: Do you have any test data for the software ?
ui config: {position:1}
domain: Software
range: TestData
sub property of: Test

hasTestDataDescription
type: ObjectProperty
type: FunctionalProperty
ui config: {position:2}
description: Can you describe the test data ?
domain: TestData
sub property of: Test
range: TextValue

hasTestDataLocation
type: ObjectProperty
type: FunctionalProperty
is required property: true
description: What is the URL for test data ?
ui config: {position:1}
range: Location
domain: TestData
sub property of: Test

hasTestInstructions
type: ObjectProperty
type: FunctionalProperty
ui config: {position:2}
description: Are there any specific instructions for testing the software ?
domain: Software
sub property of: Test
range: TextValue

hasUseInformation
type: ObjectProperty
description: Is there any information about uses of this software (paper dois, research labs, etc) ?
ui config: {position:4}
sub property of: Quality
domain: Software
range: TextValue

hasUseLimitations
type: ObjectProperty
is required property: true
description: Are there any constraints on use, situations it is not designed for, simplifications ?
ui config: {position:1}
sub property of: Domain Knowledge
domain: Software
range: TextValue

hasUseStatistics
type: ObjectProperty
description: Is there any information about the software use (downloads, frequency of run, etc) ?
ui config: {position:5}
sub property of: Quality
domain: Software
range: TextValue

hasUsesAndAssumptions
type: ObjectProperty
type: FunctionalProperty
ui config: {position:2}
description: What are the recommended uses and assumptions for the software ?
sub property of: Domain Knowledge
domain: Software
range: TextValue

hasVersionId
type: ObjectProperty
is required property: true
ui config: {position:1}
description: What is the software version id ?
sub property of: Software Evolution
domain: SoftwareVersion
range: TextValue

hasVersionReleaseDate
type: ObjectProperty
ui config: {position:2}
description: When was this version released ?
sub property of: Software Evolution
domain: SoftwareVersion
range: TextValue

hasWorkflowDescription
type: ObjectProperty
type: FunctionalProperty
description: Describe the workflow ?
domain: Composition
sub property of: Run with other software
range: TextValue

requiresAverageMemory
type: ObjectProperty
type: FunctionalProperty
description: Are there any memory requirements for this software ?
ui config: {position:6}
range: Measurement
sub property of: Execution Requirements
domain: Software

similarSoftware
type: ObjectProperty
type: FunctionalProperty
description: Is there any other similar software that you know of ?
ui config: {position:3}
sub property of: Domain Knowledge
domain: Software
range: TextValue

supportsOperatingSystem
type: ObjectProperty
is required property: true
description: What Operating Systems can the program run on ?
ui config: {position:2}
range: OperatingSystem
sub property of: Execution Requirements
domain: Software

has URI value
type: DatatypeProperty
type: FunctionalProperty
domain: Location
range: anyURI

Composition
type: Class
comment: Composition class is used to describe composition of a software with others in a workflow

File
type: Class
comment: A File indicates a file based input to, or file based output from a software

Language
type: Class
comment: The class of programming languages

License
type: Class
comment: A class of licenses that the software is released under

Location
type: Class
comment: A Location URL

Measurement
type: Class
comment: A Numeric value

NumericValue
type: Class
comment: A numeric value

OperatingSystem
type: Class
comment: Operating Systems that the software runs on

Person
type: Class
comment: A Person identifier class

Software
type: Class
comment: A Software is any piece of code that is described in Ontosoft. This could some visualisation software, software package, library, componentised scripts, etc. This can be subclassed if software categories with extra properties are required, otherwise one should use SoftwareTag to categorise software.

software DOI
type: Class
comment: SoftwareDoi indicates the DOI for a software version

SoftwareTag
type: Class
comment: A software can be tagged with multiple categories. Multiple instances can be created of this, and it can also be subclassed to have hierarchical categories

SoftwareVersion
type: Class
subclass of: Software
comment: A version of a piece of software described by ontosoft

TestData
type: Class
comment: TestData is used to describe test datasets for the software

TextValue
type: Class
comment: A text value

AGPL
type: NamedIndividual
type: License

Apache v2
type: NamedIndividual
type: License

BSD
type: NamedIndividual
type: License

C
type: NamedIndividual
type: Language

CDDL
type: NamedIndividual
type: License

CSS
type: NamedIndividual
type: Language

C++
type: NamedIndividual
type: Language

Creative Commons
type: NamedIndividual
type: License

EPL
type: NamedIndividual
type: License

GFDL
type: NamedIndividual
type: License

GPLv2
type: NamedIndividual
type: License

GPLv3
type: NamedIndividual
type: License

HTML
type: NamedIndividual
type: Language

LGPL
type: NamedIndividual
type: License

MIT
type: NamedIndividual
type: License

MPL
type: NamedIndividual
type: License

MsRL
type: NamedIndividual
type: License