@prefix : <http://datacenter.app.br/ontology/social/entity/ns.ttl#> .
@prefix facade: <http://ontobdc.org/ontology/domain/facade.ttl#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix obdc: <http://datacenter.app.br/ontology/social/entity/ns.ttl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <https://schema.org/> .
@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix ontouml: <http://w3id.org/ontouml#> .
@base <http://datacenter.app.br/ontology/social/entity/ns.ttl#> .

<http://datacenter.app.br/ontology/social/entity/ns.ttl>
    rdf:type owl:Ontology ;
    owl:imports <http://ontobdc.org/ontology/domain/facade.ttl> .

#################################################################
#    Annotation properties
#################################################################


###  http://w3id.org/ontouml#name
ontouml:name rdf:type owl:AnnotationProperty .


###  https://schema.org/description
schema:description rdf:type owl:AnnotationProperty .


###  https://schema.org/identifier
schema:identifier rdf:type owl:AnnotationProperty .


#################################################################
#    Classes
#################################################################

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#DataEntity
obdc:DataEntity rdf:type owl:Class .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#WebPage
:WebPage
    rdf:type owl:Class ;
    rdfs:subClassOf
        obdc:DataEntity ,
        schema:WebPage ;
    rdfs:label
        "Web Page"@en ,
        "Página web"@pt-BR ;
    rdfs:comment
        "A web page represented as a data entity in the social domain."@en ,
        "Uma página web representada como entidade de dados do domínio social."@pt-BR ;
    schema:description
        "Web page entity that provides the social-domain specialization of schema:WebPage."@en ,
        "Entidade de página web que especializa schema:WebPage no domínio social."@pt-BR ;
    schema:identifier "web_page" .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#ContainerWebPage
:ContainerWebPage
    rdf:type owl:Class ;
    rdfs:subClassOf :WebPage ;
    owl:equivalentClass facade:ContainerWebPageRepresentation ;
    rdfs:label
        "Container Web Page"@en ,
        "Página web de container"@pt-BR ;
    rdfs:comment
        "A web page that presents a projection of data resolved from a semantic container."@en ,
        "Uma página web que apresenta uma projeção de dados resolvidos a partir de um container semântico."@pt-BR ;
    schema:description
        "The social-domain class equivalent to the OntoBDC container web page representation."@en ,
        "A classe do domínio social equivalente à representação de container como página web do OntoBDC."@pt-BR ;
    schema:identifier "container_web_page" .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#Email
:Email rdf:type obdc:DataEntity, sioc:Post, schema:EmailMessage ;
       ontouml:name "Email"@en ;
       rdfs:comment "Data entity for email messages."@en ;
       schema:description "Electronic mail message entity."@en ;
       obdc:entityAlias "email"@en, "e-mail"@en, "mail"@en, "electronic mail"@en, "email message"@en,
                        "email"@pt, "e-mail"@pt, "correio eletronico"@pt, "mensagem de email"@pt ;
       schema:identifier "email" .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#Chat
:Chat rdf:type obdc:DataEntity, sioc:Thread, schema:Conversation ;
      ontouml:name "Chat"@en ;
      rdfs:comment "Generic chat conversation unit that acts as a part of a broader conversation thread."@en ;
      schema:description "Chat entity representing a conversation part in platforms such as Telegram, WhatsApp, Slack, and similar systems."@en ;
      obdc:entityAlias "chat"@en, "conversation chat"@en, "chat conversation"@en, "messenger chat"@en,
                       "group chat"@en, "chat"@pt, "conversa de chat"@pt, "grupo"@pt, "grupo de chat"@pt ;
      schema:identifier "chat" .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#Thread
:Thread rdf:type obdc:DataEntity, sioc:Thread, schema:Conversation ;
       ontouml:name "Thread"@en ;
       rdfs:comment "Data entity for threaded conversations across social and messaging platforms."@en ;
       schema:description "Conversation container entity for email threads, chat threads, and related message exchanges."@en ;
       obdc:entityAlias "thread"@en, "conversation thread"@en, "discussion thread"@en, "email thread"@en,
                        "chat thread"@en, "thread"@pt, "fio de conversa"@pt, "topico de discussao"@pt,
                        "conversa"@pt, "thread de email"@pt ;
       schema:identifier "thread" .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#ChatMessage
