OSF Features

This is the complete feature set for the Open Semantic Framework version 3.x. A separate document segregates the new features specific to OSF v 3.0.

Open Semantic Framework (general)

 * Turnkey, complete, generalized semantic enterprise stack
 * Stack extends from the engine layer (indexing and data management) to user interface, widgets and Drupal content management layer
 * Web-oriented architecture, RESTful with nearly 30 Web service endpoints
 * A mixture of specific OSF-developed components and leading third-party applications; all open source
 * Ontology-driven design wherein domain ontologies provide the relevant knowledge schema, internal OSF administrative ontologies govern stack operation and behavior
 * Ability to ingest, index and manage all types of content:
 * Structured data (spreadsheets, conventional databases)
 * Semi-structure data (XML, document markup, JSON, media metadata, etc.)
 * Unstructured data (text and documents)
 * All external data represented by canonical RDF data model, common components operate off of standard constructs
 * Complete suite of command-line management tools, including installation, testing and validation, dataset management, ontology management, and document tagging
 * LAMP-based stack
 * Full API documentation
 * Automated installation
 * AWS AMI deployment options
 * Support for multiple languages
 * Complete technical and operational documentation.

OSF Vocabularies & Ontologies

 * Internal vocabulary used for records notations
 * Use of a common upper reference vocabulary for interoperability (UMBEL)
 * Any and all vocabularies and ontologies may be used for tagging purposes

OSF for Drupal

 * OSF Instances
 * Ability to register one or multiple remote OSF instances
 * Ability to unregister a registered OSF instance
 * Transparent management of multiple remote OSF instances
 * Datasets
 * Ability to register a dataset existing on a registered OSF instance
 * Ability to unregister a previously registered dataset
 * Ability to import new datasets in target registered OSF instances
 * Ability to delete a dataset in a OSF instance
 * Ability to create a new, empty, data in any registered OSF instance
 * Ability to export datasets from any registered OSF instances
 * Ability to change dataset permissions
 * Ability to make a dataset searchable, or not, to the SearchAPI
 * Ability to browse all the registered datasets in an administrator user interface (even the ones that are marked as non-searchable)
 * Ability to create new records in registered datasets (if the permissions of the dataset permits it)
 * Ability to delete records in registered datasets (if the permissions of the dataset permits it)
 * Ability to update records in registered datasets (if the permissions of the dataset permits it)
 * Ability to view records in registered datasets (if the permissions of the dataset permits it)
 * Transparent management of datasets that are hosted on different OSF instances
 * Ontologies
 * Full support of OWL 2 ontologies
 * Ability to Import new ontologies
 * Ability to Export any existing ontologies
 * Ability to create simple sub-ontological structures (in XML, JSON and PHP serialization)
 * Ability to perform full text search queries within ontologies
 * Ability to create/delete/update Classes, Properties and Named Individuals within ontologies
 * Reasoning capabilities (Pellet, Hermit++ or Fact++)
 * Ability to manage ontology namespaces
 * Records
 * Ability to template records based on their type (by inference)
 * Ability to create records entities using pre-defined set of fields
 * Ability to search records using the SearchAPI
 * Ability to create new records
 * Ability to delete records
 * Ability to update records
 * Ability to use the Entity API on the OSF records
 * Ability to synchronize Content Type records into OSF using the OSF SearchAPI module
 * Ability to save Content Types directly into an OSF instance using the OSF FieldStorage module
 * Ability for an administrator (or users, depending on rights) to browse and search all OSF records
 * Revisioning
 * Ability to revision records
 * Ability to visualize all revisions for a record
 * Ability to delete a revision
 * Ability to see a templated version of a revision
 * Ability to compare revisions
 * Ability to export a record in 6 different formats: RDF+XML, RDF+N3, structXML, structJSON, commON, ironJSON
 * Search
 * SearchAPI
 * Ability to search within OSF datasets using the core SearchAPI Drupal module
 * Ability to expose search filters in different places of the user interface using blocks
 * Search Profiles
 * Ability to create Search Profiles
 * Ability to position Search Profiles anywhere in a portal (by positioning blocks)
 * Admin
 * Ability for administrator to search and browse for searchable and non-searchable datasets
 * Ability to edit, delete, view and export searched and browsed records
 * Query Builder
 * Ability to create complex search queries using the Query Builder user interface
 * Ability to save Query Builder queries as Search Profiles
 * Tagging
 * Ability to tag/suggest-tags Drupal fields values using the ontologies concepts
 * Ability to filter the search queries using the tagged terms

