Artificial Intelligence with PHP
  • Getting Started
    • Introduction
    • Audience
    • How to Read This Book
    • Glossary
    • Contributors
    • Resources
    • Changelog
  • Artificial Intelligence
    • Introduction
    • Overview of AI
      • History of AI
      • How Does AI Work?
      • Structure of AI
      • Will AI Take Over the World?
      • Types of AI
        • Limited Memory AI
        • Reactive AI
        • Theory of Mind AI
        • Self-Aware AI
    • AI Capabilities in PHP
      • Introduction to LLM Agents PHP SDK
      • Overview of AI Libraries in PHP
    • AI Agents
      • Introduction to AI Agents
      • Structure of AI Agent
      • Components of AI Agents
      • Types of AI Agents
      • AI Agent Architecture
      • AI Agent Environment
      • Application of Agents in AI
      • Challenges in AI Agent Development
      • Future of AI Agents
      • Turing Test in AI
      • LLM AI Agents
        • Introduction to LLM AI Agents
        • Implementation in PHP
          • Sales Analyst Agent
          • Site Status Checker Agent
    • Theoretical Foundations of AI
      • Introduction to Theoretical Foundations of AI
      • Problem Solving in AI
        • Introduction
        • Types of Search Algorithms
          • Comparison of Search Algorithms
          • Informed (Heuristic) Search
            • Global Search
              • Beam Search
              • Greedy Search
              • Iterative Deepening A* Search
              • A* Search
                • A* Graph Search
                • A* Graph vs A* Tree Search
                • A* Tree Search
            • Local Search
              • Hill Climbing Algorithm
                • Introduction
                • Best Practices and Optimization
                • Practical Applications
                • Implementation in PHP
              • Simulated Annealing Search
              • Local Beam Search
              • Genetic Algorithms
              • Tabu Search
          • Uninformed (Blind) Search
            • Global Search
              • Bidirectional Search (BDS)
              • Breadth-First Search (BFS)
              • Depth-First Search (DFS)
              • Iterative Deepening Depth-First Search (IDDFS)
              • Uniform Cost Search (UCS)
            • Local Search
              • Depth-Limited Search (DLS)
              • Random Walk Search (RWS)
          • Adversarial Search
          • Means-Ends Analysis
      • Knowledge & Uncertainty in AI
        • Knowledge-Based Agents
        • Knowledge Representation
          • Introduction
          • Approaches to KR in AI
          • The KR Cycle in AI
          • Types of Knowledge in AI
          • KR Techniques
            • Logical Representation
            • Semantic Network Representation
            • Frame Representation
            • Production Rules
        • Reasoning in AI
        • Uncertain Knowledge Representation
        • The Wumpus World
        • Applications and Challenges
      • Cybernetics and AI
      • Philosophical and Ethical Foundations of AI
    • Mathematics for AI
      • Computational Theory in AI
      • Logic and Reasoning
        • Classification of Logics
        • Formal Logic
          • Propositional Logic
            • Basics of Propositional Logic
            • Implementation in PHP
          • Predicate Logic
            • Basics of Predicate Logic
            • Implementation in PHP
          • Second-order and Higher-order Logic
          • Modal Logic
          • Temporal Logic
        • Informal Logic
        • Semi-formal Logic
      • Set Theory and Discrete Mathematics
      • Decision Making in AI
    • Key Application of AI
      • AI in Astronomy
      • AI in Agriculture
      • AI in Automotive Industry
      • AI in Data Security
      • AI in Dating
      • AI in E-commerce
      • AI in Education
      • AI in Entertainment
      • AI in Finance
      • AI in Gaming
      • AI in Healthcare
      • AI in Robotics
      • AI in Social Media
      • AI in Software Development
      • AI in Adult Entertainment
      • AI in Criminal Justice
      • AI in Criminal World
      • AI in Military Domain
      • AI in Terrorist Activities
      • AI in Transforming Our World
      • AI in Travel and Transport
    • Practice
  • Machine Learning
    • Introduction
    • Overview of ML
      • History of ML
        • Origins and Early Concepts
        • 19th Century
        • 20th Century
        • 21st Century
        • Coming Years
      • Key Terms and Principles
      • Machine Learning Life Cycle
      • Problems and Challenges
    • ML Capabilities in PHP
      • Overview of ML Libraries in PHP
      • Configuring an Environment for PHP
        • Direct Installation
        • Using Docker
        • Additional Notes
      • Introduction to PHP-ML
      • Introduction to Rubix ML
    • Mathematics for ML
      • Linear Algebra
        • Scalars
          • Definition and Operations
          • Scalars with PHP
        • Vectors
          • Definition and Operations
          • Vectors in Machine Learning
          • Vectors with PHP
        • Matrices
          • Definition and Types
          • Matrix Operations
          • Determinant of a Matrix
          • Inverse Matrices
          • Cofactor Matrices
          • Adjugate Matrices
          • Matrices in Machine Learning
          • Matrices with PHP
        • Tensors
          • Definition of Tensors
          • Tensor Properties
            • Tensor Types
            • Tensor Dimension
            • Tensor Rank
            • Tensor Shape
          • Tensor Operations
          • Practical Applications
          • Tensors in Machine Learning
          • Tensors with PHP
        • Linear Transformations
          • Introduction
          • LT with PHP
          • LT Role in Neural Networks
        • Eigenvalues and Eigenvectors
        • Norms and Distances
        • Linear Algebra in Optimization
      • Calculus
      • Probability and Statistics
      • Information Theory
      • Optimization Techniques
      • Graph Theory and Networks
      • Discrete Mathematics and Combinatorics
      • Advanced Topics
    • Data Fundamentals
      • Data Types and Formats
        • Data Types
        • Structured Data Formats
        • Unstructured Data Formats
        • Implementation with PHP
      • General Data Processing
        • Introduction
        • Storage and Management
          • Data Security and Privacy
          • Data Serialization and Deserialization in PHP
          • Data Versioning and Management
          • Database Systems for AI
          • Efficient Data Storage Techniques
          • Optimizing Data Retrieval for AI Algorithms
          • Big Data Considerations
            • Introduction
            • Big Data Techniques in PHP
      • ML Data Processing
        • Introduction
        • Types of Data in ML
        • Stages of Data Processing
          • Data Acquisition
            • Data Collection
            • Ethical Considerations in Data Preparation
          • Data Cleaning
            • Data Cleaning Examples
            • Data Cleaning Types
            • Implementation with PHP
          • Data Transformation
            • Data Transformation Examples
            • Data Transformation Types
            • Implementation with PHP ?..
          • Data Integration
          • Data Reduction
          • Data Validation and Testing
            • Data Splitting and Sampling
          • Data Representation
            • Data Structures in PHP
            • Data Visualization Techniques
          • Typical Problems with Data
    • ML Algorithms
      • Classification of ML Algorithms
        • By Methods Used
        • By Learning Types
        • By Tasks Resolved
        • By Feature Types
        • By Model Depth
      • Supervised Learning
        • Regression
          • Linear Regression
            • Types of Linear Regression
            • Finding Best Fit Line
            • Gradient Descent
            • Assumptions of Linear Regression
            • Evaluation Metrics for Linear Regression
            • How It Works by Math
            • Implementation in PHP
              • Multiple Linear Regression
              • Simple Linear Regression
          • Polynomial Regression
            • Introduction
            • Implementation in PHP
          • Support Vector Regression
        • Classification
        • Recommendation Systems
          • Matrix Factorization
          • User-Based Collaborative Filtering
      • Unsupervised Learning
        • Clustering
        • Dimension Reduction
        • Search and Optimization
        • Recommendation Systems
          • Item-Based Collaborative Filtering
          • Popularity-Based Recommendations
      • Semi-Supervised Learning
        • Regression
        • Classification
        • Clustering
      • Reinforcement Learning
      • Distributed Learning
    • Integrating ML into Web
      • Open-Source Projects
      • Introduction to EasyAI-PHP
    • Key Applications of ML
    • Practice
  • Neural Networks
    • Introduction
    • Overview of NN
      • History of NN
      • Basic Components of NN
        • Activation Functions
        • Connections and Weights
        • Inputs
        • Layers
        • Neurons
      • Problems and Challenges
      • How NN Works
    • NN Capabilities in PHP
    • Mathematics for NN
    • Types of NN
      • Classification of NN Types
      • Linear vs Non-Linear Problems in NN
      • Basic NN
        • Simple Perceptron
        • Implementation in PHP
          • Simple Perceptron with Libraries
          • Simple Perceptron with Pure PHP
      • NN with Hidden Layers
      • Deep Learning
      • Bayesian Neural Networks
      • Convolutional Neural Networks (CNN)
      • Recurrent Neural Networks (RNN)
    • Integrating NN into Web
    • Key Applications of NN
    • Practice
  • Natural Language Processing
    • Introduction
    • Overview of NLP
      • History of NLP
        • Ancient Times
        • Medieval Period
        • 15th-16th Century
        • 17th-18th Century
        • 19th Century
        • 20th Century
        • 21st Century
        • Coming Years
      • Key Concepts in NLP
      • Common Challenges in NLP
      • Machine Learning Role in NLP
    • NLP Capabilities in PHP
      • Overview of NLP Libraries in PHP
      • Challenges in NLP with PHP
    • Mathematics for NLP
    • NLP Techniques
      • Basic Text Processing with PHP
      • NLP Workflow
      • Popular Tools and Frameworks for NLP
      • Techniques and Algorithms in NLP
        • Basic NLP Techniques
        • Advanced NLP Techniques
      • Advanced NLP Topics
    • Integrating NLP into Web
    • Key Applications of NLP
    • Practice
  • Computer Vision
    • Introduction
  • Overview of CV
    • History of CV
    • Common Use Cases
  • CV Capabilities in PHP
  • Mathematics for CV
  • CV Techniques
  • Integrating CV into Web
  • Key Applications of CV
  • Practice
  • Robotics
    • Introduction
  • Overview of Robotics
    • History and Evolution of Robotics
    • Core Components
      • Sensors (Perception)
      • Actuators (Action)
      • Controllers (Processing and Logic)
    • The Role of AI in Robotics
      • Object Detection and Recognition
      • Path Planning and Navigation
      • Decision Making and Learning
  • Robotics Capabilities in PHP
  • Mathematics for Robotics
  • Building Robotics
  • Integration Robotics into Web
  • Key Applications of Robotics
  • Practice
  • Expert Systems
    • Introduction
    • Overview of ES
      • History of ES
        • Origins and Early ES
        • Milestones in the Evolution of ES
        • Expert Systems in Modern AI
      • Core Components and Architecture
      • Challenges and Limitations
      • Future Trends
    • ES Capabilities in PHP
    • Mathematics for ES
    • Building ES
      • Knowledge Representation Approaches
      • Inference Mechanisms
      • Best Practices for Knowledge Base Design and Inference
    • Integration ES into Web
    • Key Applications of ES
    • Practice
  • Cognitive Computing
    • Introduction
    • Overview of CC
      • History of CC
      • Differences Between CC and AI
    • CC Compatibilities in PHP
    • Mathematics for CC
    • Building CC
      • Practical Implementation
    • Integration CC into Web
    • Key Applications of CC
    • Practice
  • AI Ethics and Safety
    • Introduction
    • Overview of AI Ethics
      • Core Principles of AI Ethics
      • Responsible AI Development
      • Looking Ahead: Ethical AI Governance
    • Building Ethics & Safety AI
      • Fairness, Bias, and Transparency
        • Bias in AI Models
        • Model Transparency and Explainability
        • Auditing, Testing, and Continuous Monitoring
      • Privacy and Security in AI
        • Data Privacy and Consent
        • Safety Mechanisms in AI Integration
        • Preventing and Handling AI Misuse
      • Ensuring AI Accountability
        • Ethical AI in Decision Making
        • Regulations & Compliance
        • AI Risk Assessment
    • Key Applications of AI Ethics
    • Practice
  • Epilog
    • Summing-up