:ChatMessage rdf:type obdc:DataEntity, sioc:Post, schema:Message ;
       ontouml:name "Chat Message"@en ;
       rdfs:comment "Data entity for chat messages exchanged in platforms such as Telegram, WhatsApp, and similar messengers."@en ;
       schema:description "Instant or near-real-time message entity sent within a chat conversation."@en ;
       obdc:entityAlias "chat message"@en, "message"@en, "instant message"@en, "text message"@en,
                        "mensagem"@pt, "mensagem de chat"@pt, "mensagem instantanea"@pt, "torpedo"@pt ;
       schema:identifier "chat_message" .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#ConversationAgent
:ConversationAgent rdf:type obdc:DataEntity, sioc:UserAccount ;
       ontouml:name "Conversation Agent"@en ;
       rdfs:comment "Participant entity for threaded conversations, chats, and exchanged messages."@en ;
       schema:description "Agent entity representing a participant, sender, or recipient in conversation-oriented communication datasets."@en ;
       obdc:entityAlias "conversation agent"@en, "participant"@en, "sender"@en, "recipient"@en,
                        "user"@en, "chat participant"@en, "agente de conversa"@pt, "participante"@pt,
                        "remetente"@pt, "destinatario"@pt, "usuario"@pt ;
       schema:identifier "conversation_agent" .

#################################################################
#    Object Properties
#################################################################

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#hasConversationPart
:hasConversationPart rdf:type owl:ObjectProperty ;
       rdfs:domain :Thread ;
       rdfs:range :Chat ;
       rdfs:comment "Relates a conversation thread to one of its chat parts."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#isConversationPartOf
:isConversationPartOf rdf:type owl:ObjectProperty ;
       owl:inverseOf :hasConversationPart ;
       rdfs:domain :Chat ;
       rdfs:range :Thread ;
       rdfs:comment "Relates a chat part back to its parent conversation thread."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#hasChatMessage
:hasChatMessage rdf:type owl:ObjectProperty ;
       rdfs:domain :Chat ;
       rdfs:range :ChatMessage ;
       rdfs:comment "Relates a chat conversation part to one of its messages."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#isChatMessageOf
:isChatMessageOf rdf:type owl:ObjectProperty ;
       owl:inverseOf :hasChatMessage ;
       rdfs:domain :ChatMessage ;
       rdfs:range :Chat ;
       rdfs:comment "Relates a chat message back to the chat it belongs to."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#hasEmail
:hasEmail rdf:type owl:ObjectProperty ;
       rdfs:domain :Thread ;
       rdfs:range :Email ;
       rdfs:comment "Relates a thread to one of its email messages."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#isEmailOf
:isEmailOf rdf:type owl:ObjectProperty ;
       owl:inverseOf :hasEmail ;
       rdfs:domain :Email ;
       rdfs:range :Thread ;
       rdfs:comment "Relates an email message back to the thread it belongs to."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#hasParticipant
:hasParticipant rdf:type owl:ObjectProperty ;
       rdfs:domain :Thread ;
       rdfs:range :ConversationAgent ;
       rdfs:comment "Relates a thread to one of its participants."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#participatesIn
:participatesIn rdf:type owl:ObjectProperty ;
       owl:inverseOf :hasParticipant ;
       rdfs:domain :ConversationAgent ;
       rdfs:range :Thread ;
       rdfs:comment "Relates a conversation agent to a thread they participate in."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#hasChatParticipant
:hasChatParticipant rdf:type owl:ObjectProperty ;
       rdfs:domain :Chat ;
       rdfs:range :ConversationAgent ;
       rdfs:comment "Relates a chat part to one of its participants."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#participatesInChat
:participatesInChat rdf:type owl:ObjectProperty ;
       owl:inverseOf :hasChatParticipant ;
       rdfs:domain :ConversationAgent ;
       rdfs:range :Chat ;
       rdfs:comment "Relates a conversation agent to a chat they participate in."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#sentBy
:sentBy rdf:type owl:ObjectProperty ;
       rdfs:range :ConversationAgent ;
       rdfs:comment "Relates a message entity to the conversation agent who sent it."@en .

###  http://datacenter.app.br/ontology/social/entity/ns.ttl#sends
:sends rdf:type owl:ObjectProperty ;
       owl:inverseOf :sentBy ;
       rdfs:domain :ConversationAgent ;
       rdfs:comment "Relates a conversation agent to a message entity they sent."@en .