OSF Widgets

 * Graph & Charts
 * Ability to display numeric information in bar charts
 * Ability to display numeric information in linear charts
 * Mapping
 * Ability to perform full text search of geo-localized information
 * Ability to display search results on a map using specific marker icons depending on their type
 * Ability to paginate search results
 * Ability to template search results depending on their type
 * Ability to filter search results by their dataset
 * Ability to filter search results by their type
 * Ability to filter search results by their attribute
 * Ability to filter search results by their attribute/value
 * Ability to save search pages
 * Ability to share search pages
 * Ability to load search pages
 * Ability to persist search results across multiple searches
 * Ability to three independent focus maps
 * Stories
 * Ability to visualize text documents that have been tagged using the OSF Tagger
 * Ability to highlight where the tagged terms appears in the text
 * Ability to see related content to a tag when a tag is selected
 * Dashboards/Workbench
 * Ability to create dashboards that are composed of multiple OSF Widgets
 * Ability to create dashboards using the Workbench
 * Ability to save dashboard sessions with the Workbench
 * Ability to reload/modify/save dashboard sessions
 * Ability to embed dashboard sessions in any webapge

Query Builder for OSF

 * User interface that gives the ability to
 * Ability to filter search results by dataset
 * Ability to generate complex search queries that uses grouping and boolean operators
 * Ability to restrict search to specific attributes
 * Ability to boost results scoring by dataset
 * Ability to boost results scoring by type
 * Ability to boost results scoring by attribute
 * Ability to boost results scoring by attribute restriction
 * Ability to create & save OSF for Drupal search profiles
 * Ability to generate OSF WS PHP API code from the built query
 * Ability to enable/disable search inference

OSF Web Services

 * General
 * Records revisioning support
 * Multilingual support
 * Geo-spatial support
 * Caching layer
 * Data formats supported out of the box:
 * RDF+XML
 * RDF+N3
 * structXML
 * structJSON
 * commON
 * ironJSON
 * Security groups
 * API key based security
 * Ability to create specialized interfaces for each web service endpoint
 * Authentication
 * Ability to create new accesses
 * Ability to list dataset accesses for a group of user
 * Ability to list dataset accesses for a specific user
 * Ability to list dataset accesses for a dataset
 * Ability to list web service usage for a dataset
 * Ability to delete an access record
 * Ability to create a new group of users
 * Ability to delete a group of users
 * Ability to register a user to a group
 * Ability to unregister a user from a group
 * Ability to register a new web service endpoint to a network
 * Ability to unregister a web service endpoint from a network
 * Dataset
 * Ability to create empty datasets
 * Ability to delete datasets
 * Ability to update datasets descriptions
 * Ability to read datasets descriptions
 * Records
 * Ability to create a new record in a dataset
 * Ability to delete a record from a dataset
 * Ability to update a record from a dataset
 * Ability to read information about a record from a dataset
 * Ability to read information about multiple records, with the same query, from one or multiple datasets
 * Ability to save geo-spatial information about the records
 * Ability to save language specific information about the records
 * Revisoning
 * Ability to create a new revision for a record
 * Ability to list all the revisions for a record URI
 * Ability to delete a revision
 * Ability to get the description of a record for a given revision
 * Ability to compare two revisions of the same record
 * Ability to update a revision
 * Ontologies
 * Ability to import new OWL 1.1 and OWL 2.0 ontologies
 * Ability to delete OWL ontologies
 * Ability to export OWL ontologies
 * Ability to create/update/delete/read Classes in an ontology
 * Ability to create/update/delete/read Object Property in an ontology
 * Ability to create/update/delete/read Datatype Property in an ontology
 * Ability to create/update/delete/read Annotation Property in an ontology
 * Ability to create/update/delete/read Named Individuals in an ontology
 * Ability to get a single class description
 * Ability to get multiple classes descriptions
 * Ability to get multiple datatypes descriptions
 * Ability to get multiple sub-classes descriptions of a class
 * Ability to get multiple super-classes descriptions of a class
 * Ability to get multiple equilavent classes descriptions of a class
 * Ability to get multiple disjoint classes description of a class
 * Ability to get a single named individual description
 * Ability to get multiple named individuals descriptions
 * Ability to get Object/Datatype/Annotation property description
 * Ability to get Object/Datatype/Annotation properties descriptions
 * Ability to get Object/Datatype/Annotation sub properties descriptions
 * Ability to get Object/Datatype/Annotation super properties descriptions
 * Ability to get Object/Datatype/Annotation disjoint properties descriptions
 * Ability to get Object/Datatype/Annotation equivalent properties descriptions
 * Ability to get loaded ontologies
 * Ability to get the PHP serialization of the classes hierarchy
 * Ability to get the PHP serialization of the properties hierarchy
 * Ability to get the ironXML schema of an ontology
 * Ability to get the ironJSON schema of an ontology
 * Search
 * Full text querying
 * Ability to send full text searches
 * Ability to send full text searches with boolean operators
 * Ability to search by language
 * Ability to sort results by the value of a sortable property
 * Filtering
 * Ability to filter searches by Types
 * Ability to filter searches by Datasets
 * Ability to filter searches by Attributes
 * Ability to filter searches by Attributes/Values
 * Ability to filter searches by ranges of values (date, numbers, etc)
 * Ability to create extended (complex) search filters based on all the RDF characteristics of the data
 * Resultset
 * Ability to include/exclude list of properties you want or doesn't want to include in the resultset
 * Aggregates/Facets
 * Ability to get the counts of the records per dataset in a search resultset
 * Ability to get the counts of the used properties in a search resultset
 * Ability to get the counts of the used types in a search resultset
 * Ability to get all the values of a properties, and their counts, in a search resultset
 * Ability to limit the number of values returned for the values of a property in an aggregate
 * Geo-spatial
 * Ability to do distance filters
 * Ability to do range filters
 * Ability to aggregate all results around a lat/long location
 * Scoring
 * Ability to boost results scoring by their type
 * Ability to boost results scoring by their dataset
 * Ability to boost results scoring by their attribute
 * Ability to boost results scoring by their attribute/value
 * Ability to boost results scoring based on the restricted values
 * Spellcheck functionality
 * Ability to restrict the search to specific values of attributes
 * Ability to enable inference on type
 * SPARQL
 * Ability to send any SPARQL query (supported by Virtuoso)
 * SPARQL queries are subject to the OSF security layer
 * SPARQL resultsets can be exported in the following formats:
 * text/xml (structXML)
 * application/json (structJSON)
 * application/rdf+xml (RDF+XML)
 * application/rdf+n3 (N3/Turtle)
 * application/iron+json (irJSON)
 * application/iron+csv (commON)
 * application/sparql-results+xml (SPARQL resultset in XML)
 * application/sparql-results+json (SPARQL resultset in JSON)
 * text/rdf+n3 (RDF+N3)
 * application/rdf+xml (RDF+XML)
 * application/rdf+json (RDF+JSON)
 * text/plain (NTRIPLES)
 * Tagging
 * Tagging of unstructured text corpus using loaded ontologies concepts

