OSF Features

From OSF Wiki
Jump to: navigation, search

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 ability 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