The Ontosoft ontology
type: Ontology
version info: 1.0
created: 2015-03-12
comment: Ontosoft is an ontology to describe software
description: Ontosoft is an ontology to describe software.
preferred namespace uri: http://ontosoft.org/software#
preferred namespace prefix: osw
modified: 2015-03-30
license: http://creativecommons.org/licenses/by/4.0/
imports: softwareCategories
type: NamedIndividual
contributor: me
creator: ~gil
creator: ~varunr

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

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
type: FunctionalProperty
is required: true
ui config: {position:1}
description: How is the software being developed or maintained ?
range: Development Information
domain: Software
category: Contribute

hasAdopter
type: ObjectProperty
description: Has the software been adopted in a project, organization or by a person?
domain: Software
category: Trust
range: Agent

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 Entity
domain: Software
category: Install

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
type: FunctionalProperty
description: What is the URL for the citation ?
domain: Citation
range: Location
category: Cite

hasCitationText
type: ObjectProperty
type: FunctionalProperty
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}
range: Location
domain: Software
category: Access

hasCommitmentOfSupport
type: ObjectProperty
type: FunctionalProperty
ui config: {position:2}
description: How can a user get support for the software ? (eg. Report bugs, request features and extensions, etc)
domain: Software
range: Text Entity
category: Trust

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

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)
range: Composition
domain: Software
category: Compose

hasCreator
type: ObjectProperty
is required: true
description: Who created this software? (Project, Organization, Person, Initiative, etc.)
ui config: {position:1}
domain: Software
category: Trust
sub property of: creator
range: Agent

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

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

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

hasEmailContact
type: ObjectProperty
description: What is the e-mail contact for this software?
domain: Software
range: Text Entity
category: Discuss

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

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

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

hasFundingSources
type: ObjectProperty
description: Who funded this software?
domain: Software
range: Text Entity
category: Trust

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

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

hasInputParameter
type: ObjectProperty
description: What are the input parameters used for this software?
domain: Software
category: Experiment
range: Parameter

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

hasInteroperableSoftware
type: ObjectProperty
description: What other software can interoperate with this one?
domain: Software
range: Software Description
category: Compose

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

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

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

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
domain: Software
category: Install

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

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: Identify

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

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

hasPublisher
type: ObjectProperty
type: FunctionalProperty
description: Who is the publisher of this software?
domain: Software
category: Trust
range: Agent

hasRating
type: ObjectProperty
type: FunctionalProperty
description: What are the ratings for this software?
range: Rating
domain: Software
category: Trust

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

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}
domain: Software
range: Text Entity
category: Locate

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

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
domain: Software
category: Contribute

hasSoftwareSupport
type: ObjectProperty
type: FunctionalProperty
description: What is the support for this software?
domain: Software
range: Text Entity
category: Discuss

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}
domain: Software
range: Test Data
category: Run

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

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

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

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

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

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

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

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

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

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

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

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

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

supersededBy
type: ObjectProperty
type: FunctionalProperty
description: Which versions replace the current version?
range: Software Version
domain: Software Version
inverse of: supersedes
category: Track

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

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

usedInPublication
type: ObjectProperty
comment: In which publication was this software used?
range: Citation
domain: Software
category: Trust

has Date Value
type: DatatypeProperty
type: FunctionalProperty
domain: Date Entity
range: dateTime

has Numeric Value
type: DatatypeProperty
type: FunctionalProperty
domain: Numeric Entity
range: float

has Text Value
type: DatatypeProperty
type: FunctionalProperty
domain: Text Entity
range: string

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

has Units
type: DatatypeProperty
type: FunctionalProperty
domain: Measurement Entity
range: string

Enumeration Entity
type: Class
subclass of: Entity
comment: An entity that provides enumeration instances

Complex Entity
type: Class
subclass of: Entity
comment: An entity composed of multiple entities

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

Citation
type: Class
subclass of: Complex Entity
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

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)

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

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

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

File I/O
type: Class
subclass of: Complex Entity
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)

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

License
type: Class
subclass of: Enumeration Entity
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

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

Operating System
type: Class
subclass of: Enumeration Entity
comment: Operating Systems that the software runs on

Person
type: Class
subclass of: Agent
comment: A Person identifier class

Programming Language
type: Class
subclass of: Enumeration Entity
comment: The class of programming languages

Rating
type: Class
subclass of: Text Entity
comment: Rating of a software

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
subclass of: Enumeration Entity
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
subclass of: Complex Entity
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

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

Parameter
type: Class
subclass of: Text Entity
comment: Indicates a parameter used by a software

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

terms
type: Thing
type: NamedIndividual
comment: The Dublin Core terms are commonly used by the community to describe basic attribution metadata

prov#
type: Thing
type: NamedIndividual
comment: PROV is the W3C standard for provenance.