Powered by GitBook
On this page
  • Structured Data Formats
  • Common Data Formats Compared
  1. Machine Learning
  2. Data Fundamentals
  3. Data Types and Formats

Structured Data Formats

PreviousData TypesNextUnstructured Data Formats

Last updated 1 month ago

When working with AI in PHP, understanding various data formats is crucial for efficient data processing, storage, and analysis. This section covers both structured data formats commonly used in AI applications.

Structured Data Formats

Structured data formats organize information in a predefined manner, making it easy to process and analyze. Here are some popular structured data formats used in AI applications:

CSV (Comma-Separated Values)

CSV is a simple, tabular format where data is separated by commas.

Pros:

  • Easy to read and write

  • Supported by most spreadsheet applications

  • Compact file size

Cons:

  • Limited support for complex data structures

  • No standardized way to represent data types

Example:

name,age,city
John,30,New York
Alice,25,London

PHP example:

$csv = array_map('str_getcsv', file('data.csv'));
Result
Array
(
    [0] => Array
        (
            [0] => name
            [1] => age
            [2] => city
        )

    [1] => Array
        (
            [0] => John
            [1] => 30
            [2] => New York
        )

    [2] => Array
        (
            [0] => Alice
            [1] => 25
            [2] => London
        )
)

JSON (JavaScript Object Notation)

