i have given scene in webGL of a pizza for example. Now i want to make the content in the scene semantic visible for maschines with a custom owl and rdf for example.
When i make a owl ontologie with protege can i just use this ontology like here
https://support.google.com/webmasters/answer/146898 and instead of linking to
http://rdf.data-vocabulary.org/# i link to my own ontology and use my properties, tags etc. ?
WebGL is an API. Any data is outside the scope of WebGL. There is nothing to markup or add any ontology to.
Maybe you're looking for something like X3DOM?
Related
Are there any example ontologies where the same word has different meaning in different contexts?
For example, when building an ontology for a large company, it is not uncommon for different departments and systems to have a different definition and understanding of common words like "customer", "account", etc.
Is there a generally accepted way to model this in Protege that preserves the original words in their context, while also introducing a layer of disambiguating words for enterprise use?
This is a problem we encounter often in the biological community. I.e., the concept Eye is very dependent on the context, i.e. human eye vs fish vs spider eye etc. You can see a search for eye on the Ontology Lookup Service (OLS) and the results it return for eye from different ontologies. Disclosure: I am responsible for this tool.
Provide an IRI for your concept. This IRI should be similar to a surrogate key for your concept. I.e., instead of giving your Account concept an IRI like http://MyBusiness/someBusinessContex/Account you give it an IRI like http://MyBusiness/someBusinessContex/Context0000001. For the Eye concept the IRI for a human eye is http://purl.obolibrary.org/obo/NCIT_C12401 and for an insect it is http://purl.obolibrary.org/obo/SIBO_0000086.
I explain in this StackOverflow question the reason for using "surrogate keys".
Assign a context specific label and definition to your concept. You can use rdfs:label for label and rdfs:comment or skos:definition for definition.
You may find that you need alternatives for you concept. I.e. may be you refer to customers also as members. In this case you can use skos:altlabel to provide alternative names for your concept and skos:preflabel to define a preferred label.
So how does this work? For user interfaces you make use of rdfs:label/skos:preflabel and rdfs:comment/skos:definition for display purposes. From a data integration perspective you use the IRI.
Some entities in OBO ontologies are documented with a database_cross_reference --> PMID as reference for an entry. For example, https://ontobee.org/ontology/CL?iri=http://purl.obolibrary.org/obo/CL_0000742 has the definition A round chondrocyte that first differentiates in the late embryonic growth plate of bone. [database_cross_reference: PMID:15951842]
I am currently using the following snippet to retrieve a table of entities in an ontology:
robot export --input data/$1.owl \
--header "ID|LABEL|IAO_0000115|hasDbXref|subClassOf [ID]" \
--export data/$1.csv
Is there a way to also retrieve these cross references linked to definitions? In the .owl file it looks like:
<owl:Axiom>
<owl:annotatedSource rdf:resource="http://purl.obolibrary.org/obo/CL_0000742"/>
<owl:annotatedProperty rdf:resource="http://purl.obolibrary.org/obo/IAO_0000115"/>
<owl:annotatedTarget rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A round chondrocyte that first differentiates in the late embryonic growth plate of bone.</owl:annotatedTarget>
<oboInOwl:hasDbXref rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PMID:15951842</oboInOwl:hasDbXref>
</owl:Axiom>
ROBOT doesn't support retrieval of axiom annotations using the export command, so the only way to do this in ROBOT is with a custom SPARQL query over the OWL reification model, as this is the way cross references linked to definitions are stored in the Cell Ontology (CL) and many other ontologies.
Note that other ontologies such as the Ontology of Biomedical Investigations (OBI) do this in a different way, using a plain entity annotation, this is retrievable using ROBOT export. Always remember that ontologies use annotations in a heterogeneous fashion, so approaches that work on one may not work on another (see this issue for context and discussion of unifying these styles).
If you are willing to consider a different approach, OAK can be used to retrieve definitions alongside axiom annotations, bridging across the different modeling styles in different ontologies, see this example.
I want to create a web application based on semantic web. The knowledge base is an ontology. My problem is that my application have to supports two languages (English and Romanian). In this moment the only solution that I have is to create two different ontologies (with the same values only translated) but I think is possible to create one that supports this two languages.
So I want to found the way to do these things in Protege.
Can you help me with any ideas?
Thanks (sorry for my bad English)
It depends what you mean by a bilingual ontology. If you want to have an ontology in which the concepts can be presented to both an English reader and a Romanian reader, but there's only one base set of concepts, then it's fairly easy. The identity of the concept is expressed as a URI, for example:
<http://example.com/ontology/animals/Dog> a owl:Class .
There's only one concept denoting dogs, but you add labels and comments that will allow the class to be presented to users in either language:
<http://example.com/ontology/animals/Doc>
a owl:Class ;
rdfs:label "dog"#en ;
rdfs:label "câine"#ro ;
rdfs:comment "Denotes the class of all dogs"#en ;
rdfs:comment "Denotă clasa tuturor câinilor"#ro .
Apologies for the Romanian - it was from Google Translate. I hope it makes sense! I don't use Protege, but you should be able to add labels and comments in multiple languages - it's a basic facility in RDF.
If, on the other hand, you want to have one ontology that contains concepts drawn from both languages, that can be harder. I don't know Romanian (see above!), so I don't know if this is the case or not, but some languages conceptualise the world in quite different ways, so defining a single ontology that merges concepts from both world-views can be difficult. It's also the case that, while RDF and OWL use UTF-8 as their base encoding, you may find some tools that aren't comfortable processing URI's that contain characters outside of US ASCII. That shouldn't be the case in theory, but you might want to be careful just in case.
Can anyone kindly point me in the right direction as to what the best way is to make a 2D Level Editor in XNA for Windows Phone?
I have a game that's almost finished but I wish to create multiple versions of it in the future with different levels and themes etc.
What would be the best way to do this?
I suggest not making one and using something like Tiled instead. It will save stages in a relatively simple XML format, and there's even a C# library to read the Tiled files.
There are plenty of other good editors as well. I recommend going in this direction because quite frankly you will spend way too much time making your own.
To expand further on Tiled, you can use the aforementioned library to parse a TMX file, which are made from using Tiled and saving your map. Read the Usage on the github page, looks pretty simple to use.
When you parse a Tiled element, say a specific tile index or a Tiled "object", you have to map that to something useful in your game (a graphical sprite texture, an enemy or object the player can interact with, etc.). For tiles, you can manage this via enums (create an alias for each tile type and assign it the exact tile number from your tilesheet), or even just an array that follows the same mapping. For objects, use Tiled's object properties to assign meaningful values that you define, which then get saved along with the TMX and you can parse them using that library.
For example, you could define a property in a Tiled object called "enemytype" and give it the value "lizard". The code when parsing could look for this property and value, and create a Lizard object when it's parsed.
If you've got a nearly-finished game, then I'd assume that somewhere in there is code to load and display the map you have. Extract that code and you're halfway there. Then you just need to add some way of adding to the map it's reading from, and save it back to the same format.
If your maps are currently created in memory, then you'll need to figure out a file format you can save them as (XML or JSON works, but a big CSV of ints for tile types works too and is simpler). Then you'll need code to read in from that format and populate your current map model.
I'am a new to ontologies and Protege and I sometimes meet such words as "pun" or "punning". However, I do not have a clue what they mean. Can you clarify it for me?
"Punning" is not something that comes from Protégé but it's a feature of the Web Ontology Language OWL 2 DL, which Protégé is an editor for. "Punning" refers to the possibility of naming terms of different natures with the same IRI. For instance, you can use the same IRI for a class and for an instance, for a property and an instance, or for a class and a property. In OWL 2 DL, the context always makes it clear whether the IRI is used as a class, a property or an instance. See Section 2.4.1 of OWL 2 New Features and Rationale.