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

category
type: AnnotationProperty
comment: Category of software metadata properties

isRequired
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

hasActiveDevelopment
type: ObjectProperty
is required: true
ui config: {position:1}
description: How is the software being developed or maintained ?
category: Contribute
range: Development Information
domain: Software

hasAverageRunTime
type: ObjectProperty
type: FunctionalProperty
description: Do you know how long it takes to run this software on average ?
ui config: {position:5}
category: Install
range: Measurement Entity
domain: Software

hasBenchmarkInformation
type: ObjectProperty
description: Is there any benchmark information about the software ?
ui config: {position:6}
range: Benchmark Information
domain: Software
category: Trust

hasCitationLocation
type: ObjectProperty
description: What is the URL for the citation ?
domain: Citation
category: Cite
range: Location

hasCitationText
type: ObjectProperty
description: What is the text associated with the Citation ?
domain: Citation
range: Citation Text
category: Cite

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

hasCompatibleSoftware
type: ObjectProperty
description: What software can this software be composed with in a workflow ?
category: Compose
domain: Composition
range: Software Description

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

hasCreator
type: ObjectProperty
is required: true
description: Who created this software ?
ui config: {position:1}
range: Person
domain: Software
category: Trust

hasDependency
type: ObjectProperty
is required: true
description: What other software does the software require to be installed ?
ui config: {position:4}
category: Install
domain: Software
range: Software

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

hasDomainKeywords
type: ObjectProperty
is required: true
description: Mention any domain specific keywords for this software
ui config: {position:4}
range: Keywords
category: Relate
domain: Software

hasExecutableLocation
type: ObjectProperty
description: What is the URL for the executable ?
category: Access
range: Location
domain: Software

hasFileId
type: ObjectProperty
description: What is the id for the File I/O ?
category: Compose
domain: File I/O
range: Identifier

hasFileType
type: ObjectProperty
description: What is the File I/O type ?
category: Compose
domain: File I/O
range: Text Entity

hasImplementationLanguage
type: ObjectProperty
is required: true
description: What languages is the program written in ?
ui config: {position:1}
category: Install
range: Programming Language
domain: Software

hasInputFile
type: ObjectProperty
is required: true
description: What input files does the software require ?
ui config: {position:1}
category: Compose
range: File I/O
domain: Software

hasInstallationInstructions
type: ObjectProperty
is required: true
ui config: {position:3}
description: How can one install the software ?
category: Install
domain: Software
range: Text Entity

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

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

hasName
type: ObjectProperty
type: FunctionalProperty
is required: true
ui config: {position: 1}
description: What is the software called ?
category: Access
domain: Software
range: Text Entity

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}
range: Implementation Details
category: Install
domain: Software

hasOutputFile
type: ObjectProperty
is required: true
description: What output files does the software produce ?
ui config: {position:2}
category: Compose
range: File I/O
domain: Software

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

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

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

hasRelevantDataSources
type: ObjectProperty
is required: true
description: Are there any relevant data sources to conduct an experiment with ?
category: Experiment
domain: Software
range: Text Entity

hasSalientQualities
type: ObjectProperty
is required: true
description: What other useful features of this software are worth highlighting ?
ui config: {position:3}
domain: Software
range: Text Entity
category: Trust

hasShortDescription
type: ObjectProperty
type: FunctionalProperty
description: Would you like to provide a short description for this software ?
ui config: {position: 5}
category: Access
domain: Software
range: Text Entity

hasSoftwareCategory
type: ObjectProperty
is required: true
description: What categories are associated with the software ?
ui config: {position: 4}
category: Access
domain: Software
range: SoftwareCategory

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

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)
category: Discuss
domain: Software
range: Text Entity

hasSoftwareVersion
type: ObjectProperty
description: What versions does the software have ?
domain: Software
range: Software Version
category: Track

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

hasTestDataDescription
type: ObjectProperty
type: FunctionalProperty
ui config: {position:2}
description: Can you describe the test data ?
category: Run
domain: Test Data
range: TestData Description

hasTestDataLocation
type: ObjectProperty
type: FunctionalProperty
is required: true
description: What is the URL for test data ?
ui config: {position:1}
range: Location
category: Run
domain: Test Data

hasTestInstructions
type: ObjectProperty
type: FunctionalProperty
ui config: {position:2}
description: Are there any specific instructions for testing the software ?
category: Run
domain: Software
range: Test Instructions

hasUniqueId
type: ObjectProperty
description: What is the DOI or any other unique identifier for this software (or software version) ?
ui config: {position:1}
category: Cite
range: Identifier
domain: Software

hasUsageInformation
type: ObjectProperty
description: Is there any information about uses of this software (paper dois, research labs, etc) ?
ui config: {position:4}
domain: Software
category: Trust
range: Usage Information

hasUsageStatistics
type: ObjectProperty
description: Is there any information about software use (downloads, frequency of run, etc) ?
ui config: {position:5}
domain: Software
category: Trust
range: Usage Statistics

hasUseLimitations
type: ObjectProperty
is required: true
description: Are there any constraints on use, situations it is not designed for, simplifications ?
ui config: {position:1}
category: Relate
domain: Software
range: Use Limitations

