Thing-in is designed to work with data defined in a semantic way relying on dictionary such as ontologies. Semantic data tend to be harder to manipulate and we wanted Thing’in to be used as easy as possible for any kind of user. We created the entry /projections/find for that particular purpose.
All you need to know in a nutshell, first : in the semantic world everything is seen as a graph.
A datatype property bind an individual to a Litteral defined by a datatype : [string, integer, boolean, float, double, date, ...]. It is seen as an attribute.
An object property bind an individual to an other individual. It is seen as an edge.
An individual in the Semantic world is called here a projection, every individual is defined as an instance of a class.
About the class, those works in the exact same way as in the Object Oriented Programming except it works with multiple inheritance (which not everybody is fond of). Example, using the DogOnt ontology there is the class "Room" and it is specialized in various way : "Kitchen", "BedRoom", "LivingRoom", ...
This enables polymorphism upon the data :
class : Room
class : Kitchen subClassOf Room
individual : MyExampleKitchen is a Kitchen
Question : Is MyExampleKitchen a Room ? Answer : Yes.
About the object properties and datatype properties ; the domain defines the source (from which class may i start the property) and the range defines the target (from which class may i point to). This also makes use of polymorphism :
class : LivingRoom subClassOf Room
object property : IsLinkedTo
domain : Room, range : Room
datatype property : IsEquipedWithFireAlarm
domain : Kitchen, range : boolean
individual : MyExampleLivingRoom is a LivingRoom
The object property IsLinkedTo can be used between MyExampleLivingRoom and MyExampleKitchen because both are considered as Room through polymorphism. However the datatype property IsEquipedWithFireAlarm may only be used on MyExampleKitchen.
Last thing about the object properties, those are classic 1..1 DIRECTED edge with no stored attributes.
Finally, every class, datatype properties and object properties which are seen as resource have a uniquely assigned IRI (Internationalized Resource Identifier) are defined in Ontologies.