JSON is a lightweight, human-readable format that's easy for machines to parse and generate.

Pros:

  • Supports complex data structures

  • Wide language support

  • Easy to read and write

Cons:

  • Can be less compact than binary formats

  • Parsing large JSON files can be memory-intensive

Example:

{
  "users": [
    {"name": "John", "age": 30, "city": "New York"},
    {"name": "Alice", "age": 25, "city": "London"}
  ]
}

PHP example:

$json_data = file_get_contents('data.json');
$data = json_decode($json_data, true);
Result
Array
(
    [users] => Array
        (
            [0] => Array
                (
                    [name] => John
                    [age] => 30
                    [city] => New York
                )

            [1] => Array
                (
                    [name] => Alice
                    [age] => 25
                    [city] => London
                )
        )
)

XML (eXtensible Markup Language)

XML is a versatile markup language that defines a set of rules for encoding documents.

Pros:

  • Highly flexible and extensible

  • Supports complex data structures

  • Self-descriptive

Cons:

  • Verbose, leading to larger file sizes

  • Can be more complex to parse than JSON

Example:

<users>
  <user>
    <name>John</name>
    <age>30</age>
    <city>New York</city>
  </user>
  <user>
    <name>Alice</name>
    <age>25</age>
    <city>London</city>
  </user>