hasUsesAndAssumptions
type: ObjectProperty
type: FunctionalProperty
ui config: {position:2}
description: What are the recommended uses and assumptions for the software ?
category: Relate
domain: Software
range: Uses and Assumptions

hasVersionId
type: ObjectProperty
is required: true
ui config: {position:1}
description: What is the software version id ?
range: Identifier
domain: Software Version
category: Track

hasVersionReleaseDate
type: ObjectProperty
ui config: {position:2}
description: When was this version released ?
range: Date Entity
domain: Software Version
category: Track

hasWorkflowDescription
type: ObjectProperty
type: FunctionalProperty
description: Describe the workflow ?
category: Compose
domain: Composition
range: Workflow Description

requiresAverageMemory
type: ObjectProperty
type: FunctionalProperty
description: Are there any memory requirements for this software ?
ui config: {position:6}
category: Install
range: Measurement Entity
domain: Software

similarSoftware
type: ObjectProperty
description: Is there any other similar software that you know of ?
ui config: {position:3}
category: Relate
domain: Software
range: Software Description

supersedesVersion
type: ObjectProperty
description: What version does this software version supersede ?
domain: Software Version
range: Software Version
category: Track

supportsOperatingSystem
type: ObjectProperty
is required: true
description: What Operating Systems can the program run on ?
ui config: {position:2}
category: Install
range: Operating System
domain: Software

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

Access
type: Class
subclass of: Execute
description: download

Benchmark Information
type: Class
subclass of: Text Entity
comment: Software benchmarking information

Citation
type: Class
comment: Used for citing publications with citation next and a citation location

Citation Text
type: Class
subclass of: Text Entity
comment: Text associated with a citation

Cite
type: Class
subclass of: Do Research
description: scientific publications

Community Information
type: Class
subclass of: Text Entity
comment: Information about any on-line resource for accessing the software community (Mailing-list, discussion board, wiki, etc)

Compose
type: Class
subclass of: Do Research
description: run with other software

Composition
type: Class
comment: Describes composition of a software with others in a workflow

Contribute
type: Class
subclass of: Update
description: evolution

Date Entity
type: Class
subclass of: Entity
description: A date entity

Development Information
type: Class
subclass of: Text Entity
comment: Software development/maintenance description

Discuss
type: Class
subclass of: Update
description: support and community

Execute
type: Class
subclass of: Metadata Category

Experiment
type: Class
subclass of: Do Research
description: run with other data

File I/O
type: Class
comment: Indicates a file based input to, or file based output from a software

Identifier
type: Class
subclass of: Text Entity
comment: A text based identifier

Implementation Details
type: Class
subclass of: Text Entity
comment: Details about implementation of the code (parallelization, etc)

Install
type: Class
subclass of: Execute
description: execution requirements

Keywords
type: Class
subclass of: Text Entity
comment: Comma separated keywords associated with the software

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

Location
type: Class
subclass of: Entity
comment: A Location URL

Measurement Entity
type: Class
subclass of: Numeric Entity
comment: A numeric value with units

Metadata Category
type: Class
comment: Categories of metadata properties are defined as subclass of this

Numeric Entity
type: Class
subclass of: Entity
comment: A numeric entity

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

Person
type: Class
comment: A Person identifier class

Programming Language
type: Class
comment: The class of programming languages

Relate
type: Class
subclass of: Understand
description: domain knowledge

Do Research
type: Class
subclass of: Metadata Category

Run
type: Class
subclass of: Execute
description: test and calibration

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.

SoftwareCategory
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

Software Description
type: Class
subclass of: Text Entity
comment: An informal text-based description of software

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

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

TestData Description
type: Class
subclass of: Text Entity
comment: Description of the Test Data provided

Test Instructions
type: Class
subclass of: Text Entity
comment: Instructions on how to run the test with the provided test data including test cases, setup instructions, etc.

Text Entity
type: Class
subclass of: Entity
comment: A text entity

Track
type: Class
subclass of: Update
description: evolution

Trust
type: Class
subclass of: Understand
description: quality and ratings

Understand
type: Class
subclass of: Metadata Category

Update
type: Class
subclass of: Metadata Category

Usage Information
type: Class
subclass of: Text Entity
comment: Information about uses of this software (paper dois, research labs, etc)

Usage Statistics
type: Class
subclass of: Text Entity
comment: Statistics about software use (downloads, frequency of use, etc)

Use Limitations
type: Class
subclass of: Text Entity
comment: Constraints on use of the software, any simplifications, situations it isn't designed for

Uses and Assumptions
type: Class
subclass of: Text Entity
comment: Description of how the software is used, and any assumptions made for using the software

Workflow Description
type: Class
subclass of: Text Entity
comment: Describes use of the software with other software in a workflow

AGPL
type: NamedIndividual
type: License

Apache v2
type: NamedIndividual
type: License

BSD
type: NamedIndividual
type: License

C
type: NamedIndividual
type: Programming Language

CDDL
type: NamedIndividual
type: License

CSS
type: NamedIndividual
type: Programming Language

C++
type: NamedIndividual
type: Programming 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: Programming Language

LGPL
type: NamedIndividual
type: License

MIT
type: NamedIndividual
type: License

MPL
type: NamedIndividual
type: License

MsRL
type: NamedIndividual
type: License