Classes, Properties, and Triples ================================ RDF statements are build from **classes**, **individuals**, and **properties**. Classes and Individuals """"""""""""""""""""""" A **class** is a category of a thing. Think of them as nouns in a sentence, like "a person" (``schema:Person``) or "a book" (``schema:Book``). An **individual** is a specific instance of a class. If "Person" is the class, then "Marie Curie" would be an individual belonging to that class. We can express this relationship as an RDF triple like this: .. code-block:: turtle @prefix ex: . @prefix rdf: . @prefix schema: . ex:MarieCurie rdf:type schema:Person . Properties ---------- A **Property** connects resources or attaches values. * ``hasAuthor`` (connects a book to its author) * ``birthDate`` (specifies when someone was born) RDF properties come in three main flavors: 1. **Object properties** connect things to other things: .. code-block:: turtle ex:MyBook ex:hasAuthor ex:Alice . # Connects one resource to another resource 2. **Data properties** connect things to values: .. code-block:: turtle ex:Alice schema:birthDate "1965-07-20"^^xsd:date . # Connects a resource to a specific value 3. **Annotation properties** add human-readable information: .. code-block:: turtle schema:Book rdfs:comment "A written work, typically bound and published." . # Adds documentation or metadata Every property has rules about what it can connect: * The **domain** specifies what can appear at the start of the relationship * The **range** specifies what can appear at the end For example, ``hasAuthor`` might have: * Domain: Creative works (only creative works can have authors) * Range: Persons (only persons can be authors) Triples: the basic statement ---------------------------- In RDF, we combine classes, individuals, and properties to make statements called **triples**. Each triple has three parts: * Subject (what we're talking about) * Predicate (the property or relationship) * Object (what we're saying about the subject) For example: .. code-block:: turtle # A class relationship schema:Book rdf:type schema:CreativeWork . # Means: "A Book is a type of Creative Work" # An individual relationship ex:MyBook ex:hasAuthor ex:Alice . # Means: "MyBook was written by Alice" Together, classes, properties, and triples form the foundation of an ontology, structuring knowledge in a way that is both human-readable and machine-processable.