</users>

PHP example:

$xml = simplexml_load_file('data.xml');
Result
SimpleXMLElement Object
(
    [user] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [name] => John
                    [age] => 30
                    [city] => New York
                )

            [1] => SimpleXMLElement Object
                (
                    [name] => Alice
                    [age] => 25
                    [city] => London
                )
        )
)

Parquet

Parquet is a columnar storage file format, optimized for use with big data processing frameworks.

Pros:

  • Highly efficient for analytical queries

  • Supports complex nested data structures

  • Excellent compression

Cons:

  • Not human-readable

  • Requires specialized libraries for reading/writing

PHP example (using third-party library):

// Note: This requires a PHP extension or library for Parquet support
// Like: apache/parquet

require 'vendor/autoload.php'; 

use Parquet\Reader;

// Create a ParquetReader instance
$reader = new Reader('data.parquet');

// Read the data
$data = $reader->read();

// Display the data
foreach ($data as $row) {
    echo "Name: " . $row['name'] . "\n";
    echo "Age: " . $row['age'] . "\n";
    echo "City: " . $row['city'] . "\n";
}
Result
Name: John
Age: 30
City: New York
Name: Alice
Age: 25
City: London

HDF5 (Hierarchical Data Format version 5)

HDF5 is a file format designed to store and organize large amounts of numerical data.

