E-Business + Web Science Research Group Good Relations logo

The Product Types Ontology: Class Definition for "Graph database"

This page is part of http://www.productontology.org/, a huge, precise dictionary of product types and brand names for marking up Web sites with schema.org or the GoodRelations e-commerce standard.

Breaking news: schema.org has just implemented our proposal to define an additionalType property with the use of this service in mind!

Share on  Mention on Twitter  Set Google Bookmark  Bookmark on Delicious  Share on Facebook 

http://www.productontology.org/

On this page: Usage(schema.org/Microdata, RDFa, Facebook) Contact Information Caching Policy License Acknowledgments References

pto:Graph_database (rdf:type owl:Class)

URI http://www.productontology.org/id/Graph_database
rdfs:subClassOf gr:ProductOrService, http://schema.org/Product
rdfs:label Graph database (as a class or brand name of products of services)
Translation(s):  Base de dades orientada a grafs@ca;  بنکەدراوەی گراف@ckb;  Graphdatenbank@de;  Base de datos orientada a grafos@es;  پایگاه داده‌های گراف@fa;  Graafitietokanta@fi;  Base de données orientée graphe@fr;  Graph database@id;  Base di dati a grafo@it;  그래프 데이터베이스@ko; 

rdfs:comment

In computing, a graph database (GDB) is a database that uses graph structures for semantic queries with nodes, edges, and properties to represent and store data. A key concept of the system is the graph (or edge or relationship). The graph relates the data items in the store to a collection of nodes and edges, the edges representing the relationships between the nodes. The relationships allow data in the store to be linked together directly and, in many cases, retrieved with one operation. Graph databases hold the relationships between data as a priority. Querying relationships within a graph database is fast because they are perpetually stored within the database itself. Relationships can be intuitively visualized using graph databases, making them useful for heavily inter-connected data. Graph databases are part of the NoSQL databases created to address the limitations of the existing relational databases. While the graph model explicitly lays out the dependencies between nodes of data, the relational model and other NoSQL database models link the data by implicit connections. Graph databases, by design, allow simple and fast retrievalof complex hierarchical structures that are difficult to modelin relational systems. Graph databases are similar to 1970s network model databases in that both represent general graphs, but network-model databases operate at a lower level of abstraction and lack easy traversal over a chain of edges. The underlying storage mechanism of graph databases can vary. Some depend on a relational engine and “store” the graph data in a table (although a table is a logical element, therefore this approach imposes another level of abstraction between the graph database, the graph database management system and the physical devices where the data is actually stored). Others use a key-value store or document-oriented database for storage, making them inherently NoSQL structures. Mostgraph databases based on non-relational storage engines also add the concept of tags or properties, which are essentially relationships having a pointer to another document. This allows data elements to be categorized for easy retrieval en masse. Retrieving data from a graph database requires a query language other than SQL, which was designed for the manipulation of data in a relational system and therefore cannot “elegantly” handle traversing a graph. no single graph query language has been universally adopted in the same way as SQL was for relational databases, and there are a wide variety of systems, most often tightly tied to one product. Some standardization efforts have occurred, leading to multi-vendor query languages like Gremlin, SPARQL, and Cypher. In addition to having query language interfaces, some graph databases are accessed through application programming interfaces (APIs). Graph databases differ from graph compute engines. Graph databases are technologies that are translations of the relational OLTP databases. On the other hand, graph compute engines are used in OLAP for bulk analysis. Graph databases have attracted considerable attention in the 2000s, due to the successes of major technology corporations in using proprietary graph databases, and the introduction of open-source graph databases. (Source: Wikipedia, the free encyclopedia, see http://en.wikipedia.org/wiki/Graph_database)

Note: The extraction of the abstract from the Wikipedia page may sometimes yield imperfect results. We are improving the algorithm regularly.

is rdfs:domain of gr:category gr:color gr:condition gr:depth gr:hasEAN_UCC-13 gr:hasGTIN-14 gr:hasMPN gr:hasManufacturer gr:hasStockKeepingUnit gr:height gr:isAccessoryOrSparePartFor gr:isConsumableFor gr:isSimilarTo gr:weight gr:width
is rdfs:range of gr:includes gr:isAccessoryOrSparePartFor gr:isConsumableFor gr:isSimilarTo

Note: This is a generic list. Some of the properties may not be applicable to this particular type of object.

Trademark Disclaimer:  Since this service returns class descriptions for potentiall any series of characters, it cannot indicate automatically whether a name is a registered trademark or otherwise protected. We assume no liability for the absence of trademark rights and other damages. See the section "License" below for details.

[back to top]

Usage

The following shows how to model that you offer to sell [a/an/some] Graph database for $ 19.99.

[back to top]

Microdata / Use with http://schema.org/Product

One of the most powerful usages of the class definitions from this site is to describe the type of your page and product for the schema.org product markup in Microdata syntax much more precisely.

Simply add the full URI of a class from this site, e.g. http://www.productontology.org/id/Graph_database as an additional type as follows:

<div itemscope itemtype="http://schema.org/Product">
    <link itemprop="additionalType" href="http://www.productontology.org/id/Graph_database" />
    <!-- other schema.org properties go in here -->
</div>		

Note: In HTML5, it is valid to use the <link> element in the body of a HTML document.

Here is a complete example:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>An offer to sell a / some Graph_database</title>
</head>
<body>
<div itemscope itemtype="http://schema.org/Product" itemid="#product">
    <link itemprop="additionalType" href="http://www.productontology.org/id/Graph_database" />
    <span itemprop="name">.. a short name for the object ...</span>
    Product description: 
    <span itemprop="description">... a longer description ...</span>
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer" itemid="#offer">
        <span itemprop="price">$19.99</span> 
        <link itemprop="availability" href="http://schema.org/InStock" />In stock
    </div>
</div>
</body>
</html>

Turtle Syntax

@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix pto: <http://www.productontology.org/id/> .
@prefix gr: <http://purl.org/goodrelations/v1#> .
@prefix foo: <http://example.com/> .

# The object
foo:myObject a <http://www.productontology.org/id/Graph_database> ;
	a gr:SomeItems ;
	gr:name "... a short name for the object ..."@en ;
	gr:description "... a longer description ..."@en .

# The agent (person or company) who is offering it
foo:ACMECorp a gr:BusinessEntity ;
	gr:legalName "ACME Corp" ;
	gr:offers foo:Offer .
		
# The offer to sell it
foo:Offer a gr:Offering ;
	gr:includes foo:myObject;
	foaf:page <http://URI_of_the_page_containing_the_offer.com>;
	gr:hasBusinessFunction gr:Sell ;
	gr:validFrom "2011-01-24T00:00:00+01:00"^^xsd:dateTime ;
	gr:validThrough "2011-12-24T00:00:00+01:00"^^xsd:dateTime ;
	gr:hasPriceSpecification
         [ a gr:UnitPriceSpecification ;
           gr:hasCurrency "USD"^^xsd:string ;
           gr:hasCurrencyValue "19.99"^^xsd:float ;
           gr:validThrough "2011-12-24T00:00:00+01:00"^^xsd:dateTime ] .

Note: Replace gr:SomeItems (http://purl.org/goodrelations/v1#SomeItems) by gr:Individual if you are describing a unique object of that kind (e.g. antique furniture).

[back to top]

RDFa

<!DOCTYPE html>
<html version="HTML+RDFa 1.1" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>An offer to sell a / some Graph_database</title>
</head>
<body>
<div xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:foaf="http://xmlns.com/foaf/0.1/"
     xmlns:gr="http://purl.org/goodrelations/v1#"
     xmlns:pto="http://www.productontology.org/id/"
     xmlns:foo="http://example.com/"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#">

<!-- The agent (person or company) who is offering it -->
   <div about="#ACMECorp" typeof="gr:BusinessEntity">
      <div property="gr:legalName">ACME Corp</div>
      <div rel="gr:offers">
<!-- The offer to sell it -->	
         <div about="#offer" typeof="gr:Offering">
            <div rel="gr:hasBusinessFunction" resource="http://purl.org/goodrelations/v1#Sell"></div>
            <div rel="gr:includes">
<!-- The object -->	
               <div about="#myObject" typeof="http://www.productontology.org/id/Graph_database">
                  <div rel="rdf:type" resource="http://purl.org/goodrelations/v1#SomeItems"></div>
                  <div property="gr:description" xml:lang="en">... a longer description ...</div>
                  <div property="gr:name" xml:lang="en">.. a short name for the object ...</div>
               </div>
            </div>
            <div rel="foaf:page" resource="http://URI_of_the_page_containing_the_offer"></div>
            <div rel="gr:hasPriceSpecification">
               <div typeof="gr:UnitPriceSpecification">
                  <div property="gr:hasCurrency" content="USD" datatype="xsd:string">$ </div>
                  <div property="gr:hasCurrencyValue" datatype="xsd:float">19.99</div>
                  <div property="gr:validThrough" content="2011-12-24T00:00:00+01:00" 
					   datatype="xsd:dateTime"></div>
               </div>
            </div>
            <div property="gr:validFrom" content="2011-01-24T00:00:00+01:00"
                 datatype="xsd:dateTime"></div>
            <div property="gr:validThrough" content="2011-12-24T00:00:00+01:00"
                 datatype="xsd:dateTime"></div>
         </div>
      </div>
   </div>
</div>
</body>
</html>

Note: Replace gr:SomeItems (http://purl.org/goodrelations/v1#SomeItems) by gr:Individual if you are describing a unique object of that kind (e.g. antique furniture).

[back to top]

RDF/XML

<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns:gr="http://purl.org/goodrelations/v1#" 
  xmlns:pto="http://www.productontology.org/id/" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
  xmlns:foaf="http://xmlns.com/foaf/0.1/" 
  xmlns:foo="http://example.com/" 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<!-- The object -->
  <rdf:Description rdf:about="http://example.com/myObject">
    <rdf:type rdf:resource="http://www.productontology.org/id/Graph_database"/>    
    <rdf:type rdf:resource="http://purl.org/goodrelations/v1#SomeItems"/>
    <gr:name xml:lang="en">... a short name for the object ...</gr:name>
    <gr:description xml:lang="en">... a longer description ...</gr:description>
  </rdf:Description>
<!-- The agent (person or company) who is offering it -->
  <gr:BusinessEntity rdf:about="http://example.com/ACMECorp">
    <gr:legalName>ACME Corp</gr:legalName>
    <gr:offers rdf:resource="http://example.com/Offer" />
  </gr:BusinessEntity>
<!-- The offer to sell it -->   
  <gr:Offering rdf:about="http://example.com/Offer">
    <gr:includes rdf:resource="http://example.com/myObject" />
    <foaf:page rdf:resource="http://URI_of_the_page_containing_the_offer"/>
    <gr:hasBusinessFunction rdf:resource="http://purl.org/goodrelations/v1#Sell"/>
    <gr:validFrom rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">
      2011-01-24T00:00:00+01:00</gr:validFrom>
    <gr:validThrough rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">
      2011-12-24T00:00:00+01:00</gr:validThrough>
    <gr:hasPriceSpecification>
      <gr:UnitPriceSpecification>
        <gr:hasCurrency rdf:datatype="http://www.w3.org/2001/XMLSchema#string">USD</gr:hasCurrency>
        <gr:hasCurrencyValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">19.99</gr:hasCurrencyValue>
        <gr:validThrough rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">
          2011-12-24T00:00:00+01:00</gr:validThrough>
      </gr:UnitPriceSpecification>
    </gr:hasPriceSpecification>
  </gr:Offering>

</rdf:RDF>

Note: Replace gr:SomeItems (http://purl.org/goodrelations/v1#SomeItems) by gr:Individual if you are describing a unique object of that kind (e.g. antique furniture).

[back to top]

SPARQL Query

prefix foaf: <http://xmlns.com/foaf/0.1/> 
prefix xsd: <http://www.w3.org/2001/XMLSchema#> 
prefix pto: <http://www.productontology.org/id/> 
prefix gr: <http://purl.org/goodrelations/v1#> 
prefix foo: <http://example.com/> 

# Find the cheapest offer for a Graph_database

SELECT * WHERE{
?company gr:offers ?offer .
?offer a gr:Offering .
?offer gr:hasBusinessFunction gr:Sell .
OPTIONAL {?offer rdfs:label ?label } .
OPTIONAL {?offer gr:name ?label } .
OPTIONAL {?offer rdfs:comment ?label } .
OPTIONAL {?offer gr:description ?label } .
?offer gr:hasPriceSpecification ?p .
?p a gr:UnitPriceSpecification .
?p gr:hasCurrency ?currency .
?p gr:hasCurrencyValue ?price .
?offer gr:includes ?product .
?product a <http://www.productontology.org/id/Graph_database> .
}
ORDER BY (?price)
LIMIT 10

[back to top]

Facebook Open Graph Protocol

You can also use the class definitions from this site for better describing the type of your page or product for the Facebook Open Graph Protocol.

Simply define the namespace prefix pto: in the <html> element of your page

<html version="HTML+RDFa 1.1" 
	xmlns="http://www.w3.org/1999/xhtml" 
	xmlns:pto="http://www.productontology.org/id/" 
	>

and use the compact URI (CURIE) pto:Graph_database in combination with og:type as follows:

	<meta property="og:type" content="pto:Graph_database"/>

A complete example is here.

[back to top]

Contact Information

Univ.-Prof. Dr. Martin Hepp

E-Business and Web Science Research Group
Chair of General Management and E-Business
Universität der Bundeswehr München
Werner-Heisenberg-Weg 39
D-85579 Neubiberg, Germany

Phone: +49 89 6004-4217
eMail: mhepp(at)computer.org (preferred mode of communication)
Web: http://www.heppnetz.de/
Web: http://www.unibw.de/ebusiness/

[back to top]

Caching Policy

In order to minimize the load on the Wikipedia API, all requests are cached internally for 72 hours. This means that changes to the English Wikipedia will be available in this service within 72 hours or less if the same entry has been requested before. Classes not requested within the last six hours are always guaranteed to be in sync with the latest version in Wikipedia.

The RDF/XML dump file is updated every 12 hours only.

[back to top]

License

The class definition text is taken from Wikipedia, the free encyclopedia under a Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. Accordingly, the ontology class definitions are available under the very same license.

Trademark Disclaimer:  Since this service returns class descriptions for potentially any series of characters, it cannot indicate automatically whether a name is a registered trademark or otherwise protected. If you want us to block a certain name, please send your request including proof of your rights on the name to our contact address listed below.. Any of the trademarks, service marks, collective marks, design rights or similar rights that are mentioned, used, or cited in this service are the property of their respective owners. Their use here does not imply that you may use them for any purpose other than for the same or a similar informational use as contemplated by the original authors of the underlying Wikipedia articles under the CC-BY-SA and GFDL licensing schemes. Productontology.org is neither endorsed by nor affiliated with any of the holders of any such rights and as such cannot grant any rights to use any otherwise protected materials. Your use of any such or similar incorporeal property is at your own risk.

[back to top]

Acknowledgements

Thanks to Stefano Bertolo, Julien Chaumond, Bob Ferris, Kingsley Idehen, Axel Polleres, Andreas Radinger, Alex Stolz, and Giovanni Tummarello for very valuable feedback, and to Katharina Siorpaes and Daniel Bachlechner, who contributed to the initial analysis of the stability of Wikipedia URIs back in 2007.

The work on The Product Types Ontology has been supported by the German Federal Ministry of Research (BMBF) by a grant under the KMU Innovativ program as part of the Intelligent Match project (FKZ 01IS10022B).

BMBF logo

[back to top]

References

Wikipedia: Graph database, available at http://en.wikipedia.org/wiki/Graph_database.

Hepp, Martin: GoodRelations: An Ontology for Describing Products and Services Offers on the Web, Proceedings of the 16th International Conference on Knowledge Engineering and Knowledge Management (EKAW2008), Acitrezza, Italy, September 29 - October 3, 2008, Springer LNCS, Vol 5268, pp. 332-347.

Hepp, Martin; Siorpaes, Katharina; Bachlechner, Daniel: Harvesting Wiki Consensus: Using Wikipedia Entries as Vocabulary for Knowledge Management, IEEE Internet Computing, Vol. 11, No. 5, pp. 54-65, Sept-Oct 2007.

Valid XHTML 1.0 Strict