OSF Middleware

 * PHP API used to create and send any OSF Web Service queries
 * Ability to query any OSF Web Service endpoint
 * Ability to chain function calls on the web service query objects
 * Ability to convert the resultset in any of these formats:
 * RDF+XML
 * RDF+N3
 * structXML
 * structJSON
 * commON
 * ironJSON
 * Ability to authenticate to the security layer
 * Tests Suites
 * Ability to test all the functionalities of all the web service endpoints
 * Integration points and APIs with external services:
 * Security
 * Harvesters
 * API management

OSF Management Tools

 * Dataset Management Tool.
 * Abilities at the level of the command line
 * Ability to create a new, empty, dataset
 * Ability to import a new dataset
 * Ability to synchronize/update an existing dataset
 * Ability to delete a dataset
 * Ability to list all accessible datasets
 * Ability to export a dataset
 * Ontologies Management Tool
 * Abilities at the level of the command line
 * Ability to load all ontologies fro a list of URLs
 * Ability to load a single ontology
 * Ability to list all loaded ontologies
 * Ability to delete a loaded ontology
 * Ability to save an ontology
 * Ability to generate sub-structures from loaded ontologies
 * Ability to force advanced indexation (indexation in the triple store and Solr) of the ontologies that are being loaded
 * Permissions Management Tool
 * Abilities at the level of the command line
 * Ability to list all groups registered for an application ID
 * Ability to list all users of a group
 * Ability to list all permissions of a group of users
 * Ability to list all permissions of a user
 * Ability to list all groups of a user
 * Ability to create a new group
 * Ability to delete a group
 * Ability to register a user to a group
 * Ability to unregister a user from a group
 * Ability to create a new dataset access for a group
 * Ability to delete a dataset access for a group
 * Data Validator Tool
 * Abilities at the level of the command line
 * Ability to validate OSF datasets content
 * Ability to export validation reports in XML
 * Ability to export validation reports in JSON
 * Ability to fix validation errors on the fly (if supported by the validation test)
 * Validation tests have the hability to:
 * Validate the existence of a URI reference in existing datasets
 * Validate that the datatype of the datatype properties values are valid according to their specifications in the loaded ontologies
 * Validate that the domain of the object & datatype properties are respected according to the loaded ontologies
 * Validate that the range of the object properties are respected according to the loaded ontologies
 * Validate that the exact cardinality restrictions are respected according to the loaded ontologies
 * Validate that the maximum cardinality restrictions are respected according to the loaded ontologies
 * Validate that the minimum cardinality restrictions are respected according to the loaded ontologies
 * Validate that the existential cardinality restrictions are respected according to the loaded ontologies
 * Validate that the universal cardinality restrictions are respected according to the loaded ontologies