1. Contributing to the project
    1. How does it work?
    2. Voting
    3. Blocks
  2. What do we mean by "Object" definition
  3. Object attributes
    1. Attributes inheritance
    2. Limitations
  4. Creating new object
  5. Objects comparison
    1. Sorting objects
    2. Comparing some data types

Contributing to the project

Factopedia in an open databse with a classified information about the objects around us. This database, website and even this text was created and supported by the people from all around the world, as you are. Thanks to them many people getting fast and free access to the information they are interested in. Many peoples can compare objects between each other to quickly make the right decision. We spend a lot of time daily to choose something, we don't know what to choose and need to see comparison table to make the right decision without doubt. We often wonder why does two same things assessed differently. We want to "expand" each object into the smallest "details", to solve this problems faster. This database is also very important to save and transfer knowledge for the future generations. Sometimes it's hard or impossible to obtain information about some objects, therefore we encourage people who have access to such information to share it with society, for the common good. Scientists and researchers all over the world, will be able to get fast and free access to this information and continue their researches.

If you like what we do you can contribute like a volunteer, you can register and start to edit Factopedia or make a donation. You can also edit as guest, without registration.

How does it work?

Guests and registered users can edit any object or comparison, they can also discuss changes. Each user can vote for approving or declining changes. Members can subscribe to updates, to see whats happening in the categories they are interested.


To approve or decline changes all the participants decide by voting. Participant vote weight is different and depending on the contribution made to the project. The more benefits a user has made to the project, the more weight his vote has. When a certain version scored a critical number of votes, version getting approved or declined. Changes can not be approved or declined by the large number of "small" votes, or by the small number of "big" votes. All is very simple.


We take some measures to protect against vandals. Participants who harm the project are blocked, the blocking time is different and depending on the degree of damage caused. To prevent vandalism, there are some restrictions on some actions, such as making edits or adding new posts. If you edit Factopedia as a guest and getting a message to try later, you can register to increase limits. Our limits are set such way that ordinary users do not feel discomfort from this, if you are a fair participant and have problems with limits, please contact us.

What do we mean by "Object" definition

Almost all the objects belongs to some category or as we call it "parent". Parents are the same objects which can have their parents. And so on untill the object will not have parent. This process we call inheritance. Object without parent - Primary object or primary category, all the other objects created from them. If the object is a parent object at least for one other object and itself refers to another parent object, we call this object a category or intermediate object. For example, ordinary carrot "family tree" can looks like:

Plantae / Tracheophytes / Angiosperms / Eudicots / Asterids / Apiales / Apiaceae / Daucus / D. carota / Carrot

Do not afraid to identify "family tree" incorrectly, later we will decide together where is the right place of the object in the objects hierarchy.

If the object is not a parent of any other object, this is final object. Most of work on our website is going with this type of objects. Parent objects is used for final objects classification. Primary, intermediate and final objects, thats are objects of the same type, but with different place in "family tree". So let's repeat:

Object attributes

Each object consists of many attributes (properties), for exampleo object "Carrot" can have attributes "Calories" and/or "Fat", "Transport" object can have "Avarage speed". The object can inherit an attributes of it's parents or have it's own attributes. Attributes can be with values or without values(undefined). Undefined attributes will be inherited by children objects and defined there. We collect only objective and important attributes about objects. When we compare objects we campare their attributes. A few world about how we hold and process some attributes:

Dynamic value
Attention! Setting this attribute requires special knowledge.
Sometimes attribute value changes, so as not to constantly update attribute value, you can specify source and parse rules and actual value will be always in our database. When you select attribute type Dynamic value you will see a skeleton of JSON object that you will need to fill.

        "url": "",
        "regexp": "",
        "format": "",
        "update_every_h": 24
where: in the values of these settings all signs " or \ must be additionally escaped with a sign \, in "regexp" value sign / must be escaped with a double signs \\, excluding signs / which opens and closes regular expression, for example:
        "url": "https://factopedia.org",
        "regexp": "/<\\/td>.*class=\"population\" data-count=\"([\\d]+).*\"/i",
        "format": "a*1000",
        "update_every_h": 24
It should also be noted that our parser does not yet process javascript.

Cost Cost is a biased, unstable value. So we currently do not hold object cost in our database.

Attributes inheritance

Objects inherited attributes of their parents. As a rule, objects which belongs to one parent, have similar attributes. By specifying correctly known object attributes you will simplify the work of everyone else who will create object from your parent. So when adding attributes make sure that they are assigned to the correct object in the hierarchy. Primary and intermediate objects (categories), as a rule, have attributes with undefined values, and this attributes are defined in final objects.


Attributes If this limits is not enough for you, please contact us.

Creating new object

Creating new object make sure that it is not already in our database. To do this, you need to make a search using our API or search form on the top of each page. Creating a category, make sure that it will hold more than one final object. For example a car, can have a name equal to generation, and the part of his "family tree" can looks like:

... / Make / Model / Modification / Generation

Categories with many objects needs to be named in plural, for example: Planes, Vegetables, Fruits, Cars, etc.

Objects comparison

Objects can be compared with each other. Comparisons helps us better understand the difference between objects.


Comparison name is optional, if not specified will be generated from the objects used in the comparison.

Objects sorting

Objects can be sorted by specified attributes, in a certain sequence and direction.

Sequence specified sorting priority. Objects will be sorted by specified attributes, in a certain sequence from smaller to larger. So in the beginning objects will be sorted by attribute 1 in a sequence, then by attribute 2 and so on.

Direction can be

Comparing some data types

While it's clear with how we compare some data types like numeric or textual, other data types are not so simple in understanding how we compare them.

Help · Contact us · Disclaimer · Contributors · Developers · Donate