Pros:

  • Excellent for large, complex datasets

  • Supports parallel I/O

  • Hierarchical structure

Cons:

  • More complex to use than simpler formats

  • Requires specialized libraries

PHP example (using third-party library):

// Note: This requires a PHP extension or library for HDF5 support
$file = new HDF5File('data.h5', 'r');
$dataset = $file->getDataset('mydata');

ARFF (Attribute-Relation File Format)

ARFF is a text-based file format used to represent structured data, primarily for use in machine learning experiments. It was developed for the Weka data mining software and is widely used in AI and ML to store datasets that contain both metadata and actual data instances.

Pros of ARFF:

  • Easy to read and write: Being a text-based format, ARFF is simple to understand and edit manually.

  • Metadata support: ARFF files provide information about both the data and its attributes, making them highly interpretable.

  • Integration with Weka: ARFF is the default format for Weka, one of the most popular machine learning tools for academic research.

Cons of ARFF:

  • Limited to structured data: ARFF is only suited for structured datasets, not for handling unstructured data like images or text.

  • Less efficient for large datasets: Because ARFF is a text-based format, it can be slower to read and write compared to binary formats like Parquet or HDF5.

Structure of ARFF:

An ARFF file consists of two main sections:

1. Header: Defines the dataset’s structure, including attributes (features) and their types.

2. Data: Contains the actual data instances that correspond to the defined attributes.

Key Sections:

1. @RELATION: Specifies the name of the dataset (e.g., “weather”).

2. @ATTRIBUTE: Defines each feature or attribute in the dataset. The attribute name is followed by its type, which can be either nominal (a set of predefined values, e.g., {sunny, overcast, rainy}) or numeric (e.g., “NUMERIC”).

3. @DATA: This section holds the actual records that align with the attribute definitions in the header. Each row represents a data instance.

@RELATION weather

@ATTRIBUTE outlook {sunny, overcast, rainy}
@ATTRIBUTE temperature NUMERIC
@ATTRIBUTE humidity NUMERIC
@ATTRIBUTE windy {TRUE, FALSE}
@ATTRIBUTE play {yes, no}

@DATA
sunny, 85, 85, FALSE, no
sunny, 80, 90, TRUE, no
overcast, 83, 78, FALSE, yes
rainy, 70, 96, FALSE, yes

PHP example (Reading ARFF File):

<?php

class ARFFParser {
    private $relation;
    private $attributes = [];
    private $data = [];
    
    public function __construct($filePath) {
        $this->parseARFF($filePath);
    }
    
    private function parseARFF($filePath) {
        $file = fopen($filePath, 'r');
        if (!$file) {
            throw new Exception("Unable to open ARFF file: $filePath");
        }
        
        $inDataSection = false;
        
        while (($line = fgets($file)) !== false) {
            $line = trim($line);
            
            // Skip comments and empty lines
            if (empty($line) || $line[0] == '%') {
                continue;
            }

            if (stripos($line, '@RELATION') === 0) {
                $this->relation = trim(substr($line, 10));
            } elseif (stripos($line, '@ATTRIBUTE') === 0) {
                $this->attributes[] = $this->parseAttribute($line);
            } elseif (stripos($line, '@DATA') === 0) {
                $inDataSection = true;
            } elseif ($inDataSection) {
                $this->data[] = $this->parseDataLine($line);
            }
        }
        
        fclose($file);
    }
    
    private function parseAttribute($line) {
        $parts = preg_split('/\s+/', $line, 3);
        return [
            'name' => $parts[1],
            'type' => $parts[2]
        ];
    }

    private function parseDataLine($line) {
        return str_getcsv($line);
    }
    
    public function getRelation() {
        return $this->relation;
    }

    public function getAttributes() {
        return $this->attributes;
    }

    public function getData() {
        return $this->data;
    }
}

// Usage example
try {
    $arffParser = new ARFFParser('weather.arff');
    // Print relation
    echo "Relation: " . $arffParser->getRelation() . PHP_EOL;
    // Print attributes
    echo "Attributes: " . print_r($arffParser->getAttributes(), true) . PHP_EOL;
    // Print data
    echo "Data: " . print_r($arffParser->getData(), true) . PHP_EOL;
} catch (Exception $e) {
    echo "Error: " . $e->getMessage();
}
Result
Relation: weather
Attributes: Array
(
    [0] => Array
        (
            [name] => outlook
            [type] => {sunny, overcast, rainy}
        )

    [1] => Array
        (
            [name] => temperature
            [type] => NUMERIC
        )

    [2] => Array
        (
            [name] => humidity
            [type] => NUMERIC
        )

    [3] => Array
        (
            [name] => windy
            [type] => {TRUE, FALSE}
        )

    [4] => Array
        (
            [name] => play
            [type] => {yes, no}
        )
)

Data: Array
(
    [0] => Array
        (
            [0] => sunny
            [1] => 85
            [2] => 85
            [3] => FALSE
            [4] => no
        )

    [1] => Array
        (
            [0] => sunny
            [1] => 80
            [2] => 90
            [3] => TRUE
            [4] => no
        )

    [2] => Array
        (
            [0] => overcast
            [1] => 83
            [2] => 78
            [3] => FALSE
            [4] => yes
        )
)

SQL Tables

While not a file format per se, SQL tables in relational databases are a common way to store structured data.

Pros:

  • Efficient for relational data

  • Supports complex queries and indexing

  • ACID compliance

Cons:

  • Schema must be predefined

  • Can be less flexible for rapidly changing data structures

PHP example:

$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
$stmt = $pdo->query('SELECT * FROM users');
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($users);
Result
Array
(
    [0] => User Object
        (
            [id] => 1
            [name] => John
        )
    [1] => User Object
        (
            [id] => 2
            [name] => Alice
        )
    [2] => User Object
        (
            [id] => 3
            [name] => Bob
        )
)

Common Data Formats Compared

Let's look at the same data represented in different formats. We'll use a simple example of book information.

JSON (JavaScript Object Notation)

{
  "books": [
    {
      "title": "The Great Gatsby",
      "author": "F. Scott Fitzgerald",
      "year": 1925,
      "genres": ["Fiction", "Classic"],
      "available": true
    },
    {
      "title": "1984",
      "author": "George Orwell",
      "year": 1949,
      "genres": ["Fiction", "Dystopian"],
      "available": false
    }
  ]
}

XML (eXtensible Markup Language)

<?xml version="1.0" encoding="UTF-8"?>
<books>
    <book>
        <title>The Great Gatsby</title>
        <author>F. Scott Fitzgerald</author>
        <year>1925</year>
        <genres>
            <genre>Fiction</genre>
            <genre>Classic</genre>
        </genres>
        <available>true</available>
    </book>
    <book>
        <title>1984</title>
        <author>George Orwell</author>
        <year>1949</year>
        <genres>
            <genre>Fiction</genre>
            <genre>Dystopian</genre>
        </genres>
        <available>false</available>
    </book>
</books>

CSV (Comma-Separated Values)

title,author,year,genres,available
"The Great Gatsby","F. Scott Fitzgerald",1925,"Fiction,Classic",true
"1984","George Orwell",1949,"Fiction,Dystopian",false

YAML (YAML Ain't Markup Language)

books:
  - title: The Great Gatsby
    author: F. Scott Fitzgerald
    year: 1925
    genres:
      - Fiction
      - Classic
    available: true
  - title: 1984
    author: George Orwell
    year: 1949
    genres:
      - Fiction
      - Dystopian
    available: false